Skip to main content

Develop

svc-cargo (0.10.1-develop.0)

Download OpenAPI specification:Download

A.M. Smith: amsmith@arrowair.com License:

Cargo Service GRPC and REST servers

Telemetry Service gRPC and REST servers

Arrow Assets Service gRPC and REST servers

Arrow air traffic control service GRPC server

svc-cargo

svc-cargo REST API

Cancel a Flight

Cancel a Flight

Request Body schema: application/json
id
required
string

Itinerary UUID to Cancel

Responses

Request samples

Content type
application/json
{
  • "id": "string"
}

Confirm an itinerary

Confirm an itinerary This will confirm an itinerary with the scheduler, and will register the parcel with the storage service.

Request Body schema: application/json
id
required
string

Itinerary UUID

user_id
required
string

User ID

weight_grams
required
integer <int32> >= 0

Weight of Cargo TODO(R4): this is a little clunky to re-issue the weight here

Responses

Request samples

Content type
application/json
{
  • "id": "string",
  • "user_id": "string",
  • "weight_grams": 0
}

Request a list of landings for a vertiport.

Request a list of landings for a vertiport. No more than [MAX_LANDINGS_TO_RETURN] landings will be returned.

Request Body schema: application/json
object or null

Time window (min and max)

limit
required
integer <int32> >= 0

The maximum number of landings to return (max: [MAX_LANDINGS_TO_RETURN]])

vertiport_id
required
string

The String ID of the vertiport

Responses

Request samples

Content type
application/json
{
  • "arrival_window": {
    },
  • "limit": 0,
  • "vertiport_id": "string"
}

request_flight

Search for available trips and return a list of [Itinerary].

Request Body schema: application/json
cargo_weight_kg
required
number <float>

The estimated weight of cargo

object or null

Time window (min and max)

object or null

Time window (min and max)

vertiport_arrive_id
required
string

The String ID of the destination vertiport

vertiport_depart_id
required
string

The String ID of the vertiport to leave from

Responses

Request samples

Content type
application/json
{
  • "cargo_weight_kg": 0,
  • "time_arrive_window": {
    },
  • "time_depart_window": {
    },
  • "vertiport_arrive_id": "string",
  • "vertiport_depart_id": "string"
}

Response samples

Content type
application/json
[
  • {
    }
]

Scan a parcel

Scan a parcel The provided parcel ID and scanner ID must already exist in the database

Request Body schema: application/json
latitude
required
number <double>

The latitude (float value) of the scan location

longitude
required
number <double>

The longitude (float value) of the scan location

parcel_id
required
string

The unique ID (UUID) of the parcel

scanner_id
required
string

The unique ID (UUID) of the scanner device

Responses

Request samples

Content type
application/json
{
  • "latitude": 0,
  • "longitude": 0,
  • "parcel_id": "string",
  • "scanner_id": "string"
}

Request a list of landings for a vertiport.

Request a list of landings for a vertiport. No more than [MAX_LANDINGS_TO_RETURN] landings will be returned.

Request Body schema: application/json
parcel_id
required
string

The String ID of the vertiport

Responses

Request samples

Content type
application/json
{
  • "parcel_id": "string"
}

Get Regional Vertiports

Get Regional Vertiports

Request Body schema: application/json
latitude
required
number <float>

Latitude of Client

longitude
required
number <float>

Longitude of Client

Responses

Request samples

Content type
application/json
{
  • "latitude": 0,
  • "longitude": 0
}

Response samples

Content type
application/json
[
  • {
    }
]

health_check

Responses

svc-telemetry

svc-telemetry REST API.

Health check for load balancing

Health check for load balancing

Responses

Post ADS-B Telemetry

Post ADS-B Telemetry Min 8 bytes, max 263 bytes

Request Body schema: application/octet-stream
string <binary>

Responses

svc-assets

svc-assets API

Register an [`Aircraft`] in the database.

Register an [Aircraft] in the database.

Request Body schema: application/json
asset_group_id
string or null

optional asset_group_id UUID v4, can be used to collect all assets from the same group

created_at
string <date-time>

Timestamp in RFC3339 format

description
string or null

optional additional description of the vehicle

hangar_bay_id
string or null

optional id UUID v4 of the hangar bay this aircraft is assigned to

hangar_id
string or null

optional id UUID v4 of the hangar this aircraft is assigned to

last_maintenance
string <date-time>

Timestamp in RFC3339 format

next_maintenance
string <date-time>

Timestamp in RFC3339 format

registration_number
required
string

the vehicle's unique registration number provided by the government

schedule
string or null

optional RRULE data string to indicate the vehicle's available days and hours

serial_number
required
string

the vehicle's unique serial_number given at the factory

updated_at
string <date-time>

Timestamp in RFC3339 format

vehicle_model_id
required
string

vehicle_model_id UUID v4, can be used to collect additional vehicle_model information

Responses

Request samples

Content type
application/json
{
  • "asset_group_id": "string",
  • "created_at": "2019-08-24T14:15:22Z",
  • "description": "string",
  • "hangar_bay_id": "string",
  • "hangar_id": "string",
  • "last_maintenance": "2019-08-24T14:15:22Z",
  • "next_maintenance": "2019-08-24T14:15:22Z",
  • "registration_number": "string",
  • "schedule": "string",
  • "serial_number": "string",
  • "updated_at": "2019-08-24T14:15:22Z",
  • "vehicle_model_id": "string"
}

Update/modify an [`Aircraft`] in the database.

Update/modify an [Aircraft] in the database.

This will update the aircraft's information.

Request Body schema: application/json
asset_group_id
string or null

The UUID of an AssetGroup, if available.

description
string or null

Optional additional description of the Aircraft.

hangar_bay_id
string or null

optional id UUID v4 of the hangar bay (vertiport) this aircraft is assigned to

hangar_id
string or null

optional id UUID v4 of the hangar (vertipad) this aircraft is assigned to

id
required
string

The UUID v4 of the Aircraft to update.

last_maintenance
string or null

Optional date of Aircraft's last maintenance.

mask
required
Array of strings

List of fields that should be updated.

If any other fields are provided, they will be ignored.

next_maintenance
string or null

Optional date of Aircraft's next planned maintenance.

registration_number
string or null

The Aircraft's registration number.

In the US, this is the N number.

This is a unique identifier for the aircraft that can be used to look up information about the aircraft from national aviation authorities like the FAA.

schedule
string or null

Optional RRULE data string to indicate the Aircraft's available days and hours.

serial_number
string or null

The Aircraft's unique serial_number given at the factory.

vehicle_model_id
string or null

The vehicle_model_id UUID v4, can be used to collect additional vehicle_model information.

Responses

Request samples

Content type
application/json
{
  • "asset_group_id": "string",
  • "description": "string",
  • "hangar_bay_id": "string",
  • "hangar_id": "string",
  • "id": "string",
  • "last_maintenance": "string",
  • "mask": [
    ],
  • "next_maintenance": "string",
  • "registration_number": "string",
  • "schedule": "string",
  • "serial_number": "string",
  • "vehicle_model_id": "string"
}

Get an [`Aircraft`] by its id.

Get an [Aircraft] by its id.

path Parameters
id
required
string

Aircraft id

Responses

Response samples

Content type
application/json
{
  • "basics": {
    },
  • "description": "string",
  • "hangar_id": "string",
  • "last_maintenance": "2019-08-24T14:15:22Z",
  • "manufacturer": "string",
  • "max_payload_kg": 0,
  • "max_range_km": 0,
  • "model": "string",
  • "next_maintenance": "2019-08-24T14:15:22Z",
  • "registration_number": "string",
  • "serial_number": "string"
}

Remove a [`Aircraft`] from the database.

Remove a [Aircraft] from the database.

path Parameters
id
required
string

Aircraft id

Responses

Get all aircraft from the database.

Get all aircraft from the database.

Responses

Response samples

Content type
application/json
[
  • {
    }
]

Get all vertipads from the database.

Get all vertipads from the database.

Responses

Response samples

Content type
application/json
[
  • {
    }
]

Get all vertiports from the database.

Get all vertiports from the database.

Responses

Response samples

Content type
application/json
[
  • {
    }
]

Register an [`AssetGroup`](crate::rest::structs::AssetGroup) in the database.

Register an AssetGroup in the database.

Request Body schema: application/json
assets
required
Array of strings

A list of UUIDs of assets.

name
string or null

Optional identification name of the asset group

owner
required
string

The UUID of an Operator, if available.

Responses

Request samples

Content type
application/json
{
  • "assets": [
    ],
  • "name": "string",
  • "owner": "string"
}

Get an [`AssetGroup`](crate::rest::structs::AssetGroup) by its id.

Get an AssetGroup by its id.

path Parameters
id
required
string

Asset group id

Responses

Response samples

Content type
application/json
{
  • "assets": [
    ],
  • "created_at": "2019-08-24T14:15:22Z",
  • "delegatee": "string",
  • "id": "string",
  • "name": "string",
  • "owner": "string",
  • "updated_at": "2019-08-24T14:15:22Z"
}

Update/modify an [`AssetGroup`](crate::rest::structs::AssetGroup) in the database.

Update/modify an AssetGroup in the database.

path Parameters
id
required
string

AssetGroup id

Request Body schema: application/json
assets
required
Array of strings

The UUIDs of the assets in the group.

created_at
string or null <date-time>
delegatee
string or null

The UUID of an [Operator] struct, if available.

id
required
string

UUID of the asset group.

name
string or null
owner
required
string

The UUID of an [Operator] struct.

updated_at
string or null <date-time>

Responses

Request samples

Content type
application/json
{
  • "assets": [
    ],
  • "created_at": "2019-08-24T14:15:22Z",
  • "delegatee": "string",
  • "id": "string",
  • "name": "string",
  • "owner": "string",
  • "updated_at": "2019-08-24T14:15:22Z"
}

Remove an [`AssetGroup`](crate::rest::structs::AssetGroup) from the database.

Remove an AssetGroup from the database.

path Parameters
id
required
string

AssetGroup id

Responses

Get info about an operator by id.

Get info about an operator by id.

path Parameters
id
required
string

Operator id

Responses

Response samples

Content type
application/json
{
  • "address": "string",
  • "city": "string",
  • "country": "string",
  • "created_at": "2019-08-24T14:15:22Z",
  • "description": "string",
  • "email": "string",
  • "id": "string",
  • "logo": "string",
  • "name": "string",
  • "phone": "string",
  • "postal_code": "string",
  • "updated_at": "2019-08-24T14:15:22Z",
  • "website": "string"
}

Get all assets belonging to an operator.

Get all assets belonging to an operator.

path Parameters
id
required
string

Operator id

Responses

Response samples

Content type
application/json
[
  • "string"
]

Get all grouped assets belonging to an operator.

Get all grouped assets belonging to an operator.

These are the assets NOT being delegated to or from this operator.

Returns a list of grouped asset ids.

path Parameters
id
required
string

Operator id

Responses

Response samples

Content type
application/json
[
  • "string"
]

Get all grouped assets delegated from an operator.

Get all grouped assets delegated from an operator.

path Parameters
id
required
string

Operator id

Responses

Response samples

Content type
application/json
[
  • "string"
]

Get all grouped assets delegated to an operator.

Get all grouped assets delegated to an operator.

path Parameters
id
required
string

Operator id

Responses

Response samples

Content type
application/json
[
  • "string"
]

Register an [`Vertipad`] in the database.

Register an [Vertipad] in the database.

Also inserts the vertipad into the vertiport's vertipad list.

Request Body schema: application/json
created_at
string <date-time>

Timestamp in RFC3339 format

enabled
required
boolean

indicates if the vertipad is in business

object or null

Geo Location Point representation https://mapscaping.com/latitude-x-or-y/

name
required
string

human readable name of the vertipad

occupied
required
boolean

indicates if the vertipad is currently occupied

schedule
string or null

RRULE data string to indicate the vertipad's opening days and hours

updated_at
string <date-time>

Timestamp in RFC3339 format

vertiport_id
required
string

vertiport_id UUID v4, all vertipads are part of a vertiport, even if the vertiport has only 1 pad

Responses

Request samples

Content type
application/json
{
  • "created_at": "2019-08-24T14:15:22Z",
  • "enabled": true,
  • "geo_location": {
    },
  • "name": "string",
  • "occupied": true,
  • "schedule": "string",
  • "updated_at": "2019-08-24T14:15:22Z",
  • "vertiport_id": "string"
}

Update/modify a [`Vertipad`] in the database.

Update/modify a [Vertipad] in the database.

Request Body schema: application/json
enabled
boolean or null

Indicates if the Vertipad is in business.

object or null

Geo Location Point representation https://mapscaping.com/latitude-x-or-y/

id
required
string

The UUID v4 of the Vertipad to update.

mask
required
Array of strings

List of fields that should be updated.

If any other fields are provided, they will be ignored.

name
string or null

Identification name of the Vertipad.

occupied
boolean or null

Indicates if the Vertipad is currently occupied.

schedule
string or null

Optional RRULE data string to indicate the Vertipad's available days and hours.

vertiport_id
string or null

The UUID v4 of the Vertiport the Vertipad is located at.

Responses

Request samples

Content type
application/json
{
  • "enabled": true,
  • "geo_location": {
    },
  • "id": "string",
  • "mask": [
    ],
  • "name": "string",
  • "occupied": true,
  • "schedule": "string",
  • "vertiport_id": "string"
}

Get an [`Vertipad`] by its id.

Get an [Vertipad] by its id.

path Parameters
id
required
string

Vertipad id

Responses

Response samples

Content type
application/json
{
  • "basics": {
    },
  • "enabled": true,
  • "geo_location": {
    },
  • "occupied": true,
  • "schedule": "string",
  • "vertiport_id": "string"
}

Remove a [`Vertipad`] from the database.

Remove a [Vertipad] from the database.

path Parameters
id
required
string

Vertipad id

Responses

Register an [`Vertiport`] in the database.

Register an [Vertiport] in the database.

Request Body schema: application/json
created_at
string <date-time>

Timestamp in RFC3339 format

description
required
string

additional description of the vertiport

object or null

Geo Location Polygon representation

name
required
string

human readable name of the vertiport

schedule
string or null

RRULE data string to indicate the vertipad's opening days and hours

updated_at
string <date-time>

Timestamp in RFC3339 format

Responses

Request samples

Content type
application/json
{
  • "created_at": "2019-08-24T14:15:22Z",
  • "description": "string",
  • "geo_location": {
    },
  • "name": "string",
  • "schedule": "string",
  • "updated_at": "2019-08-24T14:15:22Z"
}

Update/modify a [`Vertiport`] in the database.

Update/modify a [Vertiport] in the database.

This will update the vertiport's information. It can also be used to perform batch add/remove of vertipads.

Request Body schema: application/json
description
string or null

Additional description of the Vertiport.

object or null

Geo Location Polygon representation

id
required
string

The UUID v4 of the Vertiport to update.

mask
required
Array of strings

List of fields that should be updated.

If any other fields are provided, they will be ignored.

name
string or null

Identification name of the Vertiport.

schedule
string or null

Optional RRULE data string to indicate the Vertiport's available days and hours.

Responses

Request samples

Content type
application/json
{
  • "description": "string",
  • "geo_location": {
    },
  • "id": "string",
  • "mask": [
    ],
  • "name": "string",
  • "schedule": "string"
}

Get an [`Vertiport`] by its id.

Get an [Vertiport] by its id.

path Parameters
id
required
string

Vertiport id

Responses

Response samples

Content type
application/json
{
  • "basics": {
    },
  • "description": "string",
  • "geo_location": {
    },
  • "schedule": "string"
}

Remove a [`Vertiport`] from the database.

Remove a [Vertiport] from the database.

path Parameters
id
required
string

Vertiport id

Responses

svc-atc

svc-atc REST API