openapi: 3.0.3 info: title: VRt.Packer [PC] version: 7.9.2527 license: name: Proprietary url: https://veeroute.com/ contact: name: Veeroute Support Team email: servicedesk@veeroute.com x-logo: url: ../images/packer.svg backgroundColor: '#FAFAFA' altText: VRt.Packer description: 'Veeroute Packer API. # Description The service is designed to calculate the placement of goods inside given packages. ## Types of packages ### Pallet ![pallet](../images/packer_pallet.svg) *Mono-pallet* If the pallet is fully equipped with the same product, then such a pallet is called **mono-pallet**, such a pallet has the following loading rules: 1. The maximum allowable height of the pallet with the goods laid on it is taken into account. 1. The maximum allowable weight of the loaded pallet is taken into account. 1. Goods packages can only be stacked parallel to the walls of the pallet. 1. It is allowed to rotate packages around the vertical Z-axis and only at a right angle. 1. In order to equalize the height between the positions (to place another pallet on top), empty spaces can be added to the stacking by layers. *Zone tray* After the formation of mono-pallets, the remaining part of the goods of the same article is placed on the next pallet, which is divided into zones by means of a cardboard partition in such a way that only one item of goods is placed in each zone, while the zones have the following restrictions: 1. The zones are rectangular. 1. The ratio between the sides of the zones can be any. 1. One of the sides of any zone is always in contact with the edge of the pallet. 1. Permissible number of zones on a pallet: from 2 to 6. 1. Each zone is filled according to the rules for filling a mono-pallet. 1. The stacking height of all goods does not exceed 50 mm, so that another pallet can be placed on top of such a pallet. 1. It is allowed to form pallets with different stacking heights for different positions (height difference is more than 50 mm), if these are the top pallets in the stack. ### Mixbox ![mixbox](../images/packer_mixbox.svg) If the above steps fail to place the item in this way, so that the pallet is of the required height or weight, mixboxes are used: 1. Mixbox can only be placed in one layer. 1. Different goods can be placed in one mixbox, in this case it is divided by partitions similarly to a pallet (the only difference is that the height of the packed goods is not aligned). 1. Mixboxes can be mixed with items on the same pallet. 1. One product can be packed in different mixboxes. ### Slot ![slot](../images/packer_slot.svg) The loaded pallets are stacked on top of each other, the slot is where the stack of pallets is placed. The slot has no physical body - so the dimensions of the `body` of the slot are zero. ## Coordinate system ![coordinates](../images/packer_coordinates.svg) To indicate the location of packages and goods, a local coordinate system is used, in which the coordinates of a particular object are indicated relative to the near left lower corner of the parent object, while: * Horizontal plane - axes **X**, **Y** * Vertical - **Z** axis The ratio of the axes of goods and packages: * Width - **X** * Length - **Y** * Height - **Z** ## Entity diagram ![erd](../uml/packer.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: Pack description: 'Calculation of the placement of products inside the packages. ' - name: System description: 'System functions. Auxiliary functionality common to all services. ' externalDocs: description: Veeroute company website url: https://veeroute.com/ paths: /packer/pack/calculation: post: tags: - Pack summary: Packing (SYNC) description: Planning the optimal package. operationId: run_pack_calculation requestBody: description: Data for calculation. required: true content: application/json: schema: $ref: '#/components/schemas/pack_task' examples: PackTaskSmall: $ref: '#/components/examples/PackTaskSmall' PackTaskBig: $ref: '#/components/examples/PackTaskBig' responses: '200': description: Calculation completed successfully content: application/json: schema: $ref: '#/components/schemas/pack_result' examples: PackResultSmall: $ref: '#/components/examples/PackResultSmall' PackResultBig: $ref: '#/components/examples/PackResultBig' '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_packer import * from vrt_lss_packer.apis import * from vrt_lss_packer.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) packer_api = PackApi(client) # run check check_response = system_api.check() print(check_response) # run sync calculation task = PackTask(...) result = packer_api.pack(task) print(result)' /packer/pack/calculation-async: post: tags: - Pack summary: Packing (ASYNC) description: "The result can be obtained using the [result](#operation/read_pack_result)\ \ method,\n removing - with [delete](#operation/delete_pack_result).\n" operationId: run_pack_calculation_async requestBody: description: Data for calculation. required: true content: application/json: schema: $ref: '#/components/schemas/pack_task' examples: PackTaskSmall: $ref: '#/components/examples/PackTaskSmall' PackTaskBig: $ref: '#/components/examples/PackTaskBig' 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' /packer/pack/calculation-async/{process_code}: parameters: - $ref: '#/components/parameters/process_code' delete: tags: - Pack summary: Cancel calculation description: Cancel calculation process by the calculation identifier. operationId: cancel_pack_calculation 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' /packer/pack/state/{process_code}: parameters: - $ref: '#/components/parameters/process_code' get: tags: - Pack summary: Calculation state description: Read calculation state by the calculation identifier. operationId: read_pack_state 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' /packer/pack/result/{process_code}: parameters: - $ref: '#/components/parameters/process_code' get: tags: - Pack summary: Getting the result description: Getting the result based on the calculation identifier. operationId: read_pack_result responses: '200': description: Calculation completed successfully content: application/json: schema: $ref: '#/components/schemas/pack_result' examples: PackResultSmall: $ref: '#/components/examples/PackResultSmall' PackResultBig: $ref: '#/components/examples/PackResultBig' '202': description: Calculation in progress, intermediate results returned content: application/json: schema: $ref: '#/components/schemas/pack_result' examples: PackResultSmall: $ref: '#/components/examples/PackResultSmall' '299': description: Calculation completed, problems encountered during the calculation process content: application/json: schema: $ref: '#/components/schemas/pack_result' examples: PackResultSmall: $ref: '#/components/examples/PackResultSmall' '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: - Pack summary: Result removal description: Removal of the planning result by the calculation identifier. operationId: delete_pack_result 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' /packer/pack/validation: post: tags: - Pack summary: Data validation description: Checking data before planning. operationId: run_pack_validation requestBody: description: Data for calculation. required: true content: application/json: schema: $ref: '#/components/schemas/pack_task' examples: PackTaskSmall: $ref: '#/components/examples/PackTaskSmall' PackTaskBig: $ref: '#/components/examples/PackTaskBig' responses: '200': description: Data validation completed successfully content: application/json: schema: $ref: '#/components/schemas/validate_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' /packer/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' /packer/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' /packer/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: dimensions: description: Overall dimensions (L-W-H) and weight. type: object additionalProperties: false properties: length: description: Length in millimeters. type: integer format: int32 minimum: 0 maximum: 100000 example: 1000 width: description: Width in millimeters. type: integer format: int32 minimum: 0 maximum: 100000 example: 1000 height: description: Height in millimeters. type: integer format: int32 minimum: 0 maximum: 100000 example: 1000 mass: description: Weight in grams. type: integer format: int32 minimum: 0 maximum: 1000000 example: 1000 required: - length - width - height - mass 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' product: description: 'Product. Can be rotated 90 degrees around the vertical axis. ' type: object additionalProperties: false properties: key: description: Product key (SKU). type: string minLength: 1 maxLength: 1024 example: pallet_type_1 count: description: Number of products. type: integer format: int32 minimum: 1 maximum: 70001 default: 1 example: 1460 dimensions: $ref: '#/components/schemas/dimensions' description: Outer dimensions and mass of one product. max_pressure: description: The maximum permissible top load that this product can withstand, in kg/m2. type: integer format: int32 minimum: 0 maximum: 100000 example: 2 default: 100000 compatible_package_keys: description: 'List of keys of compatible packages. If the list is empty, then all packages are considered compatible. The list must be either empty or must contain the keys of all mixboxes. ' type: array minItems: 0 maxItems: 11 uniqueItems: true default: [] items: description: Package key. type: string minLength: 1 maxLength: 1024 example: - pallet_type_1 attributes: $ref: '#/components/schemas/attributes' required: - key - dimensions package_type: description: "Types of [packaging](#section/Description/Packaging-process):\n\ \ * `SLOT` - space in the transport box for a stack of pallets, the height\ \ limits the stack of pallets\n * `PALLET` - a pallet, the products are stacked\ \ on top of a pallet, with the help of a cardboard partition it can be divided\ \ into 2 - 6 parts, in each of which the same products are placed\n * `MIXBOX`\ \ - mix-box, the products are folded inside the box\n" type: string enum: - SLOT - PALLET - MIXBOX example: MIXBOX coordinates: description: Local [coordinates](#section/Description/Coordinate-system). type: object additionalProperties: false properties: x: description: Local coordinate along the X axis, in millimeters. type: integer format: int32 minimum: 0 maximum: 100000 example: 1000 y: description: Local coordinate along the Y axis, in millimeters. type: integer format: int32 minimum: 0 maximum: 100000 example: 2000 z: description: Local coordinate along the Z axis, in millimeters. type: integer format: int32 minimum: 0 maximum: 100000 example: 3000 required: - x - y - z package: description: Package. type: object additionalProperties: false properties: key: description: Package key, unique identifier. type: string minLength: 1 maxLength: 1024 example: pallet_type_1 type: $ref: '#/components/schemas/package_type' body_dimensions: $ref: '#/components/schemas/dimensions' description: Overall dimensions of the main body of the package. container_dimensions: $ref: '#/components/schemas/dimensions' description: Dimensions and max mass of the usable space for placing the products. container_coordinates: $ref: '#/components/schemas/coordinates' description: The offset of the far left bottom corner of the container relative to the main body. attributes: $ref: '#/components/schemas/attributes' required: - key - type - body_dimensions - container_dimensions - container_coordinates 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 pack_settings: description: Packing settings. type: object additionalProperties: false properties: calculation_settings: $ref: '#/components/schemas/calculation_settings' 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 pack_task: description: Initial task. type: object additionalProperties: false properties: products: description: List of products. type: array uniqueItems: true minItems: 1 maxItems: 70001 nullable: false items: $ref: '#/components/schemas/product' packages: description: 'List of packages. It is obligatory to have at least one package of each type (SLOT, PALLET, MIXBOX). ' type: array uniqueItems: true minItems: 1 maxItems: 11 nullable: false items: $ref: '#/components/schemas/package' pack_settings: $ref: '#/components/schemas/pack_settings' dataset_name: $ref: '#/components/schemas/dataset_name' required: - products - packages 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 product_layout: description: The layout of the product in the package. type: object additionalProperties: false properties: product_key: description: Package key. type: string minLength: 1 maxLength: 1024 example: pallet_type_1 coordinates: $ref: '#/components/schemas/coordinates' dimensions: $ref: '#/components/schemas/dimensions' description: Outer dimensions and weight of the product. required: - product_key - coordinates - dimensions product_group_layout: description: 'The layout of the group of same (by key) product in the package. Product group - virtual package that combines the same (by key) product inside another package. ' type: object additionalProperties: false properties: product_key: description: Package key. type: string minLength: 1 maxLength: 1024 example: pallet_type_1 coordinates: $ref: '#/components/schemas/coordinates' dimensions: $ref: '#/components/schemas/dimensions' description: Outer dimensions and total weight of the product group. product_layouts: description: List of product layouts. type: array uniqueItems: false minItems: 0 maxItems: 70001 nullable: false items: $ref: '#/components/schemas/product_layout' required: - product_key - coordinates - dimensions - product_layouts package_layout: description: 'The layout of the product or other packaging in the package. ' type: object additionalProperties: false properties: package_key: description: Package key. type: string minLength: 1 maxLength: 1024 example: pallet_type_1 coordinates: $ref: '#/components/schemas/coordinates' description: The coordinates of the bottom left far corner of the package relative to the bottom left far corner of the parent package. dimensions: $ref: '#/components/schemas/dimensions' description: Overall dimensions and mass of the loaded package. product_group_layouts: description: List of product group layouts. type: array uniqueItems: false minItems: 0 maxItems: 70001 nullable: false items: $ref: '#/components/schemas/product_group_layout' package_layouts: description: List of package layouts. type: array uniqueItems: false minItems: 0 maxItems: 70001 nullable: false items: $ref: '#/components/schemas/package_layout' required: - package_key - coordinates - dimensions - product_group_layouts - package_layouts blueprint: description: 'A product layout plan as a list of packaging locations. The first level contains a list of pallet stacks. ' type: array uniqueItems: false minItems: 0 maxItems: 70001 items: $ref: '#/components/schemas/package_layout' example: - package_key: slot_1 coordinates: x: 0 y: 0 z: 0 dimensions: length: 1200 width: 800 height: 250 mass: 70000 package_layouts: - package_key: pallet_1 coordinates: x: 0 y: 0 z: 0 dimensions: length: 1200 width: 800 height: 250 mass: 70000 package_layouts: [] product_group_layouts: - product_key: product_1 coordinates: x: 0 y: 0 z: 150 dimensions: length: 1000 width: 500 height: 100 mass: 60000 product_layouts: - product_key: product_1 coordinates: x: 0 y: 0 z: 150 dimensions: length: 1000 width: 500 height: 100 mass: 60000 product_group_layouts: [] package_statistics: description: Statistics for package. type: object additionalProperties: false properties: package_key: description: Package key, unique identifier. type: string minLength: 1 maxLength: 1024 example: pallet_type_1 package_type: $ref: '#/components/schemas/package_type' count: description: The total number of packages. type: integer format: int32 minimum: 0 maximum: 700001 example: 1700 max_container_mass: description: The maximum weight of goods that this package can hold (in total for all packages of the specified key and type), in kilograms. type: number format: double minimum: 0 maximum: 1000000 example: 2144.69 max_container_volume: description: The maximum volume of goods that this package can hold (total for all packages of the specified key and type), in cubic meters. type: number format: double minimum: 0 maximum: 1000000 example: 100 utilization_by_mass: description: Utilization by mass (in fractions) - the ratio of the loaded mass to the maximum possible (excluding weight of packages). type: number format: double minimum: 0 maximum: 1 example: 0.98 utilization_by_volume: description: Utilization by volume (in fractions) - the ratio of the loaded volume to the maximum possible (excluding volume of packages). type: number format: double minimum: 0 maximum: 1 example: 0.91 required: - package_key - package_type - count - max_container_mass - max_container_volume - utilization_by_mass - utilization_by_volume pack_statistics: description: 'General statistics for packing scheme. ' type: object additionalProperties: false properties: products_count: description: The total number of products (taking into account the number of goods in one group). type: integer format: int32 minimum: 0 maximum: 700001 example: 257 packages_count: description: The total number of packages. type: integer format: int32 minimum: 0 maximum: 700001 example: 1700 total_mass: description: Total weight in kilograms. type: number format: double minimum: 0 maximum: 1000000 example: 2144.69 total_volume: description: The total volume of all packed goods in cubic meters. type: number format: double minimum: 0 maximum: 1000000 example: 100 package_statistics: description: Statistics on used packages. type: array uniqueItems: true minItems: 0 maxItems: 11 nullable: false items: $ref: '#/components/schemas/package_statistics' required: - products_count - packages_count - total_mass - total_volume - package_statistics entity_warning_type: description: "Warning type:\n * `INVALID_PALLET_SLOT_FIT` - a pallet without\ \ rotation must be placed in the slot, taking into account the maximum load\ \ in terms of size and weight\n * `INVALID_MIXBOX_PALLET_FIT` - any mixbox\ \ must fit on a pallet considering the maximum load, any 4 mixboxes of the\ \ same type in a 2×2 configuration without rotation must fit on any pallet\ \ according to the overall dimensions and weight of the package body_dimensions\n\ \ * `INVALID_PRODUCT_PACKAGE_FIT` - the product must be placed on a pallet,\ \ or in all mixboxes (if only mixboxes are compatible)\n * `INVALID_PRODUCT_COMPATIBILITY`\ \ - the product must be compatible either with all packages or only with all\ \ mixboxes\n" type: string enum: - INVALID_PALLET_SLOT_FIT - INVALID_MIXBOX_PALLET_FIT - INVALID_PRODUCT_PACKAGE_FIT - INVALID_PRODUCT_COMPATIBILITY example: INVALID_PRODUCT_PACKAGE_FIT entity_type: description: Entity type. type: string enum: - TASK - SETTINGS - PRODUCT - PACKAGE example: TASK 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_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: 70001 items: $ref: '#/components/schemas/entity_path' required: - type - entities entity_warning_list: description: 'List of warnings. Depending on the flag `calculation_settings.treat_warnings_as_errors` - triggered checks are interpreted as errors or result in the removal of incorrect data from the calculation. ' type: array uniqueItems: false minItems: 0 maxItems: 70001 items: $ref: '#/components/schemas/entity_warning' unpacked_items: description: Unpacked items list. type: object additionalProperties: false properties: product_keys: description: Unpacked product keys list. type: array uniqueItems: true minItems: 0 maxItems: 70001 items: description: Key, unique identifier. type: string minLength: 1 maxLength: 1024 example: product_01 package_keys: description: Unused package keys list. type: array uniqueItems: true minItems: 0 maxItems: 11 items: description: Key, unique identifier. type: string minLength: 1 maxLength: 1024 example: package_01 calculation_progress: description: 'Calculation progress as a percentage. The progress displays the current number of completed steps. ' type: integer format: int32 default: 0 minimum: 0 maximum: 100 example: 52 calculation_status: description: "Calculation status:\n * `WAITING` - the calculation is waiting\ \ to 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 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 calculation_info: description: Calculation information. type: object additionalProperties: false properties: status: $ref: '#/components/schemas/calculation_status' 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 pack_result: description: Packing result. type: object additionalProperties: false properties: tracedata: $ref: '#/components/schemas/tracedata' blueprint: $ref: '#/components/schemas/blueprint' statistics: $ref: '#/components/schemas/pack_statistics' warnings: $ref: '#/components/schemas/entity_warning_list' unpacked_items: $ref: '#/components/schemas/unpacked_items' calculation_progress: $ref: '#/components/schemas/calculation_progress' calculation_info: $ref: '#/components/schemas/calculation_info' required: - tracedata - blueprint - statistics - calculation_progress - calculation_info schema_error: description: Data error by schema. type: object additionalProperties: false properties: entity: description: Target entity identifier. type: string nullable: true maxLength: 1024 example: order_0001 message: description: Error message. type: string example: bad input data required: - entity - message schema_error_list: description: Errors list. type: array uniqueItems: false minItems: 0 maxItems: 15001 items: $ref: '#/components/schemas/schema_error' entity_error_type: description: "Error type:\n * `UNIQUE_IDS_VIOLATION` - all keys must be unique\n\ \ * `INCONSISTENT_REFERENCE` - bad reference key\n * `INVALID_SLOTS_COUNT`\ \ - exactly one SLOT package must be present\n * `INVALID_SLOT_CONTAINER`\ \ - slot container_coordinates must be zero\n * `INVALID_SLOT_BODY` - slot\ \ body_dimensions must be zero\n * `INVALID_PALLETS_COUNT` - exactly one\ \ PALLET package must be present\n * `INVALID_PALLET_CONTAINER_DIMENSIONS`\ \ - the length and width of a pallet container_dimensions must not exceed\ \ the corresponding body_dimensions\n * `INVALID_PALLET_CONTAINER` - the\ \ pallet container must not go beyond the boundaries of the pallet body in\ \ length and width\n * `INVALID_MIXBOX_CONTAINER` - mixbox container must\ \ be inside body subject to container_coordinates offset\n * `INVALID_MIXBOX_COUNT`\ \ - at least one valid MIXBOX package must be present\n * `INVALID_PRODUCT_DIMENSIONS`\ \ - product length, width and height must be at least 1 millimeter, weight\ \ - at least 1 gram\n * `INVALID_PRODUCT_COUNT` - at least one valid product\ \ must be present\n" type: string enum: - UNIQUE_IDS_VIOLATION - INCONSISTENT_REFERENCE - INVALID_SLOTS_COUNT - INVALID_SLOT_CONTAINER - INVALID_SLOT_BODY - INVALID_PALLETS_COUNT - INVALID_PALLET_CONTAINER_DIMENSIONS - INVALID_PALLET_CONTAINER - INVALID_MIXBOX_CONTAINER - INVALID_MIXBOX_COUNT - INVALID_PRODUCT_DIMENSIONS - INVALID_PRODUCT_COUNT example: UNIQUE_IDS_VIOLATION 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: 70001 items: $ref: '#/components/schemas/entity_path' required: - type - entities entity_error_list: description: 'A list of errors in the source data that make it impossible to start the calculation. ' type: array uniqueItems: false minItems: 0 maxItems: 70001 items: $ref: '#/components/schemas/entity_error' custom_400_with_errors_and_warnings: description: Error details. type: object additionalProperties: false properties: tracedata: $ref: '#/components/schemas/tracedata' message: description: Error message. type: string nullable: true example: bad task data schema_errors: $ref: '#/components/schemas/schema_error_list' logical_errors: $ref: '#/components/schemas/entity_error_list' 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_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 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 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 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 examples: PackTaskSmall: summary: 1 Product value: products: - key: product_1 count: 1 dimensions: length: 1200 width: 800 height: 150 mass: 60000 packages: - key: slot_default type: SLOT body_dimensions: length: 0 width: 0 height: 0 mass: 0 container_dimensions: length: 1200 width: 800 height: 1800 mass: 1000000 container_coordinates: x: 0 y: 0 z: 0 - key: pallet_default type: PALLET body_dimensions: length: 1200 width: 800 height: 150 mass: 10000 container_dimensions: length: 1200 width: 800 height: 1650 mass: 650000 container_coordinates: x: 0 y: 0 z: 150 - key: mixbox_default type: MIXBOX body_dimensions: length: 580 width: 380 height: 200 mass: 0 container_dimensions: length: 580 width: 380 height: 200 mass: 60000 container_coordinates: x: 0 y: 0 z: 0 pack_settings: calculation_settings: max_calculation_time: PT10M max_waiting_time: PT10M result_ttl: PT10M treat_warnings_as_errors: false PackTaskBig: summary: 132 Products value: products: - key: product_type_1 count: 12 dimensions: length: 400 width: 400 height: 300 mass: 1500 max_pressure: 2 - key: product_type_2.1 count: 20 dimensions: length: 100 width: 100 height: 100 mass: 1000 - key: product_type_2.2 count: 20 dimensions: length: 100 width: 100 height: 100 mass: 1000 - key: product_type_2.3 count: 20 dimensions: length: 100 width: 100 height: 100 mass: 1000 - key: product_type_3.1 count: 20 dimensions: length: 100 width: 100 height: 100 mass: 1000 - key: product_type_3.2 count: 20 dimensions: length: 100 width: 100 height: 100 mass: 1000 - key: product_type_3.3 count: 20 dimensions: length: 100 width: 100 height: 100 mass: 1000 packages: - key: slot_default type: SLOT body_dimensions: length: 0 width: 0 height: 0 mass: 0 container_dimensions: length: 1200 width: 800 height: 1800 mass: 1000000 container_coordinates: x: 0 y: 0 z: 0 - key: pallet_default type: PALLET body_dimensions: length: 1200 width: 800 height: 150 mass: 10000 container_dimensions: length: 1200 width: 800 height: 1650 mass: 650000 container_coordinates: x: 0 y: 0 z: 150 - key: mixbox_type_1 type: MIXBOX body_dimensions: length: 580 width: 380 height: 400 mass: 500 container_dimensions: length: 576 width: 376 height: 396 mass: 250000 container_coordinates: x: 2 y: 2 z: 2 - key: mixbox_type_2 type: MIXBOX body_dimensions: length: 580 width: 380 height: 200 mass: 250 container_dimensions: length: 576 width: 376 height: 196 mass: 150000 container_coordinates: x: 2 y: 2 z: 2 pack_settings: calculation_settings: max_calculation_time: PT30M max_waiting_time: PT10M result_ttl: PT10M treat_warnings_as_errors: false PackResultSmall: summary: 1 Product 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: PACKER operation: run_pack_calculation time: '2024-11-21T16:55:35.370332Z' blueprint: - package_key: slot_default coordinates: x: 0 y: 0 z: 0 dimensions: length: 1200 width: 800 height: 300 mass: 70000 product_group_layouts: [] package_layouts: - package_key: pallet_default coordinates: x: 0 y: 0 z: 0 dimensions: length: 1200 width: 800 height: 300 mass: 70000 product_group_layouts: - product_key: product_1 coordinates: x: 0 y: 0 z: 150 dimensions: length: 1200 width: 800 height: 150 mass: 60000 product_layouts: - product_key: product_1 coordinates: x: 0 y: 0 z: 0 dimensions: length: 1200 width: 800 height: 150 mass: 60000 package_layouts: [] statistics: products_count: 1 packages_count: 2 total_mass: 60 total_volume: 0.144 package_statistics: - package_key: slot_default package_type: SLOT count: 1 max_container_mass: 60 max_container_volume: 0.144 utilization_by_mass: 0.06 utilization_by_volume: 0.0833 - package_key: pallet_default package_type: PALLET count: 1 max_container_mass: 60 max_container_volume: 0.144 utilization_by_mass: 0.0923 utilization_by_volume: 0.0909 calculation_progress: 100 calculation_info: status: FINISHED_IN_TIME result_version: 1 preparing_time: PT1M10S business_validation_time: PT1M10S math_validation_time: PT1M10S waiting_time: PT15S calculation_time: PT1M10S warnings: [] unpacked_items: product_keys: [] package_keys: - mixbox_default PackResultBig: summary: 132 Products 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: PACKER operation: run_pack_calculation time: '2024-11-21T17:00:58.018418Z' blueprint: - package_key: slot_default coordinates: x: 0 y: 0 z: 0 dimensions: length: 1200 width: 800 height: 1050 mass: 108000 product_group_layouts: [] package_layouts: - package_key: pallet_default coordinates: x: 0 y: 0 z: 0 dimensions: length: 1200 width: 800 height: 1050 mass: 108000 product_group_layouts: - product_key: product_type_3.2 coordinates: x: 0 y: 800 z: 150 dimensions: length: 100 width: 800 height: 300 mass: 20000 product_layouts: - product_key: product_type_3.2 coordinates: x: 600 y: 0 z: 100 dimensions: length: 100 width: 100 height: 100 mass: 1000 - product_key: product_type_3.2 coordinates: x: 400 y: 0 z: 100 dimensions: length: 100 width: 100 height: 100 mass: 1000 - product_key: product_type_3.2 coordinates: x: 200 y: 0 z: 200 dimensions: length: 100 width: 100 height: 100 mass: 1000 - product_key: product_type_3.2 coordinates: x: 0 y: 0 z: 200 dimensions: length: 100 width: 100 height: 100 mass: 1000 - product_key: product_type_3.2 coordinates: x: 600 y: 0 z: 0 dimensions: length: 100 width: 100 height: 100 mass: 1000 - product_key: product_type_3.2 coordinates: x: 400 y: 0 z: 0 dimensions: length: 100 width: 100 height: 100 mass: 1000 - product_key: product_type_3.2 coordinates: x: 100 y: 0 z: 0 dimensions: length: 100 width: 100 height: 100 mass: 1000 - product_key: product_type_3.2 coordinates: x: 200 y: 0 z: 0 dimensions: length: 100 width: 100 height: 100 mass: 1000 - product_key: product_type_3.2 coordinates: x: 500 y: 0 z: 0 dimensions: length: 100 width: 100 height: 100 mass: 1000 - product_key: product_type_3.2 coordinates: x: 200 y: 0 z: 100 dimensions: length: 100 width: 100 height: 100 mass: 1000 - product_key: product_type_3.2 coordinates: x: 500 y: 0 z: 100 dimensions: length: 100 width: 100 height: 100 mass: 1000 - product_key: product_type_3.2 coordinates: x: 300 y: 0 z: 200 dimensions: length: 100 width: 100 height: 100 mass: 1000 - product_key: product_type_3.2 coordinates: x: 100 y: 0 z: 200 dimensions: length: 100 width: 100 height: 100 mass: 1000 - product_key: product_type_3.2 coordinates: x: 700 y: 0 z: 0 dimensions: length: 100 width: 100 height: 100 mass: 1000 - product_key: product_type_3.2 coordinates: x: 300 y: 0 z: 100 dimensions: length: 100 width: 100 height: 100 mass: 1000 - product_key: product_type_3.2 coordinates: x: 100 y: 0 z: 100 dimensions: length: 100 width: 100 height: 100 mass: 1000 - product_key: product_type_3.2 coordinates: x: 0 y: 0 z: 100 dimensions: length: 100 width: 100 height: 100 mass: 1000 - product_key: product_type_3.2 coordinates: x: 300 y: 0 z: 0 dimensions: length: 100 width: 100 height: 100 mass: 1000 - product_key: product_type_3.2 coordinates: x: 0 y: 0 z: 0 dimensions: length: 100 width: 100 height: 100 mass: 1000 - product_key: product_type_3.2 coordinates: x: 700 y: 0 z: 100 dimensions: length: 100 width: 100 height: 100 mass: 1000 - product_key: product_type_2.3 coordinates: x: 0 y: 900 z: 150 dimensions: length: 100 width: 800 height: 300 mass: 20000 product_layouts: - product_key: product_type_2.3 coordinates: x: 700 y: 0 z: 0 dimensions: length: 100 width: 100 height: 100 mass: 1000 - product_key: product_type_2.3 coordinates: x: 100 y: 0 z: 200 dimensions: length: 100 width: 100 height: 100 mass: 1000 - product_key: product_type_2.3 coordinates: x: 500 y: 0 z: 0 dimensions: length: 100 width: 100 height: 100 mass: 1000 - product_key: product_type_2.3 coordinates: x: 300 y: 0 z: 100 dimensions: length: 100 width: 100 height: 100 mass: 1000 - product_key: product_type_2.3 coordinates: x: 100 y: 0 z: 100 dimensions: length: 100 width: 100 height: 100 mass: 1000 - product_key: product_type_2.3 coordinates: x: 300 y: 0 z: 200 dimensions: length: 100 width: 100 height: 100 mass: 1000 - product_key: product_type_2.3 coordinates: x: 0 y: 0 z: 0 dimensions: length: 100 width: 100 height: 100 mass: 1000 - product_key: product_type_2.3 coordinates: x: 700 y: 0 z: 100 dimensions: length: 100 width: 100 height: 100 mass: 1000 - product_key: product_type_2.3 coordinates: x: 0 y: 0 z: 100 dimensions: length: 100 width: 100 height: 100 mass: 1000 - product_key: product_type_2.3 coordinates: x: 300 y: 0 z: 0 dimensions: length: 100 width: 100 height: 100 mass: 1000 - product_key: product_type_2.3 coordinates: x: 400 y: 0 z: 100 dimensions: length: 100 width: 100 height: 100 mass: 1000 - product_key: product_type_2.3 coordinates: x: 200 y: 0 z: 200 dimensions: length: 100 width: 100 height: 100 mass: 1000 - product_key: product_type_2.3 coordinates: x: 0 y: 0 z: 200 dimensions: length: 100 width: 100 height: 100 mass: 1000 - product_key: product_type_2.3 coordinates: x: 600 y: 0 z: 0 dimensions: length: 100 width: 100 height: 100 mass: 1000 - product_key: product_type_2.3 coordinates: x: 400 y: 0 z: 0 dimensions: length: 100 width: 100 height: 100 mass: 1000 - product_key: product_type_2.3 coordinates: x: 600 y: 0 z: 100 dimensions: length: 100 width: 100 height: 100 mass: 1000 - product_key: product_type_2.3 coordinates: x: 100 y: 0 z: 0 dimensions: length: 100 width: 100 height: 100 mass: 1000 - product_key: product_type_2.3 coordinates: x: 200 y: 0 z: 0 dimensions: length: 100 width: 100 height: 100 mass: 1000 - product_key: product_type_2.3 coordinates: x: 200 y: 0 z: 100 dimensions: length: 100 width: 100 height: 100 mass: 1000 - product_key: product_type_2.3 coordinates: x: 500 y: 0 z: 100 dimensions: length: 100 width: 100 height: 100 mass: 1000 - product_key: product_type_2.1 coordinates: x: 0 y: 1000 z: 150 dimensions: length: 100 width: 800 height: 300 mass: 20000 product_layouts: - product_key: product_type_2.1 coordinates: x: 500 y: 0 z: 0 dimensions: length: 100 width: 100 height: 100 mass: 1000 - product_key: product_type_2.1 coordinates: x: 300 y: 0 z: 100 dimensions: length: 100 width: 100 height: 100 mass: 1000 - product_key: product_type_2.1 coordinates: x: 700 y: 0 z: 0 dimensions: length: 100 width: 100 height: 100 mass: 1000 - product_key: product_type_2.1 coordinates: x: 100 y: 0 z: 200 dimensions: length: 100 width: 100 height: 100 mass: 1000 - product_key: product_type_2.1 coordinates: x: 300 y: 0 z: 200 dimensions: length: 100 width: 100 height: 100 mass: 1000 - product_key: product_type_2.1 coordinates: x: 100 y: 0 z: 100 dimensions: length: 100 width: 100 height: 100 mass: 1000 - product_key: product_type_2.1 coordinates: x: 0 y: 0 z: 0 dimensions: length: 100 width: 100 height: 100 mass: 1000 - product_key: product_type_2.1 coordinates: x: 0 y: 0 z: 100 dimensions: length: 100 width: 100 height: 100 mass: 1000 - product_key: product_type_2.1 coordinates: x: 300 y: 0 z: 0 dimensions: length: 100 width: 100 height: 100 mass: 1000 - product_key: product_type_2.1 coordinates: x: 700 y: 0 z: 100 dimensions: length: 100 width: 100 height: 100 mass: 1000 - product_key: product_type_2.1 coordinates: x: 0 y: 0 z: 200 dimensions: length: 100 width: 100 height: 100 mass: 1000 - product_key: product_type_2.1 coordinates: x: 600 y: 0 z: 0 dimensions: length: 100 width: 100 height: 100 mass: 1000 - product_key: product_type_2.1 coordinates: x: 400 y: 0 z: 100 dimensions: length: 100 width: 100 height: 100 mass: 1000 - product_key: product_type_2.1 coordinates: x: 200 y: 0 z: 200 dimensions: length: 100 width: 100 height: 100 mass: 1000 - product_key: product_type_2.1 coordinates: x: 600 y: 0 z: 100 dimensions: length: 100 width: 100 height: 100 mass: 1000 - product_key: product_type_2.1 coordinates: x: 400 y: 0 z: 0 dimensions: length: 100 width: 100 height: 100 mass: 1000 - product_key: product_type_2.1 coordinates: x: 100 y: 0 z: 0 dimensions: length: 100 width: 100 height: 100 mass: 1000 - product_key: product_type_2.1 coordinates: x: 200 y: 0 z: 0 dimensions: length: 100 width: 100 height: 100 mass: 1000 - product_key: product_type_2.1 coordinates: x: 500 y: 0 z: 100 dimensions: length: 100 width: 100 height: 100 mass: 1000 - product_key: product_type_2.1 coordinates: x: 200 y: 0 z: 100 dimensions: length: 100 width: 100 height: 100 mass: 1000 - product_key: product_type_3.1 coordinates: x: 0 y: 1100 z: 150 dimensions: length: 100 width: 800 height: 300 mass: 20000 product_layouts: - product_key: product_type_3.1 coordinates: x: 200 y: 0 z: 200 dimensions: length: 100 width: 100 height: 100 mass: 1000 - product_key: product_type_3.1 coordinates: x: 400 y: 0 z: 100 dimensions: length: 100 width: 100 height: 100 mass: 1000 - product_key: product_type_3.1 coordinates: x: 600 y: 0 z: 100 dimensions: length: 100 width: 100 height: 100 mass: 1000 - product_key: product_type_3.1 coordinates: x: 400 y: 0 z: 0 dimensions: length: 100 width: 100 height: 100 mass: 1000 - product_key: product_type_3.1 coordinates: x: 600 y: 0 z: 0 dimensions: length: 100 width: 100 height: 100 mass: 1000 - product_key: product_type_3.1 coordinates: x: 0 y: 0 z: 200 dimensions: length: 100 width: 100 height: 100 mass: 1000 - product_key: product_type_3.1 coordinates: x: 200 y: 0 z: 0 dimensions: length: 100 width: 100 height: 100 mass: 1000 - product_key: product_type_3.1 coordinates: x: 100 y: 0 z: 0 dimensions: length: 100 width: 100 height: 100 mass: 1000 - product_key: product_type_3.1 coordinates: x: 200 y: 0 z: 100 dimensions: length: 100 width: 100 height: 100 mass: 1000 - product_key: product_type_3.1 coordinates: x: 500 y: 0 z: 0 dimensions: length: 100 width: 100 height: 100 mass: 1000 - product_key: product_type_3.1 coordinates: x: 700 y: 0 z: 0 dimensions: length: 100 width: 100 height: 100 mass: 1000 - product_key: product_type_3.1 coordinates: x: 100 y: 0 z: 200 dimensions: length: 100 width: 100 height: 100 mass: 1000 - product_key: product_type_3.1 coordinates: x: 300 y: 0 z: 200 dimensions: length: 100 width: 100 height: 100 mass: 1000 - product_key: product_type_3.1 coordinates: x: 500 y: 0 z: 100 dimensions: length: 100 width: 100 height: 100 mass: 1000 - product_key: product_type_3.1 coordinates: x: 100 y: 0 z: 100 dimensions: length: 100 width: 100 height: 100 mass: 1000 - product_key: product_type_3.1 coordinates: x: 300 y: 0 z: 100 dimensions: length: 100 width: 100 height: 100 mass: 1000 - product_key: product_type_3.1 coordinates: x: 300 y: 0 z: 0 dimensions: length: 100 width: 100 height: 100 mass: 1000 - product_key: product_type_3.1 coordinates: x: 0 y: 0 z: 100 dimensions: length: 100 width: 100 height: 100 mass: 1000 - product_key: product_type_3.1 coordinates: x: 700 y: 0 z: 100 dimensions: length: 100 width: 100 height: 100 mass: 1000 - product_key: product_type_3.1 coordinates: x: 0 y: 0 z: 0 dimensions: length: 100 width: 100 height: 100 mass: 1000 - product_key: product_type_1 coordinates: x: 0 y: 0 z: 150 dimensions: length: 800 width: 800 height: 900 mass: 18000 product_layouts: - product_key: product_type_1 coordinates: x: 0 y: 0 z: 0 dimensions: length: 400 width: 400 height: 300 mass: 1500 - product_key: product_type_1 coordinates: x: 400 y: 0 z: 300 dimensions: length: 400 width: 400 height: 300 mass: 1500 - product_key: product_type_1 coordinates: x: 0 y: 400 z: 300 dimensions: length: 400 width: 400 height: 300 mass: 1500 - product_key: product_type_1 coordinates: x: 400 y: 400 z: 0 dimensions: length: 400 width: 400 height: 300 mass: 1500 - product_key: product_type_1 coordinates: x: 400 y: 0 z: 600 dimensions: length: 400 width: 400 height: 300 mass: 1500 - product_key: product_type_1 coordinates: x: 0 y: 400 z: 600 dimensions: length: 400 width: 400 height: 300 mass: 1500 - product_key: product_type_1 coordinates: x: 400 y: 400 z: 300 dimensions: length: 400 width: 400 height: 300 mass: 1500 - product_key: product_type_1 coordinates: x: 0 y: 0 z: 600 dimensions: length: 400 width: 400 height: 300 mass: 1500 - product_key: product_type_1 coordinates: x: 0 y: 0 z: 300 dimensions: length: 400 width: 400 height: 300 mass: 1500 - product_key: product_type_1 coordinates: x: 400 y: 400 z: 600 dimensions: length: 400 width: 400 height: 300 mass: 1500 - product_key: product_type_1 coordinates: x: 400 y: 0 z: 0 dimensions: length: 400 width: 400 height: 300 mass: 1500 - product_key: product_type_1 coordinates: x: 0 y: 400 z: 0 dimensions: length: 400 width: 400 height: 300 mass: 1500 package_layouts: [] - package_key: slot_default coordinates: x: 0 y: 0 z: 0 dimensions: length: 1200 width: 800 height: 450 mass: 50000 product_group_layouts: [] package_layouts: - package_key: pallet_default coordinates: x: 0 y: 0 z: 0 dimensions: length: 1200 width: 800 height: 450 mass: 50000 product_group_layouts: - product_key: product_type_3.3 coordinates: x: 0 y: 100 z: 150 dimensions: length: 100 width: 800 height: 300 mass: 20000 product_layouts: - product_key: product_type_3.3 coordinates: x: 600 y: 0 z: 100 dimensions: length: 100 width: 100 height: 100 mass: 1000 - product_key: product_type_3.3 coordinates: x: 200 y: 0 z: 200 dimensions: length: 100 width: 100 height: 100 mass: 1000 - product_key: product_type_3.3 coordinates: x: 400 y: 0 z: 100 dimensions: length: 100 width: 100 height: 100 mass: 1000 - product_key: product_type_3.3 coordinates: x: 600 y: 0 z: 0 dimensions: length: 100 width: 100 height: 100 mass: 1000 - product_key: product_type_3.3 coordinates: x: 0 y: 0 z: 200 dimensions: length: 100 width: 100 height: 100 mass: 1000 - product_key: product_type_3.3 coordinates: x: 400 y: 0 z: 0 dimensions: length: 100 width: 100 height: 100 mass: 1000 - product_key: product_type_3.3 coordinates: x: 200 y: 0 z: 0 dimensions: length: 100 width: 100 height: 100 mass: 1000 - product_key: product_type_3.3 coordinates: x: 100 y: 0 z: 0 dimensions: length: 100 width: 100 height: 100 mass: 1000 - product_key: product_type_3.3 coordinates: x: 500 y: 0 z: 0 dimensions: length: 100 width: 100 height: 100 mass: 1000 - product_key: product_type_3.3 coordinates: x: 200 y: 0 z: 100 dimensions: length: 100 width: 100 height: 100 mass: 1000 - product_key: product_type_3.3 coordinates: x: 300 y: 0 z: 200 dimensions: length: 100 width: 100 height: 100 mass: 1000 - product_key: product_type_3.3 coordinates: x: 500 y: 0 z: 100 dimensions: length: 100 width: 100 height: 100 mass: 1000 - product_key: product_type_3.3 coordinates: x: 700 y: 0 z: 0 dimensions: length: 100 width: 100 height: 100 mass: 1000 - product_key: product_type_3.3 coordinates: x: 100 y: 0 z: 200 dimensions: length: 100 width: 100 height: 100 mass: 1000 - product_key: product_type_3.3 coordinates: x: 300 y: 0 z: 100 dimensions: length: 100 width: 100 height: 100 mass: 1000 - product_key: product_type_3.3 coordinates: x: 100 y: 0 z: 100 dimensions: length: 100 width: 100 height: 100 mass: 1000 - product_key: product_type_3.3 coordinates: x: 300 y: 0 z: 0 dimensions: length: 100 width: 100 height: 100 mass: 1000 - product_key: product_type_3.3 coordinates: x: 0 y: 0 z: 100 dimensions: length: 100 width: 100 height: 100 mass: 1000 - product_key: product_type_3.3 coordinates: x: 0 y: 0 z: 0 dimensions: length: 100 width: 100 height: 100 mass: 1000 - product_key: product_type_3.3 coordinates: x: 700 y: 0 z: 100 dimensions: length: 100 width: 100 height: 100 mass: 1000 - product_key: product_type_2.2 coordinates: x: 0 y: 0 z: 150 dimensions: length: 100 width: 800 height: 300 mass: 20000 product_layouts: - product_key: product_type_2.2 coordinates: x: 300 y: 0 z: 100 dimensions: length: 100 width: 100 height: 100 mass: 1000 - product_key: product_type_2.2 coordinates: x: 500 y: 0 z: 0 dimensions: length: 100 width: 100 height: 100 mass: 1000 - product_key: product_type_2.2 coordinates: x: 700 y: 0 z: 0 dimensions: length: 100 width: 100 height: 100 mass: 1000 - product_key: product_type_2.2 coordinates: x: 100 y: 0 z: 200 dimensions: length: 100 width: 100 height: 100 mass: 1000 - product_key: product_type_2.2 coordinates: x: 300 y: 0 z: 200 dimensions: length: 100 width: 100 height: 100 mass: 1000 - product_key: product_type_2.2 coordinates: x: 100 y: 0 z: 100 dimensions: length: 100 width: 100 height: 100 mass: 1000 - product_key: product_type_2.2 coordinates: x: 0 y: 0 z: 0 dimensions: length: 100 width: 100 height: 100 mass: 1000 - product_key: product_type_2.2 coordinates: x: 300 y: 0 z: 0 dimensions: length: 100 width: 100 height: 100 mass: 1000 - product_key: product_type_2.2 coordinates: x: 0 y: 0 z: 100 dimensions: length: 100 width: 100 height: 100 mass: 1000 - product_key: product_type_2.2 coordinates: x: 700 y: 0 z: 100 dimensions: length: 100 width: 100 height: 100 mass: 1000 - product_key: product_type_2.2 coordinates: x: 600 y: 0 z: 0 dimensions: length: 100 width: 100 height: 100 mass: 1000 - product_key: product_type_2.2 coordinates: x: 0 y: 0 z: 200 dimensions: length: 100 width: 100 height: 100 mass: 1000 - product_key: product_type_2.2 coordinates: x: 200 y: 0 z: 200 dimensions: length: 100 width: 100 height: 100 mass: 1000 - product_key: product_type_2.2 coordinates: x: 400 y: 0 z: 100 dimensions: length: 100 width: 100 height: 100 mass: 1000 - product_key: product_type_2.2 coordinates: x: 600 y: 0 z: 100 dimensions: length: 100 width: 100 height: 100 mass: 1000 - product_key: product_type_2.2 coordinates: x: 400 y: 0 z: 0 dimensions: length: 100 width: 100 height: 100 mass: 1000 - product_key: product_type_2.2 coordinates: x: 200 y: 0 z: 0 dimensions: length: 100 width: 100 height: 100 mass: 1000 - product_key: product_type_2.2 coordinates: x: 100 y: 0 z: 0 dimensions: length: 100 width: 100 height: 100 mass: 1000 - product_key: product_type_2.2 coordinates: x: 500 y: 0 z: 100 dimensions: length: 100 width: 100 height: 100 mass: 1000 - product_key: product_type_2.2 coordinates: x: 200 y: 0 z: 100 dimensions: length: 100 width: 100 height: 100 mass: 1000 package_layouts: [] statistics: products_count: 126 packages_count: 4 total_mass: 129 total_volume: 0.408 package_statistics: - package_key: slot_default package_type: SLOT count: 2 max_container_mass: 129 max_container_volume: 0.408 utilization_by_mass: 0.0645 utilization_by_volume: 0.1181 - package_key: pallet_default package_type: PALLET count: 2 max_container_mass: 129 max_container_volume: 0.408 utilization_by_mass: 0.0992 utilization_by_volume: 0.1288 calculation_progress: 100 calculation_info: status: FINISHED_IN_TIME result_version: 1 preparing_time: PT1M10S business_validation_time: PT1M10S math_validation_time: PT1M10S waiting_time: PT15S calculation_time: PT1M10S warnings: [] unpacked_items: product_keys: [] package_keys: - mixbox_type_1 - mixbox_type_2 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' '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' parameters: process_code: name: process_code description: Unique process identifier. in: path required: true schema: $ref: '#/components/schemas/process_code' filename: name: filename description: File name. in: path required: true schema: description: File name. type: string minLength: 6 maxLength: 128 example: file_en.html