edgelet/api/workloadVersion_2019_01_30.yaml (486 lines of code) (raw):
swagger: '2.0'
schemes:
- http
info:
title: IoT Edge Module Workload API
version: '2019-01-30'
tags:
- name: Workload
x-displayName: Workload
description: |
paths:
/modules:
get:
tags:
- Module
summary: List modules.
produces:
- application/json
description: |
This returns the list of currently running modules and their statuses.
operationId: ListModules
parameters:
- $ref: '#/parameters/api-version'
responses:
'200':
description: Ok
schema:
$ref: '#/definitions/ModuleList'
default:
description: Error
schema:
$ref: '#/definitions/ErrorResponse'
'/modules/{name}/genid/{genid}/sign':
post:
tags:
- Workload
summary: ''
operationId: Sign
parameters:
- $ref: '#/parameters/api-version'
- in: path
name: name
description: The name of the module on whose behalf the payload will be signed. (urlencoded)
required: true
type: string
- in: path
name: genid
description: The generation identifier for the module as generated by IoT Hub.
required: true
type: string
- in: body
name: payload
description: The data to be signed.
required: true
schema:
$ref: '#/definitions/SignRequest'
responses:
'200':
description: Ok
schema:
$ref: '#/definitions/SignResponse'
'404':
description: Not Found
schema:
$ref: '#/definitions/ErrorResponse'
default:
description: Error
schema:
$ref: '#/definitions/ErrorResponse'
'/modules/{name}/genid/{genid}/encrypt':
post:
tags:
- Workload
summary: ''
operationId: Encrypt
parameters:
- $ref: '#/parameters/api-version'
- in: path
name: name
description: The name of the module on whose behalf the plaintext will be encrypted. (urlencoded)
required: true
type: string
- in: path
name: genid
description: The generation identifier for the module as generated by IoT Hub.
required: true
type: string
- in: body
name: payload
description: The data to be encrypted.
required: true
schema:
$ref: '#/definitions/EncryptRequest'
responses:
'200':
description: OK
schema:
$ref: '#/definitions/EncryptResponse'
'404':
description: Not Found
schema:
$ref: '#/definitions/ErrorResponse'
default:
description: Error
schema:
$ref: '#/definitions/ErrorResponse'
'/modules/{name}/genid/{genid}/decrypt':
post:
tags:
- Workload
summary: ''
operationId: Decrypt
parameters:
- $ref: '#/parameters/api-version'
- in: path
name: name
description: The name of the module on whose behalf the ciphertext will be decrypted. (urlencoded)
required: true
type: string
- in: path
name: genid
description: The generation identifier for the module as generated by IoT Hub.
required: true
type: string
- in: body
name: payload
description: The data to be decrypted.
required: true
schema:
$ref: '#/definitions/DecryptRequest'
responses:
'200':
description: OK
schema:
$ref: '#/definitions/DecryptResponse'
'404':
description: Not Found
schema:
$ref: '#/definitions/ErrorResponse'
default:
description: Error
schema:
$ref: '#/definitions/ErrorResponse'
'/modules/{name}/certificate/identity':
post:
tags:
- Workload
summary: ''
operationId: CreateIdentityCertificate
parameters:
- $ref: '#/parameters/api-version'
- in: path
name: name
description: The name of the module needed to obtain the certificate. (urlencoded)
required: true
type: string
- in: body
name: request
description: Parameters for certificate creation.
required: true
schema:
$ref: '#/definitions/IdentityCertificateRequest'
responses:
'201':
description: Ok
schema:
$ref: '#/definitions/CertificateResponse'
'404':
description: Not Found
schema:
$ref: '#/definitions/ErrorResponse'
default:
description: Error
schema:
$ref: '#/definitions/ErrorResponse'
'/modules/{name}/genid/{genid}/certificate/server':
post:
tags:
- Workload
summary: ''
operationId: CreateServerCertificate
parameters:
- $ref: '#/parameters/api-version'
- in: path
name: name
description: The name of the module to get certificate. (urlencoded)
required: true
type: string
- in: path
name: genid
description: The generation identifier for the module as generated by IoT Hub.
required: true
type: string
- in: body
name: request
description: Parameters for certificate creation.
required: true
schema:
$ref: '#/definitions/ServerCertificateRequest'
responses:
'201':
description: Ok
schema:
$ref: '#/definitions/CertificateResponse'
'404':
description: Not Found
schema:
$ref: '#/definitions/ErrorResponse'
default:
description: Error
schema:
$ref: '#/definitions/ErrorResponse'
'/trust-bundle':
get:
tags:
- Workload
summary: ''
operationId: TrustBundle
parameters:
- $ref: '#/parameters/api-version'
responses:
'200':
description: Ok
schema:
$ref: '#/definitions/TrustBundleResponse'
default:
description: Error
schema:
$ref: '#/definitions/ErrorResponse'
definitions:
ModuleList:
type: object
properties:
modules:
type: array
items:
$ref: '#/definitions/ModuleDetails'
required:
- modules
ModuleDetails:
type: object
properties:
id:
type: string
description: System generated unique identitier.
example: happy_hawking
name:
type: string
description: The name of the module.
example: edgeHub
type:
type: string
description: The type of a module.
example: docker
config:
$ref: '#/definitions/Config'
status:
$ref: '#/definitions/Status'
required:
- id
- name
- type
- config
- status
Config:
type: object
properties:
settings:
type: object
example:
image: 'microsoft/azureiotedge-hub:1.0'
createOptions:
HostConfig:
PortBindings:
'22/tcp':
- HostPort: '11022'
env:
type: array
items:
$ref: '#/definitions/EnvVar'
required:
- settings
Status:
type: object
properties:
startTime:
type: string
format: date-time
exitStatus:
$ref: '#/definitions/ExitStatus'
runtimeStatus:
$ref: '#/definitions/RuntimeStatus'
required:
- runtimeStatus
EnvVar:
type: object
properties:
key:
type: string
example: the_key
value:
type: string
example: the_value
required:
- key
- value
ExitStatus:
type: object
properties:
exitTime:
type: string
format: date-time
statusCode:
type: string
required:
- exitTime
- statusCode
example:
exitTime: '2018-04-03T09:31:00.000Z'
statusCode: '101'
RuntimeStatus:
type: object
properties:
status:
type: string
description:
type: string
required:
- status
example:
status: the status
description: the description
SignRequest:
type: object
properties:
keyId:
type: string
description: Name of key to perform sign operation.
example: device_key
algo:
type: string
description: Sign algorithm to be used.
enum:
- HMACSHA256
data:
type: string
format: byte
description: Data to be signed.
required:
- keyId
- algo
- data
SignResponse:
type: object
properties:
digest:
type: string
format: byte
description: Signature of the data.
required:
- digest
EncryptRequest:
type: object
properties:
plaintext:
type: string
format: byte
description: The data to be encrypted.
initializationVector:
type: string
format: byte
description: An initialization vector used to encrypt the data.
required:
- plaintext
- initializationVector
EncryptResponse:
type: object
properties:
ciphertext:
type: string
format: byte
description: The encrypted form of the data encoded in base 64.
required:
- ciphertext
DecryptRequest:
type: object
properties:
ciphertext:
type: string
format: byte
description: The data to be decrypted.
initializationVector:
type: string
format: byte
description: An initialization vector used to decrypt the data.
required:
- ciphertext
- initializationVector
DecryptResponse:
type: object
properties:
plaintext:
type: string
format: byte
description: The decrypted form of the data encoded in base 64.
required:
- plaintext
ServerCertificateRequest:
type: object
properties:
commonName:
type: string
description: Subject common name
expiration:
type: string
format: date-time
description: Certificate expiration date-time (ISO 8601)
required:
- commonName
- expiration
IdentityCertificateRequest:
type: object
properties:
expiration:
type: string
format: date-time
description: Certificate expiration date-time (ISO 8601)
CertificateResponse:
type: object
properties:
privateKey:
$ref: '#/definitions/PrivateKey'
certificate:
type: string
format: bytes
description: Base64 encoded PEM formatted byte array containing the certificate and its chain.
expiration:
type: string
format: date-time
description: Certificate expiration date-time (ISO 8601)
required:
- privateKey
- certificate
- expiration
TrustBundleResponse:
type: object
properties:
certificate:
type: string
format: bytes
description: Base64 encoded PEM formatted byte array containing the trusted certificates.
required:
- certificate
PrivateKey:
type: object
properties:
type:
type: string
description: Indicates format of the key (present in PEM formatted bytes or a reference)
enum:
- ref
- key
ref:
type: string
description: Reference to private key.
bytes:
type: string
format: bytes
description: Base64 encoded PEM formatted byte array
required:
- type
ErrorResponse:
type: object
properties:
message:
type: string
required:
- message
parameters:
api-version:
name: api-version
in: query
description: The version of the API.
required: true
type: string
default: '2018-06-28'