977 lines
24 KiB
YAML
977 lines
24 KiB
YAML
|
swagger: '2.0'
|
||
|
info:
|
||
|
description: API used to communicate with Mycroft backend
|
||
|
version: '1'
|
||
|
title: Mycroft API
|
||
|
host: api.mycroft.ai
|
||
|
basePath: /v1
|
||
|
tags:
|
||
|
- name: device
|
||
|
description: Operations about device
|
||
|
schemes:
|
||
|
- https
|
||
|
paths:
|
||
|
/auth/token:
|
||
|
get:
|
||
|
tags:
|
||
|
- device
|
||
|
summary: Gets a fresh login session from a refresh token
|
||
|
operationId: getRefreshToken
|
||
|
responses:
|
||
|
'200':
|
||
|
description: Login entity
|
||
|
schema:
|
||
|
$ref: '#/definitions/Login'
|
||
|
security:
|
||
|
- refresh_auth:
|
||
|
- 'refresh:token'
|
||
|
/device:
|
||
|
post:
|
||
|
tags:
|
||
|
- device
|
||
|
summary: Creates a device
|
||
|
operationId: createDevice
|
||
|
consumes:
|
||
|
- application/json
|
||
|
parameters:
|
||
|
- in: body
|
||
|
name: body
|
||
|
description: Device to be stored
|
||
|
required: true
|
||
|
schema:
|
||
|
$ref: '#/definitions/Device'
|
||
|
responses:
|
||
|
'200':
|
||
|
description: OK
|
||
|
security:
|
||
|
- device_auth:
|
||
|
- 'write:device'
|
||
|
- 'read:device'
|
||
|
put:
|
||
|
tags:
|
||
|
- device
|
||
|
summary: Updates an existent device
|
||
|
operationId: updateDevice
|
||
|
consumes:
|
||
|
- application/json
|
||
|
parameters:
|
||
|
- in: body
|
||
|
name: body
|
||
|
description: Device to be updated
|
||
|
required: true
|
||
|
schema:
|
||
|
$ref: '#/definitions/Device'
|
||
|
responses:
|
||
|
'200':
|
||
|
description: OK
|
||
|
security:
|
||
|
- device_auth:
|
||
|
- 'write:device'
|
||
|
- 'read:device'
|
||
|
/device/code:
|
||
|
get:
|
||
|
tags:
|
||
|
- device
|
||
|
summary: >-
|
||
|
Generates a pairing code and associates with the state string passed as
|
||
|
parameter
|
||
|
operationId: generatePairingCode
|
||
|
parameters:
|
||
|
- name: state
|
||
|
in: query
|
||
|
description: random string to be associated with pairing code
|
||
|
required: true
|
||
|
type: string
|
||
|
responses:
|
||
|
'200':
|
||
|
description: device pairing entity
|
||
|
schema:
|
||
|
$ref: '#/definitions/DevicePairing'
|
||
|
/device/activate:
|
||
|
post:
|
||
|
tags:
|
||
|
- device
|
||
|
summary: Activates a paired device
|
||
|
operationId: activateDevice
|
||
|
parameters:
|
||
|
- name: body
|
||
|
in: body
|
||
|
description: Device activation payload
|
||
|
required: true
|
||
|
schema:
|
||
|
$ref: '#/definitions/DeviceActivation'
|
||
|
responses:
|
||
|
'200':
|
||
|
description: OK
|
||
|
'/device/{uuid}':
|
||
|
get:
|
||
|
tags:
|
||
|
- device
|
||
|
summary: Finds device by uuid
|
||
|
operationId: findDeviceByUuid
|
||
|
consumes:
|
||
|
- application/json
|
||
|
produces:
|
||
|
- application/json
|
||
|
responses:
|
||
|
'200':
|
||
|
description: Device entity
|
||
|
schema:
|
||
|
$ref: '#/definitions/Device'
|
||
|
'404':
|
||
|
description: Device not found
|
||
|
parameters:
|
||
|
- name: uuid
|
||
|
in: path
|
||
|
type: string
|
||
|
format: uuid
|
||
|
required: true
|
||
|
security:
|
||
|
- device_auth:
|
||
|
- 'write:device'
|
||
|
- 'read:device'
|
||
|
patch:
|
||
|
tags:
|
||
|
- device
|
||
|
summary: Performs a partial update over a device
|
||
|
operationId: updateDevicePartial
|
||
|
consumes:
|
||
|
- application/json
|
||
|
parameters:
|
||
|
- name: uuid
|
||
|
description: Device uuid to update
|
||
|
in: path
|
||
|
type: string
|
||
|
format: uuid
|
||
|
required: true
|
||
|
- in: body
|
||
|
name: body
|
||
|
description: >-
|
||
|
Device to be updated. Only needs pass the fields that need be
|
||
|
changed
|
||
|
required: true
|
||
|
schema:
|
||
|
$ref: '#/definitions/Device'
|
||
|
responses:
|
||
|
'200':
|
||
|
description: OK
|
||
|
'404':
|
||
|
description: Device not found
|
||
|
'422':
|
||
|
description: Found validations error
|
||
|
security:
|
||
|
- device_auth:
|
||
|
- 'write:device'
|
||
|
- 'read:device'
|
||
|
delete:
|
||
|
tags:
|
||
|
- device
|
||
|
summary: Deletes a device
|
||
|
operationId: deleteDeviceByUuid
|
||
|
parameters:
|
||
|
- name: uuid
|
||
|
description: Device uuid to delete
|
||
|
in: path
|
||
|
type: string
|
||
|
format: uuid
|
||
|
required: true
|
||
|
responses:
|
||
|
'200':
|
||
|
description: OK
|
||
|
'404':
|
||
|
description: Device not found
|
||
|
security:
|
||
|
- device_auth:
|
||
|
- 'write:device'
|
||
|
- 'read:device'
|
||
|
'/device/{uuid}/setting':
|
||
|
get:
|
||
|
tags:
|
||
|
- device
|
||
|
summary: Finds the setting from a device
|
||
|
operationId: findDeviceSetting
|
||
|
parameters:
|
||
|
- name: uuid
|
||
|
description: Device uuid to find the setting
|
||
|
in: path
|
||
|
type: string
|
||
|
format: uuid
|
||
|
required: true
|
||
|
- name: If-None-Match
|
||
|
description: Etag for the device setting
|
||
|
in: header
|
||
|
type: string
|
||
|
required: false
|
||
|
responses:
|
||
|
'200':
|
||
|
description: Setting entity
|
||
|
schema:
|
||
|
$ref: '#/definitions/Setting'
|
||
|
security:
|
||
|
- device_auth:
|
||
|
- 'write:device'
|
||
|
- 'read:device'
|
||
|
'/device/{uuid}/subscription':
|
||
|
get:
|
||
|
tags:
|
||
|
- device
|
||
|
summary: Finds the subscription of the user associated with the device
|
||
|
operationId: findDeviceSubscription
|
||
|
parameters:
|
||
|
- name: uuid
|
||
|
description: Device uuid
|
||
|
in: path
|
||
|
type: string
|
||
|
format: uuid
|
||
|
required: true
|
||
|
responses:
|
||
|
'200':
|
||
|
description: Account entity
|
||
|
schema:
|
||
|
$ref: '#/definitions/Account'
|
||
|
security:
|
||
|
- device_auth:
|
||
|
- 'write:device'
|
||
|
- 'read:device'
|
||
|
'/device/{uuid}/location':
|
||
|
get:
|
||
|
tags:
|
||
|
- device
|
||
|
summary: Finds the device location
|
||
|
operationId: findDeviceLocation
|
||
|
parameters:
|
||
|
- name: uuid
|
||
|
description: Device uuid to find the location
|
||
|
in: path
|
||
|
type: string
|
||
|
format: uuid
|
||
|
required: true
|
||
|
- name: If-None-Match
|
||
|
description: Etag for the device location
|
||
|
in: header
|
||
|
type: string
|
||
|
required: false
|
||
|
responses:
|
||
|
'200':
|
||
|
description: OK
|
||
|
schema:
|
||
|
$ref: '#/definitions/Location'
|
||
|
security:
|
||
|
- device_auth:
|
||
|
- 'write:device'
|
||
|
- 'read:device'
|
||
|
'/device/{uuid}/skill':
|
||
|
get:
|
||
|
tags:
|
||
|
- device
|
||
|
summary: Finds all skill associated with a device
|
||
|
operationId: findDeviceSkills
|
||
|
parameters:
|
||
|
- name: uuid
|
||
|
description: Device uuid to find the skill
|
||
|
in: path
|
||
|
type: string
|
||
|
format: uuid
|
||
|
required: true
|
||
|
- name: If-None-Match
|
||
|
description: Etag for the device skill
|
||
|
in: header
|
||
|
type: string
|
||
|
required: false
|
||
|
responses:
|
||
|
'200':
|
||
|
description: Skills associated with the device
|
||
|
schema:
|
||
|
type: array
|
||
|
items:
|
||
|
$ref: '#/definitions/Skill'
|
||
|
security:
|
||
|
- device_auth:
|
||
|
- 'write:device'
|
||
|
- 'read:device'
|
||
|
delete:
|
||
|
tags:
|
||
|
- device
|
||
|
summary: Deletes a skill from a device
|
||
|
operationId: deleteDeviceSkill
|
||
|
parameters:
|
||
|
- name: uuid
|
||
|
description: Device uuid to delete the skill
|
||
|
in: path
|
||
|
type: string
|
||
|
format: uuid
|
||
|
required: true
|
||
|
- name: body
|
||
|
description: Skill to remove from the device
|
||
|
in: body
|
||
|
required: true
|
||
|
schema:
|
||
|
$ref: '#/definitions/Skill'
|
||
|
responses:
|
||
|
'200':
|
||
|
description: OK
|
||
|
'404':
|
||
|
description: Device not found
|
||
|
security:
|
||
|
- device_auth:
|
||
|
- 'write:device'
|
||
|
- 'read:device'
|
||
|
put:
|
||
|
tags:
|
||
|
- device
|
||
|
summary: Creates or updates a skill from a device
|
||
|
operationId: createUpdateDeviceSkill
|
||
|
parameters:
|
||
|
- name: uuid
|
||
|
description: Device uuid to create the skill
|
||
|
in: path
|
||
|
type: string
|
||
|
format: uuid
|
||
|
required: true
|
||
|
- name: body
|
||
|
description: Skill to upload and associate with a device
|
||
|
in: body
|
||
|
required: true
|
||
|
schema:
|
||
|
$ref: '#/definitions/Skill'
|
||
|
responses:
|
||
|
'200':
|
||
|
description: OK
|
||
|
security:
|
||
|
- device_auth:
|
||
|
- 'write:device'
|
||
|
- 'read:device'
|
||
|
'/device/{uuid}/skillJson':
|
||
|
put:
|
||
|
tags:
|
||
|
- device
|
||
|
summary: Updates the skill json associated with the device
|
||
|
operationId: uptDeviceSkillJson
|
||
|
parameters:
|
||
|
- name: uuid
|
||
|
description: Device uuid to find the skill
|
||
|
in: path
|
||
|
type: string
|
||
|
format: uuid
|
||
|
required: true
|
||
|
- name: body
|
||
|
description: skills.json file
|
||
|
in: body
|
||
|
required: true
|
||
|
schema:
|
||
|
$ref: '#/definitions/SkillJson'
|
||
|
responses:
|
||
|
'200':
|
||
|
description: ok
|
||
|
security:
|
||
|
- device_auth:
|
||
|
- 'write:device'
|
||
|
- 'read:device'
|
||
|
'/device/{uuid}/voice':
|
||
|
get:
|
||
|
tags:
|
||
|
- device
|
||
|
summary: Finds a link to download a premium voice if user has a paid account
|
||
|
operationId: getPremiumVoiceLink
|
||
|
parameters:
|
||
|
- name: uuid
|
||
|
description: Device uuid to fetch the premium voice link
|
||
|
in: path
|
||
|
type: string
|
||
|
format: uuid
|
||
|
required: true
|
||
|
- name: arch
|
||
|
description: Architecture to fetch the voice link
|
||
|
in: query
|
||
|
type: string
|
||
|
enum:
|
||
|
- arm
|
||
|
- x86_64
|
||
|
required: true
|
||
|
responses:
|
||
|
'200':
|
||
|
description: OK
|
||
|
security:
|
||
|
- device_auth:
|
||
|
- 'write:device'
|
||
|
- 'read:device'
|
||
|
'/device/{uuid}/metric':
|
||
|
post:
|
||
|
tags:
|
||
|
- device
|
||
|
summary: Pushes the metric passed as body to a metrics service
|
||
|
operationId: sendMetric
|
||
|
parameters:
|
||
|
- name: uuid
|
||
|
description: Device uuid that is sending the metric
|
||
|
in: path
|
||
|
type: string
|
||
|
format: uuid
|
||
|
required: true
|
||
|
responses:
|
||
|
'200':
|
||
|
description: OK
|
||
|
security:
|
||
|
- device_auth:
|
||
|
- 'write:device'
|
||
|
- 'read:device'
|
||
|
'/device/{uuid}/message':
|
||
|
put:
|
||
|
tags:
|
||
|
- device
|
||
|
summary: Sends an email to the user associated with the device
|
||
|
operationId: sendEmail
|
||
|
parameters:
|
||
|
- name: uuid
|
||
|
description: Device uuid that is sending the email
|
||
|
in: path
|
||
|
type: string
|
||
|
format: uuid
|
||
|
required: true
|
||
|
- name: body
|
||
|
in: body
|
||
|
description: payload with data to send the email
|
||
|
required: true
|
||
|
schema:
|
||
|
$ref: '#/definitions/SendEmail'
|
||
|
responses:
|
||
|
'200':
|
||
|
description: OK
|
||
|
security:
|
||
|
- device_auth:
|
||
|
- 'write:device'
|
||
|
- 'read:device'
|
||
|
'/device/{uuid}/userSkill':
|
||
|
get:
|
||
|
tags:
|
||
|
- device
|
||
|
summary: >-
|
||
|
For a given device, fetch all skills with a given identifier associated
|
||
|
with the user linked to the device
|
||
|
operationId: getUserSkillsByIdentifier
|
||
|
parameters:
|
||
|
- name: uuid
|
||
|
description: Device uuid
|
||
|
in: path
|
||
|
type: string
|
||
|
format: uuid
|
||
|
required: true
|
||
|
- name: identifier
|
||
|
description: Skill identifier
|
||
|
in: query
|
||
|
type: string
|
||
|
required: true
|
||
|
- name: If-None-Match
|
||
|
description: Etag for the user skills
|
||
|
in: header
|
||
|
type: string
|
||
|
required: false
|
||
|
responses:
|
||
|
'200':
|
||
|
description: OK
|
||
|
schema:
|
||
|
type: array
|
||
|
items:
|
||
|
$ref: '#/definitions/Skill'
|
||
|
security:
|
||
|
- device_auth:
|
||
|
- 'write:device'
|
||
|
- 'read:device'
|
||
|
securityDefinitions:
|
||
|
user_auth:
|
||
|
type: oauth2
|
||
|
authorizationUrl: 'https://api.mycroft.ai/v1/auth/login'
|
||
|
flow: implicit
|
||
|
scopes:
|
||
|
'write:user': modify user and entities associated with user
|
||
|
'read:user': read user and entities associated with user
|
||
|
device_auth:
|
||
|
type: oauth2
|
||
|
authorizationUrl: 'https://apy.mycroft.ai/v1/device/activate'
|
||
|
flow: implicit
|
||
|
scopes:
|
||
|
'write:device': modify device and entities associated with device
|
||
|
'read:device': read device and entities associated with device
|
||
|
refresh_auth:
|
||
|
type: oauth2
|
||
|
authorizationUrl: 'https://api.mycroft.ai/v1/auth/login'
|
||
|
flow: implicit
|
||
|
scopes:
|
||
|
'refresh:token': get a new fresh token
|
||
|
basic_auth:
|
||
|
type: basic
|
||
|
definitions:
|
||
|
Account:
|
||
|
type: object
|
||
|
properties:
|
||
|
uuid:
|
||
|
type: string
|
||
|
format: uuid
|
||
|
description: Entity id generated by application
|
||
|
PaidAccount:
|
||
|
allOf:
|
||
|
- $ref: '#/definitions/Account'
|
||
|
- type: object
|
||
|
properties:
|
||
|
'@type':
|
||
|
type: string
|
||
|
enum:
|
||
|
- monthly
|
||
|
- yearly
|
||
|
expiratesAt:
|
||
|
type: number
|
||
|
format: int64
|
||
|
description: timestamp in milliseconds when the account expirates
|
||
|
nextPayment:
|
||
|
type: number
|
||
|
format: int64
|
||
|
description: timestamp in millisecond of the next payment
|
||
|
lastPayment:
|
||
|
type: number
|
||
|
format: int64
|
||
|
description: timestamp in milliseconds of the last payment
|
||
|
FreeAccount:
|
||
|
allOf:
|
||
|
- $ref: '#/definitions/Account'
|
||
|
- type: object
|
||
|
properties:
|
||
|
'@type':
|
||
|
type: string
|
||
|
enum:
|
||
|
- free
|
||
|
Device:
|
||
|
type: object
|
||
|
properties:
|
||
|
uuid:
|
||
|
type: string
|
||
|
format: uuid
|
||
|
description: entity id generated by application
|
||
|
name:
|
||
|
type: string
|
||
|
description:
|
||
|
type: string
|
||
|
coreVersion:
|
||
|
type: string
|
||
|
enclosureVerion:
|
||
|
type: string
|
||
|
setting:
|
||
|
$ref: '#/definitions/Setting'
|
||
|
location:
|
||
|
$ref: '#/definitions/Location'
|
||
|
lastAccess:
|
||
|
type: number
|
||
|
format: int64
|
||
|
Setting:
|
||
|
type: object
|
||
|
properties:
|
||
|
uuid:
|
||
|
type: string
|
||
|
format: uuid
|
||
|
description: entity id generated by application
|
||
|
device:
|
||
|
$ref: '#/definitions/Device'
|
||
|
systemUnit:
|
||
|
type: string
|
||
|
enum:
|
||
|
- metric
|
||
|
- imperial
|
||
|
timeFormat:
|
||
|
type: string
|
||
|
enum:
|
||
|
- half
|
||
|
- full
|
||
|
dateFormat:
|
||
|
type: string
|
||
|
enum:
|
||
|
- DMY
|
||
|
- MDY
|
||
|
sttSettings:
|
||
|
type: array
|
||
|
items:
|
||
|
$ref: '#/definitions/STTSetting'
|
||
|
ttsSettings:
|
||
|
type: array
|
||
|
items:
|
||
|
$ref: '#/definitions/TTSSetting'
|
||
|
skillSetting:
|
||
|
$ref: '#/definitions/SkillsSetting'
|
||
|
listenerSetting:
|
||
|
$ref: '#/definitions/ListenerSetting'
|
||
|
enclosureSetting:
|
||
|
$ref: '#/definitions/EnclosureSetting'
|
||
|
optIn:
|
||
|
type: boolean
|
||
|
description: flag to store if user agrees in share his voice data with mycroft
|
||
|
STTSetting:
|
||
|
type: object
|
||
|
properties:
|
||
|
uuid:
|
||
|
type: string
|
||
|
format: uuid
|
||
|
description: entity id generated by application
|
||
|
'@type':
|
||
|
type: string
|
||
|
enum:
|
||
|
- mycroft
|
||
|
- google
|
||
|
- openstt
|
||
|
- ibm
|
||
|
- wit
|
||
|
active:
|
||
|
type: boolean
|
||
|
credential:
|
||
|
$ref: '#/definitions/Credential'
|
||
|
TTSSetting:
|
||
|
type: object
|
||
|
properties:
|
||
|
uuid:
|
||
|
type: string
|
||
|
format: uuid
|
||
|
description: entity id generated by application
|
||
|
'@type':
|
||
|
type: string
|
||
|
enum:
|
||
|
- mimic
|
||
|
- espeak
|
||
|
- google
|
||
|
- marytts
|
||
|
- fatts
|
||
|
activate:
|
||
|
type: boolean
|
||
|
voice:
|
||
|
type: string
|
||
|
Credential:
|
||
|
type: object
|
||
|
properties:
|
||
|
'@type':
|
||
|
type: string
|
||
|
enum:
|
||
|
- basic
|
||
|
- token
|
||
|
SkillsSetting:
|
||
|
type: object
|
||
|
properties:
|
||
|
uuid:
|
||
|
type: string
|
||
|
format: uuid
|
||
|
description: entity id generated by application
|
||
|
directory:
|
||
|
type: string
|
||
|
stopThreshold:
|
||
|
type: number
|
||
|
format: double
|
||
|
ListenerSetting:
|
||
|
type: object
|
||
|
properties:
|
||
|
uuid:
|
||
|
type: string
|
||
|
format: uuid
|
||
|
description: entity id generated by application
|
||
|
sampleRate:
|
||
|
type: number
|
||
|
format: int
|
||
|
enum:
|
||
|
- 8000
|
||
|
- 16000
|
||
|
channels:
|
||
|
type: number
|
||
|
format: int
|
||
|
enum:
|
||
|
- 1
|
||
|
- 2
|
||
|
wakeWord:
|
||
|
type: string
|
||
|
phonemes:
|
||
|
type: string
|
||
|
threshold:
|
||
|
type: number
|
||
|
format: double
|
||
|
multiplier:
|
||
|
type: number
|
||
|
format: double
|
||
|
energyRatio:
|
||
|
type: number
|
||
|
format: double
|
||
|
EnclosureSetting:
|
||
|
type: object
|
||
|
properties:
|
||
|
uuid:
|
||
|
type: string
|
||
|
format: uuid
|
||
|
description: entity id generated by application
|
||
|
path:
|
||
|
type: string
|
||
|
rate:
|
||
|
type: number
|
||
|
format: int32
|
||
|
enum:
|
||
|
- 9600
|
||
|
timeout:
|
||
|
type: number
|
||
|
format: double
|
||
|
Location:
|
||
|
type: object
|
||
|
properties:
|
||
|
uuid:
|
||
|
type: string
|
||
|
format: uuid
|
||
|
description: entity id generated by application
|
||
|
coordinate:
|
||
|
$ref: '#/definitions/Coordinate'
|
||
|
timezone:
|
||
|
$ref: '#/definitions/Timezone'
|
||
|
city:
|
||
|
$ref: '#/definitions/City'
|
||
|
Coordinate:
|
||
|
type: object
|
||
|
properties:
|
||
|
uuid:
|
||
|
type: string
|
||
|
format: uuid
|
||
|
description: entity id generated by application
|
||
|
latitude:
|
||
|
type: number
|
||
|
format: double
|
||
|
minimum: -90
|
||
|
maximum: 90
|
||
|
longitude:
|
||
|
type: number
|
||
|
format: double
|
||
|
minimum: -180
|
||
|
maximum: 180
|
||
|
Timezone:
|
||
|
type: object
|
||
|
properties:
|
||
|
uuid:
|
||
|
type: string
|
||
|
format: uuid
|
||
|
description: entity id generated by application
|
||
|
code:
|
||
|
type: string
|
||
|
description: >-
|
||
|
The UTC timezone code represented such as: UTC-N, UTC, UTC+M. Where N
|
||
|
is in between [01:00, 12:00] and M is in between [01:00, 14:00]
|
||
|
name:
|
||
|
type: string
|
||
|
offset:
|
||
|
type: number
|
||
|
format: int32
|
||
|
description: The UTC timezone offset in milliseconds
|
||
|
dstOffset:
|
||
|
type: number
|
||
|
format: int32
|
||
|
description: The UTC daylight saving offset in milliseconds
|
||
|
City:
|
||
|
type: object
|
||
|
properties:
|
||
|
uuid:
|
||
|
type: string
|
||
|
format: uuid
|
||
|
description: entity id generated by application
|
||
|
code:
|
||
|
type: string
|
||
|
name:
|
||
|
type: string
|
||
|
state:
|
||
|
$ref: '#/definitions/State'
|
||
|
State:
|
||
|
type: object
|
||
|
properties:
|
||
|
uuid:
|
||
|
type: string
|
||
|
format: uuid
|
||
|
description: entity id generated by application
|
||
|
code:
|
||
|
type: string
|
||
|
name:
|
||
|
type: string
|
||
|
country:
|
||
|
$ref: '#/definitions/Country'
|
||
|
Country:
|
||
|
type: object
|
||
|
properties:
|
||
|
uuid:
|
||
|
type: string
|
||
|
format: uuid
|
||
|
description: entity id generated by application
|
||
|
code:
|
||
|
type: string
|
||
|
name:
|
||
|
type: string
|
||
|
Skill:
|
||
|
type: object
|
||
|
properties:
|
||
|
uuid:
|
||
|
type: string
|
||
|
format: uuid
|
||
|
description: entity id generated by application
|
||
|
name:
|
||
|
type: string
|
||
|
description:
|
||
|
type: string
|
||
|
contributor:
|
||
|
type: string
|
||
|
icon:
|
||
|
type: string
|
||
|
identifier:
|
||
|
type: string
|
||
|
skillMetadata:
|
||
|
$ref: '#/definitions/SkillMetadata'
|
||
|
SkillMetadata:
|
||
|
type: object
|
||
|
properties:
|
||
|
uuid:
|
||
|
type: string
|
||
|
format: uuid
|
||
|
description: entity id generated by application
|
||
|
sections:
|
||
|
type: array
|
||
|
items:
|
||
|
$ref: '#/definitions/SkillMetadataSection'
|
||
|
SkillMetadataSection:
|
||
|
type: object
|
||
|
properties:
|
||
|
uuid:
|
||
|
type: string
|
||
|
format: uuid
|
||
|
description: entity id generated by application
|
||
|
name:
|
||
|
type: string
|
||
|
fields:
|
||
|
type: array
|
||
|
items:
|
||
|
$ref: '#/definitions/SkillMetadataField'
|
||
|
SkillMetadataField:
|
||
|
type: object
|
||
|
properties:
|
||
|
uuid:
|
||
|
type: string
|
||
|
format: uuid
|
||
|
description: entity id generated by application
|
||
|
name:
|
||
|
type: string
|
||
|
type:
|
||
|
type: string
|
||
|
label:
|
||
|
type: string
|
||
|
hint:
|
||
|
type: string
|
||
|
placeholder:
|
||
|
type: string
|
||
|
value:
|
||
|
type: string
|
||
|
SkillJson:
|
||
|
type: object
|
||
|
properties:
|
||
|
blacklist:
|
||
|
type: array
|
||
|
items:
|
||
|
type: string
|
||
|
skills:
|
||
|
type: array
|
||
|
items:
|
||
|
$ref: '#/definitions/SkillManifest'
|
||
|
SkillManifest:
|
||
|
type: object
|
||
|
properties:
|
||
|
uuid:
|
||
|
type: string
|
||
|
format: uuid
|
||
|
description: entity id generated by application
|
||
|
name:
|
||
|
type: string
|
||
|
description: skill's name
|
||
|
origin:
|
||
|
type: string
|
||
|
description: >-
|
||
|
"default" means the skill was installed when found on the
|
||
|
DEFAULT-SKILLS list; "marketplace" means the skill was installed from
|
||
|
a user action on a remote UI; "voice" means the skill was installed
|
||
|
from a device via voice; "cli" means the skill was installed from a
|
||
|
device via MSM command line; "non-msm" means the skill just appeared,
|
||
|
e.g. FTP, git or created on device
|
||
|
installation:
|
||
|
type: string
|
||
|
description: >-
|
||
|
This holds the installation status of the skill. It can be one
|
||
|
of:"installed" fully installed; "installing" in the process of being
|
||
|
installed (transitory state) "uninstalling" in the process of removal
|
||
|
(transitory state); "failed" means an attempt was made to install the
|
||
|
skill but it failed
|
||
|
failure_message:
|
||
|
type: string
|
||
|
description: 'Optional error message, only meaningful when installation = "failed"'
|
||
|
status:
|
||
|
type: string
|
||
|
description: >-
|
||
|
"active" the normal state; "disabled" the user has temporarily
|
||
|
disabled this skill; "error" the skill failed to load
|
||
|
beta:
|
||
|
type: string
|
||
|
description: >-
|
||
|
True if running at the repo HEAD, otherwise running the registered
|
||
|
version This only has meaning for "remote" or "local" skills.
|
||
|
installed:
|
||
|
type: number
|
||
|
format: int64
|
||
|
description: >-
|
||
|
A simple UTC date/time of when the skill was created on the local
|
||
|
system
|
||
|
updated:
|
||
|
type: number
|
||
|
description: Last time the skill was updated from its source repo
|
||
|
SendEmail:
|
||
|
type: object
|
||
|
properties:
|
||
|
title:
|
||
|
type: string
|
||
|
body:
|
||
|
type: string
|
||
|
description: HTML message to be sent as body
|
||
|
sender:
|
||
|
type: string
|
||
|
description: skill that is sending the message
|
||
|
DevicePairing:
|
||
|
type: object
|
||
|
properties:
|
||
|
code:
|
||
|
type: string
|
||
|
state:
|
||
|
type: string
|
||
|
token:
|
||
|
type: string
|
||
|
expiration:
|
||
|
type: number
|
||
|
format: int64
|
||
|
description: pairing code expiration time in milliseconds
|
||
|
DeviceActivation:
|
||
|
type: object
|
||
|
properties:
|
||
|
state:
|
||
|
type: string
|
||
|
token:
|
||
|
type: string
|
||
|
coreVersion:
|
||
|
type: string
|
||
|
enclosureVersion:
|
||
|
type: string
|
||
|
Login:
|
||
|
type: object
|
||
|
properties:
|
||
|
uuid:
|
||
|
type: string
|
||
|
format: uuid
|
||
|
description: User uuid
|
||
|
accessToken:
|
||
|
type: string
|
||
|
description: User access token
|
||
|
refreshToken:
|
||
|
type: string
|
||
|
description: Token used to renew access and get a fresh token
|
||
|
expiration:
|
||
|
type: string
|
||
|
description: Token expiration time in milliseconds
|
||
|
externalDocs:
|
||
|
description: Find out more about Swagger
|
||
|
url: 'http://swagger.io'
|