Scenario API Server (0.1.0)

Download OpenAPI specification:

version

Get Scenario API version

Get the scenario API version

:return: the scenario API version

Responses

Response samples

Content type
application/json
"string"

Get Scenario API version Deprecated

Get the scenario API version

:return: the scenario API version

Responses

Response samples

Content type
application/json
"string"

unit_attack

Unit Attack Api

Get all available unit attacks

:return: the list of unit attacks

Authorizations:
HTTPBase

Responses

Response samples

Content type
application/json
[
  • {
    }
]

Unit Attack Stats

Get stats for unit attacks

:return: the dict with unit attacks stats

Authorizations:
HTTPBase

Responses

Response samples

Content type
application/json
{ }

Unit Attack Item

Get a specific unit attack

:param attack_name: the name of the unit_attack :return: the unit attack

Authorizations:
HTTPBase
path Parameters
attack_name
required
string (Attack Name)

Responses

Response samples

Content type
application/json
{
  • "name": "string",
  • "worker_id": "string",
  • "title": "",
  • "title_fr": "",
  • "description": "string",
  • "description_fr": "string",
  • "links": [ ],
  • "version": "string",
  • "side_effects": [ ],
  • "repeatable": true,
  • "topics": [ ],
  • "attack_mode": "DIRECT",
  • "cve": [ ],
  • "mitre_data": {
    },
  • "options": [ ],
  • "scenario_profiles": [ ],
  • "timestamps": {
    },
  • "creation_date": "2019-08-24T14:15:22Z",
  • "last_update": "2019-08-24T14:15:22Z"
}

Unit Attack Create Lab Post

Create a lab associated with a given unit attack, in a CREATED state, so that it can later be run.

:return: a lab uuid

Authorizations:
HTTPBase
query Parameters
group_name
required
string (Group Name)
group_id
required
string (Group Id)
Request Body schema: application/json
required
required
object (LabConfig)

Responses

Request samples

Content type
application/json
{
  • "lab_config": {
    }
}

Response samples

Content type
application/json
"string"

Unit Attack Run Lab Post

Create a lab associated with a given unit attack, and run it.

:return: a lab uuid

Authorizations:
HTTPBase
query Parameters
group_name
required
string (Group Name)
group_id
required
string (Group Id)
Request Body schema: application/json
required
required
object (LabConfig)

Responses

Request samples

Content type
application/json
{
  • "lab_config": {
    }
}

Response samples

Content type
application/json
"string"

scenario

Scenario Api

Get all available scenarios

:return: the list of scenarios

Authorizations:
HTTPBase

Responses

Response samples

Content type
application/json
[
  • {
    }
]

Scenario Item

Get a specific scenario

:param scenario_name: the name of the scenario :return: the scenario

Authorizations:
HTTPBase
path Parameters
scenario_name
required
string (Scenario Name)

Responses

Response samples

Content type
application/json
{
  • "name": "default scenario name",
  • "keywords": [ ],
  • "description": "",
  • "description_fr": "",
  • "long_description": [ ],
  • "long_description_fr": [ ],
  • "unit_attacks": [ ],
  • "attacks": [ ],
  • "mitre_tags": [ ],
  • "steps": {
    },
  • "timestamps": {
    },
  • "scenario_profiles": [ ],
  • "creation_date": "2019-08-24T14:15:22Z",
  • "last_update": "2019-08-24T14:15:22Z"
}

Scenario Create Lab Post

Create a lab associated with a given scenario, in a CREATED state, so that it can later be run.

:return: a lab uuid

Authorizations:
HTTPBase
query Parameters
group_name
required
string (Group Name)
group_id
required
string (Group Id)
Request Body schema: application/json
required
required
object (LabConfig)

Responses

Request samples

Content type
application/json
{
  • "lab_config": {
    }
}

Response samples

Content type
application/json
"string"

Scenario Run Lab Post

Create a lab associated with a given scenario, and run it.

:return: a lab uuid

Authorizations:
HTTPBase
query Parameters
group_name
required
string (Group Name)
group_id
required
string (Group Id)
Request Body schema: application/json
required
required
object (LabConfig)

Responses

Request samples

Content type
application/json
{
  • "lab_config": {
    }
}

Response samples

Content type
application/json
"string"

related_unit_attacks

topology

Topology Api

Get all available topologies

:return: the list of topologies

Authorizations:
HTTPBase

Responses

Response samples

Content type
application/json
[
  • {
    }
]

Topology Item

Get a specific topology.

:param topology_name: the name of the topology :return: a topology

Authorizations:
HTTPBase
query Parameters
topology_name
required
string (Topology Name)

Responses

Response samples

Content type
application/json
{
  • "name": "string",
  • "nodes": [
    ],
  • "links": [
    ]
}

Topology Create Lab Post

Create a lab associated with a given topology, in a CREATED state, so that it can later be run.

:return: a lab uuid

Authorizations:
HTTPBase
query Parameters
group_name
required
string (Group Name)
group_id
required
string (Group Id)
Request Body schema: application/json
required
required
object (LabConfig)

Responses

Request samples

Content type
application/json
{
  • "lab_config": {
    }
}

Response samples

Content type
application/json
"string"

Topology Run Lab Post

Create a lab associated with a given topology, and run it.

:return: a lab uuid

Authorizations:
HTTPBase
query Parameters
group_name
required
string (Group Name)
group_id
required
string (Group Id)
Request Body schema: application/json
required
required
object (LabConfig)

Responses

Request samples

Content type
application/json
{
  • "lab_config": {
    }
}

Response samples

Content type
application/json
"string"

basebox

Basebox Api

Get all available baseboxes

:return: the list of baseboxes

Authorizations:
HTTPBase

Responses

Response samples

Content type
application/json
[
  • {
    }
]

Basebox Item

Get a specific basebox.

:param basebox_id: the ID of the basebox :return: the basebox

Authorizations:
HTTPBase
path Parameters
basebox_id
required
string (Basebox Id)

Responses

Response samples

Content type
application/json
{
  • "id": "string",
  • "description": "string",
  • "operating_system": "string",
  • "system_type": "string",
  • "language": "string",
  • "installation_date": "2019-08-24T14:15:22Z",
  • "role": "client",
  • "username": "string",
  • "password": "string",
  • "admin_username": "string",
  • "admin_password": "string",
  • "nb_proc": 1,
  • "memory_size": 256,
  • "cpes": {
    },
  • "sha256sum": "string",
  • "changelog": [
    ],
  • "storage_bus": "string"
}

Basebox Create Lab Post

Create a lab associated with a given basebox, in a CREATED state, so that it can later be run.

:return: a lab uuid

Authorizations:
HTTPBase
query Parameters
group_name
required
string (Group Name)
group_id
required
string (Group Id)
Request Body schema: application/json
required
required
object (LabConfig)

Responses

Request samples

Content type
application/json
{
  • "lab_config": {
    }
}

Response samples

Content type
application/json
"string"

Basebox Run Lab Post

Create a lab associated with a given basebox, and run it.

:return: a lab uuid

Authorizations:
HTTPBase
query Parameters
group_name
required
string (Group Name)
group_id
required
string (Group Id)
Request Body schema: application/json
required
required
object (LabConfig)

Responses

Request samples

Content type
application/json
{
  • "lab_config": {
    }
}

Response samples

Content type
application/json
"string"

runner

Runner List

Get lab list.

:return: the lab list

Authorizations:
HTTPBase
query Parameters
all_labs
boolean (All Labs)
Default: false
Owner (string) or Owner (null) (Owner)
Type (string) or Type (null) (Type)
Status (string) or Status (null) (Status)
page
integer (Page) > 0
Default: 1
limit
integer (Limit) ( 0 .. 100 ]
Default: 10
Order By (string) or Order By (null) (Order By)

Responses

Response samples

Content type
application/json
{
  • "pagination": {
    },
  • "data": [ ]
}

Runner Get

Get lab status from its ID.

:param runner_id: the lab ID

:return: the lab status

Authorizations:
HTTPBase
path Parameters
runner_id
required
string (Runner Id)

Responses

Response samples

Content type
application/json
{
  • "runner_id": "string",
  • "status": "CREATED",
  • "lab_creation_timestamp": 0,
  • "lab_start_timestamp": 0,
  • "lab_content_end_timestamp": 0,
  • "lab_end_timestamp": 0,
  • "content_type": "KILLCHAIN",
  • "name": "string",
  • "created_by": "string",
  • "group_name": "string",
  • "group_id": "string",
  • "worker_id": "string"
}

Runner Delete Id

Delete lab from its ID.

:param lab_id: the lab ID

Authorizations:
HTTPBase
path Parameters
runner_id
required
string (Runner Id)

Responses

Response samples

Content type
application/json
null

Runner Run

Run a lab based on its ID.

:param runner_id: the lab ID

Authorizations:
HTTPBase
path Parameters
runner_id
required
string (Runner Id)

Responses

Response samples

Content type
application/json
null

Runner Stop

Stop a lab based on its ID.

:param runner_id: the lab ID

:return: the lab status

Authorizations:
HTTPBase
path Parameters
runner_id
required
string (Runner Id)

Responses

Response samples

Content type
application/json
null

Runner Pause

Pause a lab based on its ID.

:param lab_id: the lab ID

:return: the lab status

Authorizations:
HTTPBase
path Parameters
runner_id
required
string (Runner Id)

Responses

Response samples

Content type
application/json
null

Runner Resume

Resume a lab based on its ID.

:param lab_id: the lab ID

:return: the lab status

Authorizations:
HTTPBase
path Parameters
runner_id
required
string (Runner Id)

Responses

Response samples

Content type
application/json
null

Runner Paused Status

Resume the current paused status if lab is in pause, based on the lab ID.

:param runner_id: the runner ID

:return: the runner paused status

Authorizations:
HTTPBase
path Parameters
runner_id
required
string (Runner Id)

Responses

Response samples

Content type
application/json
{
  • "step": "string",
  • "is_before_step": true
}

Runner Get Topology

Get current scenario topology from its lab ID.

:param lab_id: the lab ID

:return: the topology

Authorizations:
HTTPBase
path Parameters
runner_id
required
string (Runner Id)

Responses

Response samples

Content type
application/json
Example
{
  • "name": "string",
  • "nodes": [
    ],
  • "links": [
    ]
}

Runner Get Nodes

Get current scenario nodes from its lab ID.

:param lab_id: the lab ID

:return: the scenario nodes

Authorizations:
HTTPBase
path Parameters
runner_id
required
string (Runner Id)

Responses

Response samples

Content type
application/json
[
  • null
]

Runner Get Assets

Get current scenario assets from its lab ID.

:param lab_id: the lab ID

:return: the scenario assets

Authorizations:
HTTPBase
path Parameters
runner_id
required
string (Runner Id)

Responses

Response samples

Content type
application/json
[
  • null
]

Runner Get Attack Report

Get current scenario attack report from its lab ID.

:param lab_id: the lab ID

:return: the scenario attack report

Authorizations:
HTTPBase
path Parameters
runner_id
required
string (Runner Id)

Responses

Response samples

Content type
application/json
[
  • null
]

Runner Get Attack Infras

Get current scenario attack infras from its lab ID.

:param lab_id: the lab ID

:return: the scenario attack infras

Authorizations:
HTTPBase
path Parameters
runner_id
required
string (Runner Id)

Responses

Response samples

Content type
application/json
[
  • null
]

Runner Get Attack Sessions

Get current scenario attack sessions from its lab ID.

:param lab_id: the lab ID

:return: the scenario attack sessions

Authorizations:
HTTPBase
path Parameters
runner_id
required
string (Runner Id)

Responses

Response samples

Content type
application/json
[
  • null
]

Runner Get Attack Knowledge

Get current scenario attack knowledge from its lab ID.

:param lab_id: the lab ID

:return: the scenario attack knowledge

Authorizations:
HTTPBase
path Parameters
runner_id
required
string (Runner Id)

Responses

Response samples

Content type
application/json
{ }

Runner Get Notifications

Get current scenario notifications from its lab ID.

:param lab_id: the lab ID

:return: the notifications as a list of strings

Authorizations:
HTTPBase
path Parameters
runner_id
required
string (Runner Id)

Responses

Response samples

Content type
application/json
[
  • null
]

Runner Get Lab Config

Get current scenario run config from its lab ID.

:param lab_id: the lab ID

:return: the scenario run config

Authorizations:
HTTPBase
path Parameters
runner_id
required
string (Runner Id)

Responses

Response samples

Content type
application/json
{ }

Runner Get Remote Access

Get info to remotly access the VM from its lab ID.

:param lab_id: the lab ID

:return: the VM remote access information

Authorizations:
HTTPBase
path Parameters
runner_id
required
string (Runner Id)

Responses

Response samples

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

log_collector

Get Log Collectors

Get all available log collectors.

:return: the list of log collectors

Authorizations:
HTTPBase

Responses

Response samples

Content type
application/json
[
  • {
    }
]