Nest Changelog
1.0.4
9/15/2021
1.0.5
9/22/2021
37 changed endpoints Collapse changed endpoints
POST /auth 
Sign in with email address and password
Response Body
{
- data: List<{
- family?: List<{
- id?: number,
- image?: {
- default?: string,
- large?: string,
- medium?: string,
- small?: string,
- },
- nickname?: string,
- }>,
guid?: string,
jwt?: string,
- plan?: {
features?: record,
id?: number,
name?: string,
},
userId?: number,
- }>,
}GET /auth/{sessionGuid} 
Refresh the token
Response Body
{
- data: List<{
- family?: List<{
- id?: number,
- image?: {
- default?: string,
- large?: string,
- medium?: string,
- small?: string,
- },
- nickname?: string,
- }>,
guid?: string,
jwt?: string,
- plan?: {
features?: record,
id?: number,
name?: string,
},
userId?: number,
- }>,
}GET /users 
Get all users
Response Body
{
data: List<{
- createdBy?: record,
- dateActivated?: number,
- dateBirth?: string,
- dateCreated?: number,
- dateUpdated?: number,
- email?: string,
- firstName?: string,
- gender?: {
- text?: string,
- value?: string,
},
- height?: record,
- id?: number,
- image?: {
default?: string,
large?: string,
medium?: string,
small?: string,
},
- lastName?: string,
- nickname?: string,
- parentId?: number,
- purchased?: record,
- roles?: List<string>,
- stripe?: record,
- updatedBy?: {
id?: number,
},
- weight?: record,
}>,
}GET /users 
Get all users
Response Body
{
data: List<{
+ createdBy: record,
+ dateActivated: number,
+ dateBirth: string,
+ dateCreated: number,
+ dateUpdated: number,
+ email: string,
+ firstName: string,
+ gender: {
+ text: string,
+ value?: 'm' | 'f',
},
+ height: record,
+ id: number,
+ image: {
default?: string,
large?: string,
medium?: string,
small?: string,
},
+ lastName: string,
+ mongoId?: string,
+ nickname: string,
+ parentId: number,
+ purchased: record,
+ roles: List<string>,
+ stripe: record,
+ updatedBy: {
id?: number,
},
+ weight: record,
}>,
}GET /users/{userId} 
Get a specific user by id
Response Body
{
- data: List<{
- createdBy?: record,
- dateActivated?: number,
- dateBirth?: string,
- dateCreated?: number,
- dateUpdated?: number,
- email?: string,
- firstName?: string,
- gender?: {
- text?: string,
- value?: string,
},
- height?: record,
- id?: number,
- image?: {
default?: string,
large?: string,
medium?: string,
small?: string,
},
- lastName?: string,
- nickname?: string,
- parentId?: number,
- purchased?: record,
- roles?: List<string>,
- stripe?: record,
- updatedBy?: {
id?: number,
},
- weight?: record,
- }>,
}GET /users/{userId} 
Get a specific user by id
Response Body
{
+ data: {
+ createdBy: record,
+ dateActivated: number,
+ dateBirth: string,
+ dateCreated: number,
+ dateUpdated: number,
+ email: string,
+ firstName: string,
+ gender: {
+ text: string,
+ value?: 'm' | 'f',
},
+ height: record,
+ id: number,
+ image: {
default?: string,
large?: string,
medium?: string,
small?: string,
},
+ lastName: string,
+ mongoId?: string,
+ nickname: string,
+ parentId: number,
+ purchased: record,
+ roles: List<string>,
+ stripe: record,
+ updatedBy: {
id?: number,
},
+ weight: record,
+ },
}PATCH /users/{userId} 
Edit this user
Request Body
{
dateBirth: string,
email: string,
firstName: string,
gender: {
- text?: string,
- value?: string,
},
height: {
- units?: string,
value?: number,
},
lastName: string,
nickname: string,
weight: {
- units?: string,
value?: number,
},
}Response Body
{
- data: List<{
- createdBy?: record,
- dateActivated?: number,
- dateBirth?: string,
- dateCreated?: number,
- dateUpdated?: number,
- email?: string,
- firstName?: string,
- gender?: {
- text?: string,
- value?: string,
},
- height?: record,
- id?: number,
- image?: {
default?: string,
large?: string,
medium?: string,
small?: string,
},
- lastName?: string,
- nickname?: string,
- parentId?: number,
- purchased?: record,
- roles?: List<string>,
- stripe?: record,
- updatedBy?: {
id?: number,
},
- weight?: record,
- }>,
}PATCH /users/{userId} 
Edit this user
Request Body
{
dateBirth: string,
email: string,
firstName: string,
gender: {
+ text: string,
+ value?: 'm' | 'f',
},
height: {
+ units?: 'in' | 'cm',
value?: number,
},
lastName: string,
nickname: string,
weight: {
+ units?: 'lb' | 'kg',
value?: number,
},
}Response Body
{
+ data: {
+ createdBy: record,
+ dateActivated: number,
+ dateBirth: string,
+ dateCreated: number,
+ dateUpdated: number,
+ email: string,
+ firstName: string,
+ gender: {
+ text: string,
+ value?: 'm' | 'f',
},
+ height: record,
+ id: number,
+ image: {
default?: string,
large?: string,
medium?: string,
small?: string,
},
+ lastName: string,
+ mongoId?: string,
+ nickname: string,
+ parentId: number,
+ purchased: record,
+ roles: List<string>,
+ stripe: record,
+ updatedBy: {
id?: number,
},
+ weight: record,
+ },
}GET /users/{userId}/family 
Get child accounts of this user
Response Body
{
data: List<{
- createdBy?: record,
- dateActivated?: number,
- dateBirth?: string,
- dateCreated?: number,
- dateUpdated?: number,
- email?: string,
- firstName?: string,
- gender?: {
- text?: string,
- value?: string,
},
- height?: record,
- id?: number,
- image?: {
default?: string,
large?: string,
medium?: string,
small?: string,
},
- lastName?: string,
- nickname?: string,
- parentId?: number,
- purchased?: record,
- roles?: List<string>,
- stripe?: record,
- updatedBy?: {
id?: number,
},
- weight?: record,
}>,
}GET /users/{userId}/family 
Get child accounts of this user
Response Body
{
data: List<{
+ createdBy: record,
+ dateActivated: number,
+ dateBirth: string,
+ dateCreated: number,
+ dateUpdated: number,
+ email: string,
+ firstName: string,
+ gender: {
+ text: string,
+ value?: 'm' | 'f',
},
+ height: record,
+ id: number,
+ image: {
default?: string,
large?: string,
medium?: string,
small?: string,
},
+ lastName: string,
+ mongoId?: string,
+ nickname: string,
+ parentId: number,
+ purchased: record,
+ roles: List<string>,
+ stripe: record,
+ updatedBy: {
id?: number,
},
+ weight: record,
}>,
}POST /users/{userId}/family 
Request Body
{
dateBirth?: string,
email?: string,
firstName?: string,
gender: {
- text?: string,
- value?: string,
},
height: {
- units?: string,
value?: number,
},
lastName?: string,
nickname: string,
weight: {
- units?: string,
value?: number,
},
}Response Body
{
- data: List<{
- createdBy?: record,
- dateActivated?: number,
- dateBirth?: string,
- dateCreated?: number,
- dateUpdated?: number,
- email?: string,
- firstName?: string,
- gender?: {
- text?: string,
- value?: string,
},
- height?: record,
- id?: number,
- image?: {
default?: string,
large?: string,
medium?: string,
small?: string,
},
- lastName?: string,
- nickname?: string,
- parentId?: number,
- purchased?: record,
- roles?: List<string>,
- stripe?: record,
- updatedBy?: {
id?: number,
},
- weight?: record,
- }>,
}POST /users/{userId}/family 
Request Body
{
dateBirth?: string,
email?: string,
firstName?: string,
gender: {
+ text: string,
+ value?: 'm' | 'f',
},
height: {
+ units?: 'in' | 'cm',
value?: number,
},
lastName?: string,
nickname: string,
weight: {
+ units?: 'lb' | 'kg',
value?: number,
},
}Response Body
{
+ data: {
+ createdBy: record,
+ dateActivated: number,
+ dateBirth: string,
+ dateCreated: number,
+ dateUpdated: number,
+ email: string,
+ firstName: string,
+ gender: {
+ text: string,
+ value?: 'm' | 'f',
},
+ height: record,
+ id: number,
+ image: {
default?: string,
large?: string,
medium?: string,
small?: string,
},
+ lastName: string,
+ mongoId?: string,
+ nickname: string,
+ parentId: number,
+ purchased: record,
+ roles: List<string>,
+ stripe: record,
+ updatedBy: {
id?: number,
},
+ weight: record,
+ },
}GET /plans 
Get all Plans
Response Body
{
+ data: List<{
+ amazon: {
+ sku: string,
+ },
+ id?: number,
+ image: {
+ url?: string,
+ },
+ name: string,
+ price: {
+ currency: string,
+ units?: number,
+ },
+ shopify: {
+ productId?: string,
+ shopId: string,
+ },
+ sku: string,
+ sortOrder: number,
+ stripe: {
+ planId?: string,
+ productId?: string,
+ },
+ termFrequency: number,
+ trialDays: number,
+ }>,
}POST /plans 
Create Plan
Request Body
{
amazon: {
- sku?: string,
},
image: {
url?: string,
},
name?: string,
shopify: {
productId?: string,
- shopId?: string,
},
sku: string,
sortOrder: number,
stripe: {
planId?: string,
productId?: string,
},
termFrequency?: number,
trialDays: number,
}Response Body
{
}POST /plans 
Create Plan
Request Body
{
amazon: {
+ sku: string,
},
image: {
url?: string,
},
name?: string,
+ price: {
+ currency: string,
+ units?: number,
+ },
shopify: {
productId?: string,
+ shopId: string,
},
sku: string,
sortOrder: number,
stripe: {
planId?: string,
productId?: string,
},
termFrequency?: number,
trialDays: number,
}Response Body
{
+ data: {
+ amazon: {
+ sku: string,
+ },
+ id?: number,
+ image: {
+ url?: string,
+ },
+ name: string,
+ price: {
+ currency: string,
+ units?: number,
+ },
+ shopify: {
+ productId?: string,
+ shopId: string,
+ },
+ sku: string,
+ sortOrder: number,
+ stripe: {
+ planId?: string,
+ productId?: string,
+ },
+ termFrequency: number,
+ trialDays: number,
+ },
}GET /plans/{id} 
Get Plan by id
Response Body
{
+ data: {
+ amazon: {
+ sku: string,
+ },
+ id?: number,
+ image: {
+ url?: string,
+ },
+ name: string,
+ price: {
+ currency: string,
+ units?: number,
+ },
+ shopify: {
+ productId?: string,
+ shopId: string,
+ },
+ sku: string,
+ sortOrder: number,
+ stripe: {
+ planId?: string,
+ productId?: string,
+ },
+ termFrequency: number,
+ trialDays: number,
+ },
}PATCH /plans/{id} 
Update Plan
Request Body
{
amazon: {
- sku?: string,
},
image: {
url?: string,
},
name: string,
price: {
- currency?: string,
units?: number,
},
shopify: {
productId?: string,
- shopId?: string,
},
sku: string,
sortOrder: number,
stripe: {
planId?: string,
productId?: string,
},
termFrequency: number,
trialDays: number,
}Response Body
{
}PATCH /plans/{id} 
Update Plan
Request Body
{
amazon: {
+ sku: string,
},
image: {
url?: string,
},
name: string,
price: {
+ currency: string,
units?: number,
},
shopify: {
productId?: string,
+ shopId: string,
},
sku: string,
sortOrder: number,
stripe: {
planId?: string,
productId?: string,
},
termFrequency: number,
trialDays: number,
}Response Body
{
+ data: {
+ amazon: {
+ sku: string,
+ },
+ id?: number,
+ image: {
+ url?: string,
+ },
+ name: string,
+ price: {
+ currency: string,
+ units?: number,
+ },
+ shopify: {
+ productId?: string,
+ shopId: string,
+ },
+ sku: string,
+ sortOrder: number,
+ stripe: {
+ planId?: string,
+ productId?: string,
+ },
+ termFrequency: number,
+ trialDays: number,
+ },
}GET /instructors 
Get a list of instructors
Response Body
{
+ data: List<{
+ bio?: string,
+ flags?: List<'connect' | 'reflect' | 'fitnation' | 'celebrity'>,
+ id?: number,
+ image: {
+ default?: string,
+ large?: string,
+ medium?: string,
+ small?: string,
+ },
+ name?: string,
+ user: {
+ id?: number,
+ },
+ }>,
}POST /instructors 
Create a new instructor
Request Body
{
bio: string,
- flags: List<string>,
image: {
data?: string,
filename?: string,
},
name?: string,
user: {
id?: number,
},
}Response Body
{
}POST /instructors 
Create a new instructor
Request Body
{
bio: string,
+ flags: List<'connect' | 'reflect' | 'fitnation' | 'celebrity'>,
image: {
data?: string,
filename?: string,
},
name?: string,
user: {
id?: number,
},
}Response Body
{
+ data: {
+ bio?: string,
+ flags?: List<'connect' | 'reflect' | 'fitnation' | 'celebrity'>,
+ id?: number,
+ image: {
+ default?: string,
+ large?: string,
+ medium?: string,
+ small?: string,
+ },
+ name?: string,
+ user: {
+ id?: number,
+ },
+ },
}GET /instructors/{id} 
Get a specific instructor
Response Body
{
+ data: {
+ bio?: string,
+ flags?: List<'connect' | 'reflect' | 'fitnation' | 'celebrity'>,
+ id?: number,
+ image: {
+ default?: string,
+ large?: string,
+ medium?: string,
+ small?: string,
+ },
+ name?: string,
+ user: {
+ id?: number,
+ },
+ },
}PATCH /instructors/{id} 
Update an existing instructor
Request Body
{
bio: string,
- flags: List<string>,
image: {
data?: string,
filename?: string,
},
name: string,
user: {
id?: number,
},
}Response Body
{
}PATCH /instructors/{id} 
Update an existing instructor
Request Body
{
bio: string,
+ flags: List<'connect' | 'reflect' | 'fitnation' | 'celebrity'>,
image: {
data?: string,
filename?: string,
},
name: string,
user: {
id?: number,
},
}Response Body
{
+ data: {
+ bio?: string,
+ flags?: List<'connect' | 'reflect' | 'fitnation' | 'celebrity'>,
+ id?: number,
+ image: {
+ default?: string,
+ large?: string,
+ medium?: string,
+ small?: string,
+ },
+ name?: string,
+ user: {
+ id?: number,
+ },
+ },
}GET /features 
Get a list of all available features
Response Body
{
+ data: List<{
+ code: string,
+ defaultValue: record,
+ description: string,
+ id?: number,
+ inputType: 'string' | 'number' | 'boolean' | 'enum',
+ name: string,
+ sortOrder: number,
+ usedBy: List<'client' | 'server'>,
+ validation: {
+ isNullable: bool,
+ maxChoices: number,
+ maxLength: number,
+ maxValue: number,
+ minChoices: number,
+ minLength: number,
+ minValue: number,
+ options: List<string>,
+ precision: number,
+ regexPattern: string,
+ },
+ }>,
}POST /features 
Create a new feature
Request Body
{
- code: string,
defaultValue: record,
description: string,
- inputType: string,
- name: string,
sortOrder: number,
- usedBy: List<string>,
validation: {
isNullable: bool,
maxChoices: number,
maxLength: number,
maxValue: number,
minChoices: number,
minLength: number,
minValue: number,
options: List<string>,
precision: number,
regexPattern: string,
},
}Response Body
{
}POST /features 
Create a new feature
Request Body
{
+ code?: string,
defaultValue: record,
description: string,
+ inputType: 'string' | 'number' | 'boolean' | 'enum',
+ name?: string,
sortOrder: number,
+ usedBy: List<'client' | 'server'>,
validation: {
isNullable: bool,
maxChoices: number,
maxLength: number,
maxValue: number,
minChoices: number,
minLength: number,
minValue: number,
options: List<string>,
precision: number,
regexPattern: string,
},
}Response Body
{
+ data: {
+ code: string,
+ defaultValue: record,
+ description: string,
+ id?: number,
+ inputType: 'string' | 'number' | 'boolean' | 'enum',
+ name: string,
+ sortOrder: number,
+ usedBy: List<'client' | 'server'>,
+ validation: {
+ isNullable: bool,
+ maxChoices: number,
+ maxLength: number,
+ maxValue: number,
+ minChoices: number,
+ minLength: number,
+ minValue: number,
+ options: List<string>,
+ precision: number,
+ regexPattern: string,
+ },
+ },
}GET /features/{id} 
Get a specific feature
Response Body
{
+ data: {
+ code: string,
+ defaultValue: record,
+ description: string,
+ id?: number,
+ inputType: 'string' | 'number' | 'boolean' | 'enum',
+ name: string,
+ sortOrder: number,
+ usedBy: List<'client' | 'server'>,
+ validation: {
+ isNullable: bool,
+ maxChoices: number,
+ maxLength: number,
+ maxValue: number,
+ minChoices: number,
+ minLength: number,
+ minValue: number,
+ options: List<string>,
+ precision: number,
+ regexPattern: string,
+ },
+ },
}PUT /features/{id} 
Update an existing feature
Request Body
{
code: string,
defaultValue: record,
description: string,
- inputType: string,
name: string,
sortOrder: number,
- usedBy: List<string>,
validation: {
isNullable: bool,
maxChoices: number,
maxLength: number,
maxValue: number,
minChoices: number,
minLength: number,
minValue: number,
options: List<string>,
precision: number,
regexPattern: string,
},
}Response Body
{
}PUT /features/{id} 
Update an existing feature
Request Body
{
code: string,
defaultValue: record,
description: string,
+ inputType: 'string' | 'number' | 'boolean' | 'enum',
name: string,
sortOrder: number,
+ usedBy: List<'client' | 'server'>,
validation: {
isNullable: bool,
maxChoices: number,
maxLength: number,
maxValue: number,
minChoices: number,
minLength: number,
minValue: number,
options: List<string>,
precision: number,
regexPattern: string,
},
}Response Body
{
+ data: {
+ code: string,
+ defaultValue: record,
+ description: string,
+ id?: number,
+ inputType: 'string' | 'number' | 'boolean' | 'enum',
+ name: string,
+ sortOrder: number,
+ usedBy: List<'client' | 'server'>,
+ validation: {
+ isNullable: bool,
+ maxChoices: number,
+ maxLength: number,
+ maxValue: number,
+ minChoices: number,
+ minLength: number,
+ minValue: number,
+ options: List<string>,
+ precision: number,
+ regexPattern: string,
+ },
+ },
}GET /songs 
Get a list of songs
Response Body
{
+ data: List<{
+ album: {
+ id?: number,
+ name?: string,
+ },
+ artist: List<List<undefined>>,
+ coverArtUrl?: string,
+ duration: {
+ seconds: number,
+ text: string,
+ },
+ genres: List<List<undefined>>,
+ id?: number,
+ isExplicit?: bool,
+ isrc?: string,
+ label: {
+ id?: number,
+ name?: string,
+ },
+ labelOwner: {
+ id?: number,
+ name?: string,
+ },
+ licenseDetails: {
+ label: record,
+ publisher: record,
+ },
+ licensedIn?: List<string>,
+ name?: string,
+ yearPublished?: number,
+ }>,
}GET /songs/{id} 
Get a specific song
Response Body
{
+ data: {
+ album: {
+ id?: number,
+ name?: string,
+ },
+ artist: List<List<undefined>>,
+ coverArtUrl?: string,
+ duration: {
+ seconds: number,
+ text: string,
+ },
+ genres: List<List<undefined>>,
+ id?: number,
+ isExplicit?: bool,
+ isrc?: string,
+ label: {
+ id?: number,
+ name?: string,
+ },
+ labelOwner: {
+ id?: number,
+ name?: string,
+ },
+ licenseDetails: {
+ label: record,
+ publisher: record,
+ },
+ licensedIn?: List<string>,
+ name?: string,
+ yearPublished?: number,
+ },
}GET /firmware 
Get a list of the available firmware updates
Response Body
{
+ data: List<{
+ appVersions: {
+ android: {
+ maxVersion?: string,
+ minVersion?: string,
+ },
+ ios: {
+ maxVersion?: string,
+ minVersion?: string,
+ },
+ screen: {
+ maxVersion?: string,
+ minVersion?: string,
+ },
+ },
+ dateReleased?: number,
+ dateRequired?: number,
+ id?: number,
+ name?: string,
+ releaseNotes?: string,
+ status?: 'draft' | 'published' | 'trash',
+ supportedModels?: List<string>,
+ type?: 'hardware' | 'tablet' | 'reflect',
+ updateFile: {
+ data?: string,
+ filename?: string,
+ },
+ url?: string,
+ version?: string,
+ }>,
}POST /firmware 
Create Firmware Update
Request Body
{
- appVersions?: {
- android?: {
maxVersion?: string,
minVersion?: string,
},
- ios?: {
maxVersion?: string,
minVersion?: string,
},
- screen?: {
maxVersion?: string,
minVersion?: string,
},
},
dateReleased?: number,
dateRequired?: number,
name?: string,
releaseNotes?: string,
- status?: string,
supportedModels?: List<string>,
- type?: string,
- updateFile?: {
data?: string,
filename?: string,
},
version?: string,
}Response Body
{
}POST /firmware 
Create Firmware Update
Request Body
{
+ appVersions: {
+ android: {
maxVersion?: string,
minVersion?: string,
},
+ ios: {
maxVersion?: string,
minVersion?: string,
},
+ screen: {
maxVersion?: string,
minVersion?: string,
},
},
dateReleased?: number,
dateRequired?: number,
name?: string,
releaseNotes?: string,
+ status?: 'draft' | 'published' | 'trash',
supportedModels?: List<string>,
+ type?: 'hardware' | 'tablet' | 'reflect',
+ updateFile: {
data?: string,
filename?: string,
},
version?: string,
}Response Body
{
+ data: {
+ appVersions: {
+ android: {
+ maxVersion?: string,
+ minVersion?: string,
+ },
+ ios: {
+ maxVersion?: string,
+ minVersion?: string,
+ },
+ screen: {
+ maxVersion?: string,
+ minVersion?: string,
+ },
+ },
+ dateReleased?: number,
+ dateRequired?: number,
+ id?: number,
+ name?: string,
+ releaseNotes?: string,
+ status?: 'draft' | 'published' | 'trash',
+ supportedModels?: List<string>,
+ type?: 'hardware' | 'tablet' | 'reflect',
+ updateFile: {
+ data?: string,
+ filename?: string,
+ },
+ url?: string,
+ version?: string,
+ },
}GET /firmware/{id} 
Get Firmware Update by ID
Response Body
{
+ data: {
+ appVersions: {
+ android: {
+ maxVersion?: string,
+ minVersion?: string,
+ },
+ ios: {
+ maxVersion?: string,
+ minVersion?: string,
+ },
+ screen: {
+ maxVersion?: string,
+ minVersion?: string,
+ },
+ },
+ dateReleased?: number,
+ dateRequired?: number,
+ id?: number,
+ name?: string,
+ releaseNotes?: string,
+ status?: 'draft' | 'published' | 'trash',
+ supportedModels?: List<string>,
+ type?: 'hardware' | 'tablet' | 'reflect',
+ updateFile: {
+ data?: string,
+ filename?: string,
+ },
+ url?: string,
+ version?: string,
+ },
}PUT /firmware/{id} 
Update Firmware Update
Request Body
{
- appVersions?: {
- android?: {
maxVersion?: string,
minVersion?: string,
},
- ios?: {
maxVersion?: string,
minVersion?: string,
},
- screen?: {
maxVersion?: string,
minVersion?: string,
},
},
dateReleased?: number,
dateRequired?: number,
name?: string,
releaseNotes?: string,
- status?: string,
supportedModels?: List<string>,
- type?: string,
- updateFile?: {
data?: string,
filename?: string,
},
version?: string,
}Response Body
{
}PUT /firmware/{id} 
Update Firmware Update
Request Body
{
+ appVersions: {
+ android: {
maxVersion?: string,
minVersion?: string,
},
+ ios: {
maxVersion?: string,
minVersion?: string,
},
+ screen: {
maxVersion?: string,
minVersion?: string,
},
},
dateReleased?: number,
dateRequired?: number,
name?: string,
releaseNotes?: string,
+ status?: 'draft' | 'published' | 'trash',
supportedModels?: List<string>,
+ type?: 'hardware' | 'tablet' | 'reflect',
+ updateFile: {
data?: string,
filename?: string,
},
version?: string,
}Response Body
{
+ data: {
+ appVersions: {
+ android: {
+ maxVersion?: string,
+ minVersion?: string,
+ },
+ ios: {
+ maxVersion?: string,
+ minVersion?: string,
+ },
+ screen: {
+ maxVersion?: string,
+ minVersion?: string,
+ },
+ },
+ dateReleased?: number,
+ dateRequired?: number,
+ id?: number,
+ name?: string,
+ releaseNotes?: string,
+ status?: 'draft' | 'published' | 'trash',
+ supportedModels?: List<string>,
+ type?: 'hardware' | 'tablet' | 'reflect',
+ updateFile: {
+ data?: string,
+ filename?: string,
+ },
+ url?: string,
+ version?: string,
+ },
}