Oceanics.io (3.0.0)

Download OpenAPI specification:Download

Oceanicsdotio LLC: data@oceanics.io URL: http://www.oceanics.io License: MIT

Oceanics.io is a graph-native store and registry for public and proprietary Ocean data. We ingest heterogenous sensor and simulation data and parse them into discoverable databases, accessible to both humans and machines.

You probably have to share data anyway. This software can enhance your data science and management experience by providing granular access control and provenance tracking based on open standards.

By assessing data and service availability over shared domain, projects can allocate resources to fill coverage gaps, share assets, and eliminate redundant operational and capital expenses.

Catalog

Access metadata about collections.

Catalog Metadata

Get all entity types in database as collections following the SpatioTemporal Asset Catalog specification

Authorizations:
BearerAuth
query Parameters
asset
string
Default: "index"
extension
string
Enum: "sensing" "mesh" "tasking" "admin" "catalog"

Any entity can be linked topologically to any other entity, but generally these are grouped in functional sets by application area:

  • sensing implements Open Geospatial Consortium SensorThings specification (part 1), and has models relevant to operating and getting data from sensor networks.
  • tasking builds off of the SensorThings specification part 2.
  • mesh implements structures for spatial simulations.

Responses

Create Unique Constraint

Add a unique constraint and node type. Even if no instances exist in the database, this will force the get index query to return labels.

Authorizations:
BearerAuth

Responses

Response samples

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

Delete Catalog

Delete all data connected to account.

Authorizations:
BearerAuth

Responses

Response samples

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

Collection

Access groups of entities sharing a type.

Create Entity

Create a new entity.

Authorizations:
BearerAuth
path Parameters
entity
required
string
Enum: "DataStreams" "Observations" "HistoricalLocations" "Locations" "Sensors" "Things" "ObservedProperties" "Tasks" "Actuators" "TaskingCapabilities" "FeaturesOfInterest" "Collections"

Name of the entity model to create or fetch.

Request Body schema: application/json

Entity

One of
uuid
required
string <uuid>

Unique identifier. This is usually auto-generated, but different than the default node IDs within the Neo4j database, since those are not guaranteed to persist.

name
required
string or null

Human readable entity name for displaying data.

description
string or null

Short but useful explanation of what the entity is.

properties
object or null

Key-value properties

Responses

Request samples

Content type
application/json
Example
{
  • "name": "Sealab",
  • "description": "A research institution located offshore."
}

Response samples

Content type
application/json
Example
{
  • "name": "Sealab",
  • "description": "A research institution located offshore."
}

Collection Metadata

Get all entities of one type. This can also take query string parameters for offset and limit, which enables paging with look-ahead, or infinite scroll if desired.

Authorizations:
BearerAuth
path Parameters
entity
required
string
Enum: "DataStreams" "Observations" "HistoricalLocations" "Locations" "Sensors" "Things" "ObservedProperties" "Tasks" "Actuators" "TaskingCapabilities" "FeaturesOfInterest" "Collections"

Name of the entity model to create or fetch.

query Parameters
offset
number <integer> >= 0
Default: 0

The number of node that will skipped when return the graph query result. This means that the first record returned will be the next index. This is used in combination with limit to enable paging or continuous scroll.

limit
number <integer> [ 1 .. 100 ]
Default: 10

The maximum number of nodes in the graph query response. This requires that the result be sorted in some way for consistent results. We sort by uuid v7, which means that records are return in approximately the order they were created. This is used with offset to enable continuous scroll and paging.

Responses

Response samples

Content type
application/json
{
  • "name": "Oysters",
  • "description": "Oyster data",
  • "license": null,
  • "version": 1,
  • "keywords": "oysters,aquaculture,Maine,ShellSIM",
  • "@iot.count": 1,
  • "value": [
    ]
}

Connected Entities

Get related entities. The underlying implementation is almost identical to that for getting base collections, except that this uses any data node as the root, instead of the authenticated user. Like other query handlers, this route supports offset and limit query parameters for client side paging or continuous scroll.

Authorizations:
BearerAuth
path Parameters
root
required
string

The class name of the root or parent entity that the request object is associated with. During a GET request this will be used to collect child entities based on graph relationship. For PUT and POST requests this and the child entities will be linked with a labeled relationship.

rootId
required
string

Unique identifier of the parent entity.

entity
required
string
Enum: "DataStreams" "Observations" "HistoricalLocations" "Locations" "Sensors" "Things" "ObservedProperties" "Tasks" "Actuators" "TaskingCapabilities" "FeaturesOfInterest" "Collections"

Name of the entity model to create or fetch.

query Parameters
label
string

Should be in format LABEL, although this is not strictly necessary. Labeled relationships are used to crawl over the graph.

offset
number <integer> >= 0
Default: 0

The number of node that will skipped when return the graph query result. This means that the first record returned will be the next index. This is used in combination with limit to enable paging or continuous scroll.

limit
number <integer> [ 1 .. 100 ]
Default: 10

The maximum number of nodes in the graph query response. This requires that the result be sorted in some way for consistent results. We sort by uuid v7, which means that records are return in approximately the order they were created. This is used with offset to enable continuous scroll and paging.

Responses

Response samples

Content type
application/json
{
  • "name": "Oysters",
  • "description": "Oyster data",
  • "license": null,
  • "version": 1,
  • "keywords": "oysters,aquaculture,Maine,ShellSIM",
  • "@iot.count": 1,
  • "value": [
    ]
}

Entity

Manage a single entity or pair of entities.

Create Entity

Create a new entity.

Authorizations:
BearerAuth
path Parameters
entity
required
string
Enum: "DataStreams" "Observations" "HistoricalLocations" "Locations" "Sensors" "Things" "ObservedProperties" "Tasks" "Actuators" "TaskingCapabilities" "FeaturesOfInterest" "Collections"

Name of the entity model to create or fetch.

Request Body schema: application/json

Entity

One of
uuid
required
string <uuid>

Unique identifier. This is usually auto-generated, but different than the default node IDs within the Neo4j database, since those are not guaranteed to persist.

name
required
string or null

Human readable entity name for displaying data.

description
string or null

Short but useful explanation of what the entity is.

properties
object or null

Key-value properties

Responses

Request samples

Content type
application/json
Example
{
  • "name": "Sealab",
  • "description": "A research institution located offshore."
}

Response samples

Content type
application/json
Example
{
  • "name": "Sealab",
  • "description": "A research institution located offshore."
}

Entity Metadata

Get entity

Authorizations:
BearerAuth
path Parameters
entity
required
string
Enum: "DataStreams" "Observations" "HistoricalLocations" "Locations" "Sensors" "Things" "ObservedProperties" "Tasks" "Actuators" "TaskingCapabilities" "FeaturesOfInterest" "Collections"

Name of the entity model to create or fetch.

uuid
required
string

Unique identifier of the resource to be retrieved.

Responses

Response samples

Content type
application/json
Example
{
  • "name": "Sealab",
  • "description": "A research institution located offshore."
}

Update Entity

Update entity

Authorizations:
BearerAuth
path Parameters
entity
required
string
Enum: "DataStreams" "Observations" "HistoricalLocations" "Locations" "Sensors" "Things" "ObservedProperties" "Tasks" "Actuators" "TaskingCapabilities" "FeaturesOfInterest" "Collections"

Name of the entity model to create or fetch.

uuid
required
string

Unique identifier of the resource to be retrieved.

Request Body schema: application/json

Entity

One of
uuid
required
string <uuid>

Unique identifier. This is usually auto-generated, but different than the default node IDs within the Neo4j database, since those are not guaranteed to persist.

name
required
string or null

Human readable entity name for displaying data.

description
string or null

Short but useful explanation of what the entity is.

properties
object or null

Key-value properties

Responses

Request samples

Content type
application/json
Example
{
  • "name": "Sealab",
  • "description": "A research institution located offshore."
}

Response samples

Content type
application/json
Example
{
  • "name": "Sealab",
  • "description": "A research institution located offshore."
}

Delete Entity

Delete entity and orphans recursively.

Authorizations:
BearerAuth
path Parameters
entity
required
string
Enum: "DataStreams" "Observations" "HistoricalLocations" "Locations" "Sensors" "Things" "ObservedProperties" "Tasks" "Actuators" "TaskingCapabilities" "FeaturesOfInterest" "Collections"

Name of the entity model to create or fetch.

uuid
required
string

Unique identifier of the resource to be retrieved.

Responses

Response samples

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

Connected Entities

Get related entities. The underlying implementation is almost identical to that for getting base collections, except that this uses any data node as the root, instead of the authenticated user. Like other query handlers, this route supports offset and limit query parameters for client side paging or continuous scroll.

Authorizations:
BearerAuth
path Parameters
root
required
string

The class name of the root or parent entity that the request object is associated with. During a GET request this will be used to collect child entities based on graph relationship. For PUT and POST requests this and the child entities will be linked with a labeled relationship.

rootId
required
string

Unique identifier of the parent entity.

entity
required
string
Enum: "DataStreams" "Observations" "HistoricalLocations" "Locations" "Sensors" "Things" "ObservedProperties" "Tasks" "Actuators" "TaskingCapabilities" "FeaturesOfInterest" "Collections"

Name of the entity model to create or fetch.

query Parameters
label
string

Should be in format LABEL, although this is not strictly necessary. Labeled relationships are used to crawl over the graph.

offset
number <integer> >= 0
Default: 0

The number of node that will skipped when return the graph query result. This means that the first record returned will be the next index. This is used in combination with limit to enable paging or continuous scroll.

limit
number <integer> [ 1 .. 100 ]
Default: 10

The maximum number of nodes in the graph query response. This requires that the result be sorted in some way for consistent results. We sort by uuid v7, which means that records are return in approximately the order they were created. This is used with offset to enable continuous scroll and paging.

Responses

Response samples

Content type
application/json
{
  • "name": "Oysters",
  • "description": "Oyster data",
  • "license": null,
  • "version": 1,
  • "keywords": "oysters,aquaculture,Maine,ShellSIM",
  • "@iot.count": 1,
  • "value": [
    ]
}

Join Entity Pair

Create a labeled relationship between entities.

Authorizations:
BearerAuth
path Parameters
root
required
string

The class name of the root or parent entity that the request object is associated with. During a GET request this will be used to collect child entities based on graph relationship. For PUT and POST requests this and the child entities will be linked with a labeled relationship.

rootId
required
string

Unique identifier of the parent entity.

entity
required
string
Enum: "DataStreams" "Observations" "HistoricalLocations" "Locations" "Sensors" "Things" "ObservedProperties" "Tasks" "Actuators" "TaskingCapabilities" "FeaturesOfInterest" "Collections"

Name of the entity model to create or fetch.

uuid
required
string

Unique identifier of the resource to be retrieved.

query Parameters
label
string

Should be in format LABEL, although this is not strictly necessary. Labeled relationships are used to crawl over the graph.

Responses

Response samples

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

Drop Relationship

Remove a labeled relationship between entities. If no label is specified, remove all relationships between the entities.

Authorizations:
BearerAuth
path Parameters
root
required
string

The class name of the root or parent entity that the request object is associated with. During a GET request this will be used to collect child entities based on graph relationship. For PUT and POST requests this and the child entities will be linked with a labeled relationship.

rootId
required
string

Unique identifier of the parent entity.

entity
required
string
Enum: "DataStreams" "Observations" "HistoricalLocations" "Locations" "Sensors" "Things" "ObservedProperties" "Tasks" "Actuators" "TaskingCapabilities" "FeaturesOfInterest" "Collections"

Name of the entity model to create or fetch.

uuid
required
string

Unique identifier of the resource to be retrieved.

query Parameters
label
string

Should be in format LABEL, although this is not strictly necessary. Labeled relationships are used to crawl over the graph.

Responses

Response samples

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

Topology

Create and access entity relationship metadata.

Connected Entities

Get related entities. The underlying implementation is almost identical to that for getting base collections, except that this uses any data node as the root, instead of the authenticated user. Like other query handlers, this route supports offset and limit query parameters for client side paging or continuous scroll.

Authorizations:
BearerAuth
path Parameters
root
required
string

The class name of the root or parent entity that the request object is associated with. During a GET request this will be used to collect child entities based on graph relationship. For PUT and POST requests this and the child entities will be linked with a labeled relationship.

rootId
required
string

Unique identifier of the parent entity.

entity
required
string
Enum: "DataStreams" "Observations" "HistoricalLocations" "Locations" "Sensors" "Things" "ObservedProperties" "Tasks" "Actuators" "TaskingCapabilities" "FeaturesOfInterest" "Collections"

Name of the entity model to create or fetch.

query Parameters
label
string

Should be in format LABEL, although this is not strictly necessary. Labeled relationships are used to crawl over the graph.

offset
number <integer> >= 0
Default: 0

The number of node that will skipped when return the graph query result. This means that the first record returned will be the next index. This is used in combination with limit to enable paging or continuous scroll.

limit
number <integer> [ 1 .. 100 ]
Default: 10

The maximum number of nodes in the graph query response. This requires that the result be sorted in some way for consistent results. We sort by uuid v7, which means that records are return in approximately the order they were created. This is used with offset to enable continuous scroll and paging.

Responses

Response samples

Content type
application/json
{
  • "name": "Oysters",
  • "description": "Oyster data",
  • "license": null,
  • "version": 1,
  • "keywords": "oysters,aquaculture,Maine,ShellSIM",
  • "@iot.count": 1,
  • "value": [
    ]
}

Join Entity Pair

Create a labeled relationship between entities.

Authorizations:
BearerAuth
path Parameters
root
required
string

The class name of the root or parent entity that the request object is associated with. During a GET request this will be used to collect child entities based on graph relationship. For PUT and POST requests this and the child entities will be linked with a labeled relationship.

rootId
required
string

Unique identifier of the parent entity.

entity
required
string
Enum: "DataStreams" "Observations" "HistoricalLocations" "Locations" "Sensors" "Things" "ObservedProperties" "Tasks" "Actuators" "TaskingCapabilities" "FeaturesOfInterest" "Collections"

Name of the entity model to create or fetch.

uuid
required
string

Unique identifier of the resource to be retrieved.

query Parameters
label
string

Should be in format LABEL, although this is not strictly necessary. Labeled relationships are used to crawl over the graph.

Responses

Response samples

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

Drop Relationship

Remove a labeled relationship between entities. If no label is specified, remove all relationships between the entities.

Authorizations:
BearerAuth
path Parameters
root
required
string

The class name of the root or parent entity that the request object is associated with. During a GET request this will be used to collect child entities based on graph relationship. For PUT and POST requests this and the child entities will be linked with a labeled relationship.

rootId
required
string

Unique identifier of the parent entity.

entity
required
string
Enum: "DataStreams" "Observations" "HistoricalLocations" "Locations" "Sensors" "Things" "ObservedProperties" "Tasks" "Actuators" "TaskingCapabilities" "FeaturesOfInterest" "Collections"

Name of the entity model to create or fetch.

uuid
required
string

Unique identifier of the resource to be retrieved.

query Parameters
label
string

Should be in format LABEL, although this is not strictly necessary. Labeled relationships are used to crawl over the graph.

Responses

Response samples

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