@nrfcloud/models
TypeScript icon, indicating that this package has built-in type declarations

1.5.0 • Public • Published

Models

npm Build Status Greenkeeper badge semantic-release Commitizen friendly DeepScan Grade Known Vulnerabilities

Contains model definitions for the REST API.

Testing

Install dependencies

npm i

Run the tests

npm test

JSON-LD Entity Definitions

All entities require a 'context' which explicitly types their JSON representation. The version is used to express schema changes per entity. This is inspired by JSON-LD.

ApiIndex

Describes entry points of an API.

{
    "__context": "https://github.com/nRFCloud/models#ApiIndex",
    "__contextVersion": 1,
    "links": [
        {
            "__context": "https://github.com/nRFCloud/models#Link",
            "__contextVersion": 1,
            "href": "https://foo.iot.us-east-1.amazonaws.com",
            "subject": "https://aws.amazon.com/iot-platform/",
            "rel": "production" 
        },
        {
            "__context": "https://github.com/nRFCloud/models#Link",
            "__contextVersion": 1,
            "href": "https://bar.execute-api.us-east-1.amazonaws.com/prod",
            "subject": "https://nrfcloud.com/",
            "rel": "production" 
        }
    ]
}

JSON Schema: ApiIndex.schema.json
Source: ApiIndex.ts

Link

Describes a link.

{
    "__context": "https://github.com/nRFCloud/models#Link",
    "__contextVersion": 1,
    "href": "https://api.nrfcloud.com/stage/custom-cards/foo/some-id",
    "subject": "https://github.com/nRFCloud/models#CustomCard",
    "rel": "next" 
}

JSON Schema: Link.schema.json
Source: Link.ts

Status

Describes the status of the system.

{
    "__context": "https://github.com/nRFCloud/models#Status",
    "__contextVersion": 1,
    "maintenance": false,
    "version": "1.0.0-beta.1",
    "time: "2017-10-02T11:05:46.793Z"
}

JSON Schema: Status.schema.json
Source: Status.ts

List

Describes a list.

{
    "__context": "https://github.com/NordicPlayground/nrfcloud-custom-cards-client#List",
    "__contextVersion": 1,
    items: [
        {
            "__context": "...",
            "__contextVersion": ...,
            ...
        }
    ],
    total: 1,
    links: [
        {
            "__context": "https://github.com/NordicPlayground/nrfcloud-custom-cards-client#Link",
            "__contextVersion": 1,
            "href": "...",
            "subject": "...",
            "rel": "next" 
        }
    ]
}

JSON Schema: Link.schema.json
Source: Link.ts

Errors

HttpProblem

All error responses are expressed using this message format. See https://datatracker.ietf.org/doc/draft-ietf-appsawg-http-problem/.

{
	"__context" : "https://www.ietf.org/id/draft-ietf-appsawg-http-problem-01.txt",
	"__contextVersion" : 1,
	"type" : "https://github.com/nRFCloud/models#EntityNotFoundError",
	"title" : "Entity not found",
	"status" : 404,
	"detail" : "EntityNotFoundError: Custom card \"foo\" does not exist!"
}

JSON Schema: HttpProblem.schema.json
Source: HttpProblem.ts

AccessDeniedError

Thrown if the access to a resource was denied.

BadRequestError

Thrown if the request was malformed.

EntityNotFoundError

Thrown if a requested resource could not be found.

InternalError

Thrown if an unexpected internal error happened.

Package Sidebar

Install

npm i @nrfcloud/models

Weekly Downloads

231

Version

1.5.0

License

BSD-3-Clause

Last publish

Collaborators

  • nate-sherrett
  • petteriv-nordic
  • toha-nordic
  • akolosov-nordic
  • melyea
  • gfleming-nordic
  • guckin
  • mdickensnordic
  • apkostka
  • semcc
  • patrick.barnes
  • markkulehto
  • colehafner
  • jayteemo
  • lpthomas
  • nrfcloud-ci
  • johnconley