openapi: 3.0.3 info: title: VRt.Universal [UV] version: 7.19.2779 license: name: Proprietary url: https://veeroute.cn/ termsOfService: https://veeroute.cn/resources/terms_of_service contact: name: Veeroute Support Team email: servicedesk@veeroute.com x-logo: url: ../images/universal.svg backgroundColor: '#FAFAFA' altText: VRt.Universal description: '# 描述 用于通用航班规划的软件接口。 ## 功能 * 支持从任意地点提取货物 * 支持在任意地点卸货 * 多种类型的配对申请:`PICKUP`(装载)、`DROP`(卸载) * 多种类型的独立申请:`DROP_FROM_BOX`(卸载已在车厢内的货物)、`PICKUP_TO_BOX`(将货物装入车厢且不后续卸载)、`WORK`(在无货物移动的地点工作) * 复合订单可包含任意数量和类型的申请 * 运输工具与执行者分为独立实体,规划时自动优化分配执行者到运输工具 * 运输工具拥有多个隔间,每个隔间可容纳货物并具备独立特性 * 根据货物尺寸(长、宽、高及容量参数)验证货物与运输工具的兼容性 * 验证货物与运输隔间的兼容性(隔间特性如冷藏、保温袋、固定装置等) * 替代申请——可选择基于地理位置和时间窗口的替代申请执行 ## 支持的限制条件 **执行者**的限制: * 起始/结束位置 * 考虑执行者前往运输工具起始点的移动 * 执行者可用时间表——可执行移动或地点工作的时段列表 * 执行者在特定时间段内的最大工作时长 **运输工具**的限制: * 起始/结束位置 * 运输工具可用时间表——可执行移动的时段列表 * 路线最大长度 * 多个隔间,每个隔间有独立参数 * 总容量上限(重量、体积、订单数、申请数) **订单**的限制: * 严格时间窗口 * 可指定地点工作窗口与申请执行窗口的不同允许范围 * 路线内申请执行顺序的验证 * 期望执行时间窗口列表(每个窗口对应不同成本) ## 兼容性验证 若一实体的属性列表完全覆盖另一实体的要求列表,则视为兼容(`performer_blacklist` 相反——列表不得重叠)。 支持的兼容性: | 名称 | 要求 | 属性 | |---------------------|----------------------------|--------------------------| | 订单 - 执行者 | order.performer_restrictions | performer.performer_features | | 订单 - 非执行者 | order.performer_blacklist | performer.performer_features | | 货物 - 隔间 | order.cargo.box_restrictions | transport.box.box_features | | 地点 - 运输工具 | location.transport_restrictions | transport.transport_features | | 运输工具 - 执行者 | transport.performer_restrictions | performer.performer_features | | 执行者 - 运输工具 | performer.transport_restrictions | transport.transport_features | | 订单 - 订单 | order.order_restrictions | order.order_features | | 货物 - 货物 | cargo.cargo_restrictions | cargo.cargo_features | 业务规则示例: | 名称 | 业务规则示例 | |---------------------|-----------------------------------------------------------------------------| | 订单 - 执行者 | 执行订单的驾驶员需持有特殊许可证 | | 订单 - 非执行者 | 黑名单中的驾驶员 | | 货物 - 隔间 | 运输冷冻产品需配备特殊温控隔间 | | 地点 - 运输工具 | 运输工具高度限制 | | 运输工具 - 执行者 | 驾驶货运车辆需持有 `C` 类驾照 | | 执行者 - 运输工具 | 驾驶员仅允许操作特定运输工具 | | 订单 - 订单 | 禁止在同一隔间同时运输鱼类和水果 | | 货物 - 货物 | 两件货物不可同时置于同一隔间,但可顺序放置 | ## 分配机制 分配机制(`hardlinks`)用于指定订单、执行者和运输工具必须处于同一航班的要求。 分配仅保证实体处于同一航班,不保证实际规划结果。例如,若执行者无法按时完成订单,则不会被规划,但仍会被分配至航班(进入 `waitlist`)。 分配不覆盖已定义的兼容性(及兼容性违规的惩罚)。例如,若订单无法由执行者完成,则不会被规划,但仍会被分配至航班(进入 `waitlist`)。 ## 货物在车厢内的放置 支持以下旋转方式(以 90 度为步长): * `ALL`——可绕任意轴多次旋转 * `YAW`——可绕垂直轴(自转轴)旋转一次 * `PITCH`——可绕横向轴(垂直方向)旋转一次 * `ROLL`——可绕纵向轴(侧放)旋转一次 ![rotation](../images/universal_cargo_yaw_pitch_roll.svg) ## 航班模型 航班通过执行者状态列表描述,执行者可同时处于多个状态(例如在地点工作窗口内并在同一地点执行订单)。 地理位置标志(可同时多个生效): * `AROUND_LOCATION`——执行者位于地点附近(正在停车或驶离) * `INSIDE_LOCATION`——执行者位于地点内 时间窗口标志(可同时多个生效): * `INSIDE_WORKING_WINDOW`——执行者处于工作时段内 * `INSIDE_LOCATION_WINDOW`——执行者处于地点开放时段内 * `INSIDE_EVENT_HARD_WINDOW`——执行者处于硬性时间窗口内 * `INSIDE_EVENT_SOFT_WINDOW`——执行者处于柔性时间窗口内 动作标志(仅一个生效): * `ON_DEMAND`——执行者开始处理申请 * `WAITING`——执行者开始等待 * `RELOCATING`——执行者开始移动至下一站点 * `BREAK`——执行者开始休息 * `REST`——执行者开始长时间休息 * `ARRIVAL`——执行者开始停车 * `DEPARTURE`——执行者完成驶离 逻辑状态标志: * `DURING_ROUNDTRIP`——执行者正在执行循环航班 ### 多状态路线示例 | 时间 | 激活标志组合 | 地点 / 订单 / 申请 / 事件 | 备注 | |:-------|:----------------------------------------------------------------------------------------------------------------------------------------------------|:-------------------------|:------------------------------| | 10:00 | INSIDE_LOCATION
AROUND_LOCATION | 2 / - / - / - | 起始地点 | | 10:05 | AROUND_LOCATION
DEPARTURE | 2 / - / - / - | 驶离停车点 | | 10:10 | RELOCATING
DEPARTURE | 2 / - / - / - | 前往第一个订单 | | 10:20 | AROUND_LOCATION
ARRIVAL | 2 / - / - / - | 到达第一个订单地点 | | 10:40 | AROUND_LOCATION
INSIDE_LOCATION
WAITING | 2 / - / - / - | 完成停车 | | 11:00 | AROUND_LOCATION
INSIDE_LOCATION
INSIDE_LOCATION_WINDOW
WAITING
INSIDE_EVENT_HARD_WINDOW | 2 / - / - / - | 等待地点开放与订单可用时间重叠 | | 11:25 | AROUND_LOCATION
INSIDE_LOCATION
INSIDE_LOCATION_WINDOW
ON_DEMAND
INSIDE_WORKING_WINDOW
INSIDE_EVENT_HARD_WINDOW | 2 / 1 / 2 / 3 | 等待执行者切换 | | 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 | 工作中触发柔性窗口 | | 11:40 | AROUND_LOCATION
INSIDE_LOCATION
INSIDE_LOCATION_WINDOW
INSIDE_WORKING_WINDOW | 2 / - / - / - | 完成工作 | | 11:45 | AROUND_LOCATION
DEPARTURE
INSIDE_WORKING_WINDOW | 2 / - / - /- | 驶离停车点 | | 11:45 | RELOCATING
INSIDE_WORKING_WINDOW | - / - / - / - | 前往下一订单 | ## 循环航班 航班由一个或多个循环航班组成。 循环航班标志 `DURING_ROUNDTRIP` 在开始处理申请时激活,并在以下三种情况之一解除: * 执行者到达某地点以停止使用运输工具 * 执行者到达分割循环航班的地点 * 执行者在非分割点地点完成其他操作后停止使用运输工具 两个循环航班之间不可插入 `RELOCATING` 状态,但允许插入 `WAITING`、`BREAK`、`REST`。 分割航班循环的地点需满足以下条件之一: * 地点设置了通行能力限制 `timetable.limits`(可能有多个分割点) * 地点同时是所有执行者、运输工具及 `PICKUP` 类型申请的起止点(仅一个分割点) 示例分割点(根据任务设定): * 配送中心(长途运输至商店或仓库) * 商店或仓库(最后一公里配送至客户) * 垃圾填埋场(垃圾清运任务) ## 规划配置 每个规划任务可指定配置,以定义目标函数、路线质量与计算速度。 规划配置名称通过字段 `trips_settings.configuration` 传递。 主要配置: | 名称 | 目标 | |-----------------------------|----------------------------------------------------------------------------------------------------| | **optimize_distance** | 尽可能安排更多订单,然后优化总里程(根据里程选择运输工具数量),默认配置 | | **optimize_transports** | 尽可能安排更多订单,同时最小化运输工具使用量,条件相同时优化执行者工作时间 | | **optimize_locality_grouping** | 尽可能安排更多订单,同时优化路线的视觉分组(不减少路线数量) | | **optimize_cars_then_distance** | 尽可能安排更多订单,先优化运输工具数量,再优化里程 | | **optimize_time** | 尽可能安排更多订单,然后优化执行者总工作时间 | | **optimize_cars_then_time** | 尽可能安排更多订单,先优化运输工具数量,再优化执行者总工作时间 | | **optimize_money** | 优化“利润-成本”(基于订单奖励与执行者、运输工具成本,确保非负) | 附加配置: | 名称 | 目标 | |-------------------------------------------------------|----------------------------------------------------------------------------------------------------| | **visual_grouping** | 尽可能安排更多订单,同时最小化运输工具并使路线视觉分组 | | **optimize_visual_grouping** | 尽可能安排更多订单,然后根据交通可达区域均匀分配订单(视觉分组逻辑不同) | | **optimize_cars_then_locality_grouping** | 尽可能安排更多订单,先优化运输工具数量,再优化路线视觉分组 | | **optimize_cars_then_single_location_grouping_sequenced** | 尽可能安排更多订单,先优化运输工具数量,再优化可靠性 | 可根据客户业务流程定制目标函数([申请配置](mailto:servicedesk@veeroute.com))。 开发推荐使用 **optimize_cars_then_distance**,因该配置无需详细设置费率与订单成本。 ## 数据验证 输入数据验证包含以下步骤: ### 1. 模式检查 若请求不符合模式,则规划整体终止,返回 400 错误及 `schema_errors`。 建议在发送前通过模式(或 YAML 文件)验证请求。 ### 2. 逻辑错误检查(阻止规划继续) 符合模式的数据将检查是否存在使规划无法进行的逻辑错误。 示例错误:引用空实体、所有订单与执行者不兼容等。返回 400 错误及 `logical_errors`。 ### 3. 实体单独检查 未通过检查的实体将从规划任务中移除。 根据 `treat_warnings_as_errors` 设置,结果以 400 错误返回至 `warnings` 或包含在规划结果中。 ### 4. 规划过程中的检查 部分检查仅在规划过程中执行(例如根据费率与交通预测无法到达某地点)。结果返回至 `warnings` 或规划结果中。 ## 实体关系图 ![erd](../uml/universal.svg) ' servers: - url: https://api.edge7.veeroute.cloud description: 用于集成和早期访问新功能的环境 - url: https://api.prod7.veeroute.cloud description: 生产环境 security: - ApiKeyAuth: [] tags: - name: Plan description: '规划——根据订单、表演者和交通数据,制定考虑到所有指定限制的行程。 调度请求可以以同步(用于测试)和异步(用于一般用途)模式执行。 要获取原始任务上的 run-plan-refine 操作的结果,请使用 [run-plan-refine](#operation/run_plan_refine)。 ' - name: Actualize description: '更新航班 - 根据事实更新完成订单的计划时间,而不更改绕行订单。 更新分为三个阶段进行——验证、事实应用、未完成航班状态的时间规划。 要获得清理结果并将事实应用于原始任务,请使用[数据清理](#operation/run_actualize_refine)函数。 由此产生的航班不会改变表演者、运输或订单执行顺序,并且仅包含那些尚待完成的工作。 无法完成的订单仍分配给表演者并进入“等候名单”。 现有航班的核算: * 航班转变为“硬链接”目的地 - 即分配的表演者和交通班次不能用于其他航班。 * 替换事件从请求中删除,并使用“precedence_in_trip”固定执行顺序,如果请求已经指定了执行顺序,则会被覆盖。 当前时间核算: * 如果数据中没有指定当前时间 `actualize_settings.current_time`,则使用服务器收到请求的时间。 * 仅考虑在“actualize_settings.current_time”之前发生的事件。 * 如果当前时间大于所有事件和移位的时间窗口的左边界,则将左边界移至当前时间。 * 所有事件和班次的时间窗口右边界添加了允许延迟时间“actualize_settings.max_delay_duration”。 * 仅当订单持续时间不允许订单在软时间窗口内完成时,才会调整软时间窗口。 考虑到改变位置“NEW_LOCATION”的事实: * 考虑到这一事实,“位置”列表必须包含一个描述表演者当前坐标的新位置。 * 如果航班已经开始(实际时间晚于航班预定的开始时间)——运输工具被视为与表演者位于同一位置——即执行者和运输工具的“start_location_key”发生变化。 * 如果航班尚未开始(实际时间早于航班预定的开始时间)——只有表演者的初始位置会发生变化,交通工具的位置仍保持原始数据。 * 如果有多个事实,则仅考虑“时间”字段中最新的事实。 考虑订单“ORDER_DONE”完成的事实: * 订单、其请求以及与其相关的位置将从更新数据中删除。 * 货物视为已从运输工具上卸下。 考虑到有关开始应用程序`DEMAND_START`工作的事实: * 每个航班只允许一个未关闭的“DEMAND_START”事实(由“DEMAND_DONE”事实关闭)——由于执行者一次只能满足一个请求,因此会考虑“时间”字段的最新事实。 * 处理请求所花费的时间会减少已经花费的时间(计算为“DEMAND_START”事实和“actualize_settings.current_time”之间的间隔长度)。 * 如果某个申请上存在与指定航班的计划顺序相矛盾的工作事实,则将首先完成该申请,然后继续按照计划顺序进行航班。 * 有关订单的事实比有关该订单的申请的事实具有更高的优先级(如果有关申请的事实与有关订单的事实相矛盾,则不会予以考虑)。 考虑有关“DEMAND_DONE”订单部分履行的事实: * 如果订单的所有请求都得到满足,则认为订单完成(操作类似于处理事实“ORDER_DONE”)。 * 如果“WORK”类型的请求已完成,则该请求将从订单中删除。 * 如果执行了`DROP`类型的请求,则该请求及其货物,以及相应的`PICKUP`类型的请求都将从订单中删除。 * 如果执行了类型为“DROP_FROM_BOX”的请求,则该请求及其货物将从订单中移除。 * 如果订单中有`PICKUP`类型的请求,那么对应的`DROP`类型的请求将会被转换为`DROP_FROM_BOX`类型的请求。 * 如果执行了 `PICKUP_TO_BOX` 类型的请求,则会删除请求和货物,并且相应隔间的运输容量会减少(在这种情况下,不会进行兼容性更改)。 ' - name: Replan description: 'Replanning - creating new trips based on existing trips, taking into account the facts. Replanning takes place in several stages - checking, applying facts and creating constraints for planning based on existing trips, planning. To get the result of cleaning and applying facts to the original task, use [data processing](#operation/run_replan_refine). 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 updating (when everything is prohibited `reorder: false, plan_new_orders: false, create_new_trips: false`). Orders that cannot be completed remain assigned to the performer and end up in the `waitlist`. Accounting for existing trips, current time and the order of applying facts - the logic from [actualization](#tag/Actualize) is used, taking into account the selected strategy: ' - name: Convert description: '数据转换。 ' - name: System description: '系统功能。 所有服务共有的辅助功能。 ' - name: XLSX Format description: 'Description of VRt.Universal XLSX format for import / data export. This format is a complete display of data JSON models and is used for: * initial data * process settings * calculation results * statistics on the calculation result Below is a description of each sheet separately. ## Data settings The name of the sheet `info`. | Title | Description | |-----------------|--------------------------------------------| | **api_version** | API version at the time of XLSX generation | | **timezone** | Time zone, used in all times in the data | | docs_ru | Link to documentation (RU) | | docs_en | Link to documentation (EN) | | docs_zh | Link to documentation (ZH) | ## Locations The name of the sheet `locations`. List of locations that are used in orders and shifts. The described object: ## Performers The name of the sheet is `performers`. List of available performers. The described object: ## Transports The name of the sheet `transports`. List of available transport. The described object: ## Boxes The name of the sheet is `transports.boxes`. List of transport boxes that can accommodate the load. The table is mandatory if there are orders with applications of types of `PICKUP` and `DROP`. In the description of the boxes, those fields that describe cargo are required. The described object: ## Orders The name of the sheet is `orders`. List of orders. The described object: ## Cargos The name of the sheet is `orders.cargos`. List of goods. It may contain one load for `DROP`, a list for `PICKUP`, empty for `WORK`. The table is not obligatory if all applications have the type `WORK`. The described object: ## Hardlinks The name of the sheet is `hardlinks`. List of hardlinks. The described object: ## Trips The name of the sheet `trips`. List of trips. The described object: ## Facts The name of the sheet is `facts`. List of facts. The described object: ## Plan settings The name of the sheet `plan_settings`. The described object: ## Actualize settings The name of the sheet is `actualize_settings`. The described object: ## Replan settings The name of the sheet is `replan_settings`. The described object: ## Total Statistics The name of the sheet is `total_statistics`. Total Statistics. The described object: ' externalDocs: description: 公司网站 Veeroute url: https://veeroute.cn/ 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: 检查服务可用性 description: 检查服务可用性。 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: 获取服务版本 description: 获取服务版本。 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: 检查服务可用性 description: 检查服务可用性。 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: '对于客户端 [认证](https://developer.mozilla.org/en-US/docs/Web/HTTP/Authentication) [JWT 令牌](https://en.wikipedia.org/wiki/JSON_Web_Token) 被使用, 必须在每个请求的标头中以以下格式指定: `授权:承载 `。 Token 可以通过 VRt.Account API 获取。 ' 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 nullable: true 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: '2025-09-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: '2025-09-21T19:45:00Z' required: - from - to capacity_limit: description: Capacity limits. type: object additionalProperties: false nullable: true 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 nullable: true 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 nullable: 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 nullable: false minItems: 0 maxItems: 5 items: $ref: '#/components/schemas/location_cargos_limit' location_transports_limit: description: 'Limiting the location''s ability to serve transport. ' type: object additionalProperties: false nullable: 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 nullable: false minItems: 0 maxItems: 5 items: $ref: '#/components/schemas/location_transports_limit' 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' 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' 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 minItems: 0 maxItems: 1000 uniqueItems: true default: [] items: $ref: '#/components/schemas/compatibility_tag' location_compatibilities: description: 'Location [compatibilities](#section/Description/Compatibilities). ' type: object additionalProperties: false nullable: true properties: transport_restrictions: description: 'List of transport requirements. Used to check whether the transport is compatible with the location. ' $ref: '#/components/schemas/compatibility_tag_list' 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 required: - key - value attributes: description: Attributes. Used to add service information. type: array minItems: 0 maxItems: 250 uniqueItems: true default: [] items: $ref: '#/components/schemas/attribute' 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: $ref: '#/components/schemas/location_compatibilities' name: $ref: '#/components/schemas/name' attributes: $ref: '#/components/schemas/attributes' required: - key - geopoint 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" nullable: false type: string enum: - PICKUP - DROP - WORK - PICKUP_TO_BOX - DROP_FROM_BOX example: WORK cargo_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 minItems: 0 maxItems: 1000 uniqueItems: true 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). 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: $ref: '#/components/schemas/time_window' default: null 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. ' 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_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 example: 1 default: 0 precedence_in_order: description: Precedence within an order, 0 - the precedence is not taken into account. type: integer format: int32 minimum: 0 maximum: 15001 example: 1 default: 0 possible_events: description: List of possible time windows and location keys to fulfil an order. type: array uniqueItems: true minItems: 1 maxItems: 25 items: $ref: '#/components/schemas/possible_event' name: $ref: '#/components/schemas/name' attributes: $ref: '#/components/schemas/attributes' required: - key - demand_type - possible_events capacity: description: Capacity characteristics. type: object additionalProperties: false nullable: true properties: mass: description: Weight in kilograms. type: number format: double minimum: 0 maximum: 1000000 default: 0 example: 10 volume: description: Volume in cubic meters. type: number format: double minimum: 0 maximum: 1000000 default: 0 example: 2 capacity_a: description: 'Additional 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 example: ALL cargo_rotation: description: "List of possibilities of a object rotations (90 degree step):\n\ \ * `ALL` - can rotate by any axis\n * `YAW` - can yaw\n * `PITCH` - can\ \ pitch\n * `ROLL` - can roll\n\nEmpty list means object rotations is prohibited.\n\ \nMore about [cargo placement](#section/Description/Cargo-placement)." type: array minItems: 0 maxItems: 4 uniqueItems: true default: [] items: $ref: '#/components/schemas/cargo_rotation_type' example: - ALL cargo_compatibilities: description: 'Cargo [compatibilities](#section/Description/Compatibilities). ' type: object additionalProperties: false nullable: true properties: width: description: Width in meters, used to check the transport box capacity. type: number format: double minimum: 0 maximum: 1000000 default: 0 example: 1 height: description: Height in meters, used to check the transport box capacity. type: number format: double minimum: 0 maximum: 1000000 default: 0 example: 0.3 length: description: Length in meters, used to check the transport box capacity. type: number format: double minimum: 0 maximum: 1000000 default: 0 example: 2.2 rotation: $ref: '#/components/schemas/cargo_rotation' box_restrictions: description: 'A list of necessary restrictions for the transport box in which this cargo can be transported. ' $ref: '#/components/schemas/compatibility_tag_list' cargo_features: 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. ' $ref: '#/components/schemas/compatibility_tag_list' cargo_restrictions: 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. ' $ref: '#/components/schemas/compatibility_tag_list' 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: $ref: '#/components/schemas/capacity' description: Cargo additive measures. compatibilities: $ref: '#/components/schemas/cargo_compatibilities' 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 minLength: 1 maxLength: 1024 nullable: true default: null example: box01 required: - key order_compatibilities: description: 'Order [compatibilities](#section/Description/Compatibilities). ' type: object additionalProperties: false nullable: true properties: order_features: description: 'Order features list. Used to check the compatibility of an order with other orders. Incompatible orders cannot be planned on the same trip. ' $ref: '#/components/schemas/compatibility_tag_list' order_restrictions: 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. ' $ref: '#/components/schemas/compatibility_tag_list' performer_restrictions: description: 'A list of necessary requirements for the performer who can fulfill this order. ' $ref: '#/components/schemas/compatibility_tag_list' performer_blacklist: description: 'A list of requirements that the performer is not allowed to have. This list should not intersect with `performer_restrictions`. ' $ref: '#/components/schemas/compatibility_tag_list' 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: 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 default: [] items: $ref: '#/components/schemas/cargo' compatibilities: $ref: '#/components/schemas/order_compatibilities' name: $ref: '#/components/schemas/name' attributes: $ref: '#/components/schemas/attributes' required: - key - demands performer_tariff_constraint: description: The paid period of time is an integral part of the tariff. type: object additionalProperties: false 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: List of components of the tariff. type: array minItems: 1 maxItems: 100 uniqueItems: false items: $ref: '#/components/schemas/performer_tariff_constraint' default: - stage_length: P30D cost_per_unit: 0.001 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 format: double nullable: true default: null minimum: 0 maximum: 1000000 example: 2000 time_duration_null: 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 nullable: true default: null example: PT2H12M34.3S rest: description: The condition for the onset and characteristics of a rest. type: object additionalProperties: false nullable: true 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 nullable: true properties: consecutive: $ref: '#/components/schemas/rest' description: The condition for the onset and characteristics of a consecutive break. required: - consecutive break: description: The condition for the onset and characteristics of a break. type: object additionalProperties: false nullable: true 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 nullable: true properties: first: description: The condition for the onset and characteristics of a first break. $ref: '#/components/schemas/break' consecutive: description: The condition for the onset and characteristics of a consecutive break. $ref: '#/components/schemas/break' relocating_duration_type: description: Type of accounting for time spent moving between locations (total or continuous). type: string nullable: false enum: - TOTAL - CONTINUOUS default: TOTAL example: CONTINUOUS required: - first work_and_rest_rules: description: 'Work and rest rules. ' type: object additionalProperties: false nullable: true properties: rest_rules: $ref: '#/components/schemas/rest_rules' break_rules: $ref: '#/components/schemas/break_rules' 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 ignore_location_keys: description: A list of location keys whose stay is not taken into account in the total 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 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 minLength: 1 maxLength: 1024 nullable: true 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 minLength: 1 maxLength: 1024 nullable: true 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 format: int32 minimum: 1 maximum: 1000 nullable: true default: null example: 15 max_stops: description: 'Limit of the number of stops in one trip. If not specified or null, number of stops is not limited. ' type: integer format: int32 minimum: 1 maximum: 1000 nullable: true default: null example: 15 tariff: $ref: '#/components/schemas/performer_tariff' work_and_rest_rules: $ref: '#/components/schemas/work_and_rest_rules' 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 minItems: 0 maxItems: 100 default: [] uniqueItems: true items: $ref: '#/components/schemas/feature_lifetime' performer_compatibilities: description: 'Performer [compatibilities](#section/Description/Compatibilities). ' type: object additionalProperties: false nullable: true 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: 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). ' $ref: '#/components/schemas/time_duration' required: - demand_key - additional_duration performer_limits: description: 'The performer limitations. ' type: object additionalProperties: false nullable: true properties: max_work_shifts: description: Limit of the number of performer's shifts in one planning. type: integer format: int32 minimum: 1 maximum: 31 default: 31 example: 3 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 all demands''s events. ' type: array minItems: 0 maxItems: 15001 uniqueItems: true items: $ref: '#/components/schemas/demand_extra_duration' 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: $ref: '#/components/schemas/performer_compatibilities' limits: $ref: '#/components/schemas/performer_limits' name: $ref: '#/components/schemas/name' attributes: $ref: '#/components/schemas/attributes' required: - key - shifts transport_tariff_constraint: description: Paid mileage is an integral part of the tariff. type: object additionalProperties: false 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 minItems: 1 maxItems: 100 uniqueItems: false items: $ref: '#/components/schemas/transport_tariff_constraint' default: - stage_length: 100000000 cost_per_unit: 0.001 transportation_cost: $ref: '#/components/schemas/capacity_cost' description: The cost of moving 1 unit of measure of cargo per 1 meter (for each capacity field, respectively), monetary unit. 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 minLength: 1 maxLength: 1024 nullable: true 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 minLength: 1 maxLength: 1024 nullable: true 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: 'A transport box [compatibilities](#section/Description/Compatibilities). ' type: object additionalProperties: false nullable: true properties: width: description: Width in meters. type: number format: double minimum: 0 maximum: 1000000 default: 0 example: 1 height: description: Height in meters. type: number format: double minimum: 0 maximum: 1000000 default: 0 example: 3.1 length: description: Length in meters. type: number format: double minimum: 0 maximum: 1000000 default: 0 example: 2.1 box_features: description: 'Box features list. Used to check whether the cargo is compatible with the box. ' $ref: '#/components/schemas/compatibility_tag_list' box_limits: description: 'Box limits. ' type: object additionalProperties: false nullable: true properties: max_one_cargo_capacity: $ref: '#/components/schemas/capacity' description: Limitation on the maximum size of one cargo. 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: $ref: '#/components/schemas/capacity' description: The box capacity, which limits the maximum amount for all `capacity` fields of *all* the cargoes. compatibilities: $ref: '#/components/schemas/box_compatibilities' limits: $ref: '#/components/schemas/box_limits' required: - key transport_compatibilities: description: 'Transport [compatibilities](#section/Description/Compatibilities). ' type: object additionalProperties: false nullable: true properties: transport_features: description: 'Transport features list. Used to check whether the transport is compatible with locations and performers. ' $ref: '#/components/schemas/compatibility_tag_list' transport_features_lifetimes: 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. ' $ref: '#/components/schemas/feature_lifetime_list' performer_restrictions: description: 'List of necessary requirements for the performer to use this transport. ' $ref: '#/components/schemas/compatibility_tag_list' transport_limits: description: 'Transport load limits. ' type: object additionalProperties: false nullable: true properties: max_boxes: description: 'Limit of the number of transports''s unique locations in one trip. If not specified or null, number of using boxes is not limited. The limit should not exceed the number of boxes. ' type: integer format: int32 nullable: true default: null minimum: 0 maximum: 100 example: 2 max_capacity: $ref: '#/components/schemas/capacity' description: 'Parameter limits overall transport load. If parameter not specified - loading is limited only to each box. Applicable only if the transport has more than one box. Parameter must not be less than the capacity of any box. ' 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' boxes: description: A list of transport boxes that can accommodate the cargo. type: array minItems: 0 maxItems: 100 items: $ref: '#/components/schemas/box' compatibilities: $ref: '#/components/schemas/transport_compatibilities' limits: $ref: '#/components/schemas/transport_limits' name: $ref: '#/components/schemas/name' attributes: $ref: '#/components/schemas/attributes' required: - key - shifts hardlink_element_type: description: 'Type of goal entity. It can be an order or a performer\transport shift. ' type: string 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 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.\nThe configuration determines\ \ the result goal and quality. \n[List of available](#section/Description/Planning-configuration)\ \ planning configurations." type: string minLength: 1 maxLength: 256 default: default example: optimize_distance trip_start_time_strategy: description: "The strategy of the choosing optimal trip start time:\n * `EARLIEST_FINISH`\n\ \ * `LOWEST_COST`\n" type: string enum: - EARLIEST_FINISH - LOWEST_COST default: EARLIEST_FINISH example: LOWEST_COST problem_kind: description: 'Problem kind. ' type: string minLength: 1 maxLength: 256 nullable: true default: null example: LONG_HAUL trip_expectations: description: 'Expectations from the calculation result. Affect the calculation 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 example: 25000 default: 0 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 worldwide.\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 nullable: true default: null example: https://universal-extension.veeroute.cloud 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 nullable: true 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 minItems: 2 maxItems: 15001 uniqueItems: false 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 minItems: 2 maxItems: 15001 uniqueItems: false 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 minItems: 2 maxItems: 15001 uniqueItems: false 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: description: List of locations used for orders and shifts. type: array uniqueItems: true minItems: 1 maxItems: 15001 items: $ref: '#/components/schemas/location' orders: description: List of orders that need to be completed. type: array uniqueItems: true minItems: 1 maxItems: 15001 items: $ref: '#/components/schemas/order' performers: description: 'Available performers list. The performer fulfills orders using transport. ' type: array uniqueItems: true minItems: 1 maxItems: 15001 items: $ref: '#/components/schemas/performer' transports: 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' 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 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: \w+ minLength: 2 maxLength: 256 example: edge7 pod: description: Pod identifier. type: string pattern: \w+ 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: '2025-09-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 schema_error: description: Data error by schema. type: object additionalProperties: false properties: entity: description: Target entity identifier. type: string nullable: true maxLength: 1024 example: order_0001 message: description: Error message. type: string example: bad input data required: - entity - message schema_error_list: description: List of syntax errors - data does not match the schema. type: array uniqueItems: false minItems: 0 maxItems: 15001 items: $ref: '#/components/schemas/schema_error' entity_error_type: description: "错误类型:\n * `INCONSISTENT_REFERENCE` - 错误的参考键\n * `UNIQUE_IDS_VIOLATION`\ \ - 所有键必须是唯一的\n * `INVALID_ROUTING_MATRIX` - 错误的路由矩阵维度\n * `INVALID_GEO_PROVIDER`\ \ - 错误的地理提供商\n * `COMPATIBILITY_CARGO_BOX` - 没有货物与任何盒子兼容\n * `COMPATIBILITY_TRANSPORT_PERFORMER`\ \ - 没有传输与任何表演者兼容\n * `COMPATIBILITY_TRANSPORT_LOCATION` - 没有任何交通工具与任何位置兼容\n\ \ * `COMPATIBILITY_ORDER_PERFORMER` - 没有订单与任何表演者兼容\n * `INCONSISTENT_HARDLINK`\ \ - 本质密钥必须仅存在于一个硬链接中\n * `PLANNING_HORIZON_EXCEEDED` - 超出规划范围(数据集中最早和最新时间​​戳之间的差异)\n\ \ * `MEANINGLESS_RESTRICTIONS` - 指定的限制没有意义\n * `LOCATION_LIMITS_VIOLATION`\ \ - 限制的时间窗口不得重叠,并且它们的联合必须与位置可用性窗口 `work_window` 相对应; 如果设置了 `min_cargos`/`min_transports`\ \ 约束则必须设置 `max_cargos`/`max_transports` 约束; `min_cargos`/`min_transports`\ \ 约束必须小于所有 `max_cargos`/`max_transports` 约束\n * `TOO_MANY_WARNINGS` - 警告数量大于\ \ 15001\n" type: string enum: - INCONSISTENT_REFERENCE - UNIQUE_IDS_VIOLATION - INVALID_ROUTING_MATRIX - INVALID_GEO_PROVIDER - COMPATIBILITY_CARGO_BOX - COMPATIBILITY_TRANSPORT_PERFORMER - COMPATIBILITY_TRANSPORT_LOCATION - COMPATIBILITY_ORDER_PERFORMER - INCONSISTENT_HARDLINK - PLANNING_HORIZON_EXCEEDED - MEANINGLESS_RESTRICTIONS - LOCATION_LIMITS_VIOLATION - TOO_MANY_WARNINGS 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 nullable: true properties: entity_key: description: Target entity key. type: string nullable: true maxLength: 1024 example: order_0001 entity_type: $ref: '#/components/schemas/entity_type' child_entity: $ref: '#/components/schemas/entity_path' required: - entity_key - entity_type entity_error: description: Description of the error in the input data. type: object additionalProperties: false properties: type: $ref: '#/components/schemas/entity_error_type' info: description: Information about error. type: string nullable: true minLength: 0 maxLength: 2048 example: entity error entities: description: List of entities related to error. type: array uniqueItems: false minItems: 0 maxItems: 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' entity_warning_type: description: "警告类型:\n * `NO_AVAILABLE_TRANSPORT` - 订单无法完成,因为没有可用的(按班次限制)运输方式\n\ \ * `NO_AVAILABLE_PERFORMER` - 订单无法完成,因为没有可用的(按班次限制)执行者\n * `NO_COMPATIBLE_TRANSPORT`\ \ - 订单无法完成,因为没有兼容的(就容量和/或兼容性标签而言)运输方式\n * `NO_COMPATIBLE_PERFORMER` - 订单无法完成,因为没有兼容的(按兼容性标签)执行者\n\ \ * `NO_AVAILABLE_ORDER_FOR_TRANSPORT` - 传输无用,因为没有兼容的(按容量和/或兼容性标签)顺序\n *\ \ `NO_AVAILABLE_ORDER_FOR_PERFORMER` - 表演者无用,因为没有兼容的(按容量和/或兼容性标签)顺序\n * `NO_COMPATIBLE_ORDER_FOR_TRANSPORT`\ \ - 运输无用,因为没有可用的订单(根据轮班限制)\n * `NO_COMPATIBLE_ORDER_FOR_PERFORMER` - 执行者无用,因为没有可用的订单(根据轮班限制)\n\ \ * `PICKUP_AND_DROP_VIOLATION` - 订单中的每件货物必须有且只有一次装载和一次卸载(`PICKUP_TO_BOX`\ \ 和 `DROP_FROM_BOX` 订单除外)\n * `PICKUP_AND_DROP_VIOLATION_PRECEDENCE_IN_ORDER`\ \ - 订单中的每件货物,装载必须在之前进行卸载(`precedence_in_order`)\n * `PICKUP_AND_DROP_VIOLATION_PRECEDENCE_IN_TRIP`\ \ - 指定了相冲突的订单优先顺序要求(`precedence_in_trip`)\n * `VIOLATION_PRECEDENCE_IN_TRIP_AND_ORDER`\ \ - 行程中的订单优先顺序要求(`precedence_in_trip`)和订单中的订单优先顺序要求(`precedence_in_order`)相互矛盾\n\ \ * `TIME_WINDOW_VIOLATION` - 时间窗口的开始时间晚于窗口的结束时间或时间窗口超出允许的最大值\n * `DURATION_VIOLATION`\ \ - 持续时间与允许的间隔不符\n * `ORDER_WINDOWS_INTERSECTION_VIOLATION` - 软窗口不应超出硬窗口的边界\n\ \ * `PERFORMER_SHIFTS_INTERSECTION_VIOLATION` - 表演者工作班次的时间范围必须不重叠,下一个窗口的开始不能等于前一个窗口的结束\n\ \ * `TRANSPORT_SHIFTS_INTERSECTION_VIOLATION` - 运输工作班次的时间范围不应重叠,下一个窗口的开始不能等于前一个窗口的结束\n\ \ * `LOCATION_WINDOWS_INTERSECTION_VIOLATION` - 一个位置的工作窗口的时间范围不应相交,下一个窗口的开始不能等于前一个窗口的结束\n\ \ * `NO_TRANSPORT_BOXES` - 如果有货物订单,则运输必须至少有一个箱子\n * `MAX_CAPACITY_VIOLATION`\ \ - `max_capacity` 限制超过所有箱子的总容量或仅为一个箱子设置或小于某些箱子的容量\n * `MAX_BOXES_VIOLATION`\ \ - 限制 `max_boxes`大于或等于箱子总数或为一个箱子指定或等于零\n *`TOO_MANY_CARGOS_FOR_DROP_VIOLATION`\ \ - `DROP` / `DROP_FROM_BOX` 类型的订单的装载数量不得超过一个\n *`EMPTY_CARGOES_LIST` - `DROP`\ \ / `DROP_FROM_BOX` / `PICKUP` / `PICKUP_TO_BOX` 类型的订单的装载列表为空\n *`CARGO_WORK_VIOLATION`\ \ - 对于 `WORK` 订单,货物清单必须为空\n *`GEODATA_TIME_WINDOW_VIOLATION` - 计划范围超出最大可用值\n\ \ *`SHIFT_RESTRICTIONS_COULD_BE_MORE_PRECISE` - 艺术家变更的工作窗口 `working_window`\ \ 不完全位于可用性窗口 `availability_window` 内\n * `DURATION_DOES_NOT_FIT_INTO_HARD_WINDOW`\ \ - 事件的持续时间不符合硬时间窗口\n * `DURATION_DOES_NOT_FIT_INTO_SOFT_WINDOW` - 事件的持续时间不符合软时间窗口\n\ \ * `EXTRA_DURATION_DOES_NOT_FIT_INTO_SOFT_WINDOW` - 需求执行的额外时间不符合软时间窗口\n\ \ * `MAX_CALCULATION_TIME_VIOLATION` - 已超出允许的最大计算时间\n * `MAX_WAITING_TIME_VIOLATION`\ \ - 已超出允许的最大等待时间\n * `INVALID_HARDLINK` - 无法分配具有 `WORK` 类型需求的订单进行运输\n *\ \ `CARGO_BOX_VIOLATION` - 对于除 `DROP_FROM_BOX` 之外的所有类型的请求,货物所在箱子的键必须为空\n *\ \ `CARGO_MULTIBOX_VIOLATION` - 对于类型为 `DROP_FROM_BOX` 的订单,指示的货物位于不同车辆的箱子中\n\ \ * `CARGO_CAPACITY_VIOLATION` - 机上指定的货物超出了其所在箱子的大小\n * `CARGO_ORDER_VIOLATION`\ \ - 订单中指定的货物不在订单中\n * `FEATURE_LIFETIME_VIOLATION` - 特征时间窗口相互相交或用于更改执行者或运输的工作窗口\ \ `working_window` 与特征时间窗口不相交\n * `QUOTA_EXCEEDED` - 超出服务配额\n * `MAX_LOCATIONS_LIMITS_PENALTY_EXCEEDED`\ \ - 生成的解决方案不满足 `max_locations_limits_penalty` 要求\n * `REMOVED_ITEMS_NOT_EMPTY`\ \ - 在数据验证过程中,实体被从源数据集中删除,删除的实体列表位于 `removed_items' 对象中\n * `INCOMPATIBLE_REQUIREMENTS`\ \ - 指定了不兼容的要求:位置负载核算和软窗口优化\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 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 nullable: true 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' custom_400_with_errors_and_warnings: description: 400 Error details. type: object additionalProperties: false properties: tracedata: $ref: '#/components/schemas/tracedata' message: description: Error message. type: string nullable: true example: bad task data schema_errors: $ref: '#/components/schemas/schema_error_list' logical_errors: $ref: '#/components/schemas/entity_error_list' warnings: $ref: '#/components/schemas/entity_warning_list' required: - tracedata general_402: description: 402 Error details. type: object additionalProperties: false properties: tracedata: $ref: '#/components/schemas/tracedata' message: description: Error details. type: string nullable: true example: Payment Required required: - tracedata general_404: description: 404 Error details. type: object additionalProperties: false properties: resource_key: description: Resource identifier. type: string nullable: true default: null example: resource_key detail: description: Resource details. type: object additionalProperties: false nullable: true properties: tracedata: $ref: '#/components/schemas/tracedata' required: - tracedata general_429: description: 429 Error details. type: object additionalProperties: false properties: tracedata: $ref: '#/components/schemas/tracedata' message: description: Error details. type: string nullable: true example: Too many requests required: - tracedata general_500: description: 500 Error details. type: object additionalProperties: false properties: tracedata: $ref: '#/components/schemas/tracedata' message: description: Error details. type: string nullable: true example: Internal Server Error 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' 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: '2025-09-21T09:30:00+03:00' order_key: description: Key of the order with which an action is taken. type: string nullable: true default: null minLength: 1 maxLength: 1024 example: order01 demand_key: description: Key of the demand with which an action is taken. type: string nullable: true default: null minLength: 1 maxLength: 1024 example: demand01.1 event_key: description: Key of the event at which an action is taken. type: string nullable: true default: null minLength: 1 maxLength: 1024 example: event01 location_key: description: Key of the location at which an action is taken. type: string nullable: true default: null minLength: 1 maxLength: 1024 example: location_01 flags: description: "List of flags, describing current state. \n \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 default: 0 minimum: 0 maximum: 4000000000 example: 5200 cost: description: Cumulative cost calculated based on the performer's and transport tariffs. type: number format: double minimum: 0 maximum: 10000000000 default: 0 example: 1231.1 reward: description: Cumulative reward 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 minItems: 0 maxItems: 15001 uniqueItems: true items: description: Order key. type: string minLength: 1 maxLength: 1024 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: 0.5 volume: description: Loading by volume, in fractions of a unit. type: number format: double minimum: 0 maximum: 1000 example: 0.1 capacity_a: description: Loading by additional parameter (A), in fractions of a unit. type: number format: double minimum: 0 maximum: 1000 example: 0.7 capacity_b: description: Loading by additional parameter (B), in fractions of a unit. type: number format: double minimum: 0 maximum: 1000 example: 0.8 capacity_c: description: Loading by additional parameter (C), in fractions of a unit. type: number format: double minimum: 0 maximum: 1000 example: 0.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 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 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 during the driving (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 minItems: 0 maxItems: 15001 uniqueItems: false items: $ref: '#/components/schemas/stop_statistics' 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 minItems: 0 maxItems: 15001 uniqueItems: false items: $ref: '#/components/schemas/roundtrip_statistics' 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 nullable: true 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' task_statistics: description: 'General statistics on input data. ' type: object additionalProperties: false nullable: true 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 nullable: true 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 nullable: true 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 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: Unplanned performer keys list. performer_keys_count: $ref: '#/components/schemas/item_keys_count' description: Unplanned performers count. transport_keys: $ref: '#/components/schemas/item_keys' description: Unplanned transport keys list. transport_keys_count: $ref: '#/components/schemas/item_keys_count' description: Unplanned transports count. hardlink_keys: $ref: '#/components/schemas/item_keys' description: Unplanned hardlink keys list. 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 nullable: true 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). 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' 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 nullable: true 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 statistics_task: description: Task for recalculating statistics. type: object additionalProperties: false properties: locations: description: List of locations used for orders and shifts. type: array uniqueItems: true minItems: 1 maxItems: 15001 items: $ref: '#/components/schemas/location' orders: description: List of orders that need to be completed. type: array uniqueItems: true minItems: 1 maxItems: 15001 items: $ref: '#/components/schemas/order' performers: description: 'Available performers list. The performer fulfills orders using transport. ' type: array uniqueItems: true minItems: 1 maxItems: 15001 items: $ref: '#/components/schemas/performer' transports: description: Available transports list. type: array uniqueItems: true minItems: 1 maxItems: 15001 items: $ref: '#/components/schemas/transport' hardlinks: $ref: '#/components/schemas/hardlink_list' trips: 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' 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_time: description: Fact creation time in the [ISO 8601](https://tools.ietf.org/html/rfc3339#section-5.6) format. type: string format: date-time example: '2025-09-21T09:30:00+03:00' 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" type: string enum: - NEW_LOCATION - ORDER_DONE - DEMAND_START - DEMAND_DONE example: NEW_LOCATION fact: description: 'The fact about the order is the action taken with the order or its part (demand). ' type: object additionalProperties: false properties: key: description: Fact key. type: string minLength: 1 maxLength: 1024 example: fact_01 time: $ref: '#/components/schemas/fact_time' type: $ref: '#/components/schemas/fact_type' trip_key: description: Trip key, to which the fact relates. type: string minLength: 1 maxLength: 1024 example: trip_01 order_key: description: Order key, required for facts with type `ORDER_DONE`. type: string minLength: 1 maxLength: 1024 nullable: true default: null example: order_01 demand_key: description: Demand key, required for facts with types `DEMAND_DONE` and `DEMAND_START`. type: string minLength: 1 maxLength: 1024 nullable: true default: null example: order_01_demand_01 performer_key: description: Performer key, required for facts with type `NEW_LOCATION`. type: string minLength: 1 maxLength: 1024 nullable: true default: null example: performer_01 location_key: description: Location key, required for facts with type `NEW_LOCATION`. type: string minLength: 1 maxLength: 1024 nullable: true default: null example: location_01 attributes: $ref: '#/components/schemas/attributes' required: - key - time - type - 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 format: date-time nullable: true default: null example: '2025-09-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: description: List of locations used for orders and shifts. type: array uniqueItems: true minItems: 1 maxItems: 15001 items: $ref: '#/components/schemas/location' orders: description: List of orders that need to be completed. type: array uniqueItems: true minItems: 1 maxItems: 15001 items: $ref: '#/components/schemas/order' performers: description: 'Available performers list. The performer fulfills orders using transport. ' type: array uniqueItems: true minItems: 1 maxItems: 15001 items: $ref: '#/components/schemas/performer' transports: 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' trips: 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' 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: Activate new orders planning. type: boolean default: false example: true create_new_trips: description: Activate new trips creation. type: boolean default: false example: true replan_settings: description: Replanning settings. type: object additionalProperties: false properties: replan_strategy: $ref: '#/components/schemas/replan_strategy' replan_task: description: Task for replanning. type: object additionalProperties: false properties: locations: description: List of locations used for orders and shifts. type: array uniqueItems: true minItems: 1 maxItems: 15001 items: $ref: '#/components/schemas/location' orders: description: List of orders that need to be completed. type: array uniqueItems: true minItems: 1 maxItems: 15001 items: $ref: '#/components/schemas/order' performers: description: 'Available performers list. The performer fulfills orders using transport. ' type: array uniqueItems: true minItems: 1 maxItems: 15001 items: $ref: '#/components/schemas/performer' transports: description: Available transports list. type: array uniqueItems: true minItems: 1 maxItems: 15001 items: $ref: '#/components/schemas/transport' hardlinks: $ref: '#/components/schemas/hardlink_list' trips: 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' 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: $ref: '#/components/schemas/plan_statistics' 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: 403 Error details. type: object additionalProperties: false properties: tracedata: $ref: '#/components/schemas/tracedata' message: description: Error details. type: string nullable: true example: Forbidden required: - tracedata file_text: description: File with data in text format. type: string 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: 服务版本。 type: object additionalProperties: false properties: major: description: '产品版本。 在单个版本中,保证了服务之间通用数据结构的兼容性。 版本更改表示与以前版本的产品(和所有服务)不兼容的更改。 ' type: integer format: int32 minimum: 1 maximum: 100 example: 7 minor: description: '服务的小版本。 版本更改表示新功能。 该更新向后兼容服务的主要版本。 ' type: integer format: int32 minimum: 0 maximum: 111 example: 15 build: description: '构建版本。 包含向后兼容的错误修复和文档更新。 ' 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 file_json: description: File with data in [JSON](https://www.json.org/) format. type: string examples: PlanTaskTokyo: summary: 东京 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: '2025-09-08T05:00:00+00:00' to: '2025-09-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: '2025-09-07T21:00:00+00:00' to: '2025-09-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: '2025-09-08T05:00:00+00:00' to: '2025-09-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: '2025-09-07T21:00:00+00:00' to: '2025-09-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: '2025-09-08T05:00:00+00:00' to: '2025-09-08T07:00:00+00:00' performers: - key: performer_1 shifts: - key: performer_1_shift availability_time: from: '2025-09-07T21:00:00+00:00' to: '2025-09-08T20:59:59+00:00' working_time: from: '2025-09-07T21:00:00+00:00' to: '2025-09-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: '2025-09-07T21:00:00+00:00' to: '2025-09-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: 莫斯科 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: '2025-09-08T05:00:00+00:00' to: '2025-09-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: '2025-09-07T21:00:00+00:00' to: '2025-09-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: '2025-09-08T05:00:00+00:00' to: '2025-09-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: '2025-09-07T21:00:00+00:00' to: '2025-09-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: '2025-09-08T05:00:00+00:00' to: '2025-09-08T07:00:00+00:00' performers: - key: performer_1 shifts: - key: performer_1_shift availability_time: from: '2025-09-07T21:00:00+00:00' to: '2025-09-08T20:59:59+00:00' working_time: from: '2025-09-07T21:00:00+00:00' to: '2025-09-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: '2025-09-07T21:00:00+00:00' to: '2025-09-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: 丹佛 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: '2025-09-08T05:00:00+00:00' to: '2025-09-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: '2025-09-07T21:00:00+00:00' to: '2025-09-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: '2025-09-08T05:00:00+00:00' to: '2025-09-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: '2025-09-07T21:00:00+00:00' to: '2025-09-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: '2025-09-08T05:00:00+00:00' to: '2025-09-08T07:00:00+00:00' performers: - key: performer_1 shifts: - key: performer_1_shift availability_time: from: '2025-09-07T21:00:00+00:00' to: '2025-09-08T20:59:59+00:00' working_time: from: '2025-09-07T21:00:00+00:00' to: '2025-09-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: '2025-09-07T21:00:00+00:00' to: '2025-09-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: 柏林 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: '2025-09-08T05:00:00+00:00' to: '2025-09-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: '2025-09-07T21:00:00+00:00' to: '2025-09-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: '2025-09-08T05:00:00+00:00' to: '2025-09-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: '2025-09-07T21:00:00+00:00' to: '2025-09-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: '2025-09-08T05:00:00+00:00' to: '2025-09-08T07:00:00+00:00' performers: - key: performer_1 shifts: - key: performer_1_shift availability_time: from: '2025-09-07T21:00:00+00:00' to: '2025-09-08T20:59:59+00:00' working_time: from: '2025-09-07T21:00:00+00:00' to: '2025-09-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: '2025-09-07T21:00:00+00:00' to: '2025-09-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: 北京 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: '2025-09-08T05:00:00+00:00' to: '2025-09-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: '2025-09-07T21:00:00+00:00' to: '2025-09-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: '2025-09-08T05:00:00+00:00' to: '2025-09-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: '2025-09-07T21:00:00+00:00' to: '2025-09-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: '2025-09-08T05:00:00+00:00' to: '2025-09-08T07:00:00+00:00' performers: - key: performer_1 shifts: - key: performer_1_shift availability_time: from: '2025-09-07T21:00:00+00:00' to: '2025-09-08T20:59:59+00:00' working_time: from: '2025-09-07T21:00:00+00:00' to: '2025-09-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: '2025-09-07T21:00:00+00:00' to: '2025-09-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: '2025-09-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: 东京 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: '2025-09-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: '2025-09-08T04:42:23Z' to: '2025-09-08T05:40:11Z' transport: transport_key: transport_1 shift_key: transport_1_shift shift_time: from: '2025-09-08T04:42:23Z' to: '2025-09-08T05:40:11Z' states: - time: '2025-09-08T04:42:23Z' flags: - INSIDE_LOCATION - AROUND_LOCATION location_key: location_storage cargo_actions: [] attributes: [] - time: '2025-09-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: '2025-09-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: '2025-09-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: '2025-09-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: '2025-09-08T04:42:23Z' flags: - AROUND_LOCATION location_key: location_storage cargo_actions: [] attributes: [] - time: '2025-09-08T04:42:23Z' flags: - RELOCATING cargo_actions: [] attributes: [] - time: '2025-09-08T05:00:00Z' flags: - AROUND_LOCATION location_key: location_client_2 cargo_actions: [] attributes: [] - time: '2025-09-08T05:00:00Z' flags: - INSIDE_LOCATION - AROUND_LOCATION location_key: location_client_2 cargo_actions: [] attributes: [] - time: '2025-09-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: '2025-09-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: '2025-09-08T05:10:00Z' flags: - AROUND_LOCATION location_key: location_client_2 cargo_actions: [] attributes: [] - time: '2025-09-08T05:10:00Z' flags: - RELOCATING cargo_actions: [] attributes: [] - time: '2025-09-08T05:13:23Z' flags: - AROUND_LOCATION location_key: location_client_3 cargo_actions: [] attributes: [] - time: '2025-09-08T05:13:23Z' flags: - INSIDE_LOCATION - AROUND_LOCATION location_key: location_client_3 cargo_actions: [] attributes: [] - time: '2025-09-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: '2025-09-08T05:28:23Z' flags: - INSIDE_LOCATION - AROUND_LOCATION location_key: location_client_3 cargo_actions: [] attributes: [] - time: '2025-09-08T05:28:23Z' flags: - AROUND_LOCATION location_key: location_client_3 cargo_actions: [] attributes: [] - time: '2025-09-08T05:28:23Z' flags: - RELOCATING cargo_actions: [] attributes: [] - time: '2025-09-08T05:30:11Z' flags: - AROUND_LOCATION location_key: location_client_1 cargo_actions: [] attributes: [] - time: '2025-09-08T05:30:11Z' flags: - INSIDE_LOCATION - AROUND_LOCATION location_key: location_client_1 cargo_actions: [] attributes: [] - time: '2025-09-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: '2025-09-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: '2025-09-08T04:42:23Z' to: '2025-09-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: '2025-09-08T04:42:23Z' to: '2025-09-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: '2025-09-08T04:42:23Z' to: '2025-09-08T04:42:23Z' - demand_key: demand_2_pickup event_key: demand_2_pickup_event demand_time_window: from: '2025-09-08T04:42:23Z' to: '2025-09-08T04:42:23Z' stop_time_window: from: '2025-09-08T04:42:23Z' to: '2025-09-08T04:42:23Z' measurements: time_window: from: '2025-09-08T04:42:23Z' to: '2025-09-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: '2025-09-08T05:00:00Z' to: '2025-09-08T05:10:00Z' stop_time_window: from: '2025-09-08T05:00:00Z' to: '2025-09-08T05:10:00Z' measurements: time_window: from: '2025-09-08T04:42:23Z' to: '2025-09-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: '2025-09-08T05:13:23Z' to: '2025-09-08T05:28:23Z' stop_time_window: from: '2025-09-08T05:13:23Z' to: '2025-09-08T05:28:23Z' measurements: time_window: from: '2025-09-08T05:10:00Z' to: '2025-09-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: '2025-09-08T05:30:11Z' to: '2025-09-08T05:40:11Z' stop_time_window: from: '2025-09-08T05:30:11Z' to: '2025-09-08T05:40:11Z' measurements: time_window: from: '2025-09-08T05:28:23Z' to: '2025-09-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: '2025-09-07T21:00:00Z' to: '2025-09-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: 莫斯科 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: '2025-09-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: '2025-09-08T04:39:34Z' to: '2025-09-08T05:55:13Z' transport: transport_key: transport_1 shift_key: transport_1_shift shift_time: from: '2025-09-08T04:39:34Z' to: '2025-09-08T05:55:13Z' states: - time: '2025-09-08T04:39:34Z' flags: - INSIDE_LOCATION - AROUND_LOCATION location_key: location_storage cargo_actions: [] distance: 0 cost: 2000 reward: 0 attributes: [] - time: '2025-09-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: '2025-09-08T04:39:34Z' flags: - INSIDE_LOCATION - AROUND_LOCATION - DURING_ROUNDTRIP location_key: location_storage cargo_actions: [] distance: 0 cost: 2000 reward: 0 attributes: [] - time: '2025-09-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: '2025-09-08T04:39:34Z' flags: - INSIDE_LOCATION - AROUND_LOCATION - DURING_ROUNDTRIP location_key: location_storage cargo_actions: [] distance: 0 cost: 2000 reward: 0 attributes: [] - time: '2025-09-08T04:39:34Z' flags: - DEPARTURE - AROUND_LOCATION - DURING_ROUNDTRIP location_key: location_storage cargo_actions: [] distance: 0 cost: 2000 reward: 0 attributes: [] - time: '2025-09-08T04:39:34Z' flags: - RELOCATING - DURING_ROUNDTRIP cargo_actions: [] distance: 0 cost: 2000 reward: 0 attributes: [] - time: '2025-09-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: '2025-09-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: '2025-09-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: '2025-09-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: '2025-09-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: '2025-09-08T05:10:00Z' flags: - RELOCATING - DURING_ROUNDTRIP cargo_actions: [] distance: 17110 cost: 3997.1 reward: 1000.1 attributes: [] - time: '2025-09-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: '2025-09-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: '2025-09-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: '2025-09-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: '2025-09-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: '2025-09-08T05:30:56Z' flags: - RELOCATING - DURING_ROUNDTRIP cargo_actions: [] distance: 27007 cost: 5352.07 reward: 2000.2 attributes: [] - time: '2025-09-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: '2025-09-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: '2025-09-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: '2025-09-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: '2025-09-08T04:39:34Z' to: '2025-09-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: '2025-09-08T04:39:34Z' to: '2025-09-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: '2025-09-08T04:39:34Z' to: '2025-09-08T04:39:34Z' - demand_key: demand_2_pickup event_key: demand_2_pickup_event demand_time_window: from: '2025-09-08T04:39:34Z' to: '2025-09-08T04:39:34Z' stop_time_window: from: '2025-09-08T04:39:34Z' to: '2025-09-08T04:39:34Z' measurements: time_window: from: '2025-09-08T04:39:34Z' to: '2025-09-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: '2025-09-08T05:00:00Z' to: '2025-09-08T05:10:00Z' stop_time_window: from: '2025-09-08T05:00:00Z' to: '2025-09-08T05:10:00Z' measurements: time_window: from: '2025-09-08T04:39:34Z' to: '2025-09-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: '2025-09-08T05:20:56Z' to: '2025-09-08T05:30:56Z' stop_time_window: from: '2025-09-08T05:20:56Z' to: '2025-09-08T05:30:56Z' measurements: time_window: from: '2025-09-08T05:10:00Z' to: '2025-09-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: '2025-09-08T05:40:13Z' to: '2025-09-08T05:55:13Z' stop_time_window: from: '2025-09-08T05:40:13Z' to: '2025-09-08T05:55:13Z' measurements: time_window: from: '2025-09-08T05:30:56Z' to: '2025-09-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: '2025-09-08T04:39:34Z' to: '2025-09-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: '2025-09-07T21:00:00Z' to: '2025-09-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: 丹佛 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: '2025-09-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: '2025-09-08T04:21:49Z' to: '2025-09-08T06:20:24Z' transport: transport_key: transport_1 shift_key: transport_1_shift shift_time: from: '2025-09-08T04:21:49Z' to: '2025-09-08T06:20:24Z' states: - time: '2025-09-08T04:21:49Z' flags: - AROUND_LOCATION - INSIDE_LOCATION location_key: location_storage cargo_actions: [] attributes: [] - time: '2025-09-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: '2025-09-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: '2025-09-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: '2025-09-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: '2025-09-08T04:21:49Z' flags: - AROUND_LOCATION location_key: location_storage cargo_actions: [] attributes: [] - time: '2025-09-08T04:21:49Z' flags: - RELOCATING cargo_actions: [] attributes: [] - time: '2025-09-08T05:00:00Z' flags: - AROUND_LOCATION location_key: location_client_3 cargo_actions: [] attributes: [] - time: '2025-09-08T05:00:00Z' flags: - AROUND_LOCATION - INSIDE_LOCATION location_key: location_client_3 cargo_actions: [] attributes: [] - time: '2025-09-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: '2025-09-08T05:15:00Z' flags: - AROUND_LOCATION - INSIDE_LOCATION location_key: location_client_3 cargo_actions: [] attributes: [] - time: '2025-09-08T05:15:00Z' flags: - AROUND_LOCATION location_key: location_client_3 cargo_actions: [] attributes: [] - time: '2025-09-08T05:15:00Z' flags: - RELOCATING cargo_actions: [] attributes: [] - time: '2025-09-08T05:36:45Z' flags: - AROUND_LOCATION location_key: location_client_2 cargo_actions: [] attributes: [] - time: '2025-09-08T05:36:45Z' flags: - AROUND_LOCATION - INSIDE_LOCATION location_key: location_client_2 cargo_actions: [] attributes: [] - time: '2025-09-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: '2025-09-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: '2025-09-08T05:46:45Z' flags: - AROUND_LOCATION location_key: location_client_2 cargo_actions: [] attributes: [] - time: '2025-09-08T05:46:45Z' flags: - RELOCATING cargo_actions: [] attributes: [] - time: '2025-09-08T06:10:24Z' flags: - AROUND_LOCATION location_key: location_client_1 cargo_actions: [] attributes: [] - time: '2025-09-08T06:10:24Z' flags: - AROUND_LOCATION - INSIDE_LOCATION location_key: location_client_1 cargo_actions: [] attributes: [] - time: '2025-09-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: '2025-09-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: '2025-09-08T04:21:49Z' to: '2025-09-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: '2025-09-08T04:21:49Z' to: '2025-09-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: '2025-09-08T04:21:49Z' to: '2025-09-08T04:21:49Z' - demand_key: demand_1_pickup event_key: demand_1_pickup_event demand_time_window: from: '2025-09-08T04:21:49Z' to: '2025-09-08T04:21:49Z' stop_time_window: from: '2025-09-08T04:21:49Z' to: '2025-09-08T04:21:49Z' measurements: time_window: from: '2025-09-08T04:21:49Z' to: '2025-09-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: '2025-09-08T05:00:00Z' to: '2025-09-08T05:15:00Z' stop_time_window: from: '2025-09-08T05:00:00Z' to: '2025-09-08T05:15:00Z' measurements: time_window: from: '2025-09-08T04:21:49Z' to: '2025-09-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: '2025-09-08T05:36:45Z' to: '2025-09-08T05:46:45Z' stop_time_window: from: '2025-09-08T05:36:45Z' to: '2025-09-08T05:46:45Z' measurements: time_window: from: '2025-09-08T05:15:00Z' to: '2025-09-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: '2025-09-08T06:10:24Z' to: '2025-09-08T06:20:24Z' stop_time_window: from: '2025-09-08T06:10:24Z' to: '2025-09-08T06:20:24Z' measurements: time_window: from: '2025-09-08T05:46:45Z' to: '2025-09-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: '2025-09-07T21:00:00Z' to: '2025-09-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: 柏林 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: '2025-09-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: '2025-09-08T04:35:29Z' to: '2025-09-08T06:11:06Z' transport: transport_key: transport_1 shift_key: transport_1_shift shift_time: from: '2025-09-08T04:35:29Z' to: '2025-09-08T06:11:06Z' states: - time: '2025-09-08T04:35:29Z' flags: - INSIDE_LOCATION - AROUND_LOCATION location_key: location_storage cargo_actions: [] attributes: [] - time: '2025-09-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: '2025-09-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: '2025-09-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: '2025-09-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: '2025-09-08T04:35:29Z' flags: - AROUND_LOCATION location_key: location_storage cargo_actions: [] attributes: [] - time: '2025-09-08T04:35:29Z' flags: - RELOCATING cargo_actions: [] attributes: [] - time: '2025-09-08T05:00:00Z' flags: - AROUND_LOCATION location_key: location_client_2 cargo_actions: [] attributes: [] - time: '2025-09-08T05:00:00Z' flags: - INSIDE_LOCATION - AROUND_LOCATION location_key: location_client_2 cargo_actions: [] attributes: [] - time: '2025-09-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: '2025-09-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: '2025-09-08T05:10:00Z' flags: - AROUND_LOCATION location_key: location_client_2 cargo_actions: [] attributes: [] - time: '2025-09-08T05:10:00Z' flags: - RELOCATING cargo_actions: [] attributes: [] - time: '2025-09-08T05:21:23Z' flags: - AROUND_LOCATION location_key: location_client_1 cargo_actions: [] attributes: [] - time: '2025-09-08T05:21:23Z' flags: - INSIDE_LOCATION - AROUND_LOCATION location_key: location_client_1 cargo_actions: [] attributes: [] - time: '2025-09-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: '2025-09-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: '2025-09-08T05:31:23Z' flags: - AROUND_LOCATION location_key: location_client_1 cargo_actions: [] attributes: [] - time: '2025-09-08T05:31:23Z' flags: - RELOCATING cargo_actions: [] attributes: [] - time: '2025-09-08T05:56:06Z' flags: - AROUND_LOCATION location_key: location_client_3 cargo_actions: [] attributes: [] - time: '2025-09-08T05:56:06Z' flags: - INSIDE_LOCATION - AROUND_LOCATION location_key: location_client_3 cargo_actions: [] attributes: [] - time: '2025-09-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: '2025-09-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: '2025-09-08T04:35:29Z' to: '2025-09-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: '2025-09-08T04:35:29Z' to: '2025-09-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: '2025-09-08T04:35:29Z' to: '2025-09-08T04:35:29Z' - demand_key: demand_1_pickup event_key: demand_1_pickup_event demand_time_window: from: '2025-09-08T04:35:29Z' to: '2025-09-08T04:35:29Z' stop_time_window: from: '2025-09-08T04:35:29Z' to: '2025-09-08T04:35:29Z' measurements: time_window: from: '2025-09-08T04:35:29Z' to: '2025-09-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: '2025-09-08T05:00:00Z' to: '2025-09-08T05:10:00Z' stop_time_window: from: '2025-09-08T05:00:00Z' to: '2025-09-08T05:10:00Z' measurements: time_window: from: '2025-09-08T04:35:29Z' to: '2025-09-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: '2025-09-08T05:21:23Z' to: '2025-09-08T05:31:23Z' stop_time_window: from: '2025-09-08T05:21:23Z' to: '2025-09-08T05:31:23Z' measurements: time_window: from: '2025-09-08T05:10:00Z' to: '2025-09-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: '2025-09-08T05:56:06Z' to: '2025-09-08T06:11:06Z' stop_time_window: from: '2025-09-08T05:56:06Z' to: '2025-09-08T06:11:06Z' measurements: time_window: from: '2025-09-08T05:31:23Z' to: '2025-09-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: '2025-09-07T21:00:00Z' to: '2025-09-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: 北京 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: '2025-09-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: '2025-09-08T04:42:30Z' to: '2025-09-08T05:55:03Z' transport: transport_key: transport_1 shift_key: transport_1_shift shift_time: from: '2025-09-08T04:42:30Z' to: '2025-09-08T05:55:03Z' states: - time: '2025-09-08T04:42:30Z' flags: - INSIDE_LOCATION - AROUND_LOCATION location_key: location_storage cargo_actions: [] attributes: [] - time: '2025-09-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: '2025-09-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: '2025-09-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: '2025-09-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: '2025-09-08T04:42:30Z' flags: - AROUND_LOCATION location_key: location_storage cargo_actions: [] attributes: [] - time: '2025-09-08T04:42:30Z' flags: - RELOCATING cargo_actions: [] attributes: [] - time: '2025-09-08T05:00:00Z' flags: - AROUND_LOCATION location_key: location_client_2 cargo_actions: [] attributes: [] - time: '2025-09-08T05:00:00Z' flags: - INSIDE_LOCATION - AROUND_LOCATION location_key: location_client_2 cargo_actions: [] attributes: [] - time: '2025-09-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: '2025-09-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: '2025-09-08T05:10:00Z' flags: - AROUND_LOCATION location_key: location_client_2 cargo_actions: [] attributes: [] - time: '2025-09-08T05:10:00Z' flags: - RELOCATING cargo_actions: [] attributes: [] - time: '2025-09-08T05:12:37Z' flags: - AROUND_LOCATION location_key: location_client_3 cargo_actions: [] attributes: [] - time: '2025-09-08T05:12:37Z' flags: - INSIDE_LOCATION - AROUND_LOCATION location_key: location_client_3 cargo_actions: [] attributes: [] - time: '2025-09-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: '2025-09-08T05:27:37Z' flags: - INSIDE_LOCATION - AROUND_LOCATION location_key: location_client_3 cargo_actions: [] attributes: [] - time: '2025-09-08T05:27:37Z' flags: - AROUND_LOCATION location_key: location_client_3 cargo_actions: [] attributes: [] - time: '2025-09-08T05:27:37Z' flags: - RELOCATING cargo_actions: [] attributes: [] - time: '2025-09-08T05:45:03Z' flags: - AROUND_LOCATION location_key: location_client_1 cargo_actions: [] attributes: [] - time: '2025-09-08T05:45:03Z' flags: - INSIDE_LOCATION - AROUND_LOCATION location_key: location_client_1 cargo_actions: [] attributes: [] - time: '2025-09-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: '2025-09-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: '2025-09-08T04:42:30Z' to: '2025-09-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: '2025-09-08T04:42:30Z' to: '2025-09-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: '2025-09-08T04:42:30Z' to: '2025-09-08T04:42:30Z' - demand_key: demand_2_pickup event_key: demand_2_pickup_event demand_time_window: from: '2025-09-08T04:42:30Z' to: '2025-09-08T04:42:30Z' stop_time_window: from: '2025-09-08T04:42:30Z' to: '2025-09-08T04:42:30Z' measurements: time_window: from: '2025-09-08T04:42:30Z' to: '2025-09-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: '2025-09-08T05:00:00Z' to: '2025-09-08T05:10:00Z' stop_time_window: from: '2025-09-08T05:00:00Z' to: '2025-09-08T05:10:00Z' measurements: time_window: from: '2025-09-08T04:42:30Z' to: '2025-09-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: '2025-09-08T05:12:37Z' to: '2025-09-08T05:27:37Z' stop_time_window: from: '2025-09-08T05:12:37Z' to: '2025-09-08T05:27:37Z' measurements: time_window: from: '2025-09-08T05:10:00Z' to: '2025-09-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: '2025-09-08T05:45:03Z' to: '2025-09-08T05:55:03Z' stop_time_window: from: '2025-09-08T05:45:03Z' to: '2025-09-08T05:55:03Z' measurements: time_window: from: '2025-09-08T05:27:37Z' to: '2025-09-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: '2025-09-07T21:00:00Z' to: '2025-09-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: '2025-09-01T11:50:15.123Z' warnings: - type: NO_AVAILABLE_TRANSPORT entities: - entity_key: ord0001 entity_type: ORDER RefineResultMoscow: summary: 莫斯科 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: '2025-09-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: '2025-09-08T05:00:00+00:00' to: '2025-09-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: '2025-09-07T21:00:00+00:00' to: '2025-09-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: '2025-09-08T05:00:00+00:00' to: '2025-09-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: '2025-09-07T21:00:00+00:00' to: '2025-09-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: '2025-09-08T05:00:00+00:00' to: '2025-09-08T07:00:00+00:00' performers: - key: performer_1 shifts: - key: performer_1_shift availability_time: from: '2025-09-07T21:00:00+00:00' to: '2025-09-08T20:59:59+00:00' working_time: from: '2025-09-07T21:00:00+00:00' to: '2025-09-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: '2025-09-07T21:00:00+00:00' to: '2025-09-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: 莫斯科 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: '2025-09-08T05:00:00+00:00' to: '2025-09-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: '2025-09-07T21:00:00+00:00' to: '2025-09-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: '2025-09-08T05:00:00+00:00' to: '2025-09-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: '2025-09-07T21:00:00+00:00' to: '2025-09-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: '2025-09-08T05:00:00+00:00' to: '2025-09-08T07:00:00+00:00' performers: - key: performer_1 shifts: - key: performer_1_shift availability_time: from: '2025-09-07T21:00:00+00:00' to: '2025-09-08T20:59:59+00:00' working_time: from: '2025-09-07T21:00:00+00:00' to: '2025-09-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: '2025-09-07T21:00:00+00:00' to: '2025-09-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: '2025-09-08T04:38:34Z' to: '2025-09-08T05:53:39Z' transport: transport_key: transport_1 shift_key: transport_1_shift shift_time: from: '2025-09-08T04:38:34Z' to: '2025-09-08T05:53:39Z' states: - time: '2025-09-08T04:38:34Z' flags: - INSIDE_LOCATION - AROUND_LOCATION location_key: location_storage cargo_actions: [] attributes: [] - time: '2025-09-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: '2025-09-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: '2025-09-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: '2025-09-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: '2025-09-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: '2025-09-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: '2025-09-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: '2025-09-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: '2025-09-08T05:10:00Z' flags: - RELOCATING cargo_actions: - box_key: box_1 cargo_key: order_1_cargos cargo_action_type: ADD attributes: [] - time: '2025-09-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: '2025-09-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: '2025-09-08T05:30:52Z' flags: - INSIDE_LOCATION - AROUND_LOCATION location_key: location_client_1 cargo_actions: [] attributes: [] - time: '2025-09-08T05:30:52Z' flags: - RELOCATING cargo_actions: [] attributes: [] - time: '2025-09-08T05:38:39Z' flags: - INSIDE_LOCATION - AROUND_LOCATION location_key: location_client_3 cargo_actions: [] attributes: [] - time: '2025-09-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: '2025-09-08T05:53:39Z' flags: - INSIDE_LOCATION - AROUND_LOCATION location_key: location_client_3 cargo_actions: [] attributes: [] waitlist: [] attributes: [] ActualizeTaskMoscow: summary: 莫斯科 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: '2025-09-08T05:00:00+00:00' to: '2025-09-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: '2025-09-07T21:00:00+00:00' to: '2025-09-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: '2025-09-08T05:00:00+00:00' to: '2025-09-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: '2025-09-07T21:00:00+00:00' to: '2025-09-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: '2025-09-08T05:00:00+00:00' to: '2025-09-08T07:00:00+00:00' performers: - key: performer_1 shifts: - key: performer_1_shift availability_time: from: '2025-09-07T21:00:00+00:00' to: '2025-09-08T20:59:59+00:00' working_time: from: '2025-09-07T21:00:00+00:00' to: '2025-09-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: '2025-09-07T21:00:00+00:00' to: '2025-09-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: '2025-09-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: '2025-09-08T04:38:34Z' to: '2025-09-08T05:53:39Z' transport: transport_key: transport_1 shift_key: transport_1_shift shift_time: from: '2025-09-08T04:38:34Z' to: '2025-09-08T05:53:39Z' states: - time: '2025-09-08T04:38:34Z' flags: - INSIDE_LOCATION - AROUND_LOCATION location_key: location_storage cargo_actions: [] attributes: [] - time: '2025-09-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: '2025-09-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: '2025-09-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: '2025-09-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: '2025-09-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: '2025-09-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: '2025-09-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: '2025-09-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: '2025-09-08T05:10:00Z' flags: - RELOCATING cargo_actions: - box_key: box_1 cargo_key: order_1_cargos cargo_action_type: ADD attributes: [] - time: '2025-09-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: '2025-09-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: '2025-09-08T05:30:52Z' flags: - INSIDE_LOCATION - AROUND_LOCATION location_key: location_client_1 cargo_actions: [] attributes: [] - time: '2025-09-08T05:30:52Z' flags: - RELOCATING cargo_actions: [] attributes: [] - time: '2025-09-08T05:38:39Z' flags: - INSIDE_LOCATION - AROUND_LOCATION location_key: location_client_3 cargo_actions: [] attributes: [] - time: '2025-09-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: '2025-09-08T05:53:39Z' flags: - INSIDE_LOCATION - AROUND_LOCATION location_key: location_client_3 cargo_actions: [] attributes: [] waitlist: [] attributes: [] actualize_settings: current_time: '2025-09-07T22:30:00Z' max_delay_duration: PT1H ActualizeResultMoscow: summary: 莫斯科 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: '2025-09-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: '2025-09-08T04:39:34Z' to: '2025-09-08T05:53:49Z' transport: transport_key: transport_1 shift_key: transport_1_shift shift_time: from: '2025-09-08T04:39:34Z' to: '2025-09-08T05:53:49Z' states: - time: '2025-09-08T04:39:34Z' flags: - INSIDE_LOCATION - AROUND_LOCATION location_key: location_storage cargo_actions: [] attributes: [] - time: '2025-09-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: '2025-09-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: '2025-09-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: '2025-09-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: '2025-09-08T04:39:34Z' flags: - AROUND_LOCATION location_key: location_storage cargo_actions: [] attributes: [] - time: '2025-09-08T04:39:34Z' flags: - RELOCATING cargo_actions: [] attributes: [] - time: '2025-09-08T05:00:00Z' flags: - AROUND_LOCATION location_key: location_client_2 cargo_actions: [] attributes: [] - time: '2025-09-08T05:00:00Z' flags: - INSIDE_LOCATION - AROUND_LOCATION location_key: location_client_2 cargo_actions: [] attributes: [] - time: '2025-09-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: '2025-09-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: '2025-09-08T05:10:00Z' flags: - AROUND_LOCATION location_key: location_client_2 cargo_actions: [] attributes: [] - time: '2025-09-08T05:10:00Z' flags: - RELOCATING cargo_actions: [] attributes: [] - time: '2025-09-08T05:20:56Z' flags: - AROUND_LOCATION location_key: location_client_1 cargo_actions: [] attributes: [] - time: '2025-09-08T05:20:56Z' flags: - INSIDE_LOCATION - AROUND_LOCATION location_key: location_client_1 cargo_actions: [] attributes: [] - time: '2025-09-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: '2025-09-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: '2025-09-08T05:30:56Z' flags: - AROUND_LOCATION location_key: location_client_1 cargo_actions: [] attributes: [] - time: '2025-09-08T05:30:56Z' flags: - RELOCATING cargo_actions: [] attributes: [] - time: '2025-09-08T05:38:49Z' flags: - AROUND_LOCATION location_key: location_client_3 cargo_actions: [] attributes: [] - time: '2025-09-08T05:38:49Z' flags: - INSIDE_LOCATION - AROUND_LOCATION location_key: location_client_3 cargo_actions: [] attributes: [] - time: '2025-09-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: '2025-09-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: '2025-09-08T04:39:34Z' to: '2025-09-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: '2025-09-08T04:39:34Z' to: '2025-09-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: '2025-09-08T04:39:34Z' to: '2025-09-08T04:39:34Z' - demand_key: demand_1_pickup event_key: demand_1_pickup_event demand_time_window: from: '2025-09-08T04:39:34Z' to: '2025-09-08T04:39:34Z' stop_time_window: from: '2025-09-08T04:39:34Z' to: '2025-09-08T04:39:34Z' measurements: time_window: from: '2025-09-08T04:39:34Z' to: '2025-09-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: '2025-09-08T05:00:00Z' to: '2025-09-08T05:10:00Z' stop_time_window: from: '2025-09-08T05:00:00Z' to: '2025-09-08T05:10:00Z' measurements: time_window: from: '2025-09-08T04:39:34Z' to: '2025-09-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: '2025-09-08T05:20:56Z' to: '2025-09-08T05:30:56Z' stop_time_window: from: '2025-09-08T05:20:56Z' to: '2025-09-08T05:30:56Z' measurements: time_window: from: '2025-09-08T05:10:00Z' to: '2025-09-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: '2025-09-08T05:38:49Z' to: '2025-09-08T05:53:49Z' stop_time_window: from: '2025-09-08T05:38:49Z' to: '2025-09-08T05:53:49Z' measurements: time_window: from: '2025-09-08T05:30:56Z' to: '2025-09-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: '2025-09-07T21:00:00Z' to: '2025-09-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: 莫斯科 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: '2025-09-08T05:00:00+00:00' to: '2025-09-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: '2025-09-07T21:00:00+00:00' to: '2025-09-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: '2025-09-08T05:00:00+00:00' to: '2025-09-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: '2025-09-07T21:00:00+00:00' to: '2025-09-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: '2025-09-08T05:00:00+00:00' to: '2025-09-08T07:00:00+00:00' performers: - key: performer_1 shifts: - key: performer_1_shift availability_time: from: '2025-09-07T21:00:00+00:00' to: '2025-09-08T20:59:59+00:00' working_time: from: '2025-09-07T21:00:00+00:00' to: '2025-09-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: '2025-09-07T21:00:00+00:00' to: '2025-09-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: '2025-09-08T04:38:34Z' to: '2025-09-08T05:53:39Z' transport: transport_key: transport_1 shift_key: transport_1_shift shift_time: from: '2025-09-08T04:38:34Z' to: '2025-09-08T05:53:39Z' states: - time: '2025-09-08T04:38:34Z' flags: - INSIDE_LOCATION - AROUND_LOCATION location_key: location_storage cargo_actions: [] attributes: [] - time: '2025-09-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: '2025-09-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: '2025-09-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: '2025-09-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: '2025-09-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: '2025-09-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: '2025-09-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: '2025-09-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: '2025-09-08T05:10:00Z' flags: - RELOCATING cargo_actions: - box_key: box_1 cargo_key: order_1_cargos cargo_action_type: ADD attributes: [] - time: '2025-09-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: '2025-09-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: '2025-09-08T05:30:52Z' flags: - INSIDE_LOCATION - AROUND_LOCATION location_key: location_client_1 cargo_actions: [] attributes: [] - time: '2025-09-08T05:30:52Z' flags: - RELOCATING cargo_actions: [] attributes: [] - time: '2025-09-08T05:38:39Z' flags: - INSIDE_LOCATION - AROUND_LOCATION location_key: location_client_3 cargo_actions: [] attributes: [] - time: '2025-09-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: '2025-09-08T05:53:39Z' flags: - INSIDE_LOCATION - AROUND_LOCATION location_key: location_client_3 cargo_actions: [] attributes: [] waitlist: [] attributes: [] ReplanResultMoscow: summary: 莫斯科 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: '2025-09-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: '2025-09-08T04:39:34Z' to: '2025-09-08T05:53:49Z' transport: transport_key: transport_1 shift_key: transport_1_shift shift_time: from: '2025-09-08T04:39:34Z' to: '2025-09-08T05:53:49Z' states: - time: '2025-09-08T04:39:34Z' flags: - INSIDE_LOCATION - AROUND_LOCATION location_key: location_storage cargo_actions: [] attributes: [] - time: '2025-09-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: '2025-09-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: '2025-09-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: '2025-09-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: '2025-09-08T04:39:34Z' flags: - AROUND_LOCATION location_key: location_storage cargo_actions: [] attributes: [] - time: '2025-09-08T04:39:34Z' flags: - RELOCATING cargo_actions: [] attributes: [] - time: '2025-09-08T05:00:00Z' flags: - AROUND_LOCATION location_key: location_client_2 cargo_actions: [] attributes: [] - time: '2025-09-08T05:00:00Z' flags: - INSIDE_LOCATION - AROUND_LOCATION location_key: location_client_2 cargo_actions: [] attributes: [] - time: '2025-09-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: '2025-09-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: '2025-09-08T05:10:00Z' flags: - AROUND_LOCATION location_key: location_client_2 cargo_actions: [] attributes: [] - time: '2025-09-08T05:10:00Z' flags: - RELOCATING cargo_actions: [] attributes: [] - time: '2025-09-08T05:20:56Z' flags: - AROUND_LOCATION location_key: location_client_1 cargo_actions: [] attributes: [] - time: '2025-09-08T05:20:56Z' flags: - INSIDE_LOCATION - AROUND_LOCATION location_key: location_client_1 cargo_actions: [] attributes: [] - time: '2025-09-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: '2025-09-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: '2025-09-08T05:30:56Z' flags: - AROUND_LOCATION location_key: location_client_1 cargo_actions: [] attributes: [] - time: '2025-09-08T05:30:56Z' flags: - RELOCATING cargo_actions: [] attributes: [] - time: '2025-09-08T05:38:49Z' flags: - AROUND_LOCATION location_key: location_client_3 cargo_actions: [] attributes: [] - time: '2025-09-08T05:38:49Z' flags: - INSIDE_LOCATION - AROUND_LOCATION location_key: location_client_3 cargo_actions: [] attributes: [] - time: '2025-09-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: '2025-09-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: '2025-09-08T04:39:34Z' to: '2025-09-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: '2025-09-08T04:39:34Z' to: '2025-09-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: '2025-09-08T04:39:34Z' to: '2025-09-08T04:39:34Z' - demand_key: demand_1_pickup event_key: demand_1_pickup_event demand_time_window: from: '2025-09-08T04:39:34Z' to: '2025-09-08T04:39:34Z' stop_time_window: from: '2025-09-08T04:39:34Z' to: '2025-09-08T04:39:34Z' measurements: time_window: from: '2025-09-08T04:39:34Z' to: '2025-09-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: '2025-09-08T05:00:00Z' to: '2025-09-08T05:10:00Z' stop_time_window: from: '2025-09-08T05:00:00Z' to: '2025-09-08T05:10:00Z' measurements: time_window: from: '2025-09-08T04:39:34Z' to: '2025-09-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: '2025-09-08T05:20:56Z' to: '2025-09-08T05:30:56Z' stop_time_window: from: '2025-09-08T05:20:56Z' to: '2025-09-08T05:30:56Z' measurements: time_window: from: '2025-09-08T05:10:00Z' to: '2025-09-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: '2025-09-08T05:38:49Z' to: '2025-09-08T05:53:49Z' stop_time_window: from: '2025-09-08T05:38:49Z' to: '2025-09-08T05:53:49Z' measurements: time_window: from: '2025-09-08T05:30:56Z' to: '2025-09-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: '2025-09-07T21:00:00Z' to: '2025-09-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: 莫斯科 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: '2025-09-08T05:00:00+00:00' to: '2025-09-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: '2025-09-07T21:00:00+00:00' to: '2025-09-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: '2025-09-08T05:00:00+00:00' to: '2025-09-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: '2025-09-07T21:00:00+00:00' to: '2025-09-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: '2025-09-08T05:00:00+00:00' to: '2025-09-08T07:00:00+00:00' performers: - key: performer_1 shifts: - key: performer_1_shift availability_time: from: '2025-09-07T21:00:00+00:00' to: '2025-09-08T20:59:59+00:00' working_time: from: '2025-09-07T21:00:00+00:00' to: '2025-09-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: '2025-09-07T21:00:00+00:00' to: '2025-09-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: '2025-09-08T04:38:34Z' to: '2025-09-08T05:53:39Z' transport: transport_key: transport_1 shift_key: transport_1_shift shift_time: from: '2025-09-08T04:38:34Z' to: '2025-09-08T05:53:39Z' states: - time: '2025-09-08T04:38:34Z' flags: - INSIDE_LOCATION - AROUND_LOCATION location_key: location_storage cargo_actions: [] attributes: [] - time: '2025-09-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: '2025-09-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: '2025-09-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: '2025-09-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: '2025-09-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: '2025-09-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: '2025-09-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: '2025-09-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: '2025-09-08T05:10:00Z' flags: - RELOCATING cargo_actions: - box_key: box_1 cargo_key: order_1_cargos cargo_action_type: ADD attributes: [] - time: '2025-09-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: '2025-09-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: '2025-09-08T05:30:52Z' flags: - INSIDE_LOCATION - AROUND_LOCATION location_key: location_client_1 cargo_actions: [] attributes: [] - time: '2025-09-08T05:30:52Z' flags: - RELOCATING cargo_actions: [] attributes: [] - time: '2025-09-08T05:38:39Z' flags: - INSIDE_LOCATION - AROUND_LOCATION location_key: location_client_3 cargo_actions: [] attributes: [] - time: '2025-09-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: '2025-09-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/custom_400_with_errors_and_warnings' examples: Result400: $ref: '#/components/examples/Result400' parameters: process_code: name: process_code description: 唯一的进程标识符。 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: - Convert - XLSX Format - name: Maintenance tags: - System