openapi: 3.0.3 info: title: VRt.Agro [AG] version: 6.20.2252 license: name: Proprietary url: https://veeroute.zh/ contact: name: Veeroute Support Team email: servicedesk@veeroute.com x-logo: url: ../images/agro.svg backgroundColor: '#FAFAFA' altText: VRt.Agro description: 'Veeroute Agro 的软件界面. # 描述 该服务旨在计算生产设施的工作计划. ## 对象概述 ![objects](../images/agro_objects.svg) ## 实体图 ![erd](../uml/agro.svg) ' servers: - url: https://api.edge.veeroute.tech description: 用于集成和早期访问新功能的环境 - url: https://api.prod.veeroute.com description: 生产环境 security: - ApiKeyAuth: [] tags: - name: Plan description: 'Production plan calculation. ' - name: System description: '系统功能。 所有服务共有的辅助功能。 ' externalDocs: description: 主站点 url: https://veeroute.zh/ paths: /agro/plan/calculation: post: tags: - Plan summary: Planning (SYNC) description: Production plan calculation. operationId: run_plan_calculation requestBody: description: Data for calculation. required: true content: application/json: schema: $ref: '#/components/schemas/plan_task' examples: PlanTaskSmall: $ref: '#/components/examples/PlanTaskSmall' responses: '200': description: Successful execution content: application/json: schema: $ref: '#/components/schemas/plan_result' examples: PlanResultSmall: $ref: '#/components/examples/PlanResultSmall' '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_agro import * from vrt_lss_agro.apis import * from vrt_lss_agro.models import * # settings HOST = ''https://api.edge.veeroute.tech'' # production env https://api.prod.veeroute.com'' TOKEN = ''PASTETOKENHERE'' # create client configuration = Configuration() configuration.host = HOST configuration.access_token = TOKEN client = ApiClient(configuration) # create api instances system_api = SystemApi(client) agro_api = PlanApi(client) # run check check_response = system_api.check() print(check_response) # run sync calculation task = PlanApi(...) result = agro_api.plan(task) print(result)' /agro/plan/calculation_async: post: tags: - Plan summary: Planning (ASYNC) description: 'The result can be obtained using the [result](#operation/read_plan_result) method, removing - with [delete](#operation/delete_plan_result). ' operationId: run_plan_calculation_async requestBody: description: Data for calculation. required: true content: application/json: schema: $ref: '#/components/schemas/plan_task' examples: PlanTaskSmall: $ref: '#/components/examples/PlanTaskSmall' responses: '200': description: Successful execution 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' /agro/plan/calculation_async/{id}: parameters: - $ref: '#/components/parameters/result_id' get: tags: - Plan summary: Calculation state description: Read calculation state by the calculation identifier. operationId: read_plan_calculation_state responses: '200': description: Successful execution content: application/json: schema: $ref: '#/components/schemas/calculation_state' '400': $ref: '#/components/responses/400_with_errors_and_warnings' '401': $ref: '#/components/responses/401' '402': $ref: '#/components/responses/402' '404': $ref: '#/components/responses/404' '405': $ref: '#/components/responses/405' '406': $ref: '#/components/responses/406' '415': $ref: '#/components/responses/415' '429': $ref: '#/components/responses/429' '500': $ref: '#/components/responses/500' '501': $ref: '#/components/responses/501' '502': $ref: '#/components/responses/502' '503': $ref: '#/components/responses/503' '504': $ref: '#/components/responses/504' default: $ref: '#/components/responses/503' delete: tags: - Plan summary: Cancel calculation description: Cancel calculation process by the calculation identifier. operationId: cancel_plan_calculation responses: '204': description: Successful execution - calculation has been canceled '400': $ref: '#/components/responses/400_with_errors_and_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' /agro/plan/result/{id}: parameters: - $ref: '#/components/parameters/result_id' get: tags: - Plan summary: Getting the result description: Getting the result based on the calculation identifier. operationId: read_plan_result responses: '200': description: Successful execution - calculation has been completed. content: application/json: schema: $ref: '#/components/schemas/plan_result' examples: PlanResultSmall: $ref: '#/components/examples/PlanResultSmall' '202': description: Calculation is in progress. content: application/json: schema: $ref: '#/components/schemas/plan_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' delete: tags: - Plan summary: Result removal description: Removal of the planning result by the calculation identifier. operationId: delete_plan_result responses: '204': description: Successful execution - planning has been deleted '400': $ref: '#/components/responses/400_with_errors_and_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' /agro/plan/validation: post: tags: - Plan summary: Data validation description: Checking data before planning. operationId: run_plan_validation requestBody: description: Data for calculation. required: true content: application/json: schema: $ref: '#/components/schemas/plan_task' examples: PlanTaskSmall: $ref: '#/components/examples/PlanTaskSmall' responses: '200': description: Successful execution 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' /agro/plan/clip/{clip_key}: post: tags: - Plan summary: Clipping (SYNC) description: Data clipping. operationId: run_plan_clip parameters: - $ref: '#/components/parameters/clip_key' - $ref: '#/components/parameters/clip_strategy' requestBody: description: Data for clipping. required: true content: application/json: schema: $ref: '#/components/schemas/plan_task' examples: PlanTaskSmall: $ref: '#/components/examples/PlanTaskSmall' responses: '200': description: Successful execution content: application/json: schema: $ref: '#/components/schemas/plan_task' examples: PlanTaskSmall: $ref: '#/components/examples/PlanTaskSmall' '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' /agro/system/check: get: tags: - System summary: 检查服务可用性 description: 检查服务可用性。 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' /agro/system/version: get: tags: - System summary: 获取服务版本 description: 获取服务版本。 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' /agro/file/{filename}: parameters: - $ref: '#/components/parameters/filename' get: tags: - System summary: 检查服务可用性 description: 检查服务可用性。 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: '对于客户端 [认证](https://developer.mozilla.org/en-US/docs/Web/HTTP/Authentication) [JWT 令牌](https://en.wikipedia.org/wiki/JSON_Web_Token) 被使用, 必须在每个请求的标头中以以下格式指定: `授权:承载 `。 Token 可以通过 VRt.Account API 获取。 ' type: http scheme: bearer bearerFormat: JWT schemas: humidity: description: Humidity crop, in ppm (‰). type: integer format: int32 minimum: 1 maximum: 999 example: 180 compatible_storage_types: description: 'List of compatible short-term storage types. ' type: array minItems: 0 maxItems: 10 uniqueItems: true items: description: The type of short-term storage location. type: string minLength: 1 maxLength: 256 example: - granary compatible_silo_types: description: 'List of compatible long-term storage types. ' type: array minItems: 0 maxItems: 10 uniqueItems: true items: description: The type of long-term storage location. type: string minLength: 1 maxLength: 256 example: - trench 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' crop: description: 'A crop. ' type: object additionalProperties: false properties: key: description: Key, unique identifier. type: string minLength: 1 maxLength: 1024 example: crop_key_1 base_humidity: $ref: '#/components/schemas/humidity' description: 'Base humidity in ppm (‰). If the humidity content of the grain is higher than the base, it must be dried. ' compatible_storage_types: $ref: '#/components/schemas/compatible_storage_types' compatible_silo_types: $ref: '#/components/schemas/compatible_silo_types' attributes: $ref: '#/components/schemas/attributes' required: - key - base_humidity date_window: description: Time window between the dates. type: object additionalProperties: false properties: from: description: Window start date in the YYYY-MM-DD format. type: string format: date example: '2024-02-15' to: description: Window end (inclusive) date in the YYYY-MM-DD format. type: string format: date example: '2024-02-22' required: - from - to capacity_forecast_element: description: Value for time window. type: object additionalProperties: false properties: date_window: $ref: '#/components/schemas/date_window' capacity: description: The maximum number of tons of grain that can be processed each day within the specified time window. type: integer format: int32 minimum: 0 maximum: 10000000 example: 2000 required: - date_window - capacity capacity_forecast: description: Capacity forecast. type: array minItems: 0 maxItems: 3653 uniqueItems: false items: $ref: '#/components/schemas/capacity_forecast_element' humidity_forecast_element: description: Humidity forecast, ppm (‰). type: object additionalProperties: false properties: date_window: $ref: '#/components/schemas/date_window' humidity: $ref: '#/components/schemas/humidity' description: 'Humidity forecast, ppm (‰). This forecast is indicated for each day within the time window. ' required: - date_window - humidity humidity_forecast: description: 'Forecast on grain humidity in the field. If the humidity for a specific day is not specified, then the base crop humidity is used for this. ' type: array minItems: 0 maxItems: 3653 uniqueItems: false items: $ref: '#/components/schemas/humidity_forecast_element' field: description: 'The field is a producer of grain. ' type: object additionalProperties: false properties: key: description: Key, unique identifier. type: string minLength: 1 maxLength: 1024 example: field_key_1 crop_key: description: Crop key. type: string minLength: 1 maxLength: 1024 example: crop_key_1 amount: description: The total amount of grain (in tons) to be harvested from the field. type: integer format: int32 minimum: 0 maximum: 10000000 example: 200 capacity_forecast: $ref: '#/components/schemas/capacity_forecast' description: 'Forecast of the maximum amount of grain (in tons) that can be harvested from the field on each day within the specified time window. If capacity is not specified for a particular day, harvest is not carried out on that day. ' humidity_forecast: $ref: '#/components/schemas/humidity_forecast' attributes: $ref: '#/components/schemas/attributes' required: - key - crop_key - amount - capacity_forecast cost_forecast_element: description: Cost for time window. type: object additionalProperties: false properties: date_window: $ref: '#/components/schemas/date_window' cost: description: The total cost, in conventional monetary units. type: integer format: int32 minimum: 0 maximum: 1000000 example: 100 required: - date_window - cost cost_forecast: description: Cost forecast. type: array minItems: 0 maxItems: 3653 uniqueItems: false items: $ref: '#/components/schemas/cost_forecast_element' gate: description: 'Grain process. ' type: object additionalProperties: false properties: key: description: Key, unique identifier. type: string minLength: 1 maxLength: 1024 example: gate_key_1 input_capacity_forecast: $ref: '#/components/schemas/capacity_forecast' description: 'Forecast of available receiving capacities (in tons for a specific day). If the capacity is not specified for a specific day, acceptance on that day is not carried out. ' input_cost_forecast: $ref: '#/components/schemas/cost_forecast' description: 'The forecast for the cost of the acceptance process is in conventional monetary units per 1 ton of grain. If the cost for a specific day is not specified, the process is considered free on that day. ' output_capacity_forecast: $ref: '#/components/schemas/capacity_forecast' description: 'Forecast of available shipping capacities (in tons for a specific day). If the capacity is not specified for a specific day, shipment on that day is not carried out. ' output_cost_forecast: $ref: '#/components/schemas/cost_forecast' description: 'The forecast for the cost of the shipment process is in conventional monetary units per 1 ton of grain. If the cost for a specific day is not specified, the process is considered free on that day. ' attributes: $ref: '#/components/schemas/attributes' required: - key - input_capacity_forecast - output_capacity_forecast productivity_forecast_element: description: Value for time window. type: object additionalProperties: false properties: date_window: $ref: '#/components/schemas/date_window' productivity: description: Productivity value. type: number format: double minimum: 0 maximum: 10000000 example: 200 required: - date_window - productivity productivity_forecast: description: Productivity forecast. type: array minItems: 0 maxItems: 3653 uniqueItems: false items: $ref: '#/components/schemas/productivity_forecast_element' chamber: description: 'Drying chamber - determines the parameters of the drying process of crops. ' type: object additionalProperties: false properties: crop_key: description: Target key. type: string minLength: 1 maxLength: 1024 example: crop_key_1 capacity_forecast: $ref: '#/components/schemas/capacity_forecast' description: Capacity forecast, in tn per day. productivity_forecast: $ref: '#/components/schemas/productivity_forecast' description: Productivity forecast, in tn-% per day. cost_forecast: $ref: '#/components/schemas/cost_forecast' description: Drying cost forecast. required: - crop_key - capacity_forecast - productivity_forecast dryer: description: 'A dryer. ' type: object additionalProperties: false properties: key: description: Key, unique identifier. type: string minLength: 1 maxLength: 1024 example: dryer_key_1 chamber_variants: description: List of chambers. type: array uniqueItems: true minItems: 1 maxItems: 501 nullable: false items: $ref: '#/components/schemas/chamber' attributes: $ref: '#/components/schemas/attributes' required: - key - chamber_variants storage: description: 'A short-term storage. ' type: object additionalProperties: false properties: key: description: Key, unique identifier. type: string minLength: 1 maxLength: 1024 example: storage_key_1 type: description: The type of short-term storage location. type: string minLength: 1 maxLength: 256 example: granary capacity_forecast: $ref: '#/components/schemas/capacity_forecast' description: 'Forecast of available storage capacity (in tons for a specific day). If capacity is not specified for a particular day, storage is not carried out on that day. ' cost_forecast: $ref: '#/components/schemas/cost_forecast' description: 'The forecast for the cost of the storage process is in conventional monetary units per 1 ton of grain. If the cost for a specific day is not specified, the process is considered free on that day. ' attributes: $ref: '#/components/schemas/attributes' required: - key - type - capacity_forecast silo: description: 'A long-term storage. ' type: object additionalProperties: false properties: key: description: Key, unique identifier. type: string minLength: 1 maxLength: 1024 example: silo_key_1 type: description: The type of long-term storage location. type: string minLength: 1 maxLength: 256 example: trench capacity_forecast: $ref: '#/components/schemas/capacity_forecast' description: 'Forecast of available storage capacity (in tons for a specific day). If capacity is not specified for a particular day, storage is not carried out on that day. ' cost_forecast: $ref: '#/components/schemas/cost_forecast' description: 'The forecast for the cost of the storage process is in conventional monetary units per 1 ton of grain. If the cost for a specific day is not specified, the process is considered free on that day. ' deployment_cost: description: 'The total cost of deployment, in conventional monetary units. ' type: integer format: int32 minimum: 0 maximum: 1000000 default: 0 example: 100 collapse_cost: description: 'The total cost of collapse, in conventional monetary units. ' type: integer format: int32 minimum: 0 maximum: 1000000 default: 0 example: 100 attributes: $ref: '#/components/schemas/attributes' required: - key - type - capacity_forecast elevator: description: 'A production facility. ' type: object additionalProperties: false properties: key: description: Key, unique identifier. type: string minLength: 1 maxLength: 1024 example: elevator_key_1 gate: $ref: '#/components/schemas/gate' description: Gates and weighing, provide the process of acceptance and shipment of grain. dryers: description: List of dryers. type: array uniqueItems: true minItems: 0 maxItems: 501 nullable: false items: $ref: '#/components/schemas/dryer' storages: description: 'List of places for short-term storage of grain. ' type: array uniqueItems: true minItems: 0 maxItems: 501 nullable: false items: $ref: '#/components/schemas/storage' silos: description: 'List of places for long-term storage of grain. ' type: array uniqueItems: true minItems: 0 maxItems: 501 nullable: false items: $ref: '#/components/schemas/silo' attributes: $ref: '#/components/schemas/attributes' required: - key - gate bunker: description: 'A bunker. ' type: object additionalProperties: false properties: key: description: Key, unique identifier. type: string minLength: 1 maxLength: 1024 example: bunker_key_1 capacity_forecast: $ref: '#/components/schemas/capacity_forecast' description: 'Forecast of available storage capacity (in tons for a specific day). If capacity is not specified for a particular day, storage is not carried out on that day. ' cost_forecast: $ref: '#/components/schemas/cost_forecast' description: 'The forecast for the cost of the storage process is in conventional monetary units per 1 ton of grain. If the cost for a specific day is not specified, the process is considered free on that day. ' attributes: $ref: '#/components/schemas/attributes' required: - key - capacity_forecast stock_forecast_element: description: Humidity forecast, ppm (‰). type: object additionalProperties: false properties: date_window: $ref: '#/components/schemas/date_window' min_stock_days: description: 'Minimum time reserve - how many days in advance it is necessary to maintain the availability of crops in bins to ensure continuity of the consumption process. Current day consumption is not included in this parameter. ' type: integer format: int32 minimum: 0 maximum: 365 example: 14 required: - date_window - min_stock_days stock_forecast: description: Guaranteed balance requirement forecast. type: array minItems: 0 maxItems: 3653 uniqueItems: false items: $ref: '#/components/schemas/stock_forecast_element' consumer: description: 'Grain process. ' type: object additionalProperties: false properties: key: description: Key, unique identifier. type: string minLength: 1 maxLength: 1024 example: consumer_key_1 crop_key: description: Crop key. type: string minLength: 1 maxLength: 1024 example: crop_key_1 consumption_forecast: $ref: '#/components/schemas/capacity_forecast' description: Productivity forecast, in tn per day. stock_forecast: $ref: '#/components/schemas/stock_forecast' required: - key - crop_key - consumption_forecast - stock_forecast factory: description: 'A production facility. ' type: object additionalProperties: false properties: key: description: Key, unique identifier. type: string minLength: 1 maxLength: 1024 example: factory_key_1 gate: $ref: '#/components/schemas/gate' description: Gate. dryers: description: List of dryers. type: array uniqueItems: true minItems: 0 maxItems: 501 nullable: false items: $ref: '#/components/schemas/dryer' bunkers: description: List of bunkers. type: array uniqueItems: true minItems: 1 maxItems: 501 nullable: false items: $ref: '#/components/schemas/bunker' consumers: description: List of consumption. type: array uniqueItems: true minItems: 1 maxItems: 501 nullable: false items: $ref: '#/components/schemas/consumer' attributes: $ref: '#/components/schemas/attributes' required: - key - gate - bunkers - consumers contract_type: description: "Contract type:\n * `SELL_WITH_DELIVERY` - Contract for the sale\ \ of grain by the market with delivery to the client (the price of moving\ \ from the market is included in the price).\n * `SELL` - Contract for the\ \ sale of grain by the market without delivery (the price of moving from the\ \ market is not included in the price).\n * `BUY_WITH_DELIVERY` - Contract\ \ for the purchase of grain by the market with delivery from the client (the\ \ price of moving to the market is included in the price).\n * `BUY` - Contract\ \ for the purchase of grain by the market without delivery (the price of moving\ \ to the market is not included in the price).\n" type: string enum: - SELL_WITH_DELIVERY - SELL - BUY_WITH_DELIVERY - BUY example: SELL contract_target_keys: description: 'List of production object keys. ' type: array minItems: 1 maxItems: 100 uniqueItems: true items: description: Target key. type: string minLength: 1 maxLength: 1024 example: - factory_1 price_forecast_element: description: Grain price forecast for the specified date. type: object additionalProperties: false properties: date_window: $ref: '#/components/schemas/date_window' price: description: Value. type: integer format: int32 minimum: 0 maximum: 10000000 example: 2000 required: - date_window - price price_forecast: description: Prices tied to the dates at which the market buys\sells the specified crop. type: array minItems: 0 maxItems: 3653 uniqueItems: false items: $ref: '#/components/schemas/price_forecast_element' pricelist: description: 'Price forecast for a particular crop. ' type: object additionalProperties: false properties: crop_key: description: Target key. type: string minLength: 1 maxLength: 1024 example: crop_key_1 price_forecast: $ref: '#/components/schemas/price_forecast' description: 'Forecast of prices for the specified crop (per ton) at which the market buys or sells (depending on the type of contract). ' capacity_forecast: $ref: '#/components/schemas/capacity_forecast' description: 'Forecast of restrictions on the maximum amount of grain that the market can buy or sell (depending on the type of contract) on specified dates. If not specified for a specific day, there are no restrictions on buying and selling. ' required: - crop_key - price_forecast contract: description: 'Contract - defines a list of purchase and sale prices for a specific group of sellers and buyers. ' type: object additionalProperties: false properties: key: description: Key, unique identifier. type: string minLength: 1 maxLength: 1024 example: contract_key_1 type: $ref: '#/components/schemas/contract_type' target_keys: $ref: '#/components/schemas/contract_target_keys' pricelist: description: 'List of prices for the purchase and sale of agricultural crops. ' type: array uniqueItems: false minItems: 0 maxItems: 50 nullable: false items: $ref: '#/components/schemas/pricelist' attributes: $ref: '#/components/schemas/attributes' required: - key - type - target_keys - pricelist market: description: 'Market - allows you to buy and sell crops. ' type: object additionalProperties: false properties: key: description: Key, unique identifier. type: string minLength: 1 maxLength: 1024 example: market_key_1 contracts: description: 'List of contracts. ' type: array uniqueItems: false minItems: 0 maxItems: 50 nullable: false items: $ref: '#/components/schemas/contract' attributes: $ref: '#/components/schemas/attributes' required: - key - contracts movement_matrix_element: description: Time and distance matrix. type: object additionalProperties: false properties: source_key: description: Target key. type: string minLength: 1 maxLength: 1024 example: source_key_1 destination_key: description: Target key. type: string minLength: 1 maxLength: 1024 example: destination_key_1 distance: description: Total length, in km. type: integer format: int32 minimum: 0 maximum: 40000 example: 20 cost_per_transport: description: 'The total cost of usage 1 transport between source and destination, in conventional monetary units. ' type: integer format: int32 minimum: 0 maximum: 100000000 default: 0 example: 5000 required: - source_key - destination_key - distance movement_matrix: description: 'Matrix describing the cost (in kilometers and monetary units) of moving grain between objects (in both directions). If there is no corresponding entry in the matrix between the objects, the movement of grain between them is considered impossible. ' type: array uniqueItems: true minItems: 1 maxItems: 8040402 items: $ref: '#/components/schemas/movement_matrix_element' leftover: description: 'A leftover. ' type: object additionalProperties: false properties: crop_key: description: Crop key. type: string minLength: 1 maxLength: 1024 example: crop_key_1 humidity: $ref: '#/components/schemas/humidity' target_key: description: Target key. type: string minLength: 1 maxLength: 1024 example: target_key_1 target_detail_key: description: Target storage key. type: string nullable: true minLength: 1 maxLength: 1024 example: storage_key_1 default: null amount: description: Weight, in tn. type: integer format: int32 minimum: 0 maximum: 10000000 example: 250 required: - crop_key - humidity - target_key - amount project_configuration: description: 'Target function type. ' type: string enum: - OPTIMIZE_DISTANCE - OPTIMIZE_COST default: OPTIMIZE_DISTANCE example: OPTIMIZE_DISTANCE project_settings: description: Project settings. type: object additionalProperties: false properties: configuration: $ref: '#/components/schemas/project_configuration' start_date: description: Window start date in the YYYY-MM-DD format. type: string format: date example: '2023-06-15' end_date: description: Window end date in the YYYY-MM-DD format. type: string format: date example: '2023-06-22' transport_capacity: description: The capacity of one transport is the unit of grain movement between objects, in tons. type: integer format: int32 minimum: 1 maximum: 80 default: 23 example: 12 required: - start_date - end_date 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: PT4M30S max_waiting_time: description: 'Max calculation time. The countdown starts from the time when data is uploaded to the server. ' type: string format: duration 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: description: 'The time zone where the calculation result is returned. ' type: integer format: int32 minimum: -12 maximum: 12 default: 0 example: 3 treat_warnings_as_errors: description: 'Treat warnings as errors. ' type: boolean default: false example: true precision: description: 'Specifies the calculation accuracy in the decimal point sequence number. It equals 2 by default, so the accuracy is 0.01. ' type: integer format: int32 minimum: 0 maximum: 6 default: 2 example: 3 plan_settings: description: Plan settings. type: object additionalProperties: false properties: project_settings: $ref: '#/components/schemas/project_settings' calculation_settings: $ref: '#/components/schemas/calculation_settings' required: - project_settings plan_task: description: Initial task. type: object additionalProperties: false properties: crops: description: List of crops. type: array uniqueItems: true minItems: 1 maxItems: 501 nullable: false items: $ref: '#/components/schemas/crop' fields: description: List of fields. type: array uniqueItems: true minItems: 1 maxItems: 20001 nullable: false items: $ref: '#/components/schemas/field' elevators: description: List of elevators. type: array uniqueItems: true minItems: 1 maxItems: 501 nullable: false items: $ref: '#/components/schemas/elevator' factories: description: List of factories. type: array uniqueItems: true minItems: 1 maxItems: 501 nullable: false items: $ref: '#/components/schemas/factory' markets: description: List of markets. type: array uniqueItems: true minItems: 1 maxItems: 501 nullable: false items: $ref: '#/components/schemas/market' movement_matrix: $ref: '#/components/schemas/movement_matrix' leftovers: description: List of leftovers. type: array uniqueItems: false minItems: 0 maxItems: 25001 nullable: false items: $ref: '#/components/schemas/leftover' plan_settings: $ref: '#/components/schemas/plan_settings' required: - crops - fields - factories - markets - movement_matrix - plan_settings service_name: description: Service name. type: string enum: - UNIVERSAL - ROUTING - ACCOUNT - ADMIN - STUDIO - MONITOR - PACKER - AGRO - STOCK - LONGHAUL - CLUSTER - CARGOTIMETABLE example: UNIVERSAL operation_id: description: Operation identifier. type: string minLength: 3 maxLength: 256 example: run_plan_calculation tracedata: description: Data for request tracing. type: object additionalProperties: false properties: code: description: 'Unique process identifier. If an asynchronous process is running, then the code for it will be the same, although other fields may differ. ' type: string format: uuid example: 11111111-2222-3333-4444-555555555555 client: description: 'The unique identifier of the client (`company_key` + `_|_` + `username`) that made the request. ' type: string pattern: \w+ minLength: 2 maxLength: 256 example: company_|_username server: description: Server identifier. type: string pattern: \w+ minLength: 2 maxLength: 256 example: server_name service: $ref: '#/components/schemas/service_name' operation: $ref: '#/components/schemas/operation_id' time: description: Date and time service method run in the [ISO 8601](https://tools.ietf.org/html/rfc3339#section-5.6) format. type: string format: date-time example: '2024-02-21T09:30:00+03:00' required: - code - client - server - service - operation - time operation_type: description: "Type of [operation](#section/Description/Project):\n * `HARVEST`\ \ - Harvesting agricultural crops from the field to the production facility\n\ \ * `STORE` - Storing culture in a storage location\n * `DRY` - Drying the\ \ crop\n * `RELOCATE` - Transportation between production facilities (between\ \ gates)\n * `CONSUMPTION` - Consumption of crop by plant (from bunker, gate\ \ or dryer)\n * `LOAD` - Loading a culture into a storage location\n * `UNLOAD`\ \ - Unloading a culture from a storage location\n * `SELL` - Selling crops\ \ from the elevator to the market (under a specific contract)\n * `BUY` -\ \ Purchase of crops from the market to the plant (under a specific contract)\n" type: string enum: - HARVEST - STORE - DRY - RELOCATE - CONSUMPTION - LOAD - UNLOAD - SELL - BUY example: HARVEST object_type: description: 'Object type. ' type: string enum: - FIELD - ELEVATOR - FACTORY - MARKET example: FIELD crop_type: description: 'Crop type. ' type: string enum: - DRY - WET example: DRY operation_target: description: 'Operation target. ' type: object additionalProperties: false properties: date: description: Date in the YYYY-MM-DD format. type: string format: date example: '2024-02-05' target_key: description: Target key. type: string minLength: 1 maxLength: 1024 example: key_1 target_type: $ref: '#/components/schemas/object_type' target_detail_key: description: 'The key of the object part, if it exists for this operation - [more](#section/Description/Project). ' type: string nullable: true minLength: 1 maxLength: 1024 example: storage_1 default: null crop_type: $ref: '#/components/schemas/crop_type' humidity: $ref: '#/components/schemas/humidity' mass: description: Weight, in tn. type: number format: double minimum: 0 maximum: 10000000.1 example: 1200.1 attributes: $ref: '#/components/schemas/attributes' required: - date - target_key - target_type - crop_type - humidity - mass operation_measurements: description: 'Operation measurements. ' type: object additionalProperties: false properties: distance: description: Total length, in km. type: integer format: int32 minimum: 0 maximum: 40000 example: 200 cost: description: The total cost of the operation, in conventional monetary units. type: number format: double minimum: -1000000000000 maximum: 1000000000000 example: 200 required: - distance - cost operation: description: 'Grain processing operation. ' type: object additionalProperties: false properties: type: $ref: '#/components/schemas/operation_type' crop_key: description: Crop key. type: string minLength: 1 maxLength: 1024 example: crop_key_1 source: $ref: '#/components/schemas/operation_target' description: Source. destination: $ref: '#/components/schemas/operation_target' description: Source. measurements: $ref: '#/components/schemas/operation_measurements' required: - type - crop_key - source - destination - measurements project: description: 'Production plan. The sequence of work. ' type: array uniqueItems: false minItems: 0 maxItems: 1000001 items: $ref: '#/components/schemas/operation' plan_statistics: description: 'General statistics. ' type: object additionalProperties: false properties: days_count: description: The number of planned fields. type: integer format: int32 minimum: 0 maximum: 3653 example: 365 crops_count: description: The total number of planned crops. type: integer format: int32 minimum: 0 maximum: 501 example: 8 fields_count: description: The total number of planned fields. type: integer format: int32 minimum: 0 maximum: 20001 example: 217 fields_part_count: description: Total number of partially harvested fields. type: integer format: int32 minimum: 0 maximum: 20001 example: 222 elevators_count: description: The total number of planned elevators. type: integer format: int32 minimum: 0 maximum: 501 example: 12 factory_count: description: The total number of planned factories. type: integer format: int32 minimum: 0 maximum: 501 example: 25 markets_count: description: The total number of planned markets. type: integer format: int32 minimum: 0 maximum: 501 example: 4 total_distance: description: Total mileage, in km. type: integer format: int32 minimum: 0 maximum: 10000000000 example: 129000 total_cost: description: The total cost of all transactions, in conventional monetary units. type: number format: double minimum: -1000000000000 maximum: 1000000000000 example: 2788900 unplanned_crops_count: description: Total number of unused crops. type: integer format: int32 minimum: 0 maximum: 501 example: 222 unplanned_fields_count: description: Total number of unharvested fields. type: integer format: int32 minimum: 0 maximum: 20001 example: 2111 unplanned_elevators_count: description: Total number of unused elevators. type: integer format: int32 minimum: 0 maximum: 10001 example: 7333 unplanned_factories_count: description: Total number of unused factories. type: integer format: int32 minimum: 0 maximum: 501 example: 231 unplanned_markets_count: description: Total number of unused markets. type: integer format: int32 minimum: 0 maximum: 501 example: 123 required: - days_count - crops_count - fields_count - fields_part_count - elevators_count - factory_count - markets_count - total_distance - total_cost - unplanned_crops_count - unplanned_fields_count - unplanned_elevators_count - unplanned_factories_count - unplanned_markets_count entity_warning_type: description: "Warning type:\n * `NO_COMPATIBLE_STORAGE` - no compatible storage\ \ locations\n * `NO_AVAILABLE_MOVEMENT` - the object is not in the movement\ \ matrix\n * `NO_AVAILABLE_CONSUMER` - there is no consumer for this type\ \ of culture\n" type: string enum: - NO_COMPATIBLE_STORAGE - NO_AVAILABLE_MOVEMENT - NO_AVAILABLE_CONSUMER example: NO_COMPATIBLE_STORAGE entity_type: description: Entity type. type: string enum: - TASK - SETTINGS - CROP - FIELD - ELEVATOR - FACTORY - MARKET - STORAGE - SILO - BUNKER - DRYER - GATE - CONSUMER - LEFTOVER - FORECAST_ELEMENT 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 validation 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: 100001 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: 100001 items: $ref: '#/components/schemas/entity_warning' example: [] unplanned_items: description: Unplanned items list. type: object additionalProperties: false properties: crop_keys: description: Unplanned crop keys. type: array uniqueItems: true minItems: 0 maxItems: 501 items: description: Key, unique identifier. type: string minLength: 1 maxLength: 1024 example: crop_key_1 field_keys: description: Unplanned field keys. type: array uniqueItems: true minItems: 0 maxItems: 20001 items: description: Key, unique identifier. type: string minLength: 1 maxLength: 1024 example: field_key_1 elevator_keys: description: Unplanned elevator keys. type: array uniqueItems: true minItems: 0 maxItems: 501 items: description: Key, unique identifier. type: string minLength: 1 maxLength: 1024 example: elevator_key_1 factory_keys: description: Unplanned factory keys. type: array uniqueItems: true minItems: 0 maxItems: 501 items: description: Key, unique identifier. type: string minLength: 1 maxLength: 1024 example: factory_key_1 market_keys: description: Unplanned market keys. type: array uniqueItems: true minItems: 0 maxItems: 501 items: description: Key, unique identifier. type: string minLength: 1 maxLength: 1024 example: market_key_1 calculation_progress: description: 'Calculation progress as a percentage. The progress displays the current number of completed steps. ' type: integer format: int32 default: 0 minimum: 0 maximum: 100 example: 52 calculation_status: description: "Calculation status:\n * `WAITING` - the calculation is waiting\ \ to start.\n * `IN_PROGRESS` - the calculation is in progress.\n * `FINISHED_IN_TIME`\ \ - the calculation was completed before the specified planning time.\n *\ \ `FINISHED_OUT_OF_TIME` - the calculation was completed because the specified\ \ planning time has expired.\n * `CANCELED` - the calculation was canceled\ \ because a cancel command was received.\n * `CANCELED_BY_TIMEOUT` - the\ \ calculation was canceled automatically because the waiting time in the queue\ \ was exceeded.\n * `FAILED` - the calculation failed with an error.\n" type: string enum: - WAITING - IN_PROGRESS - FINISHED_IN_TIME - FINISHED_OUT_OF_TIME - CANCELED - CANCELED_BY_TIMEOUT - 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: P1Y1M1DT2H12M34.3S 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: description: Time to prepare for calculation, format [ISO 8601 duration](https://en.wikipedia.org/wiki/ISO_8601#Durations). $ref: '#/components/schemas/time_duration' business_validation_time: description: Business validation duration, format [ISO 8601 duration](https://en.wikipedia.org/wiki/ISO_8601#Durations). $ref: '#/components/schemas/time_duration' math_validation_time: description: Math validation duration, format [ISO 8601 duration](https://en.wikipedia.org/wiki/ISO_8601#Durations). $ref: '#/components/schemas/time_duration' waiting_time: description: Time to waiting for calculation, format [ISO 8601 duration](https://en.wikipedia.org/wiki/ISO_8601#Durations). $ref: '#/components/schemas/time_duration' calculation_time: description: Actual calculation time, format [ISO 8601 duration](https://en.wikipedia.org/wiki/ISO_8601#Durations). $ref: '#/components/schemas/time_duration' required: - status - result_version - preparing_time - business_validation_time - math_validation_time - waiting_time - calculation_time plan_result: description: Planning result. type: object additionalProperties: false properties: tracedata: $ref: '#/components/schemas/tracedata' project: $ref: '#/components/schemas/project' statistics: $ref: '#/components/schemas/plan_statistics' warnings: $ref: '#/components/schemas/entity_warning_list' unplanned_items: $ref: '#/components/schemas/unplanned_items' progress: $ref: '#/components/schemas/calculation_progress' info: $ref: '#/components/schemas/calculation_info' required: - tracedata - project - statistics - progress - info schema_error: description: Data error by schema. type: object additionalProperties: false properties: entity: description: Target entity identifier. type: string nullable: true maxLength: 1024 example: order_0001 message: description: Error message. type: string example: bad input data required: - entity - message schema_error_list: description: Errors list. type: array uniqueItems: false minItems: 0 maxItems: 15001 items: $ref: '#/components/schemas/schema_error' example: [] entity_error_type: description: "Error type:\n * `UNIQUE_IDS_VIOLATION` - all keys must be unique\n\ \ * `INCONSISTENT_REFERENCE` - bad reference key\n * `INVALID_TIMELINE`\ \ - time window crossing\n * `INVALID_DATEWINDOW` - window ends before it\ \ starts\n * `INVALID_LEFTOVER_AMOUNT` - the amount of grain indicated in\ \ the balance exceeds the allowable size of the grain location (field, storage,\ \ silo, dryer, bunker) on the specified date\n * `INVALID_LEFTOVER_PER_ONE_TARGET`\ \ - more than one residue is specified for one grain location\n * `INVALID_CHAMBER_VARIANTS`\ \ - more than one chamber variant set for the same crop\n" type: string enum: - UNIQUE_IDS_VIOLATION - INCONSISTENT_REFERENCE - INVALID_TIMELINE - INVALID_DATEWINDOW - INVALID_LEFTOVER_AMOUNT - INVALID_LEFTOVER_PER_ONE_TARGET - INVALID_CHAMBER_VARIANTS 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: 100001 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: 100001 items: $ref: '#/components/schemas/entity_error' 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_401: description: 401 Error details. type: object additionalProperties: false properties: tracedata: $ref: '#/components/schemas/tracedata' message: description: Error details. type: string nullable: true example: Unauthorized required: - tracedata general_402: description: 402 Error details. type: object additionalProperties: false properties: tracedata: $ref: '#/components/schemas/tracedata' message: description: Error details. type: string nullable: true example: Payment Required required: - tracedata general_404: description: 404 Error details. type: object additionalProperties: false properties: resource_id: description: Resource identifier. type: string nullable: true default: null example: resource_id detail: description: Resource details. type: object additionalProperties: false nullable: true properties: tracedata: $ref: '#/components/schemas/tracedata' required: - tracedata general_429: description: 429 Error details. type: object additionalProperties: false properties: tracedata: $ref: '#/components/schemas/tracedata' message: description: Error details. type: string nullable: true example: Too many requests required: - tracedata general_500: description: 500 Error details. type: object additionalProperties: false properties: tracedata: $ref: '#/components/schemas/tracedata' message: description: Error details. type: string nullable: true example: Internal Server Error required: - tracedata calculation_id: description: Calculation identifier. type: string format: uuid example: 11111111-2222-3333-4444-555555555555 calculation_async_result: description: The result of starting an asynchronous calculation. type: object additionalProperties: false properties: tracedata: $ref: '#/components/schemas/tracedata' id: $ref: '#/components/schemas/calculation_id' required: - id - tracedata calculation_state: description: Current calculation state. type: object additionalProperties: false properties: tracedata: $ref: '#/components/schemas/tracedata' progress: $ref: '#/components/schemas/calculation_progress' info: $ref: '#/components/schemas/calculation_info' required: - tracedata - progress - info validate_result: description: Data validation result. type: object additionalProperties: false properties: tracedata: $ref: '#/components/schemas/tracedata' warnings: $ref: '#/components/schemas/entity_warning_list' required: - tracedata - warnings clip_strategy: description: Data clipping strategy. type: string example: CROP_WITH_TRANSIT_ELEVATORS check_result: description: Service availability result. type: object additionalProperties: false properties: health: description: 'Current health. ' type: number format: double minimum: 0 maximum: 1 example: 0.999 required: - health version_result: description: 服务版本。 type: object additionalProperties: false properties: major: description: '产品版本。 在单个版本中,保证了服务之间通用数据结构的兼容性。 版本更改表示与以前版本的产品(和所有服务)不兼容的更改。 ' type: integer format: int32 minimum: 1 maximum: 100 example: 4 minor: description: '服务的小版本。 版本更改表示新功能。 该更新向后兼容服务的主要版本。 ' type: integer format: int32 minimum: 0 maximum: 111 example: 4 build: description: '构建版本。 包含向后兼容的错误修复和文档更新。 ' type: string minLength: 1 maxLength: 64 example: 1754RC required: - major - minor - build file_html: description: File with data in [HTML](https://html.spec.whatwg.org/) format. type: string file_json: description: File with data in [JSON](https://www.json.org/) format. type: string examples: PlanTaskSmall: summary: 1 field value: crops: - key: bean base_humidity: 180 compatible_storage_types: - granary compatible_silo_types: [] attributes: - key: full_name value: Бобы сои fields: - key: field_1 crop_key: bean capacity_forecast: - date_window: from: '2023-01-01' to: '2023-01-05' capacity: 1000 humidity_forecast: - date_window: from: '2023-01-01' to: '2023-01-03' humidity: 220 - date_window: from: '2023-01-04' to: '2023-01-05' humidity: 170 amount: 5000 attributes: - key: full_number value: 57-4-6-130-227 elevators: - key: elevator_1 gate: key: gate_1 input_capacity_forecast: - date_window: from: '2023-01-01' to: '2023-01-10' capacity: 100 output_capacity_forecast: - date_window: from: '2023-01-01' to: '2023-01-10' capacity: 100 dryers: - key: dryer_1 chamber_variants: - crop_key: bean capacity_forecast: - date_window: from: '2023-01-01' to: '2023-01-10' capacity: 15000 productivity_forecast: - date_window: from: '2023-01-01' to: '2023-01-10' productivity: 5000 storages: - key: storage_1 type: granary capacity_forecast: - date_window: from: '2023-01-01' to: '2023-01-05' capacity: 5000 - date_window: from: '2023-01-06' to: '2023-01-10' capacity: 4100 silos: - key: silo_1 type: trench deployment_cost: 1888 capacity_forecast: - date_window: from: '2023-01-01' to: '2023-07-15' capacity: 50000 attributes: [] factories: - key: factory_1 gate: key: factory_gate_1 input_capacity_forecast: - date_window: from: '2023-01-01' to: '2023-01-10' capacity: 2000 output_capacity_forecast: [] dryers: - key: factory_dryer_1 chamber_variants: - crop_key: bean capacity_forecast: - date_window: from: '2023-01-01' to: '2023-01-10' capacity: 17000 productivity_forecast: - date_window: from: '2023-01-01' to: '2023-01-10' productivity: 2700 bunkers: - key: bunker_1 capacity_forecast: - date_window: from: '2023-01-01' to: '2023-01-10' capacity: 5000 consumers: - key: factory_line_1 crop_key: bean consumption_forecast: - date_window: from: '2023-01-05' to: '2023-01-11' capacity: 500 - date_window: from: '2023-01-12' to: '2023-01-15' capacity: 20 stock_forecast: - date_window: from: '2023-01-01' to: '2023-01-12' min_stock_days: 2 attributes: [] markets: - key: market_1 contracts: - key: contract_1 type: BUY target_keys: - elevator_1 pricelist: - crop_key: bean price_forecast: - date_window: from: '2023-01-01' to: '2023-01-15' price: 280 - key: contract_2 type: SELL target_keys: - factory_1 pricelist: - crop_key: bean price_forecast: - date_window: from: '2023-01-01' to: '2023-01-15' price: 320 attributes: [] movement_matrix: - source_key: field_1 destination_key: factory_1 distance: 100 cost_per_transport: 5000 - source_key: field_1 destination_key: elevator_1 distance: 70 cost_per_transport: 5000 - source_key: elevator_1 destination_key: factory_1 distance: 40 cost_per_transport: 5000 - source_key: elevator_1 destination_key: market_1 distance: 5 cost_per_transport: 5000 - source_key: factory_1 destination_key: market_1 distance: 5 cost_per_transport: 5000 leftovers: - crop_key: bean humidity: 50 target_key: field_1 target_detail_key: null amount: 4990 plan_settings: project_settings: configuration: OPTIMIZE_DISTANCE start_date: '2023-01-01' end_date: '2023-01-15' transport_capacity: 23 calculation_settings: result_ttl: PT20M treat_warnings_as_errors: false PlanResultSmall: summary: 1 field value: tracedata: code: 69c507e4-7c2a-46fd-a862-a503cf27b1a3 client: veeroute_|_example server: Agro:client service: AGRO operation: run_plan_calculation time: '2024-02-21T16:55:35.370332Z' project: - type: RELOCATE crop_key: bean source: date: '2023-09-15' target_key: field_1 target_type: FIELD crop_type: DRY mass: 100 humidity: 15 destination: date: '2023-09-15' target_key: factory_1 target_type: FACTORY crop_type: DRY mass: 100 humidity: 15 measurements: distance: 50 cost: 4500 statistics: days_count: 1 crops_count: 1 fields_count: 1 fields_part_count: 0 elevators_count: 1 factory_count: 1 markets_count: 1 total_distance: 1888 total_cost: 100.1 unplanned_crops_count: 0 unplanned_fields_count: 0 unplanned_elevators_count: 0 unplanned_factories_count: 0 unplanned_markets_count: 0 progress: 100 info: status: FINISHED_IN_TIME result_version: 142 preparing_time: PT1M10S business_validation_time: PT1M10S math_validation_time: PT1M10S waiting_time: PT15S calculation_time: PT1M10S warnings: [] Result400: summary: Errors in data value: tracedata: code: 11111111-2222-3333-4444-555555555555 client: veeroute_|_example server: server_name service: AGRO operation: run_plan_calculation time: '2024-02-21T09:30:00+03:00' message: bad task data schema_errors: [] logical_errors: [] warnings: [] responses: '401': description: 'Unauthorized - token missing or invalid ' content: application/json: schema: $ref: '#/components/schemas/general_401' '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' examples: Result400: $ref: '#/components/examples/Result400' parameters: result_id: name: id in: path description: 计算标识符 required: true schema: $ref: '#/components/schemas/calculation_id' clip_key: name: clip_key description: Target essence key. in: path required: true schema: description: Essence key, unique identifier. type: string minLength: 1 maxLength: 1024 example: crop_key_1 clip_strategy: name: clip_strategy description: Data clipping strategy. in: query required: false schema: $ref: '#/components/schemas/clip_strategy' filename: name: filename description: File name. in: path required: true schema: description: File name. type: string minLength: 6 maxLength: 128 example: file_en.html