openapi: 3.0.3 info: title: VRt.Monitor [MT] version: 7.9.2527 license: name: Proprietary url: https://veeroute.com/ termsOfService: https://veeroute.com/resources/terms_of_service contact: name: Veeroute Support Team email: servicedesk@veeroute.com x-logo: url: ../images/monitor.svg backgroundColor: '#FAFAFA' altText: VRt.Monitor description: 'Veeroute Monitor API. # Description Server part of the Veeroute Monitor. ## Entity relationship diagram ![erd](../uml/monitor.svg)' servers: - url: https://api.edge7.veeroute.cloud description: Environment for integration and early access to the new features - url: https://api.prod7.veeroute.cloud description: Production environment security: - ApiKeyAuth: [] tags: - name: Devices description: 'Devices management. ' - name: Analytics description: 'Analytics and reports. ' - name: Waves description: 'Waves management. ' - name: Trips description: 'Trips management. ' - name: System description: 'System functions. Auxiliary functionality common to all services. ' externalDocs: description: Veeroute company website url: https://veeroute.com/ paths: /monitor/trips/{essence_key}: parameters: - $ref: '#/components/parameters/essence_key' get: tags: - Trips summary: Read trip description: Getting trip information by key. operationId: read_trip responses: '200': description: Successful execution content: application/json: schema: $ref: '#/components/schemas/web_trip' '400': $ref: '#/components/responses/400_with_errors_and_warnings' '401': $ref: '#/components/responses/401' '402': $ref: '#/components/responses/402' '403': $ref: '#/components/responses/403' '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' /monitor/system/check: get: tags: - System summary: Checking the availability description: Checking the service availability. operationId: check security: [] responses: '200': description: Successful execution content: application/json: schema: $ref: '#/components/schemas/check_result' '404': $ref: '#/components/responses/404' '405': $ref: '#/components/responses/405' '406': $ref: '#/components/responses/406' '415': $ref: '#/components/responses/415' '429': $ref: '#/components/responses/429' '500': $ref: '#/components/responses/500' '501': $ref: '#/components/responses/501' '502': $ref: '#/components/responses/502' '503': $ref: '#/components/responses/503' '504': $ref: '#/components/responses/504' default: $ref: '#/components/responses/503' /monitor/system/version: get: tags: - System summary: Getting the service version description: Getting the service version. operationId: version security: [] responses: '200': description: Successful execution content: application/json: schema: $ref: '#/components/schemas/version_result' '404': $ref: '#/components/responses/404' '405': $ref: '#/components/responses/405' '406': $ref: '#/components/responses/406' '415': $ref: '#/components/responses/415' '429': $ref: '#/components/responses/429' '500': $ref: '#/components/responses/500' '501': $ref: '#/components/responses/501' '502': $ref: '#/components/responses/502' '503': $ref: '#/components/responses/503' '504': $ref: '#/components/responses/504' default: $ref: '#/components/responses/503' /monitor/file/{filename}: parameters: - $ref: '#/components/parameters/filename' get: tags: - System summary: Getting the documentation description: Getting the file with this service documentation. operationId: file security: [] responses: '200': description: Successful execution content: text/html: schema: $ref: '#/components/schemas/file_html' text/plain: schema: $ref: '#/components/schemas/file_json' '404': $ref: '#/components/responses/404' '405': $ref: '#/components/responses/405' '406': $ref: '#/components/responses/406' '415': $ref: '#/components/responses/415' '429': $ref: '#/components/responses/429' '500': $ref: '#/components/responses/500' '501': $ref: '#/components/responses/501' '502': $ref: '#/components/responses/502' '503': $ref: '#/components/responses/503' '504': $ref: '#/components/responses/504' default: $ref: '#/components/responses/503' components: securitySchemes: ApiKeyAuth: description: "For client [authentication](https://developer.mozilla.org/en-US/docs/Web/HTTP/Authentication)\ \ \n[JWT token](https://en.wikipedia.org/wiki/JSON_Web_Token) is used,\nwhich\ \ must be specified in the header for each request in the format:\n\n`Authorization:\ \ Bearer `.\n\nToken can be obtained via VRt.Account API.\n" type: http scheme: bearer bearerFormat: JWT schemas: basic_essence_key: description: Key, unique identifier. type: string nullable: true default: null minLength: 1 maxLength: 1024 example: key01 trip_name: description: Trip name. type: string minLength: 0 maxLength: 64 default: '' example: 1-ABC 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: '2024-11-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: '2024-11-21T19:45:00Z' required: - from - to 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 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' attribute: description: Attribute. type: object additionalProperties: false properties: key: description: Attribute's key. type: string minLength: 1 maxLength: 100 example: attribute_name value: description: Attribute's value. type: string minLength: 0 maxLength: 2000 example: X51 required: - key - value attributes: description: Attributes. Used to add service information. type: array minItems: 0 maxItems: 1000 uniqueItems: true default: [] items: $ref: '#/components/schemas/attribute' 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: '2024-11-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. \nPossible flag values\ \ (locations):\n * `AROUND_LOCATION` - a performer is around a location:\ \ finished relocation to the location by routing means.\n * `INSIDE_LOCATION`\ \ - a performer is inside a location considering arrival and departure\ \ time.\n\nPossible flag values (time windows):\n * `INSIDE_WORKING_WINDOW`\ \ - a performer is inside a formal working shift window from the input\ \ task.\n * `INSIDE_LOCATION_WINDOW` - a performer is inside an availability\ \ window of a location.\n * `INSIDE_EVENT_HARD_WINDOW` - a performer\ \ is inside the hard window of an event.\n * `INSIDE_EVENT_SOFT_WINDOW`\ \ - a performer is inside the soft window of an event.\n\nPossible flag\ \ values (work states):\n * `ON_DEMAND` - 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" 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: Total distance in meters. type: integer format: int32 default: 0 minimum: 0 maximum: 4000000000 example: 5200 cost: description: Total 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: The total 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 name: $ref: '#/components/schemas/trip_name' 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' attributes: $ref: '#/components/schemas/attributes' required: - key - performer - transport - states 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 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: 10000000000 example: 1231.1 reward: description: The total reward for orders fulfillment. type: number format: double minimum: 0 maximum: 10000000000 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: -10000000000 maximum: 10000000000 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 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. 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 round-trips within a trip. type: integer format: int32 minimum: 0 maximum: 15001 example: 2 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 transport_load: description: Total transport load. type: object additionalProperties: false properties: count: description: Number of orders. 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. 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' 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' attributes: $ref: '#/components/schemas/attributes' required: - trip_key - general_statistics - load_statistics - stop_statistics basic_enabled: description: Using essence for calculations. type: boolean default: true example: false readOnly: false basic_pristine: description: 'A flag indicating whether changes to the entity have been made relative to the original data. `true` - means that the data is original and has not been changed. ' type: boolean default: true example: false readOnly: true basic_attributes: description: Attributes. type: string minLength: 0 maxLength: 1000000 default: '' example: key1:value1, key2:value2 basic_time_window: description: Time window. type: object additionalProperties: false nullable: true properties: from: description: 'Date and time according to [ISO 8601](https://tools.ietf.org/html/rfc3339#section-5.6). For the left edge of the time window, the earliest of the left edges of the child entities'' time windows is selected. ' type: string format: date-time nullable: true example: '2024-11-21T08:45:00+03:00' to: description: 'Date and time according to [ISO 8601](https://tools.ietf.org/html/rfc3339#section-5.6). For the right edge of the time window, the latest of the right edges of the child entities'' time windows is selected. ' type: string format: date-time nullable: true example: '2024-11-21T19:45:00+03:00' table_trip_fields: description: Trip\stops fields for table. type: object additionalProperties: false readOnly: true properties: essence_key: $ref: '#/components/schemas/basic_essence_key' essence_type: description: Essence type. type: string nullable: false enum: - TRIP - STOP default: TRIP example: TRIP enabled: $ref: '#/components/schemas/basic_enabled' pristine: $ref: '#/components/schemas/basic_pristine' trip_name: $ref: '#/components/schemas/trip_name' attributes: $ref: '#/components/schemas/basic_attributes' cost: description: 'Total 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: The total reward for orders fulfillment. type: number format: double minimum: -10000000000 maximum: 10000000000 default: 0 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: 0 maximum: 10000000000 default: 0 example: 1231.1 driving_time: $ref: '#/components/schemas/time_duration' waiting_time: $ref: '#/components/schemas/time_duration' break_time: $ref: '#/components/schemas/time_duration' rest_time: $ref: '#/components/schemas/time_duration' working_time: $ref: '#/components/schemas/time_duration' arriving_time: $ref: '#/components/schemas/time_duration' departure_time: $ref: '#/components/schemas/time_duration' total_time: $ref: '#/components/schemas/time_duration' distance: description: Distance in meters. type: integer format: int32 minimum: 0 maximum: 4000000000 example: 5200 default: 0 time_window: $ref: '#/components/schemas/basic_time_window' orders_count: description: The total number of planned and assigned orders. type: integer format: int32 minimum: 0 maximum: 15001 example: 1700 default: 0 plan_orders_count: description: The total number of planned orders. type: integer format: int32 minimum: 0 maximum: 15001 example: 1003 default: 0 waitlist_orders_count: description: The total number of assigned orders. type: integer format: int32 minimum: 0 maximum: 15001 example: 697 default: 0 stops_count: description: The total number of stops (non-unique locations). type: integer format: int32 minimum: 0 maximum: 15001 example: 87 default: 0 locations_count: description: The total number of unique locations within one trip. type: integer format: int32 minimum: 0 maximum: 15001 example: 45 default: 0 cargo_capacity_ratio_mass: description: The ratio of the total additive measures of the transported cargo to the total capacity of the boxes. type: number format: double minimum: 0 maximum: 1000000 default: 0 example: 10 cargo_capacity_ratio_volume: description: The ratio of the total additive measures of the transported cargo to the total capacity of the boxes. type: number format: double minimum: 0 maximum: 1000000 default: 0 example: 2 cargo_capacity_ratio_capacity_a: description: The ratio of the total additive measures of the transported cargo to the total capacity of the boxes. type: number format: double minimum: 0 maximum: 1000000 default: 0 example: 1 cargo_capacity_ratio_capacity_b: description: The ratio of the total additive measures of the transported cargo to the total capacity of the boxes. type: number format: double minimum: 0 maximum: 1000000 default: 0 example: 2 cargo_capacity_ratio_capacity_c: description: The ratio of the total additive measures of the transported cargo to the total capacity of the boxes. type: number format: double minimum: 0 maximum: 1000000 default: 0 example: 3 max_transport_load_mass: description: The ratio of the maximum load of boxes to the total capacity of boxes. type: number format: double minimum: 0 maximum: 1000000 default: 0 example: 0.1 max_transport_load_volume: description: The ratio of the maximum load of boxes to the total capacity of boxes. type: number format: double minimum: 0 maximum: 1000000 default: 0 example: 0.1 max_transport_load_capacity_a: description: The ratio of the maximum load of boxes to the total capacity of boxes. type: number format: double minimum: 0 maximum: 1000000 default: 0 example: 0.1 max_transport_load_capacity_b: description: The ratio of the maximum load of boxes to the total capacity of boxes. type: number format: double minimum: 0 maximum: 1000000 default: 0 example: 0.1 max_transport_load_capacity_c: description: The ratio of the maximum load of boxes to the total capacity of boxes. type: number format: double minimum: 0 maximum: 1000000 default: 0 example: 0.1 linked_essence: description: Link to essence. type: object additionalProperties: false properties: essence_key: $ref: '#/components/schemas/basic_essence_key' essence_type: description: Essence type. type: string nullable: false enum: - LOCATION - ORDER - ASSIGNED_ORDER - PERFORMER - TRANSPORT - HARDLINK - TRIP - FACT example: LOCATION required: - essence_key - essence_type linked_essence_list: description: A list of linked essences. type: array uniqueItems: false minItems: 0 maxItems: 15001 items: $ref: '#/components/schemas/linked_essence' web_trip: description: Web Trip. type: object additionalProperties: false properties: trip: $ref: '#/components/schemas/trip' trip_statistics: $ref: '#/components/schemas/trip_statistics' fields: $ref: '#/components/schemas/table_trip_fields' linked_essences: $ref: '#/components/schemas/linked_essence_list' required: - trip - trip_statistics 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 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: '2024-11-21T09:30:00+03:00' required: - process_code - request_code - username - company - service - operation - env - pod - time schema_error: description: Data error by schema. type: object additionalProperties: false properties: entity: description: Target entity identifier. type: string nullable: true maxLength: 1024 example: order_0001 message: description: Error message. type: string example: bad input data required: - entity - message schema_error_list: description: Errors list. type: array uniqueItems: false minItems: 0 maxItems: 15001 items: $ref: '#/components/schemas/schema_error' entity_error_type: description: "Error type:\n * `INCONSISTENT_REFERENCE` - bad reference key\ \ \n * `UNIQUE_IDS_VIOLATION` - all keys must be unique\n * `INVALID_ROUTING_MATRIX`\ \ - bad routing matrix dimension\n * `INVALID_GEO_PROVIDER` - bad geo provider\n\ \ * `COMPATIBILITY_CARGO_BOX` - no cargo is compatible with any box\n *\ \ `COMPATIBILITY_TRANSPORT_PERFORMER` - no transport is compatible with any\ \ performer\n * `COMPATIBILITY_TRANSPORT_LOCATION` - no transport is compatible\ \ with any location\n * `COMPATIBILITY_ORDER_PERFORMER` - no order is compatible\ \ with any performer\n * `INCONSISTENT_HARDLINK` - essence key must be only\ \ in one hardlink\n * `PLANNING_HORIZON_EXCEEDED` - planning horizon exceeded\ \ (difference between earliest and latest timestamp in dataset)\n * `MEANINGLESS_RESTRICTIONS`\ \ - the specified restrictions do not make sense\n * `TOO_MANY_WARNINGS`\ \ - the number of warnings is greater than 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 - 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: "Warning type:\n * `NO_AVAILABLE_TRANSPORT` - the order cannot\ \ be fulfilled, since there is no available (by shift limitations) transport\n\ \ * `NO_AVAILABLE_PERFORMER` - the order cannot be fulfilled, since there\ \ is not a single available (by shift limitations) performer\n * `NO_COMPATIBLE_TRANSPORT`\ \ - the order cannot be completed, since there is not a single compatible\ \ (in terms of capacity and \\ or compatibility tags) transport\n * `NO_COMPATIBLE_PERFORMER`\ \ - the order cannot be completed, since there is not a single compatible\ \ (by compatibility tags) performer\n * `PICKUP_AND_DROP_VIOLATION` - for\ \ each cargo within the order there must be exactly one loading and exactly\ \ one unloading (except for `PICKUP_TO_BOX` and `DROP_FROM_BOX` orders)\n\ \ * `PICKUP_AND_DROP_VIOLATION_PRECEDENCE_IN_ORDER` - for each cargo within\ \ the order, loading must go before unloading (`precedence_in_order`)\n *\ \ `PICKUP_AND_DROP_VIOLATION_PRECEDENCE_IN_TRIP` - conflicting requirements\ \ for the precedence of orders were specified (`precedence_in_trip`)\n *\ \ `VIOLATION_PRECEDENCE_IN_TRIP_AND_ORDER` - requirements for the precedence\ \ of orders in the trip (`precedence_in_trip`) and in the order (` precedence_in_order`)\ \ contradict each other\n * `TIME_WINDOW_VIOLATION` - the start time of the\ \ time window is later than the end time of the window or time window exceeds\ \ the maximum allowed\n * `DURATION_VIOLATION` - duration does not correspond\ \ to the allowed interval\n * `ORDER_WINDOWS_INTERSECTION_VIOLATION` - soft\ \ windows should not go beyond the boundaries of the hard window\n * `PERFORMER_SHIFTS_INTERSECTION_VIOLATION`\ \ - time ranges of the performer's work shifts must not overlap, the beginning\ \ of the next window cannot be equal to the end of the previous one\n * `TRANSPORT_SHIFTS_INTERSECTION_VIOLATION`\ \ - time ranges of transport work shifts should not overlap, the beginning\ \ of the next window cannot be equal to the end of the previous one\n * `LOCATION_WINDOWS_INTERSECTION_VIOLATION`\ \ - time ranges of working windows of one location should not intersect, the\ \ beginning of the next window cannot be equal to the end of the previous\ \ one\n * `INVALID_LOCATION_DURATIONS` - location has a working window that\ \ is less than the sum of the times `arrival + departure`\n * `NO_TRANSPORT_BOXES`\ \ - if there are orders with cargo, then the transport must have at least\ \ one box\n * `MAX_CAPACITY_VIOLATION` - `max_capacity` limit exceeds the\ \ total capacity of all boxes or set for only one box or less than the capacity\ \ of some box\n * `MAX_BOXES_VIOLATION` - limit `max_boxes` is greater than\ \ or equal to the total number of boxes or specified for one box or equal\ \ to zero\n * `TOO_MANY_CARGOS_FOR_DROP_VIOLATION` - the number of loads\ \ for an order of the` DROP` / `DROP_FROM_BOX` type must be no more than one\n\ \ * `EMPTY_CARGOES_LIST` - empty list of loads for orders of type `DROP`\ \ / `DROP_FROM_BOX` / `PICKUP` / `PICKUP_TO_BOX`\n * `CARGO_WORK_VIOLATION`\ \ - for a `WORK` order, the cargo list must be empty\n * `GEODATA_TIME_WINDOW_VIOLATION`\ \ - the planning horizon exceeds the maximum available value\n * `SHIFT_RESTRICTIONS_COULD_BE_MORE_PRECISE`\ \ - the working window `working_window` of the change of the artist does not\ \ lie entirely inside the window of availability `availability_window`\n \ \ * `DURATION_DOES_NOT_FIT_INTO_HARD_WINDOW` - the duration of the event does\ \ not fit into the hard time window\n * `DURATION_DOES_NOT_FIT_INTO_SOFT_WINDOW`\ \ - the duration of the event does not fit into the soft time window\n *\ \ `EXTRA_DURATION_DOES_NOT_FIT_INTO_SOFT_WINDOW` - additional time for demand\ \ execution does not fit into the soft time window\n * `MAX_CALCULATION_TIME_VIOLATION`\ \ - the maximum allowable calculation time has been exceeded\n * `MAX_WAITING_TIME_VIOLATION`\ \ - the maximum allowable waiting time has been exceeded\n * `INVALID_HARDLINK`\ \ - it is impossible to assign an order with demands with the `WORK` type\ \ to transport\n * `CARGO_BOX_VIOLATION` - for requests of all types except\ \ `DROP_FROM_BOX` the key of the box where the cargo is located must be empty\n\ \ * `CARGO_MULTIBOX_VIOLATION` - for an order of type `DROP_FROM_BOX` the\ \ indicated cargoes are in boxes of different vehicles\n * `CARGO_CAPACITY_VIOLATION`\ \ - the specified cargo on board exceeds the size of the box in which it is\ \ located\n * `CARGO_ORDER_VIOLATION` - the cargo specified in the order\ \ is not present in orders\n * `FEATURE_LIFETIME_VIOLATION` - feature time\ \ windows intersect with each other or the working window `working_window`\ \ for changing the performer or transport does not intersect with the feature\ \ time window\n * `QUOTA_EXCEEDED` - service quota exceeded\n * `MAX_LOCATIONS_LIMITS_PENALTY_EXCEEDED`\ \ - the resulting solution does not satisfy the `max_locations_limits_penalty`\ \ requirement\n" type: string enum: - NO_AVAILABLE_TRANSPORT - NO_AVAILABLE_PERFORMER - NO_COMPATIBLE_TRANSPORT - NO_COMPATIBLE_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 - INVALID_LOCATION_DURATIONS - 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 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 message. type: string nullable: true example: Payment Required required: - tracedata general_403: description: 403 Error details. type: object additionalProperties: false properties: tracedata: $ref: '#/components/schemas/tracedata' message: description: Error message. type: string nullable: true example: Forbidden 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 Message. 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 message. type: string nullable: true example: Internal Server Error required: - tracedata check_result: description: Service availability result. type: object additionalProperties: false properties: health: description: "The current health indicator of the service.\n * `0.0` means\ \ the service is not ready to perform tasks.\n * `1.0` means the service\ \ is fully ready to perform tasks.\n" type: number format: double minimum: 0 maximum: 1 example: 0.999 required: - health version_result: description: Service version. type: object additionalProperties: false properties: major: description: 'Product version. Within a single version, compatibility of common data structures between services is guaranteed. A version change indicates changes that are incompatible with previous versions of the product (and all services). ' type: integer format: int32 minimum: 1 maximum: 100 example: 7 minor: description: 'Minor version of the service. A version change indicates new functionality. The update is backward compatible with the major version of the service. ' type: integer format: int32 minimum: 0 maximum: 111 example: 5 build: description: "Build version. \nContains backwards compatible bug fixes\ \ and docs update.\n" type: string minLength: 1 maxLength: 64 example: 3754RC required: - major - minor - build file_html: description: File with data in [HTML](https://html.spec.whatwg.org/) format. type: string file_json: description: File with data in [JSON](https://www.json.org/) format. type: string parameters: essence_key: name: essence_key description: Key, unique identifier. in: path required: true schema: $ref: '#/components/schemas/basic_essence_key' filename: name: filename description: File name. in: path required: true schema: description: File name. type: string minLength: 6 maxLength: 128 example: file_en.html responses: '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' examples: 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: '2024-11-28T17:13:27.945583194Z' message: logical schema_errors: [] logical_errors: - type: UNIQUE_IDS_VIOLATION entities: - entity_key: order_1 entity_type: ORDER warnings: []