SDN Agent to KMS API (2.1.0)

Download OpenAPI specification:

Messages the SDN sends to the KMS

monitor

Generic monitoring endpoints

Get KMS capabilities

Query which essential features are supported by this instance.

Authorizations:
https

Responses

Response samples

Content type
application/json
{
  • "key_relay_support": true,
  • "app_api_support": [
    ],
  • "etsi_014_info": {
    }
}

Get vendor, model and version

Publish KMS instance vendor, model and version

Authorizations:
https

Responses

Response samples

Content type
application/json
{
  • "vendor": "AIT",
  • "model": "AURORA KMS",
  • "version": "1.0.0"
}

Get KMS status

Get the status from the KMS, it can be online or stopped.

Authorizations:
https
query Parameters
new_operation_state_only
boolean
Default: false

If true, only consider operational status events since last query. If not given default of "false" is used.

Responses

Response samples

Content type
application/json
{
  • "state": "online",
  • "operation": "normal operation"
}

Get full logging info

get the log file from the KMS

Authorizations:
https

Responses

Response samples

Content type
[File content of any type]

Get known QKD devices and status

Receive QKD device information the KMS instance has.

Authorizations:
https

Responses

Response samples

Content type
application/json
{
  • "qkd_devices": [
    ]
}

control

Generic control endpoints

Modify state of the KMS

Modify state of the KMS, it can be online, stopped or offline.

Authorizations:
https
Request Body schema: application/json
required
state
required
string
Enum: "stopped" "offline" "online"

Target state of the KMS.

Responses

Request samples

Content type
application/json
{
  • "state": "offline"
}

Response samples

Content type
application/problem+json
{
  • "type": "string",
  • "title": "string",
  • "status": 0,
  • "detail": "string"
}

Register a new QKD device

Create/register a new QKD device in the KMS instance.

Authorizations:
https
path Parameters
device_id
required
string <uuid>
Request Body schema: application/json
required
link_id
required
string <uuid>

The ID of the link this device is associate to.

label
required
string

Human readable label, for example vendor name and model number.

state
required
string
Enum: "online" "stopped" "offline"

Current or target state after successful operation

interface
required
string
Enum: "etsi_004" "etsi_014" "skip"

Interface type of the QKD device

protocol
required
string

Transport protocol used, for ETSI GS QKD 014 typically https.

peer_kms
required
string

to which peer is this device connected, does not have to be UUID format, but unique in network

server_address
required
string

URI of the QKD device server. Specify domain (or IP) and port.

object

Only required if QKD device uses ETSI GS QKD 014 interface.

object (etsi_004_device_QoS_data)

only required if QKD device uses ETSI GS QKD 004 interface. All values according to ETSI GS QKD 004 specification.

Responses

Request samples

Content type
application/json
{
  • "link_id": "02a2c2f0-9521-47cc-9615-2e177adeebac",
  • "label": "'Alice & Bob Quantum Inc.' on node AIT",
  • "state": "online",
  • "interface": "etsi_004",
  • "protocol": "https",
  • "peer_kms": "53d3fa09-9e87-40d5-a7c0-974fcfe95c72",
  • "server_address": "172.0.10.101:5683",
  • "etsi_014": {
    },
  • "etsi_004": {
    }
}

Response samples

Content type
application/json
{
  • "type": "string",
  • "title": "string",
  • "status": 0,
  • "detail": "string"
}

Update an existing QKD device

Update mutable fields of a known QKD device.

Authorizations:
https
path Parameters
device_id
required
string <uuid>
Request Body schema: application/json
required
link_id
string <uuid>

The ID of the link this device is associate to.

label
string

Human readable label, for example vendor name and model number.

state
string
Enum: "online" "stopped" "offline"

Current or target state after successful operation

interface
string
Enum: "etsi_004" "etsi_014" "skip"

Interface type of the QKD device

protocol
string

Transport protocol used, for ETSI GS QKD 014 typically https.

peer_kms
string

to which peer is this device connected, does not have to be UUID format, but unique in network

server_address
string

URI of the QKD device server. Specify domain (or IP) and port.

object

Only required if QKD device uses ETSI GS QKD 014 interface.

object (etsi_004_device_QoS_data)

only required if QKD device uses ETSI GS QKD 004 interface. All values according to ETSI GS QKD 004 specification.

Responses

Request samples

Content type
application/json
{
  • "link_id": "02a2c2f0-9521-47cc-9615-2e177adeebac",
  • "label": "'Alice & Bob Quantum Inc.' on node AIT",
  • "state": "online",
  • "interface": "etsi_004",
  • "protocol": "https",
  • "peer_kms": "53d3fa09-9e87-40d5-a7c0-974fcfe95c72",
  • "server_address": "172.0.10.101:5683",
  • "etsi_014": {
    },
  • "etsi_004": {
    }
}

Response samples

Content type
application/json
{
  • "type": "string",
  • "title": "string",
  • "status": 0,
  • "detail": "string"
}

Delete QKD device

Remove connected QKD device, KMS will no longer try to obtain keys from it.

Authorizations:
https
path Parameters
device_id
required
string <uuid>

Responses

Response samples

Content type
application/problem+json
{
  • "type": "string",
  • "title": "string",
  • "status": 0,
  • "detail": "string"
}

Create link relay configuration

Create a link relay configuration record with the data in the request, using the given key_stream_id as an identifier

Authorizations:
https
path Parameters
key_stream_id
required
string <uuid>

key_stream_id's UUID

Request Body schema: application/json
required
source
required
string

URI or UUID of the source APP

destination
required
Array of strings[ items non-empty ]
next_node_info
required
Array of strings

List of adjacent nodes. Type URI authority

object (qos-data)

QoS requested by the KMS

Responses

Request samples

Content type
application/json
{
  • "destination": [],
  • "next_node_info": [
    ],
  • "qos_request": {
    }
}

Response samples

Content type
application/problem+json
{
  • "type": "string",
  • "title": "string",
  • "status": 0,
  • "detail": "string"
}

Update a link relay configuration

Replace a link relay configuration with the data in the request, using the given key_stream_id as an identifier. Only the data to be changed should be included in data body, supporting partial updates.

Authorizations:
https
path Parameters
key_stream_id
required
string <uuid>

key_stream_id's UUID

Request Body schema: application/json
required
source
string

Source APP's URI or UUID

destination
Array of strings[ items non-empty ]
next_node_info
Array of strings

List of adjacent nodes. Type URI authority.

qos_request
object

QoS requested by the KMS

Responses

Request samples

Content type
application/json
{
  • "destination": [],
  • "next_node_info": [
    ],
  • "qos_request": {
    }
}

Response samples

Content type
application/problem+json
{
  • "type": "string",
  • "title": "string",
  • "status": 0,
  • "detail": "string"
}

Delete relay configuration

Delete the relay configuration associated with the given key_stream_id

Authorizations:
https
path Parameters
key_stream_id
required
string <uuid>

key stream's UUID

Responses

Response samples

Content type
application/problem+json
{
  • "type": "string",
  • "title": "string",
  • "status": 0,
  • "detail": "string"
}

API

Generic endpoints related with this API

Get this API version

QUICKS API version number which is implemented and supported by the KMS

Authorizations:
https

Responses

Response samples

Content type
application/json
{
  • "version": "2.0.0"
}