Numina Graph API API Reference

Welcome to the Numina Graph API!

Numina Graph is a GraphQL API for accessing all kinds of Numina data and analytics. This tutorial will:

  • Cover high level concepts of the graph
  • Show you how to get started
  • Demo some data retrieval and analytics examples

If this is your first time working with GraphQL, you can get familiarized with the fundamentals here.

You can access the GraphQL endpoint at: https://api.numina.co/graphql

High Level Concepts

Numina-Graph provides access to two types of data:

  • Relational data
    • This includes static information about organizations, devices, and users
  • Analytical data
    • These are the metrics and other analytics produced by sensor inferences about the physical world

Users can issue GraphQL queries to learn about both types of data. In addition, mutations are used to authenticate and to configure certain types of relational data.

Key Terms

  • Device - A Numina sensor that monitors the physical world and makes inferences about the activities of various objects. Devices are identified by a unique serial number.
  • Object - A distinct thing that a Numina sensor can make inferences about.
  • Object Class - A category or type of object. Currently Numina-Graph supports the following object classes:
    • Pedestrian
    • Bicycle
    • Car
    • Bus
    • Truck
  • Behavior Zone - A user defined polygon used as a spatial filter for analytics queries. Polygons can have an arbitrary number of vertices.


Example of a Behavior Zone.

API Sandbox

Our API Sandbox is geared towards third-party developers interested in getting their feet wet with the Numina API by exploring real, street-level data. We have created a "sandbox" environment with ten days of real data from a sensor deployment in Downtown Brooklyn in New York City. This data includes:

  • pedestrian, car, bicycle, bus, truck data collected from a sensor positioned at the intersection of Fulton St and Hanover Pl in Downtown Brooklyn
    • Sensor coordinates: (40.688984, -73.9809795)
  • Data collected from 2019-01-10T00:00:00-0500 (EST) through 2019-01-20T00:00:00-0500

With this data, we hope that interested developers can understand how to perform data analyses on the impact of specific street-level phenomena (such as construction, weather, etc). If you're interested in this sandbox environment, please request access and check out our annotated blog post to see how you can leverage the Numina API to understand your streets better.

API Endpoints
Endpoint::
https://api.numina.co/graphql
Terms of Service: numina.co
Contact: api@numina.co
Version: 1.0.0

Authentication

Authentication Header

Numina-Graph uses JSON Web Tokens (JWT) to authenticate requests to our API. When you sign up with Numina, you will be given an account email and password to authenticate requests for your organization.

Example logIn mutation:

mutation {
  logIn(
      email:"you@youremail.com",
      password:"yourpassword") {
    jwt {
      token
      exp
    }
  }
}

To get a token, issue a logIn mutation (as a POST request) to the GraphQL endpoint with your username and password as parameters. If successful, the response will contain your token, as well as an expiry date and time. Tokens expire after 24 hours by default.

Example logIn response body:

{
  "data": {
    "logIn": {
      "jwt": {
        "exp": "2019-03-26T21:16:15.763782",
        "token": "alongtokenstring"
      }
    }
  }
}

Once you have a token, include the token value as the HTTP Authorization header in subsequent POST requests to authorize your queries and mutations.

Relational Data Queries

Queries

Users can query relational data that falls under the umbrella of their organization.

Example devices query:

query {
  devices {
    count
    edges {
      node {
        rawId
        name
        serialno
      }
    }
  }
}

For example, we can request information about any devices that belong to our organization. A number of different fields could be requested; here, we're requesting just the device name and serial number, as well as a rawId that can be used as a unique way to identify the device in other requests.

Send the following query as a POST request to the GraphQL endpoint:

Example devices query response body:

{
  "data": {
    "devices": {
      "count": 1,
      "edges": [
        {
          "node": {
            "name": "abc-12",
            "serialno": "NUM200B000S0001",
            "rawId": "39617ed712sd566babcac89jbdcc6f19"
          }
        }
      ]
    }
  }
}

organizations

name:
string

Filter for Organization objects where name contains this

alias:
string

Filter for Organization objects where alias equals this

Field and direction to sort by

before:
string

paginate results before cursor

after:
string

paginate results after cursor

first:
integer

get first n results

last:
integer

get last n results

Example

Request Content-Types: application/json
Query
query organizations($name: String, $alias: String, $sort: [OrganizationSortEnum], $before: String, $after: String, $first: Int, $last: Int){
  organizations(name: $name, alias: $alias, sort: $sort, before: $before, after: $after, first: $first, last: $last){
    count
  }
}
Variables
{
  "name": "string",
  "alias": "string",
  "sort": [
    "string"
  ],
  "before": "string",
  "after": "string",
  "first": "integer",
  "last": "integer"
}
Try it now
200 OK

Successful operation

Response Content-Types: application/json
Response Example (200 OK)
{
  "data": {
    "organizations": {
      "count": "integer"
    }
  }
}

devices

serialno:
string

Filter for Device objects where serialno equals this

name:
string

Filter for Device objects where name contains this

Field and direction to sort by

before:
string

paginate results before cursor

after:
string

paginate results after cursor

first:
integer

get first n results

last:
integer

get last n results

Example

Request Content-Types: application/json
Query
query devices($serialno: String, $name: String, $sort: [DeviceSortEnum], $before: String, $after: String, $first: Int, $last: Int){
  devices(serialno: $serialno, name: $name, sort: $sort, before: $before, after: $after, first: $first, last: $last){
    count
  }
}
Variables
{
  "serialno": "string",
  "name": "string",
  "sort": [
    "string"
  ],
  "before": "string",
  "after": "string",
  "first": "integer",
  "last": "integer"
}
Try it now
200 OK

Successful operation

Response Content-Types: application/json
Response Example (200 OK)
{
  "data": {
    "devices": {
      "count": "integer"
    }
  }
}

behaviorZones

serialnos:
string[]

Device serialno values

Field and direction to sort by

before:
string

paginate results before cursor

after:
string

paginate results after cursor

first:
integer

get first n results

last:
integer

get last n results

Example

Request Content-Types: application/json
Query
query behaviorZones($serialnos: [String], $sort: [BehaviorZoneSortEnum], $before: String, $after: String, $first: Int, $last: Int){
  behaviorZones(serialnos: $serialnos, sort: $sort, before: $before, after: $after, first: $first, last: $last){
    count
  }
}
Variables
{
  "serialnos": [
    "string"
  ],
  "sort": [
    "string"
  ],
  "before": "string",
  "after": "string",
  "first": "integer",
  "last": "integer"
}
Try it now
200 OK

Successful operation

Response Content-Types: application/json
Response Example (200 OK)
{
  "data": {
    "behaviorZones": {
      "count": "integer"
    }
  }
}

Relational Data Mutations

Mutations

Mutations allow you to update and delete relational data belonging to your organization, including modifying your organization, device, and Behavior Zone data.

Example updateDevice mutation:

mutation {
  updateDevice(
      deviceId:"d92d6xmayb324751b0c63f872nz08f95",
      device:{name: "abc-15"}) {
    device {
      rawId
      name
      serialno
    }
  }
}

In this example, we use the updateDevice mutation to edit the name of a given device. Here, the deviceId is the rawID obtained from the devices query in the previous section.

Example updateDevice response body:

{
  "data": {
    "updateDevice": {
      "device": {
        "name": "abc-15",
        "rawId": "d92d6xmayb324751b0c63f872nz08f95",
        "serialno": "NUM200B000S0001"
      }
    }
  }
}

The response reflects the updated device name, showing that our mutation was successful.

Example createBehaviorZone mutation:

mutation {
  createBehaviorZone(
    serialno:"NUM200B000S0001",
    demarcation:[[376,123],[459,94],[557,106],[543,185],[511,236],
    [473,265],[361,247],[347,184]],
  text: "My Zone") {
    behaviorZone {
      rawId
    }
  }
}

In this example, we use the createBehaviorZone mutation to create a new Behavior Zone for a device. The Behavior Zone is defined by a demarcation which is a set of [x,y] pixel coordinates of the zone's vertices. We also describe the Behavior Zone with a text description. Sandbox users can use our Behavior Zone Creator to design Behavior Zones visually.

Example createBehaviorZone response body:

{
  "data": {
    "createBehaviorZone": {
      "behaviorZone": {
        "rawId": 1770
      }
    }
  }
}

The response here provides the ID of the newly created Behavior Zone, which can be used in subsequent analytics queries as a spatial filter on the sensor data.

createBehaviorZone

color:
string

Line/fill color used when drawing behavior zone (default='red')

demarcation:
integer[][]

Coordinates (list of [x,y]) defining the shape of the behavior zone polygon on a 640x480 grid

serialno:
string

serialno of the device this behavior zone will belong to

text:
string

Descriptive text for the behavior zone

zoneType:
string

Type of behavior zone. Must be 'cpoly' or 'line' (default='cpoly')

Example

Request Content-Types: application/json
Query
mutation createBehaviorZone($color: String, $demarcation: [[Int]]!, $serialno: String!, $text: String, $zoneType: String){
  createBehaviorZone(color: $color, demarcation: $demarcation, serialno: $serialno, text: $text, zoneType: $zoneType){
  }
}
Variables
{
  "color": "string",
  "demarcation": [
    [
      "integer"
    ]
  ],
  "serialno": "string",
  "text": "string",
  "zoneType": "string"
}
Try it now
200 OK

Successful operation

Response Content-Types: application/json
Response Example (200 OK)
{
  "data": {
    "createBehaviorZone": {}
  }
}

updateBehaviorZone

color:
string

Line/fill color used when drawing behavior zone (default='red')

demarcation:
integer[][]

Coordinates (list of [x,y]) defining the shape of the behavior zone polygon on a 640x480 grid

text:
string

Descriptive text for the behavior zone

zoneId:
integer

rawId of the BehaviorZone object being updated

Example

Request Content-Types: application/json
Query
mutation updateBehaviorZone($color: String, $demarcation: [[Int]], $text: String, $zoneId: Int!){
  updateBehaviorZone(color: $color, demarcation: $demarcation, text: $text, zoneId: $zoneId){
  }
}
Variables
{
  "color": "string",
  "demarcation": [
    [
      "integer"
    ]
  ],
  "text": "string",
  "zoneId": "integer"
}
Try it now
200 OK

Successful operation

Response Content-Types: application/json
Response Example (200 OK)
{
  "data": {
    "updateBehaviorZone": {}
  }
}

deleteBehaviorZone

zoneId:
integer

rawId of the BehaviorZone object to be deleted

Example

Request Content-Types: application/json
Query
mutation deleteBehaviorZone($zoneId: Int!){
  deleteBehaviorZone(zoneId: $zoneId){
    success
  }
}
Variables
{
  "zoneId": "integer"
}
Try it now
200 OK

Successful operation

Response Content-Types: application/json
Response Example (200 OK)
{
  "data": {
    "deleteBehaviorZone": {
      "success": "string"
    }
  }
}

deleteDevice

deviceId:
string

rawId of device being deleted

Example

Request Content-Types: application/json
Query
mutation deleteDevice($deviceId: String!){
  deleteDevice(deviceId: $deviceId){
    success
  }
}
Variables
{
  "deviceId": "string"
}
Try it now
200 OK

Successful operation

Response Content-Types: application/json
Response Example (200 OK)
{
  "data": {
    "deleteDevice": {
      "success": "string"
    }
  }
}

updateDevice

device fields to be updated

deviceId:
string

rawId of device being updated

Example

Request Content-Types: application/json
Query
mutation updateDevice($device: UpdateDeviceInput!, $deviceId: String!){
  updateDevice(device: $device, deviceId: $deviceId){
  }
}
Variables
{
  "device": {
    "serialno": "string",
    "name": "string",
    "notes": "string",
    "tags": "string",
    "alias": "string",
    "status": "string",
    "orgId": "string"
  },
  "deviceId": "string"
}
Try it now
200 OK

Successful operation

Response Content-Types: application/json
Response Example (200 OK)
{
  "data": {
    "updateDevice": {}
  }
}

updateDeviceLocation

deviceId:
string

rawId of the Device object being updated

Device location data

Example

Request Content-Types: application/json
Query
mutation updateDeviceLocation($deviceId: String!, $location: SensorLocationInput!){
  updateDeviceLocation(deviceId: $deviceId, location: $location){
  }
}
Variables
{
  "deviceId": "string",
  "location": {
    "lat": "number",
    "lon": "number",
    "azi": "number",
    "zipcode": "string",
    "address": "string"
  }
}
Try it now
200 OK

Successful operation

Response Content-Types: application/json
Response Example (200 OK)
{
  "data": {
    "updateDeviceLocation": {}
  }
}

logIn

email:
string

User's email address

password:
string

User's password

Example

Request Content-Types: application/json
Query
mutation logIn($email: String!, $password: String!){
  logIn(email: $email, password: $password){
  }
}
Variables
{
  "email": "string",
  "password": "string"
}
Try it now
200 OK

Successful operation

Response Content-Types: application/json
Response Example (200 OK)
{
  "data": {
    "logIn": {}
  }
}

changePassword

confirmPassword:
string

Confirm new password

currentPassword:
string

Issuing user's password

newPassword:
string

New password for issuing user

Example

Request Content-Types: application/json
Query
mutation changePassword($confirmPassword: String!, $currentPassword: String!, $newPassword: String!){
  changePassword(confirmPassword: $confirmPassword, currentPassword: $currentPassword, newPassword: $newPassword){
  }
}
Variables
{
  "confirmPassword": "string",
  "currentPassword": "string",
  "newPassword": "string"
}
Try it now
200 OK

Successful operation

Response Content-Types: application/json
Response Example (200 OK)
{
  "data": {
    "changePassword": {}
  }
}

resetPassword

confirmPassword:
string

Confirm new password

newPassword:
string

New password for user

token:
string

Reset token, authenticates request

Example

Request Content-Types: application/json
Query
mutation resetPassword($confirmPassword: String!, $newPassword: String!, $token: String!){
  resetPassword(confirmPassword: $confirmPassword, newPassword: $newPassword, token: $token){
    email
  }
}
Variables
{
  "confirmPassword": "string",
  "newPassword": "string",
  "token": "string"
}
Try it now
200 OK

Successful operation

Response Content-Types: application/json
Response Example (200 OK)
{
  "data": {
    "resetPassword": {
      "email": "string"
    }
  }
}

Volume Count Analytics

Counts

Counts queries are used to get counts of objects that were observed in a given time interval.

Example feedCountMetrics query:

query {
  feedCountMetrics(
    serialnos:["NUM200B1234"],
    startTime:"2019-03-11T00:00:00",
    endTime:"2019-03-12T00:00:00",
    objClasses:["pedestrian"],
    timezone:"America/New_York",
    interval:"6h") {
    edges {
      node {
        serialno
        result
        objClass
        time
      }
    }
  }
}

In this example, we're using the feedCountMetrics query to find the number of pedestrians detected by a specified device on March 11, 2019, grouped by 6 hour intervals. Similarly, we could use the zoneCountMetrics query to get counts of objects in a Behavior Zone.

Example feedCountMetrics response body:

{
  "data": {
    "feedCountMetrics": {
      "edges": [
        {
          "node": {
            "objClass": "pedestrian",
            "result": 595.0,
            "serialno": "NUM200B000S0001",
            "time": "2019-03-11T00:00:00-04:00"
          }
        },
        {
          "node": {
            "objClass": "pedestrian",
            "result": 7479.0,
            "serialno": "NUM200B000S0001",
            "time": "2019-03-11T06:00:00-04:00"
          }
        },
        {
          "node": {
            "objClass": "pedestrian",
            "result": 28245.0,
            "serialno": "NUM200B000S0001",
            "time": "2019-03-11T12:00:00-04:00"
          }
        },
        {
          "node": {
            "objClass": "pedestrian",
            "result": 12146.0,
            "serialno": "NUM200B000S0001",
            "time": "2019-03-11T18:00:00-04:00"
          }
        }
      ]
    }
  }
}

The response body contains result sets for each 6 hour interval on March 11 - four intervals in total. Each interval is denoted by its start time.

feedCountMetrics

serialnos:
string[]

serialno values of Devices for which to compute metric

startTime:
object

Start of analysis time range in ISO format (e.g '2019-01-01T00:00:00)

endTime:
object

End of analysis time range in ISO format (e.g '2019-01-01T00:00:00)

interval:
string

Time interval to aggregate objects for metric, expects a string with an integer followed by an interval abbreviation (m:minutes, h:hour, d:day, w:week, mo:month,y:year) (e.g. '1h', '30m', '1d')

objClasses:
string[]

List of Object classes ('car', 'pedestrian', 'bus', 'truck', 'trash', 'dog')

timezone:
string

Timezone in tz format to localize time range and intervals (e.g. 'America/New_York')

dataVersion:

DataVersionEnum value for the data lake version to compute metrics with

before:
string

paginate results before cursor

after:
string

paginate results after cursor

first:
integer

get first n results

last:
integer

get last n results

Example

Request Content-Types: application/json
Query
query feedCountMetrics($serialnos: [String]!, $startTime: DateTime!, $endTime: DateTime!, $interval: String, $objClasses: [String]!, $timezone: String, $dataVersion: DataVersionEnum, $before: String, $after: String, $first: Int, $last: Int){
  feedCountMetrics(serialnos: $serialnos, startTime: $startTime, endTime: $endTime, interval: $interval, objClasses: $objClasses, timezone: $timezone, dataVersion: $dataVersion, before: $before, after: $after, first: $first, last: $last){
  }
}
Variables
{
  "serialnos": [
    "string"
  ],
  "interval": "string",
  "objClasses": [
    "string"
  ],
  "timezone": "string",
  "dataVersion": "string",
  "before": "string",
  "after": "string",
  "first": "integer",
  "last": "integer"
}
Try it now
200 OK

Successful operation

Response Content-Types: application/json
Response Example (200 OK)
{
  "data": {
    "feedCountMetrics": {}
  }
}

zoneCountMetrics

zoneIds:
integer[]

rawId values for BehaviorZone regions which objects intersect with. If multiple provided, objects must intersect with zone1 AND zone2 AND so on

startTime:
object

Start of analysis time range in ISO format (e.g '2019-01-01T00:00:00)

endTime:
object

End of analysis time range in ISO format (e.g '2019-01-01T00:00:00)

interval:
string

Time interval to aggregate objects for metric, expects a string with an integer followed by an interval abbreviation (m:minutes, h:hour, d:day, w:week, mo:month,y:year) (e.g. '1h', '30m', '1d')

objClasses:
string[]

List of Object classes ('car', 'pedestrian', 'bus', 'truck', 'trash', 'dog')

timezone:
string

Timezone in tz format to localize time range and intervals (e.g. 'America/New_York')

dataVersion:

DataVersionEnum value for the data lake version to compute metrics with

before:
string

paginate results before cursor

after:
string

paginate results after cursor

first:
integer

get first n results

last:
integer

get last n results

Example

Request Content-Types: application/json
Query
query zoneCountMetrics($zoneIds: [Int]!, $startTime: DateTime!, $endTime: DateTime!, $interval: String, $objClasses: [String]!, $timezone: String, $dataVersion: DataVersionEnum, $before: String, $after: String, $first: Int, $last: Int){
  zoneCountMetrics(zoneIds: $zoneIds, startTime: $startTime, endTime: $endTime, interval: $interval, objClasses: $objClasses, timezone: $timezone, dataVersion: $dataVersion, before: $before, after: $after, first: $first, last: $last){
  }
}
Variables
{
  "zoneIds": [
    "integer"
  ],
  "interval": "string",
  "objClasses": [
    "string"
  ],
  "timezone": "string",
  "dataVersion": "string",
  "before": "string",
  "after": "string",
  "first": "integer",
  "last": "integer"
}
Try it now
200 OK

Successful operation

Response Content-Types: application/json
Response Example (200 OK)
{
  "data": {
    "zoneCountMetrics": {}
  }
}

screenlineCountMetrics

zoneIds:
integer[]

rawId values for BehaviorZone regions which objects intersect with. If multiple provided, objects must intersect with zone1 AND zone2 AND so on

startTime:
object

Start of analysis time range in ISO format (e.g '2019-01-01T00:00:00)

endTime:
object

End of analysis time range in ISO format (e.g '2019-01-01T00:00:00)

interval:
string

Time interval to aggregate objects for metric, expects a string with an integer followed by an interval abbreviation (m:minutes, h:hour, d:day, w:week, mo:month,y:year) (e.g. '1h', '30m', '1d')

objClasses:
string[]

List of Object classes ('car', 'pedestrian', 'bus', 'truck', 'trash', 'dog')

timezone:
string

Timezone in tz format to localize time range and intervals (e.g. 'America/New_York')

dataVersion:

DataVersionEnum value for the data lake version to compute metrics with

before:
string

paginate results before cursor

after:
string

paginate results after cursor

first:
integer

get first n results

last:
integer

get last n results

Example

Request Content-Types: application/json
Query
query screenlineCountMetrics($zoneIds: [Int]!, $startTime: DateTime!, $endTime: DateTime!, $interval: String, $objClasses: [String]!, $timezone: String, $dataVersion: DataVersionEnum, $before: String, $after: String, $first: Int, $last: Int){
  screenlineCountMetrics(zoneIds: $zoneIds, startTime: $startTime, endTime: $endTime, interval: $interval, objClasses: $objClasses, timezone: $timezone, dataVersion: $dataVersion, before: $before, after: $after, first: $first, last: $last){
  }
}
Variables
{
  "zoneIds": [
    "integer"
  ],
  "interval": "string",
  "objClasses": [
    "string"
  ],
  "timezone": "string",
  "dataVersion": "string",
  "before": "string",
  "after": "string",
  "first": "integer",
  "last": "integer"
}
Try it now
200 OK

Successful operation

Response Content-Types: application/json
Response Example (200 OK)
{
  "data": {
    "screenlineCountMetrics": {}
  }
}

Behavior Analytics

Heatmaps

A heatmap is an array of values representing the spatial distribution of activity levels. Numina-Graph provides heatmaps of object counts that can be used to visualize what paths objects travel within the sensing area.

Example feedHeatmaps query:

query {
  feedHeatmaps(
    serialno: "NUM200B000S0001",
    startTime:"2019-05-01T00:00:00",
    endTime:"2019-05-02T00:00:00",
    objClasses:["pedestrian"],
    timezone:"America/New_York") {
    edges {
      node {
        time
        objClass
        heatmap
      }
    }
  }
}

In this example, we're using the feedHeatmaps query to determine where pedestrian travel is concentrated over the course of a single day. Similarly, the zoneHeatmaps query can be used to get heatmaps of objects in a Behavior Zone.

Example feedHeatmaps response body:

{
  "data": {
    "feedHeatmaps": {
      "edges": [
        {
        "node": {
          "heatmap": [
            [244,60,0.204],
            [246,60,0.204],
            [247,60,0.408],
            [239,61,0.322],
            ...
            ],
          "objClass": "pedestrian"
          }
        }
      ]
    }
  }
}

The heatmap data in the response is an array of coordinate-value tuples, in the form [x,y,value] where x and y are the horizontal and vertical pixel coordinates (top-left origin) for a 640x480 image.

feedHeatmaps

serialno:
string

serialno value of Device for which to compute heatmap

startTime:
object

serialno value of Device for which to compute heatmap

endTime:
object

End of analysis time range in ISO format (e.g '2019-01-01T00:00:00)

timezone:
string

Timezone in tz format to localize time range and intervals (e.g. 'America/New_York')

objClasses:
string[]

List of Object classes ('car', 'pedestrian', 'bus', 'truck', 'trash', 'dog')

samplePercent:
number

Percent of objects to sample for heatmap (e.g. 0.1, 10.5, 25)

days:
integer[]

Integer value for days of the week to filter objects (e.g. 1, 2, 3, 4, 5, 6, 7)

TrendWindowEnum value for the window of time to compute trend over (e.g. 'MORNING_COMMUTE')

dataVersion:

DataVersionEnum value for the data lake version to compute metrics with

before:
string

paginate results before cursor

after:
string

paginate results after cursor

first:
integer

get first n results

last:
integer

get last n results

Example

Request Content-Types: application/json
Query
query feedHeatmaps($serialno: String!, $startTime: DateTime!, $endTime: DateTime!, $timezone: String, $objClasses: [String]!, $samplePercent: Float, $days: [Int], $window: TrendWindowEnum, $dataVersion: DataVersionEnum, $before: String, $after: String, $first: Int, $last: Int){
  feedHeatmaps(serialno: $serialno, startTime: $startTime, endTime: $endTime, timezone: $timezone, objClasses: $objClasses, samplePercent: $samplePercent, days: $days, window: $window, dataVersion: $dataVersion, before: $before, after: $after, first: $first, last: $last){
  }
}
Variables
{
  "serialno": "string",
  "timezone": "string",
  "objClasses": [
    "string"
  ],
  "samplePercent": "number",
  "days": [
    "integer"
  ],
  "window": "string",
  "dataVersion": "string",
  "before": "string",
  "after": "string",
  "first": "integer",
  "last": "integer"
}
Try it now
200 OK

Successful operation

Response Content-Types: application/json
Response Example (200 OK)
{
  "data": {
    "feedHeatmaps": {}
  }
}

zoneHeatmaps

zoneIds:
integer[]

rawId values of BehaviorZone objects

startTime:
object

Start of analysis time range in ISO format (e.g '2019-01-01T00:00:00)

endTime:
object

End of analysis time range in ISO format (e.g '2019-01-01T00:00:00)

objClasses:
string[]

List of Object classes ('car', 'pedestrian', 'bus', 'truck', 'trash', 'dog')

timezone:
string

Timezone in tz format to localize time range and intervals (e.g. 'America/New_York')

samplePercent:
number

Percent of objects to sample for heatmap (e.g. 0.1, 10.5, 25)

days:
integer[]

Integer value for days of the week to filter objects (e.g. 1, 2, 3, 4, 5, 6, 7)

TrendWindowEnum value for the window of time to compute trend over (e.g. 'MORNING_COMMUTE')

dataVersion:

DataVersionEnum value for the data lake version to compute metrics with

before:
string

paginate results before cursor

after:
string

paginate results after cursor

first:
integer

get first n results

last:
integer

get last n results

Example

Request Content-Types: application/json
Query
query zoneHeatmaps($zoneIds: [Int]!, $startTime: DateTime!, $endTime: DateTime!, $objClasses: [String]!, $timezone: String, $samplePercent: Float, $days: [Int], $window: TrendWindowEnum, $dataVersion: DataVersionEnum, $before: String, $after: String, $first: Int, $last: Int){
  zoneHeatmaps(zoneIds: $zoneIds, startTime: $startTime, endTime: $endTime, objClasses: $objClasses, timezone: $timezone, samplePercent: $samplePercent, days: $days, window: $window, dataVersion: $dataVersion, before: $before, after: $after, first: $first, last: $last){
  }
}
Variables
{
  "zoneIds": [
    "integer"
  ],
  "objClasses": [
    "string"
  ],
  "timezone": "string",
  "samplePercent": "number",
  "days": [
    "integer"
  ],
  "window": "string",
  "dataVersion": "string",
  "before": "string",
  "after": "string",
  "first": "integer",
  "last": "integer"
}
Try it now
200 OK

Successful operation

Response Content-Types: application/json
Response Example (200 OK)
{
  "data": {
    "zoneHeatmaps": {}
  }
}

Occupancy Analytics

Volume Count queries

maxOccupancy

serialnos:
string[]

serialno values of Devices for which to compute metric

startTime:
object

Start of analysis time range in ISO format (e.g '2019-01-01T00:00:00)

endTime:
object

End of analysis time range in ISO format (e.g '2019-01-01T00:00:00)

interval:
string

Time interval to aggregate objects for metric, expects a string with an integer followed by an interval abbreviation (m:minutes, h:hour, d:day, w:week, mo:month,y:year) (e.g. '1h', '30m', '1d')

objClasses:
string[]

List of Object classes ('car', 'pedestrian', 'bus', 'truck', 'trash', 'dog')

timezone:
string

Timezone in tz format to localize time range and intervals (e.g. 'America/New_York')

dataVersion:

DataVersionEnum value for the data lake version to compute metrics with

before:
string

paginate results before cursor

after:
string

paginate results after cursor

first:
integer

get first n results

last:
integer

get last n results

Example

Request Content-Types: application/json
Query
query maxOccupancy($serialnos: [String]!, $startTime: DateTime!, $endTime: DateTime!, $interval: String, $objClasses: [String]!, $timezone: String, $dataVersion: DataVersionEnum, $before: String, $after: String, $first: Int, $last: Int){
  maxOccupancy(serialnos: $serialnos, startTime: $startTime, endTime: $endTime, interval: $interval, objClasses: $objClasses, timezone: $timezone, dataVersion: $dataVersion, before: $before, after: $after, first: $first, last: $last){
  }
}
Variables
{
  "serialnos": [
    "string"
  ],
  "interval": "string",
  "objClasses": [
    "string"
  ],
  "timezone": "string",
  "dataVersion": "string",
  "before": "string",
  "after": "string",
  "first": "integer",
  "last": "integer"
}
Try it now
200 OK

Successful operation

Response Content-Types: application/json
Response Example (200 OK)
{
  "data": {
    "maxOccupancy": {}
  }
}

zoneMaxOccupancy

zoneIds:
integer[]

rawId values of BehaviorZone objects

startTime:
object

Start of analysis time range in ISO format (e.g '2019-01-01T00:00:00)

endTime:
object

End of analysis time range in ISO format (e.g '2019-01-01T00:00:00)

interval:
string

Time interval to aggregate objects for metric, expects a string with an integer followed by an interval abbreviation (m:minutes, h:hour, d:day, w:week, mo:month,y:year) (e.g. '1h', '30m', '1d')

objClasses:
string[]

List of Object classes ('car', 'pedestrian', 'bus', 'truck', 'trash', 'dog')

timezone:
string

Timezone in tz format to localize time range and intervals (e.g. 'America/New_York')

dataVersion:

DataVersionEnum value for the data lake version to compute metrics with

before:
string

paginate results before cursor

after:
string

paginate results after cursor

first:
integer

get first n results

last:
integer

get last n results

Example

Request Content-Types: application/json
Query
query zoneMaxOccupancy($zoneIds: [Int]!, $startTime: DateTime!, $endTime: DateTime!, $interval: String, $objClasses: [String]!, $timezone: String, $dataVersion: DataVersionEnum, $before: String, $after: String, $first: Int, $last: Int){
  zoneMaxOccupancy(zoneIds: $zoneIds, startTime: $startTime, endTime: $endTime, interval: $interval, objClasses: $objClasses, timezone: $timezone, dataVersion: $dataVersion, before: $before, after: $after, first: $first, last: $last){
  }
}
Variables
{
  "zoneIds": [
    "integer"
  ],
  "interval": "string",
  "objClasses": [
    "string"
  ],
  "timezone": "string",
  "dataVersion": "string",
  "before": "string",
  "after": "string",
  "first": "integer",
  "last": "integer"
}
Try it now
200 OK

Successful operation

Response Content-Types: application/json
Response Example (200 OK)
{
  "data": {
    "zoneMaxOccupancy": {}
  }
}

recentMaxOccupancy

serialno:
string

serialno values of Devices for which to compute metric

startTime:
object

Start of analysis time range in ISO format (e.g '2019-01-01T00:00:00)

endTime:
object

End of analysis time range in ISO format (e.g '2019-01-01T00:00:00)

interval:
string

Time interval to aggregate objects for metric, expects a string with an integer followed by an interval abbreviation (m:minutes, h:hour, d:day, w:week, mo:month,y:year) (e.g. '1h', '30m', '1d')

objClass:
string

List of Object classes ('car', 'pedestrian', 'bus', 'truck', 'trash', 'dog')

timezone:
string

Timezone in tz format to localize time range and intervals (e.g. 'America/New_York')

before:
string

paginate results before cursor

after:
string

paginate results after cursor

first:
integer

get first n results

last:
integer

get last n results

Example

Request Content-Types: application/json
Query
query recentMaxOccupancy($serialno: String!, $startTime: DateTime!, $endTime: DateTime!, $interval: String, $objClass: String!, $timezone: String, $before: String, $after: String, $first: Int, $last: Int){
  recentMaxOccupancy(serialno: $serialno, startTime: $startTime, endTime: $endTime, interval: $interval, objClass: $objClass, timezone: $timezone, before: $before, after: $after, first: $first, last: $last){
  }
}
Variables
{
  "serialno": "string",
  "interval": "string",
  "objClass": "string",
  "timezone": "string",
  "before": "string",
  "after": "string",
  "first": "integer",
  "last": "integer"
}
Try it now
200 OK

Successful operation

Response Content-Types: application/json
Response Example (200 OK)
{
  "data": {
    "recentMaxOccupancy": {}
  }
}

Dwell Analytics

Dwell Analytics

zoneDwellTimeDistribution

zoneIds:
integer[]

rawId values for BehaviorZone regions which objects intersect with. If multiple provided, objects must intersect with zone1 AND zone2 AND so on

startTime:
object

Start of analysis time range in ISO format (e.g '2019-01-01T00:00:00)

endTime:
object

End of analysis time range in ISO format (e.g '2019-01-01T00:00:00)

timezone:
string

Timezone in tz format to localize time range and intervals (e.g. 'America/New_York')

objClasses:
string[]

List of Object classes ('car', 'pedestrian', 'bus', 'truck', 'trash', 'dog')

interval:
string

Time interval to aggregate objects for metric, expects a string with an integer followed by an interval abbreviation (m:minutes, h:hour, d:day, w:week, mo:month,y:year) (e.g. '1h', '30m', '1d')

dataVersion:

DataVersionEnum value for the data lake version to compute metrics with

before:
string

paginate results before cursor

after:
string

paginate results after cursor

first:
integer

get first n results

last:
integer

get last n results

Example

Request Content-Types: application/json
Query
query zoneDwellTimeDistribution($zoneIds: [Int]!, $startTime: DateTime!, $endTime: DateTime!, $timezone: String, $objClasses: [String]!, $interval: String, $dataVersion: DataVersionEnum, $before: String, $after: String, $first: Int, $last: Int){
  zoneDwellTimeDistribution(zoneIds: $zoneIds, startTime: $startTime, endTime: $endTime, timezone: $timezone, objClasses: $objClasses, interval: $interval, dataVersion: $dataVersion, before: $before, after: $after, first: $first, last: $last){
  }
}
Variables
{
  "zoneIds": [
    "integer"
  ],
  "timezone": "string",
  "objClasses": [
    "string"
  ],
  "interval": "string",
  "dataVersion": "string",
  "before": "string",
  "after": "string",
  "first": "integer",
  "last": "integer"
}
Try it now
200 OK

Successful operation

Response Content-Types: application/json
Response Example (200 OK)
{
  "data": {
    "zoneDwellTimeDistribution": {}
  }
}

feedDwellTimeDistribution

serialnos:
string[]

serialno values of Devices for which to compute metric

startTime:
object

Start of analysis time range in ISO format (e.g '2019-01-01T00:00:00)

endTime:
object

End of analysis time range in ISO format (e.g '2019-01-01T00:00:00)

timezone:
string

Timezone in tz format to localize time range and intervals (e.g. 'America/New_York')

objClasses:
string[]

List of Object classes ('car', 'pedestrian', 'bus', 'truck', 'trash', 'dog')

interval:
string

Time interval to aggregate objects for metric, expects a string with an integer followed by an interval abbreviation (m:minutes, h:hour, d:day, w:week, mo:month,y:year) (e.g. '1h', '30m', '1d')

dataVersion:

DataVersionEnum value for the data lake version to compute metrics with

before:
string

paginate results before cursor

after:
string

paginate results after cursor

first:
integer

get first n results

last:
integer

get last n results

Example

Request Content-Types: application/json
Query
query feedDwellTimeDistribution($serialnos: [String]!, $startTime: DateTime!, $endTime: DateTime!, $timezone: String, $objClasses: [String]!, $interval: String, $dataVersion: DataVersionEnum, $before: String, $after: String, $first: Int, $last: Int){
  feedDwellTimeDistribution(serialnos: $serialnos, startTime: $startTime, endTime: $endTime, timezone: $timezone, objClasses: $objClasses, interval: $interval, dataVersion: $dataVersion, before: $before, after: $after, first: $first, last: $last){
  }
}
Variables
{
  "serialnos": [
    "string"
  ],
  "timezone": "string",
  "objClasses": [
    "string"
  ],
  "interval": "string",
  "dataVersion": "string",
  "before": "string",
  "after": "string",
  "first": "integer",
  "last": "integer"
}
Try it now
200 OK

Successful operation

Response Content-Types: application/json
Response Example (200 OK)
{
  "data": {
    "feedDwellTimeDistribution": {}
  }
}

Schema Definitions

ABCompareBlockInput: object

The A and B Analysis Blocks to use for comparison.

a:

Analysis Block A

b:

Analysis Block B

objClasses:

Object Classes

aTitle:

An optional title to provide to the A analysis block to describe it's content.

bTitle:

An optional title to provide to the B analysis block to describe it's content.

Example
{
  "a": {
    "zone": "string",
    "objClasses": [
      "string"
    ],
    "filterStartTime": "object",
    "filterEndTime": "object"
  },
  "b": {
    "zone": "string",
    "objClasses": [
      "string"
    ],
    "filterStartTime": "object",
    "filterEndTime": "object"
  },
  "objClasses": [
    "string"
  ],
  "aTitle": "object",
  "bTitle": "object"
}

AdminLogInMutation: object

Admin-only mutation to log into internal services. (admin-only)

user:
object

User object for given credentials

return:
arguments:
object
jwt:
object

JWTToken object containing auth token info

return:
arguments:
object
Example
{
  "user": {
    "return": {
      "id": {
        "return": "object",
        "arguments": {}
      },
      "email": {
        "return": "string",
        "arguments": {}
      },
      "name": {
        "return": "string",
        "arguments": {}
      },
      "orgId": {
        "return": "string",
        "arguments": {}
      },
      "joined": {
        "return": "object",
        "arguments": {}
      },
      "position": {
        "return": "string",
        "arguments": {}
      },
      "admin": {
        "return": "boolean",
        "arguments": {}
      },
      "apiKey": {
        "return": "string",
        "arguments": {}
      },
      "authLevel": {
        "return": "string",
        "arguments": {}
      },
      "phone": {
        "return": "string",
        "arguments": {}
      },
      "lowerEmail": {
        "return": "string",
        "arguments": {}
      },
      "organization": {
        "return": {
          "id": {
            "return": "object",
            "arguments": {}
          },
          "name": {
            "return": "string",
            "arguments": {}
          },
          "joined": {
            "return": "object",
            "arguments": {}
          },
          "timezone": {
            "return": "string",
            "arguments": {}
          },
          "zoomLevel": {
            "return": "number",
            "arguments": {}
          },
          "orgLat": {
            "return": "number",
            "arguments": {}
          },
          "orgLon": {
            "return": "number",
            "arguments": {}
          },
          "alias": {
            "return": "string",
            "arguments": {}
          },
          "orgId": {
            "return": "string",
            "arguments": {}
          },
          "devices": {
            "return": {
              "pageInfo": {
                "return": {
                  "hasNextPage": {
                    "return": "boolean",
                    "arguments": {}
                  },
                  "hasPreviousPage": {
                    "return": "boolean"
                  }
                }
              }
            }
          }
        }
      }
    }
  }
}

AdminUpdateUserMutation: object

A mutation for admins to update data pertaining to a User object in the Numina database. Includes changing user organization and admin status. (admin-only)

user:
object
return:
arguments:
object
Example
{
  "user": {
    "return": {
      "id": {
        "return": "object",
        "arguments": {}
      },
      "email": {
        "return": "string",
        "arguments": {}
      },
      "name": {
        "return": "string",
        "arguments": {}
      },
      "orgId": {
        "return": "string",
        "arguments": {}
      },
      "joined": {
        "return": "object",
        "arguments": {}
      },
      "position": {
        "return": "string",
        "arguments": {}
      },
      "admin": {
        "return": "boolean",
        "arguments": {}
      },
      "apiKey": {
        "return": "string",
        "arguments": {}
      },
      "authLevel": {
        "return": "string",
        "arguments": {}
      },
      "phone": {
        "return": "string",
        "arguments": {}
      },
      "lowerEmail": {
        "return": "string",
        "arguments": {}
      },
      "organization": {
        "return": {
          "id": {
            "return": "object",
            "arguments": {}
          },
          "name": {
            "return": "string",
            "arguments": {}
          },
          "joined": {
            "return": "object",
            "arguments": {}
          },
          "timezone": {
            "return": "string",
            "arguments": {}
          },
          "zoomLevel": {
            "return": "number",
            "arguments": {}
          },
          "orgLat": {
            "return": "number",
            "arguments": {}
          },
          "orgLon": {
            "return": "number",
            "arguments": {}
          },
          "alias": {
            "return": "string",
            "arguments": {}
          },
          "orgId": {
            "return": "string",
            "arguments": {}
          },
          "devices": {
            "return": {
              "pageInfo": {
                "return": {
                  "hasNextPage": {
                    "return": "boolean",
                    "arguments": {}
                  },
                  "hasPreviousPage": {
                    "return": "boolean"
                  }
                }
              }
            }
          }
        }
      }
    }
  }
}

AnalysisBlockInput: object

The set of parameters required for creating a subsection of a report.

zone:

Zone Name

objClasses:

Object Classes

filterStartTime:

Filter Start Time

filterEndTime:

Filter End Time

Example
{
  "zone": "string",
  "objClasses": [
    "string"
  ],
  "filterStartTime": "object",
  "filterEndTime": "object"
}

BehaviorZone: object

A spatial region defined on a Numina sensor device's field of view, used for filtering and analysis of street-level movement.

zoneType:
object

Type of behaviorzone: cpoly, which means polygon, or line, which means line

return:
arguments:
object
id:
object

The ID of the object.

return:
ID
arguments:
object
demarcation:
object

Coordinates (list of [x,y]) defining the shape of the behavior zone polygon on a 640x480 grid

return:
object[][]
arguments:
object
feedId:
object

Database id of the Feed object this BehaviorZone belongs to.

return:
arguments:
object
text:
object

Text describing the behavior zone

return:
arguments:
object
color:
object

Color selected by the user when drawing the behavior zone

return:
arguments:
object
isCoverageZone:
object

Acts as the coverage zone for the linked Feed

return:
arguments:
object
feed:
object
return:
arguments:
object
rawId:
object

Database ID for this object

return:
Int
arguments:
object
Example
{
  "zoneType": {
    "return": "string",
    "arguments": {}
  },
  "id": {
    "return": "object",
    "arguments": {}
  },
  "demarcation": {
    "return": [
      [
        "number"
      ]
    ],
    "arguments": {}
  },
  "feedId": {
    "return": "string",
    "arguments": {}
  },
  "text": {
    "return": "string",
    "arguments": {}
  },
  "color": {
    "return": "string",
    "arguments": {}
  },
  "isCoverageZone": {
    "return": "boolean",
    "arguments": {}
  },
  "feed": {
    "return": {
      "id": {
        "return": "object",
        "arguments": {}
      },
      "name": {
        "return": "string",
        "arguments": {}
      },
      "created": {
        "return": "object",
        "arguments": {}
      },
      "description": {
        "return": "string",
        "arguments": {}
      },
      "device": {
        "return": {
          "id": {
            "return": "object",
            "arguments": {}
          },
          "serialno": {
            "return": "string",
            "arguments": {}
          },
          "name": {
            "return": "string",
            "arguments": {}
          },
          "alias": {
            "return": "string",
            "arguments": {}
          },
          "tags": {
            "return": "string",
            "arguments": {}
          },
          "notes": {
            "return": "string",
            "arguments": {}
          },
          "status": {
            "return": "string",
            "arguments": {}
          },
          "created": {
            "return": "object",
            "arguments": {}
          },
          "orgId": {
            "return": "string",
            "arguments": {}
          },
          "locationId": {
            "return": "string",
            "arguments": {}
          },
          "feedId": {
            "return": "string",
            "arguments": {}
          },
          "samplingRate": {
            "return": "string"
          }
        }
      }
    }
  }
}

BehaviorZoneConnection: object

pageInfo:
object

Pagination data for this connection.

return:
arguments:
object
edges:
object

Contains the nodes in this connection.

return:
arguments:
object
Example
{
  "pageInfo": {
    "return": {
      "hasNextPage": {
        "return": "boolean",
        "arguments": {}
      },
      "hasPreviousPage": {
        "return": "boolean",
        "arguments": {}
      },
      "startCursor": {
        "return": "string",
        "arguments": {}
      },
      "endCursor": {
        "return": "string",
        "arguments": {}
      }
    },
    "arguments": {}
  },
  "edges": {
    "return": [
      {
        "node": {
          "return": {
            "zoneType": {
              "return": "string",
              "arguments": {}
            },
            "id": {
              "return": "object",
              "arguments": {}
            },
            "demarcation": {
              "return": [
                [
                  "number"
                ]
              ],
              "arguments": {}
            },
            "feedId": {
              "return": "string",
              "arguments": {}
            },
            "text": {
              "return": "string",
              "arguments": {}
            },
            "color": {
              "return": "string",
              "arguments": {}
            },
            "isCoverageZone": {
              "return": "boolean",
              "arguments": {}
            },
            "feed": {
              "return": {
                "id": {
                  "return": "object",
                  "arguments": {}
                },
                "name": {
                  "return": "string",
                  "arguments": {}
                },
                "created": {
                  "return": "object",
                  "arguments": {}
                },
                "description": {
                  "return": "string",
                  "arguments": {}
                },
                "device": {
                  "return": {
                    "id": {
                      "return": "object",
                      "arguments": {}
                    },
                    "serialno": {
                      "return": "string",
                      "arguments": {}
                    },
                    "name": {
                      "return": "string",
                      "arguments": {}
                    },
                    "alias": {
                      "return": "string",
                      "arguments": {}
                    },
                    "tags": {
                      "return": "string",
                      "arguments": {}
                    }
                  }
                }
              }
            }
          }
        }
      }
    ]
  }
}

BehaviorZoneEdge: object

A Relay edge containing a BehaviorZone and its cursor.

node:
object

The item at the end of the edge

return:
arguments:
object
cursor:
object

A cursor for use in pagination

return:
arguments:
object
Example
{
  "node": {
    "return": {
      "zoneType": {
        "return": "string",
        "arguments": {}
      },
      "id": {
        "return": "object",
        "arguments": {}
      },
      "demarcation": {
        "return": [
          [
            "number"
          ]
        ],
        "arguments": {}
      },
      "feedId": {
        "return": "string",
        "arguments": {}
      },
      "text": {
        "return": "string",
        "arguments": {}
      },
      "color": {
        "return": "string",
        "arguments": {}
      },
      "isCoverageZone": {
        "return": "boolean",
        "arguments": {}
      },
      "feed": {
        "return": {
          "id": {
            "return": "object",
            "arguments": {}
          },
          "name": {
            "return": "string",
            "arguments": {}
          },
          "created": {
            "return": "object",
            "arguments": {}
          },
          "description": {
            "return": "string",
            "arguments": {}
          },
          "device": {
            "return": {
              "id": {
                "return": "object",
                "arguments": {}
              },
              "serialno": {
                "return": "string",
                "arguments": {}
              },
              "name": {
                "return": "string",
                "arguments": {}
              },
              "alias": {
                "return": "string",
                "arguments": {}
              },
              "tags": {
                "return": "string",
                "arguments": {}
              },
              "notes": {
                "return": "string",
                "arguments": {}
              },
              "status": {
                "return": "string",
                "arguments": {}
              },
              "created": {
                "return": "object",
                "arguments": {}
              },
              "orgId": {
                "return": "string",
                "arguments": {}
              },
              "locationId": {
                "return": "string",
                "arguments": {}
              },
              "feedId": {
                "return": "string",
                "arguments": {}
              }
            }
          }
        }
      }
    }
  }
}

BehaviorZoneSortEnum: string

An enumeration.

object
TYPE_ASC
object
TYPE_DESC
object
ID_ASC
object
ID_DESC
object
DEMARCATION_ASC
object
DEMARCATION_DESC
object
FEED_ID_ASC
object
FEED_ID_DESC
object
TEXT_ASC
object
TEXT_DESC
object
COLOR_ASC
object
COLOR_DESC
object
IS_COVERAGE_ZONE_ASC
object
IS_COVERAGE_ZONE_DESC

BehaviorZonesConnection: object

Connection to BehaviorZone nodes

pageInfo:
object

Pagination data for this connection.

return:
arguments:
object
edges:
object

Contains the nodes in this connection.

return:
arguments:
object
count:
object

Number of BehaviorZone nodes

return:
Int
arguments:
object
Example
{
  "pageInfo": {
    "return": {
      "hasNextPage": {
        "return": "boolean",
        "arguments": {}
      },
      "hasPreviousPage": {
        "return": "boolean",
        "arguments": {}
      },
      "startCursor": {
        "return": "string",
        "arguments": {}
      },
      "endCursor": {
        "return": "string",
        "arguments": {}
      }
    },
    "arguments": {}
  },
  "edges": {
    "return": [
      {
        "node": {
          "return": {
            "zoneType": {
              "return": "string",
              "arguments": {}
            },
            "id": {
              "return": "object",
              "arguments": {}
            },
            "demarcation": {
              "return": [
                [
                  "number"
                ]
              ],
              "arguments": {}
            },
            "feedId": {
              "return": "string",
              "arguments": {}
            },
            "text": {
              "return": "string",
              "arguments": {}
            },
            "color": {
              "return": "string",
              "arguments": {}
            },
            "isCoverageZone": {
              "return": "boolean",
              "arguments": {}
            },
            "feed": {
              "return": {
                "id": {
                  "return": "object",
                  "arguments": {}
                },
                "name": {
                  "return": "string",
                  "arguments": {}
                },
                "created": {
                  "return": "object",
                  "arguments": {}
                },
                "description": {
                  "return": "string",
                  "arguments": {}
                },
                "device": {
                  "return": {
                    "id": {
                      "return": "object",
                      "arguments": {}
                    },
                    "serialno": {
                      "return": "string",
                      "arguments": {}
                    },
                    "name": {
                      "return": "string",
                      "arguments": {}
                    },
                    "alias": {
                      "return": "string",
                      "arguments": {}
                    },
                    "tags": {
                      "return": "string",
                      "arguments": {}
                    }
                  }
                }
              }
            }
          }
        }
      }
    ]
  }
}

BehaviorZonesEdge: object

A Relay edge containing a BehaviorZones and its cursor.

node:
object

The item at the end of the edge

return:
arguments:
object
cursor:
object

A cursor for use in pagination

return:
arguments:
object
Example
{
  "node": {
    "return": {
      "zoneType": {
        "return": "string",
        "arguments": {}
      },
      "id": {
        "return": "object",
        "arguments": {}
      },
      "demarcation": {
        "return": [
          [
            "number"
          ]
        ],
        "arguments": {}
      },
      "feedId": {
        "return": "string",
        "arguments": {}
      },
      "text": {
        "return": "string",
        "arguments": {}
      },
      "color": {
        "return": "string",
        "arguments": {}
      },
      "isCoverageZone": {
        "return": "boolean",
        "arguments": {}
      },
      "feed": {
        "return": {
          "id": {
            "return": "object",
            "arguments": {}
          },
          "name": {
            "return": "string",
            "arguments": {}
          },
          "created": {
            "return": "object",
            "arguments": {}
          },
          "description": {
            "return": "string",
            "arguments": {}
          },
          "device": {
            "return": {
              "id": {
                "return": "object",
                "arguments": {}
              },
              "serialno": {
                "return": "string",
                "arguments": {}
              },
              "name": {
                "return": "string",
                "arguments": {}
              },
              "alias": {
                "return": "string",
                "arguments": {}
              },
              "tags": {
                "return": "string",
                "arguments": {}
              },
              "notes": {
                "return": "string",
                "arguments": {}
              },
              "status": {
                "return": "string",
                "arguments": {}
              },
              "created": {
                "return": "object",
                "arguments": {}
              },
              "orgId": {
                "return": "string",
                "arguments": {}
              },
              "locationId": {
                "return": "string",
                "arguments": {}
              },
              "feedId": {
                "return": "string",
                "arguments": {}
              }
            }
          }
        }
      }
    }
  }
}

Boolean: boolean

The Boolean scalar type represents true or false.

Example
boolean

ChangePasswordMutation: object

Allows users to change their own password, provided they know their current password.

user:
object

The issuing user's User object, upon success

return:
arguments:
object
Example
{
  "user": {
    "return": {
      "id": {
        "return": "object",
        "arguments": {}
      },
      "email": {
        "return": "string",
        "arguments": {}
      },
      "name": {
        "return": "string",
        "arguments": {}
      },
      "orgId": {
        "return": "string",
        "arguments": {}
      },
      "joined": {
        "return": "object",
        "arguments": {}
      },
      "position": {
        "return": "string",
        "arguments": {}
      },
      "admin": {
        "return": "boolean",
        "arguments": {}
      },
      "apiKey": {
        "return": "string",
        "arguments": {}
      },
      "authLevel": {
        "return": "string",
        "arguments": {}
      },
      "phone": {
        "return": "string",
        "arguments": {}
      },
      "lowerEmail": {
        "return": "string",
        "arguments": {}
      },
      "organization": {
        "return": {
          "id": {
            "return": "object",
            "arguments": {}
          },
          "name": {
            "return": "string",
            "arguments": {}
          },
          "joined": {
            "return": "object",
            "arguments": {}
          },
          "timezone": {
            "return": "string",
            "arguments": {}
          },
          "zoomLevel": {
            "return": "number",
            "arguments": {}
          },
          "orgLat": {
            "return": "number",
            "arguments": {}
          },
          "orgLon": {
            "return": "number",
            "arguments": {}
          },
          "alias": {
            "return": "string",
            "arguments": {}
          },
          "orgId": {
            "return": "string",
            "arguments": {}
          },
          "devices": {
            "return": {
              "pageInfo": {
                "return": {
                  "hasNextPage": {
                    "return": "boolean",
                    "arguments": {}
                  },
                  "hasPreviousPage": {
                    "return": "boolean"
                  }
                }
              }
            }
          }
        }
      }
    }
  }
}

CheckSensorStatus: object

Message defining desired sensor status - not implemented on sensor until restart mode takes one of two values, configuration or operation

status:
object

Serial No. of sensor to change mode

return:
arguments:
object
mode:
object

Serial No. of sensor to change mode

return:
arguments:
object
version:
object

Current software version of sensor

return:
arguments:
object
Example
{
  "status": {
    "return": "string",
    "arguments": {}
  },
  "mode": {
    "return": "string",
    "arguments": {}
  },
  "version": {
    "return": "string",
    "arguments": {}
  }
}

CreateBehaviorZone: object

Create a BehaviorZone object for a Device in the Numina database

behaviorZone:
object

BehaviorZone object that was created

return:
arguments:
object
Example
{
  "behaviorZone": {
    "return": {
      "zoneType": {
        "return": "string",
        "arguments": {}
      },
      "id": {
        "return": "object",
        "arguments": {}
      },
      "demarcation": {
        "return": [
          [
            "number"
          ]
        ],
        "arguments": {}
      },
      "feedId": {
        "return": "string",
        "arguments": {}
      },
      "text": {
        "return": "string",
        "arguments": {}
      },
      "color": {
        "return": "string",
        "arguments": {}
      },
      "isCoverageZone": {
        "return": "boolean",
        "arguments": {}
      },
      "feed": {
        "return": {
          "id": {
            "return": "object",
            "arguments": {}
          },
          "name": {
            "return": "string",
            "arguments": {}
          },
          "created": {
            "return": "object",
            "arguments": {}
          },
          "description": {
            "return": "string",
            "arguments": {}
          },
          "device": {
            "return": {
              "id": {
                "return": "object",
                "arguments": {}
              },
              "serialno": {
                "return": "string",
                "arguments": {}
              },
              "name": {
                "return": "string",
                "arguments": {}
              },
              "alias": {
                "return": "string",
                "arguments": {}
              },
              "tags": {
                "return": "string",
                "arguments": {}
              },
              "notes": {
                "return": "string",
                "arguments": {}
              },
              "status": {
                "return": "string",
                "arguments": {}
              },
              "created": {
                "return": "object",
                "arguments": {}
              },
              "orgId": {
                "return": "string",
                "arguments": {}
              },
              "locationId": {
                "return": "string",
                "arguments": {}
              },
              "feedId": {
                "return": "string",
                "arguments": {}
              }
            }
          }
        }
      }
    }
  }
}

CreateComparisonReport: object

Starts a standard report in aws batch.

result:
object

'Success' upon success.

return:
arguments:
object
Example
{
  "result": {
    "return": "string",
    "arguments": {}
  }
}

CreateOrganization: object

Create an Organization object in the Numina database. (admin-only)

organization:
object

Organization object that was just created

return:
arguments:
object
Example
{
  "organization": {
    "return": {
      "id": {
        "return": "object",
        "arguments": {}
      },
      "name": {
        "return": "string",
        "arguments": {}
      },
      "joined": {
        "return": "object",
        "arguments": {}
      },
      "timezone": {
        "return": "string",
        "arguments": {}
      },
      "zoomLevel": {
        "return": "number",
        "arguments": {}
      },
      "orgLat": {
        "return": "number",
        "arguments": {}
      },
      "orgLon": {
        "return": "number",
        "arguments": {}
      },
      "alias": {
        "return": "string",
        "arguments": {}
      },
      "orgId": {
        "return": "string",
        "arguments": {}
      },
      "devices": {
        "return": {
          "pageInfo": {
            "return": {
              "hasNextPage": {
                "return": "boolean",
                "arguments": {}
              },
              "hasPreviousPage": {
                "return": "boolean",
                "arguments": {}
              },
              "startCursor": {
                "return": "string",
                "arguments": {}
              },
              "endCursor": {
                "return": "string",
                "arguments": {}
              }
            },
            "arguments": {}
          },
          "edges": {
            "return": [
              {
                "node": {
                  "return": {
                    "id": {
                      "return": "object",
                      "arguments": {}
                    },
                    "serialno": {
                      "return": "string",
                      "arguments": {}
                    },
                    "name": {
                      "return": "string",
                      "arguments": {}
                    },
                    "alias": {
                      "return": "string",
                      "arguments": {}
                    },
                    "tags": {
                      "return": "string",
                      "arguments": {}
                    },
                    "notes": {
                      "return": "string",
                      "arguments": {}
                    },
                    "status": {
                      "return": "string",
                      "arguments": {}
                    },
                    "created": {}
                  }
                }
              }
            ]
          }
        }
      }
    }
  }
}

CreateStandardReport: object

Starts a standard report in aws batch.

result:
object

'Success' upon success.

return:
arguments:
object
Example
{
  "result": {
    "return": "string",
    "arguments": {}
  }
}

CreateUserMutation: object

Create a User object in the Numina database (admin only). Upon successful creation, this mutation sends a welcome email to the user's email address, and adds the user's email to Mailchimp. (admin-only)

user:
object

User object that just got created

return:
arguments:
object
Example
{
  "user": {
    "return": {
      "id": {
        "return": "object",
        "arguments": {}
      },
      "email": {
        "return": "string",
        "arguments": {}
      },
      "name": {
        "return": "string",
        "arguments": {}
      },
      "orgId": {
        "return": "string",
        "arguments": {}
      },
      "joined": {
        "return": "object",
        "arguments": {}
      },
      "position": {
        "return": "string",
        "arguments": {}
      },
      "admin": {
        "return": "boolean",
        "arguments": {}
      },
      "apiKey": {
        "return": "string",
        "arguments": {}
      },
      "authLevel": {
        "return": "string",
        "arguments": {}
      },
      "phone": {
        "return": "string",
        "arguments": {}
      },
      "lowerEmail": {
        "return": "string",
        "arguments": {}
      },
      "organization": {
        "return": {
          "id": {
            "return": "object",
            "arguments": {}
          },
          "name": {
            "return": "string",
            "arguments": {}
          },
          "joined": {
            "return": "object",
            "arguments": {}
          },
          "timezone": {
            "return": "string",
            "arguments": {}
          },
          "zoomLevel": {
            "return": "number",
            "arguments": {}
          },
          "orgLat": {
            "return": "number",
            "arguments": {}
          },
          "orgLon": {
            "return": "number",
            "arguments": {}
          },
          "alias": {
            "return": "string",
            "arguments": {}
          },
          "orgId": {
            "return": "string",
            "arguments": {}
          },
          "devices": {
            "return": {
              "pageInfo": {
                "return": {
                  "hasNextPage": {
                    "return": "boolean",
                    "arguments": {}
                  },
                  "hasPreviousPage": {
                    "return": "boolean"
                  }
                }
              }
            }
          }
        }
      }
    }
  }
}

DataVersionEnum: string

object
JULY_2022
object
JUNE_2023

DateTime: object

The DateTime scalar type represents a DateTime value as specified by iso8601.

Example
object

DeleteBehaviorZone: object

Delete a BehaviorZone object from the Numina database.

success:
object

Returns the deleted BehaviorZone object's ID on success

return:
arguments:
object
Example
{
  "success": {
    "return": "string",
    "arguments": {}
  }
}

DeleteDevice: object

Delete a device object (admin only)

success:
object

returns device rawId if delete successful

return:
arguments:
object
Example
{
  "success": {
    "return": "string",
    "arguments": {}
  }
}

DeleteOrganization: object

Delete an Organization object from the Numina database (admin-only)

success:
object
return:
arguments:
object
Example
{
  "success": {
    "return": "string",
    "arguments": {}
  }
}

DeleteUserMutation: object

Delete a User object from the Numina database. (admin-only)

success:
object

User object's rawId value if successfully deleted

return:
arguments:
object
Example
{
  "success": {
    "return": "string",
    "arguments": {}
  }
}

Device: object

A Numina sensor device. Non-admin users can only see devices belonging to their organization.

id:
object

The ID of the object.

return:
ID
arguments:
object
serialno:
object

Serial number, set by Numina

return:
arguments:
object
name:
object

Name for this sensor

return:
arguments:
object
alias:
object

Auto-generated, human readable short name for this sensor

return:
arguments:
object
tags:
object

Additional tags to categorize the sensor (not fully supported)

return:
arguments:
object
notes:
object

Additional notes describing the sensor

return:
arguments:
object
status:
object

Device reporting status

return:
arguments:
object
created:
object

UTC timestamp at which this device was added to the database

return:
arguments:
object
orgId:
object

Database id for the Organization object this device belongs to

return:
arguments:
object
locationId:
object

Database id for the Location object corresponding to this device

return:
arguments:
object
feedId:
object

Database id for the Feed object corresponding to this device

return:
arguments:
object
samplingRate:
object
return:
arguments:
object
organization:
object
return:
arguments:
object
location:
object
return:
arguments:
object
feed:
object
return:
arguments:
object
rawId:
object

Database ID for this object

return:
arguments:
object
Example
{
  "id": {
    "return": "object",
    "arguments": {}
  },
  "serialno": {
    "return": "string",
    "arguments": {}
  },
  "name": {
    "return": "string",
    "arguments": {}
  },
  "alias": {
    "return": "string",
    "arguments": {}
  },
  "tags": {
    "return": "string",
    "arguments": {}
  },
  "notes": {
    "return": "string",
    "arguments": {}
  },
  "status": {
    "return": "string",
    "arguments": {}
  },
  "created": {
    "return": "object",
    "arguments": {}
  },
  "orgId": {
    "return": "string",
    "arguments": {}
  },
  "locationId": {
    "return": "string",
    "arguments": {}
  },
  "feedId": {
    "return": "string",
    "arguments": {}
  },
  "samplingRate": {
    "return": "string",
    "arguments": {}
  },
  "organization": {
    "return": {
      "id": {
        "return": "object",
        "arguments": {}
      },
      "name": {
        "return": "string",
        "arguments": {}
      },
      "joined": {
        "return": "object",
        "arguments": {}
      },
      "timezone": {
        "return": "string",
        "arguments": {}
      },
      "zoomLevel": {
        "return": "number",
        "arguments": {}
      },
      "orgLat": {
        "return": "number",
        "arguments": {}
      },
      "orgLon": {
        "return": "number",
        "arguments": {}
      },
      "alias": {
        "return": "string",
        "arguments": {}
      },
      "orgId": {
        "return": "string",
        "arguments": {}
      },
      "devices": {
        "return": {
          "pageInfo": {
            "return": {
              "hasNextPage": {
                "return": "boolean",
                "arguments": {}
              },
              "hasPreviousPage": {}
            }
          }
        }
      }
    }
  }
}

DeviceSortEnum: string

An enumeration.

object
ID_ASC
object
ID_DESC
object
SERIALNO_ASC
object
SERIALNO_DESC
object
NAME_ASC
object
NAME_DESC
object
ALIAS_ASC
object
ALIAS_DESC
object
TAGS_ASC
object
TAGS_DESC
object
NOTES_ASC
object
NOTES_DESC
object
STATUS_ASC
object
STATUS_DESC
object
CREATED_ASC
object
CREATED_DESC
object
ORG_ID_ASC
object
ORG_ID_DESC
object
LOCATION_ID_ASC
object
LOCATION_ID_DESC
object
FEED_ID_ASC
object
FEED_ID_DESC
object
SAMPLING_RATE_ASC
object
SAMPLING_RATE_DESC

DeviceStatusEnum: string

object
REPORTING
object
NOT_REPORTING

DevicesConnection: object

Connection to Device nodes

pageInfo:
object

Pagination data for this connection.

return:
arguments:
object
edges:
object

Contains the nodes in this connection.

return:
arguments:
object
count:
object
return:
Int
arguments:
object
Example
{
  "pageInfo": {
    "return": {
      "hasNextPage": {
        "return": "boolean",
        "arguments": {}
      },
      "hasPreviousPage": {
        "return": "boolean",
        "arguments": {}
      },
      "startCursor": {
        "return": "string",
        "arguments": {}
      },
      "endCursor": {
        "return": "string",
        "arguments": {}
      }
    },
    "arguments": {}
  },
  "edges": {
    "return": [
      {
        "node": {
          "return": {
            "id": {
              "return": "object",
              "arguments": {}
            },
            "serialno": {
              "return": "string",
              "arguments": {}
            },
            "name": {
              "return": "string",
              "arguments": {}
            },
            "alias": {
              "return": "string",
              "arguments": {}
            },
            "tags": {
              "return": "string",
              "arguments": {}
            },
            "notes": {
              "return": "string",
              "arguments": {}
            },
            "status": {
              "return": "string",
              "arguments": {}
            },
            "created": {
              "return": "object",
              "arguments": {}
            },
            "orgId": {
              "return": "string",
              "arguments": {}
            },
            "locationId": {
              "return": "string",
              "arguments": {}
            },
            "feedId": {
              "return": "string",
              "arguments": {}
            },
            "samplingRate": {
              "return": "string",
              "arguments": {}
            },
            "organization": {
              "return": {
                "id": {
                  "return": "object",
                  "arguments": {}
                },
                "name": {
                  "return": "string",
                  "arguments": {}
                },
                "joined": {
                  "return": "object",
                  "arguments": {}
                },
                "timezone": {
                  "return": "string",
                  "arguments": {}
                },
                "zoomLevel": {
                  "return": "number",
                  "arguments": {}
                },
                "orgLat": {}
              }
            }
          }
        }
      }
    ]
  }
}

DevicesEdge: object

A Relay edge containing a Devices and its cursor.

node:
object

The item at the end of the edge

return:
arguments:
object
cursor:
object

A cursor for use in pagination

return:
arguments:
object
Example
{
  "node": {
    "return": {
      "id": {
        "return": "object",
        "arguments": {}
      },
      "serialno": {
        "return": "string",
        "arguments": {}
      },
      "name": {
        "return": "string",
        "arguments": {}
      },
      "alias": {
        "return": "string",
        "arguments": {}
      },
      "tags": {
        "return": "string",
        "arguments": {}
      },
      "notes": {
        "return": "string",
        "arguments": {}
      },
      "status": {
        "return": "string",
        "arguments": {}
      },
      "created": {
        "return": "object",
        "arguments": {}
      },
      "orgId": {
        "return": "string",
        "arguments": {}
      },
      "locationId": {
        "return": "string",
        "arguments": {}
      },
      "feedId": {
        "return": "string",
        "arguments": {}
      },
      "samplingRate": {
        "return": "string",
        "arguments": {}
      },
      "organization": {
        "return": {
          "id": {
            "return": "object",
            "arguments": {}
          },
          "name": {
            "return": "string",
            "arguments": {}
          },
          "joined": {
            "return": "object",
            "arguments": {}
          },
          "timezone": {
            "return": "string",
            "arguments": {}
          },
          "zoomLevel": {
            "return": "number",
            "arguments": {}
          },
          "orgLat": {
            "return": "number",
            "arguments": {}
          },
          "orgLon": {
            "return": "number",
            "arguments": {}
          },
          "alias": {
            "return": "string",
            "arguments": {}
          },
          "orgId": {
            "return": "string",
            "arguments": {}
          },
          "devices": {
            "return": {
              "pageInfo": {
                "return": {
                  "hasNextPage": {
                    "return": "boolean"
                  }
                }
              }
            }
          }
        }
      }
    }
  }
}

EventCount: object

List of counts and event names

id:
object

The ID of the object.

return:
ID
arguments:
object
time:
object

Start of time interval for metric

return:
arguments:
object
event:
object

name of event (e.g. 'trash pickup')

return:
arguments:
object
result:
object

number of events in interval (e.g. 3)

return:
arguments:
object
Example
{
  "id": {
    "return": "object",
    "arguments": {}
  },
  "time": {
    "return": "object",
    "arguments": {}
  },
  "event": {
    "return": "string",
    "arguments": {}
  },
  "result": {
    "return": "number",
    "arguments": {}
  }
}

EventCountsConnection: object

connection to EventCount nodes

pageInfo:
object

Pagination data for this connection.

return:
arguments:
object
edges:
object

Contains the nodes in this connection.

return:
arguments:
object
Example
{
  "pageInfo": {
    "return": {
      "hasNextPage": {
        "return": "boolean",
        "arguments": {}
      },
      "hasPreviousPage": {
        "return": "boolean",
        "arguments": {}
      },
      "startCursor": {
        "return": "string",
        "arguments": {}
      },
      "endCursor": {
        "return": "string",
        "arguments": {}
      }
    },
    "arguments": {}
  },
  "edges": {
    "return": [
      {
        "node": {
          "return": {
            "id": {
              "return": "object",
              "arguments": {}
            },
            "time": {
              "return": "object",
              "arguments": {}
            },
            "event": {
              "return": "string",
              "arguments": {}
            },
            "result": {
              "return": "number",
              "arguments": {}
            }
          },
          "arguments": {}
        },
        "cursor": {
          "return": "string",
          "arguments": {}
        }
      }
    ],
    "arguments": {}
  }
}

EventCountsEdge: object

A Relay edge containing a EventCounts and its cursor.

node:
object

The item at the end of the edge

return:
arguments:
object
cursor:
object

A cursor for use in pagination

return:
arguments:
object
Example
{
  "node": {
    "return": {
      "id": {
        "return": "object",
        "arguments": {}
      },
      "time": {
        "return": "object",
        "arguments": {}
      },
      "event": {
        "return": "string",
        "arguments": {}
      },
      "result": {
        "return": "number",
        "arguments": {}
      }
    },
    "arguments": {}
  },
  "cursor": {
    "return": "string",
    "arguments": {}
  }
}

Feed: object

Internally referenced representation of a data 'feed' produced from a Device object. Not used for externally facing API queries or mutations.

id:
object

The ID of the object.

return:
ID
arguments:
object
name:
object
return:
arguments:
object
created:
object
return:
arguments:
object
description:
object
return:
arguments:
object
device:
object
return:
arguments:
object
behaviorZones:
object
return:
arguments:
object
before:
after:
first:
Int
last:
Int
rawId:
object

Database ID for this object

return:
arguments:
object
Example
{
  "id": {
    "return": "object",
    "arguments": {}
  },
  "name": {
    "return": "string",
    "arguments": {}
  },
  "created": {
    "return": "object",
    "arguments": {}
  },
  "description": {
    "return": "string",
    "arguments": {}
  },
  "device": {
    "return": {
      "id": {
        "return": "object",
        "arguments": {}
      },
      "serialno": {
        "return": "string",
        "arguments": {}
      },
      "name": {
        "return": "string",
        "arguments": {}
      },
      "alias": {
        "return": "string",
        "arguments": {}
      },
      "tags": {
        "return": "string",
        "arguments": {}
      },
      "notes": {
        "return": "string",
        "arguments": {}
      },
      "status": {
        "return": "string",
        "arguments": {}
      },
      "created": {
        "return": "object",
        "arguments": {}
      },
      "orgId": {
        "return": "string",
        "arguments": {}
      },
      "locationId": {
        "return": "string",
        "arguments": {}
      },
      "feedId": {
        "return": "string",
        "arguments": {}
      },
      "samplingRate": {
        "return": "string",
        "arguments": {}
      },
      "organization": {
        "return": {
          "id": {
            "return": "object",
            "arguments": {}
          },
          "name": {
            "return": "string",
            "arguments": {}
          },
          "joined": {
            "return": "object",
            "arguments": {}
          },
          "timezone": {
            "return": "string",
            "arguments": {}
          },
          "zoomLevel": {
            "return": "number",
            "arguments": {}
          },
          "orgLat": {
            "return": "number",
            "arguments": {}
          },
          "orgLon": {
            "return": "number",
            "arguments": {}
          },
          "alias": {}
        }
      }
    }
  }
}

FeedDwellTimeMetric: object

A dwell time distribution metric representing aggregate object dwell times for objects detected by a set of sensors, of a given object class and in a given time interval. (e.g. pedestrian dwell time distribution passing through zone 1 at the time interval starting on 2019-01-01T00:00:00) Distributions are expressed as average dwell time value, as well as quartile values.

id:
object

The ID of the object.

return:
ID
arguments:
object
objClass:
object

Object class for the metric

return:
arguments:
object
feedid:
object

rawId of this device's feed

return:
arguments:
object
serialno:
object

serialno of the device

return:
arguments:
object
pct100:
object

Max value (i.e. 100th percentile dwell time in zone)

return:
arguments:
object
pct75:
object

75th percentile dwell time in zone

return:
arguments:
object
pct50:
object

50th percentile dwell time in zone

return:
arguments:
object
pct25:
object

25th percentile dwell time in zone

return:
arguments:
object
mean:
object

mean dwell time in zone

return:
arguments:
object
count:
object

number of objects in zone

return:
Int
arguments:
object
time:
object

Start of time interval

return:
arguments:
object
Example
{
  "id": {
    "return": "object",
    "arguments": {}
  },
  "objClass": {
    "return": "string",
    "arguments": {}
  },
  "feedid": {
    "return": "string",
    "arguments": {}
  },
  "serialno": {
    "return": "string",
    "arguments": {}
  },
  "pct100": {
    "return": "number",
    "arguments": {}
  },
  "pct75": {
    "return": "number",
    "arguments": {}
  },
  "pct50": {
    "return": "number",
    "arguments": {}
  },
  "pct25": {
    "return": "number",
    "arguments": {}
  },
  "mean": {
    "return": "number",
    "arguments": {}
  },
  "count": {
    "return": "number",
    "arguments": {}
  },
  "time": {
    "return": "object",
    "arguments": {}
  }
}

FeedDwellTimeMetricConnection: object

Connection to FeedDwellTimeMetric nodes

pageInfo:
object

Pagination data for this connection.

return:
arguments:
object
edges:
object

Contains the nodes in this connection.

return:
arguments:
object
Example
{
  "pageInfo": {
    "return": {
      "hasNextPage": {
        "return": "boolean",
        "arguments": {}
      },
      "hasPreviousPage": {
        "return": "boolean",
        "arguments": {}
      },
      "startCursor": {
        "return": "string",
        "arguments": {}
      },
      "endCursor": {
        "return": "string",
        "arguments": {}
      }
    },
    "arguments": {}
  },
  "edges": {
    "return": [
      {
        "node": {
          "return": {
            "id": {
              "return": "object",
              "arguments": {}
            },
            "objClass": {
              "return": "string",
              "arguments": {}
            },
            "feedid": {
              "return": "string",
              "arguments": {}
            },
            "serialno": {
              "return": "string",
              "arguments": {}
            },
            "pct100": {
              "return": "number",
              "arguments": {}
            },
            "pct75": {
              "return": "number",
              "arguments": {}
            },
            "pct50": {
              "return": "number",
              "arguments": {}
            },
            "pct25": {
              "return": "number",
              "arguments": {}
            },
            "mean": {
              "return": "number",
              "arguments": {}
            },
            "count": {
              "return": "number",
              "arguments": {}
            },
            "time": {
              "return": "object",
              "arguments": {}
            }
          },
          "arguments": {}
        },
        "cursor": {
          "return": "string",
          "arguments": {}
        }
      }
    ],
    "arguments": {}
  }
}

FeedDwellTimeMetricEdge: object

A Relay edge containing a FeedDwellTimeMetric and its cursor.

node:
object

The item at the end of the edge

return:
arguments:
object
cursor:
object

A cursor for use in pagination

return:
arguments:
object
Example
{
  "node": {
    "return": {
      "id": {
        "return": "object",
        "arguments": {}
      },
      "objClass": {
        "return": "string",
        "arguments": {}
      },
      "feedid": {
        "return": "string",
        "arguments": {}
      },
      "serialno": {
        "return": "string",
        "arguments": {}
      },
      "pct100": {
        "return": "number",
        "arguments": {}
      },
      "pct75": {
        "return": "number",
        "arguments": {}
      },
      "pct50": {
        "return": "number",
        "arguments": {}
      },
      "pct25": {
        "return": "number",
        "arguments": {}
      },
      "mean": {
        "return": "number",
        "arguments": {}
      },
      "count": {
        "return": "number",
        "arguments": {}
      },
      "time": {
        "return": "object",
        "arguments": {}
      }
    },
    "arguments": {}
  },
  "cursor": {
    "return": "string",
    "arguments": {}
  }
}

FeedHeatmap: object

Heatmap node returned by feedHeatmaps analytics query. Contains heatmap for a given object class and time interval. Heatmaps are a representation of how objects move about the street scene, with higher data values for a given pixel meaning more objects moved through that pixel

In the case of FeedHeatmaps, in particular, only objects that were detected by the given device are included in the heatmap compution.

id:
object

The ID of the object.

return:
ID
arguments:
object
objClass:
object

Object class for the heatmap (e.g. 'car')

return:
arguments:
object
feedid:
object

rawId of this device's feed

return:
arguments:
object
serialno:
object

serialno of the device

return:
arguments:
object
time:
object

Start of time interval for heatmap

return:
arguments:
object
heatmap:
object

Heatmap as a list of [x,y,data] values

return:
arguments:
object
Example
{
  "id": {
    "return": "object",
    "arguments": {}
  },
  "objClass": {
    "return": "string",
    "arguments": {}
  },
  "feedid": {
    "return": "string",
    "arguments": {}
  },
  "serialno": {
    "return": "string",
    "arguments": {}
  },
  "time": {
    "return": "object",
    "arguments": {}
  },
  "heatmap": {
    "return": "object",
    "arguments": {}
  }
}

FeedHeatmapsConnection: object

Connection to FeedHeatmap nodes

pageInfo:
object

Pagination data for this connection.

return:
arguments:
object
edges:
object

Contains the nodes in this connection.

return:
arguments:
object
Example
{
  "pageInfo": {
    "return": {
      "hasNextPage": {
        "return": "boolean",
        "arguments": {}
      },
      "hasPreviousPage": {
        "return": "boolean",
        "arguments": {}
      },
      "startCursor": {
        "return": "string",
        "arguments": {}
      },
      "endCursor": {
        "return": "string",
        "arguments": {}
      }
    },
    "arguments": {}
  },
  "edges": {
    "return": [
      {
        "node": {
          "return": {
            "id": {
              "return": "object",
              "arguments": {}
            },
            "objClass": {
              "return": "string",
              "arguments": {}
            },
            "feedid": {
              "return": "string",
              "arguments": {}
            },
            "serialno": {
              "return": "string",
              "arguments": {}
            },
            "time": {
              "return": "object",
              "arguments": {}
            },
            "heatmap": {
              "return": "object",
              "arguments": {}
            }
          },
          "arguments": {}
        },
        "cursor": {
          "return": "string",
          "arguments": {}
        }
      }
    ],
    "arguments": {}
  }
}

FeedHeatmapsEdge: object

A Relay edge containing a FeedHeatmaps and its cursor.

node:
object

The item at the end of the edge

return:
arguments:
object
cursor:
object

A cursor for use in pagination

return:
arguments:
object
Example
{
  "node": {
    "return": {
      "id": {
        "return": "object",
        "arguments": {}
      },
      "objClass": {
        "return": "string",
        "arguments": {}
      },
      "feedid": {
        "return": "string",
        "arguments": {}
      },
      "serialno": {
        "return": "string",
        "arguments": {}
      },
      "time": {
        "return": "object",
        "arguments": {}
      },
      "heatmap": {
        "return": "object",
        "arguments": {}
      }
    },
    "arguments": {}
  },
  "cursor": {
    "return": "string",
    "arguments": {}
  }
}

FeedMetric: object

A metric (e.g. count) representing aggregate object behavior for objects of a given object class, device (feed), and time interval. (e.g. pedestrian counts for device 1 at the time interval starting on 2019-01-01T00:00:00)

id:
object

The ID of the object.

return:
ID
arguments:
object
metric:
object

type of metric (e.g. 'count')

return:
arguments:
object
objClass:
object

Object class for the metric

return:
arguments:
object
feedid:
object

rawId of this device's feed

return:
arguments:
object
serialno:
object

serialno of the device

return:
arguments:
object
result:
object

metric value (e.g. 102.0)

return:
arguments:
object
time:
object

Start of time interval for metric

return:
arguments:
object
Example
{
  "id": {
    "return": "object",
    "arguments": {}
  },
  "metric": {
    "return": "string",
    "arguments": {}
  },
  "objClass": {
    "return": "string",
    "arguments": {}
  },
  "feedid": {
    "return": "string",
    "arguments": {}
  },
  "serialno": {
    "return": "string",
    "arguments": {}
  },
  "result": {
    "return": "number",
    "arguments": {}
  },
  "time": {
    "return": "object",
    "arguments": {}
  }
}

FeedMetricsConnection: object

Connection to FeedMetric nodes

pageInfo:
object

Pagination data for this connection.

return:
arguments:
object
edges:
object

Contains the nodes in this connection.

return:
arguments:
object
Example
{
  "pageInfo": {
    "return": {
      "hasNextPage": {
        "return": "boolean",
        "arguments": {}
      },
      "hasPreviousPage": {
        "return": "boolean",
        "arguments": {}
      },
      "startCursor": {
        "return": "string",
        "arguments": {}
      },
      "endCursor": {
        "return": "string",
        "arguments": {}
      }
    },
    "arguments": {}
  },
  "edges": {
    "return": [
      {
        "node": {
          "return": {
            "id": {
              "return": "object",
              "arguments": {}
            },
            "metric": {
              "return": "string",
              "arguments": {}
            },
            "objClass": {
              "return": "string",
              "arguments": {}
            },
            "feedid": {
              "return": "string",
              "arguments": {}
            },
            "serialno": {
              "return": "string",
              "arguments": {}
            },
            "result": {
              "return": "number",
              "arguments": {}
            },
            "time": {
              "return": "object",
              "arguments": {}
            }
          },
          "arguments": {}
        },
        "cursor": {
          "return": "string",
          "arguments": {}
        }
      }
    ],
    "arguments": {}
  }
}

FeedMetricsEdge: object

A Relay edge containing a FeedMetrics and its cursor.

node:
object

The item at the end of the edge

return:
arguments:
object
cursor:
object

A cursor for use in pagination

return:
arguments:
object
Example
{
  "node": {
    "return": {
      "id": {
        "return": "object",
        "arguments": {}
      },
      "metric": {
        "return": "string",
        "arguments": {}
      },
      "objClass": {
        "return": "string",
        "arguments": {}
      },
      "feedid": {
        "return": "string",
        "arguments": {}
      },
      "serialno": {
        "return": "string",
        "arguments": {}
      },
      "result": {
        "return": "number",
        "arguments": {}
      },
      "time": {
        "return": "object",
        "arguments": {}
      }
    },
    "arguments": {}
  },
  "cursor": {
    "return": "string",
    "arguments": {}
  }
}

Float: number

The Float scalar type represents signed double-precision fractional values as specified by IEEE 754.

Example
number

HeatmapScalar: object

Scalar type to return heatmap data as list of [x (int), y (int), data (float)] entries

Example
object

ID: object

The ID scalar type represents a unique identifier, often used to refetch an object or as key for a cache. The ID type appears in a JSON response as a String; however, it is not intended to be human-readable. When expected as an input type, any string (such as "4") or integer (such as 4) input value will be accepted as an ID.

Example
object

InstallSensorDeviceInput: object

Administrative data for a sensor Device being added to database with InstallSensor mutation

serialno:

The sensor's serialno

name:

The sensor's name

alias:

The sensor's alias

notes:

Assorted notes about the sensor

tags:

Identifying tags, currently unused.

Example
{
  "serialno": "string",
  "name": "string",
  "alias": "string",
  "notes": "string",
  "tags": "string"
}

InstallSensorMutation: object

Add a Device, and its dependencies, to the Numina database when a sensor is installed. (admin-only)

device:
object

Device object that was just created

return:
arguments:
object
Example
{
  "device": {
    "return": {
      "id": {
        "return": "object",
        "arguments": {}
      },
      "serialno": {
        "return": "string",
        "arguments": {}
      },
      "name": {
        "return": "string",
        "arguments": {}
      },
      "alias": {
        "return": "string",
        "arguments": {}
      },
      "tags": {
        "return": "string",
        "arguments": {}
      },
      "notes": {
        "return": "string",
        "arguments": {}
      },
      "status": {
        "return": "string",
        "arguments": {}
      },
      "created": {
        "return": "object",
        "arguments": {}
      },
      "orgId": {
        "return": "string",
        "arguments": {}
      },
      "locationId": {
        "return": "string",
        "arguments": {}
      },
      "feedId": {
        "return": "string",
        "arguments": {}
      },
      "samplingRate": {
        "return": "string",
        "arguments": {}
      },
      "organization": {
        "return": {
          "id": {
            "return": "object",
            "arguments": {}
          },
          "name": {
            "return": "string",
            "arguments": {}
          },
          "joined": {
            "return": "object",
            "arguments": {}
          },
          "timezone": {
            "return": "string",
            "arguments": {}
          },
          "zoomLevel": {
            "return": "number",
            "arguments": {}
          },
          "orgLat": {
            "return": "number",
            "arguments": {}
          },
          "orgLon": {
            "return": "number",
            "arguments": {}
          },
          "alias": {
            "return": "string",
            "arguments": {}
          },
          "orgId": {
            "return": "string",
            "arguments": {}
          },
          "devices": {
            "return": {
              "pageInfo": {
                "return": {
                  "hasNextPage": {
                    "return": "boolean"
                  }
                }
              }
            }
          }
        }
      }
    }
  }
}

Int: number

The Int scalar type represents non-fractional signed whole numeric values. Int can represent values between -(2^31 - 1) and 2^31 - 1 since represented in JSON as double-precision floating point numbers specifiedby IEEE 754.

Example
number

JWTToken: object

A JSON Web Token (JWT) and expiry date issued upon successful authentication.

token:
object

JSON Web Token

return:
arguments:
object
exp:
object

Expiry date of token

return:
arguments:
object
Example
{
  "token": {
    "return": "string",
    "arguments": {}
  },
  "exp": {
    "return": "object",
    "arguments": {}
  }
}

Location: object

Location data for a Numina sensor, including latitude, longitude, and azimuth (aim angle).

id:
object

The ID of the object.

return:
ID
arguments:
object
azi:
object

Azimuth, used to draw sensor view range

return:
Int
arguments:
object
lat:
object

Latitude of a sensor's location

return:
arguments:
object
lon:
object

Longitude of a sensor's location

return:
arguments:
object
address:
object

Addresss of a sensor's location, if applicable

return:
arguments:
object
exposure:
object
return:
arguments:
object
zipcode:
object

Zip code of a sensor's location, if applicable

return:
arguments:
object
created:
object

Timestamp at which this location was created

return:
arguments:
object
rawId:
object

Database ID for this object

return:
arguments:
object
Example
{
  "id": {
    "return": "object",
    "arguments": {}
  },
  "azi": {
    "return": "number",
    "arguments": {}
  },
  "lat": {
    "return": "number",
    "arguments": {}
  },
  "lon": {
    "return": "number",
    "arguments": {}
  },
  "address": {
    "return": "string",
    "arguments": {}
  },
  "exposure": {
    "return": "string",
    "arguments": {}
  },
  "zipcode": {
    "return": "string",
    "arguments": {}
  },
  "created": {
    "return": "object",
    "arguments": {}
  },
  "rawId": {
    "return": "string",
    "arguments": {}
  }
}

LogInMutation: object

Log in to the Numina API or dashboard, by retrieving a JSON Web Token upon authentication.

user:
object

User object for given credentials

return:
arguments:
object
jwt:
object

JWTToken object containing auth token info

return:
arguments:
object
Example
{
  "user": {
    "return": {
      "id": {
        "return": "object",
        "arguments": {}
      },
      "email": {
        "return": "string",
        "arguments": {}
      },
      "name": {
        "return": "string",
        "arguments": {}
      },
      "orgId": {
        "return": "string",
        "arguments": {}
      },
      "joined": {
        "return": "object",
        "arguments": {}
      },
      "position": {
        "return": "string",
        "arguments": {}
      },
      "admin": {
        "return": "boolean",
        "arguments": {}
      },
      "apiKey": {
        "return": "string",
        "arguments": {}
      },
      "authLevel": {
        "return": "string",
        "arguments": {}
      },
      "phone": {
        "return": "string",
        "arguments": {}
      },
      "lowerEmail": {
        "return": "string",
        "arguments": {}
      },
      "organization": {
        "return": {
          "id": {
            "return": "object",
            "arguments": {}
          },
          "name": {
            "return": "string",
            "arguments": {}
          },
          "joined": {
            "return": "object",
            "arguments": {}
          },
          "timezone": {
            "return": "string",
            "arguments": {}
          },
          "zoomLevel": {
            "return": "number",
            "arguments": {}
          },
          "orgLat": {
            "return": "number",
            "arguments": {}
          },
          "orgLon": {
            "return": "number",
            "arguments": {}
          },
          "alias": {
            "return": "string",
            "arguments": {}
          },
          "orgId": {
            "return": "string",
            "arguments": {}
          },
          "devices": {
            "return": {
              "pageInfo": {
                "return": {
                  "hasNextPage": {
                    "return": "boolean",
                    "arguments": {}
                  },
                  "hasPreviousPage": {
                    "return": "boolean"
                  }
                }
              }
            }
          }
        }
      }
    }
  }
}

Node: object

An object with an ID

id:
object

The ID of the object.

return:
ID
arguments:
object
Example
{
  "id": {
    "return": "object",
    "arguments": {}
  }
}

ObjectClasses: string

object
PEDESTRIAN
object
BICYCLE
object
CAR
object
TRUCK
object
BUS
object
MOTORBIKE
object
DOG
object
ALL

Organization: object

The basic Numina customer unit. Users and devices point to an Organization object.

id:
object

The ID of the object.

return:
ID
arguments:
object
name:
object

Name of customer organization

return:
arguments:
object
joined:
object

Timestamp at which this organization was created

return:
arguments:
object
timezone:
object

Timezone of organization, in tz database format

return:
arguments:
object
zoomLevel:
object

Map zoom_level such that all org devices visible on map

return:
Int
arguments:
object
orgLat:
object

Latitude of organization for devices map visualization

return:
arguments:
object
orgLon:
object

Longitude of organization for devices map visualization

return:
arguments:
object
alias:
object

Short, readable name used as internal reference(e.g.'dbp')

return:
arguments:
object
orgId:
object
return:
arguments:
object
devices:
object

Devices belonging to this organization

return:
arguments:
object
name:
serialno:
sort: "ID_ASC"

Field and direction to sort by

before:

paginate results before cursor

after:

paginate results after cursor

first:
Int

get first n results

last:
Int

get last n results

users:
object

Users belonging to this organization

return:
arguments:
object
sort: "ID_ASC"

Field and direction to sort by

before:

paginate results before cursor

after:

paginate results after cursor

first:
Int

get first n results

last:
Int

get last n results

rawId:
object

Database ID for this object

return:
arguments:
object
Example
{
  "id": {
    "return": "object",
    "arguments": {}
  },
  "name": {
    "return": "string",
    "arguments": {}
  },
  "joined": {
    "return": "object",
    "arguments": {}
  },
  "timezone": {
    "return": "string",
    "arguments": {}
  },
  "zoomLevel": {
    "return": "number",
    "arguments": {}
  },
  "orgLat": {
    "return": "number",
    "arguments": {}
  },
  "orgLon": {
    "return": "number",
    "arguments": {}
  },
  "alias": {
    "return": "string",
    "arguments": {}
  },
  "orgId": {
    "return": "string",
    "arguments": {}
  },
  "devices": {
    "return": {
      "pageInfo": {
        "return": {
          "hasNextPage": {
            "return": "boolean",
            "arguments": {}
          },
          "hasPreviousPage": {
            "return": "boolean",
            "arguments": {}
          },
          "startCursor": {
            "return": "string",
            "arguments": {}
          },
          "endCursor": {
            "return": "string",
            "arguments": {}
          }
        },
        "arguments": {}
      },
      "edges": {
        "return": [
          {
            "node": {
              "return": {
                "id": {
                  "return": "object",
                  "arguments": {}
                },
                "serialno": {
                  "return": "string",
                  "arguments": {}
                },
                "name": {
                  "return": "string",
                  "arguments": {}
                },
                "alias": {
                  "return": "string",
                  "arguments": {}
                },
                "tags": {
                  "return": "string",
                  "arguments": {}
                },
                "notes": {
                  "return": "string",
                  "arguments": {}
                },
                "status": {
                  "return": "string",
                  "arguments": {}
                },
                "created": {
                  "return": "object",
                  "arguments": {}
                },
                "orgId": {}
              }
            }
          }
        ]
      }
    }
  }
}

OrganizationAuthorizedNode: object

id:
object

The ID of the object.

return:
ID
arguments:
object
Example
{
  "id": {
    "return": "object",
    "arguments": {}
  }
}

OrganizationCount: object

A count of detections per sensor for a given date range

id:
object

The ID of the object.

return:
ID
arguments:
object
startTime:
object

start of the time range

return:
arguments:
object
endTime:
object

end of the time range

return:
arguments:
object
count:
object

number of detections in the time range

return:
Int
arguments:
object
serialno:
object

serial number of the device

return:
arguments:
object
name:
object

name of the device

return:
arguments:
object
organizationName:
object

organization name

return:
arguments:
object
organizationAlias:
object

organization alias

return:
arguments:
object
Example
{
  "id": {
    "return": "object",
    "arguments": {}
  },
  "startTime": {
    "return": "object",
    "arguments": {}
  },
  "endTime": {
    "return": "object",
    "arguments": {}
  },
  "count": {
    "return": "number",
    "arguments": {}
  },
  "serialno": {
    "return": "string",
    "arguments": {}
  },
  "name": {
    "return": "string",
    "arguments": {}
  },
  "organizationName": {
    "return": "string",
    "arguments": {}
  },
  "organizationAlias": {
    "return": "string",
    "arguments": {}
  }
}

OrganizationCountsConnection: object

Connection to OrganizationCount nodes

pageInfo:
object

Pagination data for this connection.

return:
arguments:
object
edges:
object

Contains the nodes in this connection.

return:
arguments:
object
Example
{
  "pageInfo": {
    "return": {
      "hasNextPage": {
        "return": "boolean",
        "arguments": {}
      },
      "hasPreviousPage": {
        "return": "boolean",
        "arguments": {}
      },
      "startCursor": {
        "return": "string",
        "arguments": {}
      },
      "endCursor": {
        "return": "string",
        "arguments": {}
      }
    },
    "arguments": {}
  },
  "edges": {
    "return": [
      {
        "node": {
          "return": {
            "id": {
              "return": "object",
              "arguments": {}
            },
            "startTime": {
              "return": "object",
              "arguments": {}
            },
            "endTime": {
              "return": "object",
              "arguments": {}
            },
            "count": {
              "return": "number",
              "arguments": {}
            },
            "serialno": {
              "return": "string",
              "arguments": {}
            },
            "name": {
              "return": "string",
              "arguments": {}
            },
            "organizationName": {
              "return": "string",
              "arguments": {}
            },
            "organizationAlias": {
              "return": "string",
              "arguments": {}
            }
          },
          "arguments": {}
        },
        "cursor": {
          "return": "string",
          "arguments": {}
        }
      }
    ],
    "arguments": {}
  }
}

OrganizationCountsEdge: object

A Relay edge containing a OrganizationCounts and its cursor.

node:
object

The item at the end of the edge

return:
arguments:
object
cursor:
object

A cursor for use in pagination

return:
arguments:
object
Example
{
  "node": {
    "return": {
      "id": {
        "return": "object",
        "arguments": {}
      },
      "startTime": {
        "return": "object",
        "arguments": {}
      },
      "endTime": {
        "return": "object",
        "arguments": {}
      },
      "count": {
        "return": "number",
        "arguments": {}
      },
      "serialno": {
        "return": "string",
        "arguments": {}
      },
      "name": {
        "return": "string",
        "arguments": {}
      },
      "organizationName": {
        "return": "string",
        "arguments": {}
      },
      "organizationAlias": {
        "return": "string",
        "arguments": {}
      }
    },
    "arguments": {}
  },
  "cursor": {
    "return": "string",
    "arguments": {}
  }
}

OrganizationSortEnum: string

An enumeration.

object
ID_ASC
object
ID_DESC
object
NAME_ASC
object
NAME_DESC
object
JOINED_ASC
object
JOINED_DESC
object
TIMEZONE_ASC
object
TIMEZONE_DESC
object
ZOOM_LEVEL_ASC
object
ZOOM_LEVEL_DESC
object
ORG_LAT_ASC
object
ORG_LAT_DESC
object
ORG_LON_ASC
object
ORG_LON_DESC
object
ALIAS_ASC
object
ALIAS_DESC

OrganizationsConnection: object

Connection to Organization nodes

pageInfo:
object

Pagination data for this connection.

return:
arguments:
object
edges:
object

Contains the nodes in this connection.

return:
arguments:
object
count:
object

Number of Organization nodes

return:
Int
arguments:
object
Example
{
  "pageInfo": {
    "return": {
      "hasNextPage": {
        "return": "boolean",
        "arguments": {}
      },
      "hasPreviousPage": {
        "return": "boolean",
        "arguments": {}
      },
      "startCursor": {
        "return": "string",
        "arguments": {}
      },
      "endCursor": {
        "return": "string",
        "arguments": {}
      }
    },
    "arguments": {}
  },
  "edges": {
    "return": [
      {
        "node": {
          "return": {
            "id": {
              "return": "object",
              "arguments": {}
            },
            "name": {
              "return": "string",
              "arguments": {}
            },
            "joined": {
              "return": "object",
              "arguments": {}
            },
            "timezone": {
              "return": "string",
              "arguments": {}
            },
            "zoomLevel": {
              "return": "number",
              "arguments": {}
            },
            "orgLat": {
              "return": "number",
              "arguments": {}
            },
            "orgLon": {
              "return": "number",
              "arguments": {}
            },
            "alias": {
              "return": "string",
              "arguments": {}
            },
            "orgId": {
              "return": "string",
              "arguments": {}
            },
            "devices": {
              "return": {
                "pageInfo": {
                  "return": {
                    "hasNextPage": {
                      "return": "boolean",
                      "arguments": {}
                    },
                    "hasPreviousPage": {
                      "return": "boolean",
                      "arguments": {}
                    },
                    "startCursor": {
                      "return": "string",
                      "arguments": {}
                    },
                    "endCursor": {
                      "return": "string",
                      "arguments": {}
                    }
                  },
                  "arguments": {}
                },
                "edges": {
                  "return": [
                    {
                      "node": {
                        "return": {
                          "id": {
                            "return": "object",
                            "arguments": {}
                          },
                          "serialno": {}
                        }
                      }
                    }
                  ]
                }
              }
            }
          }
        }
      }
    ]
  }
}

OrganizationsEdge: object

A Relay edge containing a Organizations and its cursor.

node:
object

The item at the end of the edge

return:
arguments:
object
cursor:
object

A cursor for use in pagination

return:
arguments:
object
Example
{
  "node": {
    "return": {
      "id": {
        "return": "object",
        "arguments": {}
      },
      "name": {
        "return": "string",
        "arguments": {}
      },
      "joined": {
        "return": "object",
        "arguments": {}
      },
      "timezone": {
        "return": "string",
        "arguments": {}
      },
      "zoomLevel": {
        "return": "number",
        "arguments": {}
      },
      "orgLat": {
        "return": "number",
        "arguments": {}
      },
      "orgLon": {
        "return": "number",
        "arguments": {}
      },
      "alias": {
        "return": "string",
        "arguments": {}
      },
      "orgId": {
        "return": "string",
        "arguments": {}
      },
      "devices": {
        "return": {
          "pageInfo": {
            "return": {
              "hasNextPage": {
                "return": "boolean",
                "arguments": {}
              },
              "hasPreviousPage": {
                "return": "boolean",
                "arguments": {}
              },
              "startCursor": {
                "return": "string",
                "arguments": {}
              },
              "endCursor": {
                "return": "string",
                "arguments": {}
              }
            },
            "arguments": {}
          },
          "edges": {
            "return": [
              {
                "node": {
                  "return": {
                    "id": {
                      "return": "object",
                      "arguments": {}
                    },
                    "serialno": {
                      "return": "string",
                      "arguments": {}
                    },
                    "name": {
                      "return": "string",
                      "arguments": {}
                    },
                    "alias": {
                      "return": "string",
                      "arguments": {}
                    },
                    "tags": {
                      "return": "string",
                      "arguments": {}
                    },
                    "notes": {
                      "return": "string",
                      "arguments": {}
                    },
                    "status": {
                      "return": "string",
                      "arguments": {}
                    },
                    "created": {}
                  }
                }
              }
            ]
          }
        }
      }
    }
  }
}

PageInfo: object

The Relay compliant PageInfo type, containing data necessary to paginate this connection.

hasNextPage:
object

When paginating forwards, are there more items?

return:
arguments:
object
hasPreviousPage:
object

When paginating backwards, are there more items?

return:
arguments:
object
startCursor:
object

When paginating backwards, the cursor to continue.

return:
arguments:
object
endCursor:
object

When paginating forwards, the cursor to continue.

return:
arguments:
object
Example
{
  "hasNextPage": {
    "return": "boolean",
    "arguments": {}
  },
  "hasPreviousPage": {
    "return": "boolean",
    "arguments": {}
  },
  "startCursor": {
    "return": "string",
    "arguments": {}
  },
  "endCursor": {
    "return": "string",
    "arguments": {}
  }
}

RedirectEnum: string

object
dashboard

Numina Dashboard

object
developer

Numina API documentation page

object
trash

Numina Trash Application

ResetDBMutation: object

Sends default_db command to an MQTT sensor - resets the DB with the firmware command default_database:

sensorstatus:
object

Serial No. of sensor to change mode

return:
arguments:
object
Example
{
  "sensorstatus": {
    "return": {
      "status": {
        "return": "string",
        "arguments": {}
      },
      "mode": {
        "return": "string",
        "arguments": {}
      },
      "version": {
        "return": "string",
        "arguments": {}
      }
    },
    "arguments": {}
  }
}

ResetPasswordMutation: object

Reset a user's password if they pass in a valid reset token

email:
object

User's email address, if password successfully reset

return:
arguments:
object
Example
{
  "email": {
    "return": "string",
    "arguments": {}
  }
}

SampleImage: object

Contains URL to sample image update requested by user for a specific date

id:
object

The ID of the object.

return:
ID
arguments:
object
s3Key:
object

s3 URI of image file

return:
arguments:
object
presignedUrl:
object

publically accessible presigned URL

return:
arguments:
object
Example
{
  "id": {
    "return": "object",
    "arguments": {}
  },
  "s3Key": {
    "return": "string",
    "arguments": {}
  },
  "presignedUrl": {
    "return": "string",
    "arguments": {}
  }
}

SampleImagesConnection: object

Connection to SampleImage nodes

pageInfo:
object

Pagination data for this connection.

return:
arguments:
object
edges:
object

Contains the nodes in this connection.

return:
arguments:
object
Example
{
  "pageInfo": {
    "return": {
      "hasNextPage": {
        "return": "boolean",
        "arguments": {}
      },
      "hasPreviousPage": {
        "return": "boolean",
        "arguments": {}
      },
      "startCursor": {
        "return": "string",
        "arguments": {}
      },
      "endCursor": {
        "return": "string",
        "arguments": {}
      }
    },
    "arguments": {}
  },
  "edges": {
    "return": [
      {
        "node": {
          "return": {
            "id": {
              "return": "object",
              "arguments": {}
            },
            "s3Key": {
              "return": "string",
              "arguments": {}
            },
            "presignedUrl": {
              "return": "string",
              "arguments": {}
            }
          },
          "arguments": {}
        },
        "cursor": {
          "return": "string",
          "arguments": {}
        }
      }
    ],
    "arguments": {}
  }
}

SampleImagesEdge: object

A Relay edge containing a SampleImages and its cursor.

node:
object

The item at the end of the edge

return:
arguments:
object
cursor:
object

A cursor for use in pagination

return:
arguments:
object
Example
{
  "node": {
    "return": {
      "id": {
        "return": "object",
        "arguments": {}
      },
      "s3Key": {
        "return": "string",
        "arguments": {}
      },
      "presignedUrl": {
        "return": "string",
        "arguments": {}
      }
    },
    "arguments": {}
  },
  "cursor": {
    "return": "string",
    "arguments": {}
  }
}

ScreenlineMetric: object

A metric (e.g. count) representing aggregate object behavior for objects that passed through a list of screenlines (defined as a line type behavior zone),of a given object class and in a given time interval. (e.g. pedestrian counts passing through line zone at the time interval starting on 2019-01-01T00:00:00)

id:
object

The ID of the object.

return:
ID
arguments:
object
metric:
object

type of metric (e.g. 'count')

return:
arguments:
object
objClass:
object

Object class for the metric

return:
arguments:
object
zoneIds:
object

rawIds of all screenLine objects passedthrough

return:
Int
arguments:
object
result:
object

metric value (e.g. 102.0)

return:
arguments:
object
time:
object

Start of time interval for metric

return:
arguments:
object
Example
{
  "id": {
    "return": "object",
    "arguments": {}
  },
  "metric": {
    "return": "string",
    "arguments": {}
  },
  "objClass": {
    "return": "string",
    "arguments": {}
  },
  "zoneIds": {
    "return": [
      "number"
    ],
    "arguments": {}
  },
  "result": {
    "return": "number",
    "arguments": {}
  },
  "time": {
    "return": "object",
    "arguments": {}
  }
}

ScreenlineMetricsConnection: object

Connection to ScreenlineMetric nodes

pageInfo:
object

Pagination data for this connection.

return:
arguments:
object
edges:
object

Contains the nodes in this connection.

return:
arguments:
object
Example
{
  "pageInfo": {
    "return": {
      "hasNextPage": {
        "return": "boolean",
        "arguments": {}
      },
      "hasPreviousPage": {
        "return": "boolean",
        "arguments": {}
      },
      "startCursor": {
        "return": "string",
        "arguments": {}
      },
      "endCursor": {
        "return": "string",
        "arguments": {}
      }
    },
    "arguments": {}
  },
  "edges": {
    "return": [
      {
        "node": {
          "return": {
            "id": {
              "return": "object",
              "arguments": {}
            },
            "metric": {
              "return": "string",
              "arguments": {}
            },
            "objClass": {
              "return": "string",
              "arguments": {}
            },
            "zoneIds": {
              "return": [
                "number"
              ],
              "arguments": {}
            },
            "result": {
              "return": "number",
              "arguments": {}
            },
            "time": {
              "return": "object",
              "arguments": {}
            }
          },
          "arguments": {}
        },
        "cursor": {
          "return": "string",
          "arguments": {}
        }
      }
    ],
    "arguments": {}
  }
}

ScreenlineMetricsEdge: object

A Relay edge containing a ScreenlineMetrics and its cursor.

node:
object

The item at the end of the edge

return:
arguments:
object
cursor:
object

A cursor for use in pagination

return:
arguments:
object
Example
{
  "node": {
    "return": {
      "id": {
        "return": "object",
        "arguments": {}
      },
      "metric": {
        "return": "string",
        "arguments": {}
      },
      "objClass": {
        "return": "string",
        "arguments": {}
      },
      "zoneIds": {
        "return": [
          "number"
        ],
        "arguments": {}
      },
      "result": {
        "return": "number",
        "arguments": {}
      },
      "time": {
        "return": "object",
        "arguments": {}
      }
    },
    "arguments": {}
  },
  "cursor": {
    "return": "string",
    "arguments": {}
  }
}

SensorLocationInput: object

Location data for a sensor Device being added to database with InstallSensor mutation

lat:

Latitude

lon:

Longitude

azi:
Int

Azimuth, center of aim angle

zipcode:

Zip code of sensor location

address:

Address of sensor location

Example
{
  "lat": "number",
  "lon": "number",
  "azi": "number",
  "zipcode": "string",
  "address": "string"
}

SensorStatusConnection: object

Connection to FeedMetric nodes

pageInfo:
object

Pagination data for this connection.

return:
arguments:
object
edges:
object

Contains the nodes in this connection.

return:
arguments:
object
Example
{
  "pageInfo": {
    "return": {
      "hasNextPage": {
        "return": "boolean",
        "arguments": {}
      },
      "hasPreviousPage": {
        "return": "boolean",
        "arguments": {}
      },
      "startCursor": {
        "return": "string",
        "arguments": {}
      },
      "endCursor": {
        "return": "string",
        "arguments": {}
      }
    },
    "arguments": {}
  },
  "edges": {
    "return": [
      {
        "node": {
          "return": {
            "status": {
              "return": "string",
              "arguments": {}
            },
            "mode": {
              "return": "string",
              "arguments": {}
            },
            "version": {
              "return": "string",
              "arguments": {}
            }
          },
          "arguments": {}
        },
        "cursor": {
          "return": "string",
          "arguments": {}
        }
      }
    ],
    "arguments": {}
  }
}

SensorStatusEdge: object

A Relay edge containing a SensorStatus and its cursor.

node:
object

The item at the end of the edge

return:
arguments:
object
cursor:
object

A cursor for use in pagination

return:
arguments:
object
Example
{
  "node": {
    "return": {
      "status": {
        "return": "string",
        "arguments": {}
      },
      "mode": {
        "return": "string",
        "arguments": {}
      },
      "version": {
        "return": "string",
        "arguments": {}
      }
    },
    "arguments": {}
  },
  "cursor": {
    "return": "string",
    "arguments": {}
  }
}

SetSensorMutation: object

Set sensor mode to configuration, operation, calibration, sequence, or klt_sample Mutation handles both the change of mode and the Numina Proc restart

sensorstatus:
object

Serial No. of sensor to change mode

return:
arguments:
object
Example
{
  "sensorstatus": {
    "return": {
      "status": {
        "return": "string",
        "arguments": {}
      },
      "mode": {
        "return": "string",
        "arguments": {}
      },
      "version": {
        "return": "string",
        "arguments": {}
      }
    },
    "arguments": {}
  }
}

SsoLoginMutation: object

Complete SSO log in to the Numina API or dashboard

user:
object

User object for given credentials

return:
arguments:
object
jwt:
object

JWTToken object containing auth token info

return:
arguments:
object
Example
{
  "user": {
    "return": {
      "id": {
        "return": "object",
        "arguments": {}
      },
      "email": {
        "return": "string",
        "arguments": {}
      },
      "name": {
        "return": "string",
        "arguments": {}
      },
      "orgId": {
        "return": "string",
        "arguments": {}
      },
      "joined": {
        "return": "object",
        "arguments": {}
      },
      "position": {
        "return": "string",
        "arguments": {}
      },
      "admin": {
        "return": "boolean",
        "arguments": {}
      },
      "apiKey": {
        "return": "string",
        "arguments": {}
      },
      "authLevel": {
        "return": "string",
        "arguments": {}
      },
      "phone": {
        "return": "string",
        "arguments": {}
      },
      "lowerEmail": {
        "return": "string",
        "arguments": {}
      },
      "organization": {
        "return": {
          "id": {
            "return": "object",
            "arguments": {}
          },
          "name": {
            "return": "string",
            "arguments": {}
          },
          "joined": {
            "return": "object",
            "arguments": {}
          },
          "timezone": {
            "return": "string",
            "arguments": {}
          },
          "zoomLevel": {
            "return": "number",
            "arguments": {}
          },
          "orgLat": {
            "return": "number",
            "arguments": {}
          },
          "orgLon": {
            "return": "number",
            "arguments": {}
          },
          "alias": {
            "return": "string",
            "arguments": {}
          },
          "orgId": {
            "return": "string",
            "arguments": {}
          },
          "devices": {
            "return": {
              "pageInfo": {
                "return": {
                  "hasNextPage": {
                    "return": "boolean",
                    "arguments": {}
                  },
                  "hasPreviousPage": {
                    "return": "boolean"
                  }
                }
              }
            }
          }
        }
      }
    }
  }
}

StartResetWorkflow: object

Start the password reset workflow by creating a reset token and emailing a tokenized URL to the requested email address.

result:
object

'Success' upon success.

return:
arguments:
object
Example
{
  "result": {
    "return": "string",
    "arguments": {}
  }
}

String: string

The String scalar type represents textual data, represented as UTF-8 character sequences. The String type is most often used by GraphQL to represent free-form human-readable text.

TrendWindowEnum: string

object
EARLY_MORNING
object
MORNING_COMMUTE
object
MORNING
object
NOON
object
AFTERNOON
object
EVENING_COMMUTE
object
EVENING
object
NIGHT

UpdateBehaviorZone: object

Update data pertaining to a BehaviorZone object in the Numina database

behaviorZone:
object

BehaviorZone object that was updated

return:
arguments:
object
Example
{
  "behaviorZone": {
    "return": {
      "zoneType": {
        "return": "string",
        "arguments": {}
      },
      "id": {
        "return": "object",
        "arguments": {}
      },
      "demarcation": {
        "return": [
          [
            "number"
          ]
        ],
        "arguments": {}
      },
      "feedId": {
        "return": "string",
        "arguments": {}
      },
      "text": {
        "return": "string",
        "arguments": {}
      },
      "color": {
        "return": "string",
        "arguments": {}
      },
      "isCoverageZone": {
        "return": "boolean",
        "arguments": {}
      },
      "feed": {
        "return": {
          "id": {
            "return": "object",
            "arguments": {}
          },
          "name": {
            "return": "string",
            "arguments": {}
          },
          "created": {
            "return": "object",
            "arguments": {}
          },
          "description": {
            "return": "string",
            "arguments": {}
          },
          "device": {
            "return": {
              "id": {
                "return": "object",
                "arguments": {}
              },
              "serialno": {
                "return": "string",
                "arguments": {}
              },
              "name": {
                "return": "string",
                "arguments": {}
              },
              "alias": {
                "return": "string",
                "arguments": {}
              },
              "tags": {
                "return": "string",
                "arguments": {}
              },
              "notes": {
                "return": "string",
                "arguments": {}
              },
              "status": {
                "return": "string",
                "arguments": {}
              },
              "created": {
                "return": "object",
                "arguments": {}
              },
              "orgId": {
                "return": "string",
                "arguments": {}
              },
              "locationId": {
                "return": "string",
                "arguments": {}
              },
              "feedId": {
                "return": "string",
                "arguments": {}
              }
            }
          }
        }
      }
    }
  }
}

UpdateDevice: object

Update all non-location data pertaining to a device object (admin required)

device:
object

Device object that was updated

return:
arguments:
object
Example
{
  "device": {
    "return": {
      "id": {
        "return": "object",
        "arguments": {}
      },
      "serialno": {
        "return": "string",
        "arguments": {}
      },
      "name": {
        "return": "string",
        "arguments": {}
      },
      "alias": {
        "return": "string",
        "arguments": {}
      },
      "tags": {
        "return": "string",
        "arguments": {}
      },
      "notes": {
        "return": "string",
        "arguments": {}
      },
      "status": {
        "return": "string",
        "arguments": {}
      },
      "created": {
        "return": "object",
        "arguments": {}
      },
      "orgId": {
        "return": "string",
        "arguments": {}
      },
      "locationId": {
        "return": "string",
        "arguments": {}
      },
      "feedId": {
        "return": "string",
        "arguments": {}
      },
      "samplingRate": {
        "return": "string",
        "arguments": {}
      },
      "organization": {
        "return": {
          "id": {
            "return": "object",
            "arguments": {}
          },
          "name": {
            "return": "string",
            "arguments": {}
          },
          "joined": {
            "return": "object",
            "arguments": {}
          },
          "timezone": {
            "return": "string",
            "arguments": {}
          },
          "zoomLevel": {
            "return": "number",
            "arguments": {}
          },
          "orgLat": {
            "return": "number",
            "arguments": {}
          },
          "orgLon": {
            "return": "number",
            "arguments": {}
          },
          "alias": {
            "return": "string",
            "arguments": {}
          },
          "orgId": {
            "return": "string",
            "arguments": {}
          },
          "devices": {
            "return": {
              "pageInfo": {
                "return": {
                  "hasNextPage": {
                    "return": "boolean"
                  }
                }
              }
            }
          }
        }
      }
    }
  }
}

UpdateDeviceInput: object

Non-location data for a sensor Device being added to database with InstallSensor mutation

serialno:

Serial number of device

name:

Human-readable name of device

notes:

Miscellaneous notes

tags:

Identifying tags, currently unused.

alias:

Internal shorthand (auto-generated)

status:

Device reporting status

orgId:

Organization ID

Example
{
  "serialno": "string",
  "name": "string",
  "notes": "string",
  "tags": "string",
  "alias": "string",
  "status": "string",
  "orgId": "string"
}

UpdateDeviceLocation: object

Update location data associated with a Device object in the Numina database

device:
object
return:
arguments:
object
Example
{
  "device": {
    "return": {
      "id": {
        "return": "object",
        "arguments": {}
      },
      "serialno": {
        "return": "string",
        "arguments": {}
      },
      "name": {
        "return": "string",
        "arguments": {}
      },
      "alias": {
        "return": "string",
        "arguments": {}
      },
      "tags": {
        "return": "string",
        "arguments": {}
      },
      "notes": {
        "return": "string",
        "arguments": {}
      },
      "status": {
        "return": "string",
        "arguments": {}
      },
      "created": {
        "return": "object",
        "arguments": {}
      },
      "orgId": {
        "return": "string",
        "arguments": {}
      },
      "locationId": {
        "return": "string",
        "arguments": {}
      },
      "feedId": {
        "return": "string",
        "arguments": {}
      },
      "samplingRate": {
        "return": "string",
        "arguments": {}
      },
      "organization": {
        "return": {
          "id": {
            "return": "object",
            "arguments": {}
          },
          "name": {
            "return": "string",
            "arguments": {}
          },
          "joined": {
            "return": "object",
            "arguments": {}
          },
          "timezone": {
            "return": "string",
            "arguments": {}
          },
          "zoomLevel": {
            "return": "number",
            "arguments": {}
          },
          "orgLat": {
            "return": "number",
            "arguments": {}
          },
          "orgLon": {
            "return": "number",
            "arguments": {}
          },
          "alias": {
            "return": "string",
            "arguments": {}
          },
          "orgId": {
            "return": "string",
            "arguments": {}
          },
          "devices": {
            "return": {
              "pageInfo": {
                "return": {
                  "hasNextPage": {
                    "return": "boolean"
                  }
                }
              }
            }
          }
        }
      }
    }
  }
}

UpdateDeviceSampleImage: object

Updates the sample image of a device for a given date (admin-only)

success:
object

returns s3 URI of sample image file if successful

return:
arguments:
object
Example
{
  "success": {
    "return": "string",
    "arguments": {}
  }
}

UpdateOrganization: object

Update data pertaining to an Organization object in the Numina database (admin-only)

organization:
object

Updated Organization object

return:
arguments:
object
Example
{
  "organization": {
    "return": {
      "id": {
        "return": "object",
        "arguments": {}
      },
      "name": {
        "return": "string",
        "arguments": {}
      },
      "joined": {
        "return": "object",
        "arguments": {}
      },
      "timezone": {
        "return": "string",
        "arguments": {}
      },
      "zoomLevel": {
        "return": "number",
        "arguments": {}
      },
      "orgLat": {
        "return": "number",
        "arguments": {}
      },
      "orgLon": {
        "return": "number",
        "arguments": {}
      },
      "alias": {
        "return": "string",
        "arguments": {}
      },
      "orgId": {
        "return": "string",
        "arguments": {}
      },
      "devices": {
        "return": {
          "pageInfo": {
            "return": {
              "hasNextPage": {
                "return": "boolean",
                "arguments": {}
              },
              "hasPreviousPage": {
                "return": "boolean",
                "arguments": {}
              },
              "startCursor": {
                "return": "string",
                "arguments": {}
              },
              "endCursor": {
                "return": "string",
                "arguments": {}
              }
            },
            "arguments": {}
          },
          "edges": {
            "return": [
              {
                "node": {
                  "return": {
                    "id": {
                      "return": "object",
                      "arguments": {}
                    },
                    "serialno": {
                      "return": "string",
                      "arguments": {}
                    },
                    "name": {
                      "return": "string",
                      "arguments": {}
                    },
                    "alias": {
                      "return": "string",
                      "arguments": {}
                    },
                    "tags": {
                      "return": "string",
                      "arguments": {}
                    },
                    "notes": {
                      "return": "string",
                      "arguments": {}
                    },
                    "status": {
                      "return": "string",
                      "arguments": {}
                    },
                    "created": {}
                  }
                }
              }
            ]
          }
        }
      }
    }
  }
}

UpdateUserMutation: object

Update data pertaining to the requesting User's User object in the Numina database.

user:
object

Updated User object

return:
arguments:
object
Example
{
  "user": {
    "return": {
      "id": {
        "return": "object",
        "arguments": {}
      },
      "email": {
        "return": "string",
        "arguments": {}
      },
      "name": {
        "return": "string",
        "arguments": {}
      },
      "orgId": {
        "return": "string",
        "arguments": {}
      },
      "joined": {
        "return": "object",
        "arguments": {}
      },
      "position": {
        "return": "string",
        "arguments": {}
      },
      "admin": {
        "return": "boolean",
        "arguments": {}
      },
      "apiKey": {
        "return": "string",
        "arguments": {}
      },
      "authLevel": {
        "return": "string",
        "arguments": {}
      },
      "phone": {
        "return": "string",
        "arguments": {}
      },
      "lowerEmail": {
        "return": "string",
        "arguments": {}
      },
      "organization": {
        "return": {
          "id": {
            "return": "object",
            "arguments": {}
          },
          "name": {
            "return": "string",
            "arguments": {}
          },
          "joined": {
            "return": "object",
            "arguments": {}
          },
          "timezone": {
            "return": "string",
            "arguments": {}
          },
          "zoomLevel": {
            "return": "number",
            "arguments": {}
          },
          "orgLat": {
            "return": "number",
            "arguments": {}
          },
          "orgLon": {
            "return": "number",
            "arguments": {}
          },
          "alias": {
            "return": "string",
            "arguments": {}
          },
          "orgId": {
            "return": "string",
            "arguments": {}
          },
          "devices": {
            "return": {
              "pageInfo": {
                "return": {
                  "hasNextPage": {
                    "return": "boolean",
                    "arguments": {}
                  },
                  "hasPreviousPage": {
                    "return": "boolean"
                  }
                }
              }
            }
          }
        }
      }
    }
  }
}

UpgradeSensorMutation: object

Sends upgrade command to an MQTT sensor and triggers an upgrade to a new sensor firmware version

The version should be the calendar version folder to look under inside the numina-firmware-versions S3 bucket.

sensorstatus:
object

Serial No. of sensor to change mode

return:
arguments:
object
Example
{
  "sensorstatus": {
    "return": {
      "status": {
        "return": "string",
        "arguments": {}
      },
      "mode": {
        "return": "string",
        "arguments": {}
      },
      "version": {
        "return": "string",
        "arguments": {}
      }
    },
    "arguments": {}
  }
}

User: object

A user account in the Numina database

id:
object

The ID of the object.

return:
ID
arguments:
object
email:
object

User's email address

return:
arguments:
object
name:
object

User's name

return:
arguments:
object
orgId:
object

Database id of the organization this user belongs to

return:
arguments:
object
joined:
object

Timestamp at which this user was created

return:
arguments:
object
position:
object

User's position in their organization (e.g. 'manager')

return:
arguments:
object
admin:
object

User's administrator status for internal Numina services

return:
arguments:
object
apiKey:
object

User's API key for future API authentication; not currently used

return:
arguments:
object
authLevel:
object

User's authorization level within the Numina API system, not currently being enforced

return:
arguments:
object
phone:
object

User's phone number

return:
arguments:
object
lowerEmail:
object
return:
arguments:
object
organization:
object
return:
arguments:
object
rawId:
object

Database ID for this object

return:
Int
arguments:
object
mailchimpTags:
object

Mailchimp tags for this user

return:
arguments:
object
Example
{
  "id": {
    "return": "object",
    "arguments": {}
  },
  "email": {
    "return": "string",
    "arguments": {}
  },
  "name": {
    "return": "string",
    "arguments": {}
  },
  "orgId": {
    "return": "string",
    "arguments": {}
  },
  "joined": {
    "return": "object",
    "arguments": {}
  },
  "position": {
    "return": "string",
    "arguments": {}
  },
  "admin": {
    "return": "boolean",
    "arguments": {}
  },
  "apiKey": {
    "return": "string",
    "arguments": {}
  },
  "authLevel": {
    "return": "string",
    "arguments": {}
  },
  "phone": {
    "return": "string",
    "arguments": {}
  },
  "lowerEmail": {
    "return": "string",
    "arguments": {}
  },
  "organization": {
    "return": {
      "id": {
        "return": "object",
        "arguments": {}
      },
      "name": {
        "return": "string",
        "arguments": {}
      },
      "joined": {
        "return": "object",
        "arguments": {}
      },
      "timezone": {
        "return": "string",
        "arguments": {}
      },
      "zoomLevel": {
        "return": "number",
        "arguments": {}
      },
      "orgLat": {
        "return": "number",
        "arguments": {}
      },
      "orgLon": {
        "return": "number",
        "arguments": {}
      },
      "alias": {
        "return": "string",
        "arguments": {}
      },
      "orgId": {
        "return": "string",
        "arguments": {}
      },
      "devices": {
        "return": {
          "pageInfo": {
            "return": {
              "hasNextPage": {
                "return": "boolean",
                "arguments": {}
              },
              "hasPreviousPage": {
                "return": "boolean",
                "arguments": {}
              },
              "startCursor": {}
            }
          }
        }
      }
    }
  }
}

UserConnection: object

Connection to User nodes

pageInfo:
object

Pagination data for this connection.

return:
arguments:
object
edges:
object

Contains the nodes in this connection.

return:
arguments:
object
count:
object

Number of User nodes

return:
Int
arguments:
object
Example
{
  "pageInfo": {
    "return": {
      "hasNextPage": {
        "return": "boolean",
        "arguments": {}
      },
      "hasPreviousPage": {
        "return": "boolean",
        "arguments": {}
      },
      "startCursor": {
        "return": "string",
        "arguments": {}
      },
      "endCursor": {
        "return": "string",
        "arguments": {}
      }
    },
    "arguments": {}
  },
  "edges": {
    "return": [
      {
        "node": {
          "return": {
            "id": {
              "return": "object",
              "arguments": {}
            },
            "email": {
              "return": "string",
              "arguments": {}
            },
            "name": {
              "return": "string",
              "arguments": {}
            },
            "orgId": {
              "return": "string",
              "arguments": {}
            },
            "joined": {
              "return": "object",
              "arguments": {}
            },
            "position": {
              "return": "string",
              "arguments": {}
            },
            "admin": {
              "return": "boolean",
              "arguments": {}
            },
            "apiKey": {
              "return": "string",
              "arguments": {}
            },
            "authLevel": {
              "return": "string",
              "arguments": {}
            },
            "phone": {
              "return": "string",
              "arguments": {}
            },
            "lowerEmail": {
              "return": "string",
              "arguments": {}
            },
            "organization": {
              "return": {
                "id": {
                  "return": "object",
                  "arguments": {}
                },
                "name": {
                  "return": "string",
                  "arguments": {}
                },
                "joined": {
                  "return": "object",
                  "arguments": {}
                },
                "timezone": {
                  "return": "string",
                  "arguments": {}
                },
                "zoomLevel": {
                  "return": "number",
                  "arguments": {}
                },
                "orgLat": {
                  "return": "number",
                  "arguments": {}
                },
                "orgLon": {}
              }
            }
          }
        }
      }
    ]
  }
}

UserEdge: object

A Relay edge containing a User and its cursor.

node:
object

The item at the end of the edge

return:
arguments:
object
cursor:
object

A cursor for use in pagination

return:
arguments:
object
Example
{
  "node": {
    "return": {
      "id": {
        "return": "object",
        "arguments": {}
      },
      "email": {
        "return": "string",
        "arguments": {}
      },
      "name": {
        "return": "string",
        "arguments": {}
      },
      "orgId": {
        "return": "string",
        "arguments": {}
      },
      "joined": {
        "return": "object",
        "arguments": {}
      },
      "position": {
        "return": "string",
        "arguments": {}
      },
      "admin": {
        "return": "boolean",
        "arguments": {}
      },
      "apiKey": {
        "return": "string",
        "arguments": {}
      },
      "authLevel": {
        "return": "string",
        "arguments": {}
      },
      "phone": {
        "return": "string",
        "arguments": {}
      },
      "lowerEmail": {
        "return": "string",
        "arguments": {}
      },
      "organization": {
        "return": {
          "id": {
            "return": "object",
            "arguments": {}
          },
          "name": {
            "return": "string",
            "arguments": {}
          },
          "joined": {
            "return": "object",
            "arguments": {}
          },
          "timezone": {
            "return": "string",
            "arguments": {}
          },
          "zoomLevel": {
            "return": "number",
            "arguments": {}
          },
          "orgLat": {
            "return": "number",
            "arguments": {}
          },
          "orgLon": {
            "return": "number",
            "arguments": {}
          },
          "alias": {
            "return": "string",
            "arguments": {}
          },
          "orgId": {
            "return": "string",
            "arguments": {}
          },
          "devices": {
            "return": {
              "pageInfo": {
                "return": {
                  "hasNextPage": {
                    "return": "boolean",
                    "arguments": {}
                  },
                  "hasPreviousPage": {
                    "return": "boolean"
                  }
                }
              }
            }
          }
        }
      }
    }
  }
}

UserSortEnum: string

An enumeration.

object
ID_ASC
object
ID_DESC
object
EMAIL_ASC
object
EMAIL_DESC
object
NAME_ASC
object
NAME_DESC
object
ORG_ID_ASC
object
ORG_ID_DESC
object
JOINED_ASC
object
JOINED_DESC
object
POSITION_ASC
object
POSITION_DESC
object
ADMIN_ASC
object
ADMIN_DESC
object
API_KEY_ASC
object
API_KEY_DESC
object
AUTH_LEVEL_ASC
object
AUTH_LEVEL_DESC
object
PHONE_ASC
object
PHONE_DESC

ZoneDwellTimeMetric: object

A dwell time distribution metric representing aggregate object dwell times for objects that passed through a set of behavior zones, of a given object class and in a given time interval. (e.g. pedestrian dwell time distribution passing through zone 1 at the time interval starting on 2019-01-01T00:00:00) Distributions are expressed as average dwell time value, as well as quartile values.

id:
object

The ID of the object.

return:
ID
arguments:
object
objClass:
object

Object class for the metric

return:
arguments:
object
zoneIds:
object

rawIds of all behaviorZones objects passedthrough

return:
Int
arguments:
object
pct100:
object

Max value (i.e. 100th percentile dwell time in zone)

return:
arguments:
object
pct75:
object

75th percentile dwell time in zone

return:
arguments:
object
pct50:
object

50th percentile dwell time in zone

return:
arguments:
object
pct25:
object

25th percentile dwell time in zone

return:
arguments:
object
mean:
object

mean dwell time in zone

return:
arguments:
object
count:
object

number of objects in zone

return:
Int
arguments:
object
time:
object

Start of time interval

return:
arguments:
object
Example
{
  "id": {
    "return": "object",
    "arguments": {}
  },
  "objClass": {
    "return": "string",
    "arguments": {}
  },
  "zoneIds": {
    "return": [
      "number"
    ],
    "arguments": {}
  },
  "pct100": {
    "return": "number",
    "arguments": {}
  },
  "pct75": {
    "return": "number",
    "arguments": {}
  },
  "pct50": {
    "return": "number",
    "arguments": {}
  },
  "pct25": {
    "return": "number",
    "arguments": {}
  },
  "mean": {
    "return": "number",
    "arguments": {}
  },
  "count": {
    "return": "number",
    "arguments": {}
  },
  "time": {
    "return": "object",
    "arguments": {}
  }
}

ZoneDwellTimeMetricConnection: object

Connection to ZoneDwellTimeMetric nodes

pageInfo:
object

Pagination data for this connection.

return:
arguments:
object
edges:
object

Contains the nodes in this connection.

return:
arguments:
object
Example
{
  "pageInfo": {
    "return": {
      "hasNextPage": {
        "return": "boolean",
        "arguments": {}
      },
      "hasPreviousPage": {
        "return": "boolean",
        "arguments": {}
      },
      "startCursor": {
        "return": "string",
        "arguments": {}
      },
      "endCursor": {
        "return": "string",
        "arguments": {}
      }
    },
    "arguments": {}
  },
  "edges": {
    "return": [
      {
        "node": {
          "return": {
            "id": {
              "return": "object",
              "arguments": {}
            },
            "objClass": {
              "return": "string",
              "arguments": {}
            },
            "zoneIds": {
              "return": [
                "number"
              ],
              "arguments": {}
            },
            "pct100": {
              "return": "number",
              "arguments": {}
            },
            "pct75": {
              "return": "number",
              "arguments": {}
            },
            "pct50": {
              "return": "number",
              "arguments": {}
            },
            "pct25": {
              "return": "number",
              "arguments": {}
            },
            "mean": {
              "return": "number",
              "arguments": {}
            },
            "count": {
              "return": "number",
              "arguments": {}
            },
            "time": {
              "return": "object",
              "arguments": {}
            }
          },
          "arguments": {}
        },
        "cursor": {
          "return": "string",
          "arguments": {}
        }
      }
    ],
    "arguments": {}
  }
}

ZoneDwellTimeMetricEdge: object

A Relay edge containing a ZoneDwellTimeMetric and its cursor.

node:
object

The item at the end of the edge

return:
arguments:
object
cursor:
object

A cursor for use in pagination

return:
arguments:
object
Example
{
  "node": {
    "return": {
      "id": {
        "return": "object",
        "arguments": {}
      },
      "objClass": {
        "return": "string",
        "arguments": {}
      },
      "zoneIds": {
        "return": [
          "number"
        ],
        "arguments": {}
      },
      "pct100": {
        "return": "number",
        "arguments": {}
      },
      "pct75": {
        "return": "number",
        "arguments": {}
      },
      "pct50": {
        "return": "number",
        "arguments": {}
      },
      "pct25": {
        "return": "number",
        "arguments": {}
      },
      "mean": {
        "return": "number",
        "arguments": {}
      },
      "count": {
        "return": "number",
        "arguments": {}
      },
      "time": {
        "return": "object",
        "arguments": {}
      }
    },
    "arguments": {}
  },
  "cursor": {
    "return": "string",
    "arguments": {}
  }
}

ZoneHeatmap: object

Heatmap node returned by zoneHeatmaps analytics query. Contains heatmap for a given object class and time interval. Heatmaps are a representation of how objects move about the street scene, with higher data values for a given pixel meaning more objects moved through that pixel.

In the case of ZoneHeatmaps, in particular, only objects that passed through the zone's encompassed space are included in the heatmap compution.

id:
object

The ID of the object.

return:
ID
arguments:
object
objClass:
object

Object class for the heatmap (e.g. 'car')

return:
arguments:
object
zoneIds:
object

rawIds of all behaviorZones tracks passed through

return:
Int
arguments:
object
time:
object

Start of time interval for heatmap

return:
arguments:
object
heatmap:
object

Heatmap as a list of [x,y,data] values

return:
arguments:
object
Example
{
  "id": {
    "return": "object",
    "arguments": {}
  },
  "objClass": {
    "return": "string",
    "arguments": {}
  },
  "zoneIds": {
    "return": [
      "number"
    ],
    "arguments": {}
  },
  "time": {
    "return": "object",
    "arguments": {}
  },
  "heatmap": {
    "return": "object",
    "arguments": {}
  }
}

ZoneHeatmapsConnection: object

Connection to ZoneHeatmap nodes

pageInfo:
object

Pagination data for this connection.

return:
arguments:
object
edges:
object

Contains the nodes in this connection.

return:
arguments:
object
Example
{
  "pageInfo": {
    "return": {
      "hasNextPage": {
        "return": "boolean",
        "arguments": {}
      },
      "hasPreviousPage": {
        "return": "boolean",
        "arguments": {}
      },
      "startCursor": {
        "return": "string",
        "arguments": {}
      },
      "endCursor": {
        "return": "string",
        "arguments": {}
      }
    },
    "arguments": {}
  },
  "edges": {
    "return": [
      {
        "node": {
          "return": {
            "id": {
              "return": "object",
              "arguments": {}
            },
            "objClass": {
              "return": "string",
              "arguments": {}
            },
            "zoneIds": {
              "return": [
                "number"
              ],
              "arguments": {}
            },
            "time": {
              "return": "object",
              "arguments": {}
            },
            "heatmap": {
              "return": "object",
              "arguments": {}
            }
          },
          "arguments": {}
        },
        "cursor": {
          "return": "string",
          "arguments": {}
        }
      }
    ],
    "arguments": {}
  }
}

ZoneHeatmapsEdge: object

A Relay edge containing a ZoneHeatmaps and its cursor.

node:
object

The item at the end of the edge

return:
arguments:
object
cursor:
object

A cursor for use in pagination

return:
arguments:
object
Example
{
  "node": {
    "return": {
      "id": {
        "return": "object",
        "arguments": {}
      },
      "objClass": {
        "return": "string",
        "arguments": {}
      },
      "zoneIds": {
        "return": [
          "number"
        ],
        "arguments": {}
      },
      "time": {
        "return": "object",
        "arguments": {}
      },
      "heatmap": {
        "return": "object",
        "arguments": {}
      }
    },
    "arguments": {}
  },
  "cursor": {
    "return": "string",
    "arguments": {}
  }
}

ZoneMaxOccupancy: object

A metric (e.g. count) representing max occupancy for objects that passed through a set of behavior zones, of a given object class and in a given time interval. (e.g. pedestrian counts passing through zone 1 at the time interval starting on 2019-01-01T00:00:00)

id:
object

The ID of the object.

return:
ID
arguments:
object
objClass:
object

Object class for the metric

return:
arguments:
object
zoneIds:
object

rawIds of all behaviorZones objects passedthrough

return:
Int
arguments:
object
result:
object

Max occupancy value (e.g. 6)

return:
Int
arguments:
object
time:
object

Start of time interval for metric

return:
arguments:
object
left:
object

Min x of the behavior zone box

return:
Int
arguments:
object
right:
object

Max x of the behavior zone box

return:
Int
arguments:
object
top:
object

Min y of the behavior zone box

return:
Int
arguments:
object
bottom:
object

Max y of the behavior zone box

return:
Int
arguments:
object
Example
{
  "id": {
    "return": "object",
    "arguments": {}
  },
  "objClass": {
    "return": "string",
    "arguments": {}
  },
  "zoneIds": {
    "return": [
      "number"
    ],
    "arguments": {}
  },
  "result": {
    "return": "number",
    "arguments": {}
  },
  "time": {
    "return": "object",
    "arguments": {}
  },
  "left": {
    "return": "number",
    "arguments": {}
  },
  "right": {
    "return": "number",
    "arguments": {}
  },
  "top": {
    "return": "number",
    "arguments": {}
  },
  "bottom": {
    "return": "number",
    "arguments": {}
  }
}

ZoneMaxOccupancyConnection: object

Connection to ZoneMetric nodes

pageInfo:
object

Pagination data for this connection.

return:
arguments:
object
edges:
object

Contains the nodes in this connection.

return:
arguments:
object
Example
{
  "pageInfo": {
    "return": {
      "hasNextPage": {
        "return": "boolean",
        "arguments": {}
      },
      "hasPreviousPage": {
        "return": "boolean",
        "arguments": {}
      },
      "startCursor": {
        "return": "string",
        "arguments": {}
      },
      "endCursor": {
        "return": "string",
        "arguments": {}
      }
    },
    "arguments": {}
  },
  "edges": {
    "return": [
      {
        "node": {
          "return": {
            "id": {
              "return": "object",
              "arguments": {}
            },
            "objClass": {
              "return": "string",
              "arguments": {}
            },
            "zoneIds": {
              "return": [
                "number"
              ],
              "arguments": {}
            },
            "result": {
              "return": "number",
              "arguments": {}
            },
            "time": {
              "return": "object",
              "arguments": {}
            },
            "left": {
              "return": "number",
              "arguments": {}
            },
            "right": {
              "return": "number",
              "arguments": {}
            },
            "top": {
              "return": "number",
              "arguments": {}
            },
            "bottom": {
              "return": "number",
              "arguments": {}
            }
          },
          "arguments": {}
        },
        "cursor": {
          "return": "string",
          "arguments": {}
        }
      }
    ],
    "arguments": {}
  }
}

ZoneMaxOccupancyEdge: object

A Relay edge containing a ZoneMaxOccupancy and its cursor.

node:
object

The item at the end of the edge

return:
arguments:
object
cursor:
object

A cursor for use in pagination

return:
arguments:
object
Example
{
  "node": {
    "return": {
      "id": {
        "return": "object",
        "arguments": {}
      },
      "objClass": {
        "return": "string",
        "arguments": {}
      },
      "zoneIds": {
        "return": [
          "number"
        ],
        "arguments": {}
      },
      "result": {
        "return": "number",
        "arguments": {}
      },
      "time": {
        "return": "object",
        "arguments": {}
      },
      "left": {
        "return": "number",
        "arguments": {}
      },
      "right": {
        "return": "number",
        "arguments": {}
      },
      "top": {
        "return": "number",
        "arguments": {}
      },
      "bottom": {
        "return": "number",
        "arguments": {}
      }
    },
    "arguments": {}
  },
  "cursor": {
    "return": "string",
    "arguments": {}
  }
}

ZoneMetric: object

A metric (e.g. count) representing aggregate object behavior for objects that passed through a set of behavior zones, of a given object class and in a given time interval. (e.g. pedestrian counts passing through zone 1 at the time interval starting on 2019-01-01T00:00:00)

id:
object

The ID of the object.

return:
ID
arguments:
object
metric:
object

type of metric (e.g. 'count')

return:
arguments:
object
objClass:
object

Object class for the metric

return:
arguments:
object
zoneIds:
object

rawIds of all behaviorZones objects passedthrough

return:
Int
arguments:
object
result:
object

metric value (e.g. 102.0)

return:
arguments:
object
time:
object

Start of time interval for metric

return:
arguments:
object
Example
{
  "id": {
    "return": "object",
    "arguments": {}
  },
  "metric": {
    "return": "string",
    "arguments": {}
  },
  "objClass": {
    "return": "string",
    "arguments": {}
  },
  "zoneIds": {
    "return": [
      "number"
    ],
    "arguments": {}
  },
  "result": {
    "return": "number",
    "arguments": {}
  },
  "time": {
    "return": "object",
    "arguments": {}
  }
}

ZoneMetricsConnection: object

Connection to ZoneMetric nodes

pageInfo:
object

Pagination data for this connection.

return:
arguments:
object
edges:
object

Contains the nodes in this connection.

return:
arguments:
object
Example
{
  "pageInfo": {
    "return": {
      "hasNextPage": {
        "return": "boolean",
        "arguments": {}
      },
      "hasPreviousPage": {
        "return": "boolean",
        "arguments": {}
      },
      "startCursor": {
        "return": "string",
        "arguments": {}
      },
      "endCursor": {
        "return": "string",
        "arguments": {}
      }
    },
    "arguments": {}
  },
  "edges": {
    "return": [
      {
        "node": {
          "return": {
            "id": {
              "return": "object",
              "arguments": {}
            },
            "metric": {
              "return": "string",
              "arguments": {}
            },
            "objClass": {
              "return": "string",
              "arguments": {}
            },
            "zoneIds": {
              "return": [
                "number"
              ],
              "arguments": {}
            },
            "result": {
              "return": "number",
              "arguments": {}
            },
            "time": {
              "return": "object",
              "arguments": {}
            }
          },
          "arguments": {}
        },
        "cursor": {
          "return": "string",
          "arguments": {}
        }
      }
    ],
    "arguments": {}
  }
}

ZoneMetricsEdge: object

A Relay edge containing a ZoneMetrics and its cursor.

node:
object

The item at the end of the edge

return:
arguments:
object
cursor:
object

A cursor for use in pagination

return:
arguments:
object
Example
{
  "node": {
    "return": {
      "id": {
        "return": "object",
        "arguments": {}
      },
      "metric": {
        "return": "string",
        "arguments": {}
      },
      "objClass": {
        "return": "string",
        "arguments": {}
      },
      "zoneIds": {
        "return": [
          "number"
        ],
        "arguments": {}
      },
      "result": {
        "return": "number",
        "arguments": {}
      },
      "time": {
        "return": "object",
        "arguments": {}
      }
    },
    "arguments": {}
  },
  "cursor": {
    "return": "string",
    "arguments": {}
  }
}

ZoneUtilizationMetric: object

A metric representing time an object spent utilizing (spending 5 or more seconds in) a section of a given behavior zone, of a given object class in a given time interval. (e.g. pedestrians utilizing zone 1 at the time interval starting on 2019-01-01T00:00:00 and ending on 2019-01-31T00:00:00)

id:
object

The ID of the object.

return:
ID
arguments:
object
objClass:
object

Object class for the metric

return:
arguments:
object
utilizationTimeMs:
object

Milliseconds of Utilization Time

return:
arguments:
object
startX:
object

Start X coordinate of the utilization area

return:
arguments:
object
startY:
object

Start Y coordinate of the utilization area

return:
arguments:
object
zoneIds:
object

Zone IDs

return:
arguments:
object
Example
{
  "id": {
    "return": "object",
    "arguments": {}
  },
  "objClass": {
    "return": "string",
    "arguments": {}
  },
  "utilizationTimeMs": {
    "return": "number",
    "arguments": {}
  },
  "startX": {
    "return": "number",
    "arguments": {}
  },
  "startY": {
    "return": "number",
    "arguments": {}
  },
  "zoneIds": {
    "return": [
      "string"
    ],
    "arguments": {}
  }
}

ZoneUtilizationMetricConnection: object

Connection to ZoneUtilizationlMetric nodes

pageInfo:
object

Pagination data for this connection.

return:
arguments:
object
edges:
object

Contains the nodes in this connection.

return:
arguments:
object
Example
{
  "pageInfo": {
    "return": {
      "hasNextPage": {
        "return": "boolean",
        "arguments": {}
      },
      "hasPreviousPage": {
        "return": "boolean",
        "arguments": {}
      },
      "startCursor": {
        "return": "string",
        "arguments": {}
      },
      "endCursor": {
        "return": "string",
        "arguments": {}
      }
    },
    "arguments": {}
  },
  "edges": {
    "return": [
      {
        "node": {
          "return": {
            "id": {
              "return": "object",
              "arguments": {}
            },
            "objClass": {
              "return": "string",
              "arguments": {}
            },
            "utilizationTimeMs": {
              "return": "number",
              "arguments": {}
            },
            "startX": {
              "return": "number",
              "arguments": {}
            },
            "startY": {
              "return": "number",
              "arguments": {}
            },
            "zoneIds": {
              "return": [
                "string"
              ],
              "arguments": {}
            }
          },
          "arguments": {}
        },
        "cursor": {
          "return": "string",
          "arguments": {}
        }
      }
    ],
    "arguments": {}
  }
}

ZoneUtilizationMetricEdge: object

A Relay edge containing a ZoneUtilizationMetric and its cursor.

node:
object

The item at the end of the edge

return:
arguments:
object
cursor:
object

A cursor for use in pagination

return:
arguments:
object
Example
{
  "node": {
    "return": {
      "id": {
        "return": "object",
        "arguments": {}
      },
      "objClass": {
        "return": "string",
        "arguments": {}
      },
      "utilizationTimeMs": {
        "return": "number",
        "arguments": {}
      },
      "startX": {
        "return": "number",
        "arguments": {}
      },
      "startY": {
        "return": "number",
        "arguments": {}
      },
      "zoneIds": {
        "return": [
          "string"
        ],
        "arguments": {}
      }
    },
    "arguments": {}
  },
  "cursor": {
    "return": "string",
    "arguments": {}
  }
}