Object Model
Common fields
Each object in the API may be given an identifier, indicated via its id
field,
and will typically be addressable via a URI. Many objects will also have
created_at
and updated_at
fields indicating the object's creation and update
timestamps, respectively.
Dates and timestamps fields are always returned in ISO 8601 format, in UTC. For
example, 2020-05-03
and 2020-05-03T13:06:30Z
.
Optional fields
Unpopulated optional data is returned as follows:
- Number, String and Boolean types may be returned as having
null
values. - Arrays and Objects may be returned as empty (
[]
or{}
)
Identifiers
All objects in the API have an id
field indicating their logical identifier.
These fields must always be treated as opaque strings, i.e., no guarantees are
made about the internal structure of the id
fields for an object.
The id
field is always defined by the API and is guaranteed to be unique
relative to resource type.
Nested object relationships
Inter-object references are always serialized with a nested object, rather than
using a <object_type>_id
to represent a foreign key, e.g.:
Custom values
Task objects can be extended with custom values. Values are JSON objects, which are validated against pre-defined custom types.
caution
Custom types & values are in Beta release.