openapi: 3.1.1 info: title: VRt.Universal [UV] version: 7.38.3336 license: name: Proprietary url: https://veeroute.com/ termsOfService: https://veeroute.com/resources/terms_of_service contact: name: Veeroute Support Team email: support@veeroute.com x-logo: url: ../images/universal.svg backgroundColor: '#FAFAFA' altText: VRt.Universal description: '# Description Programming interface for universal trip planning. ## Capabilities * Ability to pick up cargo from any location * Ability to drop off cargo at any location * Paired demands of several types: `PICKUP` (loading), `DROP` (unloading) * Single demands of several types: `DROP_FROM_BOX` (unloading of cargo that is already in the box), `PICKUP_TO_BOX` (picking up cargo into the box without subsequent unloading), `WORK` (work at a location without moving cargo) * A complex order may consist of any number of demands of any types * Transport and performers are split into separate entities; during planning, an optimal assignment of a performer to a transport is performed * Transport has multiple boxes — each of which can hold cargo and has its own characteristics * Compatibility check between cargo and transport based on cargo dimensions (length, width, height, additional capacity parameters) * Compatibility check between cargo and transport box (allowing to take into account box features: refrigerator, thermo bag, fasteners, etc.) * Replacement demands — i.e. the ability to perform one of several substitute demands, the choice being made based on the demand''s geographic location and time window ## Supported constraints Constraints on a **performer**: * Start/finish location * Accounting for the performer''s travel to the transport''s start point * Performer availability schedule — a list of time windows during which the performer can travel and perform work at locations * Maximum work duration of the performer within a given time period Constraints on **transport**: * Start/finish location * Transport availability schedule — a list of time windows during which the transport can travel * Maximum route length * Multiple boxes in the transport, each with its own parameters * Upper limit on summed capacities (mass, volume, number of orders, number of demands) Constraints on an **order**: * Hard time windows * Ability to specify different allowed location work windows and desired demand execution windows * Order of demand execution within a route * List of desired execution time windows with different costs for each of them ## Compatibilities used Entities are compatible if the list of features of one entity fully covers the list of restrictions of another entity (the opposite for `performer_blacklist` — the lists must not overlap). Supported compatibilities: | Name | Restrictions | Features | |-------------------------|----------------------------------|------------------------------| | Order – Performer | order.performer_restrictions | performer.performer_features | | Order – Not-Performer | order.performer_blacklist | performer.performer_features | | Cargo – Box | order.cargo.box_restrictions | transport.box.box_features | | Location – Transport | location.transport_restrictions | transport.transport_features | | Transport – Performer | transport.performer_restrictions | performer.performer_features | | Performer – Transport | performer.transport_restrictions | transport.transport_features | | Order – Order | order.order_restrictions | order.order_features | | Cargo – Cargo | cargo.cargo_restrictions | cargo.cargo_features | Examples of business rules: | Name | Example business rule | |-------------------------|--------------------------------------------------------------------------------------------------------| | Order – Performer | To perform the order the driver must have a special permit | | Order – Not-Performer | The driver is on the blacklist | | Cargo – Box | A box with a special temperature mode is required to transport frozen products | | Location – Transport | Restrictions on transport height | | Transport – Performer | For freight transport the driver must hold category `C` | | Performer – Transport | The driver is allowed to work only on a specific transport | | Order – Order | Fish and fruit cannot be transported in the same box | | Cargo – Cargo | Two cargos cannot be placed simultaneously in the same transport box, but can be placed sequentially | ## Hardlinks The hardlinks mechanism (`hardlinks`) is used to specify requirements for orders, a performer and a transport to be in the same trip. A hardlink guarantees that the entities are in the same trip and does not guarantee that the entity is actually planned. For example, if the performer cannot complete the order in time, the order will not be planned, but it will still be assigned to the trip (it will end up in `waitlist`). A hardlink also does not cancel the specified compatibilities (and the penalties for compatibility violations). For example, if an order cannot be performed by the performer, it will not be planned but will be assigned to the trip (it will end up in `waitlist`). ## Cargo placement in the box List of an object''s rotation capabilities (in 90-degree increments): * `ALL` — can be rotated around any axis any number of times * `YAW` — can be rotated once around the vertical axis (around its own axis) * `PITCH` — can be rotated once around the transverse axis (set vertically) * `ROLL` — can be rotated once around the longitudinal axis (laid on its side) ![rotation](../images/universal_cargo_yaw_pitch_roll.svg) ## Trip model A trip is described by a list of performer states; a performer can be in several states at the same time (e.g. be inside a location''s working time window and at the same time perform an order at the same location). Values of the flags responsible for the geographic position (multiple flags may be active at the same time): * `AROUND_LOCATION` — the performer is near the location, in the process of parking or leaving it. * `INSIDE_LOCATION` — the performer is at the location. Values of the flags responsible for being inside time windows (multiple flags may be active at the same time): * `INSIDE_WORKING_WINDOW` — the performer is inside the working time window. * `INSIDE_LOCATION_WINDOW` — the performer is inside the location''s operating time. * `INSIDE_EVENT_HARD_WINDOW` — the performer is inside the hard time window. * `INSIDE_EVENT_SOFT_WINDOW` — the performer is inside the soft time window. Values of the flags responsible for actions (only one flag can be active at a time): * `ON_DEMAND` — the performer started working on a demand. * `WAITING` — the performer started waiting. * `RELOCATING` — the performer started moving to the next stop. * `BREAK` — the performer started a break. * `REST` — the performer started a long rest. * `ARRIVAL` — the performer started parking. * `DEPARTURE` — the performer finished leaving the parking. Values of the flags responsible for the logical state: * `DURING_ROUNDTRIP` — the performer is performing a round trip. ### Example route with multiple states at every moment in time | Time | Set of active flags | Location / Order / Demand / Event | Comment | |:------|:-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------|:----------------------------------|:-----------------------------------------------------------------| | 10:00 | INSIDE_LOCATION
AROUND_LOCATION | 2 / - / - / - | Start location | | 10:05 | AROUND_LOCATION
DEPARTURE | 2 / - / - / - | Left the parking | | 10:10 | RELOCATING
DEPARTURE | 2 / - / - / - | Driving to the first order | | 10:20 | AROUND_LOCATION
ARRIVAL | 2 / - / - / - | Arrived at the first order | | 10:40 | AROUND_LOCATION
INSIDE_LOCATION
WAITING | 2 / - / - / - | Parked | | 11:00 | AROUND_LOCATION
INSIDE_LOCATION
INSIDE_LOCATION_WINDOW
WAITING
INSIDE_EVENT_HARD_WINDOW | 2 / - / - / - | The location''s window opened and the order became available | | 11:25 | AROUND_LOCATION
INSIDE_LOCATION
INSIDE_LOCATION_WINDOW
ON_DEMAND
INSIDE_WORKING_WINDOW
INSIDE_EVENT_HARD_WINDOW | 2 / 1 / 2 / 3 | Waited for a performer change | | 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 opened | | 11:40 | AROUND_LOCATION
INSIDE_LOCATION
INSIDE_LOCATION_WINDOW
INSIDE_WORKING_WINDOW | 2 / - / - / - | Finished working | | 11:45 | AROUND_LOCATION
DEPARTURE
INSIDE_WORKING_WINDOW | 2 / - / - / - | Left the parking | | 11:45 | RELOCATING
INSIDE_WORKING_WINDOW | - / - / - / - | Driving to the next order | ## Round trips A trip consists of one or more round trips. The round-trip flag `DURING_ROUNDTRIP` is set when work on a demand starts and is removed in one of three cases: * the performer arrived at the next location to stop using the transport * the performer arrived at a location that separates round trips * the performer stopped using the transport (in a location that does not separate round trips, after performing some other action) Between the end of one round trip and the beginning of another there can be no `RELOCATING` change of location, but the following can occur: `WAITING`, performer''s `BREAK`, performer''s `REST`. A location separates a trip into round trips in one of two cases: * if the location has a throughput limit `timetable.limits` (in this case there can be more than one location separating the trip) * if the location is simultaneously the start and finish location of all performers and transports, as well as of all `PICKUP`-type demands (in this case there will be only one location separating the trip) Examples of such locations (depending on the problem statement) include: * distribution centers when delivering goods to stores or warehouses for long-haul transportation tasks * stores or warehouses when delivering goods to customers in last-mile tasks * dumps in waste collection tasks ## Planning configuration For each planning run it is possible to specify a planning configuration that defines the objective function, the desired route quality, and the calculation speed. The configuration name is passed in the `trips_settings.configuration` field. Main configurations: | Name | Goal | |---------------------------------|---------------------------------------------------------------------------------------------------------------------------------------------------------------------| | **optimize_distance** | Place as many orders as possible, then optimize the total mileage (the number of transports is chosen based on the mileage); used by default | | **optimize_transports** | Place as many orders as possible, while using as little transport as possible; all else being equal, optimize the working time of performers | | **optimize_locality_grouping** | Place as many orders as possible, while striving to optimize visual route grouping but not the number of routes | | **optimize_cars_then_distance** | Place as many orders as possible, then optimize the number of transports, then the mileage | | **optimize_time** | Place as many orders as possible, then optimize the total working time of performers | | **optimize_cars_then_time** | Place as many orders as possible, then optimize the number of transports, then the total working time of performers | | **optimize_money** | Optimize "reward for completing orders − costs"; consists of rewards for demands and the costs of performers and transports (the optimized value is non-negative) | Additional configurations: | Name | Goal | |-----------------------------------------------------------|-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------| | **visual_grouping** | Place as many orders as possible, while using as little transport as possible, with visually grouped routes | | **optimize_visual_grouping** | Place as many orders as possible, then evenly distribute orders taking transport accessibility zones into account (similar to visual_grouping but visual grouping is computed differently) | | **optimize_cars_then_locality_grouping** | Place as many orders as possible, then optimize the number of transports, then the visual route grouping | | **optimize_cars_then_single_location_grouping_sequenced** | Place as many orders as possible, then optimize the number of cars, then reliability | In addition to the existing planning options, an objective function can be created specifically for a client''s business processes ([request a configuration](mailto:support@veeroute.com)). For development we recommend using **optimize_cars_then_distance**, as this configuration does not require fine-tuning of tariffs and order costs. ## Data validation Validation of input data consists of several stages described below. ### 1. Schema check If a request does not pass schema validation, planning is not started at all and such an error is returned together with code 400 in `schema_errors`. We recommend validating the request against the schema (or the yaml file) before sending it to the server. ### 2. Check for logical errors that prevent planning from continuing Data that is correct against the schema goes through the second validation stage to determine whether planning can be started. Examples of errors at this stage are keys pointing to empty entities, or all orders being incompatible with all performers — i.e. anything that makes the planning task meaningless. These errors are returned together with code 400 in `logical_errors`. ### 3. Check for logical errors that prevent planning from continuing At the third stage each entity is checked individually. All entities that fail the check are removed from the original task and are not sent to planning. Depending on the `treat_warnings_as_errors` setting, the results of this type of check are returned in `warnings` together with code 400, or together with the planning result. ### 4. Checks during planning Some checks can only be performed during planning. For example — that according to the specified tariffs and the current traffic forecast it is physically impossible to drive to a particular point. The results of these checks are returned in `warnings` together with the planning result. ## Entity diagram ![erd](../uml/universal.svg) ' servers: - url: https://api.edge7.veeroute.cloud description: Environment for integration and early access to the new features - url: https://api.prod7.veeroute.cloud description: Production environment security: - ApiKeyAuth: [] tags: - name: Plan description: 'Planning — creating trips that take into account all the specified constraints, based on the data about orders, performers and transport. Planning requests can be executed in synchronous (for testing) and asynchronous (for production use) modes. To get the result of cleansing the original task, use [data cleansing for planning](#operation/run_plan_refine). ' - name: Actualize description: 'Trip actualization — updating the planned execution time of orders, taking facts into account and without changing the visiting order. Actualization runs in three stages — validation, applying facts, and planning the times of the unfinished trip states. To get the result of cleansing and applying facts to the original task, use the [data cleansing function](#operation/run_actualize_refine). The trips obtained as a result of actualization do not change performers, transport, or the order of order execution; they contain only the work that is left to be done. Orders that cannot be performed remain assigned to the performer and end up in the `waitlist`. Accounting for existing trips: * Trips are transformed into `hardlink` assignments — i.e. the performer''s and transport''s shifts assigned to a trip cannot be used in other trips. * For demands that were planned in the original trips, replacement events are removed and the order of execution is fixed via `precedence_in_trip`; if these demands already had an execution order specified — it will be overwritten. Accounting for the current time: * If the current time `actualize_settings.current_time` is not specified in the data — the time the request is received by the server is used. * If the current time is greater than the left boundary of all events'' and shifts'' time windows — the left boundary is shifted up to the current time. * The allowed delay duration `actualize_settings.max_delay_duration` is added to the right boundary of all events'' and shifts'' time windows. * Soft time windows are corrected only if the demand duration does not allow the order to be completed within the soft window. Accounting for facts: * Only those facts that occurred before `actualize_settings.current_time` (by the `time` field) are taken into account; how much earlier than the current time the fact occurred is not relevant. * If there are several facts (of the same type and referring to the same entities), only the most recent one by the `time` field is taken into account. * If the list of facts is empty — only the existing trips and the current time are taken into account. Accounting for the location-change fact `NEW_LOCATION`: * For the fact to be taken into account, the list of locations `locations` must contain a location (existing or new) that describes the performer''s new location. * If the trip has started (the fact''s time is later than the trip''s planned start time) — the transport is considered to be at the same location as the performer — i.e. `start_location_key` is changed for both the performer and the transport. * If the trip has not started (the fact''s time is before the trip''s planned start time) — only the performer''s start location is changed; the transport''s location stays as in the original data. Accounting for the order-completion fact `ORDER_DONE`: * The order, its demands and the locations associated with them (if no other entities reference them) are removed from the data for actualization. * The cargo is considered unloaded from the transport. Accounting for facts about the start of work on a demand `DEMAND_START`: * For each trip only one unclosed `DEMAND_START` fact is allowed (it is closed by a `DEMAND_DONE` fact) — since a performer can only perform one demand at a moment in time. * The work duration on the demand is reduced by the time already spent on it (computed as the length between the `DEMAND_START` fact and `actualize_settings.current_time`). * If there is a fact about work on a demand that contradicts the planned order in the specified trip — this demand will be completed first, then the trip will continue according to the planned order. * An order-related fact has higher priority than facts about demands of that order (if facts about demands contradict the order''s fact — they will not be taken into account). Accounting for facts of partial order completion `DEMAND_DONE`: * If all demands of an order have been completed — the order is considered finished (the actions are similar to processing the `ORDER_DONE` fact). * If a `WORK`-type demand has been completed — the demand is removed from the order. * If a `DROP`-type demand has been completed — the demand and its cargos, as well as the matching `PICKUP`-type demand, are removed from the order. * If a `DROP_FROM_BOX`-type demand has been completed — the demand and its cargo are removed from the order. * If a `PICKUP`-type demand of the order has been completed — the matching `DROP`-type demands will be transformed into `DROP_FROM_BOX`-type demands. * If a `PICKUP_TO_BOX`-type demand has been completed — the demand and the cargo are removed and the corresponding box''s capacity of the transport is decreased (no compatibility changes are made). ' - name: Replan description: 'Replanning — creating new trips on the basis of already existing trips, taking facts into account. Replanning runs in several stages — validation, applying facts and creating planning constraints based on the existing trips, planning. Depending on the replanning settings, the task can be reduced to planning (when everything is allowed: `reorder: true, plan_new_orders: true, create_new_trips: true`) or to actualization (when everything is forbidden: `reorder: false, plan_new_orders: false, create_new_trips: false`). Orders that cannot be performed remain assigned to the performer and end up in the `waitlist`. Accounting for existing trips, the current time and the order of applying facts — uses the logic from [actualization](#tag/Actualize), taking the chosen strategy into account: ' - name: XLSX-format description: 'Description of the VRt.Universal XLSX format for data import/export. This format is a complete representation of the JSON data model and is used for: * input data * process settings * calculation results * statistics on the calculation result Below is a description of each sheet separately; **bold** highlights the keys. ## Data settings Sheet name `info`. | Name | Description | |-----------------|----------------------------------------------------------| | **api_version** | Universal API version at the time of XLSX generation | | **timezone** | Time zone in which all times in the data are specified | | docs_ru | Link to the documentation (RU) | | docs_en | Link to the documentation (EN) | ## Locations Sheet name `locations`. List of locations used in orders and shifts. | Name | Description | Note | |---------------------------------------------|------------------------------------------------------------------------|-----------------------------------------------------------------------------------------------------------------------| | **key** | Location key, unique identifier | Unique key within the calculation | | departure_duration | Time to depart from the location, time interval | | | geopoint.latitude | Geographic latitude in degrees | | | geopoint.longitude | Geographic longitude in degrees | | | timetable.work_windows.from | Start of the location''s work time window | Required if `to` is specified. If the list is empty or not specified, the location operates without time restrictions. | | timetable.work_windows.to | End of the location''s work time window | Required if `from` is specified. If the list is empty or not specified, the location operates without time restrictions. | | compatibilities
.transport_restrictions | List of required restrictions on the transport | Used to check transport compatibility with the location. | | attributes | Attributes used to specify auxiliary information | This data is not taken into account in planning. | Object described: ## Performers Sheet name `performers`. List of available performers. | Name | Description | Note | |------------------------------------------------------------------------|--------------------------------------------------------------------------------------------------------|---------------------------------------------------------------------------------------------------| | **key** | Performer key, unique identifier | | | own_transport_type | Transport type | If not specified, defaults to `CAR`. | | **shifts.key** | Shift key, unique identifier | | | shifts.start_location_key | Start location key | If the key is not specified — the performer''s path starts at the first order. | | shifts.finish_location_key | Finish location key | If the key is not specified — the performer''s path finishes at the last order. | | shifts.max_locations | Limit on the number of unique locations in a single trip, including the start and finish locations | If the parameter is not specified or is `null` — the number of locations is not limited. | | shifts.max_stops | Limit on the number of stops in a single trip, including the start and finish locations | If the parameter is not specified or is `null` — the number of stops is not limited. | | shifts.attributes | Attributes. Used to specify auxiliary information | This data is not taken into account in planning. | | shifts.availability_time.from | Start of the shift''s time window | During which the performer can perform work at locations and travel between locations. | | shifts.availability_time.to | End of the shift''s time window | During which the performer can perform work at locations and travel between locations. | | shifts.working_time.from | Start of the working time window | During which the performer can perform work at locations; must be inside the shift''s time window. | | shifts.working_time.to | End of the working time window | During which the performer can perform work at locations; must be inside the shift''s time window. | | shifts.tariff
.cost_per_shift | Price for using the shift, monetary unit | Default: `0.001` | | shifts.tariff
.max_penalty_cost | Maximum sum of penalties the performer can incur within this shift, monetary unit. | If the sum is not specified or is `null` — the performer cannot violate constraints. | | shifts.tariff
.constraints.stage_length | Length of the paid period, time interval | Default: `525960` | | shifts.tariff
.constraints.cost_per_unit | Cost within the paid period, monetary unit per second of work | Default: `0.001` | | shifts.work_and_rest_rules
.first_break
.max_work_duration_sum | Total work time after which a break must be taken | | | shifts.work_and_rest_rules
.first_break
.duration | Break duration | | | compatibilities
.performer_features | List of the performer''s features | Used to check the performer''s compatibility with orders and transport. | | compatibilities
.transport_restrictions | List of required restrictions on the transport | Used to check the performer''s compatibility with the transport. | | limits.max_work_shifts | Limit on the performer''s workload | Limit on the number of the performer''s shifts in a single planning run. | | attributes | Attributes used to specify auxiliary information | This data is not taken into account in planning. | Object described: ## Transports Sheet name `transports`. List of available transport. | Name | Description | Note | |---------------------------------------------------|----------------------------------------------------------------------------------------------------------------------------|---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------| | **key** | Transport key, unique identifier | | | transport_type | Transport type | If not specified, defaults to `CAR` | | **boxes.key** | List of transport boxes that can hold cargo | Required if the task contains orders with `PICKUP` and `DROP` demands | | **shifts.key** | Shift key, unique identifier | | | shifts.start_location_key | Start location key | If the key is not specified — the transport''s path starts at the first order | | shifts.finish_location_key | Finish location key | If the key is not specified — the transport''s path finishes at the last order | | shifts.attributes | Attributes. Used to specify auxiliary information | This data is not taken into account in planning | | shifts.availability_time.from | Start of the shift''s time window | During which the transport can travel between locations and be used by the performer for work at locations | | shifts.availability_time.to | End of the shift''s time window | During which the transport can travel between locations and be used by the performer for work at locations | | shifts.tariff
.cost_per_shift | Price for using the shift, monetary unit | Default: `0.001` | | shifts.tariff
.max_penalty_cost | Maximum sum of penalties | Default: `0`. The transport can incur this within the shift, monetary unit. If the sum is not specified or is `null` — the transport cannot violate constraints. | | shifts.tariff
.constraints.stage_length | Length of the paid part of the path, in meters | Default: `100000000` | | shifts.tariff
.constraints.cost_per_unit | Cost within the paid part of the path | Monetary unit per meter. Default: `0.001` | | shifts.tariff
.transportation_cost.mass | Cost of moving 1 unit of cargo mass per 1 meter | In conventional monetary units | | shifts.tariff
.transportation_cost.volume | Cost of moving 1 unit of cargo volume per 1 meter | In conventional monetary units | | shifts.tariff
.transportation_cost.capacity_a | Cost of moving 1 unit of additional cargo parameter A per 1 meter | In conventional monetary units | | shifts.tariff
.transportation_cost.capacity_b | Cost of moving 1 unit of additional cargo parameter B per 1 meter | In conventional monetary units | | shifts.tariff
.transportation_cost.capacity_c | Cost of moving 1 unit of additional cargo parameter C per 1 meter | In conventional monetary units | | compatibilities
.transport_features | List of the transport''s features | Used to check transport compatibility with locations and performers | | compatibilities
.performer_restrictions | List of the transport''s restrictions on the performer | Used to check compatibility with the performer | | limits.max_boxes | Limit on the maximum number of transport boxes used in a single trip | If the parameter is not specified or is `null` — the number of boxes is not limited. The limit must not exceed the number of boxes | | limits.max_capacity.mass | Parameter additionally limits the maximum possible transport load by mass summed across all boxes | Mass in kilograms; applicable only if the transport has more than one box; the parameter must not be less than the capacity of any box. | | limits.max_capacity.volume | Parameter additionally limits the maximum possible transport load by volume summed across all boxes | Volume in cubic meters; applicable only if the transport has more than one box; the parameter must not be less than the capacity of any box. | | limits.max_capacity.capacity_a | Parameter additionally limits the maximum possible transport load by additional parameter A summed across all boxes | Additional capacity parameter (A) for measuring cargo and boxes in alternative units. For example, to count cargo in pieces (this parameter equals one for cargo, and equals the maximum number of cargos that fit for a box). | | limits.max_capacity.capacity_b | Parameter additionally limits the maximum possible transport load by additional parameter B summed across all boxes | Additional capacity parameter (B) for measuring cargo and boxes in alternative units. | | limits.max_capacity.capacity_c | Parameter additionally limits the maximum possible transport load by additional parameter C summed across all boxes | Additional capacity parameter (C) for measuring cargo and boxes in alternative units. | | attributes | Attributes used to specify auxiliary information | This data is not taken into account in planning. | Object described: ## Boxes Sheet name `transports.boxes`. List of transport boxes that can hold cargo. The table is required if the calculation contains orders with `PICKUP` and `DROP` demands. In the description of the boxes, the fields that describe cargo are required. | Name | Description | Note | |-----------------------------------------------|------------------------------------------|---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------| | **key** | Box key | Unique identifier; used to identify the placement of cargo across boxes. | | capacity.mass | Mass, kg | Mass limit that the box can hold at any single moment | | capacity.volume | Volume, m³ | Volume limit that the box can hold at any single moment | | capacity.capacity_a | Additional capacity parameter (A) | For measuring cargo and boxes in alternative units. For example, to count cargo in pieces (this parameter equals one for cargo, and equals the maximum number of cargos that fit for a box). | | capacity.capacity_b | Additional capacity parameter (B) | For measuring cargo and boxes in alternative units. | | capacity.capacity_c | Additional capacity parameter (C) | For measuring cargo and boxes in alternative units. | | compatibilities
.width | Width in meters | | | compatibilities
.height | Height in meters | | | compatibilities
.length | Length in meters | | | compatibilities
.box_features | List of the box''s features | Used to evaluate whether cargo can be transported in this box | | limits
.max_one_cargo_capacity.mass | Mass in kilograms | Limit on `capacity` fields for a single cargo | | limits
.max_one_cargo_capacity.volume | Volume in cubic meters | Limit on `capacity` fields for a single cargo | | limits
.max_one_cargo_capacity.capacity_a | Additional capacity parameter (A) | Limit on `capacity` fields for a single cargo | | limits
.max_one_cargo_capacity.capacity_b | Additional capacity parameter (B) | Limit on `capacity` fields for a single cargo | | limits
.max_one_cargo_capacity.capacity_c | Additional capacity parameter (C) | Limit on `capacity` fields for a single cargo | Object described: ## Orders Sheet name `orders`. List of orders. | Name | Description | Note | |----------------------------------------------------|-------------------------------------------------------------------|---------------------------------------------------------------------------------------------------------------------------------------| | **key** | Order key | A repeated order key means demands belonging to the same order | | **cargos.key** | List of cargos | Can contain a single cargo for `DROP`, a list for `PICKUP`, or be empty for `WORK`. | | **demands.key** | Demand key, unique identifier | | | demands.demand_type | Demand type | Loading — `PICKUP`, unloading — `DROP`, work at a location — `WORK`. | | demands.target_cargos | List of cargo keys | For `PICKUP`, a single cargo key for `DROP`, an empty key for `WORK` | | demands.precedence_in_trip | Priority within the trip | 0 — priority is not taken into account. Default: `0`. | | demands.precedence_in_order | Priority within the order | 0 — priority is not taken into account. Default: `0`. | | demands
.possible_events.key | Event key, unique identifier | Description of the time-window and locations object in which the demand can be performed | | demands
.possible_events.location_key | Key of the location where this event is possible | | | demands
.possible_events.duration | Event execution time | | | demands
.possible_events.reward | Reward for performing this event | | | demands
.possible_events.hard_time_window.from | Start of the hard time window | | | demands
.possible_events.hard_time_window.to | End of the hard time window | | | demands
.possible_events.soft_time_window.from | Start of the soft time window | | | demands
.possible_events.soft_time_window.to | End of the soft time window | | | demands
.attributes | Attributes. Used to specify auxiliary information | This data is not taken into account in planning. | | compatibilities
.order_features | List of the order''s features | | | compatibilities
.order_restrictions | List of restrictions for an order performed in the same trip | | | compatibilities
.performer_restrictions | List of required restrictions on the performer | Used to check the performer''s compatibility with the order (work). | | compatibilities
.performer_blacklist | List of features the performer must not have | Used to check the performer''s compatibility with the order (work). This list must not overlap with `performer_restrictions` | | attributes | Attributes used to specify auxiliary information | This data is not taken into account in planning. | Object described: ## Cargos Sheet name `orders.cargos`. List of cargos. May contain a single cargo for `DROP`, a list for `PICKUP`, or be empty for `WORK`. The table is not required if all demands have type `WORK`. | Name | Description | Note | |-----------------------------------------|------------------------------------------|---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------| | **key** | Cargo key, unique identifier | | | capacity.mass | Mass in kilograms | | | capacity.volume | Volume in cubic meters | | | capacity.capacity_a | Additional capacity parameter (A) | For measuring cargo and boxes in alternative units. For example, to count cargo in pieces (this parameter equals one for cargo, and equals the maximum number of cargos that fit for a box). | | capacity.capacity_b | Additional capacity parameter (B) | | | capacity.capacity_c | Additional capacity parameter (C) | | | compatibilities
.width | Width in meters | Used to check the cargo''s fit into the transport''s box by width. | | compatibilities
.height | Height in meters | Used to check the cargo''s fit into the transport''s box by height. | | compatibilities
.length | Length in meters | Used to check the cargo''s fit into the transport''s box by length. | | compatibilities
.rotation | List of the object''s rotation abilities | Rotation step is 90 degrees. If the list is empty — the object cannot be rotated. Allowed values: `ALL`, `YAW`, `PITCH`, `ROLL` | | compatibilities
.box_restrictions | List of restrictions on the transport''s box | | | compatibilities
.cargo_features | List of the cargo''s features | Used to check cargo compatibility with other cargos. Incompatible cargos cannot be in the same transport box at the same time | | compatibilities
.cargo_restrictions | List of required restrictions on cargo | Used to check cargo compatibility with other cargos. Incompatible cargos cannot be in the same transport box at the same time | Object described: ## Hardlinks Sheet name `hardlinks`. List of hardlinks. Object described: ## Trips Sheet name `trips`. List of trips. Object described: ## Facts Sheet name `facts`. List of facts. Object described: ## Plan settings Sheet name `plan_settings`. Plan settings. Object described: ## Actualize settings Sheet name `actualize_settings`. Actualize settings. Object described: ## Replan settings Sheet name `replan_settings`. Replan settings. Object described: ## Total statistics Sheet name `total_statistics`. Total statistics. Object described: ' - name: Convert description: 'Data conversion. ' - name: System description: 'System functions. Auxiliary functionality common to all services. ' externalDocs: description: Veeroute company website url: https://veeroute.com/ paths: /universal/plan/calculation-async: post: tags: - Plan summary: Planning (ASYNC) description: 'Starting trip planning - after loading and checking the data, the `process_code` is returned. Using the `process_code`, you can find out [calculation state](#operation/read_plan_state) and [get result](#operation/read_plan_result), and also [cancel calculation](#operation/cancel_plan_calculation) and [delete temporary data](#operation/delete_plan_result) (otherwise they will be automatically deleted according to the ttl specified in the calculation settings). ' operationId: run_plan_calculation_async x-process-type: PLAN 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: The calculation was successfully added to the queue content: application/json: schema: $ref: '#/components/schemas/calculation_async_result' '400': $ref: '#/components/responses/400_with_errors_and_warnings' '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: 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/run_plan_calculation_async). ' operationId: run_plan_calculation x-process-type: PLAN 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: Calculation completed successfully 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_warnings' '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.models import * # settings HOST = ''https://api.edge7.veeroute.cloud'' # production env https://api.prod7.veeroute.cloud'' 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/{process_code}: delete: tags: - Plan summary: Cancel calculation description: Cancel calculation by the calculation identifier. operationId: cancel_plan_calculation x-process-type: TRACE parameters: - $ref: '#/components/parameters/process_code' responses: '204': description: Calculation successfully canceled '400': $ref: '#/components/responses/400_with_errors_and_warnings' '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/state/{process_code}: get: tags: - Plan summary: Calculation state description: Read calculation state by the calculation identifier. operationId: read_plan_state x-process-type: NOTRACE parameters: - $ref: '#/components/parameters/process_code' responses: '200': $ref: '#/components/responses/200' '202': $ref: '#/components/responses/202' '299': $ref: '#/components/responses/299' '400': $ref: '#/components/responses/400_with_errors_and_warnings' '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/{process_code}: get: tags: - Plan summary: Getting the result description: Getting the planning result based on the calculation identifier. operationId: read_plan_result x-process-type: TRACE parameters: - $ref: '#/components/parameters/process_code' responses: '200': description: Calculation completed successfully 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: Calculation in progress, intermediate results returned content: application/json: schema: $ref: '#/components/schemas/plan_result' examples: PlanResultMoscow: $ref: '#/components/examples/PlanResultMoscow' '299': description: Calculation completed, problems encountered during the calculation process content: application/json: schema: $ref: '#/components/schemas/plan_result' examples: PlanResultMoscow: $ref: '#/components/examples/PlanResultMoscow' '400': $ref: '#/components/responses/400_with_errors_and_warnings' '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 x-process-type: TRACE parameters: - $ref: '#/components/parameters/process_code' responses: '204': description: Successful execution - calculation result deleted '400': $ref: '#/components/responses/400_with_errors_and_warnings' '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 x-process-type: VALIDATE 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: Data validation completed successfully content: application/json: schema: $ref: '#/components/schemas/validate_result' examples: ValidateResultExample: $ref: '#/components/examples/ValidateResultExample' '400': $ref: '#/components/responses/400_with_errors_and_warnings' '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/refine: post: tags: - Plan summary: Data refine description: "Cleaning up data for planning before calculation - entities that\ \ cannot participate in planning are removed from the original dataset:\n\ \ * Locations that no one references (depending on the `remove_locations`\ \ flag)\n * Orders that no performer can fulfill\n * Performers and transport\ \ that cannot fulfill any order\n" operationId: run_plan_refine x-process-type: VALIDATE parameters: - $ref: '#/components/parameters/remove_locations' requestBody: description: Data for refine. required: true content: application/json: schema: $ref: '#/components/schemas/plan_task' examples: PlanTaskMoscow: $ref: '#/components/examples/PlanTaskMoscow' responses: '200': description: Refine completed successfully content: application/json: schema: $ref: '#/components/schemas/refine_result' examples: RefineResultMoscow: $ref: '#/components/examples/RefineResultMoscow' '400': $ref: '#/components/responses/400_with_errors_and_warnings' '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/statistics: post: tags: - Plan summary: Calculation of statistics on trips description: 'Calculation of statistics for existing trips ' operationId: generate_plan_statistics x-process-type: VALIDATE requestBody: description: New request. required: true content: application/json: schema: $ref: '#/components/schemas/statistics_task' examples: GeneratePlanStatisticsMoscow: $ref: '#/components/examples/GeneratePlanStatisticsMoscow' responses: '200': description: Calculation completed successfully 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_warnings' '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-async: post: tags: - Actualize summary: Actualization (ASYNC) description: 'Start updating existing trips - after loading and checking the data, the calculation identifier `process_code` is returned. Using `process_code` you can find out [calculation state](#operation/read_actualize_state) and [get result](#operation/read_actualize_result), and also [cancel calculation](#operation/cancel_actualize_calculation) and [delete temporary data](#operation/delete_actualize_result) (otherwise they will be automatically deleted according to the ttl specified in the calculation settings). An actualize task can be transformed into a planning task using [data processing](#operation/run_actualize_refine). ' operationId: run_actualize_calculation_async x-process-type: PLAN requestBody: description: Starting the asynchronous actualize process. required: true content: application/json: schema: $ref: '#/components/schemas/actualize_task' examples: ActualizeTaskMoscow: $ref: '#/components/examples/ActualizeTaskMoscow' responses: '200': description: The calculation was successfully added to the queue content: application/json: schema: $ref: '#/components/schemas/calculation_async_result' '400': $ref: '#/components/responses/400_with_errors_and_warnings' '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: Actualization (SYNC) description: 'Sync method for trips actualization. Use only for testing and manual plannings. For production use [async method](#operation/run_actualize_calculation_async). ' operationId: run_actualize_calculation x-process-type: PLAN 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: Calculation completed successfully content: application/json: schema: $ref: '#/components/schemas/plan_result' examples: ActualizeResultMoscow: $ref: '#/components/examples/ActualizeResultMoscow' '400': $ref: '#/components/responses/400_with_errors_and_warnings' '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-async/{process_code}: delete: tags: - Actualize summary: Cancel calculation description: Cancel calculation by the calculation identifier. operationId: cancel_actualize_calculation x-process-type: TRACE parameters: - $ref: '#/components/parameters/process_code' responses: '204': description: Calculation successfully canceled '400': $ref: '#/components/responses/400_with_errors_and_warnings' '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/state/{process_code}: get: tags: - Actualize summary: Calculation state description: Read calculation state by the calculation identifier. operationId: read_actualize_state x-process-type: NOTRACE parameters: - $ref: '#/components/parameters/process_code' responses: '200': $ref: '#/components/responses/200' '202': $ref: '#/components/responses/202' '299': $ref: '#/components/responses/299' '400': $ref: '#/components/responses/400_with_errors_and_warnings' '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/result/{process_code}: get: tags: - Actualize summary: Getting the result description: Getting the planning result based on the calculation identifier. operationId: read_actualize_result x-process-type: TRACE parameters: - $ref: '#/components/parameters/process_code' responses: '200': description: Calculation completed successfully content: application/json: schema: $ref: '#/components/schemas/plan_result' examples: ActualizeResultMoscow: $ref: '#/components/examples/ActualizeResultMoscow' '202': description: Calculation in progress, intermediate results returned content: application/json: schema: $ref: '#/components/schemas/plan_result' examples: ActualizeResultMoscow: $ref: '#/components/examples/ActualizeResultMoscow' '299': description: Calculation completed, problems encountered during the calculation process content: application/json: schema: $ref: '#/components/schemas/plan_result' examples: ActualizeResultMoscow: $ref: '#/components/examples/ActualizeResultMoscow' '400': $ref: '#/components/responses/400_with_errors_and_warnings' '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: - Actualize summary: Result removal description: Removal of the planning result by the calculation identifier. operationId: delete_actualize_result x-process-type: TRACE parameters: - $ref: '#/components/parameters/process_code' responses: '204': description: Successful execution - calculation result deleted '400': $ref: '#/components/responses/400_with_errors_and_warnings' '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 x-process-type: VALIDATE requestBody: description: Data for validation. required: true content: application/json: schema: $ref: '#/components/schemas/actualize_task' examples: ActualizeTaskMoscow: $ref: '#/components/examples/ActualizeTaskMoscow' responses: '200': description: Data validation completed successfully content: application/json: schema: $ref: '#/components/schemas/validate_result' examples: ValidateResultExample: $ref: '#/components/examples/ValidateResultExample' '400': $ref: '#/components/responses/400_with_errors_and_warnings' '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/refine: post: tags: - Actualize summary: Data refine description: "Cleaning data for actualization before calculation:\n * Entities\ \ that are not referenced by input trips are removed from the dataset - performers,\ \ transport, hardlinks, orders, facts.\n * If one entity is referenced by\ \ several facts, only the latest one by the time field is taken into account;\ \ if the time is the same, a random one is taken into account.\n * All facts\ \ that occurred later than `actualize_settings.current_time` are removed.\n\ \nAs a result, a task for planning is returned.\n" operationId: run_actualize_refine x-process-type: VALIDATE parameters: - $ref: '#/components/parameters/remove_locations' 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: Refine completed successfully content: application/json: schema: $ref: '#/components/schemas/refine_result' examples: RefineResultMoscow: $ref: '#/components/examples/RefineResultMoscow' '400': $ref: '#/components/responses/400_with_errors_and_warnings' '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: post: tags: - Replan summary: Replanning (ASYNC) description: "Starting trip replanning - changing existing and creating new\ \ trips based on the facts and data about orders, performers and transport.\n\ \ \nAfter loading and checking the data, the `process_code` is returned.\n\ \nUsing the `process_code`, you can find out [calculation state](#operation/read_replan_state)\ \ and [get result](#operation/read_replan_result),\nand also [cancel calculation](#operation/cancel_replan_calculation)\ \ and [delete temporary data](#operation/delete_replan_result) (otherwise\ \ they will be automatically deleted according to the ttl specified in the\ \ calculation settings).\n\nAn replan task can be transformed into a plan\ \ task using [data processing](#operation/run_replan_refine).\n" operationId: run_replan_calculation_async x-process-type: PLAN 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: The calculation was successfully added to the queue content: application/json: schema: $ref: '#/components/schemas/calculation_async_result' '400': $ref: '#/components/responses/400_with_errors_and_warnings' '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: 'Sync method for trips replanning. Use only for testing and manual plannings. For production use [async method](#operation/run_replan_calculation_async). ' operationId: run_replan_calculation x-process-type: PLAN 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: Calculation completed successfully content: application/json: schema: $ref: '#/components/schemas/plan_result' examples: ReplanResultMoscow: $ref: '#/components/examples/ReplanResultMoscow' '400': $ref: '#/components/responses/400_with_errors_and_warnings' '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.models import * # settings HOST = ''https://api.edge7.veeroute.cloud'' # production env https://api.prod7.veeroute.cloud'' 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/{process_code}: delete: tags: - Replan summary: Cancel calculation description: Cancel calculation by the calculation identifier. operationId: cancel_replan_calculation x-process-type: TRACE parameters: - $ref: '#/components/parameters/process_code' responses: '204': description: Calculation successfully canceled '400': $ref: '#/components/responses/400_with_errors_and_warnings' '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/state/{process_code}: get: tags: - Replan summary: Calculation state description: Read calculation state by the calculation identifier. operationId: read_replan_state x-process-type: NOTRACE parameters: - $ref: '#/components/parameters/process_code' responses: '200': $ref: '#/components/responses/200' '202': $ref: '#/components/responses/202' '299': $ref: '#/components/responses/299' '400': $ref: '#/components/responses/400_with_errors_and_warnings' '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/{process_code}: get: tags: - Replan summary: Getting the result description: Getting the replanning result based on the calculation identifier. operationId: read_replan_result x-process-type: TRACE parameters: - $ref: '#/components/parameters/process_code' responses: '200': description: Calculation completed successfully content: application/json: schema: $ref: '#/components/schemas/plan_result' examples: ReplanResultMoscow: $ref: '#/components/examples/ReplanResultMoscow' '202': description: Calculation in progress, intermediate results returned content: application/json: schema: $ref: '#/components/schemas/plan_result' examples: ReplanResultMoscow: $ref: '#/components/examples/ReplanResultMoscow' '299': description: Calculation completed, problems encountered during the calculation process content: application/json: schema: $ref: '#/components/schemas/plan_result' examples: ReplanResultMoscow: $ref: '#/components/examples/ReplanResultMoscow' '400': $ref: '#/components/responses/400_with_errors_and_warnings' '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 x-process-type: TRACE parameters: - $ref: '#/components/parameters/process_code' responses: '204': description: Successful execution - calculation result deleted '400': $ref: '#/components/responses/400_with_errors_and_warnings' '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 x-process-type: VALIDATE 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: Data validation completed successfully content: application/json: schema: $ref: '#/components/schemas/validate_result' examples: ValidateResultExample: $ref: '#/components/examples/ValidateResultExample' '400': $ref: '#/components/responses/400_with_errors_and_warnings' '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/refine: post: tags: - Replan summary: Data refine description: "Cleaning up data for re-planning before calculation:\n * If one\ \ entity is referenced by several facts, only the latest one by the time field\ \ is taken into account; if the time is the same, a random one is taken into\ \ account.\n * All facts that occurred later than `actualize_settings.current_time`\ \ are deleted.\n * If `plan_new_orders: false` is specified - all orders\ \ that are not in the specified trips are removed from the original task.\n\ \ * If `create_new_trips: false` is specified - all performers and transport\ \ that are not in the specified trips are removed from the original task,\ \ and unplanned shifts of performers and transport that are in the specified\ \ trips are also removed.\n * Afterwards, [cleaning up data for planning](#operation/run_plan_refine)\ \ is performed.\n\nAs a result, a task for planning is returned.\n" operationId: run_replan_refine x-process-type: VALIDATE parameters: - $ref: '#/components/parameters/remove_locations' requestBody: description: Data for refine. required: true content: application/json: schema: $ref: '#/components/schemas/replan_task' examples: ReplanTaskMoscow: $ref: '#/components/examples/ReplanTaskMoscow' responses: '200': description: Refine completed successfully content: application/json: schema: $ref: '#/components/schemas/refine_result' examples: RefineResultMoscow: $ref: '#/components/examples/RefineResultMoscow' '400': $ref: '#/components/responses/400_with_errors_and_warnings' '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 data to the [VRt.Universal XLSX](#tag/XLSX-Format) format. operationId: run_convert_json_to_xlsx x-process-type: CONVERT parameters: - $ref: '#/components/parameters/timezone' 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_warnings' '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](#tag/XLSX-Format) format to the VRt.Universal JSON format. ' operationId: run_convert_xlsx_to_json x-process-type: CONVERT requestBody: description: Conversion request to the JSON format. required: true content: application/octet-stream: schema: $ref: '#/components/schemas/file_xlsx' responses: '200': description: Successful execution content: application/json: schema: $ref: '#/components/schemas/universal_data' examples: ConvertTaskMoscow: $ref: '#/components/examples/ConvertTaskMoscow' '400': $ref: '#/components/responses/400_with_errors_and_warnings' '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/json-to-thrift: post: tags: - Convert summary: JSON >> THRIFT description: Used for conversion of input data to the THRIFT format. operationId: run_convert_json_to_thrift x-process-type: CONVERT requestBody: description: Conversion request to the THRIFT. required: true content: application/json: schema: $ref: '#/components/schemas/universal_data' examples: ConvertTaskMoscow: $ref: '#/components/examples/ConvertTaskMoscow' responses: '200': description: Successful execution content: text/plain: schema: $ref: '#/components/schemas/file_text' '400': $ref: '#/components/responses/400_with_errors_and_warnings' '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 x-process-type: NOTRACE 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 x-process-type: NOTRACE 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}: get: tags: - System summary: Getting the documentation description: Getting the file with this service documentation. operationId: file x-process-type: NOTRACE security: [] parameters: - $ref: '#/components/parameters/filename' 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 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 x-custom-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: PT1H45M time_window: description: Time window. type: object additionalProperties: false properties: from: description: Date and time in the [ISO 8601](https://tools.ietf.org/html/rfc3339#section-5.6) format. type: string format: date-time example: '2026-04-21T09:30:00+03:00' to: description: Date and time in the [ISO 8601](https://tools.ietf.org/html/rfc3339#section-5.6) format. type: string format: date-time example: '2026-04-21T19:45:00Z' required: - from - to capacity_limit: description: Capacity limits. type: object additionalProperties: false properties: mass: description: Weight in kilograms. type: number format: double minimum: 0 maximum: 1000000000 example: 10 volume: description: Volume in cubic meters. type: number format: double minimum: 0 maximum: 1000000000 example: 2 capacity_a: description: Additional parameter (A) for measuring cargoes and boxes in alternative units. type: number format: double minimum: 0 maximum: 1000000000 example: 1 capacity_b: description: Additional parameter (B) for measuring cargoes and boxes in alternative units. type: number format: double minimum: 0 maximum: 1000000000 example: 2 capacity_c: description: Additional parameter (C) for measuring cargoes and boxes in alternative units. type: number format: double minimum: 0 maximum: 1000000000 example: 3 required: - mass - volume - capacity_a - capacity_b - capacity_c capacity_cost: description: Cost per capacity element. type: object additionalProperties: false properties: mass: description: Cost per kilogram, in conventional monetary units. type: number format: double minimum: 0 maximum: 1000000 example: 11 volume: description: Cost per cubic meter, in conventional monetary units. type: number format: double minimum: 0 maximum: 1000000 example: 22 capacity_a: description: Cost per unit of additional parameter (A), in conventional monetary units. type: number format: double minimum: 0 maximum: 1000000 example: 11 capacity_b: description: Cost per unit of additional parameter (B), in conventional monetary units. type: number format: double minimum: 0 maximum: 1000000 example: 22 capacity_c: description: Cost per unit of additional parameter (C), in conventional monetary units. type: number format: double minimum: 0 maximum: 1000000 example: 31 required: - mass - volume - capacity_a - capacity_b - capacity_c location_cargos_limit: description: 'Limiting the location''s ability to handle cargo. ' type: object additionalProperties: false properties: capacity: $ref: '#/components/schemas/capacity_limit' description: Capacity value. penalty: $ref: '#/components/schemas/capacity_cost' description: Penalty for violating the `capacity`. required: - capacity - penalty location_cargos_limit_function: description: 'A function that describes the limitation of a location''s ability to handle cargo and penalties for violating the restrictions. Penalties are cumulative independently for each qualifying part of the function. ' type: array uniqueItems: false minItems: 0 maxItems: 5 items: $ref: '#/components/schemas/location_cargos_limit' default: [] location_transports_limit: description: 'Limiting the location''s ability to serve transport. ' type: object additionalProperties: false properties: count: description: The number of transport serviced on average during a specified time window. type: number format: double minimum: 0 maximum: 15001 example: 2 penalty: description: Penalty for violating the `count`. type: number format: double minimum: 0 maximum: 1000000 example: 2000 required: - count - penalty location_transports_limit_function: description: 'A function that describes the limitation of a location’s ability to serve transport and penalties for violating the restrictions. Penalties are cumulative independently for each qualifying part of the function. ' type: array uniqueItems: false minItems: 0 maxItems: 5 items: $ref: '#/components/schemas/location_transports_limit' default: [] location_limit: description: 'Limitation on the capacity of a location during a certain time period. ' type: object additionalProperties: false properties: key: description: Constraint key, unique identifier. type: string minLength: 1 maxLength: 1024 example: location_limit_constraint_01 time_window: $ref: '#/components/schemas/time_window' description: Time window for the restriction. min_cargos: $ref: '#/components/schemas/location_cargos_limit_function' description: 'The minimum throughput of cargo movement that must be ensured. Failure to comply with this parameter will result in a fine. ' max_cargos: $ref: '#/components/schemas/location_cargos_limit_function' description: 'Maximum throughput of cargo movement. Exceeding the parameter is penalized. ' min_transports: $ref: '#/components/schemas/location_transports_limit_function' description: 'The minimum acceptable number of transports serviced on average during a specified time window. Failure to comply with this parameter will result in a fine. ' max_transports: $ref: '#/components/schemas/location_transports_limit_function' description: 'The maximum acceptable number of transports serviced on average during a specified time window. Exceeding the parameter is penalized. ' required: - key - time_window location_limit_list: description: 'List of bandwidth restrictions inside the working window of the location. Constraint time windows cannot overlap and must total `work_window`. ' type: array uniqueItems: false minItems: 0 maxItems: 48 items: $ref: '#/components/schemas/location_limit' default: [] location_timetable_element: description: 'Location - unique geographical location of the object with accessibility parameters. ' type: object additionalProperties: false properties: work_window: $ref: '#/components/schemas/time_window' description: Time window for location availability. limits: $ref: '#/components/schemas/location_limit_list' required: - work_window location_timetable: description: 'Location timetable - time windows of availability and capacity restrictions. If the list is empty or not specified, the location works without restrictions. ' type: array uniqueItems: false minItems: 0 maxItems: 30 items: $ref: '#/components/schemas/location_timetable_element' default: [] compatibility_tag: description: Tag used to determine [compatibility](#section/Description/Compatibilities). type: string minLength: 1 maxLength: 256 example: B1 compatibility_tag_list: description: 'A list of tags that define a property or requirement. ' type: array uniqueItems: true minItems: 0 maxItems: 1000 items: $ref: '#/components/schemas/compatibility_tag' default: [] location_compatibilities: description: Compatibilities of [the location with transport](#section/Description/Compatibilities). type: object additionalProperties: false properties: transport_restrictions: $ref: '#/components/schemas/compatibility_tag_list' description: 'List of transport requirements. Used to check whether the transport is compatible with the location. ' nullable: description: Null value. type: 'null' name: description: Name, information field. type: string minLength: 0 maxLength: 128 default: '' example: X1-ABC attribute: description: Attribute. type: object additionalProperties: false properties: key: description: Attribute's key. type: string minLength: 1 maxLength: 100 example: code value: description: Attribute's value. type: string minLength: 0 maxLength: 7000 example: X51 strategy: description: "Attribute processing strategy: \n * `LASTMILE_REF_TIME` -\ \ when sending a task to the scheduler, the value (format [ISO 8601](https://tools.ietf.org/html/rfc3339#section-5.6))\ \ of the attribute is replaced with a relative time; if the value is not\ \ in the format, the calculation stops with the `FAILED` status.\n" type: - string - 'null' minLength: 0 maxLength: 100 default: null example: LASTMILE_REF_TIME required: - key - value attributes: description: Attributes. Used to add service information. type: array uniqueItems: true minItems: 0 maxItems: 250 items: $ref: '#/components/schemas/attribute' default: [] location: description: 'Location - unique geographical location of the object with accessibility parameters. ' type: object additionalProperties: false properties: key: description: Location key, unique identifier. type: string minLength: 1 maxLength: 1024 example: location_01 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) according to [ISO 8601 duration](https://en.wikipedia.org/wiki/ISO_8601#Durations). departure_duration: $ref: '#/components/schemas/time_duration' description: Time to leave the location according to [ISO 8601 duration](https://en.wikipedia.org/wiki/ISO_8601#Durations). timetable: $ref: '#/components/schemas/location_timetable' compatibilities: description: Compatibilities of [the location with transport](#section/Description/Compatibilities). oneOf: - $ref: '#/components/schemas/location_compatibilities' - $ref: '#/components/schemas/nullable' default: null name: $ref: '#/components/schemas/name' address: description: Full location address. type: - string - 'null' default: null minLength: 1 maxLength: 1024 example: 24th Line V.O., 15/2, building A, St. Petersburg, 199106 attributes: $ref: '#/components/schemas/attributes' required: - key - geopoint location_list_required: description: List of locations used for orders and shifts. type: array uniqueItems: true minItems: 1 maxItems: 15001 items: $ref: '#/components/schemas/location' demand_type: description: "Demand types:\n * `PICKUP` - loading\n * `DROP` - unloading\n\ \ * `WORK` - work at the location\n * `PICKUP_TO_BOX` - loading to box\n\ \ * `DROP_FROM_BOX` - unloading from box\n" type: string enum: - PICKUP - DROP - WORK - PICKUP_TO_BOX - DROP_FROM_BOX example: WORK cargo_keys_list: description: "The list of cargo keys depends on the type of order in which the\ \ cargoes are located:\n * `PICKUP` - list of keys\n * `DROP` - one key\n\ \ * `WORK` - empty list\n * `PICKUP_TO_BOX` - one key\n * `DROP_FROM_BOX`\ \ - one key\n" type: array uniqueItems: true minItems: 0 maxItems: 1000 items: description: Cargo key. type: string minLength: 1 maxLength: 1024 example: - cargo01 possible_event: description: 'Possible event. Combines the geographical location and the time window, when a demand can be completed. ' type: object additionalProperties: 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: location_01 duration: $ref: '#/components/schemas/time_duration' description: Event duration time according to [ISO 8601 duration](https://en.wikipedia.org/wiki/ISO_8601#Durations). default: PT0S reward: description: Reward for completing this event. type: number format: double minimum: 0 maximum: 2000000000 default: 1000.1 example: 199.9 hard_time_window: $ref: '#/components/schemas/time_window' description: 'A hard time window within which an event must occur. The window duration cannot be less than the `duration` of the event. Cannot be violated during planning. ' soft_time_window: description: 'A soft time window within which an event is desired to occur. The window duration cannot be less than the `duration` of the event. Must not exceed the `hard_time_window`. If not specified or equal to `null`, it is assumed to be equal to the hard time window. May be disrupted during planning. ' oneOf: - $ref: '#/components/schemas/time_window' - $ref: '#/components/schemas/nullable' default: null attributes: $ref: '#/components/schemas/attributes' 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 properties: key: description: Demand key, unique identifier. type: string minLength: 1 maxLength: 1024 example: demand_1 demand_type: $ref: '#/components/schemas/demand_type' target_cargos: $ref: '#/components/schemas/cargo_keys_list' precedence_in_trip: description: Precedence within a trip, 0 - the precedence is not taken into account. type: integer format: int32 minimum: 0 maximum: 15001 default: 0 example: 1 precedence_in_order: description: Precedence within an order, 0 - the precedence is not taken into account. type: integer format: int32 minimum: 0 maximum: 15001 default: 0 example: 1 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' name: $ref: '#/components/schemas/name' attributes: $ref: '#/components/schemas/attributes' required: - key - demand_type - possible_events capacity: description: Capacity characteristics. type: object additionalProperties: false 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 parameter (A) for measuring cargoes and boxes 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 box). ' type: number format: double minimum: 0 maximum: 1000000 default: 0 example: 1 capacity_b: description: 'Additional parameter (B) for measuring cargoes and boxes in alternative units. ' type: number format: double minimum: 0 maximum: 1000000 default: 0 example: 2 capacity_c: description: 'Additional parameter (C) for measuring cargoes and boxes 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 enum: - ALL - YAW - PITCH - ROLL default: ALL examples: - 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.\ \ More about [cargo placement](#section/Description/Cargo-placement).\n" type: array uniqueItems: true minItems: 0 maxItems: 4 items: $ref: '#/components/schemas/cargo_rotation_type' default: [] cargo_compatibilities: description: Compatibilities of [the cargo with the transport box and other cargos](#section/Description/Compatibilities). type: object additionalProperties: false 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/compatibility_tag_list' description: 'A list of necessary restrictions for the transport box in which this cargo can be transported. ' cargo_features: $ref: '#/components/schemas/compatibility_tag_list' description: 'Cargo''s features list. Used to check whether the cargo is compatible with other cargos. Incompatible cargo cannot be located simultaneously in the same box of the transport. ' cargo_restrictions: $ref: '#/components/schemas/compatibility_tag_list' description: 'Restrictions list for the cargo. Used to check whether the cargo is compatible with other cargos. Incompatible cargo cannot be located simultaneously in the same box of the transport. ' cargo_invoice_tax: description: Value-added tax (VAT). type: string enum: - VAT_NA - VAT_00 - VAT_05 - VAT_07 - VAT_10 - VAT_20 - VAT_22 - VAT_05_105 - VAT_07_107 - VAT_10_110 - VAT_20_120 - VAT_22_122 example: VAT_NA cargo_invoice_honest_sign: description: Information about the `Honest Sign` marking. type: object additionalProperties: false properties: label: description: The label of the `Honest Sign` marking. type: - string - 'null' minLength: 1 maxLength: 1000 default: null example: xdd11 marking_required: description: The product requires the `Honest Sign` marking. type: boolean default: false example: true cargo_invoice_detail: description: Invoice details for the product. type: object additionalProperties: false properties: full_name: description: Product name. type: string minLength: 1 maxLength: 1000 example: Industrial unmanaged switch AKF U-5T 5 ports 10/100Base-T(X) RJ45 unit_name: description: Product unit name. type: - string - 'null' minLength: 1 maxLength: 1000 default: null example: Mango unit_price: description: Unit price. type: number format: double minimum: 0 maximum: 1000000000 example: 500 unit_amount: description: Product amount. type: number format: double minimum: 0.01 maximum: 1000000000 example: 2 external_id: description: External product identifier. type: - string - 'null' minLength: 1 maxLength: 1000 default: null example: mango external_url: description: Link to product description. type: - string - 'null' minLength: 1 maxLength: 1000 default: null example: mango tax: $ref: '#/components/schemas/cargo_invoice_tax' honest_sign: $ref: '#/components/schemas/cargo_invoice_honest_sign' scan_code: description: Barcode or QR-code. type: - string - 'null' minLength: 1 maxLength: 1000 default: null example: xdd1 age_restriction: description: Age restrictions apply (18+). type: boolean default: false example: true payment_subject_type: description: The item being paid. For example, Goods or Services. type: - string - 'null' minLength: 1 maxLength: 1000 default: null example: Goods required: - full_name - unit_price - unit_amount - tax - honest_sign user_email: description: User e-mail address. type: - string - 'null' format: email pattern: ^[A-Za-z0-9+_.-]+@[A-Za-z0-9.-]+\.[A-Za-z]{2,}$ default: null minLength: 5 maxLength: 256 example: admin@company.com user_phone: description: User phone. type: - string - 'null' pattern: ^[+]{1}(?:[0-9\-$$\/\.]\s?){6,15}[0-9]{1}$ default: null minLength: 5 maxLength: 32 example: '+71112223333' cargo_invoice_receipt: description: Information for printing a receipt. type: object additionalProperties: false properties: email: $ref: '#/components/schemas/user_email' phone: $ref: '#/components/schemas/user_phone' payment_document: description: The document used for payment. type: - string - 'null' minLength: 0 maxLength: 1000 default: null example: N1234567 cargo_invoice: description: Cargo invoice. type: object additionalProperties: false properties: payable: description: "Flag indicating whether payment is required:\n * `true` -\ \ payment required\n * `false` - payment not required\n" type: boolean example: true invoice_details: description: Product data. type: array uniqueItems: false minItems: 0 maxItems: 1000 default: [] items: $ref: '#/components/schemas/cargo_invoice_detail' receipt: $ref: '#/components/schemas/cargo_invoice_receipt' prepayment: description: Prepayment amount. type: number format: double minimum: 0 maximum: 1000000000 default: 0 example: 1000 required: - payable - invoice_details cargo: description: 'Cargo. Regardless of capacity, cargo can only move inside the transport box. ' type: object additionalProperties: false properties: key: description: Cargo key, unique identifier. type: string minLength: 1 maxLength: 1024 example: cargo01 capacity: description: Cargo additive measures. oneOf: - $ref: '#/components/schemas/capacity' - $ref: '#/components/schemas/nullable' default: null compatibilities: description: Compatibilities of [the cargo with the transport box and other cargos](#section/Description/Compatibilities). oneOf: - $ref: '#/components/schemas/cargo_compatibilities' - $ref: '#/components/schemas/nullable' default: null target_box_key: description: 'The key of the transport box in which the cargo is already located. Applicable only for cargo that is in the order with the type `DROP_FROM_BOX`. For other order types, the key must be empty. ' type: - string - 'null' minLength: 1 maxLength: 1024 default: null example: box01 invoice: description: Cargo invoice. oneOf: - $ref: '#/components/schemas/cargo_invoice' - $ref: '#/components/schemas/nullable' default: null attributes: $ref: '#/components/schemas/attributes' required: - key cargo_list: description: 'The list of cargoes referred to by the demands of this order. The list must be empty if all demands in the order are of type `WORK`. ' type: array uniqueItems: true minItems: 0 maxItems: 1000 items: $ref: '#/components/schemas/cargo' default: [] order_compatibilities: description: Compatibilities of [the order with performers and other orders](#section/Description/Compatibilities). type: object additionalProperties: false properties: order_features: $ref: '#/components/schemas/compatibility_tag_list' description: 'Order features list. Used to check the compatibility of an order with other orders. Incompatible orders cannot be planned on the same trip. ' order_restrictions: $ref: '#/components/schemas/compatibility_tag_list' description: 'List of restrictions for an order carried out on the same trip. Used to check the compatibility of an order with other orders. Incompatible orders cannot be planned on the same trip. ' performer_restrictions: $ref: '#/components/schemas/compatibility_tag_list' description: 'A list of necessary requirements for the performer who can fulfill this order. ' performer_blacklist: $ref: '#/components/schemas/compatibility_tag_list' description: 'A list of requirements that the performer is not allowed to have. This list should not intersect with `performer_restrictions`. ' order: description: The order for delivery/transportation, contains a list of demands. type: object additionalProperties: 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: $ref: '#/components/schemas/cargo_list' compatibilities: description: Compatibilities of [the order with performers and other orders](#section/Description/Compatibilities). oneOf: - $ref: '#/components/schemas/order_compatibilities' - $ref: '#/components/schemas/nullable' default: null name: $ref: '#/components/schemas/name' attributes: $ref: '#/components/schemas/attributes' required: - key - demands order_list_required: description: List of orders that need to be completed. type: array uniqueItems: true minItems: 1 maxItems: 15001 items: $ref: '#/components/schemas/order' performer_tariff_constraint: description: The paid period of time is an integral part of the tariff. type: object additionalProperties: false properties: stage_length: description: Length of the paid period according to [ISO 8601 duration](https://en.wikipedia.org/wiki/ISO_8601#Durations). type: string format: duration x-custom-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: P30D example: P1DT8H30M20S cost_per_unit: description: 'Cost within the paid period, monetary unit per second 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 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: A list of tariff components that apply from the start of movement or execution of work on orders. type: array uniqueItems: false minItems: 0 maxItems: 100 items: $ref: '#/components/schemas/performer_tariff_constraint' max_penalty_cost: description: 'Max sum of penalties for performer or transport using this shift, monetary unit. If not specified or null, the performer can violate without restrictions. ' type: - number - 'null' format: double minimum: 0 maximum: 1000000 default: null example: 2000 time_duration_null: description: Time duration according to [ISO 8601 duration](https://en.wikipedia.org/wiki/ISO_8601#Durations). type: - string - 'null' format: duration x-custom-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: null example: PT2H12M33S rest: description: The condition for the onset and characteristics of a rest. type: object additionalProperties: false properties: relocating_duration_sum: $ref: '#/components/schemas/time_duration' description: Total relocation time between locations, no later than which you need to take a rest according to [ISO 8601 duration](https://en.wikipedia.org/wiki/ISO_8601#Durations). operating_duration_sum: $ref: '#/components/schemas/time_duration_null' description: Total trip time (excluding waiting), no later than which you need to take a rest according to [ISO 8601 duration](https://en.wikipedia.org/wiki/ISO_8601#Durations). duration: $ref: '#/components/schemas/time_duration' description: Length of break period according to [ISO 8601 duration](https://en.wikipedia.org/wiki/ISO_8601#Durations). required: - relocating_duration_sum - duration rest_rules: description: Rules for accounting for rest. type: object additionalProperties: false properties: consecutive: $ref: '#/components/schemas/rest' description: The condition for the onset and characteristics of a consecutive rest. required: - consecutive break: description: The condition for the onset and characteristics of a break. type: object additionalProperties: false properties: relocating_duration_sum: $ref: '#/components/schemas/time_duration' description: Total relocation time between locations, no later which you need to take a break according to [ISO 8601 duration](https://en.wikipedia.org/wiki/ISO_8601#Durations). operating_duration_sum: $ref: '#/components/schemas/time_duration_null' description: Total trip time (excluding waiting), no later which you need to take a break according to [ISO 8601 duration](https://en.wikipedia.org/wiki/ISO_8601#Durations). duration: $ref: '#/components/schemas/time_duration' description: Length of break period according to [ISO 8601 duration](https://en.wikipedia.org/wiki/ISO_8601#Durations). required: - relocating_duration_sum - duration break_rules: description: Rules for accounting for breaks. type: object additionalProperties: false properties: first: $ref: '#/components/schemas/break' description: The condition for the onset and characteristics of a first break. consecutive: description: The condition for the onset and characteristics of a consecutive break. oneOf: - $ref: '#/components/schemas/break' - $ref: '#/components/schemas/nullable' default: null relocating_duration_type: description: Type of accounting for time spent moving between locations (total or continuous). type: string enum: - TOTAL - CONTINUOUS default: TOTAL example: CONTINUOUS required: - first work_and_rest_rules: description: Performer's work and rest rules. type: object additionalProperties: false properties: rest_rules: description: Rules for accounting for rest. oneOf: - $ref: '#/components/schemas/rest_rules' - $ref: '#/components/schemas/nullable' default: null break_rules: description: Rules for accounting for breaks. oneOf: - $ref: '#/components/schemas/break_rules' - $ref: '#/components/schemas/nullable' default: null reset_location_keys: description: A list of locations keys in which the counters for breaks and rest are reset when located. type: array uniqueItems: false minItems: 0 maxItems: 15001 items: description: Location key, unique identifier. type: string minLength: 1 maxLength: 1024 example: location_01 default: [] ignore_location_keys: description: List of location keys whose stay is not taken into account in the total trip execution time counter. type: array uniqueItems: false minItems: 0 maxItems: 15001 items: description: Location key, unique identifier. type: string minLength: 1 maxLength: 1024 example: location_01 default: [] performer_shift: description: 'Performer''s shift that determines the availability of the resource for planning within its time window. ' type: object additionalProperties: false properties: key: description: Shift key, unique identifier. type: string minLength: 1 maxLength: 1024 example: shift01 availability_time: $ref: '#/components/schemas/time_window' description: Time shift window when the performer can perform work at locations and drive between locations. working_time: $ref: '#/components/schemas/time_window' description: Working time window, when the performer can perform work at locations, must be inside the time window. start_location_key: description: 'Start location key. If not specified, the trip starts from the first order location. ' type: - string - 'null' minLength: 1 maxLength: 1024 default: null example: start_location_01 finish_location_key: description: 'Finish location key. If not specified, the trip finishes on the last order location. ' type: - string - 'null' minLength: 1 maxLength: 1024 default: null example: finish_location_01 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 - 'null' format: int32 minimum: 1 maximum: 1000 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 - 'null' format: int32 minimum: 1 maximum: 1000 default: null example: 15 tariff: $ref: '#/components/schemas/performer_tariff' work_and_rest_rules: description: Performer's work and rest rules. oneOf: - $ref: '#/components/schemas/work_and_rest_rules' - $ref: '#/components/schemas/nullable' default: null name: $ref: '#/components/schemas/name' 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 * `TRUCK_10000_L75_H35_W24_6000` - a truck\ \ with a permitted weight of no more than 10,000 kg, dimensions of 7.5 x 3.5\ \ x 2.4 meters, and a permissible axle load of 6,000 kg\n * `TRUCK_18000_L95_H40_W26_11000`\ \ - a truck with a permitted weight of no more than 18,000 kg, dimensions\ \ of 9.5 x 4.0 x 2.6 meters, and a permissible axle load of 11,000 kg\n *\ \ `TRUCK_26000_L120_H40_W26_8000` - a truck with a permitted weight of no\ \ more than 26,000 kg, dimensions of 12.0 x 4.0 x 2.6 meters, and a permissible\ \ axle load of 8000 kg\n * `TRUCK_GARBAGE_1` - truck for transporting garbage\ \ (type 1)\n * `TRUCK_GARBAGE_2` - truck for transporting garbage (type 2)\n\ \ * `TUK_TUK` - tuk-tuk\n * `BICYCLE` - bicycle\n * `PEDESTRIAN` - pedestrian\ \ \n * `PUBLIC_TRANSPORT` - public transport\n * `TELEPORT` - teleport\ \ (instant movement between points)\n \n Permissible weight is the weight\ \ of the equipped transport with cargo and driver, set by the manufacturer\ \ as the maximum allowable.\n" type: string enum: - CAR - TRUCK_1500 - TRUCK_3000 - TRUCK_5000 - TRUCK_10000 - TRUCK_20000 - TRUCK_10000_L75_H35_W24_6000 - TRUCK_18000_L95_H40_W26_11000 - TRUCK_26000_L120_H40_W26_8000 - TRUCK_GARBAGE_1 - TRUCK_GARBAGE_2 - TUK_TUK - BICYCLE - PEDESTRIAN - PUBLIC_TRANSPORT - TELEPORT default: CAR example: CAR feature_lifetime: description: Tag life time window. type: object additionalProperties: false properties: feature: $ref: '#/components/schemas/compatibility_tag' time_windows: description: 'A list of time windows within which the specified tag exists. If compatibility is affected by several features with different windows - entities will be considered compatible within the intersection of windows. There cannot be more than 4 intersections of the specified windows for all tags for one performer. ' type: array minItems: 1 maxItems: 4 uniqueItems: true items: $ref: '#/components/schemas/time_window' required: - feature - time_windows feature_lifetime_list: description: 'List of feature tag lifetime. ' type: array uniqueItems: true minItems: 0 maxItems: 100 items: $ref: '#/components/schemas/feature_lifetime' default: [] performer_compatibilities: description: Compatibilities of [the performer with transport and orders](#section/Description/Compatibilities). type: object additionalProperties: false properties: performer_features: $ref: '#/components/schemas/compatibility_tag_list' description: 'Performer''s features list. Used to check whether the performer is compatible with orders. ' performer_features_lifetimes: $ref: '#/components/schemas/feature_lifetime_list' description: 'List of feature lifetime. Affects on compatibility Performer-Order. Compatibility operates in time windows that result from the intersection of the time windows of all specified tags. ' transport_restrictions: $ref: '#/components/schemas/compatibility_tag_list' description: 'List of transport requirements. Used to check whether the transport is compatible with the performer. ' demand_extra_duration: description: 'Additional time for the execution of the application by a certain performer. ' type: object additionalProperties: false properties: demand_key: description: The key of the ticket whose events need to increase the execution time. type: string minLength: 1 maxLength: 1024 example: demand01.1 additional_duration: $ref: '#/components/schemas/time_duration' description: 'Additional execution time for all events of the specified order for all shifts of the specified performer. According to [ISO 8601 duration](https://en.wikipedia.org/wiki/ISO_8601#Durations). ' required: - demand_key - additional_duration performer_limits: description: Limitation on the performer's workload. type: object additionalProperties: false 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 demand_extra_durations: description: 'A list of demands for which the performer will spend more time than indicated in the demand. Valid for the specified performer-order pair for all performer''s shifts and all demands''s events. ' type: array uniqueItems: true minItems: 0 maxItems: 15001 items: $ref: '#/components/schemas/demand_extra_duration' default: [] performer: description: 'Performer. Fulfills orders using transport. ' type: object additionalProperties: 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: 15001 items: $ref: '#/components/schemas/performer_shift' own_transport_type: $ref: '#/components/schemas/transport_type' description: The type of personal transport that the performer will use to get to his assigned work transport. default: CAR compatibilities: description: Compatibilities of [the performer with transport and orders](#section/Description/Compatibilities). oneOf: - $ref: '#/components/schemas/performer_compatibilities' - $ref: '#/components/schemas/nullable' default: null limits: description: Limitation on the performer's workload. oneOf: - $ref: '#/components/schemas/performer_limits' - $ref: '#/components/schemas/nullable' default: null name: $ref: '#/components/schemas/name' attributes: $ref: '#/components/schemas/attributes' required: - key - shifts performer_list_required: description: 'Available performers list. The performer fulfills orders using transport. ' type: array uniqueItems: true minItems: 1 maxItems: 15001 items: $ref: '#/components/schemas/performer' transport_tariff_constraint: description: Paid mileage is an integral part of the tariff. type: object additionalProperties: 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 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 uniqueItems: false minItems: 0 maxItems: 100 items: $ref: '#/components/schemas/transport_tariff_constraint' transportation_cost: description: The cost of moving 1 unit of measure of cargo per 1 meter (for each capacity field, respectively), monetary unit. oneOf: - $ref: '#/components/schemas/capacity_cost' - $ref: '#/components/schemas/nullable' default: null transport_shift: description: 'Working shift of transport. Specifies the availability of transport for scheduling. The end of the shift resets the cargo remaining in the body after the execution of demands of the `DROP_FROM_BOX` and `PICKUP_TO_BOX` types. ' type: object additionalProperties: false properties: key: description: Shift key, unique identifier. type: string minLength: 1 maxLength: 1024 example: shift01 availability_time: $ref: '#/components/schemas/time_window' description: The shift time window in which the transport can move between locations and be used by the performer in work on locations. start_location_key: description: 'Start location key. If the key is not set, then the transport path starts on the first order. ' type: - string - 'null' minLength: 1 maxLength: 1024 default: null example: start_location_01 finish_location_key: description: 'Finish location key. If the key is not set, then the transport path ends at the last order. ' type: - string - 'null' minLength: 1 maxLength: 1024 default: null example: finish_location_01 tariff: $ref: '#/components/schemas/transport_tariff' name: $ref: '#/components/schemas/name' attributes: $ref: '#/components/schemas/attributes' required: - key - availability_time box_compatibilities: description: Transport box [compatibilities](#section/Description/Compatibilities). type: object additionalProperties: false 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/compatibility_tag_list' description: 'Box features list. Used to check whether the cargo is compatible with the box. ' box_limits: description: Box limits. type: object additionalProperties: false properties: max_one_cargo_capacity: description: Limitation on the maximum size of one cargo. oneOf: - $ref: '#/components/schemas/capacity' - $ref: '#/components/schemas/nullable' default: null box: description: 'A transport box capable to hold a cargo. ' type: object additionalProperties: false properties: key: description: Unique box key used to identify the cargo placement in boxes. type: string minLength: 1 maxLength: 1024 example: box01 capacity: description: The box capacity, which limits the maximum amount for all `capacity` fields of *all* the cargoes. oneOf: - $ref: '#/components/schemas/capacity' - $ref: '#/components/schemas/nullable' default: null compatibilities: description: Transport box [compatibilities](#section/Description/Compatibilities). oneOf: - $ref: '#/components/schemas/box_compatibilities' - $ref: '#/components/schemas/nullable' default: null limits: description: Box limits. oneOf: - $ref: '#/components/schemas/box_limits' - $ref: '#/components/schemas/nullable' default: null attributes: $ref: '#/components/schemas/attributes' required: - key transport_compatibilities: description: Compatibilities of [the transport with performers and locations](#section/Description/Compatibilities). type: object additionalProperties: false properties: transport_features: $ref: '#/components/schemas/compatibility_tag_list' description: 'Transport features list. Used to check whether the transport is compatible with locations and performers. ' transport_features_lifetimes: $ref: '#/components/schemas/feature_lifetime_list' description: 'List of feature lifetime. Affects on compatibility Transport-Location. Compatibility operates in time windows that result from the intersection of the time windows of all specified tags. ' performer_restrictions: $ref: '#/components/schemas/compatibility_tag_list' description: 'List of necessary requirements for the performer to use this transport. ' transport_limits: description: Transport load limits. type: object additionalProperties: false 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 - 'null' format: int32 default: null minimum: 0 maximum: 100 example: 2 max_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 box. ' oneOf: - $ref: '#/components/schemas/capacity' - $ref: '#/components/schemas/nullable' default: null transport: description: 'Transport. Used by performer for relocating and cargo transfer. ' type: object additionalProperties: 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: 15001 items: $ref: '#/components/schemas/transport_shift' transport_type: $ref: '#/components/schemas/transport_type' default: CAR boxes: description: A list of transport boxes that can accommodate the cargo. type: array uniqueItems: false minItems: 0 maxItems: 100 items: $ref: '#/components/schemas/box' default: [] compatibilities: description: Compatibilities of [the transport with performers and locations](#section/Description/Compatibilities). oneOf: - $ref: '#/components/schemas/transport_compatibilities' - $ref: '#/components/schemas/nullable' default: null limits: description: Transport load limits. oneOf: - $ref: '#/components/schemas/transport_limits' - $ref: '#/components/schemas/nullable' default: null name: $ref: '#/components/schemas/name' attributes: $ref: '#/components/schemas/attributes' required: - key - shifts transport_list_required: description: 'Available transports list. Transport is used by the trip performer to fulfill orders. ' type: array uniqueItems: true minItems: 1 maxItems: 15001 items: $ref: '#/components/schemas/transport' hardlink_element_type: description: 'Type of goal entity. It can be an order or a performer\transport shift. ' type: string 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 properties: key: description: Hardlink key. type: string minLength: 1 maxLength: 1024 example: group01 links: description: List of items in the assignment group. type: array uniqueItems: false minItems: 2 maxItems: 1000 items: $ref: '#/components/schemas/hardlink_element' attributes: $ref: '#/components/schemas/attributes' required: - key - links hardlink_list: description: Assignments list. type: array uniqueItems: true minItems: 0 maxItems: 15001 items: $ref: '#/components/schemas/hardlink' plan_configuration: description: 'Name of the planning configuration. The configuration determines the result goal and quality. [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 enum: - EARLIEST_FINISH - LOWEST_COST default: EARLIEST_FINISH example: LOWEST_COST problem_kind: description: 'Problem kind. ' type: - string - 'null' minLength: 1 maxLength: 256 default: null example: LONG_HAUL trip_expectations: description: 'Expectations from the calculation result. Affect the trip-building logic. ' type: object additionalProperties: false properties: trip_start_time_strategy: $ref: '#/components/schemas/trip_start_time_strategy' problem_kind: $ref: '#/components/schemas/problem_kind' attributes: $ref: '#/components/schemas/attributes' transport_speed_multiplier: description: Speed change coefficient for the specified transport type. type: object additionalProperties: false properties: transport_type: $ref: '#/components/schemas/transport_type' speed: description: Average transport speed multiplier. type: number format: double minimum: 0.1 maximum: 100000 example: 2.5 required: - transport_type - speed transport_speed_multiplier_list: description: Transport speed change coefficients. type: array minItems: 0 maxItems: 16 default: [] uniqueItems: true items: $ref: '#/components/schemas/transport_speed_multiplier' capacity_multiplier: description: Capacity change rate for the specified transport type. type: object additionalProperties: false properties: mass: description: Mass multiplier. type: number format: double minimum: 0 maximum: 1000 default: 1 example: 2 volume: description: Volume multiplier. type: number format: double minimum: 0 maximum: 1000 default: 1 example: 2 capacity_a: description: Additional parameter (A) multiplier. type: number format: double minimum: 0 maximum: 1000 default: 1 example: 2 capacity_b: description: Additional parameter (B) multiplier. type: number format: double minimum: 0 maximum: 1000 default: 1 example: 2 capacity_c: description: Additional parameter (C) multiplier. type: number format: double minimum: 0 maximum: 1000 default: 1 example: 2 transport_capacity_multiplier: description: Capacity change rate for the specified transport type. type: object additionalProperties: false properties: transport_type: $ref: '#/components/schemas/transport_type' capacity: $ref: '#/components/schemas/capacity_multiplier' required: - transport_type - capacity transport_capacity_multiplier_list: description: 'Transport capacity change coefficients. Change the `capacity` parameters for all boxes and `max_capacity` for the transport. ' type: array minItems: 0 maxItems: 16 default: [] uniqueItems: true items: $ref: '#/components/schemas/transport_capacity_multiplier' trip_assumptions: description: 'Planning assumptions. Designed to adjust the logic of planning via mass change of input data. ' type: object additionalProperties: false properties: transport_speed_multipliers: $ref: '#/components/schemas/transport_speed_multiplier_list' transport_capacity_multipliers: $ref: '#/components/schemas/transport_capacity_multiplier_list' 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 disable_location_limits: description: 'Disable location bandwidth accounting. If `true` is specified, `location.timetable.limits` and `trips_settings.penalties.max_locations_limits_penalty` parameters are not taken into account. ' type: boolean default: true example: false 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 properties: tag: $ref: '#/components/schemas/compatibility_tag' penalty: description: 'Penalty for violation of compatibility for the specified tag. ' type: number format: double minimum: 0 maximum: 1000000 example: 2000 required: - tag - penalty compatibility_penalty_list: description: 'Penalties for violation of compatibility. When taking into account transport-location compatibility violations, the penalty is applied for each stop and cannot exceed the `max_penalty_cost` of the performer assigned to the trip. Only the absence of a property is penalized; the time windows of the life of a property cannot be violated for a fine. ' type: array uniqueItems: true minItems: 0 maxItems: 1000000 default: [] items: $ref: '#/components/schemas/compatibility_penalty' trip_penalties: description: 'Planning penalties - ability to disrupt a part of the planning business rules. ' type: object additionalProperties: false properties: compatibilities: $ref: '#/components/schemas/compatibility_penalty_list' max_locations_limits_penalty: description: The maximum allowable amount of fines for violating location's capacity limit. type: number format: double minimum: 0 maximum: 1000000000 default: 0 example: 25000 trips_settings: description: Trip creation settings. type: object additionalProperties: false properties: configuration: $ref: '#/components/schemas/plan_configuration' expectations: $ref: '#/components/schemas/trip_expectations' assumptions: $ref: '#/components/schemas/trip_assumptions' penalties: $ref: '#/components/schemas/trip_penalties' geo_provider: description: "Geodata provider:\n * `VRT` - geo-data and traffic jams from\ \ Veeroute, work all over the world.\n\nA specific provider may be specified\ \ for a specific region, availability depending on customer settings.\n" type: string default: VRT minLength: 3 maxLength: 256 example: VRT geo_settings: description: 'Geodata usage settings. ' type: object additionalProperties: false properties: geo_provider: $ref: '#/components/schemas/geo_provider' 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 attributes: $ref: '#/components/schemas/attributes' timezone: description: Timezone. type: integer format: int32 minimum: -12 maximum: 12 default: 0 example: 3 calculation_settings: description: Calculation settings. type: object additionalProperties: 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 x-custom-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: PT12M35S max_waiting_time: description: 'Max calculation time. The countdown starts from the time when data is uploaded to the server. ' type: string format: duration x-custom-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: PT2H result_ttl: description: 'Calculation result lifetime. The countdown starts from the time when the calculation is completed. ' type: string format: duration x-custom-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: $ref: '#/components/schemas/timezone' description: The time zone where the calculation result is returned. default: 0 treat_warnings_as_errors: description: 'Treat warnings as errors and do not run calculations if at least one entity contains invalid data. ' type: boolean default: false example: true precision: description: 'Specifies the calculation accuracy in the decimal point sequence number. It equals 3 by default, so the accuracy is 0.001. ' type: integer format: int32 minimum: 0 maximum: 6 default: 3 example: 1 extension_settings: description: Settings for using external extensions to adjust calculations. type: object additionalProperties: false properties: enable_extension: description: Use a third-party calculation adjuster. type: boolean default: false example: true extension_url: description: The address of an external service implementing the Universal Extension API. type: - string - 'null' minLength: 9 maxLength: 512 default: null example: https://universal-extension.veeroute.cloud request_timeout: description: The maximum time to wait for a response from the external service implementing the Universal Extension API (for each request). type: string format: duration x-custom-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: PT10M example: PT1M30S retry_attempts: description: The number of attempts to request an external service implementing the Universal Extension API. type: integer format: int32 minimum: 0 maximum: 100 default: 3 example: 2 retry_interval: description: The time between request attempts to an external service implementing the Universal Extension API. type: string format: duration x-custom-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: PT1M example: PT1M30S plan_settings: description: Planning settings. type: object additionalProperties: false properties: trips_settings: $ref: '#/components/schemas/trips_settings' geo_settings: $ref: '#/components/schemas/geo_settings' calculation_settings: $ref: '#/components/schemas/calculation_settings' extension_settings: $ref: '#/components/schemas/extension_settings' routing_matrix_waypoint: description: 'Routing matrix waypoint. ' type: object additionalProperties: false properties: geopoint: $ref: '#/components/schemas/geopoint' name: description: 'Name of the point. Can be used as an identifier to match the task and the calculation result. ' type: - string - 'null' default: null minLength: 0 maxLength: 1024 example: waypoint_1 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: 15001 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: 'Routing matrix. Contains durations and distances between points. ' type: object additionalProperties: false properties: waypoints: description: Array of geographical points with distances and times calculated between them. type: array uniqueItems: false minItems: 2 maxItems: 15001 items: $ref: '#/components/schemas/routing_matrix_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. A negative value (-1) means that it is not possible to drive between the specified locations. ' type: array uniqueItems: false minItems: 2 maxItems: 15001 items: $ref: '#/components/schemas/routing_matrix_line' example: - - 0 - 1500 - - 1500 - 0 durations: description: 'An array of route durations between points, in seconds. The values in the array are ordered according to the order of the elements in the `waypoints` parameter. Each row of the matrix is an array of travel times from the desired point to each other point. A negative value (-1) means that it is impossible to travel between the specified points. ' type: array uniqueItems: false minItems: 2 maxItems: 15001 items: $ref: '#/components/schemas/routing_matrix_line' example: - - 0 - 3600 - - 3600 - 0 required: - waypoints - distances - durations routing_transport_matrix: description: Time-distance matrix for a specific transport type. type: object additionalProperties: false properties: transport_type: $ref: '#/components/schemas/transport_type' matrix: $ref: '#/components/schemas/routing_matrix' required: - transport_type - matrix routing_transport_matrix_list: description: 'List of matrices of times and distances for each type of transport that are indicated in the data. The matrix should describe all locations for each type of transport from the data. When specifying an external routing matrix `external_routing`, the `plan_settings.geo_settings` parameters are not taken into account. ' type: array uniqueItems: true minItems: 0 maxItems: 16 default: [] items: $ref: '#/components/schemas/routing_transport_matrix' dataset_name: description: 'The name of the dataset. A technical field that does not affect calculation. ' type: string minLength: 0 maxLength: 512 default: '' example: custom_dataset_one plan_task: description: Task for planning type: object additionalProperties: false properties: locations: $ref: '#/components/schemas/location_list_required' orders: $ref: '#/components/schemas/order_list_required' performers: $ref: '#/components/schemas/performer_list_required' transports: $ref: '#/components/schemas/transport_list_required' hardlinks: $ref: '#/components/schemas/hardlink_list' plan_settings: $ref: '#/components/schemas/plan_settings' external_routing: $ref: '#/components/schemas/routing_transport_matrix_list' dataset_name: $ref: '#/components/schemas/dataset_name' required: - locations - orders - performers - transports process_code: description: 'Unique process identifier. One is created per process, the same for different requests for the same process. ' type: string format: uuid example: 11111111-2222-3333-4444-555555555555 request_code: description: 'Unique identifier of the request. A new one is created for each request. ' type: string format: uuid example: aaaaaaaa-bbbb-cccc-dddd-eeeeeeeeeeee user_username: description: Unique username for login. type: string pattern: \w+ minLength: 2 maxLength: 256 example: username_for_login company_key: description: Unique company key. type: string pattern: \w+ minLength: 3 maxLength: 256 example: smart_company service: description: Service name. type: string enum: - UNIVERSAL - ROUTING - ACCOUNT - ADMIN - STUDIO - MONITOR - PACKER - AGRO - REGISTRY - SUPPORT example: UNIVERSAL operation: description: Operation (request) name. type: string pattern: \w+ minLength: 3 maxLength: 256 example: run_plan_calculation tracedata: description: Data for request tracing. type: object additionalProperties: false properties: process_code: $ref: '#/components/schemas/process_code' request_code: $ref: '#/components/schemas/request_code' username: $ref: '#/components/schemas/user_username' company: $ref: '#/components/schemas/company_key' service: $ref: '#/components/schemas/service' operation: $ref: '#/components/schemas/operation' env: description: Environment identifier. type: string pattern: \S+ minLength: 2 maxLength: 256 example: edge7 pod: description: Pod identifier. type: string pattern: \S+ minLength: 2 maxLength: 256 example: 11111111-2222-3333-4444-555555555555 time: description: Date and time service method run in the [ISO 8601](https://tools.ietf.org/html/rfc3339#section-5.6) format. type: string format: date-time example: '2026-04-21T09:30:00+03:00' required: - process_code - request_code - username - company - service - operation - env - pod - time calculation_async_result: description: The result of starting an asynchronous calculation. type: object additionalProperties: false properties: tracedata: $ref: '#/components/schemas/tracedata' process_code: $ref: '#/components/schemas/process_code' description: Process code - calculation identifier. required: - tracedata - process_code error_message: description: Error message. type: - string - 'null' default: null minLength: 1 maxLength: 2048 example: bad data schema_error: description: Data error by schema. type: object additionalProperties: false properties: entity: description: Target entity identifier. type: - string - 'null' minLength: 1 maxLength: 1024 example: order_0001 message: description: Error message. type: string minLength: 1 maxLength: 2048 example: bad input data required: - entity - message schema_error_list: description: List of syntax errors - data does not match the schema. type: array uniqueItems: false minItems: 0 maxItems: 15001 items: $ref: '#/components/schemas/schema_error' default: [] 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\ \ * `INVALID_TIME_WINDOW` - bad time window\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 * `INCONSISTENT_HARDLINK`\ \ - essence key must be only in one hardlink\n * `PLANNING_HORIZON_EXCEEDED`\ \ - planning horizon exceeded (difference between earliest and latest timestamp\ \ in dataset)\n * `MEANINGLESS_RESTRICTIONS` - the specified restrictions\ \ do not make sense\n * `LOCATION_LIMITS_VIOLATION` - the time windows of\ \ the constraint's validity must not overlap and their union must correspond\ \ to the location availability window `work_window`; if the `min_cargos`/`min_transports`\ \ constraint is specified, then the `max_cargos`/`max_transports` constraint\ \ must be specified; the `min_cargos`/`min_transports` constraints must be\ \ less than all the `max_cargos`/`max_transports` constraints; the `LOWEST_COST`\ \ time selection strategy is specified (currently not supported)\n * `PERFORMER_WRR_MUST_BE_SET`\ \ - at least one of the fields `rest_rules` or `break_rules` must be set for\ \ the work and rest schedule.\n * `PERFORMER_WRR_INVALID_REST_COUNT` - the\ \ number of rests cannot exceed 14\n * `PERFORMER_WRR_INVALID_BREAK_COUNT`\ \ - no more than 14 breaks can start between rests\n * `PERFORMER_WRR_MEANINGLESS_REST`\ \ - the specified rest cannot be inserted\n * `PERFORMER_WRR_MEANINGLESS_BREAK`\ \ - the specified break cannot be inserted\n * `TOO_MANY_WARNINGS` - the\ \ number of warnings is greater than 15001\n * `UNCLASSIFIED_ERROR` - unclassified\ \ error\n" type: string enum: - INCONSISTENT_REFERENCE - UNIQUE_IDS_VIOLATION - INVALID_ROUTING_MATRIX - INVALID_GEO_PROVIDER - INVALID_TIME_WINDOW - COMPATIBILITY_CARGO_BOX - COMPATIBILITY_TRANSPORT_PERFORMER - COMPATIBILITY_TRANSPORT_LOCATION - COMPATIBILITY_ORDER_PERFORMER - INCONSISTENT_HARDLINK - PLANNING_HORIZON_EXCEEDED - MEANINGLESS_RESTRICTIONS - LOCATION_LIMITS_VIOLATION - PERFORMER_WRR_MUST_BE_SET - PERFORMER_WRR_INVALID_REST_COUNT - PERFORMER_WRR_INVALID_BREAK_COUNT - PERFORMER_WRR_MEANINGLESS_REST - PERFORMER_WRR_MEANINGLESS_BREAK - TOO_MANY_WARNINGS - UNCLASSIFIED_ERROR example: INCONSISTENT_REFERENCE entity_type: description: Entity type. type: string 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 - FACT - FACT_LINK example: ORDER entity_path: description: 'The description of the entity and the path to it. ' type: object additionalProperties: false properties: entity_key: description: Target entity key. type: - string - 'null' minLength: 0 maxLength: 1024 example: order_0001 entity_type: $ref: '#/components/schemas/entity_type' child_entity: description: Child entity if possible. oneOf: - $ref: '#/components/schemas/entity_path' - $ref: '#/components/schemas/nullable' default: null required: - entity_key - entity_type 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 - 'null' minLength: 0 maxLength: 2048 default: null example: entity error entities: description: List of entities related to error. type: array uniqueItems: false minItems: 0 maxItems: 15001 items: $ref: '#/components/schemas/entity_path' required: - type - entities entity_error_list: description: 'List with fatal errors. ' type: array uniqueItems: false minItems: 0 maxItems: 15001 items: $ref: '#/components/schemas/entity_error' default: [] entity_warning_type: description: "Warning 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 * `NO_AVAILABLE_ORDER_FOR_TRANSPORT`\ \ - the transport is useless, since there are no compatible (by capacity and/or\ \ compatibility tags) orders\n * `NO_AVAILABLE_ORDER_FOR_PERFORMER` - the\ \ performer is useless, since there are no compatible (by capacity and/or\ \ compatibility tags) orders\n * `NO_COMPATIBLE_ORDER_FOR_TRANSPORT` - the\ \ transport is useless, since there are no available (by shift restrictions)\ \ orders\n * `NO_COMPATIBLE_ORDER_FOR_PERFORMER` - the performer is useless,\ \ since there are no available (by shift restrictions) orders\n * `PICKUP_AND_DROP_VIOLATION`\ \ - for each cargo within the order there must be exactly one loading and\ \ exactly one unloading (except for `PICKUP_TO_BOX` and `DROP_FROM_BOX` orders)\n\ \ * `PICKUP_AND_DROP_VIOLATION_PRECEDENCE_IN_ORDER` - for each cargo within\ \ the order, loading must go before 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 or time window exceeds\ \ the maximum allowed\n * `DURATION_VIOLATION` - duration does not correspond\ \ to the allowed interval\n * `ORDER_WINDOWS_INTERSECTION_VIOLATION` - soft\ \ windows should not go beyond the boundaries of the hard window\n * `PERFORMER_SHIFTS_INTERSECTION_VIOLATION`\ \ - time ranges of the performer's work shifts must not overlap, the beginning\ \ of the next window cannot be equal to the end of the previous one\n * `TRANSPORT_SHIFTS_INTERSECTION_VIOLATION`\ \ - time ranges of transport work shifts should not overlap, the beginning\ \ of the next window cannot be equal to the end of the previous one\n * `LOCATION_WINDOWS_INTERSECTION_VIOLATION`\ \ - time ranges of working windows of one location should not intersect, the\ \ beginning of the next window cannot be equal to the end of the previous\ \ one\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` / `DROP_FROM_BOX` type must be no more\ \ than one\n * `EMPTY_CARGOES_LIST` - empty list of loads for orders of type\ \ `DROP` / `DROP_FROM_BOX` / `PICKUP` / `PICKUP_TO_BOX`\n * `CARGO_WORK_VIOLATION`\ \ - for a `WORK` order, the cargo list must be empty\n * `GEODATA_TIME_WINDOW_VIOLATION`\ \ - the planning horizon exceeds the maximum available value\n * `SHIFT_RESTRICTIONS_COULD_BE_MORE_PRECISE`\ \ - the `working_window` of the performer's shift does not lie entirely inside\ \ the availability window `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 * `EXTRA_DURATION_DOES_NOT_FIT_INTO_SOFT_WINDOW`\ \ - additional time for demand execution does not fit into the soft time window\n\ \ * `MAX_CALCULATION_TIME_VIOLATION` - the maximum allowable calculation\ \ time has been exceeded\n * `MAX_WAITING_TIME_VIOLATION` - the maximum allowable\ \ waiting time in queue has been exceeded\n * `INVALID_HARDLINK` - it is\ \ impossible to assign an order with demands with the `WORK` type to transport\n\ \ * `CARGO_BOX_VIOLATION` - for requests of all types except `DROP_FROM_BOX`\ \ the key of the box where the cargo is located must be empty\n * `CARGO_MULTIBOX_VIOLATION`\ \ - for a demand of type `DROP_FROM_BOX` the indicated cargos are in boxes\ \ of different transports\n * `CARGO_CAPACITY_VIOLATION` - the specified\ \ cargo on board exceeds the size of the box in which it is located\n * `CARGO_ORDER_VIOLATION`\ \ - the cargo specified in the order is not present in orders\n * `FEATURE_LIFETIME_VIOLATION`\ \ - feature time windows intersect with each other, or the `working_window`\ \ of the performer's or transport's shift does not intersect with the feature\ \ time window\n * `QUOTA_EXCEEDED` - service quota exceeded\n * `MAX_LOCATIONS_LIMITS_PENALTY_EXCEEDED`\ \ - the resulting solution does not satisfy the `max_locations_limits_penalty`\ \ requirement\n * `REMOVED_ITEMS_NOT_EMPTY` - during data validation, items\ \ were removed from the original dataset, the list of removed items is in\ \ the `removed_items` object\n * `INCOMPATIBLE_REQUIREMENTS` - incompatible\ \ requirements are specified: location load accounting and soft window optimization.\n\ \ * `UNCLASSIFIED_WARNING` - unclassified warning\n" type: string enum: - NO_AVAILABLE_TRANSPORT - NO_AVAILABLE_PERFORMER - NO_COMPATIBLE_TRANSPORT - NO_COMPATIBLE_PERFORMER - NO_AVAILABLE_ORDER_FOR_TRANSPORT - NO_AVAILABLE_ORDER_FOR_PERFORMER - NO_COMPATIBLE_ORDER_FOR_TRANSPORT - NO_COMPATIBLE_ORDER_FOR_PERFORMER - PICKUP_AND_DROP_VIOLATION - PICKUP_AND_DROP_VIOLATION_PRECEDENCE_IN_ORDER - PICKUP_AND_DROP_VIOLATION_PRECEDENCE_IN_TRIP - VIOLATION_PRECEDENCE_IN_TRIP_AND_ORDER - TIME_WINDOW_VIOLATION - DURATION_VIOLATION - ORDER_WINDOWS_INTERSECTION_VIOLATION - PERFORMER_SHIFTS_INTERSECTION_VIOLATION - TRANSPORT_SHIFTS_INTERSECTION_VIOLATION - LOCATION_WINDOWS_INTERSECTION_VIOLATION - NO_TRANSPORT_BOXES - MAX_CAPACITY_VIOLATION - MAX_BOXES_VIOLATION - TOO_MANY_CARGOS_FOR_DROP_VIOLATION - EMPTY_CARGOES_LIST - CARGO_WORK_VIOLATION - GEODATA_TIME_WINDOW_VIOLATION - SHIFT_RESTRICTIONS_COULD_BE_MORE_PRECISE - DURATION_DOES_NOT_FIT_INTO_HARD_WINDOW - DURATION_DOES_NOT_FIT_INTO_SOFT_WINDOW - EXTRA_DURATION_DOES_NOT_FIT_INTO_SOFT_WINDOW - MAX_CALCULATION_TIME_VIOLATION - MAX_WAITING_TIME_VIOLATION - INVALID_HARDLINK - CARGO_BOX_VIOLATION - CARGO_MULTIBOX_VIOLATION - CARGO_CAPACITY_VIOLATION - CARGO_ORDER_VIOLATION - FEATURE_LIFETIME_VIOLATION - QUOTA_EXCEEDED - MAX_LOCATIONS_LIMITS_PENALTY_EXCEEDED - REMOVED_ITEMS_NOT_EMPTY - INCOMPATIBLE_REQUIREMENTS - UNCLASSIFIED_WARNING example: TIME_WINDOW_VIOLATION entity_warning: description: Description of the warning of the input data. type: object additionalProperties: false properties: type: $ref: '#/components/schemas/entity_warning_type' info: description: Information about warning. type: - string - 'null' minLength: 0 maxLength: 2048 example: entity warning entities: description: List of entities related to warning. type: array uniqueItems: false minItems: 0 maxItems: 15001 items: $ref: '#/components/schemas/entity_path' required: - type - entities entity_warning_list: description: Warning list. type: array uniqueItems: false minItems: 0 maxItems: 15001 items: $ref: '#/components/schemas/entity_warning' default: [] universal_400_with_errors_and_warnings: description: Error 400 details. type: object additionalProperties: false properties: tracedata: $ref: '#/components/schemas/tracedata' message: $ref: '#/components/schemas/error_message' schema_errors: $ref: '#/components/schemas/schema_error_list' logical_errors: $ref: '#/components/schemas/entity_error_list' warnings: $ref: '#/components/schemas/entity_warning_list' required: - tracedata general_402: description: Error details for 402 `Payment Required`. type: object additionalProperties: false properties: tracedata: $ref: '#/components/schemas/tracedata' message: $ref: '#/components/schemas/error_message' required: - tracedata general_404_detail: description: Resource details. type: object additionalProperties: false properties: tracedata: $ref: '#/components/schemas/tracedata' required: - tracedata general_404: description: 404 Error details. type: object additionalProperties: false properties: resource_key: description: Resource identifier. type: - string - 'null' default: null minLength: 1 maxLength: 1024 example: resource_key_one detail: description: Resource details if possible. oneOf: - $ref: '#/components/schemas/general_404_detail' - $ref: '#/components/schemas/nullable' default: null general_429: description: Error details for 429 `Too Many Requests`. type: object additionalProperties: false properties: tracedata: $ref: '#/components/schemas/tracedata' message: $ref: '#/components/schemas/error_message' required: - tracedata general_500: description: Error details for 500 `Internal Server Error`. type: object additionalProperties: false properties: tracedata: $ref: '#/components/schemas/tracedata' message: $ref: '#/components/schemas/error_message' required: - tracedata assigned_performer: description: Performer's shift assigned to the specified time (`shift_time`). type: object additionalProperties: 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 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 enum: - AROUND_LOCATION - INSIDE_LOCATION - INSIDE_LOCATION_WINDOW - INSIDE_WORKING_WINDOW - INSIDE_EVENT_HARD_WINDOW - INSIDE_EVENT_SOFT_WINDOW - ON_DEMAND - WAITING - RELOCATING - BREAK - REST - DEPARTURE - ARRIVAL - DURING_ROUNDTRIP example: RELOCATING cargo_action_type: description: "Types of actions with cargo:\n * `ADD` - moving cargo into the\ \ box\n * `REMOVE` - moving cargo from the box\n" type: string enum: - ADD - REMOVE example: ADD cargo_action: description: Action with a cargo. type: object additionalProperties: false properties: box_key: description: Box key. type: string minLength: 1 maxLength: 1024 example: box01 cargo_key: description: Cargo key. type: string minLength: 1 maxLength: 1024 example: cargo01 cargo_action_type: $ref: '#/components/schemas/cargo_action_type' required: - box_key - cargo_key - cargo_action_type cargo_action_list: description: List of actions with cargo in transport at the beginning of the state. type: array uniqueItems: false minItems: 0 maxItems: 1000 items: $ref: '#/components/schemas/cargo_action' default: [] trip_state: description: Trip state. type: object additionalProperties: false properties: time: description: Start time according to the [ISO 8601](https://tools.ietf.org/html/rfc3339#section-5.6). type: string format: date-time example: '2026-04-21T09:30:00+03:00' order_key: description: Key of the order with which an action is taken. type: - string - 'null' default: null minLength: 1 maxLength: 1024 example: order01 demand_key: description: Key of the demand with which an action is taken. type: - string - 'null' default: null minLength: 1 maxLength: 1024 example: demand01.1 event_key: description: Key of the event at which an action is taken. type: - string - 'null' default: null minLength: 1 maxLength: 1024 example: event01 location_key: description: Key of the location at which an action is taken. type: - string - 'null' default: null minLength: 1 maxLength: 1024 example: location_01 roundtrip_key: description: Key of the roundtrip at which an action is taken. type: - string - 'null' default: null minLength: 1 maxLength: 1024 example: roundtrip_01 flags: description: "List of flags, describing current state. \nValues of flags\ \ responsible for geographic location (there can be several flags at the\ \ same time):\n * `AROUND_LOCATION` - the performer is near the location\ \ - in the process of parking or leaving it.\n * `INSIDE_LOCATION` -\ \ the performer is at the location.\n\nValues of flags responsible for\ \ being in time windows (there can be several flags at the same time):\n\ \ * `INSIDE_WORKING_WINDOW` - the performer is inside the working time\ \ window.\n * `INSIDE_LOCATION_WINDOW` - the performer is inside the\ \ working time of the location.\n * `INSIDE_EVENT_HARD_WINDOW` - the\ \ performer is inside the hard time window.\n * `INSIDE_EVENT_SOFT_WINDOW`\ \ - the performer is inside the soft time window.\n\nValues of flags responsible\ \ for actions (there can be only one flag at a time):\n * `ON_DEMAND`\ \ - the performer has started working on the request.\n * `WAITING` -\ \ the performer has started waiting.\n * `RELOCATING` - the performer\ \ has started moving to the next stop.\n * `BREAK` - the performer has\ \ started a break.\n * `REST` - the performer has started a long rest.\n\ \ * `ARRIVAL` - the performer has started parking.\n * `DEPARTURE` -\ \ the performer has finished leaving the parking lot.\n\nThe values of\ \ the flags responsible for the logical state:\n * `DURING_ROUNDTRIP`\ \ - the performer is making a roundtrip.\n" type: array uniqueItems: true minItems: 0 maxItems: 9 items: $ref: '#/components/schemas/trip_state_flag' cargo_actions: $ref: '#/components/schemas/cargo_action_list' distance: description: Cumulative distance from the start of the trip, in meters. type: integer format: int32 minimum: 0 maximum: 4000000000 default: 0 example: 5200 cost: description: Cumulative cost from the start of the trip, calculated based on the performers' and transport tariffs. type: number format: double minimum: 0 maximum: 10000000000 default: 0 example: 1231.1 reward: description: Cumulative reward from the start of the trip for orders fulfillment. type: number format: double minimum: 0 maximum: 10000000000 default: 0 example: 2343.3 attributes: $ref: '#/components/schemas/attributes' required: - time - flags trip_state_list: description: List of performer's states. type: array uniqueItems: false minItems: 0 maxItems: 15001 items: $ref: '#/components/schemas/trip_state' trip_waitlist: description: 'List of order keys assigned to the performer, but not scheduled for a specific time and not taken into account in the transport load. ' type: array uniqueItems: true minItems: 0 maxItems: 15001 items: description: Order key. type: string minLength: 1 maxLength: 1024 default: [] example: - order02 trip: description: 'A trip is a set of works planned to be performed by a specific performer on a specific transport, expressed through a [change in the states](#section/Description/Trip-model) of the performer. ' type: object additionalProperties: false properties: key: description: Unique trip identifier. type: string minLength: 1 maxLength: 1024 example: trip-0000-9999 performer: $ref: '#/components/schemas/assigned_performer' transport: $ref: '#/components/schemas/assigned_transport' states: $ref: '#/components/schemas/trip_state_list' waitlist: $ref: '#/components/schemas/trip_waitlist' name: $ref: '#/components/schemas/name' attributes: $ref: '#/components/schemas/attributes' required: - key - performer - transport - states trip_list: description: 'Trip list. A trip is a set of works planned to be performed by a specific performer on a specific transport, expressed through a [change in the states](#section/Description/Trip-model) of the performer. ' type: array uniqueItems: true minItems: 0 maxItems: 15001 items: $ref: '#/components/schemas/trip' measurements: description: 'Measurements of times and distances for work on location, individual trips and planning in general. ' type: object additionalProperties: false properties: time_window: $ref: '#/components/schemas/time_window' driving_time: $ref: '#/components/schemas/time_duration' waiting_time: $ref: '#/components/schemas/time_duration' working_time: $ref: '#/components/schemas/time_duration' break_time: $ref: '#/components/schemas/time_duration' rest_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 maximum: 4000000000 example: 5200 required: - time_window - driving_time - waiting_time - working_time - break_time - rest_time - arriving_time - departure_time - total_time - distance capacity_statistics_sum: description: Statistics on capacity characteristics. type: object additionalProperties: false properties: mass: description: Total weight in kilograms. type: number format: double minimum: 0 maximum: 1000000000 example: 105500 volume: description: Total volume in cubic meters. type: number format: double minimum: 0 maximum: 1000000000 example: 220034 capacity_a: description: Amount for additional parameter (A) for measuring loads in alternative units of measurement. type: number format: double minimum: 0 maximum: 1000000000 example: 100000 capacity_b: description: Amount for additional parameter (B) for measuring loads in alternative units of measurement. type: number format: double minimum: 0 maximum: 1000000000 example: 200000 capacity_c: description: Amount for additional parameter (C) for measuring loads in alternative units of measurement. type: number format: double minimum: 0 maximum: 1000000000 example: 300000 required: - mass - volume - capacity_a - capacity_b - capacity_c capacity_statistics_ratio: description: Statistics on capacity characteristics (ratio). It may be more than one. type: object additionalProperties: false properties: mass: description: Loading by mass, in fractions of a unit. type: number format: double minimum: 0 maximum: 1000 example: 5.5 volume: description: Loading by volume, in fractions of a unit. type: number format: double minimum: 0 maximum: 1000 example: 4.1 capacity_a: description: Loading by additional parameter (A), in fractions of a unit. type: number format: double minimum: 0 maximum: 1000 example: 3.7 capacity_b: description: Loading by additional parameter (B), in fractions of a unit. type: number format: double minimum: 0 maximum: 1000 example: 2.8 capacity_c: description: Loading by additional parameter (C), in fractions of a unit. type: number format: double minimum: 0 maximum: 1000 example: 2.9 required: - mass - volume - capacity_a - capacity_b - capacity_c capacity_statistics_load: description: Statistics on capacity characteristics (ratio). Cannot be greater than one. type: object additionalProperties: false properties: mass: description: Loading by mass, in fractions of a unit. type: number format: double minimum: 0 maximum: 1 example: 0.5 volume: description: Loading by volume, in fractions of a unit. type: number format: double minimum: 0 maximum: 1 example: 0.1 capacity_a: description: Loading by additional parameter (A), in fractions of a unit. type: number format: double minimum: 0 maximum: 1 example: 0.7 capacity_b: description: Loading by additional parameter (B), in fractions of a unit. type: number format: double minimum: 0 maximum: 1 example: 0.8 capacity_c: description: Loading by additional parameter (C), in fractions of a unit. type: number format: double minimum: 0 maximum: 1 example: 0.9 required: - mass - volume - capacity_a - capacity_b - capacity_c general_statistics: description: Summary statistics for one or a set of trips. type: object additionalProperties: false properties: cost: description: 'Total cost calculated based on the performer''s and transport tariffs. ' type: number format: double minimum: 0 maximum: 1000000000000 example: 1231.1 reward: description: The total reward for orders fulfillment. type: number format: double minimum: 0 maximum: 1000000000000 example: 2343.3 profit: description: 'The total profit is equal to the difference between the total reward (`reward`) and cost (`cost`). ' type: number format: double minimum: -1000000000000 maximum: 1000000000000 example: 1231.1 measurements: $ref: '#/components/schemas/measurements' description: "Measurements of times and distances for aggregate and individual\ \ trips:\n\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 * `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 * `break_time`\ \ - total break time for all locations\n * `rest_time` - total rest time\ \ for all locations\n * `arriving_time` - total time to drive / park\ \ at locations\n * `departure_time` - total time for departure from locations\n\ \ * `total_time` - total time, composed of `driving_time` + `waiting_time`\ \ + `working_time` + `break_time` + `rest_time` + `arriving_time` + `departure_time`\n\ \ * `distance` - the total length of the roundtrip/trip/set of trips,\ \ in meters\n" trips_count: description: The total number of planned trips. type: integer format: int32 minimum: 0 maximum: 15001 example: 250 performers_count: description: The total number of performers involved in orders fulfillment. type: integer format: int32 minimum: 0 maximum: 15001 example: 157 orders_count: description: The total number of planned and assigned orders. type: integer format: int32 minimum: 0 maximum: 15001 example: 1700 plan_orders_count: description: The total number of planned orders. type: integer format: int32 minimum: 0 maximum: 15001 example: 1003 waitlist_orders_count: description: The total number of assigned orders. type: integer format: int32 minimum: 0 maximum: 15001 example: 697 stops_count: description: The total number of stops (non-unique locations). type: integer format: int32 minimum: 0 maximum: 15001000 example: 87 locations_count: description: 'The total number of unique locations within one trip. For general statistics - the sum of unique locations within each trip. ' type: integer format: int32 minimum: 0 maximum: 15001000 example: 45 cargo_capacity_sum: $ref: '#/components/schemas/capacity_statistics_sum' description: Total additive measures of the transported cargo. cargo_capacity_ratio: $ref: '#/components/schemas/capacity_statistics_ratio' description: 'The ratio of the total additive measures of the transported cargo to the total capacity of the boxes. In fractions of a unit. It may be more than one. ' max_transport_load: $ref: '#/components/schemas/capacity_statistics_load' description: 'The ratio of the maximum load of boxes to the total capacity of boxes. In fractions of a unit. Cannot be greater than one. ' average_speed: description: Average speed is the ratio of the total distance to the total time of movement, km/h. type: number format: double minimum: 0 maximum: 1000000000000 example: 43.1 round_trips_count: description: Number of [roundtrips](#section/Description/Roundtrips) within a trip. type: integer format: int32 minimum: 0 maximum: 15001 example: 2 average_roundtrip_distance: description: Average mileage per roundtrip is the ratio of the total mileage per trip to the number of roundtrips, in meters. type: number format: double minimum: 0 maximum: 1000000000000 example: 23.4 average_roundtrip_time: $ref: '#/components/schemas/time_duration' description: Average roundtrip time is the ratio of the total time to the number of roundtrips. attributes: $ref: '#/components/schemas/attributes' required: - cost - reward - profit - measurements - trips_count - performers_count - orders_count - plan_orders_count - waitlist_orders_count - stops_count - locations_count - cargo_capacity_sum - cargo_capacity_ratio - max_transport_load - average_speed - round_trips_count - average_roundtrip_distance - average_roundtrip_time transport_load: description: Total transport load. type: object additionalProperties: false properties: count: description: Number of cargos. type: integer format: int32 minimum: 0 maximum: 15001 example: 1460 capacity: $ref: '#/components/schemas/capacity_statistics_sum' required: - count - capacity load_statistics: description: 'Statistics for a transport load. ' type: object additionalProperties: false properties: 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 over the entire trip duration while in motion (for each dimension). required: - total_load - max_load - max_transfer_load stop_demand: description: An demand made for a specific stop. type: object additionalProperties: false properties: demand_key: description: Demand key. type: string minLength: 1 maxLength: 1024 example: demand_key_01 event_key: description: Event key. type: string minLength: 1 maxLength: 1024 example: event_key_01 demand_time_window: $ref: '#/components/schemas/time_window' description: Time window for completing the demand. required: - demand_key - event_key - demand_time_window stop_statistics: description: 'Statistics for a specific stop during a trip. ' type: object additionalProperties: false properties: location_key: description: Location key for stop. type: string minLength: 1 maxLength: 1024 example: location_01 stop_demands: description: List of orders completed at this stop. type: array minItems: 0 maxItems: 15001 uniqueItems: false items: $ref: '#/components/schemas/stop_demand' stop_time_window: $ref: '#/components/schemas/time_window' description: 'Stop time window - from the beginning of the parking lot to the complete departure from the location. The window duration is `waiting_time` + `working_time` + `break_time` + `rest_time` + `arriving_time` + `departure_time`. ' measurements: $ref: '#/components/schemas/measurements' description: "Measurements of times and distances for work on location:\n\ \n * `time_window` - the time window from the start of movement to the\ \ stop until the end of the departure from the stop\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 * `break_time` - duration of the performer's break\n\ \ * `rest_time` - duration of rest for the performer\n * `arriving_time`\ \ - the time spent on the entrance/parking at the location\n * `departure_time`\ \ - the time taken to leave the location\n * `total_time` - total time\ \ for a stop, composed of `driving_time` + `waiting_time` + `working_time`\ \ + `break_time` + `rest_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. attributes: $ref: '#/components/schemas/attributes' required: - location_key - stop_demands - stop_time_window - measurements - upload - download - max_load - arrival_load - departure_load stop_statistics_list: description: Statistics per stop during the trip. type: array uniqueItems: false minItems: 0 maxItems: 15001 items: $ref: '#/components/schemas/stop_statistics' default: [] roundtrip_statistics: description: 'Statistics for roundtrip. ' type: object additionalProperties: false properties: roundtrip_key: description: Roundtrip key. type: string minLength: 1 maxLength: 1024 example: trip_01_round_02 general_statistics: $ref: '#/components/schemas/general_statistics' description: General statistics for roundtrip. required: - roundtrip_key - general_statistics roundtrip_statistics_list: description: Statistics per roundtrip during the trip. type: array uniqueItems: false minItems: 0 maxItems: 15001 items: $ref: '#/components/schemas/roundtrip_statistics' default: [] trip_statistics: description: 'Statistics for a specific trip. ' type: object additionalProperties: false properties: trip_key: description: Trip key, unique identifier type: string minLength: 1 maxLength: 1024 example: trip01 general_statistics: $ref: '#/components/schemas/general_statistics' description: General statistics for trip. load_statistics: $ref: '#/components/schemas/load_statistics' stop_statistics: $ref: '#/components/schemas/stop_statistics_list' roundtrip_statistics: $ref: '#/components/schemas/roundtrip_statistics_list' attributes: $ref: '#/components/schemas/attributes' required: - trip_key - general_statistics - load_statistics - stop_statistics - roundtrip_statistics trip_statistics_list: description: 'List of statistics for each scheduled trip separately. ' type: array uniqueItems: true minItems: 0 maxItems: 15001 items: $ref: '#/components/schemas/trip_statistics' location_limit_statistics: description: 'Statistics on the implementation of location capacity limits within one time window. ' type: object additionalProperties: false properties: location_limit_key: description: Location limit key, unique identifier. type: string minLength: 1 maxLength: 1024 example: location_limit_constraint_01 cargos_statistics: $ref: '#/components/schemas/location_cargos_limit' description: For time window - the amount of measures of cargos moved and the amount of fines for violating restrictions on the movement of cargos. transports_statistics: $ref: '#/components/schemas/location_transports_limit' description: For time window - the number of transports serviced on average during a specified time window and the amount of fines for violating transport service restrictions. location_limit_penalty: description: The amount of fines for violating the location's capacity within the limit. type: number format: double minimum: 0 maximum: 1000000000 example: 25000 required: - location_limit_key - location_limit_penalty - cargos_statistics - transports_statistics location_statistics: description: Statistics for a specific trip. type: object additionalProperties: false properties: location_key: description: Location key. type: string minLength: 1 maxLength: 1024 example: location_01 location_limits_penalty: description: Amount of fines for violating location's capacity limit. type: number format: double minimum: 0 maximum: 1000000000 example: 25000 total_cargos_statistics: $ref: '#/components/schemas/location_cargos_limit' description: For location - The amount of measures of cargos moved and the amount of fines for violating restrictions on the movement of cargos. deprecated: true total_transports_statistics: $ref: '#/components/schemas/location_transports_limit' description: For location - the number of transports serviced on average during a specified time window and the amount of fines for violating transport service restrictions. deprecated: true limits_statistics: description: Location capacity limit statistics. type: array uniqueItems: false minItems: 0 maxItems: 48 items: $ref: '#/components/schemas/location_limit_statistics' required: - location_key - location_limits_penalty - total_cargos_statistics - total_transports_statistics - limits_statistics location_statistics_list: description: Statistics on the loading of locations for which bandwidth restrictions have been set. type: array minItems: 0 maxItems: 15001 uniqueItems: false items: $ref: '#/components/schemas/location_statistics' default: [] task_statistics: description: General statistics on input data. type: object additionalProperties: false properties: planning_horizon: $ref: '#/components/schemas/time_window' description: "Planning horizon is a time window where:\n * `from` - the\ \ left border of the time windows of all entities from the input data\n\ \ * `to` - the right border of the time windows of all entities from\ \ the input data\n" required: - planning_horizon time_window_violation_detail: description: Time window violation detail information. type: object additionalProperties: false properties: demand_keys: description: List of object's keys. type: array uniqueItems: true minItems: 0 maxItems: 15001 items: description: Demand's key. type: string minLength: 1 maxLength: 1024 example: - obj1 count: description: The total number of demands. type: integer format: int32 minimum: 0 maximum: 15001 example: 1700 required: - demand_keys - count time_window_violations: description: 'Statistics of time window violation. ' type: object additionalProperties: false properties: before: $ref: '#/components/schemas/time_window_violation_detail' description: Count and order's keys, what planned before permitted time window. after: $ref: '#/components/schemas/time_window_violation_detail' description: Count and order's keys, what planned after permitted time window. required: - before - after quality: description: Quality metrics. type: object additionalProperties: false properties: locations_limits_penalty: description: Amount of fines for violating location's capacity limit. type: number format: double minimum: 0 maximum: 1000000000 example: 25000 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: - locations_limits_penalty - soft_time_window_violations - hard_time_window_violations plan_statistics: description: 'General statistics on the calculation result. ' type: object additionalProperties: false properties: total_statistics: $ref: '#/components/schemas/general_statistics' trips_statistics: $ref: '#/components/schemas/trip_statistics_list' locations_statistics: $ref: '#/components/schemas/location_statistics_list' task_statistics: $ref: '#/components/schemas/task_statistics' quality: $ref: '#/components/schemas/quality' required: - total_statistics - trips_statistics - locations_statistics - task_statistics - quality additional_attributes_element: description: Additional attributes for target essence. type: object additionalProperties: false properties: target_key: description: Key, unique identifier. type: string minLength: 1 maxLength: 1024 example: essence_key_01 attributes: $ref: '#/components/schemas/attributes' required: - target_key - attributes additional_attributes_element_list: description: Essences keys list. type: array uniqueItems: true minItems: 0 maxItems: 15001 items: $ref: '#/components/schemas/additional_attributes_element' default: [] additional_attributes: description: Additional attributes. type: object additionalProperties: false properties: location_attributes: $ref: '#/components/schemas/additional_attributes_element_list' description: Additional attributes for locations. order_attributes: $ref: '#/components/schemas/additional_attributes_element_list' description: Additional attributes for orders. performer_attributes: $ref: '#/components/schemas/additional_attributes_element_list' description: Additional attributes for performers. transport_attributes: $ref: '#/components/schemas/additional_attributes_element_list' description: Additional attributes for transports. item_keys: description: Essences keys list. type: array uniqueItems: true minItems: 0 maxItems: 15001 items: description: Key, unique identifier. type: string minLength: 1 maxLength: 1024 example: essence_key_01 item_keys_count: description: Essences count. type: integer format: int32 minimum: 0 maximum: 15001 default: 0 example: 99 unplanned_items: description: Information about unplanned essences. type: object additionalProperties: false properties: order_keys: $ref: '#/components/schemas/item_keys' description: Unplanned order keys list. order_keys_count: $ref: '#/components/schemas/item_keys_count' description: Unplanned orders count. performer_keys: $ref: '#/components/schemas/item_keys' description: List of performer keys not participating in any trip. performer_keys_count: $ref: '#/components/schemas/item_keys_count' description: Number of unplanned performers. transport_keys: $ref: '#/components/schemas/item_keys' description: List of transport keys not participating in any trip. transport_keys_count: $ref: '#/components/schemas/item_keys_count' description: Number of unplanned transports. hardlink_keys: $ref: '#/components/schemas/item_keys' description: List of hardlink keys not participating in any trip. hardlink_keys_count: $ref: '#/components/schemas/item_keys_count' description: Unplanned hardlinks count. removed_items: description: Information about removed essences. type: object additionalProperties: false properties: location_keys: $ref: '#/components/schemas/item_keys' description: Removed location keys list. location_keys_count: $ref: '#/components/schemas/item_keys_count' description: Removed location count. order_keys: $ref: '#/components/schemas/item_keys' description: Removed order keys list. order_keys_count: $ref: '#/components/schemas/item_keys_count' description: Removed orders count. performer_keys: $ref: '#/components/schemas/item_keys' description: Removed performer keys list. performer_keys_count: $ref: '#/components/schemas/item_keys_count' description: Removed performers count. transport_keys: $ref: '#/components/schemas/item_keys' description: Removed transport keys list. transport_keys_count: $ref: '#/components/schemas/item_keys_count' description: Removed transports count. hardlink_keys: $ref: '#/components/schemas/item_keys' description: Removed hardlink keys list. hardlink_keys_count: $ref: '#/components/schemas/item_keys_count' description: Removed hardlinks count. fact_keys: $ref: '#/components/schemas/item_keys' description: Removed fact keys list. fact_keys_count: $ref: '#/components/schemas/item_keys_count' description: Removed facts count. 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 be launched.\n * `IN_PROGRESS` - calculation in progress.\n * `FINISHED_IN_TIME`\ \ - the calculation completed correctly before the specified maximum time.\n\ \ * `FINISHED_OUT_OF_TIME` - the calculation ended because the specified\ \ time for calculation has expired, which can affect the quality of the result\ \ for the worse.\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\ \ * `CANCELED_BY_QUOTA` - the calculation was canceled because the quota\ \ for this calculation type was exceeded.\n * `FAILED` - calculation completed\ \ with an error.\n" type: string enum: - WAITING - IN_PROGRESS - FINISHED_IN_TIME - FINISHED_OUT_OF_TIME - CANCELED - CANCELED_BY_TIMEOUT - CANCELED_BY_QUOTA - FAILED example: FINISHED_IN_TIME calculation_info: description: Calculation information. type: object additionalProperties: false properties: status: $ref: '#/components/schemas/calculation_status' message: description: Message with additional information about the calculation status. type: - string - 'null' minLength: 0 maxLength: 10000 default: null example: detail error message result_version: description: Planning result version. type: integer format: int32 minimum: 0 maximum: 1000000 example: 133 preparing_time: $ref: '#/components/schemas/time_duration' description: Time to prepare for calculation, format [ISO 8601 duration](https://en.wikipedia.org/wiki/ISO_8601#Durations). business_validation_time: $ref: '#/components/schemas/time_duration' description: Business validation duration, format [ISO 8601 duration](https://en.wikipedia.org/wiki/ISO_8601#Durations). math_validation_time: $ref: '#/components/schemas/time_duration' description: Math validation duration, format [ISO 8601 duration](https://en.wikipedia.org/wiki/ISO_8601#Durations). waiting_time: $ref: '#/components/schemas/time_duration' description: Time to waiting for calculation, format [ISO 8601 duration](https://en.wikipedia.org/wiki/ISO_8601#Durations). calculation_time: $ref: '#/components/schemas/time_duration' description: Actual calculation time, format [ISO 8601 duration](https://en.wikipedia.org/wiki/ISO_8601#Durations). postprocessing_time: $ref: '#/components/schemas/time_duration' description: Post-processing time calculation using Universal Extension, format [ISO 8601 duration](https://en.wikipedia.org/wiki/ISO_8601#Durations). required: - status - result_version - preparing_time - business_validation_time - math_validation_time - waiting_time - calculation_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: $ref: '#/components/schemas/trip_list' statistics: $ref: '#/components/schemas/plan_statistics' additional_attributes: description: Additional attributes. oneOf: - $ref: '#/components/schemas/additional_attributes' - $ref: '#/components/schemas/nullable' default: null warnings: $ref: '#/components/schemas/entity_warning_list' unplanned_items: $ref: '#/components/schemas/unplanned_items' removed_items: $ref: '#/components/schemas/removed_items' calculation_progress: $ref: '#/components/schemas/calculation_progress' calculation_info: $ref: '#/components/schemas/calculation_info' required: - tracedata - trips - statistics - calculation_progress - calculation_info calculation_state: description: Current calculation state. type: object additionalProperties: false properties: tracedata: $ref: '#/components/schemas/tracedata' calculation_progress: $ref: '#/components/schemas/calculation_progress' calculation_info: $ref: '#/components/schemas/calculation_info' required: - tracedata - calculation_progress - calculation_info validate_result: description: Data validation result. type: object additionalProperties: false properties: tracedata: $ref: '#/components/schemas/tracedata' warnings: $ref: '#/components/schemas/entity_warning_list' required: - tracedata - warnings refine_result: description: 'Refine result. ' type: object additionalProperties: false properties: tracedata: $ref: '#/components/schemas/tracedata' plan_task: $ref: '#/components/schemas/plan_task' warnings: $ref: '#/components/schemas/entity_warning_list' removed_items: $ref: '#/components/schemas/removed_items' required: - tracedata - plan_task trip_list_required: description: 'Trip list. A trip is a set of works planned to be performed by a specific performer on a specific transport, expressed through a [change in the states](#section/Description/Trip-model) of the performer. ' type: array uniqueItems: true minItems: 1 maxItems: 15001 items: $ref: '#/components/schemas/trip' statistics_task: description: Task for recalculating statistics. type: object additionalProperties: false properties: locations: $ref: '#/components/schemas/location_list_required' orders: $ref: '#/components/schemas/order_list_required' performers: $ref: '#/components/schemas/performer_list_required' transports: $ref: '#/components/schemas/transport_list_required' hardlinks: $ref: '#/components/schemas/hardlink_list' trips: $ref: '#/components/schemas/trip_list_required' plan_settings: $ref: '#/components/schemas/plan_settings' external_routing: $ref: '#/components/schemas/routing_transport_matrix_list' dataset_name: $ref: '#/components/schemas/dataset_name' required: - locations - orders - performers - transports - trips fact_type: description: "Possible fact types:\n * `NEW_LOCATION` - the performer changed\ \ his location during the trip\n * `ORDER_DONE` - the performer has finished\ \ fulfilling the order (or the order has been cancelled), the cargo associated\ \ with the order is no longer in the transport box\n * `DEMAND_START` - performer\ \ started to fulfill the demand\n * `DEMAND_DONE` - performer finished to\ \ fulfill the demand\n * `DEMAND_CANCELED` - the performer canceled the demand\n\ \ * `TRIP_PRECEDENCE_CHANGED` - the performer changed the precedence of the\ \ demands in the trip\n * `TRIP_RECEIVED` - the performer has received the\ \ trip\n * `TRIP_CONFIRMED` - the performer has agreed to perform the trip\n\ \ * `TRIP_REJECTED` - the performer has refused to perform the trip\n *\ \ `TRIP_EXECUTING` - the performer has started performing the trip\n * `JOB_DONE`\ \ - the performer has finished custom job\n" type: string enum: - NEW_LOCATION - ORDER_DONE - DEMAND_START - DEMAND_DONE - DEMAND_CANCELED - TRIP_PRECEDENCE_CHANGED - TRIP_RECEIVED - TRIP_CONFIRMED - TRIP_REJECTED - TRIP_EXECUTING - JOB_DONE example: NEW_LOCATION fact_status: description: "Current fact status:\n * `NEW` - the fact has been created and\ \ is awaiting system processing\n * `APPLIED` - the fact has been processed\ \ by the system and applied to the data\n * `ERROR` - an error occurred while\ \ processing the fact; the sender must correct the fact and resubmit\n" type: string enum: - NEW - APPLIED - ERROR default: NEW example: APPLIED trackpoint: description: A geographic point with a time reference. type: object additionalProperties: 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 time: description: Date and time in the [ISO 8601](https://tools.ietf.org/html/rfc3339#section-5.6) format. type: - string - 'null' format: date-time default: null example: '2026-04-21T09:30:00+03:00' required: - latitude - longitude geotrack: description: An array of geographic points with time reference between which a path is built. type: array uniqueItems: false minItems: 0 maxItems: 1000000 items: $ref: '#/components/schemas/trackpoint' default: [] lore_new_location: description: Additional data describing the fact. type: object additionalProperties: false properties: performer_key: description: Performer key. type: string minLength: 1 maxLength: 1024 example: performer_01 geotrack: $ref: '#/components/schemas/geotrack' required: - performer_key - geotrack lore_order_done: description: Additional data describing the fact. type: object additionalProperties: false properties: order_key: description: Order key. type: string minLength: 1 maxLength: 1024 example: order_01 required: - order_key lore_demand_start: description: Additional data describing the fact. type: object additionalProperties: false properties: 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: order_01_demand_01 required: - order_key - demand_key lore_demand_done: description: Additional data describing the fact. type: object additionalProperties: false properties: 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: order_01_demand_01 required: - order_key - demand_key lore_demand_cancelled: description: Additional data describing the fact. type: object additionalProperties: false properties: 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: order_01_demand_01 required: - order_key - demand_key trip_demand_precedence: description: New precedence of demand in the trip. type: object additionalProperties: false properties: 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: order_01_demand_01 new_precedence_in_trip: description: New precedence of demand in the trip. type: integer format: int32 minimum: 0 maximum: 15001 example: 1 required: - order_key - demand_key - new_precedence_in_trip lore_trip_precedence_changed: description: Additional data describing the fact. type: object additionalProperties: false properties: demands_precedence: description: New precedence of demands in the trip. type: array uniqueItems: false minItems: 1 maxItems: 15001 items: $ref: '#/components/schemas/trip_demand_precedence' required: - demands_precedence basic_essence_key: description: Essence key, unique identifier. type: string minLength: 1 maxLength: 1024 example: key01 lore_job_done: description: Additional data describing the fact. type: object additionalProperties: false properties: job_key: $ref: '#/components/schemas/basic_essence_key' required: - job_key fact_lore: description: Additional data describing the fact. type: object additionalProperties: false properties: new_location: description: Additional data describing the `NEW_LOCATION` fact. oneOf: - $ref: '#/components/schemas/lore_new_location' - $ref: '#/components/schemas/nullable' default: null order_done: description: Additional data describing the `ORDER_DONE` fact. oneOf: - $ref: '#/components/schemas/lore_order_done' - $ref: '#/components/schemas/nullable' default: null demand_start: description: Additional data describing the `DEMAND_START` fact. oneOf: - $ref: '#/components/schemas/lore_demand_start' - $ref: '#/components/schemas/nullable' default: null demand_done: description: Additional data describing the `DEMAND_DONE` fact. oneOf: - $ref: '#/components/schemas/lore_demand_done' - $ref: '#/components/schemas/nullable' default: null demand_cancelled: description: Additional data describing the `DEMAND_CANCELLED` fact. oneOf: - $ref: '#/components/schemas/lore_demand_cancelled' - $ref: '#/components/schemas/nullable' default: null demand_precedence: description: Additional data describing the `TRIP_PRECEDENCE_CHANGED` fact. oneOf: - $ref: '#/components/schemas/lore_trip_precedence_changed' - $ref: '#/components/schemas/nullable' default: null job_done: description: Additional data describing the `JOB_DONE` fact. oneOf: - $ref: '#/components/schemas/lore_job_done' - $ref: '#/components/schemas/nullable' default: null fact: description: Fact is an action completed during the execution of a trip. type: object additionalProperties: false properties: key: description: Fact key. type: string minLength: 1 maxLength: 1024 example: fact_01 type: $ref: '#/components/schemas/fact_type' creation_date: description: Fact creation date and time in the [ISO 8601](https://tools.ietf.org/html/rfc3339#section-5.6) format. type: string format: date-time example: '2026-04-21T09:30:00+03:00' reception_date: description: Date and time of receipt of the fact by the server in the [ISO 8601](https://tools.ietf.org/html/rfc3339#section-5.6) format. type: - string - 'null' default: null format: date-time example: '2026-04-21T09:33:00+03:00' execution_date: description: Date and time of execution the fact by the server in the [ISO 8601](https://tools.ietf.org/html/rfc3339#section-5.6) format. type: - string - 'null' default: null format: date-time example: '2026-04-21T09:35:00+03:00' status: $ref: '#/components/schemas/fact_status' status_detail: description: Additional information about the fact status, used to clarify fact processing errors. type: - string - 'null' default: null minLength: 1 maxLength: 1024 example: duplicate fact trip_key: description: The trip key to which the fact applies. type: string minLength: 1 maxLength: 1024 example: trip_01 lore: description: "Additional data describing the fact. This field is required\ \ for the following fact types:\n * `NEW_LOCATION`\n * `ORDER_DONE`\n\ \ * `DEMAND_START`\n * `DEMAND_DONE`\n * `DEMAND_CANCELED`\n * `TRIP_PRECEDENCE_CHANGED`\n\ \ * `JOB_DONE`\n" oneOf: - $ref: '#/components/schemas/fact_lore' - $ref: '#/components/schemas/nullable' default: null attributes: $ref: '#/components/schemas/attributes' required: - key - creation_date - type - status - trip_key fact_list: description: 'Trip list. A fact is an event that has occurred that affects further trip operations. ' type: array uniqueItems: true minItems: 0 maxItems: 15001 items: $ref: '#/components/schemas/fact' actualize_settings: description: 'Actualize settings. ' type: object additionalProperties: false properties: current_time: description: 'Current date and time according to the [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 - 'null' format: date-time default: null example: '2026-04-21T09:30:00+03:00' max_delay_duration: description: 'Acceptable delay. Affects the shift of the right boundaries of hard time windows of orders and time windows of work shifts of performers and transports. ' type: string format: duration x-custom-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: PT3H example: PT1H30M actualize_task: description: 'Task for the trips actualization. ' type: object additionalProperties: false properties: locations: $ref: '#/components/schemas/location_list_required' orders: $ref: '#/components/schemas/order_list_required' performers: $ref: '#/components/schemas/performer_list_required' transports: $ref: '#/components/schemas/transport_list_required' trips: $ref: '#/components/schemas/trip_list_required' facts: $ref: '#/components/schemas/fact_list' external_routing: $ref: '#/components/schemas/routing_transport_matrix_list' plan_settings: $ref: '#/components/schemas/plan_settings' actualize_settings: $ref: '#/components/schemas/actualize_settings' dataset_name: $ref: '#/components/schemas/dataset_name' required: - locations - orders - performers - transports - trips replan_strategy: description: Replan strategy. type: object additionalProperties: false properties: reorder: description: Activate trip actions reorder. type: boolean default: false example: true plan_new_orders: description: Ability to plan new orders into existing or new trips (if the `create_new_trips` option is enabled). 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 properties: replan_strategy: $ref: '#/components/schemas/replan_strategy' replan_task: description: Task for replanning. type: object additionalProperties: false properties: locations: $ref: '#/components/schemas/location_list_required' orders: $ref: '#/components/schemas/order_list_required' performers: $ref: '#/components/schemas/performer_list_required' transports: $ref: '#/components/schemas/transport_list_required' hardlinks: $ref: '#/components/schemas/hardlink_list' trips: $ref: '#/components/schemas/trip_list_required' facts: $ref: '#/components/schemas/fact_list' external_routing: $ref: '#/components/schemas/routing_transport_matrix_list' plan_settings: $ref: '#/components/schemas/plan_settings' actualize_settings: $ref: '#/components/schemas/actualize_settings' replan_settings: $ref: '#/components/schemas/replan_settings' dataset_name: $ref: '#/components/schemas/dataset_name' required: - locations - orders - performers - transports - trips location_list: description: List of locations used for orders and shifts. type: array uniqueItems: true minItems: 0 maxItems: 15001 items: $ref: '#/components/schemas/location' order_list: description: List of orders that need to be completed. type: array uniqueItems: true minItems: 0 maxItems: 15001 items: $ref: '#/components/schemas/order' performer_list: description: 'Available performers list. The performer fulfills orders using transport. ' type: array uniqueItems: true minItems: 0 maxItems: 15001 items: $ref: '#/components/schemas/performer' transport_list: description: 'Available transports list. Transport is used by the trip performer to fulfill orders. ' type: array uniqueItems: true minItems: 0 maxItems: 15001 items: $ref: '#/components/schemas/transport' 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: $ref: '#/components/schemas/location_list' orders: $ref: '#/components/schemas/order_list' performers: $ref: '#/components/schemas/performer_list' transports: $ref: '#/components/schemas/transport_list' hardlinks: $ref: '#/components/schemas/hardlink_list' trips: $ref: '#/components/schemas/trip_list' facts: $ref: '#/components/schemas/fact_list' statistics: description: General statistics on the calculation result. oneOf: - $ref: '#/components/schemas/plan_statistics' - $ref: '#/components/schemas/nullable' default: null external_routing: $ref: '#/components/schemas/routing_transport_matrix_list' plan_settings: $ref: '#/components/schemas/plan_settings' replan_settings: $ref: '#/components/schemas/replan_settings' actualize_settings: $ref: '#/components/schemas/actualize_settings' dataset_name: $ref: '#/components/schemas/dataset_name' file_xlsx: description: File with data in [XLSX](https://en.wikipedia.org/wiki/Microsoft_Excel) format. type: string format: byte general_403: description: Error details for 403 `Forbidden`. type: object additionalProperties: false properties: tracedata: $ref: '#/components/schemas/tracedata' message: $ref: '#/components/schemas/error_message' required: - tracedata file_text: description: File with data in text format. type: string minLength: 0 maxLength: 2000000000 check_result: description: Service availability result. type: object additionalProperties: false properties: health: description: "The current health indicator of the service.\n * `0.0` means\ \ the service is not ready to perform tasks.\n * `1.0` means the service\ \ is fully ready to perform tasks.\n" 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: 7 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: 15 build: description: "Build version. \nContains backwards compatible bug fixes\ \ and docs update.\n" type: string minLength: 1 maxLength: 64 example: 3754RC required: - major - minor - build file_html: description: File with data in [HTML](https://html.spec.whatwg.org/) format. type: string minLength: 0 maxLength: 2000000000 file_json: description: File with data in [JSON](https://www.json.org/) format. type: string minLength: 0 maxLength: 2000000000 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: '2026-04-08T05:00:00+00:00' to: '2026-04-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: '2026-04-07T21:00:00+00:00' to: '2026-04-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: '2026-04-08T05:00:00+00:00' to: '2026-04-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: '2026-04-07T21:00:00+00:00' to: '2026-04-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: '2026-04-08T05:00:00+00:00' to: '2026-04-08T07:00:00+00:00' performers: - key: performer_1 shifts: - key: performer_1_shift availability_time: from: '2026-04-07T21:00:00+00:00' to: '2026-04-08T20:59:59+00:00' working_time: from: '2026-04-07T21:00:00+00:00' to: '2026-04-08T20:59:59+00:00' tariff: cost_per_shift: 1000 constraints: - stage_length: PT10H cost_per_unit: 1 transports: - key: transport_1 shifts: - key: transport_1_shift availability_time: from: '2026-04-07T21:00:00+00:00' to: '2026-04-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: '2026-04-08T05:00:00+00:00' to: '2026-04-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: '2026-04-07T21:00:00+00:00' to: '2026-04-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: '2026-04-08T05:00:00+00:00' to: '2026-04-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: '2026-04-07T21:00:00+00:00' to: '2026-04-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: '2026-04-08T05:00:00+00:00' to: '2026-04-08T07:00:00+00:00' performers: - key: performer_1 shifts: - key: performer_1_shift availability_time: from: '2026-04-07T21:00:00+00:00' to: '2026-04-08T20:59:59+00:00' working_time: from: '2026-04-07T21:00:00+00:00' to: '2026-04-08T20:59:59+00:00' tariff: cost_per_shift: 1000 constraints: - stage_length: PT10H cost_per_unit: 1 transports: - key: transport_1 shifts: - key: transport_1_shift availability_time: from: '2026-04-07T21:00:00+00:00' to: '2026-04-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: '2026-04-08T05:00:00+00:00' to: '2026-04-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: '2026-04-07T21:00:00+00:00' to: '2026-04-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: '2026-04-08T05:00:00+00:00' to: '2026-04-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: '2026-04-07T21:00:00+00:00' to: '2026-04-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: '2026-04-08T05:00:00+00:00' to: '2026-04-08T07:00:00+00:00' performers: - key: performer_1 shifts: - key: performer_1_shift availability_time: from: '2026-04-07T21:00:00+00:00' to: '2026-04-08T20:59:59+00:00' working_time: from: '2026-04-07T21:00:00+00:00' to: '2026-04-08T20:59:59+00:00' tariff: cost_per_shift: 1000 constraints: - stage_length: PT10H cost_per_unit: 1 transports: - key: transport_1 shifts: - key: transport_1_shift availability_time: from: '2026-04-07T21:00:00+00:00' to: '2026-04-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: '2026-04-08T05:00:00+00:00' to: '2026-04-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: '2026-04-07T21:00:00+00:00' to: '2026-04-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: '2026-04-08T05:00:00+00:00' to: '2026-04-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: '2026-04-07T21:00:00+00:00' to: '2026-04-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: '2026-04-08T05:00:00+00:00' to: '2026-04-08T07:00:00+00:00' performers: - key: performer_1 shifts: - key: performer_1_shift availability_time: from: '2026-04-07T21:00:00+00:00' to: '2026-04-08T20:59:59+00:00' working_time: from: '2026-04-07T21:00:00+00:00' to: '2026-04-08T20:59:59+00:00' tariff: cost_per_shift: 1000 constraints: - stage_length: PT10H cost_per_unit: 1 transports: - key: transport_1 shifts: - key: transport_1_shift availability_time: from: '2026-04-07T21:00:00+00:00' to: '2026-04-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: '2026-04-08T05:00:00+00:00' to: '2026-04-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: '2026-04-07T21:00:00+00:00' to: '2026-04-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: '2026-04-08T05:00:00+00:00' to: '2026-04-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: '2026-04-07T21:00:00+00:00' to: '2026-04-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: '2026-04-08T05:00:00+00:00' to: '2026-04-08T07:00:00+00:00' performers: - key: performer_1 shifts: - key: performer_1_shift availability_time: from: '2026-04-07T21:00:00+00:00' to: '2026-04-08T20:59:59+00:00' working_time: from: '2026-04-07T21:00:00+00:00' to: '2026-04-08T20:59:59+00:00' tariff: cost_per_shift: 1000 constraints: - stage_length: PT10H cost_per_unit: 1 transports: - key: transport_1 shifts: - key: transport_1_shift availability_time: from: '2026-04-07T21:00:00+00:00' to: '2026-04-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 Result400: summary: Errors in data value: tracedata: process_code: 11111111-2222-3333-4444-555555555555 request_code: aaaaaaaa-bbbb-cccc-dddd-eeeeeeeeeeee username: example_username company: example_company env: edge7 pod: aaaaaaaa-2222-cccc-4444-eeeeeeeeeeee service: UNIVERSAL operation: run_plan_calculation time: '2026-04-28T17:13:27.945583194Z' message: logical error detail schema_errors: [] logical_errors: - type: UNIQUE_IDS_VIOLATION entities: - entity_key: order_1 entity_type: ORDER warnings: [] PlanResultTokyo: summary: Tokyo value: tracedata: process_code: 11111111-2222-3333-4444-555555555555 request_code: aaaaaaaa-bbbb-cccc-dddd-eeeeeeeeeeee username: example_username company: example_company env: edge7 pod: aaaaaaaa-2222-cccc-4444-eeeeeeeeeeee service: UNIVERSAL operation: run_plan_calculation time: '2026-04-01T11:50:15.123Z' trips: - key: 018fcd54-adda-4463-8a24-0f253264223f-performer_1_shift performer: performer_key: performer_1 shift_key: performer_1_shift shift_time: from: '2026-04-08T04:42:23Z' to: '2026-04-08T05:40:11Z' transport: transport_key: transport_1 shift_key: transport_1_shift shift_time: from: '2026-04-08T04:42:23Z' to: '2026-04-08T05:40:11Z' states: - time: '2026-04-08T04:42:23Z' flags: - INSIDE_LOCATION - AROUND_LOCATION location_key: location_storage cargo_actions: [] attributes: [] - time: '2026-04-08T04:42:23Z' flags: - INSIDE_EVENT_HARD_WINDOW - INSIDE_LOCATION - AROUND_LOCATION - INSIDE_LOCATION_WINDOW - ON_DEMAND order_key: order_1 demand_key: demand_1_pickup event_key: demand_1_pickup_event location_key: location_storage cargo_actions: [] attributes: [] - time: '2026-04-08T04:42:23Z' flags: - INSIDE_LOCATION - AROUND_LOCATION location_key: location_storage cargo_actions: - box_key: box_1 cargo_key: order_1_cargos cargo_action_type: ADD attributes: [] - time: '2026-04-08T04:42:23Z' flags: - INSIDE_EVENT_HARD_WINDOW - INSIDE_LOCATION - AROUND_LOCATION - INSIDE_LOCATION_WINDOW - ON_DEMAND order_key: order_2 demand_key: demand_2_pickup event_key: demand_2_pickup_event location_key: location_storage cargo_actions: [] attributes: [] - time: '2026-04-08T04:42:23Z' flags: - INSIDE_LOCATION - AROUND_LOCATION location_key: location_storage cargo_actions: - box_key: box_1 cargo_key: order_2_cargos cargo_action_type: ADD attributes: [] - time: '2026-04-08T04:42:23Z' flags: - AROUND_LOCATION location_key: location_storage cargo_actions: [] attributes: [] - time: '2026-04-08T04:42:23Z' flags: - RELOCATING cargo_actions: [] attributes: [] - time: '2026-04-08T05:00:00Z' flags: - AROUND_LOCATION location_key: location_client_2 cargo_actions: [] attributes: [] - time: '2026-04-08T05:00:00Z' flags: - INSIDE_LOCATION - AROUND_LOCATION location_key: location_client_2 cargo_actions: [] attributes: [] - time: '2026-04-08T05:00:00Z' flags: - INSIDE_EVENT_HARD_WINDOW - INSIDE_LOCATION - AROUND_LOCATION - INSIDE_LOCATION_WINDOW - ON_DEMAND order_key: order_2 demand_key: demand_2_drop event_key: demand_2_drop_event location_key: location_client_2 cargo_actions: [] attributes: [] - time: '2026-04-08T05:10:00Z' flags: - INSIDE_LOCATION - AROUND_LOCATION location_key: location_client_2 cargo_actions: - box_key: box_1 cargo_key: order_2_cargos cargo_action_type: REMOVE attributes: [] - time: '2026-04-08T05:10:00Z' flags: - AROUND_LOCATION location_key: location_client_2 cargo_actions: [] attributes: [] - time: '2026-04-08T05:10:00Z' flags: - RELOCATING cargo_actions: [] attributes: [] - time: '2026-04-08T05:13:23Z' flags: - AROUND_LOCATION location_key: location_client_3 cargo_actions: [] attributes: [] - time: '2026-04-08T05:13:23Z' flags: - INSIDE_LOCATION - AROUND_LOCATION location_key: location_client_3 cargo_actions: [] attributes: [] - time: '2026-04-08T05:13:23Z' flags: - INSIDE_EVENT_HARD_WINDOW - INSIDE_LOCATION - AROUND_LOCATION - INSIDE_LOCATION_WINDOW - ON_DEMAND order_key: order_3 demand_key: demand_3_work event_key: demand_3_work_event location_key: location_client_3 cargo_actions: [] attributes: [] - time: '2026-04-08T05:28:23Z' flags: - INSIDE_LOCATION - AROUND_LOCATION location_key: location_client_3 cargo_actions: [] attributes: [] - time: '2026-04-08T05:28:23Z' flags: - AROUND_LOCATION location_key: location_client_3 cargo_actions: [] attributes: [] - time: '2026-04-08T05:28:23Z' flags: - RELOCATING cargo_actions: [] attributes: [] - time: '2026-04-08T05:30:11Z' flags: - AROUND_LOCATION location_key: location_client_1 cargo_actions: [] attributes: [] - time: '2026-04-08T05:30:11Z' flags: - INSIDE_LOCATION - AROUND_LOCATION location_key: location_client_1 cargo_actions: [] attributes: [] - time: '2026-04-08T05:30:11Z' flags: - INSIDE_EVENT_HARD_WINDOW - INSIDE_LOCATION - AROUND_LOCATION - INSIDE_LOCATION_WINDOW - ON_DEMAND order_key: order_1 demand_key: demand_1_drop event_key: demand_1_drop_event location_key: location_client_1 cargo_actions: [] attributes: [] - time: '2026-04-08T05:40:11Z' flags: - INSIDE_LOCATION - AROUND_LOCATION location_key: location_client_1 cargo_actions: - box_key: box_1 cargo_key: order_1_cargos cargo_action_type: REMOVE attributes: [] name: 1-HVFB waitlist: [] attributes: [] statistics: total_statistics: cost: 5547.805 reward: 3000.3 profit: 0 measurements: time_window: from: '2026-04-08T04:42:23Z' to: '2026-04-08T05:40:11Z' driving_time: PT22M48S waiting_time: PT0S working_time: PT35M break_time: PT0S rest_time: PT0S arriving_time: PT0S departure_time: PT0S total_time: PT57M48S distance: 7980 trips_count: 1 performers_count: 1 orders_count: 3 plan_orders_count: 3 waitlist_orders_count: 0 stops_count: 4 locations_count: 4 cargo_capacity_sum: mass: 2 volume: 0 capacity_a: 0 capacity_b: 0 capacity_c: 0 cargo_capacity_ratio: mass: 0.007 volume: 0 capacity_a: 0 capacity_b: 0 capacity_c: 0 max_transport_load: mass: 0.007 volume: 0 capacity_a: 0 capacity_b: 0 capacity_c: 0 average_speed: 7.98 round_trips_count: 1 trips_statistics: - trip_key: 018fcd54-adda-4463-8a24-0f253264223f-performer_1_shift general_statistics: cost: 5547.805 reward: 3000.3 profit: -2547.505 measurements: time_window: from: '2026-04-08T04:42:23Z' to: '2026-04-08T05:40:11Z' driving_time: PT22M48S waiting_time: PT0S working_time: PT35M break_time: PT0S rest_time: PT0S arriving_time: PT0S departure_time: PT0S total_time: PT57M48S distance: 7980 trips_count: 1 performers_count: 1 orders_count: 3 plan_orders_count: 3 waitlist_orders_count: 0 stops_count: 4 locations_count: 4 cargo_capacity_sum: mass: 2 volume: 0 capacity_a: 0 capacity_b: 0 capacity_c: 0 cargo_capacity_ratio: mass: 0.007 volume: 1 capacity_a: 1 capacity_b: 1 capacity_c: 1 max_transport_load: mass: 0.007 volume: 1 capacity_a: 1 capacity_b: 1 capacity_c: 1 average_speed: 7.98 round_trips_count: 1 load_statistics: 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 stop_statistics: - location_key: location_storage stop_demands: - demand_key: demand_1_pickup event_key: demand_1_pickup_event demand_time_window: from: '2026-04-08T04:42:23Z' to: '2026-04-08T04:42:23Z' - demand_key: demand_2_pickup event_key: demand_2_pickup_event demand_time_window: from: '2026-04-08T04:42:23Z' to: '2026-04-08T04:42:23Z' stop_time_window: from: '2026-04-08T04:42:23Z' to: '2026-04-08T04:42:23Z' measurements: time_window: from: '2026-04-08T04:42:23Z' to: '2026-04-08T04:42:23Z' driving_time: PT0S waiting_time: PT0S working_time: PT0S break_time: PT0S rest_time: PT0S arriving_time: PT0S departure_time: PT0S total_time: PT0S distance: 0 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: 2 capacity: mass: 2 volume: 0 capacity_a: 0 capacity_b: 0 capacity_c: 0 - location_key: location_client_2 stop_demands: - demand_key: demand_2_drop event_key: demand_2_drop_event demand_time_window: from: '2026-04-08T05:00:00Z' to: '2026-04-08T05:10:00Z' stop_time_window: from: '2026-04-08T05:00:00Z' to: '2026-04-08T05:10:00Z' measurements: time_window: from: '2026-04-08T04:42:23Z' to: '2026-04-08T05:10:00Z' driving_time: PT17M37S waiting_time: PT0S working_time: PT10M break_time: PT0S rest_time: PT0S arriving_time: PT0S departure_time: PT0S total_time: PT27M37S distance: 6164 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: 2 capacity: mass: 2 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: 1 capacity: mass: 1 volume: 0 capacity_a: 0 capacity_b: 0 capacity_c: 0 - location_key: location_client_3 stop_demands: - demand_key: demand_3_work event_key: demand_3_work_event demand_time_window: from: '2026-04-08T05:13:23Z' to: '2026-04-08T05:28:23Z' stop_time_window: from: '2026-04-08T05:13:23Z' to: '2026-04-08T05:28:23Z' measurements: time_window: from: '2026-04-08T05:10:00Z' to: '2026-04-08T05:28:23Z' driving_time: PT3M23S waiting_time: PT0S working_time: PT15M break_time: PT0S rest_time: PT0S arriving_time: PT0S departure_time: PT0S total_time: PT18M23S distance: 1185 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: 1 capacity: mass: 1 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_1 stop_demands: - demand_key: demand_1_drop event_key: demand_1_drop_event demand_time_window: from: '2026-04-08T05:30:11Z' to: '2026-04-08T05:40:11Z' stop_time_window: from: '2026-04-08T05:30:11Z' to: '2026-04-08T05:40:11Z' measurements: time_window: from: '2026-04-08T05:28:23Z' to: '2026-04-08T05:40:11Z' driving_time: PT1M48S waiting_time: PT0S working_time: PT10M break_time: PT0S rest_time: PT0S arriving_time: PT0S departure_time: PT0S total_time: PT11M48S distance: 631 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: 1 capacity: mass: 1 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 locations_statistics: [] task_statistics: planning_horizon: from: '2026-04-07T21:00:00Z' to: '2026-04-08T21:00:59Z' quality: locations_limits_penalty: 0 soft_time_window_violations: before: demand_keys: [] count: 0 after: demand_keys: [] count: 0 hard_time_window_violations: before: demand_keys: [] count: 0 after: demand_keys: [] count: 0 calculation_progress: 100 calculation_info: status: FINISHED_IN_TIME result_version: 106 preparing_time: PT0S business_validation_time: PT0S math_validation_time: PT0S waiting_time: PT3.04S calculation_time: PT1.012S warnings: [] unplanned_items: order_keys: [] order_keys_count: 0 performer_keys: [] performer_keys_count: 0 transport_keys: [] transport_keys_count: 0 hardlink_keys: [] hardlink_keys_count: 0 PlanResultMoscow: summary: Moscow value: tracedata: process_code: 11111111-2222-3333-4444-555555555555 request_code: aaaaaaaa-bbbb-cccc-dddd-eeeeeeeeeeee username: example_username company: example_company env: edge7 pod: aaaaaaaa-2222-cccc-4444-eeeeeeeeeeee service: UNIVERSAL operation: run_plan_calculation time: '2026-04-28T17:06:33.856Z' trips: - key: c056cbf2-864c-498f-881b-eff8b6d79875-performer_1_shift performer: performer_key: performer_1 shift_key: performer_1_shift shift_time: from: '2026-04-08T04:39:34Z' to: '2026-04-08T05:55:13Z' transport: transport_key: transport_1 shift_key: transport_1_shift shift_time: from: '2026-04-08T04:39:34Z' to: '2026-04-08T05:55:13Z' states: - time: '2026-04-08T04:39:34Z' flags: - INSIDE_LOCATION - AROUND_LOCATION location_key: location_storage cargo_actions: [] distance: 0 cost: 2000 reward: 0 attributes: [] - time: '2026-04-08T04:39:34Z' flags: - INSIDE_LOCATION - AROUND_LOCATION - INSIDE_LOCATION_WINDOW - ON_DEMAND - INSIDE_EVENT_HARD_WINDOW - DURING_ROUNDTRIP order_key: order_1 demand_key: demand_1_pickup event_key: demand_1_pickup_event location_key: location_storage cargo_actions: - box_key: box_1 cargo_key: order_1_cargos cargo_action_type: ADD distance: 0 cost: 2000 reward: 0 attributes: [] - time: '2026-04-08T04:39:34Z' flags: - INSIDE_LOCATION - AROUND_LOCATION - DURING_ROUNDTRIP location_key: location_storage cargo_actions: [] distance: 0 cost: 2000 reward: 0 attributes: [] - time: '2026-04-08T04:39:34Z' flags: - INSIDE_LOCATION - AROUND_LOCATION - INSIDE_LOCATION_WINDOW - ON_DEMAND - INSIDE_EVENT_HARD_WINDOW - DURING_ROUNDTRIP order_key: order_2 demand_key: demand_2_pickup event_key: demand_2_pickup_event location_key: location_storage cargo_actions: - box_key: box_1 cargo_key: order_2_cargos cargo_action_type: ADD distance: 0 cost: 2000 reward: 0 attributes: [] - time: '2026-04-08T04:39:34Z' flags: - INSIDE_LOCATION - AROUND_LOCATION - DURING_ROUNDTRIP location_key: location_storage cargo_actions: [] distance: 0 cost: 2000 reward: 0 attributes: [] - time: '2026-04-08T04:39:34Z' flags: - DEPARTURE - AROUND_LOCATION - DURING_ROUNDTRIP location_key: location_storage cargo_actions: [] distance: 0 cost: 2000 reward: 0 attributes: [] - time: '2026-04-08T04:39:34Z' flags: - RELOCATING - DURING_ROUNDTRIP cargo_actions: [] distance: 0 cost: 2000 reward: 0 attributes: [] - time: '2026-04-08T05:00:00Z' flags: - AROUND_LOCATION - ARRIVAL - DURING_ROUNDTRIP location_key: location_client_2 cargo_actions: [] distance: 17110 cost: 3397.1 reward: 0 attributes: [] - time: '2026-04-08T05:00:00Z' flags: - INSIDE_LOCATION - AROUND_LOCATION - DURING_ROUNDTRIP location_key: location_client_2 cargo_actions: [] distance: 17110 cost: 3397.1 reward: 0 attributes: [] - time: '2026-04-08T05:00:00Z' flags: - INSIDE_LOCATION - AROUND_LOCATION - INSIDE_LOCATION_WINDOW - ON_DEMAND - INSIDE_EVENT_HARD_WINDOW - DURING_ROUNDTRIP order_key: order_2 demand_key: demand_2_drop event_key: demand_2_drop_event location_key: location_client_2 cargo_actions: - box_key: box_1 cargo_key: order_2_cargos cargo_action_type: REMOVE distance: 17110 cost: 3397.1 reward: 0 attributes: [] - time: '2026-04-08T05:10:00Z' flags: - INSIDE_LOCATION - AROUND_LOCATION - DURING_ROUNDTRIP location_key: location_client_2 cargo_actions: [] distance: 17110 cost: 3997.1 reward: 1000.1 attributes: [] - time: '2026-04-08T05:10:00Z' flags: - DEPARTURE - AROUND_LOCATION - DURING_ROUNDTRIP location_key: location_client_2 cargo_actions: [] distance: 17110 cost: 3997.1 reward: 1000.1 attributes: [] - time: '2026-04-08T05:10:00Z' flags: - RELOCATING - DURING_ROUNDTRIP cargo_actions: [] distance: 17110 cost: 3997.1 reward: 1000.1 attributes: [] - time: '2026-04-08T05:20:56Z' flags: - AROUND_LOCATION - ARRIVAL - DURING_ROUNDTRIP location_key: location_client_1 cargo_actions: [] distance: 27007 cost: 4752.07 reward: 1000.1 attributes: [] - time: '2026-04-08T05:20:56Z' flags: - INSIDE_LOCATION - AROUND_LOCATION - DURING_ROUNDTRIP location_key: location_client_1 cargo_actions: [] distance: 27007 cost: 4752.07 reward: 1000.1 attributes: [] - time: '2026-04-08T05:20:56Z' flags: - INSIDE_LOCATION - AROUND_LOCATION - INSIDE_LOCATION_WINDOW - ON_DEMAND - INSIDE_EVENT_HARD_WINDOW - DURING_ROUNDTRIP order_key: order_1 demand_key: demand_1_drop event_key: demand_1_drop_event location_key: location_client_1 cargo_actions: - box_key: box_1 cargo_key: order_1_cargos cargo_action_type: REMOVE distance: 27007 cost: 4752.07 reward: 1000.1 attributes: [] - time: '2026-04-08T05:30:56Z' flags: - INSIDE_LOCATION - AROUND_LOCATION - DURING_ROUNDTRIP location_key: location_client_1 cargo_actions: [] distance: 27007 cost: 5352.07 reward: 2000.2 attributes: [] - time: '2026-04-08T05:30:56Z' flags: - DEPARTURE - AROUND_LOCATION - DURING_ROUNDTRIP location_key: location_client_1 cargo_actions: [] distance: 27007 cost: 5352.07 reward: 2000.2 attributes: [] - time: '2026-04-08T05:30:56Z' flags: - RELOCATING - DURING_ROUNDTRIP cargo_actions: [] distance: 27007 cost: 5352.07 reward: 2000.2 attributes: [] - time: '2026-04-08T05:40:13Z' flags: - AROUND_LOCATION - ARRIVAL - DURING_ROUNDTRIP location_key: location_client_3 cargo_actions: [] distance: 34483 cost: 5983.83 reward: 2000.2 attributes: [] - time: '2026-04-08T05:40:13Z' flags: - INSIDE_LOCATION - AROUND_LOCATION - DURING_ROUNDTRIP location_key: location_client_3 cargo_actions: [] distance: 34483 cost: 5983.83 reward: 2000.2 attributes: [] - time: '2026-04-08T05:40:13Z' flags: - INSIDE_LOCATION - AROUND_LOCATION - INSIDE_LOCATION_WINDOW - ON_DEMAND - INSIDE_EVENT_HARD_WINDOW - DURING_ROUNDTRIP order_key: order_3 demand_key: demand_3_work event_key: demand_3_work_event location_key: location_client_3 cargo_actions: [] distance: 34483 cost: 5983.83 reward: 2000.2 attributes: [] - time: '2026-04-08T05:55:13Z' flags: - INSIDE_LOCATION - AROUND_LOCATION location_key: location_client_3 cargo_actions: [] distance: 34483 cost: 6883.83 reward: 3000.3 attributes: [] waitlist: [] name: 1-HVFB attributes: [] statistics: total_statistics: cost: 6883.83 reward: 3000.3 profit: -3883.53 measurements: time_window: from: '2026-04-08T04:39:34Z' to: '2026-04-08T05:55:13Z' driving_time: PT40M39S waiting_time: PT0S working_time: PT35M break_time: PT0S rest_time: PT0S arriving_time: PT0S departure_time: PT0S total_time: PT1H15M39S distance: 34483 trips_count: 1 performers_count: 1 orders_count: 3 plan_orders_count: 3 waitlist_orders_count: 0 stops_count: 4 locations_count: 4 cargo_capacity_sum: mass: 2 volume: 0 capacity_a: 0 capacity_b: 0 capacity_c: 0 cargo_capacity_ratio: mass: 0.007 volume: 0 capacity_a: 0 capacity_b: 0 capacity_c: 0 max_transport_load: mass: 1 volume: 0 capacity_a: 0 capacity_b: 0 capacity_c: 0 average_speed: 50.4 round_trips_count: 1 average_roundtrip_distance: 34483 average_roundtrip_time: PT1H15M39S attributes: [] trips_statistics: - trip_key: c056cbf2-864c-498f-881b-eff8b6d79875-performer_1_shift general_statistics: cost: 6883.83 reward: 3000.3 profit: -3883.53 measurements: time_window: from: '2026-04-08T04:39:34Z' to: '2026-04-08T05:55:13Z' driving_time: PT40M39S waiting_time: PT0S working_time: PT35M break_time: PT0S rest_time: PT0S arriving_time: PT0S departure_time: PT0S total_time: PT1H15M39S distance: 34483 trips_count: 1 performers_count: 1 orders_count: 3 plan_orders_count: 3 waitlist_orders_count: 0 stops_count: 4 locations_count: 4 cargo_capacity_sum: mass: 2 volume: 0 capacity_a: 0 capacity_b: 0 capacity_c: 0 cargo_capacity_ratio: mass: 0.007 volume: 1 capacity_a: 1 capacity_b: 1 capacity_c: 1 max_transport_load: mass: 0.007 volume: 1 capacity_a: 1 capacity_b: 1 capacity_c: 1 average_speed: 0 round_trips_count: 1 average_roundtrip_distance: 34483 average_roundtrip_time: PT1H15M39S attributes: [] load_statistics: 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 stop_statistics: - location_key: location_storage stop_demands: - demand_key: demand_1_pickup event_key: demand_1_pickup_event demand_time_window: from: '2026-04-08T04:39:34Z' to: '2026-04-08T04:39:34Z' - demand_key: demand_2_pickup event_key: demand_2_pickup_event demand_time_window: from: '2026-04-08T04:39:34Z' to: '2026-04-08T04:39:34Z' stop_time_window: from: '2026-04-08T04:39:34Z' to: '2026-04-08T04:39:34Z' measurements: time_window: from: '2026-04-08T04:39:34Z' to: '2026-04-08T04:39:34Z' driving_time: PT0S waiting_time: PT0S working_time: PT0S break_time: PT0S rest_time: PT0S arriving_time: PT0S departure_time: PT0S total_time: PT0S distance: 0 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: 2 capacity: mass: 2 volume: 0 capacity_a: 0 capacity_b: 0 capacity_c: 0 - location_key: location_client_2 stop_demands: - demand_key: demand_2_drop event_key: demand_2_drop_event demand_time_window: from: '2026-04-08T05:00:00Z' to: '2026-04-08T05:10:00Z' stop_time_window: from: '2026-04-08T05:00:00Z' to: '2026-04-08T05:10:00Z' measurements: time_window: from: '2026-04-08T04:39:34Z' to: '2026-04-08T05:10:00Z' driving_time: PT20M26S waiting_time: PT0S working_time: PT10M break_time: PT0S rest_time: PT0S arriving_time: PT0S departure_time: PT0S total_time: PT30M26S distance: 17110 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: 2 capacity: mass: 2 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: 1 capacity: mass: 1 volume: 0 capacity_a: 0 capacity_b: 0 capacity_c: 0 - location_key: location_client_1 stop_demands: - demand_key: demand_1_drop event_key: demand_1_drop_event demand_time_window: from: '2026-04-08T05:20:56Z' to: '2026-04-08T05:30:56Z' stop_time_window: from: '2026-04-08T05:20:56Z' to: '2026-04-08T05:30:56Z' measurements: time_window: from: '2026-04-08T05:10:00Z' to: '2026-04-08T05:30:56Z' driving_time: PT10M56S waiting_time: PT0S working_time: PT10M break_time: PT0S rest_time: PT0S arriving_time: PT0S departure_time: PT0S total_time: PT20M56S distance: 9897 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: 1 capacity: mass: 1 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 stop_demands: - demand_key: demand_3_work event_key: demand_3_work_event demand_time_window: from: '2026-04-08T05:40:13Z' to: '2026-04-08T05:55:13Z' stop_time_window: from: '2026-04-08T05:40:13Z' to: '2026-04-08T05:55:13Z' measurements: time_window: from: '2026-04-08T05:30:56Z' to: '2026-04-08T05:55:13Z' driving_time: PT9M17S waiting_time: PT0S working_time: PT15M break_time: PT0S rest_time: PT0S arriving_time: PT0S departure_time: PT0S total_time: PT24M17S distance: 7476 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: 0 capacity: mass: 0 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 roundtrip_statistics: - roundtrip_key: 1-HVFB-1 general_statistics: cost: 3983.83 reward: 2000.2 profit: -1983.63 measurements: time_window: from: '2026-04-08T04:39:34Z' to: '2026-04-08T05:55:13Z' driving_time: PT40M39S waiting_time: PT0S working_time: PT20M break_time: PT0S rest_time: PT0S arriving_time: PT0S departure_time: PT0S total_time: PT1H39S distance: 34483 trips_count: 1 performers_count: 1 orders_count: 3 plan_orders_count: 3 waitlist_orders_count: 0 stops_count: 4 locations_count: 4 cargo_capacity_sum: mass: 2 volume: 0 capacity_a: 0 capacity_b: 0 capacity_c: 0 cargo_capacity_ratio: mass: 0.007 volume: 1 capacity_a: 1 capacity_b: 1 capacity_c: 1 max_transport_load: mass: 0.007 volume: 1 capacity_a: 1 capacity_b: 1 capacity_c: 1 average_speed: 0 round_trips_count: 1 average_roundtrip_distance: 34483 average_roundtrip_time: PT1H39S attributes: [] attributes: [] locations_statistics: [] task_statistics: planning_horizon: from: '2026-04-07T21:00:00Z' to: '2026-04-08T21:00:59Z' quality: locations_limits_penalty: 0 soft_time_window_violations: before: demand_keys: [] count: 0 after: demand_keys: [] count: 0 hard_time_window_violations: before: demand_keys: [] count: 0 after: demand_keys: [] count: 0 calculation_progress: 100 calculation_info: status: FINISHED_IN_TIME result_version: 107 preparing_time: PT0.016S business_validation_time: PT0.005S math_validation_time: PT0S waiting_time: PT4.01S calculation_time: PT1.007S warnings: [] unplanned_items: order_keys: [] order_keys_count: 0 performer_keys: [] performer_keys_count: 0 transport_keys: [] transport_keys_count: 0 hardlink_keys: [] hardlink_keys_count: 0 removed_items: location_keys: [] location_keys_count: 0 order_keys: [] order_keys_count: 0 performer_keys: [] performer_keys_count: 0 transport_keys: [] transport_keys_count: 0 hardlink_keys: [] hardlink_keys_count: 0 fact_keys: [] fact_keys_count: 0 PlanResultDenver: summary: Denver value: tracedata: process_code: 11111111-2222-3333-4444-555555555555 request_code: aaaaaaaa-bbbb-cccc-dddd-eeeeeeeeeeee username: example_username company: example_company env: edge7 pod: aaaaaaaa-2222-cccc-4444-eeeeeeeeeeee service: UNIVERSAL operation: run_plan_calculation time: '2026-04-01T11:50:15.123Z' trips: - key: 79ffbe44-ce64-4559-9f94-6618bfa588a1-performer_1_shift performer: performer_key: performer_1 shift_key: performer_1_shift shift_time: from: '2026-04-08T04:21:49Z' to: '2026-04-08T06:20:24Z' transport: transport_key: transport_1 shift_key: transport_1_shift shift_time: from: '2026-04-08T04:21:49Z' to: '2026-04-08T06:20:24Z' states: - time: '2026-04-08T04:21:49Z' flags: - AROUND_LOCATION - INSIDE_LOCATION location_key: location_storage cargo_actions: [] attributes: [] - time: '2026-04-08T04:21:49Z' flags: - ON_DEMAND - AROUND_LOCATION - INSIDE_LOCATION_WINDOW - INSIDE_LOCATION - INSIDE_EVENT_HARD_WINDOW order_key: order_2 demand_key: demand_2_pickup event_key: demand_2_pickup_event location_key: location_storage cargo_actions: [] attributes: [] - time: '2026-04-08T04:21:49Z' flags: - AROUND_LOCATION - INSIDE_LOCATION location_key: location_storage cargo_actions: - box_key: box_1 cargo_key: order_2_cargos cargo_action_type: ADD attributes: [] - time: '2026-04-08T04:21:49Z' flags: - ON_DEMAND - AROUND_LOCATION - INSIDE_LOCATION_WINDOW - INSIDE_LOCATION - INSIDE_EVENT_HARD_WINDOW order_key: order_1 demand_key: demand_1_pickup event_key: demand_1_pickup_event location_key: location_storage cargo_actions: [] attributes: [] - time: '2026-04-08T04:21:49Z' flags: - AROUND_LOCATION - INSIDE_LOCATION location_key: location_storage cargo_actions: - box_key: box_1 cargo_key: order_1_cargos cargo_action_type: ADD attributes: [] - time: '2026-04-08T04:21:49Z' flags: - AROUND_LOCATION location_key: location_storage cargo_actions: [] attributes: [] - time: '2026-04-08T04:21:49Z' flags: - RELOCATING cargo_actions: [] attributes: [] - time: '2026-04-08T05:00:00Z' flags: - AROUND_LOCATION location_key: location_client_3 cargo_actions: [] attributes: [] - time: '2026-04-08T05:00:00Z' flags: - AROUND_LOCATION - INSIDE_LOCATION location_key: location_client_3 cargo_actions: [] attributes: [] - time: '2026-04-08T05:00:00Z' flags: - ON_DEMAND - AROUND_LOCATION - INSIDE_LOCATION_WINDOW - INSIDE_LOCATION - INSIDE_EVENT_HARD_WINDOW order_key: order_3 demand_key: demand_3_work event_key: demand_3_work_event location_key: location_client_3 cargo_actions: [] attributes: [] - time: '2026-04-08T05:15:00Z' flags: - AROUND_LOCATION - INSIDE_LOCATION location_key: location_client_3 cargo_actions: [] attributes: [] - time: '2026-04-08T05:15:00Z' flags: - AROUND_LOCATION location_key: location_client_3 cargo_actions: [] attributes: [] - time: '2026-04-08T05:15:00Z' flags: - RELOCATING cargo_actions: [] attributes: [] - time: '2026-04-08T05:36:45Z' flags: - AROUND_LOCATION location_key: location_client_2 cargo_actions: [] attributes: [] - time: '2026-04-08T05:36:45Z' flags: - AROUND_LOCATION - INSIDE_LOCATION location_key: location_client_2 cargo_actions: [] attributes: [] - time: '2026-04-08T05:36:45Z' flags: - ON_DEMAND - AROUND_LOCATION - INSIDE_LOCATION_WINDOW - INSIDE_LOCATION - INSIDE_EVENT_HARD_WINDOW order_key: order_2 demand_key: demand_2_drop event_key: demand_2_drop_event location_key: location_client_2 cargo_actions: [] attributes: [] - time: '2026-04-08T05:46:45Z' flags: - AROUND_LOCATION - INSIDE_LOCATION location_key: location_client_2 cargo_actions: - box_key: box_1 cargo_key: order_2_cargos cargo_action_type: REMOVE attributes: [] - time: '2026-04-08T05:46:45Z' flags: - AROUND_LOCATION location_key: location_client_2 cargo_actions: [] attributes: [] - time: '2026-04-08T05:46:45Z' flags: - RELOCATING cargo_actions: [] attributes: [] - time: '2026-04-08T06:10:24Z' flags: - AROUND_LOCATION location_key: location_client_1 cargo_actions: [] attributes: [] - time: '2026-04-08T06:10:24Z' flags: - AROUND_LOCATION - INSIDE_LOCATION location_key: location_client_1 cargo_actions: [] attributes: [] - time: '2026-04-08T06:10:24Z' flags: - ON_DEMAND - AROUND_LOCATION - INSIDE_LOCATION_WINDOW - INSIDE_LOCATION - INSIDE_EVENT_HARD_WINDOW order_key: order_1 demand_key: demand_1_drop event_key: demand_1_drop_event location_key: location_client_1 cargo_actions: [] attributes: [] - time: '2026-04-08T06:20:24Z' flags: - AROUND_LOCATION - INSIDE_LOCATION location_key: location_client_1 cargo_actions: - box_key: box_1 cargo_key: order_1_cargos cargo_action_type: REMOVE attributes: [] name: 1-HVFB waitlist: [] attributes: [] statistics: total_statistics: cost: 9407.674 reward: 3000.3 profit: 0 measurements: time_window: from: '2026-04-08T04:21:49Z' to: '2026-04-08T06:20:24Z' driving_time: PT1H23M35S waiting_time: PT0S working_time: PT35M break_time: PT0S rest_time: PT0S arriving_time: PT0S departure_time: PT0S total_time: PT1H58M35S distance: 29255 trips_count: 1 performers_count: 1 orders_count: 3 plan_orders_count: 3 waitlist_orders_count: 0 stops_count: 4 locations_count: 4 cargo_capacity_sum: mass: 2 volume: 0 capacity_a: 0 capacity_b: 0 capacity_c: 0 cargo_capacity_ratio: mass: 0.007 volume: 0 capacity_a: 0 capacity_b: 0 capacity_c: 0 max_transport_load: mass: 0.007 volume: 0 capacity_a: 0 capacity_b: 0 capacity_c: 0 average_speed: 29.255 round_trips_count: 1 trips_statistics: - trip_key: 79ffbe44-ce64-4559-9f94-6618bfa588a1-performer_1_shift general_statistics: cost: 9407.674 reward: 3000.3 profit: -6407.374 measurements: time_window: from: '2026-04-08T04:21:49Z' to: '2026-04-08T06:20:24Z' driving_time: PT1H23M35S waiting_time: PT0S working_time: PT35M break_time: PT0S rest_time: PT0S arriving_time: PT0S departure_time: PT0S total_time: PT1H58M35S distance: 29255 trips_count: 1 performers_count: 1 orders_count: 3 plan_orders_count: 3 waitlist_orders_count: 0 stops_count: 4 locations_count: 4 cargo_capacity_sum: mass: 2 volume: 0 capacity_a: 0 capacity_b: 0 capacity_c: 0 cargo_capacity_ratio: mass: 0.007 volume: 1 capacity_a: 1 capacity_b: 1 capacity_c: 1 max_transport_load: mass: 0.007 volume: 1 capacity_a: 1 capacity_b: 1 capacity_c: 1 average_speed: 29.255 round_trips_count: 1 load_statistics: 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 stop_statistics: - location_key: location_storage stop_demands: - demand_key: demand_2_pickup event_key: demand_2_pickup_event demand_time_window: from: '2026-04-08T04:21:49Z' to: '2026-04-08T04:21:49Z' - demand_key: demand_1_pickup event_key: demand_1_pickup_event demand_time_window: from: '2026-04-08T04:21:49Z' to: '2026-04-08T04:21:49Z' stop_time_window: from: '2026-04-08T04:21:49Z' to: '2026-04-08T04:21:49Z' measurements: time_window: from: '2026-04-08T04:21:49Z' to: '2026-04-08T04:21:49Z' driving_time: PT0S waiting_time: PT0S working_time: PT0S break_time: PT0S rest_time: PT0S arriving_time: PT0S departure_time: PT0S total_time: PT0S distance: 0 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: 2 capacity: mass: 2 volume: 0 capacity_a: 0 capacity_b: 0 capacity_c: 0 - location_key: location_client_3 stop_demands: - demand_key: demand_3_work event_key: demand_3_work_event demand_time_window: from: '2026-04-08T05:00:00Z' to: '2026-04-08T05:15:00Z' stop_time_window: from: '2026-04-08T05:00:00Z' to: '2026-04-08T05:15:00Z' measurements: time_window: from: '2026-04-08T04:21:49Z' to: '2026-04-08T05:15:00Z' driving_time: PT38M11S waiting_time: PT0S working_time: PT15M break_time: PT0S rest_time: PT0S arriving_time: PT0S departure_time: PT0S total_time: PT53M11S distance: 13362 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: 2 capacity: mass: 2 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: 2 capacity: mass: 2 volume: 0 capacity_a: 0 capacity_b: 0 capacity_c: 0 - location_key: location_client_2 stop_demands: - demand_key: demand_2_drop event_key: demand_2_drop_event demand_time_window: from: '2026-04-08T05:36:45Z' to: '2026-04-08T05:46:45Z' stop_time_window: from: '2026-04-08T05:36:45Z' to: '2026-04-08T05:46:45Z' measurements: time_window: from: '2026-04-08T05:15:00Z' to: '2026-04-08T05:46:45Z' driving_time: PT21M45S waiting_time: PT0S working_time: PT10M break_time: PT0S rest_time: PT0S arriving_time: PT0S departure_time: PT0S total_time: PT31M45S distance: 7617 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: 2 capacity: mass: 2 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: 1 capacity: mass: 1 volume: 0 capacity_a: 0 capacity_b: 0 capacity_c: 0 - location_key: location_client_1 stop_demands: - demand_key: demand_1_drop event_key: demand_1_drop_event demand_time_window: from: '2026-04-08T06:10:24Z' to: '2026-04-08T06:20:24Z' stop_time_window: from: '2026-04-08T06:10:24Z' to: '2026-04-08T06:20:24Z' measurements: time_window: from: '2026-04-08T05:46:45Z' to: '2026-04-08T06:20:24Z' driving_time: PT23M39S waiting_time: PT0S working_time: PT10M break_time: PT0S rest_time: PT0S arriving_time: PT0S departure_time: PT0S total_time: PT33M39S distance: 8276 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: 1 capacity: mass: 1 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 locations_statistics: [] task_statistics: planning_horizon: from: '2026-04-07T21:00:00Z' to: '2026-04-08T21:00:59Z' quality: locations_limits_penalty: 0 soft_time_window_violations: before: demand_keys: [] count: 0 after: demand_keys: [] count: 0 hard_time_window_violations: before: demand_keys: [] count: 0 after: demand_keys: [] count: 0 calculation_progress: 100 calculation_info: status: FINISHED_IN_TIME result_version: 106 preparing_time: PT0S business_validation_time: PT0S math_validation_time: PT0S waiting_time: PT3.019S calculation_time: PT1.02S warnings: [] unplanned_items: order_keys: [] order_keys_count: 0 performer_keys: [] performer_keys_count: 0 transport_keys: [] transport_keys_count: 0 hardlink_keys: [] hardlink_keys_count: 0 PlanResultBerlin: summary: Berlin value: tracedata: process_code: 11111111-2222-3333-4444-555555555555 request_code: aaaaaaaa-bbbb-cccc-dddd-eeeeeeeeeeee username: example_username company: example_company env: edge7 pod: aaaaaaaa-2222-cccc-4444-eeeeeeeeeeee service: UNIVERSAL operation: run_plan_calculation time: '2026-04-01T11:50:15.123Z' trips: - key: 93e27ec5-3d4c-4f3e-9b6d-c028d16f7397-performer_1_shift performer: performer_key: performer_1 shift_key: performer_1_shift shift_time: from: '2026-04-08T04:35:29Z' to: '2026-04-08T06:11:06Z' transport: transport_key: transport_1 shift_key: transport_1_shift shift_time: from: '2026-04-08T04:35:29Z' to: '2026-04-08T06:11:06Z' states: - time: '2026-04-08T04:35:29Z' flags: - INSIDE_LOCATION - AROUND_LOCATION location_key: location_storage cargo_actions: [] attributes: [] - time: '2026-04-08T04:35:29Z' flags: - ON_DEMAND - INSIDE_LOCATION_WINDOW - INSIDE_LOCATION - AROUND_LOCATION - INSIDE_EVENT_HARD_WINDOW order_key: order_2 demand_key: demand_2_pickup event_key: demand_2_pickup_event location_key: location_storage cargo_actions: [] attributes: [] - time: '2026-04-08T04:35:29Z' flags: - INSIDE_LOCATION - AROUND_LOCATION location_key: location_storage cargo_actions: - box_key: box_1 cargo_key: order_2_cargos cargo_action_type: ADD attributes: [] - time: '2026-04-08T04:35:29Z' flags: - ON_DEMAND - INSIDE_LOCATION_WINDOW - INSIDE_LOCATION - AROUND_LOCATION - INSIDE_EVENT_HARD_WINDOW order_key: order_1 demand_key: demand_1_pickup event_key: demand_1_pickup_event location_key: location_storage cargo_actions: [] attributes: [] - time: '2026-04-08T04:35:29Z' flags: - INSIDE_LOCATION - AROUND_LOCATION location_key: location_storage cargo_actions: - box_key: box_1 cargo_key: order_1_cargos cargo_action_type: ADD attributes: [] - time: '2026-04-08T04:35:29Z' flags: - AROUND_LOCATION location_key: location_storage cargo_actions: [] attributes: [] - time: '2026-04-08T04:35:29Z' flags: - RELOCATING cargo_actions: [] attributes: [] - time: '2026-04-08T05:00:00Z' flags: - AROUND_LOCATION location_key: location_client_2 cargo_actions: [] attributes: [] - time: '2026-04-08T05:00:00Z' flags: - INSIDE_LOCATION - AROUND_LOCATION location_key: location_client_2 cargo_actions: [] attributes: [] - time: '2026-04-08T05:00:00Z' flags: - ON_DEMAND - INSIDE_LOCATION_WINDOW - INSIDE_LOCATION - AROUND_LOCATION - INSIDE_EVENT_HARD_WINDOW order_key: order_2 demand_key: demand_2_drop event_key: demand_2_drop_event location_key: location_client_2 cargo_actions: [] attributes: [] - time: '2026-04-08T05:10:00Z' flags: - INSIDE_LOCATION - AROUND_LOCATION location_key: location_client_2 cargo_actions: - box_key: box_1 cargo_key: order_2_cargos cargo_action_type: REMOVE attributes: [] - time: '2026-04-08T05:10:00Z' flags: - AROUND_LOCATION location_key: location_client_2 cargo_actions: [] attributes: [] - time: '2026-04-08T05:10:00Z' flags: - RELOCATING cargo_actions: [] attributes: [] - time: '2026-04-08T05:21:23Z' flags: - AROUND_LOCATION location_key: location_client_1 cargo_actions: [] attributes: [] - time: '2026-04-08T05:21:23Z' flags: - INSIDE_LOCATION - AROUND_LOCATION location_key: location_client_1 cargo_actions: [] attributes: [] - time: '2026-04-08T05:21:23Z' flags: - ON_DEMAND - INSIDE_LOCATION_WINDOW - INSIDE_LOCATION - AROUND_LOCATION - INSIDE_EVENT_HARD_WINDOW order_key: order_1 demand_key: demand_1_drop event_key: demand_1_drop_event location_key: location_client_1 cargo_actions: [] attributes: [] - time: '2026-04-08T05:31:23Z' flags: - INSIDE_LOCATION - AROUND_LOCATION location_key: location_client_1 cargo_actions: - box_key: box_1 cargo_key: order_1_cargos cargo_action_type: REMOVE attributes: [] - time: '2026-04-08T05:31:23Z' flags: - AROUND_LOCATION location_key: location_client_1 cargo_actions: [] attributes: [] - time: '2026-04-08T05:31:23Z' flags: - RELOCATING cargo_actions: [] attributes: [] - time: '2026-04-08T05:56:06Z' flags: - AROUND_LOCATION location_key: location_client_3 cargo_actions: [] attributes: [] - time: '2026-04-08T05:56:06Z' flags: - INSIDE_LOCATION - AROUND_LOCATION location_key: location_client_3 cargo_actions: [] attributes: [] - time: '2026-04-08T05:56:06Z' flags: - ON_DEMAND - INSIDE_LOCATION_WINDOW - INSIDE_LOCATION - AROUND_LOCATION - INSIDE_EVENT_HARD_WINDOW order_key: order_3 demand_key: demand_3_work event_key: demand_3_work_event location_key: location_client_3 cargo_actions: [] attributes: [] - time: '2026-04-08T06:11:06Z' flags: - INSIDE_LOCATION - AROUND_LOCATION location_key: location_client_3 cargo_actions: [] attributes: [] name: 1-HVFB waitlist: [] attributes: [] statistics: total_statistics: cost: 7949.65 reward: 3000.3 profit: 0 measurements: time_window: from: '2026-04-08T04:35:29Z' to: '2026-04-08T06:11:06Z' driving_time: PT1H37S waiting_time: PT0S working_time: PT35M break_time: PT0S rest_time: PT0S arriving_time: PT0S departure_time: PT0S total_time: PT1H35M37S distance: 21219 trips_count: 1 performers_count: 1 orders_count: 3 plan_orders_count: 3 waitlist_orders_count: 0 stops_count: 4 locations_count: 4 cargo_capacity_sum: mass: 2 volume: 0 capacity_a: 0 capacity_b: 0 capacity_c: 0 cargo_capacity_ratio: mass: 0.007 volume: 0 capacity_a: 0 capacity_b: 0 capacity_c: 0 max_transport_load: mass: 0.007 volume: 0 capacity_a: 0 capacity_b: 0 capacity_c: 0 average_speed: 21.219 round_trips_count: 1 trips_statistics: - trip_key: 93e27ec5-3d4c-4f3e-9b6d-c028d16f7397-performer_1_shift general_statistics: cost: 7949.65 reward: 3000.3 profit: -4949.35 measurements: time_window: from: '2026-04-08T04:35:29Z' to: '2026-04-08T06:11:06Z' driving_time: PT1H37S waiting_time: PT0S working_time: PT35M break_time: PT0S rest_time: PT0S arriving_time: PT0S departure_time: PT0S total_time: PT1H35M37S distance: 21219 trips_count: 1 performers_count: 1 orders_count: 3 plan_orders_count: 3 waitlist_orders_count: 0 stops_count: 4 locations_count: 4 cargo_capacity_sum: mass: 2 volume: 0 capacity_a: 0 capacity_b: 0 capacity_c: 0 cargo_capacity_ratio: mass: 0.007 volume: 1 capacity_a: 1 capacity_b: 1 capacity_c: 1 max_transport_load: mass: 0.007 volume: 1 capacity_a: 1 capacity_b: 1 capacity_c: 1 average_speed: 21.219 round_trips_count: 1 load_statistics: 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 stop_statistics: - location_key: location_storage stop_demands: - demand_key: demand_2_pickup event_key: demand_2_pickup_event demand_time_window: from: '2026-04-08T04:35:29Z' to: '2026-04-08T04:35:29Z' - demand_key: demand_1_pickup event_key: demand_1_pickup_event demand_time_window: from: '2026-04-08T04:35:29Z' to: '2026-04-08T04:35:29Z' stop_time_window: from: '2026-04-08T04:35:29Z' to: '2026-04-08T04:35:29Z' measurements: time_window: from: '2026-04-08T04:35:29Z' to: '2026-04-08T04:35:29Z' driving_time: PT0S waiting_time: PT0S working_time: PT0S break_time: PT0S rest_time: PT0S arriving_time: PT0S departure_time: PT0S total_time: PT0S distance: 0 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: 2 capacity: mass: 2 volume: 0 capacity_a: 0 capacity_b: 0 capacity_c: 0 - location_key: location_client_2 stop_demands: - demand_key: demand_2_drop event_key: demand_2_drop_event demand_time_window: from: '2026-04-08T05:00:00Z' to: '2026-04-08T05:10:00Z' stop_time_window: from: '2026-04-08T05:00:00Z' to: '2026-04-08T05:10:00Z' measurements: time_window: from: '2026-04-08T04:35:29Z' to: '2026-04-08T05:10:00Z' driving_time: PT24M31S waiting_time: PT0S working_time: PT10M break_time: PT0S rest_time: PT0S arriving_time: PT0S departure_time: PT0S total_time: PT34M31S distance: 8581 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: 2 capacity: mass: 2 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: 1 capacity: mass: 1 volume: 0 capacity_a: 0 capacity_b: 0 capacity_c: 0 - location_key: location_client_1 stop_demands: - demand_key: demand_1_drop event_key: demand_1_drop_event demand_time_window: from: '2026-04-08T05:21:23Z' to: '2026-04-08T05:31:23Z' stop_time_window: from: '2026-04-08T05:21:23Z' to: '2026-04-08T05:31:23Z' measurements: time_window: from: '2026-04-08T05:10:00Z' to: '2026-04-08T05:31:23Z' driving_time: PT11M23S waiting_time: PT0S working_time: PT10M break_time: PT0S rest_time: PT0S arriving_time: PT0S departure_time: PT0S total_time: PT21M23S distance: 3989 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: 1 capacity: mass: 1 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 stop_demands: - demand_key: demand_3_work event_key: demand_3_work_event demand_time_window: from: '2026-04-08T05:56:06Z' to: '2026-04-08T06:11:06Z' stop_time_window: from: '2026-04-08T05:56:06Z' to: '2026-04-08T06:11:06Z' measurements: time_window: from: '2026-04-08T05:31:23Z' to: '2026-04-08T06:11:06Z' driving_time: PT24M43S waiting_time: PT0S working_time: PT15M break_time: PT0S rest_time: PT0S arriving_time: PT0S departure_time: PT0S total_time: PT39M43S distance: 8649 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: 0 capacity: mass: 0 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 locations_statistics: [] task_statistics: planning_horizon: from: '2026-04-07T21:00:00Z' to: '2026-04-08T21:00:59Z' quality: locations_limits_penalty: 0 soft_time_window_violations: before: demand_keys: [] count: 0 after: demand_keys: [] count: 0 hard_time_window_violations: before: demand_keys: [] count: 0 after: demand_keys: [] count: 0 calculation_progress: 100 calculation_info: status: FINISHED_IN_TIME result_version: 106 preparing_time: PT0S business_validation_time: PT0S math_validation_time: PT0S waiting_time: PT3.02S calculation_time: PT1.012S warnings: [] unplanned_items: order_keys: [] order_keys_count: 0 performer_keys: [] performer_keys_count: 0 transport_keys: [] transport_keys_count: 0 hardlink_keys: [] hardlink_keys_count: 0 PlanResultBeijing: summary: Beijing value: tracedata: process_code: 11111111-2222-3333-4444-555555555555 request_code: aaaaaaaa-bbbb-cccc-dddd-eeeeeeeeeeee username: example_username company: example_company env: edge7 pod: aaaaaaaa-2222-cccc-4444-eeeeeeeeeeee service: UNIVERSAL operation: run_plan_calculation time: '2026-04-01T11:50:15.123Z' trips: - key: 252f9b58-44d1-4482-8e35-36af9308e7a4-performer_1_shift performer: performer_key: performer_1 shift_key: performer_1_shift shift_time: from: '2026-04-08T04:42:30Z' to: '2026-04-08T05:55:03Z' transport: transport_key: transport_1 shift_key: transport_1_shift shift_time: from: '2026-04-08T04:42:30Z' to: '2026-04-08T05:55:03Z' states: - time: '2026-04-08T04:42:30Z' flags: - INSIDE_LOCATION - AROUND_LOCATION location_key: location_storage cargo_actions: [] attributes: [] - time: '2026-04-08T04:42:30Z' flags: - ON_DEMAND - INSIDE_LOCATION_WINDOW - INSIDE_LOCATION - AROUND_LOCATION - INSIDE_EVENT_HARD_WINDOW order_key: order_1 demand_key: demand_1_pickup event_key: demand_1_pickup_event location_key: location_storage cargo_actions: [] attributes: [] - time: '2026-04-08T04:42:30Z' flags: - INSIDE_LOCATION - AROUND_LOCATION location_key: location_storage cargo_actions: - box_key: box_1 cargo_key: order_1_cargos cargo_action_type: ADD attributes: [] - time: '2026-04-08T04:42:30Z' flags: - ON_DEMAND - INSIDE_LOCATION_WINDOW - INSIDE_LOCATION - AROUND_LOCATION - INSIDE_EVENT_HARD_WINDOW order_key: order_2 demand_key: demand_2_pickup event_key: demand_2_pickup_event location_key: location_storage cargo_actions: [] attributes: [] - time: '2026-04-08T04:42:30Z' flags: - INSIDE_LOCATION - AROUND_LOCATION location_key: location_storage cargo_actions: - box_key: box_1 cargo_key: order_2_cargos cargo_action_type: ADD attributes: [] - time: '2026-04-08T04:42:30Z' flags: - AROUND_LOCATION location_key: location_storage cargo_actions: [] attributes: [] - time: '2026-04-08T04:42:30Z' flags: - RELOCATING cargo_actions: [] attributes: [] - time: '2026-04-08T05:00:00Z' flags: - AROUND_LOCATION location_key: location_client_2 cargo_actions: [] attributes: [] - time: '2026-04-08T05:00:00Z' flags: - INSIDE_LOCATION - AROUND_LOCATION location_key: location_client_2 cargo_actions: [] attributes: [] - time: '2026-04-08T05:00:00Z' flags: - ON_DEMAND - INSIDE_LOCATION_WINDOW - INSIDE_LOCATION - AROUND_LOCATION - INSIDE_EVENT_HARD_WINDOW order_key: order_2 demand_key: demand_2_drop event_key: demand_2_drop_event location_key: location_client_2 cargo_actions: [] attributes: [] - time: '2026-04-08T05:10:00Z' flags: - INSIDE_LOCATION - AROUND_LOCATION location_key: location_client_2 cargo_actions: - box_key: box_1 cargo_key: order_2_cargos cargo_action_type: REMOVE attributes: [] - time: '2026-04-08T05:10:00Z' flags: - AROUND_LOCATION location_key: location_client_2 cargo_actions: [] attributes: [] - time: '2026-04-08T05:10:00Z' flags: - RELOCATING cargo_actions: [] attributes: [] - time: '2026-04-08T05:12:37Z' flags: - AROUND_LOCATION location_key: location_client_3 cargo_actions: [] attributes: [] - time: '2026-04-08T05:12:37Z' flags: - INSIDE_LOCATION - AROUND_LOCATION location_key: location_client_3 cargo_actions: [] attributes: [] - time: '2026-04-08T05:12:37Z' flags: - ON_DEMAND - INSIDE_LOCATION_WINDOW - INSIDE_LOCATION - AROUND_LOCATION - INSIDE_EVENT_HARD_WINDOW order_key: order_3 demand_key: demand_3_work event_key: demand_3_work_event location_key: location_client_3 cargo_actions: [] attributes: [] - time: '2026-04-08T05:27:37Z' flags: - INSIDE_LOCATION - AROUND_LOCATION location_key: location_client_3 cargo_actions: [] attributes: [] - time: '2026-04-08T05:27:37Z' flags: - AROUND_LOCATION location_key: location_client_3 cargo_actions: [] attributes: [] - time: '2026-04-08T05:27:37Z' flags: - RELOCATING cargo_actions: [] attributes: [] - time: '2026-04-08T05:45:03Z' flags: - AROUND_LOCATION location_key: location_client_1 cargo_actions: [] attributes: [] - time: '2026-04-08T05:45:03Z' flags: - INSIDE_LOCATION - AROUND_LOCATION location_key: location_client_1 cargo_actions: [] attributes: [] - time: '2026-04-08T05:45:03Z' flags: - ON_DEMAND - INSIDE_LOCATION_WINDOW - INSIDE_LOCATION - AROUND_LOCATION - INSIDE_EVENT_HARD_WINDOW order_key: order_1 demand_key: demand_1_drop event_key: demand_1_drop_event location_key: location_client_1 cargo_actions: [] attributes: [] - time: '2026-04-08T05:55:03Z' flags: - INSIDE_LOCATION - AROUND_LOCATION location_key: location_client_1 cargo_actions: - box_key: box_1 cargo_key: order_1_cargos cargo_action_type: REMOVE attributes: [] name: 1-HVFB waitlist: [] attributes: [] statistics: total_statistics: cost: 6485.122 reward: 3000.3 profit: 0 measurements: time_window: from: '2026-04-08T04:42:30Z' to: '2026-04-08T05:55:03Z' driving_time: PT37M33S waiting_time: PT0S working_time: PT35M break_time: PT0S rest_time: PT0S arriving_time: PT0S departure_time: PT0S total_time: PT1H12M33S distance: 13146 trips_count: 1 performers_count: 1 orders_count: 3 plan_orders_count: 3 waitlist_orders_count: 0 stops_count: 4 locations_count: 4 cargo_capacity_sum: mass: 2 volume: 0 capacity_a: 0 capacity_b: 0 capacity_c: 0 cargo_capacity_ratio: mass: 0.007 volume: 0 capacity_a: 0 capacity_b: 0 capacity_c: 0 max_transport_load: mass: 0.007 volume: 0 capacity_a: 0 capacity_b: 0 capacity_c: 0 average_speed: 13.146 round_trips_count: 1 trips_statistics: - trip_key: 252f9b58-44d1-4482-8e35-36af9308e7a4-performer_1_shift general_statistics: cost: 6485.122 reward: 3000.3 profit: -3484.822 measurements: time_window: from: '2026-04-08T04:42:30Z' to: '2026-04-08T05:55:03Z' driving_time: PT37M33S waiting_time: PT0S working_time: PT35M break_time: PT0S rest_time: PT0S arriving_time: PT0S departure_time: PT0S total_time: PT1H12M33S distance: 13146 trips_count: 1 performers_count: 1 orders_count: 3 plan_orders_count: 3 waitlist_orders_count: 0 stops_count: 4 locations_count: 4 cargo_capacity_sum: mass: 2 volume: 0 capacity_a: 0 capacity_b: 0 capacity_c: 0 cargo_capacity_ratio: mass: 0.007 volume: 1 capacity_a: 1 capacity_b: 1 capacity_c: 1 max_transport_load: mass: 0.007 volume: 1 capacity_a: 1 capacity_b: 1 capacity_c: 1 average_speed: 13.146 round_trips_count: 1 load_statistics: 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 stop_statistics: - location_key: location_storage stop_demands: - demand_key: demand_1_pickup event_key: demand_1_pickup_event demand_time_window: from: '2026-04-08T04:42:30Z' to: '2026-04-08T04:42:30Z' - demand_key: demand_2_pickup event_key: demand_2_pickup_event demand_time_window: from: '2026-04-08T04:42:30Z' to: '2026-04-08T04:42:30Z' stop_time_window: from: '2026-04-08T04:42:30Z' to: '2026-04-08T04:42:30Z' measurements: time_window: from: '2026-04-08T04:42:30Z' to: '2026-04-08T04:42:30Z' driving_time: PT0S waiting_time: PT0S working_time: PT0S break_time: PT0S rest_time: PT0S arriving_time: PT0S departure_time: PT0S total_time: PT0S distance: 0 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: 2 capacity: mass: 2 volume: 0 capacity_a: 0 capacity_b: 0 capacity_c: 0 - location_key: location_client_2 stop_demands: - demand_key: demand_2_drop event_key: demand_2_drop_event demand_time_window: from: '2026-04-08T05:00:00Z' to: '2026-04-08T05:10:00Z' stop_time_window: from: '2026-04-08T05:00:00Z' to: '2026-04-08T05:10:00Z' measurements: time_window: from: '2026-04-08T04:42:30Z' to: '2026-04-08T05:10:00Z' driving_time: PT17M30S waiting_time: PT0S working_time: PT10M break_time: PT0S rest_time: PT0S arriving_time: PT0S departure_time: PT0S total_time: PT27M30S distance: 6125 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: 2 capacity: mass: 2 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: 1 capacity: mass: 1 volume: 0 capacity_a: 0 capacity_b: 0 capacity_c: 0 - location_key: location_client_3 stop_demands: - demand_key: demand_3_work event_key: demand_3_work_event demand_time_window: from: '2026-04-08T05:12:37Z' to: '2026-04-08T05:27:37Z' stop_time_window: from: '2026-04-08T05:12:37Z' to: '2026-04-08T05:27:37Z' measurements: time_window: from: '2026-04-08T05:10:00Z' to: '2026-04-08T05:27:37Z' driving_time: PT2M37S waiting_time: PT0S working_time: PT15M break_time: PT0S rest_time: PT0S arriving_time: PT0S departure_time: PT0S total_time: PT17M37S distance: 916 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: 1 capacity: mass: 1 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_1 stop_demands: - demand_key: demand_1_drop event_key: demand_1_drop_event demand_time_window: from: '2026-04-08T05:45:03Z' to: '2026-04-08T05:55:03Z' stop_time_window: from: '2026-04-08T05:45:03Z' to: '2026-04-08T05:55:03Z' measurements: time_window: from: '2026-04-08T05:27:37Z' to: '2026-04-08T05:55:03Z' driving_time: PT17M26S waiting_time: PT0S working_time: PT10M break_time: PT0S rest_time: PT0S arriving_time: PT0S departure_time: PT0S total_time: PT27M26S distance: 6105 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: 1 capacity: mass: 1 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 locations_statistics: [] task_statistics: planning_horizon: from: '2026-04-07T21:00:00Z' to: '2026-04-08T21:00:59Z' quality: locations_limits_penalty: 0 soft_time_window_violations: before: demand_keys: [] count: 0 after: demand_keys: [] count: 0 hard_time_window_violations: before: demand_keys: [] count: 0 after: demand_keys: [] count: 0 calculation_progress: 100 calculation_info: status: FINISHED_IN_TIME result_version: 106 preparing_time: PT0S business_validation_time: PT0S math_validation_time: PT0S waiting_time: PT4.021S calculation_time: PT1.011S warnings: [] unplanned_items: order_keys: [] order_keys_count: 0 performer_keys: [] performer_keys_count: 0 transport_keys: [] transport_keys_count: 0 hardlink_keys: [] hardlink_keys_count: 0 ValidateResultExample: summary: Validate example value: tracedata: process_code: 11111111-2222-3333-4444-555555555555 request_code: aaaaaaaa-bbbb-cccc-dddd-eeeeeeeeeeee username: example_username company: example_company env: edge7 pod: aaaaaaaa-2222-cccc-4444-eeeeeeeeeeee service: UNIVERSAL operation: run_plan_validation time: '2026-04-01T11:50:15.123Z' warnings: - type: NO_AVAILABLE_TRANSPORT entities: - entity_key: ord0001 entity_type: ORDER RefineResultMoscow: summary: Moscow value: tracedata: process_code: 11111111-2222-3333-4444-555555555555 request_code: aaaaaaaa-bbbb-cccc-dddd-eeeeeeeeeeee username: example_username company: example_company env: edge7 pod: aaaaaaaa-2222-cccc-4444-eeeeeeeeeeee service: UNIVERSAL operation: run_replan_calculation time: '2026-04-28T17:06:33.856Z' plan_task: 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: '2026-04-08T05:00:00+00:00' to: '2026-04-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: '2026-04-07T21:00:00+00:00' to: '2026-04-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: '2026-04-08T05:00:00+00:00' to: '2026-04-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: '2026-04-07T21:00:00+00:00' to: '2026-04-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: '2026-04-08T05:00:00+00:00' to: '2026-04-08T07:00:00+00:00' performers: - key: performer_1 shifts: - key: performer_1_shift availability_time: from: '2026-04-07T21:00:00+00:00' to: '2026-04-08T20:59:59+00:00' working_time: from: '2026-04-07T21:00:00+00:00' to: '2026-04-08T20:59:59+00:00' tariff: cost_per_shift: 1000 constraints: - stage_length: PT10H cost_per_unit: 1 transports: - key: transport_1 shifts: - key: transport_1_shift availability_time: from: '2026-04-07T21:00:00+00:00' to: '2026-04-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 GeneratePlanStatisticsMoscow: summary: Moscow value: locations: - key: performer_1_current_location geopoint: latitude: 55.720292 longitude: 37.625994 - key: unused_location geopoint: latitude: 55.512292 longitude: 37.915934 - 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: '2026-04-08T05:00:00+00:00' to: '2026-04-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: '2026-04-07T21:00:00+00:00' to: '2026-04-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: '2026-04-08T05:00:00+00:00' to: '2026-04-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: '2026-04-07T21:00:00+00:00' to: '2026-04-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: '2026-04-08T05:00:00+00:00' to: '2026-04-08T07:00:00+00:00' performers: - key: performer_1 shifts: - key: performer_1_shift availability_time: from: '2026-04-07T21:00:00+00:00' to: '2026-04-08T20:59:59+00:00' working_time: from: '2026-04-07T21:00:00+00:00' to: '2026-04-08T20:59:59+00:00' tariff: cost_per_shift: 1000 constraints: - stage_length: PT10H cost_per_unit: 1 transports: - key: transport_1 shifts: - key: transport_1_shift availability_time: from: '2026-04-07T21:00:00+00:00' to: '2026-04-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: trip_for_performer_1 performer: performer_key: performer_1 shift_key: performer_1_shift shift_time: from: '2026-04-08T04:38:34Z' to: '2026-04-08T05:53:39Z' transport: transport_key: transport_1 shift_key: transport_1_shift shift_time: from: '2026-04-08T04:38:34Z' to: '2026-04-08T05:53:39Z' states: - time: '2026-04-08T04:38:34Z' flags: - INSIDE_LOCATION - AROUND_LOCATION location_key: location_storage cargo_actions: [] attributes: [] - time: '2026-04-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_actions: [] attributes: [] - time: '2026-04-08T04:38:34Z' flags: - INSIDE_LOCATION - AROUND_LOCATION location_key: location_storage cargo_actions: - box_key: box_1 cargo_key: order_2_cargos cargo_action_type: ADD attributes: [] - time: '2026-04-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_actions: - box_key: box_1 cargo_key: order_2_cargos cargo_action_type: ADD attributes: [] - time: '2026-04-08T04:38:34Z' flags: - INSIDE_LOCATION - AROUND_LOCATION location_key: location_storage cargo_actions: - box_key: box_1 cargo_key: order_1_cargos cargo_action_type: ADD - box_key: box_1 cargo_key: order_2_cargos cargo_action_type: ADD attributes: [] - time: '2026-04-08T04:38:34Z' flags: - RELOCATING cargo_actions: - box_key: box_1 cargo_key: order_1_cargos cargo_action_type: ADD - box_key: box_1 cargo_key: order_2_cargos cargo_action_type: ADD attributes: [] - time: '2026-04-08T05:00:00Z' flags: - INSIDE_LOCATION - AROUND_LOCATION location_key: location_client_2 cargo_actions: - box_key: box_1 cargo_key: order_1_cargos cargo_action_type: ADD - box_key: box_1 cargo_key: order_2_cargos cargo_action_type: ADD attributes: [] - time: '2026-04-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_actions: - box_key: box_1 cargo_key: order_1_cargos cargo_action_type: ADD - box_key: box_1 cargo_key: order_2_cargos cargo_action_type: ADD attributes: [] - time: '2026-04-08T05:10:00Z' flags: - INSIDE_LOCATION - AROUND_LOCATION location_key: location_client_2 cargo_actions: - box_key: box_1 cargo_key: order_1_cargos cargo_action_type: ADD attributes: [] - time: '2026-04-08T05:10:00Z' flags: - RELOCATING cargo_actions: - box_key: box_1 cargo_key: order_1_cargos cargo_action_type: ADD attributes: [] - time: '2026-04-08T05:20:52Z' flags: - INSIDE_LOCATION - AROUND_LOCATION location_key: location_client_1 cargo_actions: - box_key: box_1 cargo_key: order_1_cargos cargo_action_type: ADD attributes: [] - time: '2026-04-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_actions: - box_key: box_1 cargo_key: order_1_cargos cargo_action_type: ADD attributes: [] - time: '2026-04-08T05:30:52Z' flags: - INSIDE_LOCATION - AROUND_LOCATION location_key: location_client_1 cargo_actions: [] attributes: [] - time: '2026-04-08T05:30:52Z' flags: - RELOCATING cargo_actions: [] attributes: [] - time: '2026-04-08T05:38:39Z' flags: - INSIDE_LOCATION - AROUND_LOCATION location_key: location_client_3 cargo_actions: [] attributes: [] - time: '2026-04-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_actions: [] attributes: [] - time: '2026-04-08T05:53:39Z' flags: - INSIDE_LOCATION - AROUND_LOCATION location_key: location_client_3 cargo_actions: [] attributes: [] waitlist: [] attributes: [] ActualizeTaskMoscow: summary: Moscow value: locations: - key: performer_1_current_location geopoint: latitude: 55.720292 longitude: 37.625994 - key: unused_location geopoint: latitude: 55.512292 longitude: 37.915934 - 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: '2026-04-08T05:00:00+00:00' to: '2026-04-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: '2026-04-07T21:00:00+00:00' to: '2026-04-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: '2026-04-08T05:00:00+00:00' to: '2026-04-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: '2026-04-07T21:00:00+00:00' to: '2026-04-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: '2026-04-08T05:00:00+00:00' to: '2026-04-08T07:00:00+00:00' performers: - key: performer_1 shifts: - key: performer_1_shift availability_time: from: '2026-04-07T21:00:00+00:00' to: '2026-04-08T20:59:59+00:00' working_time: from: '2026-04-07T21:00:00+00:00' to: '2026-04-08T20:59:59+00:00' tariff: cost_per_shift: 1000 constraints: - stage_length: PT10H cost_per_unit: 1 transports: - key: transport_1 shifts: - key: transport_1_shift availability_time: from: '2026-04-07T21:00:00+00:00' to: '2026-04-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 facts: - key: fact_01 type: NEW_LOCATION time: '2026-04-07T22:00:00Z' trip_key: trip_for_performer_1 performer_key: performer_1 location_key: performer_1_current_location trips: - key: trip_for_performer_1 performer: performer_key: performer_1 shift_key: performer_1_shift shift_time: from: '2026-04-08T04:38:34Z' to: '2026-04-08T05:53:39Z' transport: transport_key: transport_1 shift_key: transport_1_shift shift_time: from: '2026-04-08T04:38:34Z' to: '2026-04-08T05:53:39Z' states: - time: '2026-04-08T04:38:34Z' flags: - INSIDE_LOCATION - AROUND_LOCATION location_key: location_storage cargo_actions: [] attributes: [] - time: '2026-04-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_actions: [] attributes: [] - time: '2026-04-08T04:38:34Z' flags: - INSIDE_LOCATION - AROUND_LOCATION location_key: location_storage cargo_actions: - box_key: box_1 cargo_key: order_2_cargos cargo_action_type: ADD attributes: [] - time: '2026-04-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_actions: - box_key: box_1 cargo_key: order_2_cargos cargo_action_type: ADD attributes: [] - time: '2026-04-08T04:38:34Z' flags: - INSIDE_LOCATION - AROUND_LOCATION location_key: location_storage cargo_actions: - box_key: box_1 cargo_key: order_1_cargos cargo_action_type: ADD - box_key: box_1 cargo_key: order_2_cargos cargo_action_type: ADD attributes: [] - time: '2026-04-08T04:38:34Z' flags: - RELOCATING cargo_actions: - box_key: box_1 cargo_key: order_1_cargos cargo_action_type: ADD - box_key: box_1 cargo_key: order_2_cargos cargo_action_type: ADD attributes: [] - time: '2026-04-08T05:00:00Z' flags: - INSIDE_LOCATION - AROUND_LOCATION location_key: location_client_2 cargo_actions: - box_key: box_1 cargo_key: order_1_cargos cargo_action_type: ADD - box_key: box_1 cargo_key: order_2_cargos cargo_action_type: ADD attributes: [] - time: '2026-04-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_actions: - box_key: box_1 cargo_key: order_1_cargos cargo_action_type: ADD - box_key: box_1 cargo_key: order_2_cargos cargo_action_type: ADD attributes: [] - time: '2026-04-08T05:10:00Z' flags: - INSIDE_LOCATION - AROUND_LOCATION location_key: location_client_2 cargo_actions: - box_key: box_1 cargo_key: order_1_cargos cargo_action_type: ADD attributes: [] - time: '2026-04-08T05:10:00Z' flags: - RELOCATING cargo_actions: - box_key: box_1 cargo_key: order_1_cargos cargo_action_type: ADD attributes: [] - time: '2026-04-08T05:20:52Z' flags: - INSIDE_LOCATION - AROUND_LOCATION location_key: location_client_1 cargo_actions: - box_key: box_1 cargo_key: order_1_cargos cargo_action_type: ADD attributes: [] - time: '2026-04-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_actions: - box_key: box_1 cargo_key: order_1_cargos cargo_action_type: ADD attributes: [] - time: '2026-04-08T05:30:52Z' flags: - INSIDE_LOCATION - AROUND_LOCATION location_key: location_client_1 cargo_actions: [] attributes: [] - time: '2026-04-08T05:30:52Z' flags: - RELOCATING cargo_actions: [] attributes: [] - time: '2026-04-08T05:38:39Z' flags: - INSIDE_LOCATION - AROUND_LOCATION location_key: location_client_3 cargo_actions: [] attributes: [] - time: '2026-04-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_actions: [] attributes: [] - time: '2026-04-08T05:53:39Z' flags: - INSIDE_LOCATION - AROUND_LOCATION location_key: location_client_3 cargo_actions: [] attributes: [] waitlist: [] attributes: [] actualize_settings: current_time: '2026-04-07T22:30:00Z' max_delay_duration: PT1H ActualizeResultMoscow: summary: Moscow value: tracedata: process_code: 11111111-2222-3333-4444-555555555555 request_code: aaaaaaaa-bbbb-cccc-dddd-eeeeeeeeeeee username: example_username company: example_company env: edge7 pod: aaaaaaaa-2222-cccc-4444-eeeeeeeeeeee service: UNIVERSAL operation: run_actualize_calculation time: '2026-04-28T17:06:33.856Z' trips: - key: d56f86e9-c50a-40d3-b5ef-616eacc98db0-performer_1_shift performer: performer_key: performer_1 shift_key: performer_1_shift shift_time: from: '2026-04-08T04:39:34Z' to: '2026-04-08T05:53:49Z' transport: transport_key: transport_1 shift_key: transport_1_shift shift_time: from: '2026-04-08T04:39:34Z' to: '2026-04-08T05:53:49Z' states: - time: '2026-04-08T04:39:34Z' flags: - INSIDE_LOCATION - AROUND_LOCATION location_key: location_storage cargo_actions: [] attributes: [] - time: '2026-04-08T04:39:34Z' flags: - INSIDE_EVENT_HARD_WINDOW - INSIDE_LOCATION - AROUND_LOCATION - INSIDE_LOCATION_WINDOW - ON_DEMAND order_key: order_2 demand_key: demand_2_pickup event_key: demand_2_pickup_event location_key: location_storage cargo_actions: [] attributes: [] - time: '2026-04-08T04:39:34Z' flags: - INSIDE_LOCATION - AROUND_LOCATION location_key: location_storage cargo_actions: - box_key: box_1 cargo_key: order_2_cargos cargo_action_type: ADD attributes: [] - time: '2026-04-08T04:39:34Z' flags: - INSIDE_EVENT_HARD_WINDOW - INSIDE_LOCATION - AROUND_LOCATION - INSIDE_LOCATION_WINDOW - ON_DEMAND order_key: order_1 demand_key: demand_1_pickup event_key: demand_1_pickup_event location_key: location_storage cargo_actions: [] attributes: [] - time: '2026-04-08T04:39:34Z' flags: - INSIDE_LOCATION - AROUND_LOCATION location_key: location_storage cargo_actions: - box_key: box_1 cargo_key: order_1_cargos cargo_action_type: ADD attributes: [] - time: '2026-04-08T04:39:34Z' flags: - AROUND_LOCATION location_key: location_storage cargo_actions: [] attributes: [] - time: '2026-04-08T04:39:34Z' flags: - RELOCATING cargo_actions: [] attributes: [] - time: '2026-04-08T05:00:00Z' flags: - AROUND_LOCATION location_key: location_client_2 cargo_actions: [] attributes: [] - time: '2026-04-08T05:00:00Z' flags: - INSIDE_LOCATION - AROUND_LOCATION location_key: location_client_2 cargo_actions: [] attributes: [] - time: '2026-04-08T05:00:00Z' flags: - INSIDE_EVENT_HARD_WINDOW - INSIDE_LOCATION - AROUND_LOCATION - INSIDE_LOCATION_WINDOW - ON_DEMAND order_key: order_2 demand_key: demand_2_drop event_key: demand_2_drop_event location_key: location_client_2 cargo_actions: [] attributes: [] - time: '2026-04-08T05:10:00Z' flags: - INSIDE_LOCATION - AROUND_LOCATION location_key: location_client_2 cargo_actions: - box_key: box_1 cargo_key: order_2_cargos cargo_action_type: REMOVE attributes: [] - time: '2026-04-08T05:10:00Z' flags: - AROUND_LOCATION location_key: location_client_2 cargo_actions: [] attributes: [] - time: '2026-04-08T05:10:00Z' flags: - RELOCATING cargo_actions: [] attributes: [] - time: '2026-04-08T05:20:56Z' flags: - AROUND_LOCATION location_key: location_client_1 cargo_actions: [] attributes: [] - time: '2026-04-08T05:20:56Z' flags: - INSIDE_LOCATION - AROUND_LOCATION location_key: location_client_1 cargo_actions: [] attributes: [] - time: '2026-04-08T05:20:56Z' flags: - INSIDE_EVENT_HARD_WINDOW - INSIDE_LOCATION - AROUND_LOCATION - INSIDE_LOCATION_WINDOW - ON_DEMAND order_key: order_1 demand_key: demand_1_drop event_key: demand_1_drop_event location_key: location_client_1 cargo_actions: [] attributes: [] - time: '2026-04-08T05:30:56Z' flags: - INSIDE_LOCATION - AROUND_LOCATION location_key: location_client_1 cargo_actions: - box_key: box_1 cargo_key: order_1_cargos cargo_action_type: REMOVE attributes: [] - time: '2026-04-08T05:30:56Z' flags: - AROUND_LOCATION location_key: location_client_1 cargo_actions: [] attributes: [] - time: '2026-04-08T05:30:56Z' flags: - RELOCATING cargo_actions: [] attributes: [] - time: '2026-04-08T05:38:49Z' flags: - AROUND_LOCATION location_key: location_client_3 cargo_actions: [] attributes: [] - time: '2026-04-08T05:38:49Z' flags: - INSIDE_LOCATION - AROUND_LOCATION location_key: location_client_3 cargo_actions: [] attributes: [] - time: '2026-04-08T05:38:49Z' flags: - INSIDE_EVENT_HARD_WINDOW - INSIDE_LOCATION - AROUND_LOCATION - INSIDE_LOCATION_WINDOW - ON_DEMAND order_key: order_3 demand_key: demand_3_work event_key: demand_3_work_event location_key: location_client_3 cargo_actions: [] attributes: [] - time: '2026-04-08T05:53:49Z' flags: - INSIDE_LOCATION - AROUND_LOCATION location_key: location_client_3 cargo_actions: [] attributes: [] name: 1-HVFB waitlist: [] attributes: [] statistics: total_statistics: cost: 6795.37 reward: 3000.3 profit: 0 measurements: time_window: from: '2026-04-08T04:39:34Z' to: '2026-04-08T05:53:49Z' driving_time: PT39M15S waiting_time: PT0S working_time: PT35M break_time: PT0S rest_time: PT0S arriving_time: PT0S departure_time: PT0S total_time: PT1H14M15S distance: 34037 trips_count: 1 performers_count: 1 orders_count: 3 plan_orders_count: 3 waitlist_orders_count: 0 stops_count: 4 locations_count: 4 cargo_capacity_sum: mass: 2 volume: 0 capacity_a: 0 capacity_b: 0 capacity_c: 0 cargo_capacity_ratio: mass: 0.007 volume: 0 capacity_a: 0 capacity_b: 0 capacity_c: 0 max_transport_load: mass: 0.007 volume: 0 capacity_a: 0 capacity_b: 0 capacity_c: 0 average_speed: 34.037 round_trips_count: 1 trips_statistics: - trip_key: d56f86e9-c50a-40d3-b5ef-616eacc98db0-performer_1_shift general_statistics: cost: 6795.37 reward: 3000.3 profit: -3795.07 measurements: time_window: from: '2026-04-08T04:39:34Z' to: '2026-04-08T05:53:49Z' driving_time: PT39M15S waiting_time: PT0S working_time: PT35M break_time: PT0S rest_time: PT0S arriving_time: PT0S departure_time: PT0S total_time: PT1H14M15S distance: 34037 trips_count: 1 performers_count: 1 orders_count: 3 plan_orders_count: 3 waitlist_orders_count: 0 stops_count: 4 locations_count: 4 cargo_capacity_sum: mass: 2 volume: 0 capacity_a: 0 capacity_b: 0 capacity_c: 0 cargo_capacity_ratio: mass: 0.007 volume: 1 capacity_a: 1 capacity_b: 1 capacity_c: 1 max_transport_load: mass: 0.007 volume: 1 capacity_a: 1 capacity_b: 1 capacity_c: 1 average_speed: 34.037 round_trips_count: 1 load_statistics: 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 stop_statistics: - location_key: location_storage stop_demands: - demand_key: demand_2_pickup event_key: demand_2_pickup_event demand_time_window: from: '2026-04-08T04:39:34Z' to: '2026-04-08T04:39:34Z' - demand_key: demand_1_pickup event_key: demand_1_pickup_event demand_time_window: from: '2026-04-08T04:39:34Z' to: '2026-04-08T04:39:34Z' stop_time_window: from: '2026-04-08T04:39:34Z' to: '2026-04-08T04:39:34Z' measurements: time_window: from: '2026-04-08T04:39:34Z' to: '2026-04-08T04:39:34Z' driving_time: PT0S waiting_time: PT0S working_time: PT0S break_time: PT0S rest_time: PT0S arriving_time: PT0S departure_time: PT0S total_time: PT0S distance: 0 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: 2 capacity: mass: 2 volume: 0 capacity_a: 0 capacity_b: 0 capacity_c: 0 - location_key: location_client_2 stop_demands: - demand_key: demand_2_drop event_key: demand_2_drop_event demand_time_window: from: '2026-04-08T05:00:00Z' to: '2026-04-08T05:10:00Z' stop_time_window: from: '2026-04-08T05:00:00Z' to: '2026-04-08T05:10:00Z' measurements: time_window: from: '2026-04-08T04:39:34Z' to: '2026-04-08T05:10:00Z' driving_time: PT20M26S waiting_time: PT0S working_time: PT10M break_time: PT0S rest_time: PT0S arriving_time: PT0S departure_time: PT0S total_time: PT30M26S distance: 17110 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: 2 capacity: mass: 2 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: 1 capacity: mass: 1 volume: 0 capacity_a: 0 capacity_b: 0 capacity_c: 0 - location_key: location_client_1 stop_demands: - demand_key: demand_1_drop event_key: demand_1_drop_event demand_time_window: from: '2026-04-08T05:20:56Z' to: '2026-04-08T05:30:56Z' stop_time_window: from: '2026-04-08T05:20:56Z' to: '2026-04-08T05:30:56Z' measurements: time_window: from: '2026-04-08T05:10:00Z' to: '2026-04-08T05:30:56Z' driving_time: PT10M56S waiting_time: PT0S working_time: PT10M break_time: PT0S rest_time: PT0S arriving_time: PT0S departure_time: PT0S total_time: PT20M56S distance: 9897 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: 1 capacity: mass: 1 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 stop_demands: - demand_key: demand_3_work event_key: demand_3_work_event demand_time_window: from: '2026-04-08T05:38:49Z' to: '2026-04-08T05:53:49Z' stop_time_window: from: '2026-04-08T05:38:49Z' to: '2026-04-08T05:53:49Z' measurements: time_window: from: '2026-04-08T05:30:56Z' to: '2026-04-08T05:53:49Z' driving_time: PT7M53S waiting_time: PT0S working_time: PT15M break_time: PT0S rest_time: PT0S arriving_time: PT0S departure_time: PT0S total_time: PT22M53S distance: 7030 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: 0 capacity: mass: 0 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 locations_statistics: [] task_statistics: planning_horizon: from: '2026-04-07T21:00:00Z' to: '2026-04-08T21:00:59Z' quality: locations_limits_penalty: 0 soft_time_window_violations: before: demand_keys: [] count: 0 after: demand_keys: [] count: 0 hard_time_window_violations: before: demand_keys: [] count: 0 after: demand_keys: [] count: 0 calculation_progress: 100 calculation_info: status: FINISHED_IN_TIME result_version: 106 preparing_time: PT0S business_validation_time: PT0S math_validation_time: PT0S waiting_time: PT4.022S calculation_time: PT1.012S warnings: [] unplanned_items: order_keys: [] order_keys_count: 0 performer_keys: [] performer_keys_count: 0 transport_keys: [] transport_keys_count: 0 hardlink_keys: [] hardlink_keys_count: 0 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: '2026-04-08T05:00:00+00:00' to: '2026-04-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: '2026-04-07T21:00:00+00:00' to: '2026-04-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: '2026-04-08T05:00:00+00:00' to: '2026-04-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: '2026-04-07T21:00:00+00:00' to: '2026-04-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: '2026-04-08T05:00:00+00:00' to: '2026-04-08T07:00:00+00:00' performers: - key: performer_1 shifts: - key: performer_1_shift availability_time: from: '2026-04-07T21:00:00+00:00' to: '2026-04-08T20:59:59+00:00' working_time: from: '2026-04-07T21:00:00+00:00' to: '2026-04-08T20:59:59+00:00' tariff: cost_per_shift: 1000 constraints: - stage_length: PT10H cost_per_unit: 1 transports: - key: transport_1 shifts: - key: transport_1_shift availability_time: from: '2026-04-07T21:00:00+00:00' to: '2026-04-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: '2026-04-08T04:38:34Z' to: '2026-04-08T05:53:39Z' transport: transport_key: transport_1 shift_key: transport_1_shift shift_time: from: '2026-04-08T04:38:34Z' to: '2026-04-08T05:53:39Z' states: - time: '2026-04-08T04:38:34Z' flags: - INSIDE_LOCATION - AROUND_LOCATION location_key: location_storage cargo_actions: [] attributes: [] - time: '2026-04-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_actions: [] attributes: [] - time: '2026-04-08T04:38:34Z' flags: - INSIDE_LOCATION - AROUND_LOCATION location_key: location_storage cargo_actions: - box_key: box_1 cargo_key: order_2_cargos cargo_action_type: ADD attributes: [] - time: '2026-04-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_actions: - box_key: box_1 cargo_key: order_2_cargos cargo_action_type: ADD attributes: [] - time: '2026-04-08T04:38:34Z' flags: - INSIDE_LOCATION - AROUND_LOCATION location_key: location_storage cargo_actions: - box_key: box_1 cargo_key: order_1_cargos cargo_action_type: ADD - box_key: box_1 cargo_key: order_2_cargos cargo_action_type: ADD attributes: [] - time: '2026-04-08T04:38:34Z' flags: - RELOCATING cargo_actions: - box_key: box_1 cargo_key: order_1_cargos cargo_action_type: ADD - box_key: box_1 cargo_key: order_2_cargos cargo_action_type: ADD attributes: [] - time: '2026-04-08T05:00:00Z' flags: - INSIDE_LOCATION - AROUND_LOCATION location_key: location_client_2 cargo_actions: - box_key: box_1 cargo_key: order_1_cargos cargo_action_type: ADD - box_key: box_1 cargo_key: order_2_cargos cargo_action_type: ADD attributes: [] - time: '2026-04-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_actions: - box_key: box_1 cargo_key: order_1_cargos cargo_action_type: ADD - box_key: box_1 cargo_key: order_2_cargos cargo_action_type: ADD attributes: [] - time: '2026-04-08T05:10:00Z' flags: - INSIDE_LOCATION - AROUND_LOCATION location_key: location_client_2 cargo_actions: - box_key: box_1 cargo_key: order_1_cargos cargo_action_type: ADD attributes: [] - time: '2026-04-08T05:10:00Z' flags: - RELOCATING cargo_actions: - box_key: box_1 cargo_key: order_1_cargos cargo_action_type: ADD attributes: [] - time: '2026-04-08T05:20:52Z' flags: - INSIDE_LOCATION - AROUND_LOCATION location_key: location_client_1 cargo_actions: - box_key: box_1 cargo_key: order_1_cargos cargo_action_type: ADD attributes: [] - time: '2026-04-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_actions: - box_key: box_1 cargo_key: order_1_cargos cargo_action_type: ADD attributes: [] - time: '2026-04-08T05:30:52Z' flags: - INSIDE_LOCATION - AROUND_LOCATION location_key: location_client_1 cargo_actions: [] attributes: [] - time: '2026-04-08T05:30:52Z' flags: - RELOCATING cargo_actions: [] attributes: [] - time: '2026-04-08T05:38:39Z' flags: - INSIDE_LOCATION - AROUND_LOCATION location_key: location_client_3 cargo_actions: [] attributes: [] - time: '2026-04-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_actions: [] attributes: [] - time: '2026-04-08T05:53:39Z' flags: - INSIDE_LOCATION - AROUND_LOCATION location_key: location_client_3 cargo_actions: [] attributes: [] waitlist: [] attributes: [] ReplanResultMoscow: summary: Moscow value: tracedata: process_code: 11111111-2222-3333-4444-555555555555 request_code: aaaaaaaa-bbbb-cccc-dddd-eeeeeeeeeeee username: example_username company: example_company env: edge7 pod: aaaaaaaa-2222-cccc-4444-eeeeeeeeeeee service: UNIVERSAL operation: run_replan_calculation time: '2026-04-28T17:06:33.856Z' trips: - key: d56f86e9-c50a-40d3-b5ef-616eacc98db0-performer_1_shift performer: performer_key: performer_1 shift_key: performer_1_shift shift_time: from: '2026-04-08T04:39:34Z' to: '2026-04-08T05:53:49Z' transport: transport_key: transport_1 shift_key: transport_1_shift shift_time: from: '2026-04-08T04:39:34Z' to: '2026-04-08T05:53:49Z' states: - time: '2026-04-08T04:39:34Z' flags: - INSIDE_LOCATION - AROUND_LOCATION location_key: location_storage cargo_actions: [] attributes: [] - time: '2026-04-08T04:39:34Z' flags: - INSIDE_EVENT_HARD_WINDOW - INSIDE_LOCATION - AROUND_LOCATION - INSIDE_LOCATION_WINDOW - ON_DEMAND order_key: order_2 demand_key: demand_2_pickup event_key: demand_2_pickup_event location_key: location_storage cargo_actions: [] attributes: [] - time: '2026-04-08T04:39:34Z' flags: - INSIDE_LOCATION - AROUND_LOCATION location_key: location_storage cargo_actions: - box_key: box_1 cargo_key: order_2_cargos cargo_action_type: ADD attributes: [] - time: '2026-04-08T04:39:34Z' flags: - INSIDE_EVENT_HARD_WINDOW - INSIDE_LOCATION - AROUND_LOCATION - INSIDE_LOCATION_WINDOW - ON_DEMAND order_key: order_1 demand_key: demand_1_pickup event_key: demand_1_pickup_event location_key: location_storage cargo_actions: [] attributes: [] - time: '2026-04-08T04:39:34Z' flags: - INSIDE_LOCATION - AROUND_LOCATION location_key: location_storage cargo_actions: - box_key: box_1 cargo_key: order_1_cargos cargo_action_type: ADD attributes: [] - time: '2026-04-08T04:39:34Z' flags: - AROUND_LOCATION location_key: location_storage cargo_actions: [] attributes: [] - time: '2026-04-08T04:39:34Z' flags: - RELOCATING cargo_actions: [] attributes: [] - time: '2026-04-08T05:00:00Z' flags: - AROUND_LOCATION location_key: location_client_2 cargo_actions: [] attributes: [] - time: '2026-04-08T05:00:00Z' flags: - INSIDE_LOCATION - AROUND_LOCATION location_key: location_client_2 cargo_actions: [] attributes: [] - time: '2026-04-08T05:00:00Z' flags: - INSIDE_EVENT_HARD_WINDOW - INSIDE_LOCATION - AROUND_LOCATION - INSIDE_LOCATION_WINDOW - ON_DEMAND order_key: order_2 demand_key: demand_2_drop event_key: demand_2_drop_event location_key: location_client_2 cargo_actions: [] attributes: [] - time: '2026-04-08T05:10:00Z' flags: - INSIDE_LOCATION - AROUND_LOCATION location_key: location_client_2 cargo_actions: - box_key: box_1 cargo_key: order_2_cargos cargo_action_type: REMOVE attributes: [] - time: '2026-04-08T05:10:00Z' flags: - AROUND_LOCATION location_key: location_client_2 cargo_actions: [] attributes: [] - time: '2026-04-08T05:10:00Z' flags: - RELOCATING cargo_actions: [] attributes: [] - time: '2026-04-08T05:20:56Z' flags: - AROUND_LOCATION location_key: location_client_1 cargo_actions: [] attributes: [] - time: '2026-04-08T05:20:56Z' flags: - INSIDE_LOCATION - AROUND_LOCATION location_key: location_client_1 cargo_actions: [] attributes: [] - time: '2026-04-08T05:20:56Z' flags: - INSIDE_EVENT_HARD_WINDOW - INSIDE_LOCATION - AROUND_LOCATION - INSIDE_LOCATION_WINDOW - ON_DEMAND order_key: order_1 demand_key: demand_1_drop event_key: demand_1_drop_event location_key: location_client_1 cargo_actions: [] attributes: [] - time: '2026-04-08T05:30:56Z' flags: - INSIDE_LOCATION - AROUND_LOCATION location_key: location_client_1 cargo_actions: - box_key: box_1 cargo_key: order_1_cargos cargo_action_type: REMOVE attributes: [] - time: '2026-04-08T05:30:56Z' flags: - AROUND_LOCATION location_key: location_client_1 cargo_actions: [] attributes: [] - time: '2026-04-08T05:30:56Z' flags: - RELOCATING cargo_actions: [] attributes: [] - time: '2026-04-08T05:38:49Z' flags: - AROUND_LOCATION location_key: location_client_3 cargo_actions: [] attributes: [] - time: '2026-04-08T05:38:49Z' flags: - INSIDE_LOCATION - AROUND_LOCATION location_key: location_client_3 cargo_actions: [] attributes: [] - time: '2026-04-08T05:38:49Z' flags: - INSIDE_EVENT_HARD_WINDOW - INSIDE_LOCATION - AROUND_LOCATION - INSIDE_LOCATION_WINDOW - ON_DEMAND order_key: order_3 demand_key: demand_3_work event_key: demand_3_work_event location_key: location_client_3 cargo_actions: [] attributes: [] - time: '2026-04-08T05:53:49Z' flags: - INSIDE_LOCATION - AROUND_LOCATION location_key: location_client_3 cargo_actions: [] attributes: [] name: 1-HVFB waitlist: [] attributes: [] statistics: total_statistics: cost: 6795.37 reward: 3000.3 profit: 0 measurements: time_window: from: '2026-04-08T04:39:34Z' to: '2026-04-08T05:53:49Z' driving_time: PT39M15S waiting_time: PT0S working_time: PT35M break_time: PT0S rest_time: PT0S arriving_time: PT0S departure_time: PT0S total_time: PT1H14M15S distance: 34037 trips_count: 1 performers_count: 1 orders_count: 3 plan_orders_count: 3 waitlist_orders_count: 0 stops_count: 4 locations_count: 4 cargo_capacity_sum: mass: 2 volume: 0 capacity_a: 0 capacity_b: 0 capacity_c: 0 cargo_capacity_ratio: mass: 0.007 volume: 0 capacity_a: 0 capacity_b: 0 capacity_c: 0 max_transport_load: mass: 0.007 volume: 0 capacity_a: 0 capacity_b: 0 capacity_c: 0 average_speed: 34.037 round_trips_count: 1 trips_statistics: - trip_key: d56f86e9-c50a-40d3-b5ef-616eacc98db0-performer_1_shift general_statistics: cost: 6795.37 reward: 3000.3 profit: -3795.07 measurements: time_window: from: '2026-04-08T04:39:34Z' to: '2026-04-08T05:53:49Z' driving_time: PT39M15S waiting_time: PT0S working_time: PT35M break_time: PT0S rest_time: PT0S arriving_time: PT0S departure_time: PT0S total_time: PT1H14M15S distance: 34037 trips_count: 1 performers_count: 1 orders_count: 3 plan_orders_count: 3 waitlist_orders_count: 0 stops_count: 4 locations_count: 4 cargo_capacity_sum: mass: 2 volume: 0 capacity_a: 0 capacity_b: 0 capacity_c: 0 cargo_capacity_ratio: mass: 0.007 volume: 1 capacity_a: 1 capacity_b: 1 capacity_c: 1 max_transport_load: mass: 0.007 volume: 1 capacity_a: 1 capacity_b: 1 capacity_c: 1 average_speed: 34.037 round_trips_count: 1 load_statistics: 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 stop_statistics: - location_key: location_storage stop_demands: - demand_key: demand_2_pickup event_key: demand_2_pickup_event demand_time_window: from: '2026-04-08T04:39:34Z' to: '2026-04-08T04:39:34Z' - demand_key: demand_1_pickup event_key: demand_1_pickup_event demand_time_window: from: '2026-04-08T04:39:34Z' to: '2026-04-08T04:39:34Z' stop_time_window: from: '2026-04-08T04:39:34Z' to: '2026-04-08T04:39:34Z' measurements: time_window: from: '2026-04-08T04:39:34Z' to: '2026-04-08T04:39:34Z' driving_time: PT0S waiting_time: PT0S working_time: PT0S break_time: PT0S rest_time: PT0S arriving_time: PT0S departure_time: PT0S total_time: PT0S distance: 0 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: 2 capacity: mass: 2 volume: 0 capacity_a: 0 capacity_b: 0 capacity_c: 0 - location_key: location_client_2 stop_demands: - demand_key: demand_2_drop event_key: demand_2_drop_event demand_time_window: from: '2026-04-08T05:00:00Z' to: '2026-04-08T05:10:00Z' stop_time_window: from: '2026-04-08T05:00:00Z' to: '2026-04-08T05:10:00Z' measurements: time_window: from: '2026-04-08T04:39:34Z' to: '2026-04-08T05:10:00Z' driving_time: PT20M26S waiting_time: PT0S working_time: PT10M break_time: PT0S rest_time: PT0S arriving_time: PT0S departure_time: PT0S total_time: PT30M26S distance: 17110 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: 2 capacity: mass: 2 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: 1 capacity: mass: 1 volume: 0 capacity_a: 0 capacity_b: 0 capacity_c: 0 - location_key: location_client_1 stop_demands: - demand_key: demand_1_drop event_key: demand_1_drop_event demand_time_window: from: '2026-04-08T05:20:56Z' to: '2026-04-08T05:30:56Z' stop_time_window: from: '2026-04-08T05:20:56Z' to: '2026-04-08T05:30:56Z' measurements: time_window: from: '2026-04-08T05:10:00Z' to: '2026-04-08T05:30:56Z' driving_time: PT10M56S waiting_time: PT0S working_time: PT10M break_time: PT0S rest_time: PT0S arriving_time: PT0S departure_time: PT0S total_time: PT20M56S distance: 9897 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: 1 capacity: mass: 1 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 stop_demands: - demand_key: demand_3_work event_key: demand_3_work_event demand_time_window: from: '2026-04-08T05:38:49Z' to: '2026-04-08T05:53:49Z' stop_time_window: from: '2026-04-08T05:38:49Z' to: '2026-04-08T05:53:49Z' measurements: time_window: from: '2026-04-08T05:30:56Z' to: '2026-04-08T05:53:49Z' driving_time: PT7M53S waiting_time: PT0S working_time: PT15M break_time: PT0S rest_time: PT0S arriving_time: PT0S departure_time: PT0S total_time: PT22M53S distance: 7030 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: 0 capacity: mass: 0 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 locations_statistics: [] task_statistics: planning_horizon: from: '2026-04-07T21:00:00Z' to: '2026-04-08T21:00:59Z' quality: locations_limits_penalty: 0 soft_time_window_violations: before: demand_keys: [] count: 0 after: demand_keys: [] count: 0 hard_time_window_violations: before: demand_keys: [] count: 0 after: demand_keys: [] count: 0 calculation_progress: 100 calculation_info: status: FINISHED_IN_TIME result_version: 106 preparing_time: PT0S business_validation_time: PT0S math_validation_time: PT0S waiting_time: PT4.022S calculation_time: PT1.012S warnings: [] unplanned_items: order_keys: [] order_keys_count: 0 performer_keys: [] performer_keys_count: 0 transport_keys: [] transport_keys_count: 0 hardlink_keys: [] hardlink_keys_count: 0 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: '2026-04-08T05:00:00+00:00' to: '2026-04-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: '2026-04-07T21:00:00+00:00' to: '2026-04-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: '2026-04-08T05:00:00+00:00' to: '2026-04-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: '2026-04-07T21:00:00+00:00' to: '2026-04-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: '2026-04-08T05:00:00+00:00' to: '2026-04-08T07:00:00+00:00' performers: - key: performer_1 shifts: - key: performer_1_shift availability_time: from: '2026-04-07T21:00:00+00:00' to: '2026-04-08T20:59:59+00:00' working_time: from: '2026-04-07T21:00:00+00:00' to: '2026-04-08T20:59:59+00:00' tariff: cost_per_shift: 1000 constraints: - stage_length: PT10H cost_per_unit: 1 transports: - key: transport_1 shifts: - key: transport_1_shift availability_time: from: '2026-04-07T21:00:00+00:00' to: '2026-04-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: '2026-04-08T04:38:34Z' to: '2026-04-08T05:53:39Z' transport: transport_key: transport_1 shift_key: transport_1_shift shift_time: from: '2026-04-08T04:38:34Z' to: '2026-04-08T05:53:39Z' states: - time: '2026-04-08T04:38:34Z' flags: - INSIDE_LOCATION - AROUND_LOCATION location_key: location_storage cargo_actions: [] attributes: [] - time: '2026-04-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_actions: [] attributes: [] - time: '2026-04-08T04:38:34Z' flags: - INSIDE_LOCATION - AROUND_LOCATION location_key: location_storage cargo_actions: - box_key: box_1 cargo_key: order_2_cargos cargo_action_type: ADD attributes: [] - time: '2026-04-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_actions: - box_key: box_1 cargo_key: order_2_cargos cargo_action_type: ADD attributes: [] - time: '2026-04-08T04:38:34Z' flags: - INSIDE_LOCATION - AROUND_LOCATION location_key: location_storage cargo_actions: - box_key: box_1 cargo_key: order_1_cargos cargo_action_type: ADD - box_key: box_1 cargo_key: order_2_cargos cargo_action_type: ADD attributes: [] - time: '2026-04-08T04:38:34Z' flags: - RELOCATING cargo_actions: - box_key: box_1 cargo_key: order_1_cargos cargo_action_type: ADD - box_key: box_1 cargo_key: order_2_cargos cargo_action_type: ADD attributes: [] - time: '2026-04-08T05:00:00Z' flags: - INSIDE_LOCATION - AROUND_LOCATION location_key: location_client_2 cargo_actions: - box_key: box_1 cargo_key: order_1_cargos cargo_action_type: ADD - box_key: box_1 cargo_key: order_2_cargos cargo_action_type: ADD attributes: [] - time: '2026-04-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_actions: - box_key: box_1 cargo_key: order_1_cargos cargo_action_type: ADD - box_key: box_1 cargo_key: order_2_cargos cargo_action_type: ADD attributes: [] - time: '2026-04-08T05:10:00Z' flags: - INSIDE_LOCATION - AROUND_LOCATION location_key: location_client_2 cargo_actions: - box_key: box_1 cargo_key: order_1_cargos cargo_action_type: ADD attributes: [] - time: '2026-04-08T05:10:00Z' flags: - RELOCATING cargo_actions: - box_key: box_1 cargo_key: order_1_cargos cargo_action_type: ADD attributes: [] - time: '2026-04-08T05:20:52Z' flags: - INSIDE_LOCATION - AROUND_LOCATION location_key: location_client_1 cargo_actions: - box_key: box_1 cargo_key: order_1_cargos cargo_action_type: ADD attributes: [] - time: '2026-04-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_actions: - box_key: box_1 cargo_key: order_1_cargos cargo_action_type: ADD attributes: [] - time: '2026-04-08T05:30:52Z' flags: - INSIDE_LOCATION - AROUND_LOCATION location_key: location_client_1 cargo_actions: [] attributes: [] - time: '2026-04-08T05:30:52Z' flags: - RELOCATING cargo_actions: [] attributes: [] - time: '2026-04-08T05:38:39Z' flags: - INSIDE_LOCATION - AROUND_LOCATION location_key: location_client_3 cargo_actions: [] attributes: [] - time: '2026-04-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_actions: [] attributes: [] - time: '2026-04-08T05:53:39Z' flags: - INSIDE_LOCATION - AROUND_LOCATION location_key: location_client_3 cargo_actions: [] attributes: [] waitlist: [] attributes: [] responses: '200': description: Calculation completed successfully content: application/json: schema: $ref: '#/components/schemas/calculation_state' '202': description: Calculation in progress, intermediate results returned content: application/json: schema: $ref: '#/components/schemas/calculation_state' '299': description: Calculation completed, problems encountered during the calculation process content: application/json: schema: $ref: '#/components/schemas/calculation_state' '401': description: Unauthorized - incorrect authorization details, token is missing or invalid '402': description: Payment Required content: application/json: schema: $ref: '#/components/schemas/general_402' '403': description: Forbidden - no permission to execute this operation content: application/json: schema: $ref: '#/components/schemas/general_403' '404': description: Not found content: application/json: schema: $ref: '#/components/schemas/general_404' '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: $ref: '#/components/schemas/general_429' '500': description: Internal server error content: application/json: schema: $ref: '#/components/schemas/general_500' '501': description: Not implemented '502': description: Bad gateway '503': description: Service unavailable '504': description: Gateway timeout 400_with_errors_and_warnings: description: Bad request - data contain errors content: application/json: schema: $ref: '#/components/schemas/universal_400_with_errors_and_warnings' examples: Result400: $ref: '#/components/examples/Result400' parameters: process_code: name: process_code description: Unique process identifier. in: path required: true schema: $ref: '#/components/schemas/process_code' remove_locations: name: remove_locations description: 'Flag responsible for deleting a location when cleaning data. If `true` is specified, locations that are not referenced by any entity in the dataset are deleted. ' in: query required: false schema: description: 'Flag responsible for deleting a location when cleaning data. If `true` is specified, locations that are not referenced by any entity in the dataset are deleted. ' type: boolean default: false example: true timezone: name: timezone description: Target time zone. in: query required: false schema: $ref: '#/components/schemas/timezone' filename: name: filename description: File name. in: path required: true schema: description: File name. type: string minLength: 6 maxLength: 128 example: file_en.html x-tagGroups: - name: Calculation tags: - Plan - Actualize - Replan - name: Datasets tags: - XLSX-format - Convert - name: Maintenance tags: - System