Nortech Asset API
This API includes endpoints that allow you to interact with `Assets` metadata.
This API includes endpoints that allow you to interact with `Assets` metadata.
openapi: 3.1.1
info:
title: Nortech Asset API
version: 1.0.0
contact:
name: Nortech AI
url: https://nortech.ai
email: support@nortech.ai
summary: HTTP API for Nortech AI. Contact Nortech AI support for access.
description: "This API is structured between three main API groups:\n* **Metadata API** - To navigate and get information about your assets.\n* **Signal Data API** - To query all signal data produced from your assets.\n* **Deriver API** - To create and manage derivers that produce computed signals.\n\n# Pagination\nAll `List` Endpoints support cursor pagination. In this pagination model, the client receives a `next.token` field in the response, \nwhich can be used as a `nextToken` query parameter to fetch the next page of results. \nThe `size` parameter defines the maximum number of results to return, the `sortBy` and `sortOrder` parameters define the field to sort by and its order."
x-logo:
url: https://branding-api.apps.nor.tech/logo-light
backgroundColor: '#fafafa'
altText: Nortech AI
href: https://nortech.ai
servers:
- url: https://api.apps.nor.tech
description: HTTP API for Nortech AI
security:
- Bearer Token: []
tags:
- name: Asset
description: This API includes endpoints that allow you to interact with `Assets` metadata.
paths:
/api/v1/workspaces/{workspace}/assets:
get:
operationId: v1.metadata.asset.listWorkspaceAssets
summary: List Workspace Assets
description: List all `Assets` in a `Workspace` by its `ID` or `Name`.
tags:
- Asset
parameters:
- name: workspace
in: path
required: true
schema:
anyOf:
- type: integer
minimum: 1
maximum: 9007199254740991
description: '`ID` of the `Workspace`'
examples:
- 10000
- type: string
description: '`Name` of the `Workspace`'
examples:
- Workspace 1
- name: size
in: query
schema:
type: integer
minimum: 1
maximum: 100
default: 100
allowEmptyValue: true
allowReserved: true
- name: nextToken
in: query
schema:
type: string
allowEmptyValue: true
allowReserved: true
- name: sortBy
in: query
schema:
enum:
- id
- name
- type
- description
type: string
allowEmptyValue: true
allowReserved: true
- name: sortOrder
in: query
schema:
anyOf:
- const: asc
- const: desc
default: asc
allowEmptyValue: true
allowReserved: true
responses:
'200':
description: '`Asset` list'
content:
application/json:
schema:
type: object
properties:
size:
type: integer
minimum: 0
maximum: 9007199254740991
data:
type: array
items:
type: object
properties:
id:
type: integer
minimum: 1
maximum: 9007199254740991
description: '`ID` of the `Asset`'
examples:
- 10000
name:
type: string
description: '`Name` of the `Asset`'
examples:
- Asset 1
type:
type: string
description: '`Type` of the `Asset`'
examples:
- Vessel
description:
anyOf:
- type: string
- type: 'null'
description: '`Description` of the `Asset`'
examples:
- Asset description
required:
- id
- name
- type
- description
additionalProperties: false
next:
type: object
properties:
token:
type: string
href:
type: string
format: uri
examples:
- https://api.apps.nor.tech/api/v1/workspaces/{workspace}/assets?nextToken=abc
required:
- token
- href
required:
- size
- data
'400':
description: Bad Request
content:
application/json:
schema:
type: object
properties:
status:
const: Validation Error
details:
$schema: https://json-schema.org/draft/2020-12/schema
type: string
required:
- status
- details
'401':
description: Unauthorized
content:
application/json:
schema:
type: object
properties:
status:
const: Unauthorized
required:
- status
'404':
description: Not Found
content:
application/json:
schema:
type: object
description: Workspace not found
properties:
status:
const: Workspace not found
required:
- status
/api/v1/workspaces/{workspace}/assets/{asset}:
get:
operationId: v1.metadata.asset.getWorkspaceAsset
summary: Get Workspace Asset
description: Get an `Asset` in a `Workspace` by their `Names`.
tags:
- Asset
parameters:
- name: workspace
in: path
required: true
schema:
type: string
description: '`Name` of the `Workspace`'
examples:
- Workspace 1
- name: asset
in: path
required: true
schema:
type: string
description: '`Name` of the `Asset`'
examples:
- Asset 1
responses:
'200':
description: '`Asset` details'
content:
application/json:
schema:
type: object
properties:
id:
type: integer
minimum: 1
maximum: 9007199254740991
description: '`ID` of the `Asset`'
examples:
- 10000
name:
type: string
description: '`Name` of the `Asset`'
examples:
- Asset 1
createdAt:
type: string
format: date-time
x-native-type: date
description: '`Creation Date` of the `Asset`'
updatedAt:
type: string
format: date-time
x-native-type: date
description: '`Update Date` of the `Asset`'
type:
type: string
description: '`Type` of the `Asset`'
examples:
- Vessel
description:
anyOf:
- type: string
- type: 'null'
description: '`Description` of the `Asset`'
examples:
- Asset description
workspace:
type: object
properties:
id:
type: integer
minimum: 1
maximum: 9007199254740991
description: '`ID` of the `Workspace`'
examples:
- 10000
name:
type: string
description: '`Name` of the `Workspace`'
examples:
- Workspace 1
required:
- id
- name
required:
- id
- name
- createdAt
- updatedAt
- type
- description
- workspace
additionalProperties: false
'400':
description: Bad Request
content:
application/json:
schema:
type: object
properties:
status:
const: Validation Error
details:
$schema: https://json-schema.org/draft/2020-12/schema
type: string
required:
- status
- details
'401':
description: Unauthorized
content:
application/json:
schema:
type: object
properties:
status:
const: Unauthorized
required:
- status
'404':
description: Not Found
content:
application/json:
schema:
oneOf:
- type: object
description: Workspace not found
properties:
status:
const: Workspace not found
required:
- status
- type: object
description: Asset not found
properties:
status:
const: Asset not found
required:
- status
/api/v1/assets/{asset}:
get:
operationId: v1.metadata.asset.getAsset
summary: Get Asset
description: Get an `Asset` by its `ID`.
tags:
- Asset
parameters:
- name: asset
in: path
required: true
schema:
type: integer
minimum: 1
maximum: 9007199254740991
description: '`ID` of the `Asset`'
examples:
- 10000
responses:
'200':
description: OK
content:
application/json:
schema:
type: object
properties:
id:
type: integer
minimum: 1
maximum: 9007199254740991
description: '`ID` of the `Asset`'
examples:
- 10000
name:
type: string
description: '`Name` of the `Asset`'
examples:
- Asset 1
createdAt:
type: string
format: date-time
x-native-type: date
description: '`Creation Date` of the `Asset`'
updatedAt:
type: string
format: date-time
x-native-type: date
description: '`Update Date` of the `Asset`'
type:
type: string
description: '`Type` of the `Asset`'
examples:
- Vessel
description:
anyOf:
- type: string
- type: 'null'
description: '`Description` of the `Asset`'
examples:
- Asset description
workspace:
type: object
properties:
id:
type: integer
minimum: 1
maximum: 9007199254740991
description: '`ID` of the `Workspace`'
examples:
- 10000
name:
type: string
description: '`Name` of the `Workspace`'
examples:
- Workspace 1
required:
- id
- name
required:
- id
- name
- createdAt
- updatedAt
- type
- description
- workspace
additionalProperties: false
'400':
description: Bad Request
content:
application/json:
schema:
type: object
properties:
status:
const: Validation Error
details:
$schema: https://json-schema.org/draft/2020-12/schema
type: string
required:
- status
- details
'401':
description: Unauthorized
content:
application/json:
schema:
type: object
properties:
status:
const: Unauthorized
required:
- status
'404':
description: Not Found
content:
application/json:
schema:
type: object
description: Asset not found
properties:
status:
const: Asset not found
required:
- status
put:
operationId: v1.metadata.asset.updateAsset
summary: Update Asset
description: Update an `Asset` by its `ID` or `Name` **(Requires editor permissions)**
tags:
- Asset
parameters:
- name: asset
in: path
required: true
schema:
anyOf:
- type: integer
minimum: 1
maximum: 9007199254740991
description: '`ID` of the `Asset`'
examples:
- 10000
- type: string
description: '`Name` of the `Asset`'
examples:
- Asset 1
requestBody:
required: true
content:
application/json:
schema:
type: object
properties:
asset:
type: string
description: '`Name` of the `Asset`'
examples:
- Asset 1
type:
type: string
examples:
- Vessel
default: Default
description:
anyOf:
- type: string
- type: 'null'
description: '`Description` of the `Asset`'
examples:
- Asset description
required:
- asset
responses:
'200':
description: '`Asset` updated'
content:
application/json:
schema:
type: object
properties:
id:
type: integer
minimum: 1
maximum: 9007199254740991
description: '`ID` of the `Asset`'
examples:
- 10000
name:
type: string
description: '`Name` of the `Asset`'
examples:
- Asset 1
createdAt:
type: string
format: date-time
x-native-type: date
description: '`Creation Date` of the `Asset`'
updatedAt:
type: string
format: date-time
x-native-type: date
description: '`Update Date` of the `Asset`'
type:
type: string
description: '`Type` of the `Asset`'
examples:
- Vessel
description:
anyOf:
- type: string
- type: 'null'
description: '`Description` of the `Asset`'
examples:
- Asset description
workspace:
type: object
properties:
id:
type: integer
minimum: 1
maximum: 9007199254740991
description: '`ID` of the `Workspace`'
examples:
- 10000
name:
type: string
description: '`Name` of the `Workspace`'
examples:
- Workspace 1
required:
- id
- name
required:
- id
- name
- createdAt
- updatedAt
- type
- description
- workspace
additionalProperties: false
'400':
description: Bad Request
content:
application/json:
schema:
type: object
properties:
status:
const: Validation Error
details:
$schema: https://json-schema.org/draft/2020-12/schema
type: string
required:
- status
- details
'401':
description: Unauthorized
content:
application/json:
schema:
type: object
properties:
status:
const: Unauthorized
required:
- status
'403':
description: Forbidden
content:
application/json:
schema:
type: object
description: Forbidden
properties:
status:
const: Forbidden
required:
- status
'404':
description: Not Found
content:
application/json:
schema:
type: object
description: Asset not found
properties:
status:
const: Asset not found
required:
- status
/api/v1/assets:
post:
operationId: v1.metadata.asset.createAsset
summary: Create Asset
description: Create a new `Asset` **(Requires editor permissions)**
tags:
- Asset
requestBody:
required: true
content:
application/json:
schema:
type: object
properties:
workspace:
type: string
description: '`Name` of the `Workspace`'
examples:
- Workspace 1
asset:
type: string
description: '`Name` of the `Asset`'
examples:
- Asset 1
type:
type: string
examples:
- Vessel
default: Default
description:
anyOf:
- type: string
- type: 'null'
description: '`Description` of the `Asset`'
examples:
- Asset description
required:
- workspace
- asset
responses:
'201':
description: '`Asset` created'
content:
application/json:
schema:
type: object
properties:
id:
type: integer
minimum: 1
maximum: 9007199254740991
description: '`ID` of the `Asset`'
examples:
- 10000
name:
type: string
description: '`Name` of the `Asset`'
examples:
- Asset 1
createdAt:
type: string
format: date-time
x-native-type: date
description: '`Creation Date` of the `Asset`'
updatedAt:
type: string
format: date-time
x-native-type: date
description: '`Update Date` of the `Asset`'
type:
type: string
description: '`Type` of the `Asset`'
examples:
- Vessel
description:
anyOf:
- type: string
- type: 'null'
description: '`Description` of the `Asset`'
examples:
- Asset description
workspace:
type: object
properties:
id:
type: integer
minimum: 1
maximum: 9007199254740991
description: '`ID` of the `Workspace`'
examples:
- 10000
name:
type: string
description: '`Name` of the `Workspace`'
examples:
- Workspace 1
required:
- id
- name
required:
- id
- name
- createdAt
- updatedAt
- type
- description
- workspace
additionalProperties: false
'400':
description: Bad Request
content:
application/json:
schema:
type: object
properties:
status:
const: Validation Error
details:
$schema: https://json-schema.org/draft/2020-12/schema
type: string
required:
- status
- details
'401':
description: Unauthorized
content:
application/json:
schema:
type: object
properties:
status:
const: Unauthorized
required:
- status
'403':
description: Forbidden
content:
application/json:
schema:
type: object
description: Forbidden
properties:
status:
const: Forbidden
required:
- status
'404':
description: Not Found
content:
application/json:
schema:
oneOf:
- type: object
description: Workspace not found
properties:
status:
const: Workspace not found
required:
- status
- type: object
description: Asset not found
properties:
status:
const: Asset not found
required:
- status
'409':
description: Conflict
content:
application/json:
schema:
type: object
description: Asset already exists
properties:
status:
const: Asset already exists
required:
- status
components:
securitySchemes:
Bearer Token:
type: http
scheme: bearer
bearerFormat: JWT
x-tagGroups:
- name: Metadata API v1
tags:
- Workspace
- Asset
- Division
- Unit
- Signal
- name: Signal Data API v1
tags:
- Historical Data
- Live Data
- MQTT Live Data
- Import Data
- name: Deriver API v1
tags:
- Deriver