openapi: 3.0.3
info:
title: VRt.Universal [UV]
version: 5.12.1836
license:
name: Veeroute License
url: https://veeroute.com/resources/license
termsOfService: https://veeroute.com/resources/terms_of_service
contact:
name: Veeroute Support Team
email: servicedesk@veeroute.com
x-logo:
url: ../images/universal.svg
backgroundColor: '#FAFAFA'
altText: VRt.Universal
description: "# Description\n\n**VRt.Universal** is designed to solve complex problems\
\ which may include two types of orders - deliveries/pick-ups as well as service\
\ orders.\n\nThis service suits for complex cases, especially if it is possible\
\ to change business requirements during the integration with the service.\n\n\
## Features\n\n* Ability to pick up cargo from any location\n* Ability of unloading\
\ in any location\n* Demand types: pickup (loading of cargo), drop (unloading\
\ of cargo), work (work on the location without moving the cargo)\n* An order\
\ can include several demands (a delivery order consists of at least two demands:\
\ pickup and drop; a work order can include either a single work or a set of works;\
\ a complex order can consist of any number of demands of any type: pickup, drop,\
\ work)\n* Transport and performers are different entities, during the planning\
\ the appropriate performer is assigned to the transport\n* A transport may have\
\ several compartments for different types of cargo. Each compartment may have\
\ different parameters\n* Accounting for the transport and cargo compatibility\
\ (by dimensions: length, width, height)\n* Accounting for the compartment and\
\ cargo compatibility (refrigerator, thermal bag, fasteners, etc.)\n* Alternative\
\ demands are supported, i. e. the ability to fulfil one of the demands, which\
\ is selected according to its geographical location and time window\n\n## Restrictions\
\ support\n\n**Performer** restrictions:\n\n* Start/finish location\n* Accounting\
\ for the performer's way to the transport location\n* Performer's availability\
\ schedule is a list of time windows when the performer can move and work on locations\n\
* The maximum duration of the performer's work during the specified time period\n\
\n**Transport** restrictions:\n\n* Start/finish location\n* Transport availability\
\ schedule is a list of time windows when the transport is available\n* The maximum\
\ route distance\n* Several compartments in the transport, each with its own parameters\n\
* Capacity upper limit (weight, volume, number of orders, number of demands)\n\
\n**Order** restrictions:\n\n* Strict time windows\n* Ability to specify different\
\ valid time windows for a location and time windows to fulfil the desired demand\n\
* Accounting for the requests fulfillment order within the route\n* A list of\
\ desired time windows with different associated costs\n\n## Compatibilities\n\
\nEntities are compatible if the capabilities list of one entity corresponds to\
\ the list of restrictions of another entity (example: fleet parameters corresponds\
\ to cargo parameters to be delivered).\n\nSupported compatibilities:\n\n| Name\
\ | Restrictions | Features \
\ |\n|-------------------------|----------------------------------|------------------------------|\n\
| Order - Performer | Order.performer_restrictions | Performer.performer_features\
\ |\n| Order - Not a performer | Order.performer_blacklist | Performer.performer_features\
\ |\n| Cargo - Compartment | Order.Cargo.box_restrictions | Transport.Box.box_features\
\ |\n| Location - Transport | Location.transport_restrictions | Transport.transport_features\
\ |\n| Transport - Performer | Transport.performer_restrictions | Performer.performer_features\
\ |\n| Performer - Transport | Performer.transport_restrictions | Transport.transport_features\
\ |\n| Order - Order | Order.order_restrictions | Order.order_features\
\ |\n\nBusiness rule examples:\n\n| Name | Business\
\ rule example \
\ |\n|-------------------------|-----------------------------------------------------------------------------------------------------|\n\
| Order - Performer | The driver must have a special license to fulfil the\
\ order |\n| Order - Not a performer\
\ | The driver is in the blacklist \
\ |\n| Cargo - Box | For transportation\
\ of frozen products, a compartment with a special temperature profile is required\
\ |\n| Location - Transport | Restrictions on the transport height \
\ |\n| Transport - Performer\
\ | The truck driver must have the class C driving license \
\ |\n| Performer - Transport | The driver is allowed\
\ to work on a specific transport \
\ |\n| Order - Order | It is not allowed to transport fish and fruits\
\ in the same compartment |\n\n## Cargo placement\n\
\nList of possibilities of a object rotations (90 degree step):\n\n* `ALL` - can\
\ rotate by any axis\n* `YAW` - can yaw\n* `PITCH` - can pitch\n* `ROLL` - can\
\ roll\n \n\n\n## Trip\
\ model\n\nThe trip is described by the list of states of the executor, while\
\ the executor can be in several states at the same time\n(for example, to be\
\ inside the working time window of a location and fulfill an order at the same\
\ location).\n\nPossible values of the flags responsible for the geographical\
\ location:\n\n* `AROUND_LOCATION` - the performer is located near the location\
\ - in the process of parking or leaving it.\n* `INSIDE_LOCATION` - the performer\
\ is at the location.\n\nPossible values of the flags responsible for being\
\ in time windows:\n\n* `INSIDE_WORKING_WINDOW` - the executor is inside the working\
\ time window.\n* `INSIDE_LOCATION_WINDOW` - the executor is inside the location's\
\ working time.\n* `INSIDE_EVENT_HARD_WINDOW` - the executor is inside a hard\
\ time window.\n* `INSIDE_EVENT_SOFT_WINDOW` - the executor is inside the soft\
\ time window.\n\nPossible values of flags responsible for actions:\n\n* `ON_DEMAND`\
\ - the executor is working on the request.\n* `WAITING` - the performer is in\
\ standby mode.\n* `RELOCATING` - the executor is moving to the next stop.\n*\
\ `BREAK` - the performer is on a break.\n\n### An example of a route with multiple\
\ states at each point in time\n\n| time | set of active flags \
\ \
\ | location /\
\ order / application / event | comment \
\ |\n|:------|:-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------|:---------------------------------------|:-----------------------------------------------------------------------------------------------|\n\
| 10:00 | INSIDE_LOCATION
AROUND_LOCATION \
\ \
\ | 2 / - / - / - | starting\
\ location \
\ |\n| 10:10 | RELOCATION \
\ \
\ | - / - / - / - \
\ | we go to the first order \
\ |\n| 10:20 | AROUND_LOCATION \
\ \
\ | 2 / - / -\
\ / - | arrived at the first order \
\ |\n| 10:40 | AROUND_LOCATION\
\
INSIDE_LOCATION
WAITING \
\ \
\ | 2 / - / - / - | parked \
\ |\n| 11:00\
\ | AROUND_LOCATION
INSIDE_LOCATION
INSIDE_LOCATION_WINDOW
WAITING\
\
INSIDE_EVENT_HARD_WINDOW \
\ | 2 / - / - / - | waited for the start\
\ of the location window and at the same time the availability of the order |\n\
| 11:25 | AROUND_LOCATION
INSIDE_LOCATION
INSIDE_LOCATION_WINDOW
\
\ ON_DEMAND
INSIDE_WORKING_WINDOW
INSIDE_EVENT_HARD_WINDOW \
\ | 2 / 1 / 2 / 3 | waited for\
\ the change of artist \
\ |\n| 11:30 | AROUND_LOCATION
INSIDE_LOCATION
INSIDE_LOCATION_WINDOW\
\
ON_DEMAND
INSIDE_WORKING_WINDOW
INSIDE_EVENT_HARD_WINDOW
\
\ INSIDE_EVENT_SOFT_WINDOW | 2 / 1 / 2 / 3 | while working\
\ - a soft window happened \
\ |\n| 11:40 | AROUND_LOCATION
INSIDE_LOCATION
INSIDE_LOCATION_WINDOW\
\
INSIDE_WORKING_WINDOW \
\ | 2 / - / - / - | finished working |\n| 11:45 |\
\ AROUND_LOCATION
INSIDE_WORKING_WINDOW \
\ \
\ | 2 / - / - / - | drove out of the parking lot |\n| 11:45\
\ | RELOCATION
INSIDE_WORKING_WINDOW \
\ \
\ | - / - / - / - | we go to the next order |\n\n## Planning\
\ configuration\n\nFor each planning, you can specify a planning configuration\
\ that determines the objective function, desired route quality, and calculation\
\ speed.\n\nThe name of the planning configuration is passed to the `settings.configuration`\
\ field.\n\nPossible options:\n\n| Name |\
\ Task \
\ \
\ |\n|------------------------------------------|-----------------------------------------------------------------------------------------------------------------------------------------------------------------------|\n\
| **optimize_distance** | Used by default: to deliver as many\
\ orders as possible, then minimize the total mileage (the number of transports\
\ is selected based on mileage) |\n| **visual_grouping**\
\ | To deliver as many orders as possible, using as little\
\ transports as possible. The routes should be grouped visually \
\ |\n| **optimize_transports** \
\ | To deliver as many orders as possible, using as little transports as\
\ possible, as also to optimize the working hours of performers \
\ |\n| **optimize_locality_grouping** | To deliver\
\ as many orders as possible, with visual grouping for the trips (all the delivery\
\ locations should be close to each other) |\n\
| **optimize_cars_then_distance** | To deliver as many orders as possible,\
\ then optimize the quantity of transports, then mileage \
\ |\n| **optimize_time** \
\ | To deliver as many orders as possible, then optimize\
\ the total time of the performers \
\ |\n| **optimize_cars_then_time** \
\ | To deliver as many orders as possible, then optimize the quantity of\
\ transports, then the total time of the performers \
\ |\n| **optimize_visual_grouping** | To deliver\
\ as many orders as possible, then distribute orders equally based on transport\
\ accessibility zones (as visual_grouping, but this is calculated differently)\
\ |\n| **optimize_cars_then_locality_grouping** | To deliver as many orders as\
\ possible, then optimize the number of transports, then visual grouping of routes\
\ |\n| **optimize_money**\
\ | To optimize the value of profit - costs, which consists\
\ of demand fulfillment rewards and expenses for performers and transports (optimized\
\ value is non-negative) |\n\nIn addition to existing planning options, you\
\ can create an objective function for the client's business processes ([ask us\
\ for the configuration](mailto:servicedesk@veeroute.com)).\n\nIt is recommended\
\ to use the **optimize_cars_then_distance** for development, because this configuration\
\ does not require a detailed selection of tariffs and order prices.\n\n## Data\
\ validation\n\nInput data validation consists of several steps, which are described\
\ below.\n\nValidation of planning results (including the search for possible\
\ reasons why orders were not planned) is located in the `analytics` method.\n\
\n### 1. Schema check\n\nIf the request does not follow the schema, then scheduling\
\ is not fully started and such an error is returned along with a 400 code in\
\ `schema_errors`.\n\nWe recommend validating the request against the schema (or\
\ yaml file) before sending it to the server.\n\n### 2. Check for logical errors\
\ that prevent planning from continuing\n\nSchema-correct data passes the second\
\ stage of checking for the possibility of starting planning.\n\nAn example of\
\ errors at this stage are keys leading to empty entities, or if all orders are\
\ incompatible with all performers, i.e. something that makes the planning task\
\ pointless.\n\nThese errors are returned along with a 400 code in `logical_errors`.\n\
\n### 3. Check for logical errors that prevent planning from continuing\n\nAt\
\ the third stage, each entity is checked separately.\n\nAll entities that have\
\ not passed validation are cut out from the original task and are not sent for\
\ planning.\n\nDepending on the setting of `treat_validations_as_errors`, the\
\ results of this type of validation are returned to `validations` either with\
\ a 400 code or with the scheduling result.\n\n### 4. Checks in the planning process\n\
\nPart of the checks can only be carried out in the planning process.\n\nFor example\
\ - that according to the specified tariffs and according to the current traffic\
\ forecast, it is physically impossible to reach a certain point.\n\nThe results\
\ of these checks are returned in `validations` or together with the scheduling\
\ result.\n\n## Entity relationship diagram\n\n\n\n\
## Analytics\n\n\n\
\nAnalytics\
\ allows you to get data in different aspects for analysis and contains data from\
\ different viewpoints:\n\n\n\n\n# Xlsx\n\n\n\n## Performers\n\nThe name of the sheet is `performers`.\n\nList of available\
\ performers.\n\nDescribed object:\n\n\n## Transports\n\nThe name of the sheet is `transports`.\n\nList of available\
\ transport.\n\nDescribed object:\n\n\n## Boxes\n\nThe name of the sheet is `transports.boxes`.\n\nList of transport\
\ compartments that can hold cargo.\nThe table is required if there are orders\
\ with `PICKUP` and `DROP` types in the calculation.\nIn the description of the\
\ compartments, those fields that describe the cargo are required.\n\nDescribed\
\ object:\n\n\n## Orders\n\
\nThe name of the sheet is `orders`.\n\nOrder list.\n\nDescribed object:\n\n\n## Cargos\n\nThe name of the\
\ sheet is `orders.cargos`.\n\nList of cargoes. May contain one load for `DROP`,\
\ list for `PICKUP`, empty for `WORK`.\nThe table is optional if all tickets are\
\ of type `WORK`.\n\nDescribed object:\n\n\n## Hardlinks\n\nThe name of the sheet is `hardlinks`.\n\nAppointment list.\n\
\nDescribed object:\n\n\n## Trips\n\nThe name of the sheet is `trips`.\n\nList of flights.\n\n\
Described object:\n\n\
\n## Facts\n\nThe name of the sheet is `facts`.\n\nList of facts.\n\nDescribed\
\ object:\n\n\n##\
\ Plan settings\n\nThe name of the sheet is `plan_settings`.\n\nPlanning settings.\n\
\nDescribed object:\n\n\n## Actualize settings\n\nThe name of the sheet is `actualize_settings`.\n\
\nActualize settings.\n\nDescribed object:\n\n\n## Replan settings\n\nThe name of the sheet is `replan_settings`.\n\n\
Replan settings.\n\nDescribed object:\n\n"
externalDocs:
description: Main site
url: https://veeroute.com/
servers:
- url: https://api.edge.veeroute.tech
description: Environment for integration and early access to the new features
- url: https://api.prod.veeroute.tech
description: Production environment
security:
- ApiKeyAuth: []
tags:
- name: Plan
description: 'Planning - creating trips from orders, performers and transport.
Planning requests can be executed in synchronous and asynchronous mode.
'
- name: Replan
description: 'Replanning - creating new trips from existing trips, orders, performers
and transport.
'
- name: Actualize
description: 'Trips actualization - updating the planned lead time, taking into
account the facts and without changing the order of the roundabout.
'
- name: Predict
description: 'Optimal order time window prediction.
'
- name: Convert
description: 'Data conversion.
'
- name: Analytics
description: 'Planning result analytics.
'
- name: System
description: 'Helpers.
'
paths:
/universal/plan/calculation:
post:
tags:
- Plan
summary: Planning (SYNC)
description: 'Sync method for trip planning.
Use only for testing and manual plannings.
For production use [async method](#operation/plan_async).
'
operationId: run_plan_calculation
requestBody:
description: New planning request.
required: true
content:
application/json:
schema:
$ref: '#/components/schemas/plan_task'
examples:
PlanTaskTokyo:
$ref: '#/components/examples/PlanTaskTokyo'
PlanTaskMoscow:
$ref: '#/components/examples/PlanTaskMoscow'
PlanTaskDenver:
$ref: '#/components/examples/PlanTaskDenver'
PlanTaskBerlin:
$ref: '#/components/examples/PlanTaskBerlin'
PlanTaskBeijing:
$ref: '#/components/examples/PlanTaskBeijing'
responses:
'200':
description: Successful execution
content:
application/json:
schema:
$ref: '#/components/schemas/plan_result'
examples:
PlanResultTokyo:
$ref: '#/components/examples/PlanResultTokyo'
PlanResultMoscow:
$ref: '#/components/examples/PlanResultMoscow'
PlanResultDenver:
$ref: '#/components/examples/PlanResultDenver'
PlanResultBerlin:
$ref: '#/components/examples/PlanResultBerlin'
PlanResultBeijing:
$ref: '#/components/examples/PlanResultBeijing'
'400':
$ref: '#/components/responses/400_with_errors_and_validations'
'401':
$ref: '#/components/responses/401'
'402':
$ref: '#/components/responses/402'
'404':
$ref: '#/components/responses/404'
'405':
$ref: '#/components/responses/405'
'406':
$ref: '#/components/responses/406'
'415':
$ref: '#/components/responses/415'
'429':
$ref: '#/components/responses/429'
'500':
$ref: '#/components/responses/500'
'501':
$ref: '#/components/responses/501'
'502':
$ref: '#/components/responses/502'
'503':
$ref: '#/components/responses/503'
'504':
$ref: '#/components/responses/504'
default:
$ref: '#/components/responses/503'
x-codeSamples:
- lang: Python
source: 'from vrt_lss_universal import *
from vrt_lss_universal.apis import *
from vrt_lss_universal.models import *
# settings
HOST = ''https://api.edge.veeroute.tech''
TOKEN = ''PASTETOKENHERE''
# create client
configuration = Configuration()
configuration.host = HOST
configuration.access_token = TOKEN
client = ApiClient(configuration)
# create api instances
system_api = SystemApi(client)
plan_api = PlanApi(client)
# run check
check_response = system_api.check()
print(check_response)
# run sync calculation
task = PlanTask(...)
result = plan_api.run_plan_calculation(task)
print(result)'
/universal/plan/calculation_async:
post:
tags:
- Plan
summary: Planning (ASYNC)
description: 'Trip planning.
The result can be obtained using the [result](#operation/read_plan_result)
method, removing - with [delete](#operation/delete_plan_result).
'
operationId: run_plan_calculation_async
requestBody:
description: Launching the asynchronous planning.
required: true
content:
application/json:
schema:
$ref: '#/components/schemas/plan_task'
examples:
PlanTaskTokyo:
$ref: '#/components/examples/PlanTaskTokyo'
PlanTaskMoscow:
$ref: '#/components/examples/PlanTaskMoscow'
PlanTaskDenver:
$ref: '#/components/examples/PlanTaskDenver'
PlanTaskBerlin:
$ref: '#/components/examples/PlanTaskBerlin'
PlanTaskBeijing:
$ref: '#/components/examples/PlanTaskBeijing'
responses:
'200':
description: Successful execution
content:
application/json:
schema:
$ref: '#/components/schemas/calculation_async_result'
'400':
$ref: '#/components/responses/400_with_errors_and_validations'
'401':
$ref: '#/components/responses/401'
'402':
$ref: '#/components/responses/402'
'404':
$ref: '#/components/responses/404'
'405':
$ref: '#/components/responses/405'
'406':
$ref: '#/components/responses/406'
'415':
$ref: '#/components/responses/415'
'429':
$ref: '#/components/responses/429'
'500':
$ref: '#/components/responses/500'
'501':
$ref: '#/components/responses/501'
'502':
$ref: '#/components/responses/502'
'503':
$ref: '#/components/responses/503'
'504':
$ref: '#/components/responses/504'
default:
$ref: '#/components/responses/503'
/universal/plan/calculation_async/{id}:
parameters:
- $ref: '#/components/parameters/result_id'
get:
tags:
- Plan
summary: Calculation state
description: Read calculation state by the calculation identifier.
operationId: read_plan_calculation_state
responses:
'200':
description: Successful execution
content:
application/json:
schema:
$ref: '#/components/schemas/calculation_state'
'400':
$ref: '#/components/responses/400_with_errors_and_validations'
'401':
$ref: '#/components/responses/401'
'402':
$ref: '#/components/responses/402'
'404':
$ref: '#/components/responses/404'
'405':
$ref: '#/components/responses/405'
'406':
$ref: '#/components/responses/406'
'415':
$ref: '#/components/responses/415'
'429':
$ref: '#/components/responses/429'
'500':
$ref: '#/components/responses/500'
'501':
$ref: '#/components/responses/501'
'502':
$ref: '#/components/responses/502'
'503':
$ref: '#/components/responses/503'
'504':
$ref: '#/components/responses/504'
default:
$ref: '#/components/responses/503'
delete:
tags:
- Plan
summary: Cancel calculation
description: Cancel calculation by the calculation identifier.
operationId: cancel_plan_calculation
responses:
'204':
description: Successful execution - calculation has been canceled
'400':
$ref: '#/components/responses/400_with_errors_and_validations'
'401':
$ref: '#/components/responses/401'
'402':
$ref: '#/components/responses/402'
'404':
$ref: '#/components/responses/404'
'405':
$ref: '#/components/responses/405'
'406':
$ref: '#/components/responses/406'
'415':
$ref: '#/components/responses/415'
'429':
$ref: '#/components/responses/429'
'500':
$ref: '#/components/responses/500'
'501':
$ref: '#/components/responses/501'
'502':
$ref: '#/components/responses/502'
'503':
$ref: '#/components/responses/503'
'504':
$ref: '#/components/responses/504'
default:
$ref: '#/components/responses/503'
/universal/plan/result/{id}:
parameters:
- $ref: '#/components/parameters/result_id'
get:
tags:
- Plan
summary: Getting the result
description: Getting the planning result based on the calculation identifier.
operationId: read_plan_result
responses:
'200':
description: Successful execution - planning has been completed.
content:
application/json:
schema:
$ref: '#/components/schemas/plan_result'
examples:
PlanResultTokyo:
$ref: '#/components/examples/PlanResultTokyo'
PlanResultMoscow:
$ref: '#/components/examples/PlanResultMoscow'
PlanResultDenver:
$ref: '#/components/examples/PlanResultDenver'
PlanResultBerlin:
$ref: '#/components/examples/PlanResultBerlin'
PlanResultBeijing:
$ref: '#/components/examples/PlanResultBeijing'
'202':
description: Planning is in progress.
content:
application/json:
schema:
$ref: '#/components/schemas/plan_result'
'400':
$ref: '#/components/responses/400_with_errors_and_validations'
'401':
$ref: '#/components/responses/401'
'402':
$ref: '#/components/responses/402'
'404':
$ref: '#/components/responses/404'
'405':
$ref: '#/components/responses/405'
'406':
$ref: '#/components/responses/406'
'415':
$ref: '#/components/responses/415'
'429':
$ref: '#/components/responses/429'
'500':
$ref: '#/components/responses/500'
'501':
$ref: '#/components/responses/501'
'502':
$ref: '#/components/responses/502'
'503':
$ref: '#/components/responses/503'
'504':
$ref: '#/components/responses/504'
default:
$ref: '#/components/responses/503'
delete:
tags:
- Plan
summary: Result removal
description: Removal of the planning result by the calculation identifier.
operationId: delete_plan_result
responses:
'204':
description: Successful execution - planning has been deleted
'400':
$ref: '#/components/responses/400_with_errors_and_validations'
'401':
$ref: '#/components/responses/401'
'402':
$ref: '#/components/responses/402'
'404':
$ref: '#/components/responses/404'
'405':
$ref: '#/components/responses/405'
'406':
$ref: '#/components/responses/406'
'415':
$ref: '#/components/responses/415'
'429':
$ref: '#/components/responses/429'
'500':
$ref: '#/components/responses/500'
'501':
$ref: '#/components/responses/501'
'502':
$ref: '#/components/responses/502'
'503':
$ref: '#/components/responses/503'
'504':
$ref: '#/components/responses/504'
default:
$ref: '#/components/responses/503'
/universal/plan/validation:
post:
tags:
- Plan
summary: Data validation
description: Check data before using.
operationId: run_plan_validation
requestBody:
description: Data for validation.
required: true
content:
application/json:
schema:
$ref: '#/components/schemas/plan_task'
examples:
PlanTaskTokyo:
$ref: '#/components/examples/PlanTaskTokyo'
PlanTaskMoscow:
$ref: '#/components/examples/PlanTaskMoscow'
PlanTaskDenver:
$ref: '#/components/examples/PlanTaskDenver'
PlanTaskBerlin:
$ref: '#/components/examples/PlanTaskBerlin'
PlanTaskBeijing:
$ref: '#/components/examples/PlanTaskBeijing'
responses:
'200':
description: Successful execution
content:
application/json:
schema:
$ref: '#/components/schemas/validate_result'
examples:
ValidateResultExample:
$ref: '#/components/examples/ValidateResultExample'
'400':
$ref: '#/components/responses/400_with_errors_and_validations'
'401':
$ref: '#/components/responses/401'
'402':
$ref: '#/components/responses/402'
'404':
$ref: '#/components/responses/404'
'405':
$ref: '#/components/responses/405'
'406':
$ref: '#/components/responses/406'
'415':
$ref: '#/components/responses/415'
'429':
$ref: '#/components/responses/429'
'500':
$ref: '#/components/responses/500'
'501':
$ref: '#/components/responses/501'
'502':
$ref: '#/components/responses/502'
'503':
$ref: '#/components/responses/503'
'504':
$ref: '#/components/responses/504'
default:
$ref: '#/components/responses/503'
/universal/replan/calculation:
post:
tags:
- Replan
summary: Replanning (SYNC)
description: 'Trips replanning - changing existing and creating new trips based
on the facts and data about orders, performers and transport.
'
operationId: run_replan_calculation
requestBody:
description: New replanning request.
required: true
content:
application/json:
schema:
$ref: '#/components/schemas/replan_task'
examples:
ReplanTaskMoscow:
$ref: '#/components/examples/ReplanTaskMoscow'
responses:
'200':
description: Successful execution
content:
application/json:
schema:
$ref: '#/components/schemas/plan_result'
examples:
ReplanResultMoscow:
$ref: '#/components/examples/ReplanResultMoscow'
'400':
$ref: '#/components/responses/400_with_errors_and_validations'
'401':
$ref: '#/components/responses/401'
'402':
$ref: '#/components/responses/402'
'404':
$ref: '#/components/responses/404'
'405':
$ref: '#/components/responses/405'
'406':
$ref: '#/components/responses/406'
'415':
$ref: '#/components/responses/415'
'429':
$ref: '#/components/responses/429'
'500':
$ref: '#/components/responses/500'
'501':
$ref: '#/components/responses/501'
'502':
$ref: '#/components/responses/502'
'503':
$ref: '#/components/responses/503'
'504':
$ref: '#/components/responses/504'
default:
$ref: '#/components/responses/503'
x-codeSamples:
- lang: Python
source: 'from vrt_lss_universal import *
from vrt_lss_universal.apis import *
from vrt_lss_universal.models import *
# settings
HOST = ''https://api.edge.veeroute.tech''
TOKEN = ''PASTETOKENHERE''
# create client
configuration = Configuration()
configuration.host = HOST
configuration.access_token = TOKEN
client = ApiClient(configuration)
# create api instances
system_api = SystemApi(client)
plan_api = PlanApi(client)
# run check
check_response = system_api.check()
print(check_response)
# run sync calculation
task = ReplanTask(...)
result = plan_api.run_replan_calculation(task)
print(result)'
/universal/replan/calculation_async:
post:
tags:
- Replan
summary: Replanning (ASYNC)
description: 'Trip replanning - changing existing and creating new trips based
on the facts and data about orders, performers and transport. The result can
be obtained using the [result](#operation/read_replan_result) method, removing
- with [delete](#operation/delete_replan_result).
'
operationId: run_replan_calculation_async
requestBody:
description: Launching the asynchronous replanning.
required: true
content:
application/json:
schema:
$ref: '#/components/schemas/replan_task'
examples:
ReplanTaskMoscow:
$ref: '#/components/examples/ReplanTaskMoscow'
responses:
'200':
description: Successful execution
content:
application/json:
schema:
$ref: '#/components/schemas/calculation_async_result'
'400':
$ref: '#/components/responses/400_with_errors_and_validations'
'401':
$ref: '#/components/responses/401'
'402':
$ref: '#/components/responses/402'
'404':
$ref: '#/components/responses/404'
'405':
$ref: '#/components/responses/405'
'406':
$ref: '#/components/responses/406'
'415':
$ref: '#/components/responses/415'
'429':
$ref: '#/components/responses/429'
'500':
$ref: '#/components/responses/500'
'501':
$ref: '#/components/responses/501'
'502':
$ref: '#/components/responses/502'
'503':
$ref: '#/components/responses/503'
'504':
$ref: '#/components/responses/504'
default:
$ref: '#/components/responses/503'
/universal/replan/calculation_async/{id}:
parameters:
- $ref: '#/components/parameters/result_id'
get:
tags:
- Replan
summary: Calculation state
description: Read calculation state by the calculation identifier.
operationId: read_replan_calculation_state
responses:
'200':
description: Successful execution
content:
application/json:
schema:
$ref: '#/components/schemas/calculation_state'
'400':
$ref: '#/components/responses/400_with_errors_and_validations'
'401':
$ref: '#/components/responses/401'
'402':
$ref: '#/components/responses/402'
'404':
$ref: '#/components/responses/404'
'405':
$ref: '#/components/responses/405'
'406':
$ref: '#/components/responses/406'
'415':
$ref: '#/components/responses/415'
'429':
$ref: '#/components/responses/429'
'500':
$ref: '#/components/responses/500'
'501':
$ref: '#/components/responses/501'
'502':
$ref: '#/components/responses/502'
'503':
$ref: '#/components/responses/503'
'504':
$ref: '#/components/responses/504'
default:
$ref: '#/components/responses/503'
delete:
tags:
- Replan
summary: Cancel calculation
description: Cancel calculation by the calculation identifier.
operationId: cancel_replan_calculation_async
responses:
'204':
description: Successful execution - calculation has been canceled
'400':
$ref: '#/components/responses/400_with_errors_and_validations'
'401':
$ref: '#/components/responses/401'
'402':
$ref: '#/components/responses/402'
'404':
$ref: '#/components/responses/404'
'405':
$ref: '#/components/responses/405'
'406':
$ref: '#/components/responses/406'
'415':
$ref: '#/components/responses/415'
'429':
$ref: '#/components/responses/429'
'500':
$ref: '#/components/responses/500'
'501':
$ref: '#/components/responses/501'
'502':
$ref: '#/components/responses/502'
'503':
$ref: '#/components/responses/503'
'504':
$ref: '#/components/responses/504'
default:
$ref: '#/components/responses/503'
/universal/replan/result/{id}:
parameters:
- $ref: '#/components/parameters/result_id'
get:
tags:
- Replan
summary: Getting the result
description: Getting the replanning result based on the calculation identifier.
operationId: read_replan_result
responses:
'200':
description: Successful execution - replanning has been completed.
content:
application/json:
schema:
$ref: '#/components/schemas/plan_result'
examples:
ReplanResultMoscow:
$ref: '#/components/examples/ReplanResultMoscow'
'202':
description: Planning is in progress.
content:
application/json:
schema:
$ref: '#/components/schemas/plan_result'
'400':
$ref: '#/components/responses/400_with_errors_and_validations'
'401':
$ref: '#/components/responses/401'
'402':
$ref: '#/components/responses/402'
'404':
$ref: '#/components/responses/404'
'405':
$ref: '#/components/responses/405'
'406':
$ref: '#/components/responses/406'
'415':
$ref: '#/components/responses/415'
'429':
$ref: '#/components/responses/429'
'500':
$ref: '#/components/responses/500'
'501':
$ref: '#/components/responses/501'
'502':
$ref: '#/components/responses/502'
'503':
$ref: '#/components/responses/503'
'504':
$ref: '#/components/responses/504'
default:
$ref: '#/components/responses/503'
delete:
tags:
- Replan
summary: Result removal
description: Removal of the planning result by the calculation identifier.
operationId: delete_replan_result
responses:
'204':
description: Successful execution - planning has been deleted
'400':
$ref: '#/components/responses/400_with_errors_and_validations'
'401':
$ref: '#/components/responses/401'
'402':
$ref: '#/components/responses/402'
'404':
$ref: '#/components/responses/404'
'405':
$ref: '#/components/responses/405'
'406':
$ref: '#/components/responses/406'
'415':
$ref: '#/components/responses/415'
'429':
$ref: '#/components/responses/429'
'500':
$ref: '#/components/responses/500'
'501':
$ref: '#/components/responses/501'
'502':
$ref: '#/components/responses/502'
'503':
$ref: '#/components/responses/503'
'504':
$ref: '#/components/responses/504'
default:
$ref: '#/components/responses/503'
/universal/replan/validation:
post:
tags:
- Replan
summary: Data validation
description: Check data before using.
operationId: run_replan_validation
requestBody:
description: Data for validation.
required: true
content:
application/json:
schema:
$ref: '#/components/schemas/replan_task'
examples:
ReplanTaskMoscow:
$ref: '#/components/examples/ReplanTaskMoscow'
responses:
'200':
description: Successful execution
content:
application/json:
schema:
$ref: '#/components/schemas/validate_result'
examples:
ValidateResultExample:
$ref: '#/components/examples/ValidateResultExample'
'400':
$ref: '#/components/responses/400_with_errors_and_validations'
'401':
$ref: '#/components/responses/401'
'402':
$ref: '#/components/responses/402'
'404':
$ref: '#/components/responses/404'
'405':
$ref: '#/components/responses/405'
'406':
$ref: '#/components/responses/406'
'415':
$ref: '#/components/responses/415'
'429':
$ref: '#/components/responses/429'
'500':
$ref: '#/components/responses/500'
'501':
$ref: '#/components/responses/501'
'502':
$ref: '#/components/responses/502'
'503':
$ref: '#/components/responses/503'
'504':
$ref: '#/components/responses/504'
default:
$ref: '#/components/responses/503'
/universal/replan/refining:
post:
tags:
- Replan
summary: Data refine
description: Refine data before using.
operationId: run_replan_refining
requestBody:
description: Data for refine.
required: true
content:
application/json:
schema:
$ref: '#/components/schemas/replan_task'
responses:
'200':
description: Successful execution
content:
application/json:
schema:
$ref: '#/components/schemas/replan_task'
'400':
$ref: '#/components/responses/400_with_errors_and_validations'
'401':
$ref: '#/components/responses/401'
'402':
$ref: '#/components/responses/402'
'404':
$ref: '#/components/responses/404'
'405':
$ref: '#/components/responses/405'
'406':
$ref: '#/components/responses/406'
'415':
$ref: '#/components/responses/415'
'429':
$ref: '#/components/responses/429'
'500':
$ref: '#/components/responses/500'
'501':
$ref: '#/components/responses/501'
'502':
$ref: '#/components/responses/502'
'503':
$ref: '#/components/responses/503'
'504':
$ref: '#/components/responses/504'
default:
$ref: '#/components/responses/503'
/universal/actualize/calculation:
post:
tags:
- Actualize
summary: Trips actualization (SYNC)
description: Trips actualization.
operationId: run_actualize_calculation
requestBody:
description: New request for actualization.
required: true
content:
application/json:
schema:
$ref: '#/components/schemas/actualize_task'
examples:
ActualizeTaskMoscow:
$ref: '#/components/examples/ActualizeTaskMoscow'
responses:
'200':
description: Successful execution
content:
application/json:
schema:
$ref: '#/components/schemas/plan_result'
'400':
$ref: '#/components/responses/400_with_errors_and_validations'
'401':
$ref: '#/components/responses/401'
'402':
$ref: '#/components/responses/402'
'404':
$ref: '#/components/responses/404'
'405':
$ref: '#/components/responses/405'
'406':
$ref: '#/components/responses/406'
'415':
$ref: '#/components/responses/415'
'429':
$ref: '#/components/responses/429'
'500':
$ref: '#/components/responses/500'
'501':
$ref: '#/components/responses/501'
'502':
$ref: '#/components/responses/502'
'503':
$ref: '#/components/responses/503'
'504':
$ref: '#/components/responses/504'
default:
$ref: '#/components/responses/503'
/universal/actualize/validation:
post:
tags:
- Actualize
summary: Data validation
description: Check data before using.
operationId: run_actualize_validation
requestBody:
description: Data for validation.
required: true
content:
application/json:
schema:
$ref: '#/components/schemas/actualize_task'
responses:
'200':
description: Successful execution
content:
application/json:
schema:
$ref: '#/components/schemas/validate_result'
examples:
ValidateResultExample:
$ref: '#/components/examples/ValidateResultExample'
'400':
$ref: '#/components/responses/400_with_errors_and_validations'
'401':
$ref: '#/components/responses/401'
'402':
$ref: '#/components/responses/402'
'404':
$ref: '#/components/responses/404'
'405':
$ref: '#/components/responses/405'
'406':
$ref: '#/components/responses/406'
'415':
$ref: '#/components/responses/415'
'429':
$ref: '#/components/responses/429'
'500':
$ref: '#/components/responses/500'
'501':
$ref: '#/components/responses/501'
'502':
$ref: '#/components/responses/502'
'503':
$ref: '#/components/responses/503'
'504':
$ref: '#/components/responses/504'
default:
$ref: '#/components/responses/503'
/universal/actualize/refining:
post:
tags:
- Actualize
summary: Data refine
description: Refine data before using.
operationId: run_actualize_refining
requestBody:
description: Data for refine.
required: true
content:
application/json:
schema:
$ref: '#/components/schemas/actualize_task'
examples:
ActualizeTaskMoscow:
$ref: '#/components/examples/ActualizeTaskMoscow'
responses:
'200':
description: Successful execution
content:
application/json:
schema:
$ref: '#/components/schemas/actualize_task'
'400':
$ref: '#/components/responses/400_with_errors_and_validations'
'401':
$ref: '#/components/responses/401'
'402':
$ref: '#/components/responses/402'
'404':
$ref: '#/components/responses/404'
'405':
$ref: '#/components/responses/405'
'406':
$ref: '#/components/responses/406'
'415':
$ref: '#/components/responses/415'
'429':
$ref: '#/components/responses/429'
'500':
$ref: '#/components/responses/500'
'501':
$ref: '#/components/responses/501'
'502':
$ref: '#/components/responses/502'
'503':
$ref: '#/components/responses/503'
'504':
$ref: '#/components/responses/504'
default:
$ref: '#/components/responses/503'
/universal/predict/calculation:
post:
tags:
- Predict
summary: Time window predict
description: Order time window prediction.
operationId: run_predict_calculation
requestBody:
description: New request for order time window predict.
required: true
content:
application/json:
schema:
$ref: '#/components/schemas/predict_task'
examples:
PredictTaskMoscow:
$ref: '#/components/examples/PredictTaskMoscow'
responses:
'200':
description: Successful execution
content:
application/json:
schema:
$ref: '#/components/schemas/predict_result'
'400':
$ref: '#/components/responses/400_with_errors_and_validations'
'401':
$ref: '#/components/responses/401'
'402':
$ref: '#/components/responses/402'
'404':
$ref: '#/components/responses/404'
'405':
$ref: '#/components/responses/405'
'406':
$ref: '#/components/responses/406'
'415':
$ref: '#/components/responses/415'
'429':
$ref: '#/components/responses/429'
'500':
$ref: '#/components/responses/500'
'501':
$ref: '#/components/responses/501'
'502':
$ref: '#/components/responses/502'
'503':
$ref: '#/components/responses/503'
'504':
$ref: '#/components/responses/504'
default:
$ref: '#/components/responses/503'
/universal/predict/validation:
post:
tags:
- Predict
summary: Data validation
description: Check data before using.
operationId: run_predict_validation
requestBody:
description: Data for validation.
required: true
content:
application/json:
schema:
$ref: '#/components/schemas/predict_task'
examples:
PredictTaskMoscow:
$ref: '#/components/examples/PredictTaskMoscow'
responses:
'200':
description: Successful execution
content:
application/json:
schema:
$ref: '#/components/schemas/validate_result'
examples:
ValidateResultExample:
$ref: '#/components/examples/ValidateResultExample'
'400':
$ref: '#/components/responses/400_with_errors_and_validations'
'401':
$ref: '#/components/responses/401'
'402':
$ref: '#/components/responses/402'
'404':
$ref: '#/components/responses/404'
'405':
$ref: '#/components/responses/405'
'406':
$ref: '#/components/responses/406'
'415':
$ref: '#/components/responses/415'
'429':
$ref: '#/components/responses/429'
'500':
$ref: '#/components/responses/500'
'501':
$ref: '#/components/responses/501'
'502':
$ref: '#/components/responses/502'
'503':
$ref: '#/components/responses/503'
'504':
$ref: '#/components/responses/504'
default:
$ref: '#/components/responses/503'
/universal/convert/json_to_xlsx:
post:
tags:
- Convert
summary: JSON >> XLSX
description: Used for conversion of input and output data to the [VRt.Universal
XLSX](#section/Xlsx) format.
operationId: run_convert_json_to_xlsx
requestBody:
description: Conversion request to the XLSX.
required: true
content:
application/json:
schema:
$ref: '#/components/schemas/universal_data'
examples:
ConvertTaskMoscow:
$ref: '#/components/examples/ConvertTaskMoscow'
responses:
'200':
description: Successful execution
content:
application/octet-stream:
schema:
$ref: '#/components/schemas/file_xlsx'
'400':
$ref: '#/components/responses/400_with_errors_and_validations'
'401':
$ref: '#/components/responses/401'
'402':
$ref: '#/components/responses/402'
'403':
$ref: '#/components/responses/403'
'406':
$ref: '#/components/responses/406'
'415':
$ref: '#/components/responses/415'
'429':
$ref: '#/components/responses/429'
'500':
$ref: '#/components/responses/500'
'501':
$ref: '#/components/responses/501'
'502':
$ref: '#/components/responses/502'
'503':
$ref: '#/components/responses/503'
'504':
$ref: '#/components/responses/504'
default:
$ref: '#/components/responses/503'
/universal/convert/xlsx_to_json:
post:
tags:
- Convert
summary: XLSX >> JSON
description: 'Used for data conversion from the [VRt.Universal XLSX](#section/Xlsx)
format to the VRt.Universal JSON format.
'
operationId: run_convert_xlsx_to_json
requestBody:
description: Conversion request to the JSON format.
required: true
content:
application/vnd.openxmlformats-officedocument.spreadsheetml.sheet:
schema:
$ref: '#/components/schemas/file_xlsx'
responses:
'200':
description: Successful execution
content:
application/json:
schema:
$ref: '#/components/schemas/universal_data'
'400':
$ref: '#/components/responses/400_with_errors_and_validations'
'401':
$ref: '#/components/responses/401'
'402':
$ref: '#/components/responses/402'
'403':
$ref: '#/components/responses/403'
'406':
$ref: '#/components/responses/406'
'415':
$ref: '#/components/responses/415'
'429':
$ref: '#/components/responses/429'
'500':
$ref: '#/components/responses/500'
'501':
$ref: '#/components/responses/501'
'502':
$ref: '#/components/responses/502'
'503':
$ref: '#/components/responses/503'
'504':
$ref: '#/components/responses/504'
default:
$ref: '#/components/responses/503'
/universal/analytics/overview:
post:
tags:
- Analytics
summary: Data analytics
description: Used to get [analytics](#section/Description/Analytics) on the
results of planning.
operationId: run_analytics_overview
requestBody:
description: Request for analytics.
required: true
content:
application/json:
schema:
$ref: '#/components/schemas/analytics_overview_task'
responses:
'200':
description: Successful execution
content:
application/json:
schema:
$ref: '#/components/schemas/analytics_overview_result'
'400':
$ref: '#/components/responses/400_with_errors_and_validations'
'401':
$ref: '#/components/responses/401'
'402':
$ref: '#/components/responses/402'
'403':
$ref: '#/components/responses/403'
'406':
$ref: '#/components/responses/406'
'415':
$ref: '#/components/responses/415'
'429':
$ref: '#/components/responses/429'
'500':
$ref: '#/components/responses/500'
'501':
$ref: '#/components/responses/501'
'502':
$ref: '#/components/responses/502'
'503':
$ref: '#/components/responses/503'
'504':
$ref: '#/components/responses/504'
default:
$ref: '#/components/responses/503'
/universal/analytics/overview_xlsx:
post:
tags:
- Analytics
summary: Data analytics (XLSX)
description: Used to get [analytics](#operation/run_analytics_overview) on the
results of planning.
operationId: run_analytics_overview_xlsx
requestBody:
description: Request for analytics.
required: true
content:
application/json:
schema:
$ref: '#/components/schemas/analytics_overview_task'
responses:
'200':
description: Successful execution
content:
application/octet-stream:
schema:
$ref: '#/components/schemas/file_xlsx'
'400':
$ref: '#/components/responses/400_with_errors_and_validations'
'401':
$ref: '#/components/responses/401'
'402':
$ref: '#/components/responses/402'
'403':
$ref: '#/components/responses/403'
'406':
$ref: '#/components/responses/406'
'415':
$ref: '#/components/responses/415'
'429':
$ref: '#/components/responses/429'
'500':
$ref: '#/components/responses/500'
'501':
$ref: '#/components/responses/501'
'502':
$ref: '#/components/responses/502'
'503':
$ref: '#/components/responses/503'
'504':
$ref: '#/components/responses/504'
default:
$ref: '#/components/responses/503'
/universal/analytics/unplanned:
post:
tags:
- Analytics
summary: Unplanned essences analytics
description: Used to get analytics by unplanned essences on the results of planning.
operationId: run_analytics_unplanned
requestBody:
description: Request for analytics.
required: true
content:
application/json:
schema:
$ref: '#/components/schemas/analytics_unplanned_task'
responses:
'200':
description: Successful execution
content:
application/json:
schema:
$ref: '#/components/schemas/analytics_unplanned_result'
'400':
$ref: '#/components/responses/400_with_errors_and_validations'
'401':
$ref: '#/components/responses/401'
'402':
$ref: '#/components/responses/402'
'403':
$ref: '#/components/responses/403'
'406':
$ref: '#/components/responses/406'
'415':
$ref: '#/components/responses/415'
'429':
$ref: '#/components/responses/429'
'500':
$ref: '#/components/responses/500'
'501':
$ref: '#/components/responses/501'
'502':
$ref: '#/components/responses/502'
'503':
$ref: '#/components/responses/503'
'504':
$ref: '#/components/responses/504'
default:
$ref: '#/components/responses/503'
/universal/system/check:
get:
tags:
- System
summary: Checking the availability
description: Checking the service availability.
operationId: check
security: []
responses:
'200':
description: Successful execution
content:
application/json:
schema:
$ref: '#/components/schemas/check_result'
'404':
$ref: '#/components/responses/404'
'405':
$ref: '#/components/responses/405'
'406':
$ref: '#/components/responses/406'
'415':
$ref: '#/components/responses/415'
'429':
$ref: '#/components/responses/429'
'500':
$ref: '#/components/responses/500'
'501':
$ref: '#/components/responses/501'
'502':
$ref: '#/components/responses/502'
'503':
$ref: '#/components/responses/503'
'504':
$ref: '#/components/responses/504'
default:
$ref: '#/components/responses/503'
/universal/system/version:
get:
tags:
- System
summary: Getting the service version
description: Getting the service version.
operationId: version
security: []
responses:
'200':
description: Successful execution
content:
application/json:
schema:
$ref: '#/components/schemas/version_result'
'404':
$ref: '#/components/responses/404'
'405':
$ref: '#/components/responses/405'
'406':
$ref: '#/components/responses/406'
'415':
$ref: '#/components/responses/415'
'429':
$ref: '#/components/responses/429'
'500':
$ref: '#/components/responses/500'
'501':
$ref: '#/components/responses/501'
'502':
$ref: '#/components/responses/502'
'503':
$ref: '#/components/responses/503'
'504':
$ref: '#/components/responses/504'
default:
$ref: '#/components/responses/503'
/universal/file/{filename}:
parameters:
- $ref: '#/components/parameters/filename'
get:
tags:
- System
summary: Getting the documentation
description: Getting the file with this service documentation.
operationId: file
security: []
responses:
'200':
description: Successful execution
content:
text/html:
schema:
$ref: '#/components/schemas/file_html'
text/plain:
schema:
$ref: '#/components/schemas/file_json'
'404':
$ref: '#/components/responses/404'
'405':
$ref: '#/components/responses/405'
'406':
$ref: '#/components/responses/406'
'415':
$ref: '#/components/responses/415'
'429':
$ref: '#/components/responses/429'
'500':
$ref: '#/components/responses/500'
'501':
$ref: '#/components/responses/501'
'502':
$ref: '#/components/responses/502'
'503':
$ref: '#/components/responses/503'
'504':
$ref: '#/components/responses/504'
default:
$ref: '#/components/responses/503'
components:
securitySchemes:
ApiKeyAuth:
description: "For client [authentication](https://developer.mozilla.org/en-US/docs/Web/HTTP/Authentication)\
\ \n[JWT token](https://en.wikipedia.org/wiki/JSON_Web_Token) is used,\nwhich\
\ must be specified in the header for each request in the format:\n\n`Authorization:\
\ Bearer `.\n\nToken can be obtained via VRt.Account API.\n"
type: http
scheme: bearer
bearerFormat: JWT
schemas:
geopoint:
description: Geographical point.
type: object
additionalProperties: false
nullable: false
properties:
latitude:
description: Latitude in degrees.
type: number
format: double
minimum: -90
maximum: 90
example: 55.692789
longitude:
description: Longitude in degrees.
type: number
format: double
minimum: -180
maximum: 180
example: 37.554554
required:
- latitude
- longitude
time_duration:
description: 'Time duration according to [ISO 8601 duration](https://en.wikipedia.org/wiki/ISO_8601#Durations).
'
type: string
format: duration
pattern: ^P(?!$)((\d+Y)|(\d+\.\d+Y$))?((\d+M)|(\d+\.\d+M$))?((\d+W)|(\d+\.\d+W$))?((\d+D)|(\d+\.\d+D$))?(T(?=\d)((\d+H)|(\d+\.\d+H$))?((\d+M)|(\d+\.\d+M$))?(\d+(\.\d+)?S)?)??$
minLength: 3
maxLength: 16
default: PT0S
example: P1Y1M1DT2H12M34.3S
time_window:
description: Time window.
type: object
additionalProperties: false
nullable: true
properties:
from:
description: 'Date and time in the [RFC 3339, section 5.6 (ISO 8601)](https://tools.ietf.org/html/rfc3339#section-5.6)
format.
'
type: string
format: date-time
example: '2022-06-21T09:30:00+03:00'
to:
description: 'Date and time in the [RFC 3339, section 5.6 (ISO 8601)](https://tools.ietf.org/html/rfc3339#section-5.6)
format.
'
type: string
format: date-time
example: '2022-06-21T19:45:00Z'
required:
- from
- to
transport_restrictions:
description: 'List of transport requirements. Used to check whether the transport
is compatible with the performer and location.
'
type: array
minItems: 0
maxItems: 1000
uniqueItems: true
default: []
items:
description: Requirement for a transport.
type: string
minLength: 1
maxLength: 256
example:
- B1
location_compatibilities:
description: 'Location [compatibilities](#section/Description/Compatibilities).
'
type: object
additionalProperties: false
nullable: true
properties:
transport_restrictions:
$ref: '#/components/schemas/transport_restrictions'
attribute:
description: Attribute.
type: object
additionalProperties: false
nullable: false
properties:
key:
description: Attribute's key.
type: string
minLength: 1
maxLength: 100
example: attribute_name
value:
description: Attribute's value.
type: string
minLength: 0
maxLength: 1000
example: X51
required:
- key
- value
attributes:
description: Attributes. Used to add service information.
type: array
minItems: 0
maxItems: 1000
uniqueItems: true
default: []
items:
$ref: '#/components/schemas/attribute'
location:
description: 'Location - unique geographical location of the object with accessibility
parameters.
'
type: object
additionalProperties: false
nullable: false
properties:
key:
description: Location key, unique identifier.
type: string
minLength: 1
maxLength: 1024
example: location01
geopoint:
$ref: '#/components/schemas/geopoint'
arrival_duration:
$ref: '#/components/schemas/time_duration'
description: Time for driving up to the location (or waiting time at parking
lot).
departure_duration:
$ref: '#/components/schemas/time_duration'
description: Time to leave the location.
work_windows:
description: 'List of time windows for the location. If the list is empty
or not specified, the location works without time limits.
'
type: array
uniqueItems: true
minItems: 0
maxItems: 100
default: []
items:
$ref: '#/components/schemas/time_window'
compatibilities:
$ref: '#/components/schemas/location_compatibilities'
attributes:
$ref: '#/components/schemas/attributes'
required:
- key
- geopoint
possible_event:
description: 'Possible event. Combines the geographical location and the time
window, when a demand can be completed.
'
type: object
additionalProperties: false
nullable: false
properties:
key:
description: Event key, unique identifier.
type: string
minLength: 1
maxLength: 1024
example: event_1
location_key:
description: Location key, where this event is possible.
type: string
minLength: 1
maxLength: 1024
example: location01
duration:
$ref: '#/components/schemas/time_duration'
description: Event execution time.
reward:
description: Reward for the event.
type: number
format: double
minimum: 0
maximum: 1000000
default: 1000.1
example: 199.9
hard_time_window:
$ref: '#/components/schemas/time_window'
soft_time_window:
$ref: '#/components/schemas/time_window'
required:
- key
- location_key
- hard_time_window
demand:
description: Request for a single action with a cargo (pickup / drop) or work
at a location.
type: object
additionalProperties: false
nullable: false
properties:
key:
description: Demand key, unique identifier.
type: string
minLength: 1
maxLength: 1024
example: demand_1
demand_type:
description: The demand types are loading (`PICKUP`), unloading (`DROP`),
work at the location (`WORK`).
nullable: false
type: string
enum:
- PICKUP
- DROP
- WORK
example: WORK
target_cargos:
description: Cargo keys list for `PICKUP`, one cargo key for `DROP`, empty
key for `WORK`.
type: array
minItems: 0
maxItems: 1000
uniqueItems: true
items:
description: Cargo key.
type: string
minLength: 1
maxLength: 1024
example:
- cargo01
precedence_in_trip:
description: Precedence within a trip, 0 - the precedence is not taken into
account.
type: integer
format: int32
minimum: 0
maximum: 30001
example: 1
default: 0
precedence_in_order:
description: Precedence within an order, 0 - the precedence is not taken
into account.
type: integer
format: int32
minimum: 0
maximum: 30001
example: 1
default: 0
possible_events:
description: List of possible time windows and location keys to fulfil an
order.
type: array
uniqueItems: true
minItems: 1
maxItems: 25
items:
$ref: '#/components/schemas/possible_event'
attributes:
$ref: '#/components/schemas/attributes'
required:
- key
- demand_type
- possible_events
capacity:
description: Capacity characteristics.
type: object
additionalProperties: false
nullable: true
properties:
mass:
description: Weight in kilograms.
type: number
format: double
minimum: 0
maximum: 1000000
default: 0
example: 10
volume:
description: Volume in cubic meters.
type: number
format: double
minimum: 0
maximum: 1000000
default: 0
example: 2
capacity_a:
description: 'Additional capacity parameter (A) for measuring cargoes and
compartments in alternative units. For example, to account for cargo in
pieces (this parameter is equal to one for a cargo and the maximum number
of cargo to hold for a compartment).
'
type: number
format: double
minimum: 0
maximum: 1000000
default: 0
example: 1
capacity_b:
description: 'Additional capacity parameter (B) for measuring cargoes and
compartments in alternative units.
'
type: number
format: double
minimum: 0
maximum: 1000000
default: 0
example: 2
capacity_c:
description: 'Additional capacity parameter (C) for measuring cargoes and
compartments in alternative units.
'
type: number
format: double
minimum: 0
maximum: 1000000
default: 0
example: 3
cargo_rotation_type:
description: "The ability of the cargo to rotate in 90 degree increments around\
\ the axes:\n * `ALL` - any axes.\n * `YAW` - around the Z axis.\n * `PITCH`\
\ - around the Y axis.\n * `ROLL` - around the X axis.\n"
type: string
nullable: false
enum:
- ALL
- YAW
- PITCH
- ROLL
default: ALL
example: ALL
cargo_rotation:
description: "List of possibilities of a object rotations (90 degree step):\n\
\ * `ALL` - can rotate by any axis\n * `YAW` - can yaw\n * `PITCH` - can\
\ pitch\n * `ROLL` - can roll\n\nEmpty list means object rotations is prohibited.\n\
\nMore about [cargo placement](#section/Description/Cargo-placement)."
type: array
minItems: 0
maxItems: 4
uniqueItems: true
default: []
items:
$ref: '#/components/schemas/cargo_rotation_type'
example:
- ALL
box_restrictions:
description: 'List of necessary restrictions for a transport''s box.
'
type: array
minItems: 0
maxItems: 1000
uniqueItems: true
default: []
items:
description: Box restriction.
type: string
minLength: 1
maxLength: 256
example:
- DRY
cargo_features:
description: 'Cargo''s features list. Used to check whether the cargo is compatible
with other cargos.
'
type: array
minItems: 0
maxItems: 1000
uniqueItems: true
default: []
items:
description: Cargo's feature.
type: string
minLength: 1
maxLength: 256
example:
- DRY
cargo_restrictions:
description: 'Requirements list for the cargo. Used to check whether the cargo
is compatible with other cargos.
'
type: array
minItems: 0
maxItems: 1000
uniqueItems: true
default: []
items:
description: Requirement for the cargo.
type: string
minLength: 1
maxLength: 256
example:
- DRY
cargo_compatibilities:
description: 'Cargo [compatibilities](#section/Description/Compatibilities).
'
type: object
additionalProperties: false
nullable: true
properties:
width:
description: Width in meters, used to check the transport box capacity.
type: number
format: double
minimum: 0
maximum: 1000000
default: 0
example: 1
height:
description: Height in meters, used to check the transport box capacity.
type: number
format: double
minimum: 0
maximum: 1000000
default: 0
example: 0.3
length:
description: Length in meters, used to check the transport box capacity.
type: number
format: double
minimum: 0
maximum: 1000000
default: 0
example: 2.2
rotation:
$ref: '#/components/schemas/cargo_rotation'
box_restrictions:
$ref: '#/components/schemas/box_restrictions'
cargo_features:
$ref: '#/components/schemas/cargo_features'
cargo_restrictions:
$ref: '#/components/schemas/cargo_restrictions'
cargo:
description: Cargo.
type: object
additionalProperties: false
nullable: false
properties:
key:
description: Cargo key, unique identifier.
type: string
minLength: 1
maxLength: 1024
example: cargo01
capacity:
$ref: '#/components/schemas/capacity'
compatibilities:
$ref: '#/components/schemas/cargo_compatibilities'
required:
- key
order_features:
description: Order features list.
type: array
minItems: 0
maxItems: 1000
uniqueItems: true
default: []
items:
description: Order feature.
type: string
minLength: 1
maxLength: 256
example:
- EXPRESS
order_restrictions:
description: List of requirements for an order being delivered during the same
trip.
type: array
minItems: 0
maxItems: 1000
uniqueItems: true
default: []
items:
description: Order requirements.
type: string
minLength: 1
maxLength: 256
example:
- EXPRESS
performer_restrictions:
description: 'Requirements list for the performer. Used for checking the compatibility
of the performer and the order (work).
'
type: array
minItems: 0
maxItems: 1000
uniqueItems: true
default: []
items:
description: Requirement for the performer.
type: string
minLength: 1
maxLength: 256
example:
- EXPRESS
performer_blacklist:
description: 'A list of requirements that the performer is not allowed to have.
Used for checking the compatibility of the performer and the order (work).
This list should not intersect with `performer_restrictions`.
'
type: array
minItems: 0
maxItems: 1000
uniqueItems: true
default: []
items:
description: Prohibited requirement for the performer.
type: string
minLength: 1
maxLength: 256
example:
- A0
order_compatibilities:
description: 'Order [compatibilities](#section/Description/Compatibilities).
'
type: object
additionalProperties: false
nullable: true
properties:
order_features:
$ref: '#/components/schemas/order_features'
order_restrictions:
$ref: '#/components/schemas/order_restrictions'
performer_restrictions:
$ref: '#/components/schemas/performer_restrictions'
performer_blacklist:
$ref: '#/components/schemas/performer_blacklist'
order:
description: The order for delivery/transportation, contains a list of demands.
type: object
additionalProperties: false
nullable: false
properties:
key:
description: Order key, unique identifier.
type: string
minLength: 1
maxLength: 1024
example: order01
demands:
description: Demands list.
type: array
uniqueItems: true
minItems: 1
maxItems: 1000
items:
$ref: '#/components/schemas/demand'
cargos:
description: 'Cargo list. Can contain one cargo for `DROP`, a list for `PICKUP`,
should be empty for `WORK`.
'
type: array
uniqueItems: true
minItems: 0
maxItems: 1000
default: []
items:
$ref: '#/components/schemas/cargo'
compatibilities:
$ref: '#/components/schemas/order_compatibilities'
attributes:
$ref: '#/components/schemas/attributes'
required:
- key
- demands
performer_tariff_constraint:
description: The paid period of time is an integral part of the tariff.
type: object
additionalProperties: false
nullable: false
properties:
stage_length:
description: Length of the paid period, in minutes.
type: integer
format: int32
minimum: 1
maximum: 525960
default: 525960
example: 480
cost_per_unit:
description: 'Cost within the paid period, monetary unit per minute of work.
'
type: number
format: double
minimum: 0.001
maximum: 10000
default: 0.001
example: 5.05
performer_tariff:
description: The tariff determines the cost and time limits of the shift.
type: object
additionalProperties: false
nullable: false
properties:
cost_per_shift:
description: Price for using the shift, monetary unit.
type: number
format: double
minimum: 0.001
maximum: 1000000
default: 0.001
example: 2000
constraints:
description: List of components of the tariff.
type: array
minItems: 1
maxItems: 100
uniqueItems: false
items:
$ref: '#/components/schemas/performer_tariff_constraint'
default:
- stage_length: 525960
cost_per_unit: 0.001
max_penalty_cost:
description: 'Max sum of penalties for performer or transport using this
shift, monetary unit. If the sum is not set or equal to null, the performer
cannot violate the restrictions.
'
type: number
format: double
minimum: 0
maximum: 1000000
default: 0
example: 2000
break:
description: The condition for the onset and characteristics of a break.
type: object
additionalProperties: false
nullable: true
properties:
max_work_duration_sum:
$ref: '#/components/schemas/time_duration'
description: Total work time after which you need to take a break.
duration:
$ref: '#/components/schemas/time_duration'
description: Length of break period.
required:
- max_work_duration_sum
- duration
work_and_rest_rules:
description: 'Work and rest rules.
'
type: object
additionalProperties: false
nullable: false
properties:
first_break:
$ref: '#/components/schemas/break'
description: 'First break - no later than N minutes after the scheduled
start time, there must be one break with a duration of M minutes. Waiting
time is not counted as working time. Work cannot be interrupted by a break.
If there are many orders in one location, then a break can be scheduled
between the execution of orders.
'
performer_shift:
description: 'Performer''s shift that determines the availability of the resource
for planning within its time window.
'
type: object
additionalProperties: false
nullable: false
properties:
key:
description: Shift key, unique identifier.
type: string
minLength: 1
maxLength: 1024
example: shift01
availability_time:
description: Time shift window when the performer can perform work at locations
and drive between locations.
$ref: '#/components/schemas/time_window'
working_time:
description: Working time window, when the performer can perform work at
locations, must be inside the time window.
$ref: '#/components/schemas/time_window'
start_location_key:
description: 'Start location key. If not specified, the trip starts from
the first order location.
'
type: string
minLength: 1
maxLength: 1024
nullable: true
default: null
example: start_location01
finish_location_key:
description: 'Finish location key. If not specified, the trip finishes
on the last order location.
'
type: string
minLength: 1
maxLength: 1024
nullable: true
default: null
example: finish_location01
max_locations:
description: 'Limit of the number of unique locations in one trip. If not
specified or null, number of locations is not limited.
'
type: integer
format: int32
minimum: 1
maximum: 1000
nullable: true
default: null
example: 15
max_stops:
description: 'Limit of the number of stops in one trip. If not specified
or null, number of stops is not limited.
'
type: integer
format: int32
minimum: 1
maximum: 1000
nullable: true
default: null
example: 15
tariff:
$ref: '#/components/schemas/performer_tariff'
work_and_rest_rules:
$ref: '#/components/schemas/work_and_rest_rules'
attributes:
$ref: '#/components/schemas/attributes'
required:
- key
- availability_time
- working_time
transport_type:
description: "Transport types:\n * `CAR` - car\n * `TRUCK_1500` - truck with\
\ permissible weight 1500 kg\n * `TRUCK_3000` - truck with permissible weight\
\ 3000 kg\n * `TRUCK_5000` - truck with permissible weight 5000 kg\n * `TRUCK_10000`\
\ - truck with permissible weight 10000 kg\n * `TRUCK_20000` - truck with\
\ permissible weight 20000 kg\n * `TUK_TUK` - tuk-tuk\n * `BICYCLE` - bicycle\n\
\ * `PEDESTRIAN` - pedestrian \n * `PUBLIC_TRANSPORT` - public transport\n"
type: string
nullable: false
enum:
- CAR
- TRUCK_1500
- TRUCK_3000
- TRUCK_5000
- TRUCK_10000
- TRUCK_20000
- TUK_TUK
- BICYCLE
- PEDESTRIAN
- PUBLIC_TRANSPORT
default: CAR
example: CAR
performer_features:
description: 'Performer''s features list. Used to check whether the performer
is compatible with orders.
'
type: array
minItems: 0
maxItems: 1000
uniqueItems: true
default: []
items:
description: Performer's feature.
type: string
minLength: 1
maxLength: 256
example:
- B1
- EXPRESS
performer_compatibilities:
description: 'Performer [compatibilities](#section/Description/Compatibilities).
'
type: object
additionalProperties: false
nullable: true
properties:
performer_features:
$ref: '#/components/schemas/performer_features'
transport_restrictions:
$ref: '#/components/schemas/transport_restrictions'
performer_limits:
description: 'The performer limitations.
'
type: object
additionalProperties: false
nullable: true
properties:
max_work_shifts:
description: Limit of the number of performer's shifts in one planning.
type: integer
format: int32
minimum: 1
maximum: 31
default: 31
example: 3
performer:
description: 'Performer. Fulfills orders using transport.
'
type: object
additionalProperties: false
nullable: false
properties:
key:
description: Performer's key, unique identifier.
type: string
minLength: 1
maxLength: 1024
example: performer0001
shifts:
description: List of working shifts of performer.
type: array
uniqueItems: true
minItems: 1
maxItems: 30001
items:
$ref: '#/components/schemas/performer_shift'
own_transport_type:
$ref: '#/components/schemas/transport_type'
compatibilities:
$ref: '#/components/schemas/performer_compatibilities'
limits:
$ref: '#/components/schemas/performer_limits'
attributes:
$ref: '#/components/schemas/attributes'
required:
- key
- shifts
transport_tariff_constraint:
description: Paid mileage is an integral part of the tariff.
type: object
additionalProperties: false
nullable: false
properties:
stage_length:
description: The length of the paid part of the way, in meters.
type: integer
format: int32
minimum: 1
maximum: 100000000
default: 100000000
example: 200000
cost_per_unit:
description: 'The cost within the paid part of the way, monetary unit per
meter.
'
type: number
format: double
minimum: 0.001
maximum: 10000
default: 0.001
example: 5.05
transport_tariff:
description: The tariff determines the cost of transport operation and restrictions
on mileage per shift.
type: object
additionalProperties: false
nullable: false
properties:
cost_per_shift:
description: Price for using the shift, monetary unit.
type: number
format: double
minimum: 0.001
maximum: 1000000
default: 0.001
example: 2000
constraints:
description: List of components of the tariff.
type: array
minItems: 1
maxItems: 100
uniqueItems: false
items:
$ref: '#/components/schemas/transport_tariff_constraint'
default:
- stage_length: 100000000
cost_per_unit: 0.001
max_penalty_cost:
description: 'Max sum of penalties for transport using this shift, monetary
unit. If the sum is not set or equal to null, the transport cannot violate
the restrictions.
'
type: number
format: double
minimum: 0
maximum: 1000000
default: 0
example: 2000
transport_shift:
description: 'A transport work shift that determines the availability of a transport
for scheduling within its availability time window.
'
type: object
additionalProperties: false
nullable: false
properties:
key:
description: Shift key, unique identifier.
type: string
minLength: 1
maxLength: 1024
example: shift01
availability_time:
description: The shift time window in which the transport can move between
locations and be used by the performer in work on locations.
$ref: '#/components/schemas/time_window'
working_time:
description: The working time window, during which the transport can be
used by the performer in work on locations, must be within the availability
time window.
$ref: '#/components/schemas/time_window'
start_location_key:
description: 'Start location key. If the key is not set, then the transport
path starts on the first order.
'
type: string
minLength: 1
maxLength: 1024
nullable: true
default: null
example: start_location01
finish_location_key:
description: 'Finish location key. If the key is not set, then the transport
path ends at the last order.
'
type: string
minLength: 1
maxLength: 1024
nullable: true
default: null
example: finish_location01
tariff:
$ref: '#/components/schemas/transport_tariff'
attributes:
$ref: '#/components/schemas/attributes'
required:
- key
- availability_time
- working_time
box_features:
description: 'Box features list that determines compatibility with the cargo.
'
type: array
minItems: 0
maxItems: 1000
uniqueItems: true
default: []
items:
description: Box feature.
type: string
minLength: 1
maxLength: 256
example:
- Freezer
box_compatibilities:
description: 'A transport box [compatibilities](#section/Description/Compatibilities).
'
type: object
additionalProperties: false
nullable: true
properties:
width:
description: Width in meters.
type: number
format: double
minimum: 0
maximum: 1000000
default: 0
example: 1
height:
description: Height in meters.
type: number
format: double
minimum: 0
maximum: 1000000
default: 0
example: 3.1
length:
description: Length in meters.
type: number
format: double
minimum: 0
maximum: 1000000
default: 0
example: 2.1
box_features:
$ref: '#/components/schemas/box_features'
box_limits:
description: '`max_one_cargo_capacity` - `capacity` fields limitation for *one*
cargo.
'
type: object
additionalProperties: false
nullable: true
properties:
max_one_cargo_capacity:
$ref: '#/components/schemas/capacity'
box:
description: 'A transport box capable to hold a cargo. `capacity` - the compartment
capacity, which limits the maximum amount for all `capacity` fields of *all*
the cargoes.
'
type: object
additionalProperties: false
nullable: false
properties:
key:
description: Unique compartment key used to identify the cargo placement
in compartments.
type: string
minLength: 1
maxLength: 1024
example: box01
capacity:
$ref: '#/components/schemas/capacity'
compatibilities:
$ref: '#/components/schemas/box_compatibilities'
limits:
$ref: '#/components/schemas/box_limits'
required:
- key
transport_features:
description: 'Transport features list, it is used to check whether the transport
is compatible with locations and performers.
'
type: array
minItems: 0
maxItems: 1000
uniqueItems: true
default: []
items:
description: Transport's feature.
type: string
minLength: 1
maxLength: 256
example:
- 20T
transport_compatibilities:
description: 'Transport [compatibilities](#section/Description/Compatibilities).
'
type: object
additionalProperties: false
nullable: true
properties:
transport_features:
$ref: '#/components/schemas/transport_features'
performer_restrictions:
$ref: '#/components/schemas/performer_restrictions'
transport_limits:
description: 'Transport load limits.
'
type: object
additionalProperties: false
nullable: true
properties:
max_boxes:
description: 'Limit of the number of transports''s unique locations in one
trip. If not specified or null, number of using boxes is not limited.
The limit should not exceed the number of boxes.
'
type: integer
format: int32
nullable: true
default: null
minimum: 0
maximum: 100
example: 2
max_capacity:
$ref: '#/components/schemas/capacity'
description: 'Parameter limits overall transport load. If parameter not
specified - loading is limited only to each box. Applicable only if the
transport has more than one box. Parameter must not be less than the capacity
of any compartment.
'
transport:
description: 'Transport. Used by performer for relocating and cargo transfer.
'
type: object
additionalProperties: false
nullable: false
properties:
key:
description: Transport key, unique identifier.
type: string
minLength: 1
maxLength: 1024
example: transport001
shifts:
description: List of working shifts of transport.
type: array
uniqueItems: true
minItems: 1
maxItems: 30001
items:
$ref: '#/components/schemas/transport_shift'
transport_type:
$ref: '#/components/schemas/transport_type'
boxes:
description: A list of transport compartments that can accommodate the cargo.
type: array
minItems: 0
maxItems: 100
uniqueItems: true
default: []
items:
$ref: '#/components/schemas/box'
compatibilities:
$ref: '#/components/schemas/transport_compatibilities'
limits:
$ref: '#/components/schemas/transport_limits'
attributes:
$ref: '#/components/schemas/attributes'
required:
- key
- shifts
hardlink_element_type:
description: 'Type of goal entity. It can be an order or a performer\transport
shift.
'
type: string
nullable: false
enum:
- ORDER
- PERFORMER_SHIFT
- TRANSPORT_SHIFT
example: ORDER
hardlink_element:
description: Assignment group element.
type: object
additionalProperties: false
properties:
type:
$ref: '#/components/schemas/hardlink_element_type'
entity_key:
description: Key of the target entity (an order or a shift).
type: string
minLength: 1
maxLength: 1024
example: ord0001
required:
- type
- entity_key
hardlink:
description: "Assignment required to associate entities in a single group. It\
\ can consist of two or more entities. Example:\n * driver assignment to\
\ the transport (connection between the performer's shifts and the transport).\n\
\ * order assignment to the performer (link the order to a performer's shift).\n\
\ * specifying the need to perform multiple orders during a single trip (linking\
\ orders to deliver them within one trip).\n"
type: object
additionalProperties: false
nullable: false
properties:
key:
description: Hardlink key.
type: string
minLength: 1
maxLength: 1024
example: group01
links:
description: List of items in the assignment group.
type: array
minItems: 2
maxItems: 1000
items:
$ref: '#/components/schemas/hardlink_element'
required:
- key
- links
plan_configuration:
description: "Name of the planning configuration.\nThe configuration determines\
\ the result goal and quality. \n[List of available](#section/Description/Planning-configuration)\
\ planning configurations."
type: string
minLength: 1
maxLength: 256
default: default
example: optimize_distance
trip_start_time_strategy:
description: "The strategy of the choosing optimal trip start time:\n * `EARLIEST_FINISH`\n\
\ * `LOWEST_COST`\n"
type: string
nullable: false
enum:
- EARLIEST_FINISH
- LOWEST_COST
default: EARLIEST_FINISH
example: LOWEST_COST
transport_factor:
description: Speed change coefficient for the specified transport type.
type: object
additionalProperties: false
nullable: false
properties:
transport_type:
$ref: '#/components/schemas/transport_type'
speed:
description: Average transport speed multiplier.
type: number
format: double
minimum: 0.1
maximum: 1000
example: 2.5
required:
- transport_type
- speed
capacity_factor:
description: 'Capacity change rate for the specified transport type.
'
type: object
additionalProperties: false
nullable: false
properties:
transport_type:
$ref: '#/components/schemas/transport_type'
capacity:
$ref: '#/components/schemas/capacity'
required:
- transport_type
- capacity
trip_assumptions:
description: 'Planning assumptions - ability to disable a part of the planning
business logic.
'
type: object
additionalProperties: false
nullable: false
properties:
transport_factor:
description: Transport speed change coefficients.
type: array
minItems: 0
maxItems: 10
default: []
uniqueItems: true
items:
$ref: '#/components/schemas/transport_factor'
capacity_factor:
description: 'Transport capacity change coefficients. Change the `capacity`
parameters for all boxes and `max_capacity` for the transport.
'
type: array
minItems: 0
maxItems: 10
default: []
uniqueItems: true
items:
$ref: '#/components/schemas/capacity_factor'
disable_compatibility:
description: 'Disable the accounting for capacity. If `true` is specified,
all becomes compatible with everything.
'
type: boolean
default: false
example: true
disable_capacity:
description: 'Disable the accounting for capacity. If `true` is specified,
all transports can accommodate an unlimited cargo amount.
'
type: boolean
default: false
example: true
same_order_time_window:
description: 'Use for calculation the same (specified) time window for orders
and demands. The time window is specified from the beginning of the earliest
window to the end of the latest window from all orders and demands.
'
type: boolean
default: false
example: true
expand_shift_time_window:
description: 'Expand the time window for performer and transport shifts. The
left border of the first shift extends to the left border of the specified
window, right border extends to the right border or to the beginning of
the next window for this entity. Each next shift moves the right border
to the next shift or to the right border of the specified window.
'
type: boolean
default: false
example: true
compatibility_penalty:
description: 'Penalty for violation of compatibility.
'
type: object
additionalProperties: false
nullable: false
properties:
tag:
description: 'Tag from list of [compatibilities](https://docs.veeroute.ru/#/lss/universal?id=compatibilities).
'
type: string
minLength: 1
maxLength: 256
example: B1
penalty:
description: 'Penalty for violation of compatibility for the specified tag.
'
type: number
format: double
minimum: 0
maximum: 1000000
example: 2000
required:
- tag
- penalty
trip_penalties:
description: 'Planning penalties - ability to disrupt a part of the planning
business rules.
'
type: object
additionalProperties: false
nullable: false
properties:
compatibilities:
description: Penalties for compatibility violation.
type: array
uniqueItems: true
minItems: 0
maxItems: 1000000
default: []
items:
$ref: '#/components/schemas/compatibility_penalty'
trips_settings:
description: Trip creation settings.
type: object
additionalProperties: false
nullable: false
properties:
configuration:
$ref: '#/components/schemas/plan_configuration'
trip_start_time_strategy:
$ref: '#/components/schemas/trip_start_time_strategy'
assumptions:
$ref: '#/components/schemas/trip_assumptions'
penalties:
$ref: '#/components/schemas/trip_penalties'
geo_settings:
description: 'Geodata usage settings.
'
type: object
nullable: false
additionalProperties: false
properties:
geo_provider:
description: Geodata provider.
type: string
default: OSRM
minLength: 1
maxLength: 256
example: OSRM
toll_roads:
description: Use toll roads.
type: boolean
default: true
example: false
ferry_crossing:
description: Use ferry crossing.
type: boolean
default: true
example: false
traffic_jams:
description: Accounting for traffic during the route planning.
type: boolean
default: true
example: false
flight_distance:
description: 'Use for calculating straight line distances. If `false` is
specified, distances are calculated by roads. When this parameter is enabled,
geo-provider not used and traffic (`traffic_jams`) is automatically disabled.
'
type: boolean
default: false
example: true
restricted_zones:
description: 'List of restricted zones.
'
type: array
minItems: 0
maxItems: 5
uniqueItems: true
default: []
items:
description: Zone id.
type: string
minLength: 1
maxLength: 256
example:
- ART_MOSCOW_MKAD_CARGO_FRAME
waypoint:
description: 'Waypoint.
'
type: object
additionalProperties: false
nullable: false
properties:
name:
description: Name of the point.
type: string
nullable: true
default: null
minLength: 0
maxLength: 1024
example: central
geopoint:
$ref: '#/components/schemas/geopoint'
duration:
$ref: '#/components/schemas/time_duration'
description: Stop duration.
required:
- geopoint
routing_matrix_line:
description: Values line in the route distances matrix (in meters) or in the
route durations matrix (in seconds), between points.
type: array
minItems: 2
maxItems: 30001
uniqueItems: false
items:
description: 'Route distance (in meters) or duration (in seconds) between
locations. A negative value (-1) means that it is not possible to drive
between the specified locations.
'
type: integer
format: int64
minimum: -1
maximum: 10000000
example: 1500
routing_matrix:
description: Time and distance matrix.
type: object
additionalProperties: false
nullable: false
properties:
waypoints:
description: Array of geographical points with distances and times calculated
between them.
type: array
minItems: 2
maxItems: 30001
uniqueItems: false
items:
$ref: '#/components/schemas/waypoint'
distances:
description: 'Routes length between two neighbors locations, in meters. The
values in the array are ordered according to the elements order in the
`waypoints` parameter. Each matrix row is an array of distances from the
desired point to every other point.
'
type: array
minItems: 2
maxItems: 30001
uniqueItems: false
items:
$ref: '#/components/schemas/routing_matrix_line'
durations:
description: 'Array of route durations between two neighbors locations,
in minutes. The values in the array are ordered according to the elements
order in the `waypoints` parameter. Each matrix row is an array of distances
from the desired point to every other point.
'
type: array
minItems: 2
maxItems: 30001
uniqueItems: false
items:
$ref: '#/components/schemas/routing_matrix_line'
required:
- waypoints
- distances
- durations
routing_transport_matrix:
description: Time-distance matrix for a specific transport type.
type: object
additionalProperties: false
nullable: false
properties:
transport_type:
$ref: '#/components/schemas/transport_type'
matrix:
$ref: '#/components/schemas/routing_matrix'
required:
- transport_type
- matrix
routing_transport_matrix_list:
description: 'Time and distance matrices list for each transport type. By specifying
an external routing matrix `external_routing`, parameters `geo_settings` are
not used.
'
type: array
uniqueItems: true
minItems: 0
maxItems: 10
default: []
items:
$ref: '#/components/schemas/routing_transport_matrix'
calculation_settings:
description: Calculation settings.
type: object
additionalProperties: false
nullable: false
properties:
max_calculation_time:
description: 'Max calculation time. The countdown starts from the time when
data is uploaded to the server and calculation starts.
'
type: string
format: duration
pattern: ^P(?!$)((\d+Y)|(\d+\.\d+Y$))?((\d+M)|(\d+\.\d+M$))?((\d+W)|(\d+\.\d+W$))?((\d+D)|(\d+\.\d+D$))?(T(?=\d)((\d+H)|(\d+\.\d+H$))?((\d+M)|(\d+\.\d+M$))?(\d+(\.\d+)?S)?)??$
minLength: 3
maxLength: 16
default: PT20M
example: PT4M30S
max_waiting_time:
description: 'Max calculation time. The countdown starts from the time when
data is uploaded to the server.
'
type: string
format: duration
pattern: ^P(?!$)((\d+Y)|(\d+\.\d+Y$))?((\d+M)|(\d+\.\d+M$))?((\d+W)|(\d+\.\d+W$))?((\d+D)|(\d+\.\d+D$))?(T(?=\d)((\d+H)|(\d+\.\d+H$))?((\d+M)|(\d+\.\d+M$))?(\d+(\.\d+)?S)?)??$
minLength: 3
maxLength: 16
default: PT30M
example: PT2H
result_ttl:
description: 'Calculation result lifetime. The countdown starts from the
time when the calculation is completed.
'
type: string
format: duration
pattern: ^P(?!$)((\d+Y)|(\d+\.\d+Y$))?((\d+M)|(\d+\.\d+M$))?((\d+W)|(\d+\.\d+W$))?((\d+D)|(\d+\.\d+D$))?(T(?=\d)((\d+H)|(\d+\.\d+H$))?((\d+M)|(\d+\.\d+M$))?(\d+(\.\d+)?S)?)??$
minLength: 3
maxLength: 16
default: PT20M
example: PT4M30S
result_timezone:
description: 'The time zone where the calculation result is returned.
'
type: integer
format: int32
minimum: -12
maximum: 12
default: 0
example: 3
treat_validations_as_errors:
description: 'Treat validations as errors.
'
type: boolean
default: false
example: true
precision:
description: 'Specifies the calculation accuracy in the decimal point sequence
number. It equals 2 by default, so the accuracy is 0.01.
'
type: integer
format: int32
minimum: 0
maximum: 6
default: 2
example: 3
plan_settings:
description: Planning settings.
type: object
additionalProperties: false
nullable: false
properties:
trips_settings:
$ref: '#/components/schemas/trips_settings'
geo_settings:
$ref: '#/components/schemas/geo_settings'
external_routing:
$ref: '#/components/schemas/routing_transport_matrix_list'
calculation_settings:
$ref: '#/components/schemas/calculation_settings'
plan_task:
description: Task for planning
type: object
additionalProperties: false
properties:
locations:
description: List of locations used for orders and shifts.
type: array
uniqueItems: true
minItems: 1
maxItems: 30001
items:
$ref: '#/components/schemas/location'
orders:
description: Orders list.
type: array
uniqueItems: true
minItems: 1
maxItems: 30001
items:
$ref: '#/components/schemas/order'
performers:
description: Available performers list.
type: array
uniqueItems: true
minItems: 1
maxItems: 30001
items:
$ref: '#/components/schemas/performer'
transports:
description: Available transports list.
type: array
uniqueItems: true
minItems: 1
maxItems: 30001
items:
$ref: '#/components/schemas/transport'
hardlinks:
description: Assignments list.
type: array
uniqueItems: true
minItems: 0
maxItems: 30001
default: []
items:
$ref: '#/components/schemas/hardlink'
plan_settings:
$ref: '#/components/schemas/plan_settings'
required:
- locations
- orders
- performers
- transports
service_name:
description: Service name.
type: string
nullable: false
enum:
- UNIVERSAL
- ROUTING
- ACCOUNT
- ADMIN
- STUDIO
- PACKER
- AGRO
- STOCK
- LONGHAUL
- CLUSTER
- CARGOTIMETABLE
example: UNIVERSAL
operation_id:
description: Operation identifier.
type: string
minLength: 3
maxLength: 256
example: run_plan_calculation
tracedata:
description: Data for request tracing.
type: object
additionalProperties: false
nullable: false
properties:
code:
description: 'Unique process identifier. If an asynchronous process is running,
then the code for it will be the same, although other fields may differ.
'
type: string
format: uuid
example: 11111111-2222-3333-4444-555555555555
client:
description: 'The unique identifier of the client (`company_key` + `_|_`
+ `username`) that made the request.
'
type: string
pattern: \w+
minLength: 2
maxLength: 256
example: company_|_username
server:
description: Server identifier.
type: string
pattern: \w+
minLength: 2
maxLength: 256
example: server_name
service:
$ref: '#/components/schemas/service_name'
operation:
$ref: '#/components/schemas/operation_id'
time:
description: Date and time service method run in the [RFC 3339, section
5.6 (ISO 8601)](https://tools.ietf.org/html/rfc3339#section-5.6) format.
type: string
format: date-time
example: '2022-06-21T09:30:00+03:00'
required:
- code
- client
- server
- service
- operation
- time
assigned_performer:
description: Performer's shift assigned to the specified time (`shift_time`).
type: object
additionalProperties: false
nullable: false
properties:
performer_key:
description: Performer's key, unique identifier.
type: string
minLength: 1
maxLength: 1024
example: performer0001
shift_key:
description: Performer's shift key.
type: string
minLength: 1
maxLength: 1024
example: performer0001_shift01
shift_time:
$ref: '#/components/schemas/time_window'
required:
- performer_key
- shift_key
- shift_time
assigned_transport:
description: Transport's shift assigned to the specified time (`shift_time`).
type: object
additionalProperties: false
nullable: false
properties:
transport_key:
description: Transport key, unique identifier.
type: string
minLength: 1
maxLength: 1024
example: transport001
shift_key:
description: Transport's shift key.
type: string
minLength: 1
maxLength: 1024
example: performer01
shift_time:
$ref: '#/components/schemas/time_window'
required:
- transport_key
- shift_key
- shift_time
trip_state_flag:
description: '[Flag of state](#section/Description/Trip-model) inside trip.
'
type: string
nullable: false
enum:
- AROUND_LOCATION
- INSIDE_LOCATION
- INSIDE_LOCATION_WINDOW
- INSIDE_WORKING_WINDOW
- INSIDE_EVENT_HARD_WINDOW
- INSIDE_EVENT_SOFT_WINDOW
- ON_DEMAND
- WAITING
- RELOCATING
- BREAK
example: RELOCATING
cargo_placement:
description: One cargo placement in the compartment.
type: object
additionalProperties: false
nullable: false
properties:
box_key:
description: Compartment key.
type: string
minLength: 1
maxLength: 1024
example: box01
cargo_key:
description: Cargo key.
type: string
minLength: 1
maxLength: 1024
example: cargo01
required:
- box_key
- cargo_key
trip_state:
description: Trip state.
type: object
additionalProperties: false
nullable: false
properties:
time:
description: Start time according to the [RFC 3339, section 5.6 (ISO 8601)](https://tools.ietf.org/html/rfc3339#section-5.6).
type: string
format: date-time
example: '2022-06-21T09:30:00+03:00'
order_key:
description: Key of the order with which an action is taken.
type: string
nullable: true
default: null
minLength: 1
maxLength: 1024
example: order01
demand_key:
description: Key of the demand with which an action is taken.
type: string
nullable: true
default: null
minLength: 1
maxLength: 1024
example: demand01.1
event_key:
description: Key of the event at which an action is taken.
type: string
nullable: true
default: null
minLength: 1
maxLength: 1024
example: event01
location_key:
description: Key of the location at which an action is taken.
type: string
nullable: true
default: null
minLength: 1
maxLength: 1024
example: location01
flags:
description: "List of flags, describing current state. \nPossible flag values\
\ (locations):\n * `AROUND_LOCATION` - a performer is around a location:\
\ finished relocation to the location by routing means.\n * `INSIDE_LOCATION`\
\ - a performer is inside a location considering arrival and departure\
\ time.\n\nPossible flag values (time windows):\n * `INSIDE_WORKING_WINDOW`\
\ - a performer is inside a formal working shift window from the input\
\ task.\n * `INSIDE_LOCATION_WINDOW` - a performer is inside an availability\
\ window of a location.\n * `INSIDE_EVENT_HARD_WINDOW` - a performer\
\ is inside the hard window of an event.\n * `INSIDE_EVENT_SOFT_WINDOW`\
\ - a performer is inside the soft window of an event.\n\nPossible flag\
\ values (work states):\n * `ON_DEMAND` - a performer is working on a\
\ demand.\n * `WAITING` - a performer is waiting. \n * `RELOCATING`\
\ - a performer is relocating.\n * `BREAK` - the performer is on a break.\n"
type: array
uniqueItems: true
minItems: 0
maxItems: 9
default: []
items:
$ref: '#/components/schemas/trip_state_flag'
cargo_placements:
description: List of cargo placements.
type: array
uniqueItems: true
minItems: 0
maxItems: 1000
default: []
items:
$ref: '#/components/schemas/cargo_placement'
attributes:
$ref: '#/components/schemas/attributes'
required:
- time
- flags
trip_waitlist:
description: A list of keys assigned to orders, but not scheduled for a specific
time.
type: array
minItems: 0
maxItems: 30001
uniqueItems: true
items:
description: Order key.
type: string
minLength: 1
maxLength: 1024
example:
- order02
trip:
description: 'A trip is a sequence of states assigned to the specified performer
driving the specified transport.
'
type: object
additionalProperties: false
nullable: false
properties:
key:
description: Unique trip identifier.
type: string
minLength: 1
maxLength: 1024
example: TRIP0001
performer:
$ref: '#/components/schemas/assigned_performer'
transport:
$ref: '#/components/schemas/assigned_transport'
states:
description: List of performer's states.
type: array
uniqueItems: false
minItems: 0
maxItems: 30001
items:
$ref: '#/components/schemas/trip_state'
waitlist:
$ref: '#/components/schemas/trip_waitlist'
attributes:
$ref: '#/components/schemas/attributes'
required:
- key
- performer
- transport
- states
measurements:
description: 'Measurements of times and distances for work on location, individual
trips and planning in general.
'
type: object
additionalProperties: false
nullable: false
properties:
driving_time:
$ref: '#/components/schemas/time_duration'
waiting_time:
$ref: '#/components/schemas/time_duration'
working_time:
$ref: '#/components/schemas/time_duration'
arriving_time:
$ref: '#/components/schemas/time_duration'
departure_time:
$ref: '#/components/schemas/time_duration'
total_time:
$ref: '#/components/schemas/time_duration'
distance:
description: Distance in meters.
type: integer
format: int32
minimum: 0
example: 5200
time_window:
$ref: '#/components/schemas/time_window'
required:
- driving_time
- waiting_time
- working_time
- arriving_time
- departure_time
- total_time
- distance
- time_window
object_metrics:
description: Objects metrics.
type: object
additionalProperties: false
nullable: false
properties:
keys:
description: List of object's keys.
type: array
uniqueItems: true
minItems: 0
maxItems: 30001
items:
description: Object's key.
type: string
minLength: 1
maxLength: 1024
example:
- obj1
count:
description: The total number of objects.
type: integer
format: int32
minimum: 0
maximum: 30001
example: 1700
required:
- keys
- count
time_window_violations:
description: 'Statistics of time window violation.
'
type: object
additionalProperties: false
nullable: false
properties:
before:
$ref: '#/components/schemas/object_metrics'
description: Count and order's keys, what planned before permitted time
window.
after:
$ref: '#/components/schemas/object_metrics'
description: Count and order's keys, what planned after permitted time window.
required:
- before
- after
quality_statistics:
description: 'Quality metrics.
'
type: object
additionalProperties: false
nullable: false
properties:
soft_time_window_violations:
$ref: '#/components/schemas/time_window_violations'
description: Statistics of soft time window violations.
hard_time_window_violations:
$ref: '#/components/schemas/time_window_violations'
description: Statistics of hard time window violations.
required:
- soft_time_window_violations
- hard_time_window_violations
statistics:
description: 'General statistics for one or more trips.
'
type: object
additionalProperties: false
nullable: false
properties:
cost:
description: 'Total costs calculated based on the performer''s and transport
tariffs. The total cost is equal to the difference between the total reward
(`reward`) and expenses (`cost`).
'
type: number
format: double
minimum: 0
example: 1231.1
reward:
description: The total reward for orders fulfillment.
type: number
format: double
minimum: 0
example: 2343.3
measurements:
$ref: '#/components/schemas/measurements'
description: "Measurements of times and distances for for aggregate and\
\ individual trips:\n\n * `driving_time` - duration of driving time\n\
\ * `waiting_time` - total waiting time for all locations\n * `working_time`\
\ - total time of work execution at all locations included in the trip\n\
\ * `arriving_time` - total time to drive / park at locations\n * `departure_time`\
\ - total time for departure from locations\n * `time_window` - the start\
\ time of the first trip and the end time of the last, if there are no\
\ trips, the time of the left border of the planning horizon is returned,\
\ while the from \\ to fields have the same value\n * `total_time` -\
\ total time, composed of `driving_time` + `waiting_time` + `working_time`\
\ + `arriving_time` + `departure_time`\n * `distance` - the total length\
\ of the trip / set of trips, in meters\n"
performers_count:
description: The total number of performers involved in orders fulfillment.
type: integer
format: int32
minimum: 0
maximum: 30001
example: 257
orders_count:
description: The total number of planned and assigned orders.
type: integer
format: int32
minimum: 0
maximum: 30001
example: 1700
plan_orders_count:
description: The total number of planned orders.
type: integer
format: int32
minimum: 0
maximum: 30001
example: 1000
waitlist_orders_count:
description: The total number of assigned orders.
type: integer
format: int32
minimum: 0
maximum: 30001
example: 700
capacity_utilization:
$ref: '#/components/schemas/capacity'
description: The ratio of the total utilization value for the capacity parameter
to the capacity for this parameter.
capacity_max:
$ref: '#/components/schemas/capacity'
description: The maximum load of the transport box in fractions of a unit,
unlike utilization, cannot be more than one.
quality:
$ref: '#/components/schemas/quality_statistics'
required:
- cost
- reward
- measurements
- performers_count
- orders_count
- plan_orders_count
- waitlist_orders_count
- capacity_utilization
- capacity_max
- quality
transport_load:
description: Transport utilization by load.
type: object
additionalProperties: false
nullable: false
properties:
count:
description: Number of orders.
type: integer
format: int32
minimum: 0
maximum: 30001
example: 1460
capacity:
$ref: '#/components/schemas/capacity'
required:
- count
- capacity
stop_statistics:
description: 'Statistics for a specific stop during a trip.
'
type: object
additionalProperties: false
nullable: false
properties:
location_key:
description: Location key for stop.
type: string
minLength: 1
maxLength: 1024
example: location01
demand_ids:
description: Identifiers list of demands fulfilled at this stop.
type: array
minItems: 0
maxItems: 30001
uniqueItems: true
default: []
items:
description: 'The request identifier is obtained using the following formula:
order identifier + ''#'' + the demand identifier.
'
type: string
minLength: 1
maxLength: 1024
example: demand01
measurements:
$ref: '#/components/schemas/measurements'
description: "Measurements of times and distances for work on location:\n\
\n * `driving_time` - driving time from the previous stop to the current\
\ location\n * `waiting_time` - the duration of waiting for the execution\
\ of work at the location\n * `working_time` - the time spent on the\
\ direct execution of work at the location\n * `arriving_time` - the\
\ time spent on the entrance/parking at the location\n * `departure_time`\
\ - the time taken to leave the location\n * `time_window` - the time\
\ window from the start of movement to the stop until the end of the departure\
\ from the stop\n * `total_time` - total time for a stop, composed of\
\ `driving_time` + `waiting_time` + `working_time` + `arriving_time` +\
\ `departure_time`\n * `distance` - the distance from the previous stop\
\ to the current location\n"
upload:
$ref: '#/components/schemas/transport_load'
description: Loading to the transport at this stop.
download:
$ref: '#/components/schemas/transport_load'
description: Unloading from the transport at this stop.
max_load:
$ref: '#/components/schemas/transport_load'
description: Maximum load of the transport in the process of loading/unloading
at a stop.
arrival_load:
$ref: '#/components/schemas/transport_load'
description: Transport loading at the time of arrival at this stop.
departure_load:
$ref: '#/components/schemas/transport_load'
description: Transport loading at the moment of departure from this stop.
required:
- location_key
- demand_ids
- measurements
- upload
- download
- max_load
- arrival_load
- departure_load
trip_statistics:
description: 'Statistics for a specific trip.
'
type: object
additionalProperties: false
nullable: false
properties:
trip_key:
description: Trip key, unique identifier
type: string
minLength: 1
maxLength: 1024
example: trip01
statistics:
$ref: '#/components/schemas/statistics'
stop_statistics:
description: Statistics per stop during the trip.
type: array
minItems: 0
maxItems: 30001
uniqueItems: false
items:
$ref: '#/components/schemas/stop_statistics'
total_load:
$ref: '#/components/schemas/transport_load'
description: Total transport load for the entire trip time.
max_load:
$ref: '#/components/schemas/transport_load'
description: Maximum transport load during the entire trip (for each dimension).
max_transfer_load:
$ref: '#/components/schemas/transport_load'
description: Maximum transport load during the driving (for each dimension).
required:
- trip_key
- statistics
- stop_statistics
- total_load
- max_load
- max_transfer_load
plan_statistics:
description: 'General statistics on planned trips.
'
type: object
additionalProperties: false
nullable: true
properties:
total_statistics:
$ref: '#/components/schemas/statistics'
description: Total statistics for all trips.
trips_statistics:
description: 'List of statistics per trip, where.
'
type: array
uniqueItems: true
minItems: 0
maxItems: 30001
items:
$ref: '#/components/schemas/trip_statistics'
required:
- total_statistics
- trips_statistics
entity_validation_type:
description: "Validation type:\n * `NO_AVAILABLE_TRANSPORT` - the order cannot\
\ be fulfilled, since there is no available (by shift limitations) transport\n\
\ * `NO_AVAILABLE_PERFORMER` - the order cannot be fulfilled, since there\
\ is not a single available (by shift limitations) performer\n * `NO_COMPATIBLE_TRANSPORT`\
\ - the order cannot be completed, since there is not a single compatible\
\ (in terms of capacity and \\ or compatibility tags) transport\n * `NO_COMPATIBLE_PERFORMER`\
\ - the order cannot be completed, since there is not a single compatible\
\ (by compatibility tags) performer\n * `PICKUP_AND_DROP_VIOLATION_PRECEDENCE_IN_ORDER`\
\ - for each cargo within the order there must be exactly one loading and\
\ exactly one unloading (` precedence_in_order`)\n * `PICKUP_AND_DROP_VIOLATION_PRECEDENCE_IN_TRIP`\
\ - conflicting requirements for the precedence of orders were specified (`\
\ precedence_in_trip`)\n * `VIOLATION_PRECEDENCE_IN_TRIP_AND_ORDER` - requirements\
\ for the precedence of orders in the trip (`precedence_in_trip`) and in the\
\ order (` precedence_in_order`) contradict each other\n * `TIME_WINDOW_VIOLATION`\
\ - the start time of the time window is later than the end time of the window\n\
\ * `ORDER_WINDOWS_INTERSECTION_VIOLATION` - soft windows should not go beyond\
\ the boundaries of the hard window\n * `PERFORMER_SHIFTS_INTERSECTION_VIOLATION`\
\ - performer's work shifts should not intersect\n * `TRANSPORT_SHIFTS_INTERSECTION_VIOLATION`\
\ - transport's work shifts should not intersect\n * `LOCATION_WINDOWS_INTERSECTION_VIOLATION`\
\ - time ranges of working windows of locations should not intersect\n *\
\ `INVALID_LOCATION_DURATIONS` - location has a working window that is less\
\ than the sum of the times `arrival + departure`\n * `NO_TRANSPORT_BOXES`\
\ - if there are orders with cargo, then the transport must have at least\
\ one box\n * `MAX_CAPACITY_VIOLATION` - `max_capacity` limit exceeds the\
\ total capacity of all boxes or set for only one box or less than the capacity\
\ of some box\n * `MAX_BOXES_VIOLATION` - limit `max_boxes` is greater than\
\ or equal to the total number of boxes or specified for one box or equal\
\ to zero\n * `TOO_MANY_CARGOS_FOR_DROP_VIOLATION` - the number of loads\
\ for an order of the` DROP` type must be no more than one\n * `EMPTY_CARGOES_LIST`\
\ - empty list of loads for orders of type` DROP` / `PICKUP`\n * `GEODATA_TIME_WINDOW_VIOLATION`\
\ - the planning horizon exceeds the maximum available value\n * `SHIFT_RESTRICTIONS_COULD_BE_MORE_PRECISE`\
\ - the working window `working_window` of the change of the artist does not\
\ lie entirely inside the window of availability `availability_window`\n \
\ * `DURATION_DOES_NOT_FIT_INTO_HARD_WINDOW` - the duration of the event does\
\ not fit into the hard time window\n * `DURATION_DOES_NOT_FIT_INTO_SOFT_WINDOW`\
\ - the duration of the event does not fit into the soft time window\n"
type: string
nullable: false
enum:
- NO_AVAILABLE_TRANSPORT
- NO_AVAILABLE_PERFORMER
- NO_COMPATIBLE_TRANSPORT
- NO_COMPATIBLE_PERFORMER
- PICKUP_AND_DROP_VIOLATION_PRECEDENCE_IN_ORDER
- PICKUP_AND_DROP_VIOLATION_PRECEDENCE_IN_TRIP
- VIOLATION_PRECEDENCE_IN_TRIP_AND_ORDER
- TIME_WINDOW_VIOLATION
- ORDER_WINDOWS_INTERSECTION_VIOLATION
- PERFORMER_SHIFTS_INTERSECTION_VIOLATION
- TRANSPORT_SHIFTS_INTERSECTION_VIOLATION
- LOCATION_WINDOWS_INTERSECTION_VIOLATION
- INVALID_LOCATION_DURATIONS
- NO_TRANSPORT_BOXES
- MAX_CAPACITY_VIOLATION
- MAX_BOXES_VIOLATION
- TOO_MANY_CARGOS_FOR_DROP_VIOLATION
- EMPTY_CARGOES_LIST
- GEODATA_TIME_WINDOW_VIOLATION
- SHIFT_RESTRICTIONS_COULD_BE_MORE_PRECISE
- DURATION_DOES_NOT_FIT_INTO_HARD_WINDOW
- DURATION_DOES_NOT_FIT_INTO_SOFT_WINDOW
example: TIME_WINDOW_VIOLATION
entity_type:
description: Entity type.
type: string
nullable: false
enum:
- TASK
- SETTINGS
- ORDER
- ORDER_LINK
- PERFORMER
- PERFORMER_LINK
- TRANSPORT
- TRANSPORT_LINK
- HARDLINK
- HARDLINK_LINK
- LOCATION
- LOCATION_LINK
- BOX
- BOX_LINK
- TRIP
- TRIP_LINK
- CARGO
- CARGO_LINK
- DEMAND
- DEMAND_LINK
- EVENT
- EVENT_LINK
- PERFORMER_SHIFT
- PERFORMER_SHIFT_LINK
- TRANSPORT_SHIFT
- TRANSPORT_SHIFT_LINK
example: ORDER
entity_path:
description: 'The description of the entity and the path to it.
'
type: object
additionalProperties: false
nullable: true
properties:
entity_key:
description: Target entity key.
type: string
nullable: true
maxLength: 1024
example: order_0001
entity_type:
$ref: '#/components/schemas/entity_type'
child_entity:
$ref: '#/components/schemas/entity_path'
required:
- entity_key
- entity_type
entity_validation:
description: Description of the validation of the input data.
type: object
additionalProperties: false
properties:
type:
$ref: '#/components/schemas/entity_validation_type'
info:
description: Information about validation.
type: string
nullable: true
minLength: 0
maxLength: 2048
example: entity warning
entities:
description: List of entities related to validation.
type: array
uniqueItems: false
minItems: 0
maxItems: 30001
items:
$ref: '#/components/schemas/entity_path'
required:
- type
- entities
entity_validation_list:
description: Validation list.
type: array
uniqueItems: false
minItems: 0
maxItems: 30001
items:
$ref: '#/components/schemas/entity_validation'
example: []
unplanned_items:
description: Unplanned items list.
type: object
additionalProperties: false
properties:
order_keys:
description: Unplanned order keys list.
type: array
uniqueItems: true
minItems: 0
maxItems: 30001
items:
description: Key, unique identifier.
type: string
minLength: 1
maxLength: 1024
example: key_01
performer_keys:
description: Unplanned performer keys list.
type: array
uniqueItems: true
minItems: 0
maxItems: 30001
items:
description: Key, unique identifier.
type: string
minLength: 1
maxLength: 1024
example: key_01
transport_keys:
description: Unplanned transport keys list.
type: array
uniqueItems: true
minItems: 0
maxItems: 30001
items:
description: Key, unique identifier.
type: string
minLength: 1
maxLength: 1024
example: key_01
hardlink_keys:
description: Unplanned hardlink keys list.
type: array
uniqueItems: true
minItems: 0
maxItems: 30001
items:
description: Key, unique identifier.
type: string
minLength: 1
maxLength: 1024
example: key_01
calculation_progress:
description: 'Calculation progress as a percentage. The progress displays the
current number of completed steps.
'
type: integer
format: int32
default: 0
minimum: 0
maximum: 100
example: 52
calculation_status:
description: "Calculation status:\n * `WAITING` - the calculation is waiting\
\ to start.\n * `IN_PROGRESS` - the calculation is in progress.\n * `FINISHED_IN_TIME`\
\ - the calculation was completed before the specified planning time.\n *\
\ `FINISHED_OUT_OF_TIME` - the calculation was completed because the specified\
\ planning time has expired.\n * `CANCELED` - the calculation was canceled\
\ because a cancel command was received.\n * `CANCELED_BY_TIMEOUT` - the\
\ calculation was canceled automatically because the waiting time in the queue\
\ was exceeded.\n * `FAILED` - the calculation failed with an error.\n"
type: string
nullable: false
enum:
- WAITING
- IN_PROGRESS
- FINISHED_IN_TIME
- FINISHED_OUT_OF_TIME
- CANCELED
- CANCELED_BY_TIMEOUT
- FAILED
example: FINISHED_IN_TIME
calculation_info:
description: Calculation information.
type: object
additionalProperties: false
nullable: false
properties:
status:
$ref: '#/components/schemas/calculation_status'
result_version:
description: Planning result version.
type: integer
format: int32
minimum: 0
maximum: 1000000
example: 133
calculation_time:
$ref: '#/components/schemas/time_duration'
description: Actual calculation time, format [ISO 8601 duration](https://en.wikipedia.org/wiki/ISO_8601#Durations).
waiting_time:
$ref: '#/components/schemas/time_duration'
description: Time to prepare for calculation, format [ISO 8601 duration](https://en.wikipedia.org/wiki/ISO_8601#Durations).
required:
- status
- result_version
- calculation_time
- waiting_time
plan_result:
description: 'Planning result. It can be intermediate (during the calculation
process) and complete (after the calculation is completed).
'
type: object
additionalProperties: false
properties:
tracedata:
$ref: '#/components/schemas/tracedata'
trips:
description: Schedule of trips assigned to performers.
type: array
uniqueItems: true
minItems: 0
maxItems: 30001
default: []
items:
$ref: '#/components/schemas/trip'
statistics:
$ref: '#/components/schemas/plan_statistics'
validations:
$ref: '#/components/schemas/entity_validation_list'
unplanned_items:
$ref: '#/components/schemas/unplanned_items'
progress:
$ref: '#/components/schemas/calculation_progress'
info:
$ref: '#/components/schemas/calculation_info'
required:
- tracedata
- trips
- statistics
- progress
- info
schema_error:
description: Data error by schema.
type: object
additionalProperties: false
properties:
entity:
description: Target entity identifier.
type: string
nullable: true
maxLength: 1024
example: order_0001
message:
description: Error message.
type: string
example: bad input data
required:
- entity
- message
schema_error_list:
description: Errors list.
type: array
uniqueItems: false
minItems: 0
maxItems: 30001
items:
$ref: '#/components/schemas/schema_error'
example: []
entity_error_type:
description: "Error type:\n * `INCONSISTENT_REFERENCE` - bad reference key\
\ \n * `UNIQUE_IDS_VIOLATION` - all keys must be unique\n * `INVALID_ROUTING_MATRIX`\
\ - bad routing matrix dimension\n * `INVALID_GEO_PROVIDER` - bad geo provider\n\
\ * `COMPATIBILITY_CARGO_BOX` - no cargo is compatible with any box\n *\
\ `COMPATIBILITY_TRANSPORT_PERFORMER` - no transport is compatible with any\
\ performer\n * `COMPATIBILITY_TRANSPORT_LOCATION` - no transport is compatible\
\ with any location\n * `COMPATIBILITY_ORDER_PERFORMER` - no order is compatible\
\ with any performer \n"
type: string
nullable: false
enum:
- INCONSISTENT_REFERENCE
- UNIQUE_IDS_VIOLATION
- INVALID_ROUTING_MATRIX
- INVALID_GEO_PROVIDER
- COMPATIBILITY_CARGO_BOX
- COMPATIBILITY_TRANSPORT_PERFORMER
- COMPATIBILITY_TRANSPORT_LOCATION
- COMPATIBILITY_ORDER_PERFORMER
example: INCONSISTENT_REFERENCE
entity_error:
description: Description of the error in the input data.
type: object
additionalProperties: false
properties:
type:
$ref: '#/components/schemas/entity_error_type'
info:
description: Information about error.
type: string
nullable: true
minLength: 0
maxLength: 2048
example: entity error
entities:
description: List of entities related to error.
type: array
uniqueItems: false
minItems: 0
maxItems: 30001
items:
$ref: '#/components/schemas/entity_path'
required:
- type
- entities
entity_error_list:
description: 'List with fatal errors.
'
type: array
uniqueItems: false
minItems: 0
maxItems: 30001
items:
$ref: '#/components/schemas/entity_error'
calculation_id:
description: Calculation identifier.
type: string
format: uuid
example: 11111111-2222-3333-4444-555555555555
calculation_async_result:
description: The result of starting an asynchronous calculation.
type: object
additionalProperties: false
nullable: false
properties:
tracedata:
$ref: '#/components/schemas/tracedata'
id:
$ref: '#/components/schemas/calculation_id'
required:
- id
- tracedata
calculation_state:
description: Current calculation state.
type: object
additionalProperties: false
properties:
tracedata:
$ref: '#/components/schemas/tracedata'
progress:
$ref: '#/components/schemas/calculation_progress'
info:
$ref: '#/components/schemas/calculation_info'
required:
- tracedata
- progress
- info
validate_result:
description: Data validation result.
type: object
additionalProperties: false
properties:
tracedata:
$ref: '#/components/schemas/tracedata'
validations:
$ref: '#/components/schemas/entity_validation_list'
required:
- tracedata
- validations
order_fact:
description: Fact with order.
type: object
additionalProperties: false
nullable: false
properties:
key:
description: Fact key.
type: string
minLength: 1
maxLength: 1024
example: fact_01
order_key:
description: Order key.
type: string
minLength: 1
maxLength: 1024
example: order_01
type:
description: Fact type.
type: string
enum:
- DONE
- CANCEL
example: DONE
time:
description: Fact time in the [RFC 3339, section 5.6 (ISO 8601)](https://tools.ietf.org/html/rfc3339#section-5.6)
format.
type: string
format: date-time
example: '2022-06-21T09:30:00+03:00'
required:
- key
- order_key
- type
- time
demand_fact:
description: Fact with demand.
type: object
additionalProperties: false
nullable: false
properties:
key:
description: Fact key.
type: string
minLength: 1
maxLength: 1024
example: fact_01
order_key:
description: Order key.
type: string
minLength: 1
maxLength: 1024
example: order_01
demand_key:
description: Demand key.
type: string
minLength: 1
maxLength: 1024
example: demand_01
type:
description: "Possible fact types:\n * `START` - performer started to fulfill\
\ the demand\n * `DONE` - performer finished to fulfill the demand\n\
\ * `CANCEL` - demand calcelled \n"
type: string
enum:
- START
- DONE
- CANCEL
example: DONE
time:
description: Fact time in the [RFC 3339, section 5.6 (ISO 8601)](https://tools.ietf.org/html/rfc3339#section-5.6)
format.
type: string
format: date-time
example: '2022-06-21T09:30:00+03:00'
required:
- key
- order_key
- demand_key
- type
- time
track_point:
description: Geographical coordinate linked to a time point.
type: object
additionalProperties: false
nullable: false
properties:
geopoint:
$ref: '#/components/schemas/geopoint'
time:
description: Date and time in the [RFC 3339, section 5.6 (ISO 8601)](https://tools.ietf.org/html/rfc3339#section-5.6)
format.
type: string
format: date-time
example: '2022-06-21T19:45:00Z'
required:
- geopoint
- time
performer_fact:
description: Fact.
type: object
additionalProperties: false
nullable: false
properties:
key:
description: Fact key.
type: string
minLength: 1
maxLength: 1024
example: fact_01
time:
description: Fact time in the [RFC 3339, section 5.6 (ISO 8601)](https://tools.ietf.org/html/rfc3339#section-5.6)
format.
type: string
format: date-time
example: '2022-06-21T09:30:00+03:00'
performer_key:
description: Performer's key.
type: string
minLength: 1
maxLength: 1024
example: performer_01
position:
$ref: '#/components/schemas/track_point'
required:
- key
- time
- performer_key
- position
transport_fact:
description: Fact.
type: object
additionalProperties: false
nullable: false
properties:
key:
description: Fact key.
type: string
minLength: 1
maxLength: 1024
example: fact_01
time:
description: Fact time in the [RFC 3339, section 5.6 (ISO 8601)](https://tools.ietf.org/html/rfc3339#section-5.6)
format.
type: string
format: date-time
example: '2022-06-21T09:30:00+03:00'
transport_key:
description: Transport's key.
type: string
minLength: 1
maxLength: 1024
example: transport_01
position:
$ref: '#/components/schemas/track_point'
required:
- key
- time
- transport_key
- position
facts:
description: 'Events that have taken place.
'
type: object
additionalProperties: false
nullable: false
properties:
order_facts:
description: List of order's facts.
type: array
uniqueItems: true
minItems: 0
maxItems: 30001
default: []
items:
$ref: '#/components/schemas/order_fact'
demand_facts:
description: List of demand's facts.
type: array
uniqueItems: true
minItems: 0
maxItems: 30001
default: []
items:
$ref: '#/components/schemas/demand_fact'
performer_facts:
description: List of performers's facts.
type: array
uniqueItems: true
minItems: 0
maxItems: 30001
default: []
items:
$ref: '#/components/schemas/performer_fact'
transport_facts:
description: List of transport's facts.
type: array
uniqueItems: true
minItems: 0
maxItems: 30001
default: []
items:
$ref: '#/components/schemas/transport_fact'
replan_strategy:
description: Replan strategy.
type: object
additionalProperties: false
nullable: false
properties:
reorder:
description: Activate trip actions reorder.
type: boolean
default: false
example: true
plan_new_orders:
description: Activate new orders planning.
type: boolean
default: false
example: true
create_new_trips:
description: Activate new trips creation.
type: boolean
default: false
example: true
replan_settings:
description: Replanning settings.
type: object
additionalProperties: false
nullable: false
properties:
strategy:
$ref: '#/components/schemas/replan_strategy'
trips_settings:
$ref: '#/components/schemas/trips_settings'
geo_settings:
$ref: '#/components/schemas/geo_settings'
calculation_settings:
$ref: '#/components/schemas/calculation_settings'
external_routing:
$ref: '#/components/schemas/routing_transport_matrix_list'
replan_task:
description: Task for replanning.
type: object
additionalProperties: false
properties:
locations:
description: List of locations used for orders and shifts.
type: array
uniqueItems: true
minItems: 1
maxItems: 30001
items:
$ref: '#/components/schemas/location'
orders:
description: Orders list.
type: array
uniqueItems: true
minItems: 1
maxItems: 30001
items:
$ref: '#/components/schemas/order'
performers:
description: Available performers list.
type: array
uniqueItems: true
minItems: 1
maxItems: 30001
items:
$ref: '#/components/schemas/performer'
transports:
description: Available transports list.
type: array
uniqueItems: true
minItems: 1
maxItems: 30001
items:
$ref: '#/components/schemas/transport'
hardlinks:
description: Assignments list.
type: array
uniqueItems: true
minItems: 0
maxItems: 30001
default: []
items:
$ref: '#/components/schemas/hardlink'
trips:
description: Existing routes.
type: array
uniqueItems: true
minItems: 0
maxItems: 30001
items:
$ref: '#/components/schemas/trip'
facts:
$ref: '#/components/schemas/facts'
replan_settings:
$ref: '#/components/schemas/replan_settings'
required:
- locations
- orders
- performers
- transports
- trips
actualize_settings:
description: 'Actualize settings.
'
type: object
nullable: false
additionalProperties: false
properties:
current_time:
description: 'Current date and time according to the [RFC 3339, section
5.6 (ISO 8601)](https://tools.ietf.org/html/rfc3339#section-5.6). If not
specified, the current time when the request was received by the server
is taken.
'
type: string
format: date-time
nullable: true
example: '2022-06-21T09:30:00+03:00'
geo_settings:
$ref: '#/components/schemas/geo_settings'
calculation_settings:
$ref: '#/components/schemas/calculation_settings'
actualize_task:
description: 'Task for the trips actualization.
'
type: object
additionalProperties: false
properties:
locations:
description: List of locations used for orders and shifts.
type: array
uniqueItems: true
minItems: 1
maxItems: 30001
items:
$ref: '#/components/schemas/location'
orders:
description: Orders list.
type: array
uniqueItems: true
minItems: 1
maxItems: 30001
items:
$ref: '#/components/schemas/order'
performers:
description: Available performers list.
type: array
uniqueItems: true
minItems: 1
maxItems: 30001
items:
$ref: '#/components/schemas/performer'
transports:
description: Available transports list.
type: array
uniqueItems: true
minItems: 1
maxItems: 30001
items:
$ref: '#/components/schemas/transport'
hardlinks:
description: Assignments list.
type: array
uniqueItems: true
minItems: 0
maxItems: 30001
items:
$ref: '#/components/schemas/hardlink'
trips:
description: Existing routes.
type: array
uniqueItems: true
minItems: 0
maxItems: 30001
items:
$ref: '#/components/schemas/trip'
facts:
$ref: '#/components/schemas/facts'
actualize_settings:
$ref: '#/components/schemas/actualize_settings'
required:
- locations
- orders
- performers
- transports
- trips
predict_settings:
description: Predict settings.
type: object
additionalProperties: false
nullable: false
properties:
max_window_count:
description: 'The maximum number of calculated optimal time windows in which
an order can be fulfilled.
'
type: integer
format: int32
minimum: 1
maximum: 5
default: 2
example: 3
trips_settings:
$ref: '#/components/schemas/trips_settings'
geo_settings:
$ref: '#/components/schemas/geo_settings'
calculation_settings:
$ref: '#/components/schemas/calculation_settings'
predict_task:
description: 'PredictResult.
'
type: object
additionalProperties: false
properties:
new_order:
$ref: '#/components/schemas/order'
locations:
description: List of locations used for orders and shifts.
type: array
uniqueItems: true
minItems: 1
maxItems: 101
items:
$ref: '#/components/schemas/location'
orders:
description: Orders list.
type: array
uniqueItems: true
minItems: 1
maxItems: 101
items:
$ref: '#/components/schemas/order'
performers:
description: Available performers list.
type: array
uniqueItems: true
minItems: 1
maxItems: 101
items:
$ref: '#/components/schemas/performer'
transports:
description: Available transports list.
type: array
uniqueItems: true
minItems: 1
maxItems: 101
items:
$ref: '#/components/schemas/transport'
hardlinks:
description: Assignments list.
type: array
uniqueItems: true
minItems: 0
maxItems: 101
default: []
items:
$ref: '#/components/schemas/hardlink'
trips:
description: Existing routes.
type: array
uniqueItems: true
minItems: 0
maxItems: 101
default: []
items:
$ref: '#/components/schemas/trip'
predict_settings:
$ref: '#/components/schemas/predict_settings'
required:
- new_order
- locations
- orders
- performers
- transports
order_fulfillment_option:
description: 'Order fulfillment option.
'
type: object
additionalProperties: false
properties:
event_key:
description: Key of the optimal event.
type: string
minLength: 1
maxLength: 1024
cost:
description: Стоимость выполнения заказа в соответствующее событию временное
окно и место.
type: number
format: double
minimum: 0
example: 333.3
required:
- event_key
- cost
predict_result:
description: 'PredictResult.
'
type: object
additionalProperties: false
properties:
tracedata:
$ref: '#/components/schemas/tracedata'
options:
description: List of the best options for order fulfillment.
type: array
uniqueItems: false
minItems: 0
maxItems: 101
items:
$ref: '#/components/schemas/order_fulfillment_option'
restricted_event_keys:
description: List of the restricted options for order fulfillment.
type: array
uniqueItems: true
default: []
minItems: 0
maxItems: 101
items:
description: Key of the optimal event.
type: string
minLength: 1
maxLength: 1024
example:
- evt01
validations:
$ref: '#/components/schemas/entity_validation_list'
required:
- tracedata
- options
universal_data:
description: 'VRt.Universal JSON format. A general list of data and settings
that combines all data for planning, replaning and actualization.
'
type: object
additionalProperties: false
properties:
locations:
description: List of locations used for orders and shifts.
type: array
uniqueItems: true
minItems: 0
maxItems: 30001
items:
$ref: '#/components/schemas/location'
orders:
description: Orders list.
type: array
uniqueItems: true
minItems: 0
maxItems: 30001
items:
$ref: '#/components/schemas/order'
performers:
description: Available performers list.
type: array
uniqueItems: true
minItems: 0
maxItems: 30001
items:
$ref: '#/components/schemas/performer'
transports:
description: Available transports list.
type: array
uniqueItems: true
minItems: 0
maxItems: 30001
items:
$ref: '#/components/schemas/transport'
hardlinks:
description: Assignments list.
type: array
uniqueItems: true
minItems: 0
maxItems: 30001
items:
$ref: '#/components/schemas/hardlink'
trips:
description: Existing routes.
type: array
uniqueItems: true
minItems: 0
maxItems: 30001
items:
$ref: '#/components/schemas/trip'
facts:
$ref: '#/components/schemas/facts'
statistics:
$ref: '#/components/schemas/plan_statistics'
plan_settings:
$ref: '#/components/schemas/plan_settings'
replan_settings:
$ref: '#/components/schemas/replan_settings'
actualize_settings:
$ref: '#/components/schemas/actualize_settings'
file_xlsx:
description: File with data in [XLSX](https://en.wikipedia.org/wiki/Microsoft_Excel)
format.
type: string
format: byte
analytics_overview_task:
description: 'Data for analytics.
'
type: object
additionalProperties: false
properties:
locations:
description: List of locations used for orders and shifts.
type: array
uniqueItems: true
minItems: 1
maxItems: 30001
items:
$ref: '#/components/schemas/location'
orders:
description: Orders list.
type: array
uniqueItems: true
minItems: 1
maxItems: 30001
items:
$ref: '#/components/schemas/order'
performers:
description: Available performers list.
type: array
uniqueItems: true
minItems: 1
maxItems: 30001
items:
$ref: '#/components/schemas/performer'
transports:
description: Available transports list.
type: array
uniqueItems: true
minItems: 1
maxItems: 30001
items:
$ref: '#/components/schemas/transport'
hardlinks:
description: Assignments list.
type: array
uniqueItems: true
minItems: 0
maxItems: 30001
items:
$ref: '#/components/schemas/hardlink'
trips:
description: Existing routes.
type: array
uniqueItems: true
minItems: 0
maxItems: 30001
items:
$ref: '#/components/schemas/trip'
facts:
$ref: '#/components/schemas/facts'
required:
- locations
- orders
- performers
- transports
- trips
analytics_performer_stats:
description: Performer statistics.
type: object
additionalProperties: false
nullable: false
properties:
performer_key:
description: Performer's key.
type: string
minLength: 1
maxLength: 1024
example: performer_01
measurements:
$ref: '#/components/schemas/measurements'
description: "Measurements of times and distances for for aggregate and\
\ individual trips:\n\n * `driving_time` - duration of driving time\n\
\ * `waiting_time` - total waiting time for all locations\n * `working_time`\
\ - total time of work execution at all locations included in the trip\n\
\ * `arriving_time` - total time to drive / park at locations\n * `departure_time`\
\ - total time for departure from locations\n * `time_window` - the start\
\ time of the first trip and the end time of the last, if there are no\
\ trips, the time of the left border of the planning horizon is returned,\
\ while the from \\ to fields have the same value\n * `total_time` -\
\ total time, composed of `driving_time` + `waiting_time` + `working_time`\
\ + `arriving_time` + `departure_time`\n * `distance` - the total length\
\ of the trip / set of trips, in meters\n \n"
required:
- performer_key
- measurements
analytics_overview_result:
description: Analytics overview.
type: object
additionalProperties: false
properties:
tracedata:
$ref: '#/components/schemas/tracedata'
analytics_performer_statistics:
description: Performer statistics.
type: array
uniqueItems: false
minItems: 0
maxItems: 30001
items:
$ref: '#/components/schemas/analytics_performer_stats'
required:
- tracedata
- analytics_performer_statistics
analytics_unplanned_check_group_type:
description: "Groups of reasons:\n * `SHORT_TIME_WINDOW` - Narrow time windows.\n\
\ * `LACK_RESOURCE` - Not enough vehicles and performers.\n * `LOW_ORDER_COMPATIBILITY`\
\ - Low order compatibility with each other.\n * `LOW_RESOURCE_COMPATIBILITY`\
\ - Few compatible resources.\n * `LOW_CAPACITY` - Lack of a resource with\
\ a certain capacity.\n * `LACK_CAPACITY` - Insufficient vehicle capacity.\n\
\ * `HUGE_PEAK_LOAD` - Large peak load on orders.\n * `FAR_LOCATION` - Potentially\
\ problematic geo-location point.\n * `FAR_ORDER` - Potentially bad order\
\ time window.\n"
enum:
- SHORT_TIME_WINDOW
- LACK_RESOURCE
- LOW_ORDER_COMPATIBILITY
- LOW_RESOURCE_COMPATIBILITY
- LOW_CAPACITY
- LACK_CAPACITY
- HUGE_PEAK_LOAD
- FAR_LOCATION
- FAR_ORDER
analytics_unplanned_check_settings:
description: Checks settings.
type: object
nullable: false
additionalProperties: false
properties:
short_time_window:
description: Settings for SHORT_TIME_WINDOW.
type: object
nullable: false
additionalProperties: false
properties:
percent:
description: Percent.
type: integer
format: int32
minimum: 0
maximum: 100
default: 90
example: 99
lack_resource:
description: Settings for LACK_RESOURCE.
type: object
nullable: false
additionalProperties: false
properties:
percent:
description: Percent.
type: integer
format: int32
minimum: 0
maximum: 100
default: 90
example: 99
low_order_compatibility:
description: Settings for LOW_ORDER_COMPATIBILITY.
type: object
nullable: false
additionalProperties: false
properties:
count:
description: Count.
type: integer
format: int32
minimum: 0
maximum: 9000
default: 10
example: 2
percent:
description: Percent.
type: integer
format: int32
minimum: 0
maximum: 100
default: 5
example: 13
low_resource_compatibility:
description: Settings for LOW_RESOURCE_COMPATIBILITY.
type: object
nullable: false
additionalProperties: false
properties:
percent:
description: Percent.
type: integer
format: int32
minimum: 0
maximum: 100
default: 80
example: 70
lack_capacity:
description: Settings for LACK_CAPACITY.
type: object
nullable: false
additionalProperties: false
properties:
max_ratio:
description: Count.
type: integer
format: int32
minimum: 0
maximum: 1000
default: 25
example: 50
huge_peak_load:
description: Settings for HUGE_PEAK_LOAD.
type: object
nullable: false
additionalProperties: false
properties:
percent:
description: Percent.
type: integer
format: int32
minimum: 0
maximum: 100
default: 80
example: 70
far_location:
description: Settings for FAR_LOCATION.
type: object
nullable: false
additionalProperties: false
properties:
count:
description: Count.
type: integer
format: int32
minimum: 0
maximum: 9000
default: 5
example: 10
far_order:
description: Settings for FAR_ORDER.
type: object
nullable: false
additionalProperties: false
properties:
planned_locations_count:
description: Count.
type: integer
format: int32
minimum: 0
maximum: 9000
default: 2
example: 30
unplanned_locations_count:
description: Count.
type: integer
format: int32
minimum: 0
maximum: 9000
default: 2
example: 30
time_delta:
description: Time delta.
type: integer
format: int32
minimum: 0
maximum: 100
default: 30
example: 70
analytics_unplanned_settings:
description: Unplanned analytics settings.
type: object
nullable: false
additionalProperties: false
properties:
include_checks:
description: Include checks.
type: array
uniqueItems: true
minItems: 0
maxItems: 14
items:
$ref: '#/components/schemas/analytics_unplanned_check_group_type'
check_settings:
$ref: '#/components/schemas/analytics_unplanned_check_settings'
analytics_unplanned_task:
description: 'Data for analytics.
'
type: object
additionalProperties: false
properties:
locations:
description: List of locations used for orders and shifts.
type: array
uniqueItems: true
minItems: 1
maxItems: 30001
items:
$ref: '#/components/schemas/location'
orders:
description: Orders list.
type: array
uniqueItems: true
minItems: 1
maxItems: 30001
items:
$ref: '#/components/schemas/order'
performers:
description: Available performers list.
type: array
uniqueItems: true
minItems: 1
maxItems: 30001
items:
$ref: '#/components/schemas/performer'
transports:
description: Available transports list.
type: array
uniqueItems: true
minItems: 1
maxItems: 30001
items:
$ref: '#/components/schemas/transport'
hardlinks:
description: Assignments list.
type: array
uniqueItems: true
minItems: 0
maxItems: 30001
items:
$ref: '#/components/schemas/hardlink'
trips:
description: Existing routes.
type: array
uniqueItems: true
minItems: 0
maxItems: 30001
items:
$ref: '#/components/schemas/trip'
analytics_unplanned_settings:
$ref: '#/components/schemas/analytics_unplanned_settings'
required:
- locations
- orders
- performers
- transports
- trips
analytics_unplanned_highlight_type:
description: "SHORT_TIME_WINDOW reason group:\n * `SHORT_TIME_WINDOW_BY_DURATION`\
\ - The lead time is almost entirely occupied by the order window (the order\
\ window - this time window includes the time for work, not just the start\
\ time of the order).\n * `SHORT_TIME_WINDOW_BY_LOCATION` - The time windows\
\ of the application and the corresponding location almost do not overlap\
\ (the time windows of the work itself and its location are very different\
\ from each other).\n\nLACK_RESOURCE reason group:\n * `LACK_RESOURCE_BY_COMPATIBILITY`\
\ - Lack of artist / transport with a specific tag.\n * `LACK_RESOURCE_BY_LOCATION`\
\ - Lack of location-compatible transport.\n * `LACK_RESOURCE_BY_BOX` - Lack\
\ of transport with compatible cargo compartments.\n\nLOW_ORDER_COMPATIBILITY\
\ reason group:\n * `LOW_ORDER_COMPATIBILITY_DEMANDS` - The number of orders\
\ (more than the permissible percentage and more than the permissible number)\
\ are incompatible with all the others, because of this, an additional pair\
\ of executor-transport is required, which is not enough.\n\nLOW_RESOURCE_COMPATIBILITY\
\ reason group:\n * `LOW_RESOURCE_COMPATIBILITY_PERFORMER` - Among the total\
\ amount of input resources, some of the performers, less than the specified\
\ one, can be assigned to the transport, there may be an error in compatibility\
\ tags or shift time windows.\n * `LOW_RESOURCE_COMPATIBILITY_TRANSPORT`\
\ - Among the total volume of input resources, a part of the transport that\
\ is less than the specified one can be assigned to performers, there may\
\ be an error in compatibility tags or shift time windows.\n\nLOW_CAPACITY\
\ reason group:\n * `LOW_CAPACITY_TRANSPORT` - Lack of transport with a certain\
\ capacity.\n\nLACK_CAPACITY reason group:\n * `LACK_CAPACITY_TRANSPORT`\
\ - An unused vehicle has a value that is orders of magnitude lower than all\
\ other units of the same type of vehicle in some field describing the capacity,\
\ there may be an error when registering the capacity of the vehicle.\n \n\
Reason group HUGE_PEAK_LOAD:\n * `HUGE_PEAK_LOAD_ORDERS` - Too narrow time\
\ windows, many orders arrive at the same time, a large peak load of trips\
\ with which resources cannot cope, uneven distribution of orders over a shift.\n\
\nFAR_LOCATION reason group:\n * `FAR_LOCATION_ALL` - The location of the\
\ order lies outside the distribution of the entire dataset, the order point\
\ is most likely not geocoded correctly.\n * `FAR_LOCATION_NEAREST` - The\
\ location of the order lies outside the distribution of the nearest N points,\
\ the order point is most likely not geocoded correctly.\n\nFAR_ORDER reason\
\ group:\n * `FAR_ORDER_TIME_WINDOW`- The time window does not overlap with\
\ neighboring orders.\n"
enum:
- SHORT_TIME_WINDOW_BY_DURATION
- SHORT_TIME_WINDOW_BY_LOCATION
- LACK_RESOURCE_BY_COMPATIBILITY
- LACK_RESOURCE_BY_LOCATION
- LACK_RESOURCE_BY_BOX
- LOW_ORDER_COMPATIBILITY_DEMANDS
- LOW_RESOURCE_COMPATIBILITY_PERFORMER
- LOW_RESOURCE_COMPATIBILITY_TRANSPORT
- LOW_CAPACITY_TRANSPORT
- LACK_CAPACITY_TRANSPORT
- HUGE_PEAK_LOAD_ORDERS
- FAR_LOCATION_ALL
- FAR_LOCATION_NEAREST
- FAR_ORDER_TIME_WINDOW
analytics_unplanned_highlight:
description: Analytics part.
type: object
additionalProperties: false
properties:
type:
$ref: '#/components/schemas/analytics_unplanned_highlight_type'
group:
$ref: '#/components/schemas/analytics_unplanned_check_group_type'
details:
description: Detail.
type: string
example: tag1, tag2, tag3
order_keys:
description: Unplanned order keys list.
type: array
uniqueItems: true
minItems: 0
maxItems: 30001
items:
description: Key, unique identifier.
type: string
minLength: 1
maxLength: 1024
example: key_01
performer_keys:
description: Unplanned performer keys list.
type: array
uniqueItems: true
minItems: 0
maxItems: 30001
items:
description: Key, unique identifier.
type: string
minLength: 1
maxLength: 1024
example: key_01
transport_keys:
description: Unplanned transport keys list.
type: array
uniqueItems: true
minItems: 0
maxItems: 30001
items:
description: Key, unique identifier.
type: string
minLength: 1
maxLength: 1024
example: key_01
hardlink_keys:
description: Unplanned hardlink keys list.
type: array
uniqueItems: true
minItems: 0
maxItems: 30001
items:
description: Key, unique identifier.
type: string
minLength: 1
maxLength: 1024
example: key_01
required:
- type
- group
- details
- order_keys
- performer_keys
- transport_keys
- hardlink_keys
analytics_unplanned_result:
description: Unplanned analytics.
type: object
additionalProperties: false
properties:
tracedata:
$ref: '#/components/schemas/tracedata'
highlights:
description: List of guesses.
type: array
uniqueItems: false
minItems: 0
maxItems: 1001
items:
$ref: '#/components/schemas/analytics_unplanned_highlight'
required:
- tracedata
- highlights
check_result:
description: Service availability result.
type: object
additionalProperties: false
properties:
health:
description: 'Current health.
'
type: number
format: double
minimum: 0
maximum: 1
example: 0.999
required:
- health
version_result:
description: Service version.
type: object
additionalProperties: false
properties:
major:
description: 'Product version.
Within a single version, compatibility of common data structures between
services is guaranteed.
A version change indicates changes that are incompatible with previous
versions of the product (and all services).
'
type: integer
format: int32
minimum: 1
maximum: 100
example: 4
minor:
description: 'Minor version of the service.
A version change indicates new functionality.
The update is backward compatible with the major version of the service.
'
type: integer
format: int32
minimum: 0
maximum: 111
example: 4
build:
description: "Build version. \nContains backwards compatible bug fixes\
\ and docs update.\n"
type: string
minLength: 1
maxLength: 64
example: 1754RC
required:
- major
- minor
- build
file_html:
description: File with data in [HTML](https://html.spec.whatwg.org/) format.
type: string
file_json:
description: File with data in [JSON](https://www.json.org/) format.
type: string
examples:
PlanTaskTokyo:
summary: Tokyo
value:
locations:
- key: location_client_1
geopoint:
latitude: 35.7048259
longitude: 139.7297071
- key: location_client_2
geopoint:
latitude: 35.71861
longitude: 139.7190533
- key: location_client_3
geopoint:
latitude: 35.7099049
longitude: 139.7265958
- key: location_storage
geopoint:
latitude: 35.7042346
longitude: 139.6531996
orders:
- key: order_1
demands:
- key: demand_1_drop
demand_type: DROP
target_cargos:
- order_1_cargos
possible_events:
- key: demand_1_drop_event
location_key: location_client_1
duration: PT10M
hard_time_window:
from: '2022-06-08T05:00:00+00:00'
to: '2022-06-08T07:00:00+00:00'
- key: demand_1_pickup
demand_type: PICKUP
target_cargos:
- order_1_cargos
possible_events:
- key: demand_1_pickup_event
location_key: location_storage
duration: P0D
reward: 0
hard_time_window:
from: '2022-06-07T21:00:00+00:00'
to: '2022-06-08T20:59:59+00:00'
cargos:
- key: order_1_cargos
capacity:
mass: 1
- key: order_2
demands:
- key: demand_2_drop
demand_type: DROP
target_cargos:
- order_2_cargos
possible_events:
- key: demand_2_drop_event
location_key: location_client_2
duration: PT10M
hard_time_window:
from: '2022-06-08T05:00:00+00:00'
to: '2022-06-08T07:00:00+00:00'
- key: demand_2_pickup
demand_type: PICKUP
target_cargos:
- order_2_cargos
possible_events:
- key: demand_2_pickup_event
location_key: location_storage
duration: P0D
reward: 0
hard_time_window:
from: '2022-06-07T21:00:00+00:00'
to: '2022-06-08T20:59:59+00:00'
cargos:
- key: order_2_cargos
capacity:
mass: 1
- key: order_3
demands:
- key: demand_3_work
demand_type: WORK
possible_events:
- key: demand_3_work_event
location_key: location_client_3
duration: PT15M
hard_time_window:
from: '2022-06-08T05:00:00+00:00'
to: '2022-06-08T07:00:00+00:00'
performers:
- key: performer_1
shifts:
- key: performer_1_shift
availability_time:
from: '2022-06-07T21:00:00+00:00'
to: '2022-06-08T20:59:59+00:00'
working_time:
from: '2022-06-07T21:00:00+00:00'
to: '2022-06-08T20:59:59+00:00'
tariff:
cost_per_shift: 1000
constraints:
- stage_length: 720
cost_per_unit: 1
transports:
- key: transport_1
shifts:
- key: transport_1_shift
availability_time:
from: '2022-06-07T21:00:00+00:00'
to: '2022-06-08T20:59:59+00:00'
working_time:
from: '2022-06-07T21:00:00+00:00'
to: '2022-06-08T20:59:59+00:00'
tariff:
cost_per_shift: 1000
constraints:
- stage_length: 1000000
cost_per_unit: 0.01
transport_type: CAR
boxes:
- key: box_1
capacity:
mass: 300
plan_settings:
trips_settings:
configuration: optimize_distance
geo_settings:
toll_roads: true
traffic_jams: false
PlanTaskMoscow:
summary: Moscow
value:
locations:
- key: location_client_1
geopoint:
latitude: 55.713699
longitude: 37.621839
- key: location_client_2
geopoint:
latitude: 55.630721
longitude: 37.62493
- key: location_client_3
geopoint:
latitude: 55.722801
longitude: 37.674984
- key: location_storage
geopoint:
latitude: 55.685853
longitude: 37.43181
orders:
- key: order_1
demands:
- key: demand_1_drop
demand_type: DROP
target_cargos:
- order_1_cargos
possible_events:
- key: demand_1_drop_event
location_key: location_client_1
duration: PT10M
hard_time_window:
from: '2022-06-08T05:00:00+00:00'
to: '2022-06-08T07:00:00+00:00'
- key: demand_1_pickup
demand_type: PICKUP
target_cargos:
- order_1_cargos
possible_events:
- key: demand_1_pickup_event
location_key: location_storage
duration: P0D
reward: 0
hard_time_window:
from: '2022-06-07T21:00:00+00:00'
to: '2022-06-08T20:59:59+00:00'
cargos:
- key: order_1_cargos
capacity:
mass: 1
- key: order_2
demands:
- key: demand_2_drop
demand_type: DROP
target_cargos:
- order_2_cargos
possible_events:
- key: demand_2_drop_event
location_key: location_client_2
duration: PT10M
hard_time_window:
from: '2022-06-08T05:00:00+00:00'
to: '2022-06-08T07:00:00+00:00'
- key: demand_2_pickup
demand_type: PICKUP
target_cargos:
- order_2_cargos
possible_events:
- key: demand_2_pickup_event
location_key: location_storage
duration: P0D
reward: 0
hard_time_window:
from: '2022-06-07T21:00:00+00:00'
to: '2022-06-08T20:59:59+00:00'
cargos:
- key: order_2_cargos
capacity:
mass: 1
- key: order_3
demands:
- key: demand_3_work
demand_type: WORK
possible_events:
- key: demand_3_work_event
location_key: location_client_3
duration: PT15M
hard_time_window:
from: '2022-06-08T05:00:00+00:00'
to: '2022-06-08T07:00:00+00:00'
performers:
- key: performer_1
shifts:
- key: performer_1_shift
availability_time:
from: '2022-06-07T21:00:00+00:00'
to: '2022-06-08T20:59:59+00:00'
working_time:
from: '2022-06-07T21:00:00+00:00'
to: '2022-06-08T20:59:59+00:00'
tariff:
cost_per_shift: 1000
constraints:
- stage_length: 720
cost_per_unit: 1
transports:
- key: transport_1
shifts:
- key: transport_1_shift
availability_time:
from: '2022-06-07T21:00:00+00:00'
to: '2022-06-08T20:59:59+00:00'
working_time:
from: '2022-06-07T21:00:00+00:00'
to: '2022-06-08T20:59:59+00:00'
tariff:
cost_per_shift: 1000
constraints:
- stage_length: 1000000
cost_per_unit: 0.01
transport_type: CAR
boxes:
- key: box_1
capacity:
mass: 300
plan_settings:
trips_settings:
configuration: optimize_distance
geo_settings:
toll_roads: true
traffic_jams: false
PlanTaskDenver:
summary: Denver
value:
locations:
- key: location_client_1
geopoint:
latitude: 39.7116126
longitude: -104.9145664
- key: location_client_2
geopoint:
latitude: 39.7851755
longitude: -104.9285619
- key: location_client_3
geopoint:
latitude: 39.745829
longitude: -105.0013897
- key: location_storage
geopoint:
latitude: 39.82519
longitude: -105.1185757
orders:
- key: order_1
demands:
- key: demand_1_drop
demand_type: DROP
target_cargos:
- order_1_cargos
possible_events:
- key: demand_1_drop_event
location_key: location_client_1
duration: PT10M
hard_time_window:
from: '2022-06-08T05:00:00+00:00'
to: '2022-06-08T07:00:00+00:00'
- key: demand_1_pickup
demand_type: PICKUP
target_cargos:
- order_1_cargos
possible_events:
- key: demand_1_pickup_event
location_key: location_storage
duration: P0D
reward: 0
hard_time_window:
from: '2022-06-07T21:00:00+00:00'
to: '2022-06-08T20:59:59+00:00'
cargos:
- key: order_1_cargos
capacity:
mass: 1
- key: order_2
demands:
- key: demand_2_drop
demand_type: DROP
target_cargos:
- order_2_cargos
possible_events:
- key: demand_2_drop_event
location_key: location_client_2
duration: PT10M
hard_time_window:
from: '2022-06-08T05:00:00+00:00'
to: '2022-06-08T07:00:00+00:00'
- key: demand_2_pickup
demand_type: PICKUP
target_cargos:
- order_2_cargos
possible_events:
- key: demand_2_pickup_event
location_key: location_storage
duration: P0D
reward: 0
hard_time_window:
from: '2022-06-07T21:00:00+00:00'
to: '2022-06-08T20:59:59+00:00'
cargos:
- key: order_2_cargos
capacity:
mass: 1
- key: order_3
demands:
- key: demand_3_work
demand_type: WORK
possible_events:
- key: demand_3_work_event
location_key: location_client_3
duration: PT15M
hard_time_window:
from: '2022-06-08T05:00:00+00:00'
to: '2022-06-08T07:00:00+00:00'
performers:
- key: performer_1
shifts:
- key: performer_1_shift
availability_time:
from: '2022-06-07T21:00:00+00:00'
to: '2022-06-08T20:59:59+00:00'
working_time:
from: '2022-06-07T21:00:00+00:00'
to: '2022-06-08T20:59:59+00:00'
tariff:
cost_per_shift: 1000
constraints:
- stage_length: 720
cost_per_unit: 1
transports:
- key: transport_1
shifts:
- key: transport_1_shift
availability_time:
from: '2022-06-07T21:00:00+00:00'
to: '2022-06-08T20:59:59+00:00'
working_time:
from: '2022-06-07T21:00:00+00:00'
to: '2022-06-08T20:59:59+00:00'
tariff:
cost_per_shift: 1000
constraints:
- stage_length: 1000000
cost_per_unit: 0.01
transport_type: CAR
boxes:
- key: box_1
capacity:
mass: 300
plan_settings:
trips_settings:
configuration: optimize_distance
geo_settings:
toll_roads: true
traffic_jams: false
PlanTaskBerlin:
summary: Berlin
value:
locations:
- key: location_client_1
geopoint:
latitude: 52.431792
longitude: 13.3383233
- key: location_client_2
geopoint:
latitude: 52.458667
longitude: 13.3772083
- key: location_client_3
geopoint:
latitude: 52.437161
longitude: 13.4654563
- key: location_storage
geopoint:
latitude: 52.532906
longitude: 13.3431423
orders:
- key: order_1
demands:
- key: demand_1_drop
demand_type: DROP
target_cargos:
- order_1_cargos
possible_events:
- key: demand_1_drop_event
location_key: location_client_1
duration: PT10M
hard_time_window:
from: '2022-06-08T05:00:00+00:00'
to: '2022-06-08T07:00:00+00:00'
- key: demand_1_pickup
demand_type: PICKUP
target_cargos:
- order_1_cargos
possible_events:
- key: demand_1_pickup_event
location_key: location_storage
duration: P0D
reward: 0
hard_time_window:
from: '2022-06-07T21:00:00+00:00'
to: '2022-06-08T20:59:59+00:00'
cargos:
- key: order_1_cargos
capacity:
mass: 1
- key: order_2
demands:
- key: demand_2_drop
demand_type: DROP
target_cargos:
- order_2_cargos
possible_events:
- key: demand_2_drop_event
location_key: location_client_2
duration: PT10M
hard_time_window:
from: '2022-06-08T05:00:00+00:00'
to: '2022-06-08T07:00:00+00:00'
- key: demand_2_pickup
demand_type: PICKUP
target_cargos:
- order_2_cargos
possible_events:
- key: demand_2_pickup_event
location_key: location_storage
duration: P0D
reward: 0
hard_time_window:
from: '2022-06-07T21:00:00+00:00'
to: '2022-06-08T20:59:59+00:00'
cargos:
- key: order_2_cargos
capacity:
mass: 1
- key: order_3
demands:
- key: demand_3_work
demand_type: WORK
possible_events:
- key: demand_3_work_event
location_key: location_client_3
duration: PT15M
hard_time_window:
from: '2022-06-08T05:00:00+00:00'
to: '2022-06-08T07:00:00+00:00'
performers:
- key: performer_1
shifts:
- key: performer_1_shift
availability_time:
from: '2022-06-07T21:00:00+00:00'
to: '2022-06-08T20:59:59+00:00'
working_time:
from: '2022-06-07T21:00:00+00:00'
to: '2022-06-08T20:59:59+00:00'
tariff:
cost_per_shift: 1000
constraints:
- stage_length: 720
cost_per_unit: 1
transports:
- key: transport_1
shifts:
- key: transport_1_shift
availability_time:
from: '2022-06-07T21:00:00+00:00'
to: '2022-06-08T20:59:59+00:00'
working_time:
from: '2022-06-07T21:00:00+00:00'
to: '2022-06-08T20:59:59+00:00'
tariff:
cost_per_shift: 1000
constraints:
- stage_length: 1000000
cost_per_unit: 0.01
transport_type: CAR
boxes:
- key: box_1
capacity:
mass: 300
plan_settings:
trips_settings:
configuration: optimize_distance
geo_settings:
toll_roads: true
traffic_jams: false
PlanTaskBeijing:
summary: Beijing
value:
locations:
- key: location_client_1
geopoint:
latitude: 39.873105
longitude: 116.3563913
- key: location_client_2
geopoint:
latitude: 39.929733
longitude: 116.3203273
- key: location_client_3
geopoint:
latitude: 39.9227559
longitude: 116.3260136
- key: location_storage
geopoint:
latitude: 39.904054
longitude: 116.2568843
orders:
- key: order_1
demands:
- key: demand_1_drop
demand_type: DROP
target_cargos:
- order_1_cargos
possible_events:
- key: demand_1_drop_event
location_key: location_client_1
duration: PT10M
hard_time_window:
from: '2022-06-08T05:00:00+00:00'
to: '2022-06-08T07:00:00+00:00'
- key: demand_1_pickup
demand_type: PICKUP
target_cargos:
- order_1_cargos
possible_events:
- key: demand_1_pickup_event
location_key: location_storage
duration: P0D
reward: 0
hard_time_window:
from: '2022-06-07T21:00:00+00:00'
to: '2022-06-08T20:59:59+00:00'
cargos:
- key: order_1_cargos
capacity:
mass: 1
- key: order_2
demands:
- key: demand_2_drop
demand_type: DROP
target_cargos:
- order_2_cargos
possible_events:
- key: demand_2_drop_event
location_key: location_client_2
duration: PT10M
hard_time_window:
from: '2022-06-08T05:00:00+00:00'
to: '2022-06-08T07:00:00+00:00'
- key: demand_2_pickup
demand_type: PICKUP
target_cargos:
- order_2_cargos
possible_events:
- key: demand_2_pickup_event
location_key: location_storage
duration: P0D
reward: 0
hard_time_window:
from: '2022-06-07T21:00:00+00:00'
to: '2022-06-08T20:59:59+00:00'
cargos:
- key: order_2_cargos
capacity:
mass: 1
- key: order_3
demands:
- key: demand_3_work
demand_type: WORK
possible_events:
- key: demand_3_work_event
location_key: location_client_3
duration: PT15M
hard_time_window:
from: '2022-06-08T05:00:00+00:00'
to: '2022-06-08T07:00:00+00:00'
performers:
- key: performer_1
shifts:
- key: performer_1_shift
availability_time:
from: '2022-06-07T21:00:00+00:00'
to: '2022-06-08T20:59:59+00:00'
working_time:
from: '2022-06-07T21:00:00+00:00'
to: '2022-06-08T20:59:59+00:00'
tariff:
cost_per_shift: 1000
constraints:
- stage_length: 720
cost_per_unit: 1
transports:
- key: transport_1
shifts:
- key: transport_1_shift
availability_time:
from: '2022-06-07T21:00:00+00:00'
to: '2022-06-08T20:59:59+00:00'
working_time:
from: '2022-06-07T21:00:00+00:00'
to: '2022-06-08T20:59:59+00:00'
tariff:
cost_per_shift: 1000
constraints:
- stage_length: 1000000
cost_per_unit: 0.01
transport_type: CAR
boxes:
- key: box_1
capacity:
mass: 300
plan_settings:
trips_settings:
configuration: optimize_distance
geo_settings:
toll_roads: true
traffic_jams: false
PlanResultTokyo:
summary: Tokyo
value:
tracedata:
code: 861c8e0a-2651-444e-b426-71cdccc31423
client: veeroute_|_example
server: Universal:leo
service: UNIVERSAL
operation: runPlanCalculation
time: '2022-06-01T11:50:15.123Z'
trips:
- key: performer_1_shift
performer:
performer_key: performer_1
shift_key: performer_1_shift
shift_time:
from: '2022-06-08T04:48:15Z'
to: '2022-06-08T05:40:56Z'
transport:
transport_key: transport_1
shift_key: transport_1_shift
shift_time:
from: '2022-06-08T04:48:15Z'
to: '2022-06-08T05:40:56Z'
states:
- time: '2022-06-08T04:48:15Z'
flags:
- INSIDE_LOCATION
- AROUND_LOCATION
location_key: location_storage
cargo_placements: []
attributes: []
- time: '2022-06-08T04:48:15Z'
flags:
- ON_DEMAND
- INSIDE_EVENT_HARD_WINDOW
- INSIDE_LOCATION_WINDOW
- INSIDE_LOCATION
- AROUND_LOCATION
order_key: order_1
demand_key: demand_1_pickup
event_key: demand_1_pickup_event
location_key: location_storage
cargo_placements: []
attributes: []
- time: '2022-06-08T04:48:15Z'
flags:
- INSIDE_LOCATION
- AROUND_LOCATION
location_key: location_storage
cargo_placements:
- box_key: box_1
cargo_key: order_1_cargos
attributes: []
- time: '2022-06-08T04:48:15Z'
flags:
- ON_DEMAND
- INSIDE_EVENT_HARD_WINDOW
- INSIDE_LOCATION_WINDOW
- INSIDE_LOCATION
- AROUND_LOCATION
order_key: order_2
demand_key: demand_2_pickup
event_key: demand_2_pickup_event
location_key: location_storage
cargo_placements:
- box_key: box_1
cargo_key: order_1_cargos
attributes: []
- time: '2022-06-08T04:48:15Z'
flags:
- INSIDE_LOCATION
- AROUND_LOCATION
location_key: location_storage
cargo_placements:
- box_key: box_1
cargo_key: order_2_cargos
- box_key: box_1
cargo_key: order_1_cargos
attributes: []
- time: '2022-06-08T04:48:15Z'
flags:
- RELOCATING
cargo_placements:
- box_key: box_1
cargo_key: order_2_cargos
- box_key: box_1
cargo_key: order_1_cargos
attributes: []
- time: '2022-06-08T05:00:00Z'
flags:
- INSIDE_LOCATION
- AROUND_LOCATION
location_key: location_client_1
cargo_placements:
- box_key: box_1
cargo_key: order_2_cargos
- box_key: box_1
cargo_key: order_1_cargos
attributes: []
- time: '2022-06-08T05:00:00Z'
flags:
- ON_DEMAND
- INSIDE_EVENT_HARD_WINDOW
- INSIDE_LOCATION_WINDOW
- INSIDE_LOCATION
- AROUND_LOCATION
order_key: order_1
demand_key: demand_1_drop
event_key: demand_1_drop_event
location_key: location_client_1
cargo_placements:
- box_key: box_1
cargo_key: order_2_cargos
- box_key: box_1
cargo_key: order_1_cargos
attributes: []
- time: '2022-06-08T05:10:00Z'
flags:
- INSIDE_LOCATION
- AROUND_LOCATION
location_key: location_client_1
cargo_placements:
- box_key: box_1
cargo_key: order_2_cargos
attributes: []
- time: '2022-06-08T05:10:00Z'
flags:
- RELOCATING
cargo_placements:
- box_key: box_1
cargo_key: order_2_cargos
attributes: []
- time: '2022-06-08T05:12:04Z'
flags:
- INSIDE_LOCATION
- AROUND_LOCATION
location_key: location_client_3
cargo_placements:
- box_key: box_1
cargo_key: order_2_cargos
attributes: []
- time: '2022-06-08T05:12:04Z'
flags:
- ON_DEMAND
- INSIDE_EVENT_HARD_WINDOW
- INSIDE_LOCATION_WINDOW
- INSIDE_LOCATION
- AROUND_LOCATION
order_key: order_3
demand_key: demand_3_work
event_key: demand_3_work_event
location_key: location_client_3
cargo_placements:
- box_key: box_1
cargo_key: order_2_cargos
attributes: []
- time: '2022-06-08T05:27:04Z'
flags:
- INSIDE_LOCATION
- AROUND_LOCATION
location_key: location_client_3
cargo_placements:
- box_key: box_1
cargo_key: order_2_cargos
attributes: []
- time: '2022-06-08T05:27:04Z'
flags:
- RELOCATING
cargo_placements:
- box_key: box_1
cargo_key: order_2_cargos
attributes: []
- time: '2022-06-08T05:30:56Z'
flags:
- INSIDE_LOCATION
- AROUND_LOCATION
location_key: location_client_2
cargo_placements:
- box_key: box_1
cargo_key: order_2_cargos
attributes: []
- time: '2022-06-08T05:30:56Z'
flags:
- ON_DEMAND
- INSIDE_EVENT_HARD_WINDOW
- INSIDE_LOCATION_WINDOW
- INSIDE_LOCATION
- AROUND_LOCATION
order_key: order_2
demand_key: demand_2_drop
event_key: demand_2_drop_event
location_key: location_client_2
cargo_placements:
- box_key: box_1
cargo_key: order_2_cargos
attributes: []
- time: '2022-06-08T05:40:56Z'
flags:
- INSIDE_LOCATION
- AROUND_LOCATION
location_key: location_client_2
cargo_placements: []
attributes: []
waitlist: []
attributes: []
statistics:
total_statistics:
cost: 2176.933
reward: 3000.3
measurements:
driving_time: PT52M41S
waiting_time: PT0S
working_time: PT35M
arriving_time: PT0S
departure_time: PT0S
total_time: PT1H27M41S
distance: 31306
time_window:
from: '2022-06-08T04:48:15Z'
to: '2022-06-08T05:40:56Z'
performers_count: 1
orders_count: 3
plan_orders_count: 3
waitlist_orders_count: 0
capacity_utilization:
mass: 0.01
volume: 0
capacity_a: 0
capacity_b: 0
capacity_c: 0
capacity_max:
mass: 0.006
volume: 0
capacity_a: 0
capacity_b: 0
capacity_c: 0
quality:
soft_time_window_violations:
before:
keys: []
count: 0
after:
keys: []
count: 0
hard_time_window_violations:
before:
keys: []
count: 0
after:
keys: []
count: 0
trips_statistics:
- trip_key: performer_1_shift
statistics:
cost: 2176.9333333333334
reward: 3000.3
measurements:
driving_time: PT52M41S
waiting_time: PT0S
working_time: PT35M
arriving_time: PT0S
departure_time: PT0S
total_time: PT1H27M41S
distance: 31306
time_window:
from: '2022-06-08T04:48:15Z'
to: '2022-06-08T05:40:56Z'
performers_count: 1
orders_count: 3
plan_orders_count: 3
waitlist_orders_count: 0
capacity_utilization:
mass: 0.01
volume: 1
capacity_a: 1
capacity_b: 1
capacity_c: 1
capacity_max:
mass: 0.006
volume: 1
capacity_a: 1
capacity_b: 1
capacity_c: 1
quality:
soft_time_window_violations:
before:
keys: []
count: 0
after:
keys: []
count: 0
hard_time_window_violations:
before:
keys: []
count: 0
after:
keys: []
count: 0
stop_statistics:
- location_key: location_storage
demand_ids:
- demand_2_pickup
- demand_1_pickup
measurements:
driving_time: PT0S
waiting_time: PT0S
working_time: PT0S
arriving_time: PT0S
departure_time: PT0S
total_time: PT0S
distance: 0
time_window:
from: '2022-06-08T04:48:15Z'
to: '2022-06-08T04:48:15Z'
upload:
count: 2
capacity:
mass: 2
volume: 0
capacity_a: 0
capacity_b: 0
capacity_c: 0
download:
count: 0
capacity:
mass: 0
volume: 0
capacity_a: 0
capacity_b: 0
capacity_c: 0
max_load:
count: 2
capacity:
mass: 2
volume: 0
capacity_a: 0
capacity_b: 0
capacity_c: 0
arrival_load:
count: 0
capacity:
mass: 0
volume: 0
capacity_a: 0
capacity_b: 0
capacity_c: 0
departure_load:
count: 1
capacity:
mass: 1
volume: 0
capacity_a: 0
capacity_b: 0
capacity_c: 0
- location_key: location_client_1
demand_ids:
- demand_1_drop
measurements:
driving_time: PT21M45S
waiting_time: PT0S
working_time: PT10M
arriving_time: PT0S
departure_time: PT0S
total_time: PT31M45S
distance: 8878
time_window:
from: '2022-06-08T04:48:15Z'
to: '2022-06-08T05:10:00Z'
upload:
count: 0
capacity:
mass: 0
volume: 0
capacity_a: 0
capacity_b: 0
capacity_c: 0
download:
count: 1
capacity:
mass: 1
volume: 0
capacity_a: 0
capacity_b: 0
capacity_c: 0
max_load:
count: 0
capacity:
mass: 0
volume: 0
capacity_a: 0
capacity_b: 0
capacity_c: 0
arrival_load:
count: 1
capacity:
mass: 1
volume: 0
capacity_a: 0
capacity_b: 0
capacity_c: 0
departure_load:
count: 0
capacity:
mass: 0
volume: 0
capacity_a: 0
capacity_b: 0
capacity_c: 0
- location_key: location_client_3
demand_ids:
- demand_3_work
measurements:
driving_time: PT17M4S
waiting_time: PT0S
working_time: PT15M
arriving_time: PT0S
departure_time: PT0S
total_time: PT32M4S
distance: 10003
time_window:
from: '2022-06-08T05:10:00Z'
to: '2022-06-08T05:27:04Z'
upload:
count: 0
capacity:
mass: 0
volume: 0
capacity_a: 0
capacity_b: 0
capacity_c: 0
download:
count: 0
capacity:
mass: 0
volume: 0
capacity_a: 0
capacity_b: 0
capacity_c: 0
max_load:
count: 0
capacity:
mass: 0
volume: 0
capacity_a: 0
capacity_b: 0
capacity_c: 0
arrival_load:
count: 2
capacity:
mass: 2
volume: 0
capacity_a: 0
capacity_b: 0
capacity_c: 0
departure_load:
count: 0
capacity:
mass: 0
volume: 0
capacity_a: 0
capacity_b: 0
capacity_c: 0
- location_key: location_client_2
demand_ids:
- demand_2_drop
measurements:
driving_time: PT13M52S
waiting_time: PT0S
working_time: PT10M
arriving_time: PT0S
departure_time: PT0S
total_time: PT23M52S
distance: 12425
time_window:
from: '2022-06-08T05:27:04Z'
to: '2022-06-08T05:40:56Z'
upload:
count: 0
capacity:
mass: 0
volume: 0
capacity_a: 0
capacity_b: 0
capacity_c: 0
download:
count: 1
capacity:
mass: 1
volume: 0
capacity_a: 0
capacity_b: 0
capacity_c: 0
max_load:
count: 0
capacity:
mass: 0
volume: 0
capacity_a: 0
capacity_b: 0
capacity_c: 0
arrival_load:
count: 2
capacity:
mass: 2
volume: 0
capacity_a: 0
capacity_b: 0
capacity_c: 0
departure_load:
count: 0
capacity:
mass: 0
volume: 0
capacity_a: 0
capacity_b: 0
capacity_c: 0
total_load:
count: 2
capacity:
mass: 2
volume: 0
capacity_a: 0
capacity_b: 0
capacity_c: 0
max_load:
count: 2
capacity:
mass: 2
volume: 0
capacity_a: 0
capacity_b: 0
capacity_c: 0
max_transfer_load:
count: 2
capacity:
mass: 2
volume: 0
capacity_a: 0
capacity_b: 0
capacity_c: 0
progress: 100
info:
status: FINISHED_IN_TIME
result_version: 108
calculation_time: PT20S
waiting_time: PT15S
validations: []
unplanned_items:
order_keys: []
performer_keys: []
transport_keys: []
hardlink_keys: []
PlanResultMoscow:
summary: Moscow
value:
tracedata:
code: 861c8e0a-2651-444e-b426-71cdccc31423
client: veeroute_|_example
server: Universal:leo
service: UNIVERSAL
operation: runPlanCalculation
time: '2022-06-01T11:50:15.123Z'
trips:
- key: performer_1_shift
performer:
performer_key: performer_1
shift_key: performer_1_shift
shift_time:
from: '2022-06-08T04:38:34Z'
to: '2022-06-08T05:53:39Z'
transport:
transport_key: transport_1
shift_key: transport_1_shift
shift_time:
from: '2022-06-08T04:38:34Z'
to: '2022-06-08T05:53:39Z'
states:
- time: '2022-06-08T04:38:34Z'
flags:
- INSIDE_LOCATION
- AROUND_LOCATION
location_key: location_storage
cargo_placements: []
attributes: []
- time: '2022-06-08T04:38:34Z'
flags:
- ON_DEMAND
- INSIDE_EVENT_HARD_WINDOW
- INSIDE_LOCATION_WINDOW
- INSIDE_LOCATION
- AROUND_LOCATION
order_key: order_2
demand_key: demand_2_pickup
event_key: demand_2_pickup_event
location_key: location_storage
cargo_placements: []
attributes: []
- time: '2022-06-08T04:38:34Z'
flags:
- INSIDE_LOCATION
- AROUND_LOCATION
location_key: location_storage
cargo_placements:
- box_key: box_1
cargo_key: order_2_cargos
attributes: []
- time: '2022-06-08T04:38:34Z'
flags:
- ON_DEMAND
- INSIDE_EVENT_HARD_WINDOW
- INSIDE_LOCATION_WINDOW
- INSIDE_LOCATION
- AROUND_LOCATION
order_key: order_1
demand_key: demand_1_pickup
event_key: demand_1_pickup_event
location_key: location_storage
cargo_placements:
- box_key: box_1
cargo_key: order_2_cargos
attributes: []
- time: '2022-06-08T04:38:34Z'
flags:
- INSIDE_LOCATION
- AROUND_LOCATION
location_key: location_storage
cargo_placements:
- box_key: box_1
cargo_key: order_1_cargos
- box_key: box_1
cargo_key: order_2_cargos
attributes: []
- time: '2022-06-08T04:38:34Z'
flags:
- RELOCATING
cargo_placements:
- box_key: box_1
cargo_key: order_1_cargos
- box_key: box_1
cargo_key: order_2_cargos
attributes: []
- time: '2022-06-08T05:00:00Z'
flags:
- INSIDE_LOCATION
- AROUND_LOCATION
location_key: location_client_2
cargo_placements:
- box_key: box_1
cargo_key: order_1_cargos
- box_key: box_1
cargo_key: order_2_cargos
attributes: []
- time: '2022-06-08T05:00:00Z'
flags:
- ON_DEMAND
- INSIDE_EVENT_HARD_WINDOW
- INSIDE_LOCATION_WINDOW
- INSIDE_LOCATION
- AROUND_LOCATION
order_key: order_2
demand_key: demand_2_drop
event_key: demand_2_drop_event
location_key: location_client_2
cargo_placements:
- box_key: box_1
cargo_key: order_1_cargos
- box_key: box_1
cargo_key: order_2_cargos
attributes: []
- time: '2022-06-08T05:10:00Z'
flags:
- INSIDE_LOCATION
- AROUND_LOCATION
location_key: location_client_2
cargo_placements:
- box_key: box_1
cargo_key: order_1_cargos
attributes: []
- time: '2022-06-08T05:10:00Z'
flags:
- RELOCATING
cargo_placements:
- box_key: box_1
cargo_key: order_1_cargos
attributes: []
- time: '2022-06-08T05:20:52Z'
flags:
- INSIDE_LOCATION
- AROUND_LOCATION
location_key: location_client_1
cargo_placements:
- box_key: box_1
cargo_key: order_1_cargos
attributes: []
- time: '2022-06-08T05:20:52Z'
flags:
- ON_DEMAND
- INSIDE_EVENT_HARD_WINDOW
- INSIDE_LOCATION_WINDOW
- INSIDE_LOCATION
- AROUND_LOCATION
order_key: order_1
demand_key: demand_1_drop
event_key: demand_1_drop_event
location_key: location_client_1
cargo_placements:
- box_key: box_1
cargo_key: order_1_cargos
attributes: []
- time: '2022-06-08T05:30:52Z'
flags:
- INSIDE_LOCATION
- AROUND_LOCATION
location_key: location_client_1
cargo_placements: []
attributes: []
- time: '2022-06-08T05:30:52Z'
flags:
- RELOCATING
cargo_placements: []
attributes: []
- time: '2022-06-08T05:38:39Z'
flags:
- INSIDE_LOCATION
- AROUND_LOCATION
location_key: location_client_3
cargo_placements: []
attributes: []
- time: '2022-06-08T05:38:39Z'
flags:
- ON_DEMAND
- INSIDE_EVENT_HARD_WINDOW
- INSIDE_LOCATION_WINDOW
- INSIDE_LOCATION
- AROUND_LOCATION
order_key: order_3
demand_key: demand_3_work
event_key: demand_3_work_event
location_key: location_client_3
cargo_placements: []
attributes: []
- time: '2022-06-08T05:53:39Z'
flags:
- INSIDE_LOCATION
- AROUND_LOCATION
location_key: location_client_3
cargo_placements: []
attributes: []
waitlist: []
attributes: []
statistics:
total_statistics:
cost: 2415.263
reward: 3000.3
measurements:
driving_time: PT1H15M5S
waiting_time: PT0S
working_time: PT35M
arriving_time: PT0S
departure_time: PT0S
total_time: PT1H50M5S
distance: 78117
time_window:
from: '2022-06-08T04:38:34Z'
to: '2022-06-08T05:53:39Z'
performers_count: 1
orders_count: 3
plan_orders_count: 3
waitlist_orders_count: 0
capacity_utilization:
mass: 0.01
volume: 0
capacity_a: 0
capacity_b: 0
capacity_c: 0
capacity_max:
mass: 0.006
volume: 0
capacity_a: 0
capacity_b: 0
capacity_c: 0
quality:
soft_time_window_violations:
before:
keys: []
count: 0
after:
keys: []
count: 0
hard_time_window_violations:
before:
keys: []
count: 0
after:
keys: []
count: 0
trips_statistics:
- trip_key: performer_1_shift
statistics:
cost: 2415.2633333333333
reward: 3000.3
measurements:
driving_time: PT1H15M5S
waiting_time: PT0S
working_time: PT35M
arriving_time: PT0S
departure_time: PT0S
total_time: PT1H50M5S
distance: 78117
time_window:
from: '2022-06-08T04:38:34Z'
to: '2022-06-08T05:53:39Z'
performers_count: 1
orders_count: 3
plan_orders_count: 3
waitlist_orders_count: 0
capacity_utilization:
mass: 0.01
volume: 1
capacity_a: 1
capacity_b: 1
capacity_c: 1
capacity_max:
mass: 0.006
volume: 1
capacity_a: 1
capacity_b: 1
capacity_c: 1
quality:
soft_time_window_violations:
before:
keys: []
count: 0
after:
keys: []
count: 0
hard_time_window_violations:
before:
keys: []
count: 0
after:
keys: []
count: 0
stop_statistics:
- location_key: location_storage
demand_ids:
- demand_2_pickup
- demand_1_pickup
measurements:
driving_time: PT0S
waiting_time: PT0S
working_time: PT0S
arriving_time: PT0S
departure_time: PT0S
total_time: PT0S
distance: 0
time_window:
from: '2022-06-08T04:38:34Z'
to: '2022-06-08T04:38:34Z'
upload:
count: 2
capacity:
mass: 2
volume: 0
capacity_a: 0
capacity_b: 0
capacity_c: 0
download:
count: 0
capacity:
mass: 0
volume: 0
capacity_a: 0
capacity_b: 0
capacity_c: 0
max_load:
count: 2
capacity:
mass: 2
volume: 0
capacity_a: 0
capacity_b: 0
capacity_c: 0
arrival_load:
count: 0
capacity:
mass: 0
volume: 0
capacity_a: 0
capacity_b: 0
capacity_c: 0
departure_load:
count: 1
capacity:
mass: 1
volume: 0
capacity_a: 0
capacity_b: 0
capacity_c: 0
- location_key: location_client_2
demand_ids:
- demand_2_drop
measurements:
driving_time: PT31M26S
waiting_time: PT0S
working_time: PT10M
arriving_time: PT0S
departure_time: PT0S
total_time: PT41M26S
distance: 17108
time_window:
from: '2022-06-08T04:38:34Z'
to: '2022-06-08T05:10:00Z'
upload:
count: 0
capacity:
mass: 0
volume: 0
capacity_a: 0
capacity_b: 0
capacity_c: 0
download:
count: 1
capacity:
mass: 1
volume: 0
capacity_a: 0
capacity_b: 0
capacity_c: 0
max_load:
count: 0
capacity:
mass: 0
volume: 0
capacity_a: 0
capacity_b: 0
capacity_c: 0
arrival_load:
count: 1
capacity:
mass: 1
volume: 0
capacity_a: 0
capacity_b: 0
capacity_c: 0
departure_load:
count: 0
capacity:
mass: 0
volume: 0
capacity_a: 0
capacity_b: 0
capacity_c: 0
- location_key: location_client_1
demand_ids:
- demand_1_drop
measurements:
driving_time: PT20M52S
waiting_time: PT0S
working_time: PT10M
arriving_time: PT0S
departure_time: PT0S
total_time: PT30M52S
distance: 26991
time_window:
from: '2022-06-08T05:10:00Z'
to: '2022-06-08T05:30:52Z'
upload:
count: 0
capacity:
mass: 0
volume: 0
capacity_a: 0
capacity_b: 0
capacity_c: 0
download:
count: 1
capacity:
mass: 1
volume: 0
capacity_a: 0
capacity_b: 0
capacity_c: 0
max_load:
count: 0
capacity:
mass: 0
volume: 0
capacity_a: 0
capacity_b: 0
capacity_c: 0
arrival_load:
count: 2
capacity:
mass: 2
volume: 0
capacity_a: 0
capacity_b: 0
capacity_c: 0
departure_load:
count: 0
capacity:
mass: 0
volume: 0
capacity_a: 0
capacity_b: 0
capacity_c: 0
- location_key: location_client_3
demand_ids:
- demand_3_work
measurements:
driving_time: PT22M47S
waiting_time: PT0S
working_time: PT15M
arriving_time: PT0S
departure_time: PT0S
total_time: PT37M47S
distance: 34018
time_window:
from: '2022-06-08T05:30:52Z'
to: '2022-06-08T05:53:39Z'
upload:
count: 0
capacity:
mass: 0
volume: 0
capacity_a: 0
capacity_b: 0
capacity_c: 0
download:
count: 0
capacity:
mass: 0
volume: 0
capacity_a: 0
capacity_b: 0
capacity_c: 0
max_load:
count: 0
capacity:
mass: 0
volume: 0
capacity_a: 0
capacity_b: 0
capacity_c: 0
arrival_load:
count: 1
capacity:
mass: 1
volume: 0
capacity_a: 0
capacity_b: 0
capacity_c: 0
departure_load:
count: 0
capacity:
mass: 0
volume: 0
capacity_a: 0
capacity_b: 0
capacity_c: 0
total_load:
count: 2
capacity:
mass: 2
volume: 0
capacity_a: 0
capacity_b: 0
capacity_c: 0
max_load:
count: 2
capacity:
mass: 2
volume: 0
capacity_a: 0
capacity_b: 0
capacity_c: 0
max_transfer_load:
count: 2
capacity:
mass: 2
volume: 0
capacity_a: 0
capacity_b: 0
capacity_c: 0
progress: 100
info:
status: FINISHED_IN_TIME
result_version: 108
calculation_time: PT20S
waiting_time: PT15S
validations: []
unplanned_items:
order_keys: []
performer_keys: []
transport_keys: []
hardlink_keys: []
PlanResultDenver:
summary: Denver
value:
tracedata:
code: 861c8e0a-2651-444e-b426-71cdccc31423
client: veeroute_|_example
server: Universal:leo
service: UNIVERSAL
operation: runPlanCalculation
time: '2022-06-01T11:50:15.123Z'
trips:
- key: performer_1_shift
performer:
performer_key: performer_1
shift_key: performer_1_shift
shift_time:
from: '2022-06-08T04:45:18Z'
to: '2022-06-08T05:54:57Z'
transport:
transport_key: transport_1
shift_key: transport_1_shift
shift_time:
from: '2022-06-08T04:45:18Z'
to: '2022-06-08T05:54:57Z'
states:
- time: '2022-06-08T04:45:18Z'
flags:
- INSIDE_LOCATION
- AROUND_LOCATION
location_key: location_storage
cargo_placements: []
attributes: []
- time: '2022-06-08T04:45:18Z'
flags:
- ON_DEMAND
- INSIDE_EVENT_HARD_WINDOW
- INSIDE_LOCATION_WINDOW
- INSIDE_LOCATION
- AROUND_LOCATION
order_key: order_2
demand_key: demand_2_pickup
event_key: demand_2_pickup_event
location_key: location_storage
cargo_placements: []
attributes: []
- time: '2022-06-08T04:45:18Z'
flags:
- INSIDE_LOCATION
- AROUND_LOCATION
location_key: location_storage
cargo_placements:
- box_key: box_1
cargo_key: order_2_cargos
attributes: []
- time: '2022-06-08T04:45:18Z'
flags:
- ON_DEMAND
- INSIDE_EVENT_HARD_WINDOW
- INSIDE_LOCATION_WINDOW
- INSIDE_LOCATION
- AROUND_LOCATION
order_key: order_1
demand_key: demand_1_pickup
event_key: demand_1_pickup_event
location_key: location_storage
cargo_placements:
- box_key: box_1
cargo_key: order_2_cargos
attributes: []
- time: '2022-06-08T04:45:18Z'
flags:
- INSIDE_LOCATION
- AROUND_LOCATION
location_key: location_storage
cargo_placements:
- box_key: box_1
cargo_key: order_1_cargos
- box_key: box_1
cargo_key: order_2_cargos
attributes: []
- time: '2022-06-08T04:45:18Z'
flags:
- RELOCATING
cargo_placements:
- box_key: box_1
cargo_key: order_1_cargos
- box_key: box_1
cargo_key: order_2_cargos
attributes: []
- time: '2022-06-08T05:00:00Z'
flags:
- INSIDE_LOCATION
- AROUND_LOCATION
location_key: location_client_2
cargo_placements:
- box_key: box_1
cargo_key: order_1_cargos
- box_key: box_1
cargo_key: order_2_cargos
attributes: []
- time: '2022-06-08T05:00:00Z'
flags:
- ON_DEMAND
- INSIDE_EVENT_HARD_WINDOW
- INSIDE_LOCATION_WINDOW
- INSIDE_LOCATION
- AROUND_LOCATION
order_key: order_2
demand_key: demand_2_drop
event_key: demand_2_drop_event
location_key: location_client_2
cargo_placements:
- box_key: box_1
cargo_key: order_1_cargos
- box_key: box_1
cargo_key: order_2_cargos
attributes: []
- time: '2022-06-08T05:10:00Z'
flags:
- INSIDE_LOCATION
- AROUND_LOCATION
location_key: location_client_2
cargo_placements:
- box_key: box_1
cargo_key: order_1_cargos
attributes: []
- time: '2022-06-08T05:10:00Z'
flags:
- RELOCATING
cargo_placements:
- box_key: box_1
cargo_key: order_1_cargos
attributes: []
- time: '2022-06-08T05:15:49Z'
flags:
- INSIDE_LOCATION
- AROUND_LOCATION
location_key: location_client_1
cargo_placements:
- box_key: box_1
cargo_key: order_1_cargos
attributes: []
- time: '2022-06-08T05:15:49Z'
flags:
- ON_DEMAND
- INSIDE_EVENT_HARD_WINDOW
- INSIDE_LOCATION_WINDOW
- INSIDE_LOCATION
- AROUND_LOCATION
order_key: order_1
demand_key: demand_1_drop
event_key: demand_1_drop_event
location_key: location_client_1
cargo_placements:
- box_key: box_1
cargo_key: order_1_cargos
attributes: []
- time: '2022-06-08T05:25:49Z'
flags:
- INSIDE_LOCATION
- AROUND_LOCATION
location_key: location_client_1
cargo_placements: []
attributes: []
- time: '2022-06-08T05:25:49Z'
flags:
- RELOCATING
cargo_placements: []
attributes: []
- time: '2022-06-08T05:39:57Z'
flags:
- INSIDE_LOCATION
- AROUND_LOCATION
location_key: location_client_3
cargo_placements: []
attributes: []
- time: '2022-06-08T05:39:57Z'
flags:
- ON_DEMAND
- INSIDE_EVENT_HARD_WINDOW
- INSIDE_LOCATION_WINDOW
- INSIDE_LOCATION
- AROUND_LOCATION
order_key: order_3
demand_key: demand_3_work
event_key: demand_3_work_event
location_key: location_client_3
cargo_placements: []
attributes: []
- time: '2022-06-08T05:54:57Z'
flags:
- INSIDE_LOCATION
- AROUND_LOCATION
location_key: location_client_3
cargo_placements: []
attributes: []
waitlist: []
attributes: []
statistics:
total_statistics:
cost: 2320.68
reward: 3000.3
measurements:
driving_time: PT1H9M39S
waiting_time: PT0S
working_time: PT35M
arriving_time: PT0S
departure_time: PT0S
total_time: PT1H44M39S
distance: 50270
time_window:
from: '2022-06-08T04:45:18Z'
to: '2022-06-08T05:54:57Z'
performers_count: 1
orders_count: 3
plan_orders_count: 3
waitlist_orders_count: 0
capacity_utilization:
mass: 0.01
volume: 0
capacity_a: 0
capacity_b: 0
capacity_c: 0
capacity_max:
mass: 0.006
volume: 0
capacity_a: 0
capacity_b: 0
capacity_c: 0
quality:
soft_time_window_violations:
before:
keys: []
count: 0
after:
keys: []
count: 0
hard_time_window_violations:
before:
keys: []
count: 0
after:
keys: []
count: 0
trips_statistics:
- trip_key: performer_1_shift
statistics:
cost: 2320.6800000000003
reward: 3000.3
measurements:
driving_time: PT1H9M39S
waiting_time: PT0S
working_time: PT35M
arriving_time: PT0S
departure_time: PT0S
total_time: PT1H44M39S
distance: 50270
time_window:
from: '2022-06-08T04:45:18Z'
to: '2022-06-08T05:54:57Z'
performers_count: 1
orders_count: 3
plan_orders_count: 3
waitlist_orders_count: 0
capacity_utilization:
mass: 0.01
volume: 1
capacity_a: 1
capacity_b: 1
capacity_c: 1
capacity_max:
mass: 0.006
volume: 1
capacity_a: 1
capacity_b: 1
capacity_c: 1
quality:
soft_time_window_violations:
before:
keys: []
count: 0
after:
keys: []
count: 0
hard_time_window_violations:
before:
keys: []
count: 0
after:
keys: []
count: 0
stop_statistics:
- location_key: location_storage
demand_ids:
- demand_2_pickup
- demand_1_pickup
measurements:
driving_time: PT0S
waiting_time: PT0S
working_time: PT0S
arriving_time: PT0S
departure_time: PT0S
total_time: PT0S
distance: 0
time_window:
from: '2022-06-08T04:45:18Z'
to: '2022-06-08T04:45:18Z'
upload:
count: 2
capacity:
mass: 2
volume: 0
capacity_a: 0
capacity_b: 0
capacity_c: 0
download:
count: 0
capacity:
mass: 0
volume: 0
capacity_a: 0
capacity_b: 0
capacity_c: 0
max_load:
count: 2
capacity:
mass: 2
volume: 0
capacity_a: 0
capacity_b: 0
capacity_c: 0
arrival_load:
count: 0
capacity:
mass: 0
volume: 0
capacity_a: 0
capacity_b: 0
capacity_c: 0
departure_load:
count: 1
capacity:
mass: 1
volume: 0
capacity_a: 0
capacity_b: 0
capacity_c: 0
- location_key: location_client_2
demand_ids:
- demand_2_drop
measurements:
driving_time: PT24M42S
waiting_time: PT0S
working_time: PT10M
arriving_time: PT0S
departure_time: PT0S
total_time: PT34M42S
distance: 10478
time_window:
from: '2022-06-08T04:45:18Z'
to: '2022-06-08T05:10:00Z'
upload:
count: 0
capacity:
mass: 0
volume: 0
capacity_a: 0
capacity_b: 0
capacity_c: 0
download:
count: 1
capacity:
mass: 1
volume: 0
capacity_a: 0
capacity_b: 0
capacity_c: 0
max_load:
count: 0
capacity:
mass: 0
volume: 0
capacity_a: 0
capacity_b: 0
capacity_c: 0
arrival_load:
count: 1
capacity:
mass: 1
volume: 0
capacity_a: 0
capacity_b: 0
capacity_c: 0
departure_load:
count: 0
capacity:
mass: 0
volume: 0
capacity_a: 0
capacity_b: 0
capacity_c: 0
- location_key: location_client_1
demand_ids:
- demand_1_drop
measurements:
driving_time: PT15M49S
waiting_time: PT0S
working_time: PT10M
arriving_time: PT0S
departure_time: PT0S
total_time: PT25M49S
distance: 14689
time_window:
from: '2022-06-08T05:10:00Z'
to: '2022-06-08T05:25:49Z'
upload:
count: 0
capacity:
mass: 0
volume: 0
capacity_a: 0
capacity_b: 0
capacity_c: 0
download:
count: 1
capacity:
mass: 1
volume: 0
capacity_a: 0
capacity_b: 0
capacity_c: 0
max_load:
count: 0
capacity:
mass: 0
volume: 0
capacity_a: 0
capacity_b: 0
capacity_c: 0
arrival_load:
count: 2
capacity:
mass: 2
volume: 0
capacity_a: 0
capacity_b: 0
capacity_c: 0
departure_load:
count: 0
capacity:
mass: 0
volume: 0
capacity_a: 0
capacity_b: 0
capacity_c: 0
- location_key: location_client_3
demand_ids:
- demand_3_work
measurements:
driving_time: PT29M8S
waiting_time: PT0S
working_time: PT15M
arriving_time: PT0S
departure_time: PT0S
total_time: PT44M8S
distance: 25103
time_window:
from: '2022-06-08T05:25:49Z'
to: '2022-06-08T05:54:57Z'
upload:
count: 0
capacity:
mass: 0
volume: 0
capacity_a: 0
capacity_b: 0
capacity_c: 0
download:
count: 0
capacity:
mass: 0
volume: 0
capacity_a: 0
capacity_b: 0
capacity_c: 0
max_load:
count: 0
capacity:
mass: 0
volume: 0
capacity_a: 0
capacity_b: 0
capacity_c: 0
arrival_load:
count: 1
capacity:
mass: 1
volume: 0
capacity_a: 0
capacity_b: 0
capacity_c: 0
departure_load:
count: 0
capacity:
mass: 0
volume: 0
capacity_a: 0
capacity_b: 0
capacity_c: 0
total_load:
count: 2
capacity:
mass: 2
volume: 0
capacity_a: 0
capacity_b: 0
capacity_c: 0
max_load:
count: 2
capacity:
mass: 2
volume: 0
capacity_a: 0
capacity_b: 0
capacity_c: 0
max_transfer_load:
count: 2
capacity:
mass: 2
volume: 0
capacity_a: 0
capacity_b: 0
capacity_c: 0
progress: 100
info:
status: FINISHED_IN_TIME
result_version: 108
calculation_time: PT1M10S
waiting_time: PT15S
validations: []
unplanned_items:
order_keys: []
performer_keys: []
transport_keys: []
hardlink_keys: []
PlanResultBerlin:
summary: Berlin
value:
tracedata:
code: 861c8e0a-2651-444e-b426-71cdccc31423
client: veeroute_|_example
server: Universal:leo
service: UNIVERSAL
operation: runPlanCalculation
time: '2022-06-01T11:50:15.123Z'
trips:
- key: performer_1_shift
performer:
performer_key: performer_1
shift_key: performer_1_shift
shift_time:
from: '2022-06-08T04:48:15Z'
to: '2022-06-08T05:40:56Z'
transport:
transport_key: transport_1
shift_key: transport_1_shift
shift_time:
from: '2022-06-08T04:48:15Z'
to: '2022-06-08T05:40:56Z'
states:
- time: '2022-06-08T04:48:15Z'
flags:
- INSIDE_LOCATION
- AROUND_LOCATION
location_key: location_storage
cargo_placements: []
attributes: []
- time: '2022-06-08T04:48:15Z'
flags:
- ON_DEMAND
- INSIDE_EVENT_HARD_WINDOW
- INSIDE_LOCATION_WINDOW
- INSIDE_LOCATION
- AROUND_LOCATION
order_key: order_1
demand_key: demand_1_pickup
event_key: demand_1_pickup_event
location_key: location_storage
cargo_placements: []
attributes: []
- time: '2022-06-08T04:48:15Z'
flags:
- INSIDE_LOCATION
- AROUND_LOCATION
location_key: location_storage
cargo_placements:
- box_key: box_1
cargo_key: order_1_cargos
attributes: []
- time: '2022-06-08T04:48:15Z'
flags:
- ON_DEMAND
- INSIDE_EVENT_HARD_WINDOW
- INSIDE_LOCATION_WINDOW
- INSIDE_LOCATION
- AROUND_LOCATION
order_key: order_2
demand_key: demand_2_pickup
event_key: demand_2_pickup_event
location_key: location_storage
cargo_placements:
- box_key: box_1
cargo_key: order_1_cargos
attributes: []
- time: '2022-06-08T04:48:15Z'
flags:
- INSIDE_LOCATION
- AROUND_LOCATION
location_key: location_storage
cargo_placements:
- box_key: box_1
cargo_key: order_2_cargos
- box_key: box_1
cargo_key: order_1_cargos
attributes: []
- time: '2022-06-08T04:48:15Z'
flags:
- RELOCATING
cargo_placements:
- box_key: box_1
cargo_key: order_2_cargos
- box_key: box_1
cargo_key: order_1_cargos
attributes: []
- time: '2022-06-08T05:00:00Z'
flags:
- INSIDE_LOCATION
- AROUND_LOCATION
location_key: location_client_1
cargo_placements:
- box_key: box_1
cargo_key: order_2_cargos
- box_key: box_1
cargo_key: order_1_cargos
attributes: []
- time: '2022-06-08T05:00:00Z'
flags:
- ON_DEMAND
- INSIDE_EVENT_HARD_WINDOW
- INSIDE_LOCATION_WINDOW
- INSIDE_LOCATION
- AROUND_LOCATION
order_key: order_1
demand_key: demand_1_drop
event_key: demand_1_drop_event
location_key: location_client_1
cargo_placements:
- box_key: box_1
cargo_key: order_2_cargos
- box_key: box_1
cargo_key: order_1_cargos
attributes: []
- time: '2022-06-08T05:10:00Z'
flags:
- INSIDE_LOCATION
- AROUND_LOCATION
location_key: location_client_1
cargo_placements:
- box_key: box_1
cargo_key: order_2_cargos
attributes: []
- time: '2022-06-08T05:10:00Z'
flags:
- RELOCATING
cargo_placements:
- box_key: box_1
cargo_key: order_2_cargos
attributes: []
- time: '2022-06-08T05:12:04Z'
flags:
- INSIDE_LOCATION
- AROUND_LOCATION
location_key: location_client_3
cargo_placements:
- box_key: box_1
cargo_key: order_2_cargos
attributes: []
- time: '2022-06-08T05:12:04Z'
flags:
- ON_DEMAND
- INSIDE_EVENT_HARD_WINDOW
- INSIDE_LOCATION_WINDOW
- INSIDE_LOCATION
- AROUND_LOCATION
order_key: order_3
demand_key: demand_3_work
event_key: demand_3_work_event
location_key: location_client_3
cargo_placements:
- box_key: box_1
cargo_key: order_2_cargos
attributes: []
- time: '2022-06-08T05:27:04Z'
flags:
- INSIDE_LOCATION
- AROUND_LOCATION
location_key: location_client_3
cargo_placements:
- box_key: box_1
cargo_key: order_2_cargos
attributes: []
- time: '2022-06-08T05:27:04Z'
flags:
- RELOCATING
cargo_placements:
- box_key: box_1
cargo_key: order_2_cargos
attributes: []
- time: '2022-06-08T05:30:56Z'
flags:
- INSIDE_LOCATION
- AROUND_LOCATION
location_key: location_client_2
cargo_placements:
- box_key: box_1
cargo_key: order_2_cargos
attributes: []
- time: '2022-06-08T05:30:56Z'
flags:
- ON_DEMAND
- INSIDE_EVENT_HARD_WINDOW
- INSIDE_LOCATION_WINDOW
- INSIDE_LOCATION
- AROUND_LOCATION
order_key: order_2
demand_key: demand_2_drop
event_key: demand_2_drop_event
location_key: location_client_2
cargo_placements:
- box_key: box_1
cargo_key: order_2_cargos
attributes: []
- time: '2022-06-08T05:40:56Z'
flags:
- INSIDE_LOCATION
- AROUND_LOCATION
location_key: location_client_2
cargo_placements: []
attributes: []
waitlist: []
attributes: []
statistics:
total_statistics:
cost: 2176.933
reward: 3000.3
measurements:
driving_time: PT52M41S
waiting_time: PT0S
working_time: PT35M
arriving_time: PT0S
departure_time: PT0S
total_time: PT1H27M41S
distance: 31306
time_window:
from: '2022-06-08T04:48:15Z'
to: '2022-06-08T05:40:56Z'
performers_count: 1
orders_count: 3
plan_orders_count: 3
waitlist_orders_count: 0
capacity_utilization:
mass: 0.01
volume: 0
capacity_a: 0
capacity_b: 0
capacity_c: 0
capacity_max:
mass: 0.006
volume: 0
capacity_a: 0
capacity_b: 0
capacity_c: 0
quality:
soft_time_window_violations:
before:
keys: []
count: 0
after:
keys: []
count: 0
hard_time_window_violations:
before:
keys: []
count: 0
after:
keys: []
count: 0
trips_statistics:
- trip_key: performer_1_shift
statistics:
cost: 2176.9333333333334
reward: 3000.3
measurements:
driving_time: PT52M41S
waiting_time: PT0S
working_time: PT35M
arriving_time: PT0S
departure_time: PT0S
total_time: PT1H27M41S
distance: 31306
time_window:
from: '2022-06-08T04:48:15Z'
to: '2022-06-08T05:40:56Z'
performers_count: 1
orders_count: 3
plan_orders_count: 3
waitlist_orders_count: 0
capacity_utilization:
mass: 0.01
volume: 1
capacity_a: 1
capacity_b: 1
capacity_c: 1
capacity_max:
mass: 0.006
volume: 1
capacity_a: 1
capacity_b: 1
capacity_c: 1
quality:
soft_time_window_violations:
before:
keys: []
count: 0
after:
keys: []
count: 0
hard_time_window_violations:
before:
keys: []
count: 0
after:
keys: []
count: 0
stop_statistics:
- location_key: location_storage
demand_ids:
- demand_2_pickup
- demand_1_pickup
measurements:
driving_time: PT0S
waiting_time: PT0S
working_time: PT0S
arriving_time: PT0S
departure_time: PT0S
total_time: PT0S
distance: 0
time_window:
from: '2022-06-08T04:48:15Z'
to: '2022-06-08T04:48:15Z'
upload:
count: 2
capacity:
mass: 2
volume: 0
capacity_a: 0
capacity_b: 0
capacity_c: 0
download:
count: 0
capacity:
mass: 0
volume: 0
capacity_a: 0
capacity_b: 0
capacity_c: 0
max_load:
count: 2
capacity:
mass: 2
volume: 0
capacity_a: 0
capacity_b: 0
capacity_c: 0
arrival_load:
count: 0
capacity:
mass: 0
volume: 0
capacity_a: 0
capacity_b: 0
capacity_c: 0
departure_load:
count: 1
capacity:
mass: 1
volume: 0
capacity_a: 0
capacity_b: 0
capacity_c: 0
- location_key: location_client_1
demand_ids:
- demand_1_drop
measurements:
driving_time: PT21M45S
waiting_time: PT0S
working_time: PT10M
arriving_time: PT0S
departure_time: PT0S
total_time: PT31M45S
distance: 8878
time_window:
from: '2022-06-08T04:48:15Z'
to: '2022-06-08T05:10:00Z'
upload:
count: 0
capacity:
mass: 0
volume: 0
capacity_a: 0
capacity_b: 0
capacity_c: 0
download:
count: 1
capacity:
mass: 1
volume: 0
capacity_a: 0
capacity_b: 0
capacity_c: 0
max_load:
count: 0
capacity:
mass: 0
volume: 0
capacity_a: 0
capacity_b: 0
capacity_c: 0
arrival_load:
count: 1
capacity:
mass: 1
volume: 0
capacity_a: 0
capacity_b: 0
capacity_c: 0
departure_load:
count: 0
capacity:
mass: 0
volume: 0
capacity_a: 0
capacity_b: 0
capacity_c: 0
- location_key: location_client_3
demand_ids:
- demand_3_work
measurements:
driving_time: PT17M4S
waiting_time: PT0S
working_time: PT15M
arriving_time: PT0S
departure_time: PT0S
total_time: PT32M4S
distance: 10003
time_window:
from: '2022-06-08T05:10:00Z'
to: '2022-06-08T05:27:04Z'
upload:
count: 0
capacity:
mass: 0
volume: 0
capacity_a: 0
capacity_b: 0
capacity_c: 0
download:
count: 0
capacity:
mass: 0
volume: 0
capacity_a: 0
capacity_b: 0
capacity_c: 0
max_load:
count: 0
capacity:
mass: 0
volume: 0
capacity_a: 0
capacity_b: 0
capacity_c: 0
arrival_load:
count: 2
capacity:
mass: 2
volume: 0
capacity_a: 0
capacity_b: 0
capacity_c: 0
departure_load:
count: 0
capacity:
mass: 0
volume: 0
capacity_a: 0
capacity_b: 0
capacity_c: 0
- location_key: location_client_2
demand_ids:
- demand_2_drop
measurements:
driving_time: PT13M52S
waiting_time: PT0S
working_time: PT10M
arriving_time: PT0S
departure_time: PT0S
total_time: PT23M52S
distance: 12425
time_window:
from: '2022-06-08T05:27:04Z'
to: '2022-06-08T05:40:56Z'
upload:
count: 0
capacity:
mass: 0
volume: 0
capacity_a: 0
capacity_b: 0
capacity_c: 0
download:
count: 1
capacity:
mass: 1
volume: 0
capacity_a: 0
capacity_b: 0
capacity_c: 0
max_load:
count: 0
capacity:
mass: 0
volume: 0
capacity_a: 0
capacity_b: 0
capacity_c: 0
arrival_load:
count: 2
capacity:
mass: 2
volume: 0
capacity_a: 0
capacity_b: 0
capacity_c: 0
departure_load:
count: 0
capacity:
mass: 0
volume: 0
capacity_a: 0
capacity_b: 0
capacity_c: 0
total_load:
count: 2
capacity:
mass: 2
volume: 0
capacity_a: 0
capacity_b: 0
capacity_c: 0
max_load:
count: 2
capacity:
mass: 2
volume: 0
capacity_a: 0
capacity_b: 0
capacity_c: 0
max_transfer_load:
count: 2
capacity:
mass: 2
volume: 0
capacity_a: 0
capacity_b: 0
capacity_c: 0
progress: 100
info:
status: FINISHED_IN_TIME
result_version: 108
calculation_time: PT20S
waiting_time: PT15S
validations: []
unplanned_items:
order_keys: []
performer_keys: []
transport_keys: []
hardlink_keys: []
PlanResultBeijing:
summary: Beijing
value:
tracedata:
code: 861c8e0a-2651-444e-b426-71cdccc31423
client: veeroute_|_example
server: Universal:leo
service: UNIVERSAL
operation: runPlanCalculation
time: '2022-06-01T11:50:15.123Z'
trips:
- key: performer_1_shift
performer:
performer_key: performer_1
shift_key: performer_1_shift
shift_time:
from: '2022-06-08T04:50:28Z'
to: '2022-06-08T05:47:33Z'
transport:
transport_key: transport_1
shift_key: transport_1_shift
shift_time:
from: '2022-06-08T04:50:28Z'
to: '2022-06-08T05:47:33Z'
states:
- time: '2022-06-08T04:50:28Z'
flags:
- INSIDE_LOCATION
- AROUND_LOCATION
location_key: location_storage
cargo_placements: []
attributes: []
- time: '2022-06-08T04:50:28Z'
flags:
- ON_DEMAND
- INSIDE_EVENT_HARD_WINDOW
- INSIDE_LOCATION_WINDOW
- INSIDE_LOCATION
- AROUND_LOCATION
order_key: order_2
demand_key: demand_2_pickup
event_key: demand_2_pickup_event
location_key: location_storage
cargo_placements: []
attributes: []
- time: '2022-06-08T04:50:28Z'
flags:
- INSIDE_LOCATION
- AROUND_LOCATION
location_key: location_storage
cargo_placements:
- box_key: box_1
cargo_key: order_2_cargos
attributes: []
- time: '2022-06-08T04:50:28Z'
flags:
- ON_DEMAND
- INSIDE_EVENT_HARD_WINDOW
- INSIDE_LOCATION_WINDOW
- INSIDE_LOCATION
- AROUND_LOCATION
order_key: order_1
demand_key: demand_1_pickup
event_key: demand_1_pickup_event
location_key: location_storage
cargo_placements:
- box_key: box_1
cargo_key: order_2_cargos
attributes: []
- time: '2022-06-08T04:50:28Z'
flags:
- INSIDE_LOCATION
- AROUND_LOCATION
location_key: location_storage
cargo_placements:
- box_key: box_1
cargo_key: order_1_cargos
- box_key: box_1
cargo_key: order_2_cargos
attributes: []
- time: '2022-06-08T04:50:28Z'
flags:
- RELOCATING
cargo_placements:
- box_key: box_1
cargo_key: order_1_cargos
- box_key: box_1
cargo_key: order_2_cargos
attributes: []
- time: '2022-06-08T05:00:00Z'
flags:
- INSIDE_LOCATION
- AROUND_LOCATION
location_key: location_client_3
cargo_placements:
- box_key: box_1
cargo_key: order_1_cargos
- box_key: box_1
cargo_key: order_2_cargos
attributes: []
- time: '2022-06-08T05:00:00Z'
flags:
- ON_DEMAND
- INSIDE_EVENT_HARD_WINDOW
- INSIDE_LOCATION_WINDOW
- INSIDE_LOCATION
- AROUND_LOCATION
order_key: order_3
demand_key: demand_3_work
event_key: demand_3_work_event
location_key: location_client_3
cargo_placements:
- box_key: box_1
cargo_key: order_1_cargos
- box_key: box_1
cargo_key: order_2_cargos
attributes: []
- time: '2022-06-08T05:15:00Z'
flags:
- INSIDE_LOCATION
- AROUND_LOCATION
location_key: location_client_3
cargo_placements:
- box_key: box_1
cargo_key: order_1_cargos
- box_key: box_1
cargo_key: order_2_cargos
attributes: []
- time: '2022-06-08T05:15:00Z'
flags:
- RELOCATING
cargo_placements:
- box_key: box_1
cargo_key: order_1_cargos
- box_key: box_1
cargo_key: order_2_cargos
attributes: []
- time: '2022-06-08T05:16:45Z'
flags:
- INSIDE_LOCATION
- AROUND_LOCATION
location_key: location_client_2
cargo_placements:
- box_key: box_1
cargo_key: order_1_cargos
- box_key: box_1
cargo_key: order_2_cargos
attributes: []
- time: '2022-06-08T05:16:45Z'
flags:
- ON_DEMAND
- INSIDE_EVENT_HARD_WINDOW
- INSIDE_LOCATION_WINDOW
- INSIDE_LOCATION
- AROUND_LOCATION
order_key: order_2
demand_key: demand_2_drop
event_key: demand_2_drop_event
location_key: location_client_2
cargo_placements:
- box_key: box_1
cargo_key: order_1_cargos
- box_key: box_1
cargo_key: order_2_cargos
attributes: []
- time: '2022-06-08T05:26:45Z'
flags:
- INSIDE_LOCATION
- AROUND_LOCATION
location_key: location_client_2
cargo_placements:
- box_key: box_1
cargo_key: order_1_cargos
attributes: []
- time: '2022-06-08T05:26:45Z'
flags:
- RELOCATING
cargo_placements:
- box_key: box_1
cargo_key: order_1_cargos
attributes: []
- time: '2022-06-08T05:37:33Z'
flags:
- INSIDE_LOCATION
- AROUND_LOCATION
location_key: location_client_1
cargo_placements:
- box_key: box_1
cargo_key: order_1_cargos
attributes: []
- time: '2022-06-08T05:37:33Z'
flags:
- ON_DEMAND
- INSIDE_EVENT_HARD_WINDOW
- INSIDE_LOCATION_WINDOW
- INSIDE_LOCATION
- AROUND_LOCATION
order_key: order_1
demand_key: demand_1_drop
event_key: demand_1_drop_event
location_key: location_client_1
cargo_placements:
- box_key: box_1
cargo_key: order_1_cargos
attributes: []
- time: '2022-06-08T05:47:33Z'
flags:
- INSIDE_LOCATION
- AROUND_LOCATION
location_key: location_client_1
cargo_placements: []
attributes: []
waitlist: []
attributes: []
statistics:
total_statistics:
cost: 2256.053
reward: 3000.3
measurements:
driving_time: PT57M5S
waiting_time: PT0S
working_time: PT35M
arriving_time: PT0S
departure_time: PT0S
total_time: PT1H32M5S
distance: 38666
time_window:
from: '2022-06-08T04:50:28Z'
to: '2022-06-08T05:47:33Z'
performers_count: 1
orders_count: 3
plan_orders_count: 3
waitlist_orders_count: 0
capacity_utilization:
mass: 0.01
volume: 0
capacity_a: 0
capacity_b: 0
capacity_c: 0
capacity_max:
mass: 0.006
volume: 0
capacity_a: 0
capacity_b: 0
capacity_c: 0
quality:
soft_time_window_violations:
before:
keys: []
count: 0
after:
keys: []
count: 0
hard_time_window_violations:
before:
keys: []
count: 0
after:
keys: []
count: 0
trips_statistics:
- trip_key: performer_1_shift
statistics:
cost: 2256.0533333333333
reward: 3000.3
measurements:
driving_time: PT57M5S
waiting_time: PT0S
working_time: PT35M
arriving_time: PT0S
departure_time: PT0S
total_time: PT1H32M5S
distance: 38666
time_window:
from: '2022-06-08T04:50:28Z'
to: '2022-06-08T05:47:33Z'
performers_count: 1
orders_count: 3
plan_orders_count: 3
waitlist_orders_count: 0
capacity_utilization:
mass: 0.01
volume: 1
capacity_a: 1
capacity_b: 1
capacity_c: 1
capacity_max:
mass: 0.006
volume: 1
capacity_a: 1
capacity_b: 1
capacity_c: 1
quality:
soft_time_window_violations:
before:
keys: []
count: 0
after:
keys: []
count: 0
hard_time_window_violations:
before:
keys: []
count: 0
after:
keys: []
count: 0
stop_statistics:
- location_key: location_storage
demand_ids:
- demand_2_pickup
- demand_1_pickup
measurements:
driving_time: PT0S
waiting_time: PT0S
working_time: PT0S
arriving_time: PT0S
departure_time: PT0S
total_time: PT0S
distance: 0
time_window:
from: '2022-06-08T04:50:28Z'
to: '2022-06-08T04:50:28Z'
upload:
count: 2
capacity:
mass: 2
volume: 0
capacity_a: 0
capacity_b: 0
capacity_c: 0
download:
count: 0
capacity:
mass: 0
volume: 0
capacity_a: 0
capacity_b: 0
capacity_c: 0
max_load:
count: 2
capacity:
mass: 2
volume: 0
capacity_a: 0
capacity_b: 0
capacity_c: 0
arrival_load:
count: 0
capacity:
mass: 0
volume: 0
capacity_a: 0
capacity_b: 0
capacity_c: 0
departure_load:
count: 1
capacity:
mass: 1
volume: 0
capacity_a: 0
capacity_b: 0
capacity_c: 0
- location_key: location_client_3
demand_ids:
- demand_3_work
measurements:
driving_time: PT24M32S
waiting_time: PT0S
working_time: PT15M
arriving_time: PT0S
departure_time: PT0S
total_time: PT39M32S
distance: 8647
time_window:
from: '2022-06-08T04:50:28Z'
to: '2022-06-08T05:15:00Z'
upload:
count: 0
capacity:
mass: 0
volume: 0
capacity_a: 0
capacity_b: 0
capacity_c: 0
download:
count: 0
capacity:
mass: 0
volume: 0
capacity_a: 0
capacity_b: 0
capacity_c: 0
max_load:
count: 0
capacity:
mass: 0
volume: 0
capacity_a: 0
capacity_b: 0
capacity_c: 0
arrival_load:
count: 1
capacity:
mass: 1
volume: 0
capacity_a: 0
capacity_b: 0
capacity_c: 0
departure_load:
count: 1
capacity:
mass: 1
volume: 0
capacity_a: 0
capacity_b: 0
capacity_c: 0
- location_key: location_client_2
demand_ids:
- demand_2_drop
measurements:
driving_time: PT11M45S
waiting_time: PT0S
working_time: PT10M
arriving_time: PT0S
departure_time: PT0S
total_time: PT21M45S
distance: 10122
time_window:
from: '2022-06-08T05:15:00Z'
to: '2022-06-08T05:26:45Z'
upload:
count: 0
capacity:
mass: 0
volume: 0
capacity_a: 0
capacity_b: 0
capacity_c: 0
download:
count: 1
capacity:
mass: 1
volume: 0
capacity_a: 0
capacity_b: 0
capacity_c: 0
max_load:
count: 0
capacity:
mass: 0
volume: 0
capacity_a: 0
capacity_b: 0
capacity_c: 0
arrival_load:
count: 1
capacity:
mass: 1
volume: 0
capacity_a: 0
capacity_b: 0
capacity_c: 0
departure_load:
count: 0
capacity:
mass: 0
volume: 0
capacity_a: 0
capacity_b: 0
capacity_c: 0
- location_key: location_client_1
demand_ids:
- demand_1_drop
measurements:
driving_time: PT20M48S
waiting_time: PT0S
working_time: PT10M
arriving_time: PT0S
departure_time: PT0S
total_time: PT30M48S
distance: 19897
time_window:
from: '2022-06-08T05:26:45Z'
to: '2022-06-08T05:47:33Z'
upload:
count: 0
capacity:
mass: 0
volume: 0
capacity_a: 0
capacity_b: 0
capacity_c: 0
download:
count: 1
capacity:
mass: 1
volume: 0
capacity_a: 0
capacity_b: 0
capacity_c: 0
max_load:
count: 0
capacity:
mass: 0
volume: 0
capacity_a: 0
capacity_b: 0
capacity_c: 0
arrival_load:
count: 2
capacity:
mass: 2
volume: 0
capacity_a: 0
capacity_b: 0
capacity_c: 0
departure_load:
count: 0
capacity:
mass: 0
volume: 0
capacity_a: 0
capacity_b: 0
capacity_c: 0
total_load:
count: 2
capacity:
mass: 2
volume: 0
capacity_a: 0
capacity_b: 0
capacity_c: 0
max_load:
count: 2
capacity:
mass: 2
volume: 0
capacity_a: 0
capacity_b: 0
capacity_c: 0
max_transfer_load:
count: 2
capacity:
mass: 2
volume: 0
capacity_a: 0
capacity_b: 0
capacity_c: 0
progress: 100
info:
status: FINISHED_IN_TIME
result_version: 108
calculation_time: PT1M10S
waiting_time: PT15S
validations: []
unplanned_items:
order_keys: []
performer_keys: []
transport_keys: []
hardlink_keys: []
ValidateResultExample:
summary: Validate example
value:
tracedata:
code: 87d0c1a7-375b-412e-9ab8-8f4be24d0456
client: veeroute_|_example
server: Universal:leo
service: UNIVERSAL
operation: runValidation
time: '2022-06-01T11:50:15.123Z'
validations:
- type: NO_AVAILABLE_TRANSPORT
entities:
- entity_key: ord0001
entity_type: ORDER
ReplanTaskMoscow:
summary: Moscow
value:
locations:
- key: location_client_1
geopoint:
latitude: 55.713699
longitude: 37.621839
- key: location_client_2
geopoint:
latitude: 55.630721
longitude: 37.62493
- key: location_client_3
geopoint:
latitude: 55.722801
longitude: 37.674984
- key: location_storage
geopoint:
latitude: 55.685853
longitude: 37.43181
orders:
- key: order_1
demands:
- key: demand_1_drop
demand_type: DROP
target_cargos:
- order_1_cargos
possible_events:
- key: demand_1_drop_event
location_key: location_client_1
duration: PT10M
hard_time_window:
from: '2022-06-08T05:00:00+00:00'
to: '2022-06-08T07:00:00+00:00'
- key: demand_1_pickup
demand_type: PICKUP
target_cargos:
- order_1_cargos
possible_events:
- key: demand_1_pickup_event
location_key: location_storage
duration: P0D
reward: 0
hard_time_window:
from: '2022-06-07T21:00:00+00:00'
to: '2022-06-08T20:59:59+00:00'
cargos:
- key: order_1_cargos
capacity:
mass: 1
- key: order_2
demands:
- key: demand_2_drop
demand_type: DROP
target_cargos:
- order_2_cargos
possible_events:
- key: demand_2_drop_event
location_key: location_client_2
duration: PT10M
hard_time_window:
from: '2022-06-08T05:00:00+00:00'
to: '2022-06-08T07:00:00+00:00'
- key: demand_2_pickup
demand_type: PICKUP
target_cargos:
- order_2_cargos
possible_events:
- key: demand_2_pickup_event
location_key: location_storage
duration: P0D
reward: 0
hard_time_window:
from: '2022-06-07T21:00:00+00:00'
to: '2022-06-08T20:59:59+00:00'
cargos:
- key: order_2_cargos
capacity:
mass: 1
- key: order_3
demands:
- key: demand_3_work
demand_type: WORK
possible_events:
- key: demand_3_work_event
location_key: location_client_3
duration: PT15M
hard_time_window:
from: '2022-06-08T05:00:00+00:00'
to: '2022-06-08T07:00:00+00:00'
performers:
- key: performer_1
shifts:
- key: performer_1_shift
availability_time:
from: '2022-06-07T21:00:00+00:00'
to: '2022-06-08T20:59:59+00:00'
working_time:
from: '2022-06-07T21:00:00+00:00'
to: '2022-06-08T20:59:59+00:00'
tariff:
cost_per_shift: 1000
constraints:
- stage_length: 720
cost_per_unit: 1
transports:
- key: transport_1
shifts:
- key: transport_1_shift
availability_time:
from: '2022-06-07T21:00:00+00:00'
to: '2022-06-08T20:59:59+00:00'
working_time:
from: '2022-06-07T21:00:00+00:00'
to: '2022-06-08T20:59:59+00:00'
tariff:
cost_per_shift: 1000
constraints:
- stage_length: 1000000
cost_per_unit: 0.01
transport_type: CAR
boxes:
- key: box_1
capacity:
mass: 300
trips:
- key: performer_1_shift
performer:
performer_key: performer_1
shift_key: performer_1_shift
shift_time:
from: '2022-06-08T04:38:34Z'
to: '2022-06-08T05:53:39Z'
transport:
transport_key: transport_1
shift_key: transport_1_shift
shift_time:
from: '2022-06-08T04:38:34Z'
to: '2022-06-08T05:53:39Z'
states:
- time: '2022-06-08T04:38:34Z'
flags:
- INSIDE_LOCATION
- AROUND_LOCATION
location_key: location_storage
cargo_placements: []
attributes: []
- time: '2022-06-08T04:38:34Z'
flags:
- ON_DEMAND
- INSIDE_EVENT_HARD_WINDOW
- INSIDE_LOCATION_WINDOW
- INSIDE_LOCATION
- AROUND_LOCATION
order_key: order_2
demand_key: demand_2_pickup
event_key: demand_2_pickup_event
location_key: location_storage
cargo_placements: []
attributes: []
- time: '2022-06-08T04:38:34Z'
flags:
- INSIDE_LOCATION
- AROUND_LOCATION
location_key: location_storage
cargo_placements:
- box_key: box_1
cargo_key: order_2_cargos
attributes: []
- time: '2022-06-08T04:38:34Z'
flags:
- ON_DEMAND
- INSIDE_EVENT_HARD_WINDOW
- INSIDE_LOCATION_WINDOW
- INSIDE_LOCATION
- AROUND_LOCATION
order_key: order_1
demand_key: demand_1_pickup
event_key: demand_1_pickup_event
location_key: location_storage
cargo_placements:
- box_key: box_1
cargo_key: order_2_cargos
attributes: []
- time: '2022-06-08T04:38:34Z'
flags:
- INSIDE_LOCATION
- AROUND_LOCATION
location_key: location_storage
cargo_placements:
- box_key: box_1
cargo_key: order_1_cargos
- box_key: box_1
cargo_key: order_2_cargos
attributes: []
- time: '2022-06-08T04:38:34Z'
flags:
- RELOCATING
cargo_placements:
- box_key: box_1
cargo_key: order_1_cargos
- box_key: box_1
cargo_key: order_2_cargos
attributes: []
- time: '2022-06-08T05:00:00Z'
flags:
- INSIDE_LOCATION
- AROUND_LOCATION
location_key: location_client_2
cargo_placements:
- box_key: box_1
cargo_key: order_1_cargos
- box_key: box_1
cargo_key: order_2_cargos
attributes: []
- time: '2022-06-08T05:00:00Z'
flags:
- ON_DEMAND
- INSIDE_EVENT_HARD_WINDOW
- INSIDE_LOCATION_WINDOW
- INSIDE_LOCATION
- AROUND_LOCATION
order_key: order_2
demand_key: demand_2_drop
event_key: demand_2_drop_event
location_key: location_client_2
cargo_placements:
- box_key: box_1
cargo_key: order_1_cargos
- box_key: box_1
cargo_key: order_2_cargos
attributes: []
- time: '2022-06-08T05:10:00Z'
flags:
- INSIDE_LOCATION
- AROUND_LOCATION
location_key: location_client_2
cargo_placements:
- box_key: box_1
cargo_key: order_1_cargos
attributes: []
- time: '2022-06-08T05:10:00Z'
flags:
- RELOCATING
cargo_placements:
- box_key: box_1
cargo_key: order_1_cargos
attributes: []
- time: '2022-06-08T05:20:52Z'
flags:
- INSIDE_LOCATION
- AROUND_LOCATION
location_key: location_client_1
cargo_placements:
- box_key: box_1
cargo_key: order_1_cargos
attributes: []
- time: '2022-06-08T05:20:52Z'
flags:
- ON_DEMAND
- INSIDE_EVENT_HARD_WINDOW
- INSIDE_LOCATION_WINDOW
- INSIDE_LOCATION
- AROUND_LOCATION
order_key: order_1
demand_key: demand_1_drop
event_key: demand_1_drop_event
location_key: location_client_1
cargo_placements:
- box_key: box_1
cargo_key: order_1_cargos
attributes: []
- time: '2022-06-08T05:30:52Z'
flags:
- INSIDE_LOCATION
- AROUND_LOCATION
location_key: location_client_1
cargo_placements: []
attributes: []
- time: '2022-06-08T05:30:52Z'
flags:
- RELOCATING
cargo_placements: []
attributes: []
- time: '2022-06-08T05:38:39Z'
flags:
- INSIDE_LOCATION
- AROUND_LOCATION
location_key: location_client_3
cargo_placements: []
attributes: []
- time: '2022-06-08T05:38:39Z'
flags:
- ON_DEMAND
- INSIDE_EVENT_HARD_WINDOW
- INSIDE_LOCATION_WINDOW
- INSIDE_LOCATION
- AROUND_LOCATION
order_key: order_3
demand_key: demand_3_work
event_key: demand_3_work_event
location_key: location_client_3
cargo_placements: []
attributes: []
- time: '2022-06-08T05:53:39Z'
flags:
- INSIDE_LOCATION
- AROUND_LOCATION
location_key: location_client_3
cargo_placements: []
attributes: []
waitlist: []
attributes: []
ReplanResultMoscow:
summary: Moscow
value:
tracedata:
code: 861c8e0a-2651-444e-b426-71cdccc31423
client: veeroute_|_example
server: Universal:leo
service: UNIVERSAL
operation: runReplanCalculation
time: '2022-06-01T11:50:15.123Z'
trips:
- key: performer_1_shift
performer:
performer_key: performer_1
shift_key: performer_1_shift
shift_time:
from: '2022-06-08T04:38:34Z'
to: '2022-06-08T05:53:39Z'
transport:
transport_key: transport_1
shift_key: transport_1_shift
shift_time:
from: '2022-06-08T04:38:34Z'
to: '2022-06-08T05:53:39Z'
states:
- time: '2022-06-08T04:38:34Z'
flags:
- INSIDE_LOCATION
- AROUND_LOCATION
location_key: location_storage
cargo_placements: []
attributes: []
- time: '2022-06-08T04:38:34Z'
flags:
- ON_DEMAND
- INSIDE_EVENT_HARD_WINDOW
- INSIDE_LOCATION_WINDOW
- INSIDE_LOCATION
- AROUND_LOCATION
order_key: order_2
demand_key: demand_2_pickup
event_key: demand_2_pickup_event
location_key: location_storage
cargo_placements: []
attributes: []
- time: '2022-06-08T04:38:34Z'
flags:
- INSIDE_LOCATION
- AROUND_LOCATION
location_key: location_storage
cargo_placements:
- box_key: box_1
cargo_key: order_2_cargos
attributes: []
- time: '2022-06-08T04:38:34Z'
flags:
- ON_DEMAND
- INSIDE_EVENT_HARD_WINDOW
- INSIDE_LOCATION_WINDOW
- INSIDE_LOCATION
- AROUND_LOCATION
order_key: order_1
demand_key: demand_1_pickup
event_key: demand_1_pickup_event
location_key: location_storage
cargo_placements:
- box_key: box_1
cargo_key: order_2_cargos
attributes: []
- time: '2022-06-08T04:38:34Z'
flags:
- INSIDE_LOCATION
- AROUND_LOCATION
location_key: location_storage
cargo_placements:
- box_key: box_1
cargo_key: order_1_cargos
- box_key: box_1
cargo_key: order_2_cargos
attributes: []
- time: '2022-06-08T04:38:34Z'
flags:
- RELOCATING
cargo_placements:
- box_key: box_1
cargo_key: order_1_cargos
- box_key: box_1
cargo_key: order_2_cargos
attributes: []
- time: '2022-06-08T05:00:00Z'
flags:
- INSIDE_LOCATION
- AROUND_LOCATION
location_key: location_client_2
cargo_placements:
- box_key: box_1
cargo_key: order_1_cargos
- box_key: box_1
cargo_key: order_2_cargos
attributes: []
- time: '2022-06-08T05:00:00Z'
flags:
- ON_DEMAND
- INSIDE_EVENT_HARD_WINDOW
- INSIDE_LOCATION_WINDOW
- INSIDE_LOCATION
- AROUND_LOCATION
order_key: order_2
demand_key: demand_2_drop
event_key: demand_2_drop_event
location_key: location_client_2
cargo_placements:
- box_key: box_1
cargo_key: order_1_cargos
- box_key: box_1
cargo_key: order_2_cargos
attributes: []
- time: '2022-06-08T05:10:00Z'
flags:
- INSIDE_LOCATION
- AROUND_LOCATION
location_key: location_client_2
cargo_placements:
- box_key: box_1
cargo_key: order_1_cargos
attributes: []
- time: '2022-06-08T05:10:00Z'
flags:
- RELOCATING
cargo_placements:
- box_key: box_1
cargo_key: order_1_cargos
attributes: []
- time: '2022-06-08T05:20:52Z'
flags:
- INSIDE_LOCATION
- AROUND_LOCATION
location_key: location_client_1
cargo_placements:
- box_key: box_1
cargo_key: order_1_cargos
attributes: []
- time: '2022-06-08T05:20:52Z'
flags:
- ON_DEMAND
- INSIDE_EVENT_HARD_WINDOW
- INSIDE_LOCATION_WINDOW
- INSIDE_LOCATION
- AROUND_LOCATION
order_key: order_1
demand_key: demand_1_drop
event_key: demand_1_drop_event
location_key: location_client_1
cargo_placements:
- box_key: box_1
cargo_key: order_1_cargos
attributes: []
- time: '2022-06-08T05:30:52Z'
flags:
- INSIDE_LOCATION
- AROUND_LOCATION
location_key: location_client_1
cargo_placements: []
attributes: []
- time: '2022-06-08T05:30:52Z'
flags:
- RELOCATING
cargo_placements: []
attributes: []
- time: '2022-06-08T05:38:39Z'
flags:
- INSIDE_LOCATION
- AROUND_LOCATION
location_key: location_client_3
cargo_placements: []
attributes: []
- time: '2022-06-08T05:38:39Z'
flags:
- ON_DEMAND
- INSIDE_EVENT_HARD_WINDOW
- INSIDE_LOCATION_WINDOW
- INSIDE_LOCATION
- AROUND_LOCATION
order_key: order_3
demand_key: demand_3_work
event_key: demand_3_work_event
location_key: location_client_3
cargo_placements: []
attributes: []
- time: '2022-06-08T05:53:39Z'
flags:
- INSIDE_LOCATION
- AROUND_LOCATION
location_key: location_client_3
cargo_placements: []
attributes: []
waitlist: []
attributes: []
statistics:
total_statistics:
cost: 2415.263
reward: 3000.3
measurements:
driving_time: PT1H15M5S
waiting_time: PT0S
working_time: PT35M
arriving_time: PT0S
departure_time: PT0S
total_time: PT1H50M5S
distance: 78117
time_window:
from: '2022-06-08T04:38:34Z'
to: '2022-06-08T05:53:39Z'
performers_count: 1
orders_count: 3
plan_orders_count: 3
waitlist_orders_count: 0
capacity_utilization:
mass: 0.01
volume: 0
capacity_a: 0
capacity_b: 0
capacity_c: 0
capacity_max:
mass: 0.006
volume: 0
capacity_a: 0
capacity_b: 0
capacity_c: 0
quality:
soft_time_window_violations:
before:
keys: []
count: 0
after:
keys: []
count: 0
hard_time_window_violations:
before:
keys: []
count: 0
after:
keys: []
count: 0
trips_statistics:
- trip_key: performer_1_shift
statistics:
cost: 2415.2633333333333
reward: 3000.3
measurements:
driving_time: PT1H15M5S
waiting_time: PT0S
working_time: PT35M
arriving_time: PT0S
departure_time: PT0S
total_time: PT1H50M5S
distance: 78117
time_window:
from: '2022-06-08T04:38:34Z'
to: '2022-06-08T05:53:39Z'
performers_count: 1
orders_count: 3
plan_orders_count: 3
waitlist_orders_count: 0
capacity_utilization:
mass: 0.01
volume: 1
capacity_a: 1
capacity_b: 1
capacity_c: 1
capacity_max:
mass: 0.006
volume: 1
capacity_a: 1
capacity_b: 1
capacity_c: 1
quality:
soft_time_window_violations:
before:
keys: []
count: 0
after:
keys: []
count: 0
hard_time_window_violations:
before:
keys: []
count: 0
after:
keys: []
count: 0
stop_statistics:
- location_key: location_storage
demand_ids:
- demand_2_pickup
- demand_1_pickup
measurements:
driving_time: PT0S
waiting_time: PT0S
working_time: PT0S
arriving_time: PT0S
departure_time: PT0S
total_time: PT0S
distance: 0
time_window:
from: '2022-06-08T04:38:34Z'
to: '2022-06-08T04:38:34Z'
upload:
count: 2
capacity:
mass: 2
volume: 0
capacity_a: 0
capacity_b: 0
capacity_c: 0
download:
count: 0
capacity:
mass: 0
volume: 0
capacity_a: 0
capacity_b: 0
capacity_c: 0
max_load:
count: 2
capacity:
mass: 2
volume: 0
capacity_a: 0
capacity_b: 0
capacity_c: 0
arrival_load:
count: 0
capacity:
mass: 0
volume: 0
capacity_a: 0
capacity_b: 0
capacity_c: 0
departure_load:
count: 1
capacity:
mass: 1
volume: 0
capacity_a: 0
capacity_b: 0
capacity_c: 0
- location_key: location_client_2
demand_ids:
- demand_2_drop
measurements:
driving_time: PT31M26S
waiting_time: PT0S
working_time: PT10M
arriving_time: PT0S
departure_time: PT0S
total_time: PT41M26S
distance: 17108
time_window:
from: '2022-06-08T04:38:34Z'
to: '2022-06-08T05:10:00Z'
upload:
count: 0
capacity:
mass: 0
volume: 0
capacity_a: 0
capacity_b: 0
capacity_c: 0
download:
count: 1
capacity:
mass: 1
volume: 0
capacity_a: 0
capacity_b: 0
capacity_c: 0
max_load:
count: 0
capacity:
mass: 0
volume: 0
capacity_a: 0
capacity_b: 0
capacity_c: 0
arrival_load:
count: 1
capacity:
mass: 1
volume: 0
capacity_a: 0
capacity_b: 0
capacity_c: 0
departure_load:
count: 0
capacity:
mass: 0
volume: 0
capacity_a: 0
capacity_b: 0
capacity_c: 0
- location_key: location_client_1
demand_ids:
- demand_1_drop
measurements:
driving_time: PT20M52S
waiting_time: PT0S
working_time: PT10M
arriving_time: PT0S
departure_time: PT0S
total_time: PT30M52S
distance: 26991
time_window:
from: '2022-06-08T05:10:00Z'
to: '2022-06-08T05:30:52Z'
upload:
count: 0
capacity:
mass: 0
volume: 0
capacity_a: 0
capacity_b: 0
capacity_c: 0
download:
count: 1
capacity:
mass: 1
volume: 0
capacity_a: 0
capacity_b: 0
capacity_c: 0
max_load:
count: 0
capacity:
mass: 0
volume: 0
capacity_a: 0
capacity_b: 0
capacity_c: 0
arrival_load:
count: 2
capacity:
mass: 2
volume: 0
capacity_a: 0
capacity_b: 0
capacity_c: 0
departure_load:
count: 0
capacity:
mass: 0
volume: 0
capacity_a: 0
capacity_b: 0
capacity_c: 0
- location_key: location_client_3
demand_ids:
- demand_3_work
measurements:
driving_time: PT22M47S
waiting_time: PT0S
working_time: PT15M
arriving_time: PT0S
departure_time: PT0S
total_time: PT37M47S
distance: 34018
time_window:
from: '2022-06-08T05:30:52Z'
to: '2022-06-08T05:53:39Z'
upload:
count: 0
capacity:
mass: 0
volume: 0
capacity_a: 0
capacity_b: 0
capacity_c: 0
download:
count: 0
capacity:
mass: 0
volume: 0
capacity_a: 0
capacity_b: 0
capacity_c: 0
max_load:
count: 0
capacity:
mass: 0
volume: 0
capacity_a: 0
capacity_b: 0
capacity_c: 0
arrival_load:
count: 1
capacity:
mass: 1
volume: 0
capacity_a: 0
capacity_b: 0
capacity_c: 0
departure_load:
count: 0
capacity:
mass: 0
volume: 0
capacity_a: 0
capacity_b: 0
capacity_c: 0
total_load:
count: 2
capacity:
mass: 2
volume: 0
capacity_a: 0
capacity_b: 0
capacity_c: 0
max_load:
count: 2
capacity:
mass: 2
volume: 0
capacity_a: 0
capacity_b: 0
capacity_c: 0
max_transfer_load:
count: 2
capacity:
mass: 2
volume: 0
capacity_a: 0
capacity_b: 0
capacity_c: 0
progress: 100
info:
status: FINISHED_IN_TIME
result_version: 108
calculation_time: PT20S
waiting_time: PT15S
validations: []
unplanned_items:
order_keys: []
performer_keys: []
transport_keys: []
hardlink_keys: []
ActualizeTaskMoscow:
summary: Moscow
value:
locations:
- key: location_client_1
geopoint:
latitude: 55.713699
longitude: 37.621839
- key: location_client_2
geopoint:
latitude: 55.630721
longitude: 37.62493
- key: location_client_3
geopoint:
latitude: 55.722801
longitude: 37.674984
- key: location_storage
geopoint:
latitude: 55.685853
longitude: 37.43181
orders:
- key: order_1
demands:
- key: demand_1_drop
demand_type: DROP
target_cargos:
- order_1_cargos
possible_events:
- key: demand_1_drop_event
location_key: location_client_1
duration: PT10M
hard_time_window:
from: '2022-06-08T05:00:00+00:00'
to: '2022-06-08T07:00:00+00:00'
- key: demand_1_pickup
demand_type: PICKUP
target_cargos:
- order_1_cargos
possible_events:
- key: demand_1_pickup_event
location_key: location_storage
duration: P0D
reward: 0
hard_time_window:
from: '2022-06-07T21:00:00+00:00'
to: '2022-06-08T20:59:59+00:00'
cargos:
- key: order_1_cargos
capacity:
mass: 1
- key: order_2
demands:
- key: demand_2_drop
demand_type: DROP
target_cargos:
- order_2_cargos
possible_events:
- key: demand_2_drop_event
location_key: location_client_2
duration: PT10M
hard_time_window:
from: '2022-06-08T05:00:00+00:00'
to: '2022-06-08T07:00:00+00:00'
- key: demand_2_pickup
demand_type: PICKUP
target_cargos:
- order_2_cargos
possible_events:
- key: demand_2_pickup_event
location_key: location_storage
duration: P0D
reward: 0
hard_time_window:
from: '2022-06-07T21:00:00+00:00'
to: '2022-06-08T20:59:59+00:00'
cargos:
- key: order_2_cargos
capacity:
mass: 1
- key: order_3
demands:
- key: demand_3_work
demand_type: WORK
possible_events:
- key: demand_3_work_event
location_key: location_client_3
duration: PT15M
hard_time_window:
from: '2022-06-08T05:00:00+00:00'
to: '2022-06-08T07:00:00+00:00'
performers:
- key: performer_1
shifts:
- key: performer_1_shift
availability_time:
from: '2022-06-07T21:00:00+00:00'
to: '2022-06-08T20:59:59+00:00'
working_time:
from: '2022-06-07T21:00:00+00:00'
to: '2022-06-08T20:59:59+00:00'
tariff:
cost_per_shift: 1000
constraints:
- stage_length: 720
cost_per_unit: 1
transports:
- key: transport_1
shifts:
- key: transport_1_shift
availability_time:
from: '2022-06-07T21:00:00+00:00'
to: '2022-06-08T20:59:59+00:00'
working_time:
from: '2022-06-07T21:00:00+00:00'
to: '2022-06-08T20:59:59+00:00'
tariff:
cost_per_shift: 1000
constraints:
- stage_length: 1000000
cost_per_unit: 0.01
transport_type: CAR
boxes:
- key: box_1
capacity:
mass: 300
trips:
- key: performer_1_shift
performer:
performer_key: performer_1
shift_key: performer_1_shift
shift_time:
from: '2022-06-08T04:38:34Z'
to: '2022-06-08T05:53:39Z'
transport:
transport_key: transport_1
shift_key: transport_1_shift
shift_time:
from: '2022-06-08T04:38:34Z'
to: '2022-06-08T05:53:39Z'
states:
- time: '2022-06-08T04:38:34Z'
flags:
- INSIDE_LOCATION
- AROUND_LOCATION
location_key: location_storage
cargo_placements: []
attributes: []
- time: '2022-06-08T04:38:34Z'
flags:
- ON_DEMAND
- INSIDE_EVENT_HARD_WINDOW
- INSIDE_LOCATION_WINDOW
- INSIDE_LOCATION
- AROUND_LOCATION
order_key: order_2
demand_key: demand_2_pickup
event_key: demand_2_pickup_event
location_key: location_storage
cargo_placements: []
attributes: []
- time: '2022-06-08T04:38:34Z'
flags:
- INSIDE_LOCATION
- AROUND_LOCATION
location_key: location_storage
cargo_placements:
- box_key: box_1
cargo_key: order_2_cargos
attributes: []
- time: '2022-06-08T04:38:34Z'
flags:
- ON_DEMAND
- INSIDE_EVENT_HARD_WINDOW
- INSIDE_LOCATION_WINDOW
- INSIDE_LOCATION
- AROUND_LOCATION
order_key: order_1
demand_key: demand_1_pickup
event_key: demand_1_pickup_event
location_key: location_storage
cargo_placements:
- box_key: box_1
cargo_key: order_2_cargos
attributes: []
- time: '2022-06-08T04:38:34Z'
flags:
- INSIDE_LOCATION
- AROUND_LOCATION
location_key: location_storage
cargo_placements:
- box_key: box_1
cargo_key: order_1_cargos
- box_key: box_1
cargo_key: order_2_cargos
attributes: []
- time: '2022-06-08T04:38:34Z'
flags:
- RELOCATING
cargo_placements:
- box_key: box_1
cargo_key: order_1_cargos
- box_key: box_1
cargo_key: order_2_cargos
attributes: []
- time: '2022-06-08T05:00:00Z'
flags:
- INSIDE_LOCATION
- AROUND_LOCATION
location_key: location_client_2
cargo_placements:
- box_key: box_1
cargo_key: order_1_cargos
- box_key: box_1
cargo_key: order_2_cargos
attributes: []
- time: '2022-06-08T05:00:00Z'
flags:
- ON_DEMAND
- INSIDE_EVENT_HARD_WINDOW
- INSIDE_LOCATION_WINDOW
- INSIDE_LOCATION
- AROUND_LOCATION
order_key: order_2
demand_key: demand_2_drop
event_key: demand_2_drop_event
location_key: location_client_2
cargo_placements:
- box_key: box_1
cargo_key: order_1_cargos
- box_key: box_1
cargo_key: order_2_cargos
attributes: []
- time: '2022-06-08T05:10:00Z'
flags:
- INSIDE_LOCATION
- AROUND_LOCATION
location_key: location_client_2
cargo_placements:
- box_key: box_1
cargo_key: order_1_cargos
attributes: []
- time: '2022-06-08T05:10:00Z'
flags:
- RELOCATING
cargo_placements:
- box_key: box_1
cargo_key: order_1_cargos
attributes: []
- time: '2022-06-08T05:20:52Z'
flags:
- INSIDE_LOCATION
- AROUND_LOCATION
location_key: location_client_1
cargo_placements:
- box_key: box_1
cargo_key: order_1_cargos
attributes: []
- time: '2022-06-08T05:20:52Z'
flags:
- ON_DEMAND
- INSIDE_EVENT_HARD_WINDOW
- INSIDE_LOCATION_WINDOW
- INSIDE_LOCATION
- AROUND_LOCATION
order_key: order_1
demand_key: demand_1_drop
event_key: demand_1_drop_event
location_key: location_client_1
cargo_placements:
- box_key: box_1
cargo_key: order_1_cargos
attributes: []
- time: '2022-06-08T05:30:52Z'
flags:
- INSIDE_LOCATION
- AROUND_LOCATION
location_key: location_client_1
cargo_placements: []
attributes: []
- time: '2022-06-08T05:30:52Z'
flags:
- RELOCATING
cargo_placements: []
attributes: []
- time: '2022-06-08T05:38:39Z'
flags:
- INSIDE_LOCATION
- AROUND_LOCATION
location_key: location_client_3
cargo_placements: []
attributes: []
- time: '2022-06-08T05:38:39Z'
flags:
- ON_DEMAND
- INSIDE_EVENT_HARD_WINDOW
- INSIDE_LOCATION_WINDOW
- INSIDE_LOCATION
- AROUND_LOCATION
order_key: order_3
demand_key: demand_3_work
event_key: demand_3_work_event
location_key: location_client_3
cargo_placements: []
attributes: []
- time: '2022-06-08T05:53:39Z'
flags:
- INSIDE_LOCATION
- AROUND_LOCATION
location_key: location_client_3
cargo_placements: []
attributes: []
waitlist: []
attributes: []
PredictTaskMoscow:
summary: Moscow
value:
new_order:
key: order_3
demands:
- key: demand_3_work
demand_type: WORK
possible_events:
- key: demand_3_work_event_1
location_key: location_client_3
duration: PT15M
hard_time_window:
from: '2022-06-08T05:00:00+00:00'
to: '2022-06-08T07:00:00+00:00'
- key: demand_3_work_event_2
location_key: location_client_3
duration: PT15M
hard_time_window:
from: '2022-06-08T07:00:00+00:00'
to: '2022-06-08T12:00:00+00:00'
locations:
- key: location_client_1
geopoint:
latitude: 55.713699
longitude: 37.621839
- key: location_client_2
geopoint:
latitude: 55.630721
longitude: 37.62493
- key: location_client_3
geopoint:
latitude: 55.722801
longitude: 37.674984
- key: location_storage
geopoint:
latitude: 55.685853
longitude: 37.43181
orders:
- key: order_1
demands:
- key: demand_1_drop
demand_type: DROP
target_cargos:
- order_1_cargos
possible_events:
- key: demand_1_drop_event
location_key: location_client_1
duration: PT10M
hard_time_window:
from: '2022-06-08T05:00:00+00:00'
to: '2022-06-08T07:00:00+00:00'
- key: demand_1_pickup
demand_type: PICKUP
target_cargos:
- order_1_cargos
possible_events:
- key: demand_1_pickup_event
location_key: location_storage
duration: P0D
reward: 0
hard_time_window:
from: '2022-06-07T21:00:00+00:00'
to: '2022-06-08T20:59:59+00:00'
cargos:
- key: order_1_cargos
capacity:
mass: 1
- key: order_2
demands:
- key: demand_2_drop
demand_type: DROP
target_cargos:
- order_2_cargos
possible_events:
- key: demand_2_drop_event
location_key: location_client_2
duration: PT10M
hard_time_window:
from: '2022-06-08T05:00:00+00:00'
to: '2022-06-08T07:00:00+00:00'
- key: demand_2_pickup
demand_type: PICKUP
target_cargos:
- order_2_cargos
possible_events:
- key: demand_2_pickup_event
location_key: location_storage
duration: P0D
reward: 0
hard_time_window:
from: '2022-06-07T21:00:00+00:00'
to: '2022-06-08T20:59:59+00:00'
cargos:
- key: order_2_cargos
capacity:
mass: 1
performers:
- key: performer_1
shifts:
- key: performer_1_shift
availability_time:
from: '2022-06-07T21:00:00+00:00'
to: '2022-06-08T20:59:59+00:00'
working_time:
from: '2022-06-07T21:00:00+00:00'
to: '2022-06-08T20:59:59+00:00'
tariff:
cost_per_shift: 1000
constraints:
- stage_length: 720
cost_per_unit: 1
transports:
- key: transport_1
shifts:
- key: transport_1_shift
availability_time:
from: '2022-06-07T21:00:00+00:00'
to: '2022-06-08T20:59:59+00:00'
working_time:
from: '2022-06-07T21:00:00+00:00'
to: '2022-06-08T20:59:59+00:00'
tariff:
cost_per_shift: 1000
constraints:
- stage_length: 1000000
cost_per_unit: 0.01
transport_type: CAR
boxes:
- key: box_1
capacity:
mass: 300
trips:
- key: performer_1_shift
performer:
performer_key: performer_1
shift_key: performer_1_shift
shift_time:
from: '2022-06-08T04:38:34Z'
to: '2022-06-08T05:53:39Z'
transport:
transport_key: transport_1
shift_key: transport_1_shift
shift_time:
from: '2022-06-08T04:38:34Z'
to: '2022-06-08T05:53:39Z'
states:
- time: '2022-06-08T04:38:34Z'
flags:
- INSIDE_LOCATION
- AROUND_LOCATION
location_key: location_storage
cargo_placements: []
attributes: []
- time: '2022-06-08T04:38:34Z'
flags:
- ON_DEMAND
- INSIDE_EVENT_HARD_WINDOW
- INSIDE_LOCATION_WINDOW
- INSIDE_LOCATION
- AROUND_LOCATION
order_key: order_2
demand_key: demand_2_pickup
event_key: demand_2_pickup_event
location_key: location_storage
cargo_placements: []
attributes: []
- time: '2022-06-08T04:38:34Z'
flags:
- INSIDE_LOCATION
- AROUND_LOCATION
location_key: location_storage
cargo_placements:
- box_key: box_1
cargo_key: order_2_cargos
attributes: []
- time: '2022-06-08T04:38:34Z'
flags:
- ON_DEMAND
- INSIDE_EVENT_HARD_WINDOW
- INSIDE_LOCATION_WINDOW
- INSIDE_LOCATION
- AROUND_LOCATION
order_key: order_1
demand_key: demand_1_pickup
event_key: demand_1_pickup_event
location_key: location_storage
cargo_placements:
- box_key: box_1
cargo_key: order_2_cargos
attributes: []
- time: '2022-06-08T04:38:34Z'
flags:
- INSIDE_LOCATION
- AROUND_LOCATION
location_key: location_storage
cargo_placements:
- box_key: box_1
cargo_key: order_1_cargos
- box_key: box_1
cargo_key: order_2_cargos
attributes: []
- time: '2022-06-08T04:38:34Z'
flags:
- RELOCATING
cargo_placements:
- box_key: box_1
cargo_key: order_1_cargos
- box_key: box_1
cargo_key: order_2_cargos
attributes: []
- time: '2022-06-08T05:00:00Z'
flags:
- INSIDE_LOCATION
- AROUND_LOCATION
location_key: location_client_2
cargo_placements:
- box_key: box_1
cargo_key: order_1_cargos
- box_key: box_1
cargo_key: order_2_cargos
attributes: []
- time: '2022-06-08T05:00:00Z'
flags:
- ON_DEMAND
- INSIDE_EVENT_HARD_WINDOW
- INSIDE_LOCATION_WINDOW
- INSIDE_LOCATION
- AROUND_LOCATION
order_key: order_2
demand_key: demand_2_drop
event_key: demand_2_drop_event
location_key: location_client_2
cargo_placements:
- box_key: box_1
cargo_key: order_1_cargos
- box_key: box_1
cargo_key: order_2_cargos
attributes: []
- time: '2022-06-08T05:10:00Z'
flags:
- INSIDE_LOCATION
- AROUND_LOCATION
location_key: location_client_2
cargo_placements:
- box_key: box_1
cargo_key: order_1_cargos
attributes: []
- time: '2022-06-08T05:10:00Z'
flags:
- RELOCATING
cargo_placements:
- box_key: box_1
cargo_key: order_1_cargos
attributes: []
- time: '2022-06-08T05:20:52Z'
flags:
- INSIDE_LOCATION
- AROUND_LOCATION
location_key: location_client_1
cargo_placements:
- box_key: box_1
cargo_key: order_1_cargos
attributes: []
- time: '2022-06-08T05:20:52Z'
flags:
- ON_DEMAND
- INSIDE_EVENT_HARD_WINDOW
- INSIDE_LOCATION_WINDOW
- INSIDE_LOCATION
- AROUND_LOCATION
order_key: order_1
demand_key: demand_1_drop
event_key: demand_1_drop_event
location_key: location_client_1
cargo_placements:
- box_key: box_1
cargo_key: order_1_cargos
attributes: []
- time: '2022-06-08T05:30:52Z'
flags:
- INSIDE_LOCATION
- AROUND_LOCATION
location_key: location_client_1
cargo_placements: []
attributes: []
- time: '2022-06-08T05:30:52Z'
flags:
- RELOCATING
cargo_placements: []
attributes: []
- time: '2022-06-08T05:38:39Z'
flags:
- INSIDE_LOCATION
- AROUND_LOCATION
location_key: location_client_3
cargo_placements: []
attributes: []
- time: '2022-06-08T05:38:39Z'
flags:
- ON_DEMAND
- INSIDE_EVENT_HARD_WINDOW
- INSIDE_LOCATION_WINDOW
- INSIDE_LOCATION
- AROUND_LOCATION
order_key: order_3
demand_key: demand_3_work
event_key: demand_3_work_event
location_key: location_client_3
cargo_placements: []
attributes: []
- time: '2022-06-08T05:53:39Z'
flags:
- INSIDE_LOCATION
- AROUND_LOCATION
location_key: location_client_3
cargo_placements: []
attributes: []
waitlist: []
attributes: []
ConvertTaskMoscow:
summary: Moscow
value:
locations:
- key: location_client_1
geopoint:
latitude: 55.713699
longitude: 37.621839
- key: location_client_2
geopoint:
latitude: 55.630721
longitude: 37.62493
- key: location_client_3
geopoint:
latitude: 55.722801
longitude: 37.674984
- key: location_storage
geopoint:
latitude: 55.685853
longitude: 37.43181
orders:
- key: order_1
demands:
- key: demand_1_drop
demand_type: DROP
target_cargos:
- order_1_cargos
possible_events:
- key: demand_1_drop_event
location_key: location_client_1
duration: PT10M
hard_time_window:
from: '2022-06-08T05:00:00+00:00'
to: '2022-06-08T07:00:00+00:00'
- key: demand_1_pickup
demand_type: PICKUP
target_cargos:
- order_1_cargos
possible_events:
- key: demand_1_pickup_event
location_key: location_storage
duration: P0D
reward: 0
hard_time_window:
from: '2022-06-07T21:00:00+00:00'
to: '2022-06-08T20:59:59+00:00'
cargos:
- key: order_1_cargos
capacity:
mass: 1
- key: order_2
demands:
- key: demand_2_drop
demand_type: DROP
target_cargos:
- order_2_cargos
possible_events:
- key: demand_2_drop_event
location_key: location_client_2
duration: PT10M
hard_time_window:
from: '2022-06-08T05:00:00+00:00'
to: '2022-06-08T07:00:00+00:00'
- key: demand_2_pickup
demand_type: PICKUP
target_cargos:
- order_2_cargos
possible_events:
- key: demand_2_pickup_event
location_key: location_storage
duration: P0D
reward: 0
hard_time_window:
from: '2022-06-07T21:00:00+00:00'
to: '2022-06-08T20:59:59+00:00'
cargos:
- key: order_2_cargos
capacity:
mass: 1
- key: order_3
demands:
- key: demand_3_work
demand_type: WORK
possible_events:
- key: demand_3_work_event
location_key: location_client_3
duration: PT15M
hard_time_window:
from: '2022-06-08T05:00:00+00:00'
to: '2022-06-08T07:00:00+00:00'
performers:
- key: performer_1
shifts:
- key: performer_1_shift
availability_time:
from: '2022-06-07T21:00:00+00:00'
to: '2022-06-08T20:59:59+00:00'
working_time:
from: '2022-06-07T21:00:00+00:00'
to: '2022-06-08T20:59:59+00:00'
tariff:
cost_per_shift: 1000
constraints:
- stage_length: 720
cost_per_unit: 1
transports:
- key: transport_1
shifts:
- key: transport_1_shift
availability_time:
from: '2022-06-07T21:00:00+00:00'
to: '2022-06-08T20:59:59+00:00'
working_time:
from: '2022-06-07T21:00:00+00:00'
to: '2022-06-08T20:59:59+00:00'
tariff:
cost_per_shift: 1000
constraints:
- stage_length: 1000000
cost_per_unit: 0.01
transport_type: CAR
boxes:
- key: box_1
capacity:
mass: 300
trips:
- key: performer_1_shift
performer:
performer_key: performer_1
shift_key: performer_1_shift
shift_time:
from: '2022-06-08T04:38:34Z'
to: '2022-06-08T05:53:39Z'
transport:
transport_key: transport_1
shift_key: transport_1_shift
shift_time:
from: '2022-06-08T04:38:34Z'
to: '2022-06-08T05:53:39Z'
states:
- time: '2022-06-08T04:38:34Z'
flags:
- INSIDE_LOCATION
- AROUND_LOCATION
location_key: location_storage
cargo_placements: []
attributes: []
- time: '2022-06-08T04:38:34Z'
flags:
- ON_DEMAND
- INSIDE_EVENT_HARD_WINDOW
- INSIDE_LOCATION_WINDOW
- INSIDE_LOCATION
- AROUND_LOCATION
order_key: order_2
demand_key: demand_2_pickup
event_key: demand_2_pickup_event
location_key: location_storage
cargo_placements: []
attributes: []
- time: '2022-06-08T04:38:34Z'
flags:
- INSIDE_LOCATION
- AROUND_LOCATION
location_key: location_storage
cargo_placements:
- box_key: box_1
cargo_key: order_2_cargos
attributes: []
- time: '2022-06-08T04:38:34Z'
flags:
- ON_DEMAND
- INSIDE_EVENT_HARD_WINDOW
- INSIDE_LOCATION_WINDOW
- INSIDE_LOCATION
- AROUND_LOCATION
order_key: order_1
demand_key: demand_1_pickup
event_key: demand_1_pickup_event
location_key: location_storage
cargo_placements:
- box_key: box_1
cargo_key: order_2_cargos
attributes: []
- time: '2022-06-08T04:38:34Z'
flags:
- INSIDE_LOCATION
- AROUND_LOCATION
location_key: location_storage
cargo_placements:
- box_key: box_1
cargo_key: order_1_cargos
- box_key: box_1
cargo_key: order_2_cargos
attributes: []
- time: '2022-06-08T04:38:34Z'
flags:
- RELOCATING
cargo_placements:
- box_key: box_1
cargo_key: order_1_cargos
- box_key: box_1
cargo_key: order_2_cargos
attributes: []
- time: '2022-06-08T05:00:00Z'
flags:
- INSIDE_LOCATION
- AROUND_LOCATION
location_key: location_client_2
cargo_placements:
- box_key: box_1
cargo_key: order_1_cargos
- box_key: box_1
cargo_key: order_2_cargos
attributes: []
- time: '2022-06-08T05:00:00Z'
flags:
- ON_DEMAND
- INSIDE_EVENT_HARD_WINDOW
- INSIDE_LOCATION_WINDOW
- INSIDE_LOCATION
- AROUND_LOCATION
order_key: order_2
demand_key: demand_2_drop
event_key: demand_2_drop_event
location_key: location_client_2
cargo_placements:
- box_key: box_1
cargo_key: order_1_cargos
- box_key: box_1
cargo_key: order_2_cargos
attributes: []
- time: '2022-06-08T05:10:00Z'
flags:
- INSIDE_LOCATION
- AROUND_LOCATION
location_key: location_client_2
cargo_placements:
- box_key: box_1
cargo_key: order_1_cargos
attributes: []
- time: '2022-06-08T05:10:00Z'
flags:
- RELOCATING
cargo_placements:
- box_key: box_1
cargo_key: order_1_cargos
attributes: []
- time: '2022-06-08T05:20:52Z'
flags:
- INSIDE_LOCATION
- AROUND_LOCATION
location_key: location_client_1
cargo_placements:
- box_key: box_1
cargo_key: order_1_cargos
attributes: []
- time: '2022-06-08T05:20:52Z'
flags:
- ON_DEMAND
- INSIDE_EVENT_HARD_WINDOW
- INSIDE_LOCATION_WINDOW
- INSIDE_LOCATION
- AROUND_LOCATION
order_key: order_1
demand_key: demand_1_drop
event_key: demand_1_drop_event
location_key: location_client_1
cargo_placements:
- box_key: box_1
cargo_key: order_1_cargos
attributes: []
- time: '2022-06-08T05:30:52Z'
flags:
- INSIDE_LOCATION
- AROUND_LOCATION
location_key: location_client_1
cargo_placements: []
attributes: []
- time: '2022-06-08T05:30:52Z'
flags:
- RELOCATING
cargo_placements: []
attributes: []
- time: '2022-06-08T05:38:39Z'
flags:
- INSIDE_LOCATION
- AROUND_LOCATION
location_key: location_client_3
cargo_placements: []
attributes: []
- time: '2022-06-08T05:38:39Z'
flags:
- ON_DEMAND
- INSIDE_EVENT_HARD_WINDOW
- INSIDE_LOCATION_WINDOW
- INSIDE_LOCATION
- AROUND_LOCATION
order_key: order_3
demand_key: demand_3_work
event_key: demand_3_work_event
location_key: location_client_3
cargo_placements: []
attributes: []
- time: '2022-06-08T05:53:39Z'
flags:
- INSIDE_LOCATION
- AROUND_LOCATION
location_key: location_client_3
cargo_placements: []
attributes: []
waitlist: []
attributes: []
responses:
'401':
description: 'Unauthorized - token missing or invalid
'
content:
application/json:
schema:
description: Error details.
type: object
additionalProperties: false
properties:
tracedata:
$ref: '#/components/schemas/tracedata'
message:
description: Error message.
type: string
nullable: true
example: Unauthorized
required:
- tracedata
'402':
description: Payment Required
content:
application/json:
schema:
description: Error details.
type: object
additionalProperties: false
properties:
tracedata:
$ref: '#/components/schemas/tracedata'
message:
description: Error message.
type: string
nullable: true
example: Payment Required
required:
- tracedata
'403':
description: 'Forbidden - no permission to execute this operation
'
content:
application/json:
schema:
description: Error details.
type: object
additionalProperties: false
properties:
tracedata:
$ref: '#/components/schemas/tracedata'
message:
description: Error message.
type: string
nullable: true
example: Forbidden
required:
- tracedata
'404':
description: Not found
content:
application/json:
schema:
description: Error details.
type: object
additionalProperties: false
properties:
resource_id:
description: Resource identifier.
type: string
nullable: true
default: null
example: resource_id
detail:
description: Resource details.
type: object
additionalProperties: false
nullable: true
properties:
tracedata:
$ref: '#/components/schemas/tracedata'
required:
- tracedata
'405':
description: 'Method not allowed, check method (POST, GET, ...)
'
'406':
description: 'Client is unable to process a format of response, check headers
'
'415':
description: 'Unsupported media type, check headers
'
'429':
description: Too many requests
content:
application/json:
schema:
description: Error details.
type: object
additionalProperties: false
properties:
tracedata:
$ref: '#/components/schemas/tracedata'
message:
description: Error Message.
type: string
nullable: true
example: Too many requests
required:
- tracedata
'500':
description: Internal server error
content:
application/json:
schema:
description: Error details.
type: object
additionalProperties: false
properties:
tracedata:
$ref: '#/components/schemas/tracedata'
message:
description: Error message.
type: string
nullable: true
example: Internal Server Error
required:
- tracedata
'501':
description: Not implemented
'502':
description: Bad gateway
'503':
description: Service unavailable
'504':
description: Gateway timeout
400_with_errors_and_validations:
description: Bad request - data contain errors
content:
application/json:
schema:
description: Error details.
type: object
additionalProperties: false
properties:
tracedata:
$ref: '#/components/schemas/tracedata'
message:
description: Error message.
type: string
nullable: true
example: bad task data
schema_errors:
$ref: '#/components/schemas/schema_error_list'
logical_errors:
$ref: '#/components/schemas/entity_error_list'
validations:
$ref: '#/components/schemas/entity_validation_list'
required:
- tracedata
parameters:
result_id:
name: id
in: path
description: Calculation identifier.
required: true
schema:
$ref: '#/components/schemas/calculation_id'
filename:
name: filename
description: File name.
in: path
required: true
schema:
description: File name.
type: string
minLength: 6
maxLength: 128
example: file_en.html