VRt.Agro [AG] (7.36.3317)

Veeroute Support Team: support@veeroute.com License: Proprietary

Programming interface for Veeroute Agro.

Description

The service is designed to compute the work plan of production facilities.

General schema

objects

Field

  • produces a specific agricultural crop with a specific moisture level
  • crop output from the field can be moved only to an Elevator or a Plant

Elevator (Threshing floor)

  • consists of Gates, Dryers, short-term and long-term storage locations
  • dries the grain (if the crop moisture is above the allowed level)
  • stores dry grain in short-term storage locations (warehouses); unloading and loading of grain within a single day is allowed
  • stores dry grain in long-term storage locations (sleeves, trenches, mounds)
  • only one type of crop can be stored in a single storage at a time
  • sells surplus grain to the Market
  • production processes inside the facility: drying, loading/unloading to a storage location, storage

Plant

  • consists of Gates, Dryers, Bunkers, Consumers
  • [if drying is present] dries the grain (if the crop moisture is above the allowed level)
  • stores dry grain in Bunkers (short-term storage tied to a specific crop)
  • maintains a minimum stock of grain in Bunkers for consumption
  • consumes grain from Bunkers
  • buys missing grain from the Market
  • production processes inside the facility: drying, loading/unloading to a storage location, storage, consumption

Market

  • buys grain from Elevators
  • sells grain to Plants

Project

A project reflects the planned sequence of operations on agricultural crops; the operation types are described below.

HARVEST

Harvesting of an agricultural crop:

  • between production facilities (a Field and an Elevator or a Plant)
  • the operation occurs within a single day
  • grain moisture is determined at the Field
Object (target_key) Sub-object (target_detail_key)
Source Field -
Destination Elevator or Plant Gates

DRY

Drying of a crop:

  • inside a production facility (Elevator or Plant)
  • duration of the operation — one day
  • during drying both the mass and the moisture type change (WET -> DRY)
  • the source specifies the mass of the wet crop
  • the destination specifies the resulting mass of the dry crop
Object (target_key) Sub-object (target_detail_key)
Source Elevator or Plant Gates
Destination Elevator or Plant Dryer

LOAD

Loading of a crop from the Gates into a Storage location (long-term, short-term, bunker):

  • between parts of the same production facility (Elevator or Plant)
  • the operation occurs within a single day
Object (target_key) Sub-object (target_detail_key)
Source Elevator or Plant Gates or Dryer
Destination Elevator or Plant Storage location (long-term, short-term, bunker)

UNLOAD

Unloading of a crop from a storage location to the Gates:

  • between parts of the same production facility (Elevator)
  • the operation occurs within a single day
Object (target_key) Sub-object (target_detail_key)
Source Elevator Storage location (long-term, short-term, bunker) or Dryer
Destination Elevator Gates

STORE

Crop storage:

  • the storage location does not change
  • duration of the operation — one day
  • the operation occurs overnight
Object (target_key) Sub-object (target_detail_key)
Source Elevator or Plant Storage location (long-term, short-term, bunker)
Destination Elevator or Plant The same storage location

RELOCATE

Transport between production facilities:

  • between production facilities (Elevator and Plant)
  • the operation occurs within a single day
Object (target_key) Sub-object (target_detail_key)
Source Elevator Gates
Destination Plant Gates

CONSUMPTION

Consumption of a crop by the plant:

  • between parts of the same production facility (Plant)
  • the operation occurs within a single day
  • consumption goes from a Bunker
  • additionally we can consume directly from the Gates or the Dryer without storing in a Bunker
Object (target_key) Sub-object (target_detail_key)
Source Plant Bunker or Gates or Dryer
Destination Plant Consumer

SELL

Sale of a crop:

  • between production facilities (Elevator and Market)
  • the operation occurs within a single day
Object (target_key) Sub-object (target_detail_key)
Source Elevator Gates
Destination Market Contract

BUY

Purchase of a crop:

  • between production facilities (Market and Plant)
  • the operation occurs within a single day
Object (target_key) Sub-object (target_detail_key)
Source Market Contract
Destination Plant Gates

Entity diagram

erd

Plan

Production plan calculation.

Planning (SYNC)

Production plan calculation.

Authorizations:
ApiKeyAuth
Request Body schema: application/json
required

Data for calculation.

required
Array of objects (crop) [ 1 .. 501 ] items unique

List of crops.

required
Array of objects (field) [ 1 .. 20001 ] items unique

List of fields.

Array of objects (elevator) [ 1 .. 501 ] items unique

List of elevators.

required
Array of objects (factory) [ 1 .. 501 ] items unique

List of factories.

required
Array of objects (market) [ 1 .. 501 ] items unique

List of markets.

required
Array of objects (movement_matrix) [ 1 .. 8040402 ] items unique

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.

Array of objects (leftover) [ 0 .. 25001 ] items

List of leftovers.

required
object (agro_plan_settings)

Plan settings.

dataset_name
string (dataset_name) [ 0 .. 512 ] characters
Example: "custom_dataset_one"

The name of the dataset. A technical field that does not affect calculation.

Responses

Response Schema: application/json
required
object (tracedata)

Data for request tracing.

required
Array of objects (project) [ 0 .. 1000001 ] items

Production plan. The sequence of work.

required
object (agro_plan_statistics)

General statistics.

Array of objects (agro_entity_warning_list) [ 0 .. 100001 ] items

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.

object (agro_unplanned_items)

Unplanned items list.

calculation_progress
required
integer <int32> (calculation_progress) [ 0 .. 100 ]
Example: "52"

Calculation progress as a percentage. The progress displays the current number of completed steps.

required
object (calculation_info)

Calculation information.

Request samples

Content type
application/json
{
}

Response samples

Content type
application/json
{
}

Planning (ASYNC)

The result can be obtained using the result method, removing - with delete.

Authorizations:
ApiKeyAuth
Request Body schema: application/json
required

Data for calculation.

required
Array of objects (crop) [ 1 .. 501 ] items unique

List of crops.

required
Array of objects (field) [ 1 .. 20001 ] items unique

List of fields.

Array of objects (elevator) [ 1 .. 501 ] items unique

List of elevators.

required
Array of objects (factory) [ 1 .. 501 ] items unique

List of factories.

required
Array of objects (market) [ 1 .. 501 ] items unique

List of markets.

required
Array of objects (movement_matrix) [ 1 .. 8040402 ] items unique

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.

Array of objects (leftover) [ 0 .. 25001 ] items

List of leftovers.

required
object (agro_plan_settings)

Plan settings.

dataset_name
string (dataset_name) [ 0 .. 512 ] characters
Example: "custom_dataset_one"

The name of the dataset. A technical field that does not affect calculation.

Responses

Response Schema: application/json
required
object (tracedata)

Data for request tracing.

process_code
required
string <uuid> (process_code)
Example: "11111111-2222-3333-4444-555555555555"

Process code - calculation identifier.

Request samples

Content type
application/json
{
}

Response samples

Content type
application/json
{
}

Cancel calculation

Cancel calculation process by the calculation identifier.

Authorizations:
ApiKeyAuth
path Parameters
process_code
required
string <uuid> (process_code)
Example: 11111111-2222-3333-4444-555555555555

Unique process identifier.

Responses

Response samples

Content type
application/json
{
}

Calculation state

Read calculation state by the calculation identifier.

Authorizations:
ApiKeyAuth
path Parameters
process_code
required
string <uuid> (process_code)
Example: 11111111-2222-3333-4444-555555555555

Unique process identifier.

Responses

Response Schema: application/json
required
object (tracedata)

Data for request tracing.

calculation_progress
required
integer <int32> (calculation_progress) [ 0 .. 100 ]
Example: "52"

Calculation progress as a percentage. The progress displays the current number of completed steps.

required
object (calculation_info)

Calculation information.

Response Schema: application/json
required
object (tracedata)

Data for request tracing.

calculation_progress
required
integer <int32> (calculation_progress) [ 0 .. 100 ]
Example: "52"

Calculation progress as a percentage. The progress displays the current number of completed steps.

required
object (calculation_info)

Calculation information.

Response samples

Content type
application/json
{
}

Getting the result

Getting the result based on the calculation identifier.

Authorizations:
ApiKeyAuth
path Parameters
process_code
required
string <uuid> (process_code)
Example: 11111111-2222-3333-4444-555555555555

Unique process identifier.

Responses

Response Schema: application/json
required
object (tracedata)

Data for request tracing.

required
Array of objects (project) [ 0 .. 1000001 ] items

Production plan. The sequence of work.

required
object (agro_plan_statistics)

General statistics.

Array of objects (agro_entity_warning_list) [ 0 .. 100001 ] items

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.

object (agro_unplanned_items)

Unplanned items list.

calculation_progress
required
integer <int32> (calculation_progress) [ 0 .. 100 ]
Example: "52"

Calculation progress as a percentage. The progress displays the current number of completed steps.

required
object (calculation_info)

Calculation information.

Response Schema: application/json
required
object (tracedata)

Data for request tracing.

required
Array of objects (project) [ 0 .. 1000001 ] items

Production plan. The sequence of work.

required
object (agro_plan_statistics)

General statistics.

Array of objects (agro_entity_warning_list) [ 0 .. 100001 ] items

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.

object (agro_unplanned_items)

Unplanned items list.

calculation_progress
required
integer <int32> (calculation_progress) [ 0 .. 100 ]
Example: "52"

Calculation progress as a percentage. The progress displays the current number of completed steps.

required
object (calculation_info)

Calculation information.

Response samples

Content type
application/json
{
}

Result removal

Removal of the planning result by the calculation identifier.

Authorizations:
ApiKeyAuth
path Parameters
process_code
required
string <uuid> (process_code)
Example: 11111111-2222-3333-4444-555555555555

Unique process identifier.

Responses

Response samples

Content type
application/json
{
}

Data validation

Checking data before planning.

Authorizations:
ApiKeyAuth
Request Body schema: application/json
required

Data for calculation.

required
Array of objects (crop) [ 1 .. 501 ] items unique

List of crops.

required
Array of objects (field) [ 1 .. 20001 ] items unique

List of fields.

Array of objects (elevator) [ 1 .. 501 ] items unique

List of elevators.

required
Array of objects (factory) [ 1 .. 501 ] items unique

List of factories.

required
Array of objects (market) [ 1 .. 501 ] items unique

List of markets.

required
Array of objects (movement_matrix) [ 1 .. 8040402 ] items unique

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.

Array of objects (leftover) [ 0 .. 25001 ] items

List of leftovers.

required
object (agro_plan_settings)

Plan settings.

dataset_name
string (dataset_name) [ 0 .. 512 ] characters
Example: "custom_dataset_one"

The name of the dataset. A technical field that does not affect calculation.

Responses

Response Schema: application/json
required
object (tracedata)

Data for request tracing.

required
Array of objects (agro_entity_warning_list) [ 0 .. 100001 ] items

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.

Request samples

Content type
application/json
{
}

Response samples

Content type
application/json
{
}

Clipping (SYNC)

Data clipping.

Authorizations:
ApiKeyAuth
path Parameters
clip_key
required
string [ 1 .. 1024 ] characters
Example: crop_key_1

Target essence key.

query Parameters
clip_strategy
string (clip_strategy) [ 0 .. 1024 ] characters
Example: clip_strategy=CROP_WITH_TRANSIT_ELEVATORS

Data clipping strategy.

Request Body schema: application/json
required

Data for clipping.

required
Array of objects (crop) [ 1 .. 501 ] items unique

List of crops.

required
Array of objects (field) [ 1 .. 20001 ] items unique

List of fields.

Array of objects (elevator) [ 1 .. 501 ] items unique

List of elevators.

required
Array of objects (factory) [ 1 .. 501 ] items unique

List of factories.

required
Array of objects (market) [ 1 .. 501 ] items unique

List of markets.

required
Array of objects (movement_matrix) [ 1 .. 8040402 ] items unique

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.

Array of objects (leftover) [ 0 .. 25001 ] items

List of leftovers.

required
object (agro_plan_settings)

Plan settings.

dataset_name
string (dataset_name) [ 0 .. 512 ] characters
Example: "custom_dataset_one"

The name of the dataset. A technical field that does not affect calculation.

Responses

Response Schema: application/json
required
Array of objects (crop) [ 1 .. 501 ] items unique

List of crops.

required
Array of objects (field) [ 1 .. 20001 ] items unique

List of fields.

Array of objects (elevator) [ 1 .. 501 ] items unique

List of elevators.

required
Array of objects (factory) [ 1 .. 501 ] items unique

List of factories.

required
Array of objects (market) [ 1 .. 501 ] items unique

List of markets.

required
Array of objects (movement_matrix) [ 1 .. 8040402 ] items unique

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.

Array of objects (leftover) [ 0 .. 25001 ] items

List of leftovers.

required
object (agro_plan_settings)

Plan settings.

dataset_name
string (dataset_name) [ 0 .. 512 ] characters
Example: "custom_dataset_one"

The name of the dataset. A technical field that does not affect calculation.

Request samples

Content type
application/json
{
}

Response samples

Content type
application/json
{
}

Algo data

Receiving algo data by tracedata.process_code.

Authorizations:
ApiKeyAuth
path Parameters
process_code
required
string <uuid> (process_code)
Example: 11111111-2222-3333-4444-555555555555

Unique process identifier.

query Parameters
data_flow_type
string (flow_type)
Default: "INPUT"
Enum: "INPUT" "OUTPUT"
Example: data_flow_type=OUTPUT

Data flow type.

Responses

Response Schema: application/octet-stream
string <byte> (file_binary)

File with data (octet-stream).

Response samples

Content type
application/json
{
}

System

System functions. Auxiliary functionality common to all services.

Checking the availability

Checking the service availability.

Responses

Response Schema: application/json
health
required
number <double> [ 0 .. 1 ]
Example: "0.999"

The current health indicator of the service.

  • 0.0 means the service is not ready to perform tasks.
  • 1.0 means the service is fully ready to perform tasks.

Response samples

Content type
application/json
{
}

Getting the service version

Getting the service version.

Responses

Response Schema: application/json
major
required
integer <int32> [ 1 .. 100 ]
Example: "7"

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).

minor
required
integer <int32> [ 0 .. 111 ]
Example: "15"

Minor version of the service. A version change indicates new functionality. The update is backward compatible with the major version of the service.

build
required
string [ 1 .. 64 ] characters
Example: "3754RC"

Build version.
Contains backwards compatible bug fixes and docs update.

Response samples

Content type
application/json
{
}

Getting the documentation

Getting the file with this service documentation.

path Parameters
filename
required
string [ 6 .. 128 ] characters
Example: file_en.html

File name.

Responses

Response Schema:
string (file_html) [ 0 .. 2000000000 ] characters

File with data in HTML format.

Response samples

Content type
application/json
{
}