Visualization interface API v3.0.0-SNAPSHOT
Scroll down for code samples, example requests and responses. Select a language for code samples from the tabs above or the mobile navigation menu.
Default
clearCache
Code samples
# You can also use wget
curl -X DELETE /auth/cache
DELETE /auth/cache HTTP / 1.1
fetch ( ' /auth/cache ' ,
{
method : ' DELETE '
})
. then ( function ( res ) {
return res . json ();
}). then ( function ( body ) {
console . log ( body );
});
require 'rest-client'
require 'json'
result = RestClient . delete '/auth/cache' ,
params: {
}
p JSON . parse ( result )
import requests
r = requests . delete ( '/auth/cache' )
print ( r . json ())
<?php
require 'vendor/autoload.php' ;
$client = new \ GuzzleHttp\Client ();
// Define array of request body.
$request_body = array ();
try {
$response = $client -> request ( 'DELETE' , '/auth/cache' , array (
'headers' => $headers ,
'json' => $request_body ,
)
);
print_r ( $response -> getBody () -> getContents ());
}
catch ( \ GuzzleHttp\Exception\BadResponseException $e ) {
// handle exception or api errors.
print_r ( $e -> getMessage ());
}
// ...
URL obj = new URL ( "/auth/cache" );
HttpURLConnection con = ( HttpURLConnection ) obj . openConnection ();
con . setRequestMethod ( "DELETE" );
int responseCode = con . getResponseCode ();
BufferedReader in = new BufferedReader (
new InputStreamReader ( con . getInputStream ()));
String inputLine ;
StringBuffer response = new StringBuffer ();
while (( inputLine = in . readLine ()) != null ) {
response . append ( inputLine );
}
in . close ();
System . out . println ( response . toString ());
package main
import (
"bytes"
"net/http"
)
func main () {
data := bytes . NewBuffer ([] byte { jsonReq })
req , err := http . NewRequest ( "DELETE" , "/auth/cache" , data )
req . Header = headers
client := & http . Client {}
resp , err := client . Do ( req )
// ...
}
DELETE /auth/cache
Responses
Status
Meaning
Description
Schema
default
Default
successful operation
None
This operation does not require authentication
login
Code samples
# You can also use wget
curl -X POST /auth/login \
-H 'Accept: application/json'
POST /auth/login HTTP / 1.1
Accept: application/json
const headers = {
' Accept ' : ' application/json '
};
fetch ( ' /auth/login ' ,
{
method : ' POST ' ,
headers : headers
})
. then ( function ( res ) {
return res . json ();
}). then ( function ( body ) {
console . log ( body );
});
require 'rest-client'
require 'json'
headers = {
'Accept' => 'application/json'
}
result = RestClient . post '/auth/login' ,
params: {
}, headers: headers
p JSON . parse ( result )
import requests
headers = {
'Accept' : 'application/json'
}
r = requests . post ( '/auth/login' , headers = headers )
print ( r . json ())
<?php
require 'vendor/autoload.php' ;
$headers = array (
'Accept' => 'application/json' ,
);
$client = new \ GuzzleHttp\Client ();
// Define array of request body.
$request_body = array ();
try {
$response = $client -> request ( 'POST' , '/auth/login' , array (
'headers' => $headers ,
'json' => $request_body ,
)
);
print_r ( $response -> getBody () -> getContents ());
}
catch ( \ GuzzleHttp\Exception\BadResponseException $e ) {
// handle exception or api errors.
print_r ( $e -> getMessage ());
}
// ...
URL obj = new URL ( "/auth/login" );
HttpURLConnection con = ( HttpURLConnection ) obj . openConnection ();
con . setRequestMethod ( "POST" );
int responseCode = con . getResponseCode ();
BufferedReader in = new BufferedReader (
new InputStreamReader ( con . getInputStream ()));
String inputLine ;
StringBuffer response = new StringBuffer ();
while (( inputLine = in . readLine ()) != null ) {
response . append ( inputLine );
}
in . close ();
System . out . println ( response . toString ());
package main
import (
"bytes"
"net/http"
)
func main () {
headers := map [ string ][] string {
"Accept" : [] string { "application/json" },
}
data := bytes . NewBuffer ([] byte { jsonReq })
req , err := http . NewRequest ( "POST" , "/auth/login" , data )
req . Header = headers
client := & http . Client {}
resp , err := client . Do ( req )
// ...
}
POST /auth/login
Example responses
200 Response
{
"username" : "string" ,
"fullName" : "string" ,
"loginOrigin" : "LDAP" ,
"permissions" : [
"string"
],
"redirectUrl" : "string" ,
"isAdmin" : true
}
Responses
Status
Meaning
Description
Schema
200
OK
same as for whoami
AuthDTO
This operation does not require authentication
logout
Code samples
# You can also use wget
curl -X GET /auth/logout
GET /auth/logout HTTP / 1.1
fetch ( ' /auth/logout ' ,
{
method : ' GET '
})
. then ( function ( res ) {
return res . json ();
}). then ( function ( body ) {
console . log ( body );
});
require 'rest-client'
require 'json'
result = RestClient . get '/auth/logout' ,
params: {
}
p JSON . parse ( result )
import requests
r = requests . get ( '/auth/logout' )
print ( r . json ())
<?php
require 'vendor/autoload.php' ;
$client = new \ GuzzleHttp\Client ();
// Define array of request body.
$request_body = array ();
try {
$response = $client -> request ( 'GET' , '/auth/logout' , array (
'headers' => $headers ,
'json' => $request_body ,
)
);
print_r ( $response -> getBody () -> getContents ());
}
catch ( \ GuzzleHttp\Exception\BadResponseException $e ) {
// handle exception or api errors.
print_r ( $e -> getMessage ());
}
// ...
URL obj = new URL ( "/auth/logout" );
HttpURLConnection con = ( HttpURLConnection ) obj . openConnection ();
con . setRequestMethod ( "GET" );
int responseCode = con . getResponseCode ();
BufferedReader in = new BufferedReader (
new InputStreamReader ( con . getInputStream ()));
String inputLine ;
StringBuffer response = new StringBuffer ();
while (( inputLine = in . readLine ()) != null ) {
response . append ( inputLine );
}
in . close ();
System . out . println ( response . toString ());
package main
import (
"bytes"
"net/http"
)
func main () {
data := bytes . NewBuffer ([] byte { jsonReq })
req , err := http . NewRequest ( "GET" , "/auth/logout" , data )
req . Header = headers
client := & http . Client {}
resp , err := client . Do ( req )
// ...
}
GET /auth/logout
Responses
Status
Meaning
Description
Schema
default
Default
successful operation
None
This operation does not require authentication
whoAmI
Code samples
# You can also use wget
curl -X GET /auth/whoami \
-H 'Accept: application/json'
GET /auth/whoami HTTP / 1.1
Accept: application/json
const headers = {
' Accept ' : ' application/json '
};
fetch ( ' /auth/whoami ' ,
{
method : ' GET ' ,
headers : headers
})
. then ( function ( res ) {
return res . json ();
}). then ( function ( body ) {
console . log ( body );
});
require 'rest-client'
require 'json'
headers = {
'Accept' => 'application/json'
}
result = RestClient . get '/auth/whoami' ,
params: {
}, headers: headers
p JSON . parse ( result )
import requests
headers = {
'Accept' : 'application/json'
}
r = requests . get ( '/auth/whoami' , headers = headers )
print ( r . json ())
<?php
require 'vendor/autoload.php' ;
$headers = array (
'Accept' => 'application/json' ,
);
$client = new \ GuzzleHttp\Client ();
// Define array of request body.
$request_body = array ();
try {
$response = $client -> request ( 'GET' , '/auth/whoami' , array (
'headers' => $headers ,
'json' => $request_body ,
)
);
print_r ( $response -> getBody () -> getContents ());
}
catch ( \ GuzzleHttp\Exception\BadResponseException $e ) {
// handle exception or api errors.
print_r ( $e -> getMessage ());
}
// ...
URL obj = new URL ( "/auth/whoami" );
HttpURLConnection con = ( HttpURLConnection ) obj . openConnection ();
con . setRequestMethod ( "GET" );
int responseCode = con . getResponseCode ();
BufferedReader in = new BufferedReader (
new InputStreamReader ( con . getInputStream ()));
String inputLine ;
StringBuffer response = new StringBuffer ();
while (( inputLine = in . readLine ()) != null ) {
response . append ( inputLine );
}
in . close ();
System . out . println ( response . toString ());
package main
import (
"bytes"
"net/http"
)
func main () {
headers := map [ string ][] string {
"Accept" : [] string { "application/json" },
}
data := bytes . NewBuffer ([] byte { jsonReq })
req , err := http . NewRequest ( "GET" , "/auth/whoami" , data )
req . Header = headers
client := & http . Client {}
resp , err := client . Do ( req )
// ...
}
GET /auth/whoami
Example responses
200 Response
{
"username" : "string" ,
"fullName" : "string" ,
"loginOrigin" : "LDAP" ,
"permissions" : [
"string"
],
"redirectUrl" : "string" ,
"isAdmin" : true
}
Responses
Status
Meaning
Description
Schema
200
OK
successful operation
AuthDTO
This operation does not require authentication
processTaskBulkEvent
Code samples
# You can also use wget
curl -X POST /ctf-exercises/{ exerciseId} /tasks/bulk \
-H 'Accept: application/json'
POST /ctf-exercises/{exerciseId}/tasks/bulk HTTP / 1.1
Accept: application/json
const headers = {
' Accept ' : ' application/json '
};
fetch ( ' /ctf-exercises/{exerciseId}/tasks/bulk ' ,
{
method : ' POST ' ,
headers : headers
})
. then ( function ( res ) {
return res . json ();
}). then ( function ( body ) {
console . log ( body );
});
require 'rest-client'
require 'json'
headers = {
'Accept' => 'application/json'
}
result = RestClient . post '/ctf-exercises/{exerciseId}/tasks/bulk' ,
params: {
}, headers: headers
p JSON . parse ( result )
import requests
headers = {
'Accept' : 'application/json'
}
r = requests . post ( '/ctf-exercises/{exerciseId}/tasks/bulk' , headers = headers )
print ( r . json ())
<?php
require 'vendor/autoload.php' ;
$headers = array (
'Accept' => 'application/json' ,
);
$client = new \ GuzzleHttp\Client ();
// Define array of request body.
$request_body = array ();
try {
$response = $client -> request ( 'POST' , '/ctf-exercises/{exerciseId}/tasks/bulk' , array (
'headers' => $headers ,
'json' => $request_body ,
)
);
print_r ( $response -> getBody () -> getContents ());
}
catch ( \ GuzzleHttp\Exception\BadResponseException $e ) {
// handle exception or api errors.
print_r ( $e -> getMessage ());
}
// ...
URL obj = new URL ( "/ctf-exercises/{exerciseId}/tasks/bulk" );
HttpURLConnection con = ( HttpURLConnection ) obj . openConnection ();
con . setRequestMethod ( "POST" );
int responseCode = con . getResponseCode ();
BufferedReader in = new BufferedReader (
new InputStreamReader ( con . getInputStream ()));
String inputLine ;
StringBuffer response = new StringBuffer ();
while (( inputLine = in . readLine ()) != null ) {
response . append ( inputLine );
}
in . close ();
System . out . println ( response . toString ());
package main
import (
"bytes"
"net/http"
)
func main () {
headers := map [ string ][] string {
"Accept" : [] string { "application/json" },
}
data := bytes . NewBuffer ([] byte { jsonReq })
req , err := http . NewRequest ( "POST" , "/ctf-exercises/{exerciseId}/tasks/bulk" , data )
req . Header = headers
client := & http . Client {}
resp , err := client . Do ( req )
// ...
}
POST /ctf-exercises/{exerciseId}/tasks/bulk
Parameters
Name
In
Type
Required
Description
exerciseId
path
string(uuid)
true
none
Example responses
200 Response
{
"teamInfo" : [
{
"teamId" : "string" ,
"teamName" : "string" ,
"saved" : 0 ,
"total" : 0 ,
"latestTaskInfo" : [
{
"taskId" : "string" ,
"taskName" : "string" ,
"status" : "ABANDONED"
}
]
}
]
}
Responses
This operation does not require authentication
getMission
Code samples
# You can also use wget
curl -X GET /ctf-exercises/{ exerciseId} /teams/{ teamId} /mission \
-H 'Accept: application/json'
GET /ctf-exercises/{exerciseId}/teams/{teamId}/mission HTTP / 1.1
Accept: application/json
const headers = {
' Accept ' : ' application/json '
};
fetch ( ' /ctf-exercises/{exerciseId}/teams/{teamId}/mission ' ,
{
method : ' GET ' ,
headers : headers
})
. then ( function ( res ) {
return res . json ();
}). then ( function ( body ) {
console . log ( body );
});
require 'rest-client'
require 'json'
headers = {
'Accept' => 'application/json'
}
result = RestClient . get '/ctf-exercises/{exerciseId}/teams/{teamId}/mission' ,
params: {
}, headers: headers
p JSON . parse ( result )
import requests
headers = {
'Accept' : 'application/json'
}
r = requests . get ( '/ctf-exercises/{exerciseId}/teams/{teamId}/mission' , headers = headers )
print ( r . json ())
<?php
require 'vendor/autoload.php' ;
$headers = array (
'Accept' => 'application/json' ,
);
$client = new \ GuzzleHttp\Client ();
// Define array of request body.
$request_body = array ();
try {
$response = $client -> request ( 'GET' , '/ctf-exercises/{exerciseId}/teams/{teamId}/mission' , array (
'headers' => $headers ,
'json' => $request_body ,
)
);
print_r ( $response -> getBody () -> getContents ());
}
catch ( \ GuzzleHttp\Exception\BadResponseException $e ) {
// handle exception or api errors.
print_r ( $e -> getMessage ());
}
// ...
URL obj = new URL ( "/ctf-exercises/{exerciseId}/teams/{teamId}/mission" );
HttpURLConnection con = ( HttpURLConnection ) obj . openConnection ();
con . setRequestMethod ( "GET" );
int responseCode = con . getResponseCode ();
BufferedReader in = new BufferedReader (
new InputStreamReader ( con . getInputStream ()));
String inputLine ;
StringBuffer response = new StringBuffer ();
while (( inputLine = in . readLine ()) != null ) {
response . append ( inputLine );
}
in . close ();
System . out . println ( response . toString ());
package main
import (
"bytes"
"net/http"
)
func main () {
headers := map [ string ][] string {
"Accept" : [] string { "application/json" },
}
data := bytes . NewBuffer ([] byte { jsonReq })
req , err := http . NewRequest ( "GET" , "/ctf-exercises/{exerciseId}/teams/{teamId}/mission" , data )
req . Header = headers
client := & http . Client {}
resp , err := client . Do ( req )
// ...
}
GET /ctf-exercises/{exerciseId}/teams/{teamId}/mission
Parameters
Name
In
Type
Required
Description
exerciseId
path
string(uuid)
true
none
teamId
path
string(uuid)
true
none
Example responses
200 Response
{
"teamCount" : 0 ,
"endTime" : 0 ,
"missionEndTime" : 0 ,
"tasksByCategory" : [
{
"category" : "string" ,
"name" : "string" ,
"tasks" : [
{
"id" : "497f6eca-6276-4993-bfeb-53cbbbba6f08" ,
"type" : "SINGLE_ANSWER" ,
"title" : "string" ,
"score" : 0 ,
"teamsSolved" : 0 ,
"status" : "ABANDONED" ,
"availableHints" : 0 ,
"usedHintPoints" : 0 ,
"requiredTasks" : [
{
"id" : "497f6eca-6276-4993-bfeb-53cbbbba6f08" ,
"title" : "string"
}
],
"niceIds" : {
"taskIds" : [
"string"
],
"knowledgeIds" : [
"string"
],
"skillIds" : [
"string"
],
"abilityIds" : [
"string"
]
},
"targets" : [
{
"targetId" : "cbca1126-180e-4334-9df8-cf82289d378b" ,
"targetName" : "string" ,
"vmId" : "f1446e55-23f6-4461-a5de-ba794da4dde9" ,
"powerState" : "POWERED_OFF"
}
],
"answerCrossUsageDetected" : true
}
]
}
],
"openedTasksLimit" : 0 ,
"individualStartStop" : {
"start" : 0 ,
"stop" : 0
}
}
Responses
Status
Meaning
Description
Schema
200
OK
successful operation
CTFMissionDTO
This operation does not require authentication
uploadImage
Code samples
# You can also use wget
curl -X POST /widget/situation-report/exercise/{ exerciseId} /team/{ teamId} /images \
-H 'Accept: application/json'
POST /widget/situation-report/exercise/{exerciseId}/team/{teamId}/images HTTP / 1.1
Accept: application/json
const headers = {
' Accept ' : ' application/json '
};
fetch ( ' /widget/situation-report/exercise/{exerciseId}/team/{teamId}/images ' ,
{
method : ' POST ' ,
headers : headers
})
. then ( function ( res ) {
return res . json ();
}). then ( function ( body ) {
console . log ( body );
});
require 'rest-client'
require 'json'
headers = {
'Accept' => 'application/json'
}
result = RestClient . post '/widget/situation-report/exercise/{exerciseId}/team/{teamId}/images' ,
params: {
}, headers: headers
p JSON . parse ( result )
import requests
headers = {
'Accept' : 'application/json'
}
r = requests . post ( '/widget/situation-report/exercise/{exerciseId}/team/{teamId}/images' , headers = headers )
print ( r . json ())
<?php
require 'vendor/autoload.php' ;
$headers = array (
'Accept' => 'application/json' ,
);
$client = new \ GuzzleHttp\Client ();
// Define array of request body.
$request_body = array ();
try {
$response = $client -> request ( 'POST' , '/widget/situation-report/exercise/{exerciseId}/team/{teamId}/images' , array (
'headers' => $headers ,
'json' => $request_body ,
)
);
print_r ( $response -> getBody () -> getContents ());
}
catch ( \ GuzzleHttp\Exception\BadResponseException $e ) {
// handle exception or api errors.
print_r ( $e -> getMessage ());
}
// ...
URL obj = new URL ( "/widget/situation-report/exercise/{exerciseId}/team/{teamId}/images" );
HttpURLConnection con = ( HttpURLConnection ) obj . openConnection ();
con . setRequestMethod ( "POST" );
int responseCode = con . getResponseCode ();
BufferedReader in = new BufferedReader (
new InputStreamReader ( con . getInputStream ()));
String inputLine ;
StringBuffer response = new StringBuffer ();
while (( inputLine = in . readLine ()) != null ) {
response . append ( inputLine );
}
in . close ();
System . out . println ( response . toString ());
package main
import (
"bytes"
"net/http"
)
func main () {
headers := map [ string ][] string {
"Accept" : [] string { "application/json" },
}
data := bytes . NewBuffer ([] byte { jsonReq })
req , err := http . NewRequest ( "POST" , "/widget/situation-report/exercise/{exerciseId}/team/{teamId}/images" , data )
req . Header = headers
client := & http . Client {}
resp , err := client . Do ( req )
// ...
}
POST /widget/situation-report/exercise/{exerciseId}/team/{teamId}/images
Parameters
Name
In
Type
Required
Description
exerciseId
path
string(uuid)
true
none
teamId
path
string(uuid)
true
none
Example responses
200 Response
{
"id" : "string" ,
"name" : "string" ,
"size" : 0
}
Responses
This operation does not require authentication
startMission
Code samples
# You can also use wget
curl -X POST /ctf-exercises/{ exerciseId} /teams/{ teamId} /mission/start
POST /ctf-exercises/{exerciseId}/teams/{teamId}/mission/start HTTP / 1.1
fetch ( ' /ctf-exercises/{exerciseId}/teams/{teamId}/mission/start ' ,
{
method : ' POST '
})
. then ( function ( res ) {
return res . json ();
}). then ( function ( body ) {
console . log ( body );
});
require 'rest-client'
require 'json'
result = RestClient . post '/ctf-exercises/{exerciseId}/teams/{teamId}/mission/start' ,
params: {
}
p JSON . parse ( result )
import requests
r = requests . post ( '/ctf-exercises/{exerciseId}/teams/{teamId}/mission/start' )
print ( r . json ())
<?php
require 'vendor/autoload.php' ;
$client = new \ GuzzleHttp\Client ();
// Define array of request body.
$request_body = array ();
try {
$response = $client -> request ( 'POST' , '/ctf-exercises/{exerciseId}/teams/{teamId}/mission/start' , array (
'headers' => $headers ,
'json' => $request_body ,
)
);
print_r ( $response -> getBody () -> getContents ());
}
catch ( \ GuzzleHttp\Exception\BadResponseException $e ) {
// handle exception or api errors.
print_r ( $e -> getMessage ());
}
// ...
URL obj = new URL ( "/ctf-exercises/{exerciseId}/teams/{teamId}/mission/start" );
HttpURLConnection con = ( HttpURLConnection ) obj . openConnection ();
con . setRequestMethod ( "POST" );
int responseCode = con . getResponseCode ();
BufferedReader in = new BufferedReader (
new InputStreamReader ( con . getInputStream ()));
String inputLine ;
StringBuffer response = new StringBuffer ();
while (( inputLine = in . readLine ()) != null ) {
response . append ( inputLine );
}
in . close ();
System . out . println ( response . toString ());
package main
import (
"bytes"
"net/http"
)
func main () {
data := bytes . NewBuffer ([] byte { jsonReq })
req , err := http . NewRequest ( "POST" , "/ctf-exercises/{exerciseId}/teams/{teamId}/mission/start" , data )
req . Header = headers
client := & http . Client {}
resp , err := client . Do ( req )
// ...
}
POST /ctf-exercises/{exerciseId}/teams/{teamId}/mission/start
Parameters
Name
In
Type
Required
Description
exerciseId
path
string(uuid)
true
none
teamId
path
string(uuid)
true
none
Responses
Status
Meaning
Description
Schema
default
Default
successful operation
None
This operation does not require authentication
getStatus
Code samples
# You can also use wget
curl -X GET /ctf-exercises/{ exerciseId} /teams/{ teamId} /mission/status \
-H 'Accept: application/json'
GET /ctf-exercises/{exerciseId}/teams/{teamId}/mission/status HTTP / 1.1
Accept: application/json
const headers = {
' Accept ' : ' application/json '
};
fetch ( ' /ctf-exercises/{exerciseId}/teams/{teamId}/mission/status ' ,
{
method : ' GET ' ,
headers : headers
})
. then ( function ( res ) {
return res . json ();
}). then ( function ( body ) {
console . log ( body );
});
require 'rest-client'
require 'json'
headers = {
'Accept' => 'application/json'
}
result = RestClient . get '/ctf-exercises/{exerciseId}/teams/{teamId}/mission/status' ,
params: {
}, headers: headers
p JSON . parse ( result )
import requests
headers = {
'Accept' : 'application/json'
}
r = requests . get ( '/ctf-exercises/{exerciseId}/teams/{teamId}/mission/status' , headers = headers )
print ( r . json ())
<?php
require 'vendor/autoload.php' ;
$headers = array (
'Accept' => 'application/json' ,
);
$client = new \ GuzzleHttp\Client ();
// Define array of request body.
$request_body = array ();
try {
$response = $client -> request ( 'GET' , '/ctf-exercises/{exerciseId}/teams/{teamId}/mission/status' , array (
'headers' => $headers ,
'json' => $request_body ,
)
);
print_r ( $response -> getBody () -> getContents ());
}
catch ( \ GuzzleHttp\Exception\BadResponseException $e ) {
// handle exception or api errors.
print_r ( $e -> getMessage ());
}
// ...
URL obj = new URL ( "/ctf-exercises/{exerciseId}/teams/{teamId}/mission/status" );
HttpURLConnection con = ( HttpURLConnection ) obj . openConnection ();
con . setRequestMethod ( "GET" );
int responseCode = con . getResponseCode ();
BufferedReader in = new BufferedReader (
new InputStreamReader ( con . getInputStream ()));
String inputLine ;
StringBuffer response = new StringBuffer ();
while (( inputLine = in . readLine ()) != null ) {
response . append ( inputLine );
}
in . close ();
System . out . println ( response . toString ());
package main
import (
"bytes"
"net/http"
)
func main () {
headers := map [ string ][] string {
"Accept" : [] string { "application/json" },
}
data := bytes . NewBuffer ([] byte { jsonReq })
req , err := http . NewRequest ( "GET" , "/ctf-exercises/{exerciseId}/teams/{teamId}/mission/status" , data )
req . Header = headers
client := & http . Client {}
resp , err := client . Do ( req )
// ...
}
GET /ctf-exercises/{exerciseId}/teams/{teamId}/mission/status
Parameters
Name
In
Type
Required
Description
exerciseId
path
string(uuid)
true
none
teamId
path
string(uuid)
true
none
Example responses
200 Response
{
"endTime" : 0 ,
"missionEndTime" : 0 ,
"missionMaxDurationMs" : 0 ,
"leader" : {
"score" : 0 ,
"tasksSolved" : 0
},
"teamScore" : 0 ,
"teamPosition" : 0 ,
"totalTeams" : 0 ,
"tasksSolved" : 0 ,
"tasksOpened" : 0 ,
"tasksLimit" : 0 ,
"tasksTotal" : 0 ,
"hintsUsed" : 0 ,
"hintsTotal" : 0 ,
"individualStartStop" : {
"start" : 0 ,
"stop" : 0
},
"showTeamPosition" : true
}
Responses
This operation does not require authentication
stopMission
Code samples
# You can also use wget
curl -X POST /ctf-exercises/{ exerciseId} /teams/{ teamId} /mission/stop
POST /ctf-exercises/{exerciseId}/teams/{teamId}/mission/stop HTTP / 1.1
fetch ( ' /ctf-exercises/{exerciseId}/teams/{teamId}/mission/stop ' ,
{
method : ' POST '
})
. then ( function ( res ) {
return res . json ();
}). then ( function ( body ) {
console . log ( body );
});
require 'rest-client'
require 'json'
result = RestClient . post '/ctf-exercises/{exerciseId}/teams/{teamId}/mission/stop' ,
params: {
}
p JSON . parse ( result )
import requests
r = requests . post ( '/ctf-exercises/{exerciseId}/teams/{teamId}/mission/stop' )
print ( r . json ())
<?php
require 'vendor/autoload.php' ;
$client = new \ GuzzleHttp\Client ();
// Define array of request body.
$request_body = array ();
try {
$response = $client -> request ( 'POST' , '/ctf-exercises/{exerciseId}/teams/{teamId}/mission/stop' , array (
'headers' => $headers ,
'json' => $request_body ,
)
);
print_r ( $response -> getBody () -> getContents ());
}
catch ( \ GuzzleHttp\Exception\BadResponseException $e ) {
// handle exception or api errors.
print_r ( $e -> getMessage ());
}
// ...
URL obj = new URL ( "/ctf-exercises/{exerciseId}/teams/{teamId}/mission/stop" );
HttpURLConnection con = ( HttpURLConnection ) obj . openConnection ();
con . setRequestMethod ( "POST" );
int responseCode = con . getResponseCode ();
BufferedReader in = new BufferedReader (
new InputStreamReader ( con . getInputStream ()));
String inputLine ;
StringBuffer response = new StringBuffer ();
while (( inputLine = in . readLine ()) != null ) {
response . append ( inputLine );
}
in . close ();
System . out . println ( response . toString ());
package main
import (
"bytes"
"net/http"
)
func main () {
data := bytes . NewBuffer ([] byte { jsonReq })
req , err := http . NewRequest ( "POST" , "/ctf-exercises/{exerciseId}/teams/{teamId}/mission/stop" , data )
req . Header = headers
client := & http . Client {}
resp , err := client . Do ( req )
// ...
}
POST /ctf-exercises/{exerciseId}/teams/{teamId}/mission/stop
Parameters
Name
In
Type
Required
Description
exerciseId
path
string(uuid)
true
none
teamId
path
string(uuid)
true
none
Responses
Status
Meaning
Description
Schema
default
Default
successful operation
None
This operation does not require authentication
listenForValidatedTasks
Code samples
# You can also use wget
curl -X GET /ctf-exercises/{ exerciseId} /teams/{ teamId} /mission/tasks/validation/subscribe
GET /ctf-exercises/{exerciseId}/teams/{teamId}/mission/tasks/validation/subscribe HTTP / 1.1
fetch ( ' /ctf-exercises/{exerciseId}/teams/{teamId}/mission/tasks/validation/subscribe ' ,
{
method : ' GET '
})
. then ( function ( res ) {
return res . json ();
}). then ( function ( body ) {
console . log ( body );
});
require 'rest-client'
require 'json'
result = RestClient . get '/ctf-exercises/{exerciseId}/teams/{teamId}/mission/tasks/validation/subscribe' ,
params: {
}
p JSON . parse ( result )
import requests
r = requests . get ( '/ctf-exercises/{exerciseId}/teams/{teamId}/mission/tasks/validation/subscribe' )
print ( r . json ())
<?php
require 'vendor/autoload.php' ;
$client = new \ GuzzleHttp\Client ();
// Define array of request body.
$request_body = array ();
try {
$response = $client -> request ( 'GET' , '/ctf-exercises/{exerciseId}/teams/{teamId}/mission/tasks/validation/subscribe' , array (
'headers' => $headers ,
'json' => $request_body ,
)
);
print_r ( $response -> getBody () -> getContents ());
}
catch ( \ GuzzleHttp\Exception\BadResponseException $e ) {
// handle exception or api errors.
print_r ( $e -> getMessage ());
}
// ...
URL obj = new URL ( "/ctf-exercises/{exerciseId}/teams/{teamId}/mission/tasks/validation/subscribe" );
HttpURLConnection con = ( HttpURLConnection ) obj . openConnection ();
con . setRequestMethod ( "GET" );
int responseCode = con . getResponseCode ();
BufferedReader in = new BufferedReader (
new InputStreamReader ( con . getInputStream ()));
String inputLine ;
StringBuffer response = new StringBuffer ();
while (( inputLine = in . readLine ()) != null ) {
response . append ( inputLine );
}
in . close ();
System . out . println ( response . toString ());
package main
import (
"bytes"
"net/http"
)
func main () {
data := bytes . NewBuffer ([] byte { jsonReq })
req , err := http . NewRequest ( "GET" , "/ctf-exercises/{exerciseId}/teams/{teamId}/mission/tasks/validation/subscribe" , data )
req . Header = headers
client := & http . Client {}
resp , err := client . Do ( req )
// ...
}
GET /ctf-exercises/{exerciseId}/teams/{teamId}/mission/tasks/validation/subscribe
Parameters
Name
In
Type
Required
Description
exerciseId
path
string(uuid)
true
none
teamId
path
string(uuid)
true
none
Responses
Status
Meaning
Description
Schema
default
Default
successful operation
None
This operation does not require authentication
getTaskDetails
Code samples
# You can also use wget
curl -X GET /ctf-exercises/{ exerciseId} /teams/{ teamId} /mission/tasks/{ taskId} \
-H 'Accept: application/json'
GET /ctf-exercises/{exerciseId}/teams/{teamId}/mission/tasks/{taskId} HTTP / 1.1
Accept: application/json
const headers = {
' Accept ' : ' application/json '
};
fetch ( ' /ctf-exercises/{exerciseId}/teams/{teamId}/mission/tasks/{taskId} ' ,
{
method : ' GET ' ,
headers : headers
})
. then ( function ( res ) {
return res . json ();
}). then ( function ( body ) {
console . log ( body );
});
require 'rest-client'
require 'json'
headers = {
'Accept' => 'application/json'
}
result = RestClient . get '/ctf-exercises/{exerciseId}/teams/{teamId}/mission/tasks/{taskId}' ,
params: {
}, headers: headers
p JSON . parse ( result )
import requests
headers = {
'Accept' : 'application/json'
}
r = requests . get ( '/ctf-exercises/{exerciseId}/teams/{teamId}/mission/tasks/{taskId}' , headers = headers )
print ( r . json ())
<?php
require 'vendor/autoload.php' ;
$headers = array (
'Accept' => 'application/json' ,
);
$client = new \ GuzzleHttp\Client ();
// Define array of request body.
$request_body = array ();
try {
$response = $client -> request ( 'GET' , '/ctf-exercises/{exerciseId}/teams/{teamId}/mission/tasks/{taskId}' , array (
'headers' => $headers ,
'json' => $request_body ,
)
);
print_r ( $response -> getBody () -> getContents ());
}
catch ( \ GuzzleHttp\Exception\BadResponseException $e ) {
// handle exception or api errors.
print_r ( $e -> getMessage ());
}
// ...
URL obj = new URL ( "/ctf-exercises/{exerciseId}/teams/{teamId}/mission/tasks/{taskId}" );
HttpURLConnection con = ( HttpURLConnection ) obj . openConnection ();
con . setRequestMethod ( "GET" );
int responseCode = con . getResponseCode ();
BufferedReader in = new BufferedReader (
new InputStreamReader ( con . getInputStream ()));
String inputLine ;
StringBuffer response = new StringBuffer ();
while (( inputLine = in . readLine ()) != null ) {
response . append ( inputLine );
}
in . close ();
System . out . println ( response . toString ());
package main
import (
"bytes"
"net/http"
)
func main () {
headers := map [ string ][] string {
"Accept" : [] string { "application/json" },
}
data := bytes . NewBuffer ([] byte { jsonReq })
req , err := http . NewRequest ( "GET" , "/ctf-exercises/{exerciseId}/teams/{teamId}/mission/tasks/{taskId}" , data )
req . Header = headers
client := & http . Client {}
resp , err := client . Do ( req )
// ...
}
GET /ctf-exercises/{exerciseId}/teams/{teamId}/mission/tasks/{taskId}
Parameters
Name
In
Type
Required
Description
exerciseId
path
string(uuid)
true
none
teamId
path
string(uuid)
true
none
taskId
path
string(uuid)
true
none
Example responses
200 Response
{
"id" : "497f6eca-6276-4993-bfeb-53cbbbba6f08" ,
"type" : "SINGLE_ANSWER" ,
"title" : "string" ,
"question" : "string" ,
"description" : "string" ,
"score" : 0 ,
"hintCount" : 0 ,
"answer" : "string" ,
"hints" : [
{
"id" : "497f6eca-6276-4993-bfeb-53cbbbba6f08" ,
"content" : "string" ,
"penalty" : 0
}
],
"status" : "ABANDONED" ,
"taskAbandonPenalty" : 0 ,
"usedHintIds" : [
"497f6eca-6276-4993-bfeb-53cbbbba6f08"
],
"nextHintPenalty" : 0 ,
"penaltyPoints" : 0 ,
"submissions" : [
{
"timestamp" : 0 ,
"teamName" : "string" ,
"userName" : "string" ,
"answer" : "string" ,
"score" : 0 ,
"feedback" : "string" ,
"validatorOutput" : "string" ,
"answerCrossUsageTeamNames" : [
"string"
],
"isCorrect" : true
}
],
"feedback" : [
{
"timestamp" : 0 ,
"teamName" : "string" ,
"userName" : "string" ,
"feedback" : "string"
}
],
"validatorOutput" : "string" ,
"isInputRequired" : true
}
Responses
This operation does not require authentication
abandonTask
Code samples
# You can also use wget
curl -X POST /ctf-exercises/{ exerciseId} /teams/{ teamId} /mission/tasks/{ taskId} /abandon \
-H 'Accept: application/json'
POST /ctf-exercises/{exerciseId}/teams/{teamId}/mission/tasks/{taskId}/abandon HTTP / 1.1
Accept: application/json
const headers = {
' Accept ' : ' application/json '
};
fetch ( ' /ctf-exercises/{exerciseId}/teams/{teamId}/mission/tasks/{taskId}/abandon ' ,
{
method : ' POST ' ,
headers : headers
})
. then ( function ( res ) {
return res . json ();
}). then ( function ( body ) {
console . log ( body );
});
require 'rest-client'
require 'json'
headers = {
'Accept' => 'application/json'
}
result = RestClient . post '/ctf-exercises/{exerciseId}/teams/{teamId}/mission/tasks/{taskId}/abandon' ,
params: {
}, headers: headers
p JSON . parse ( result )
import requests
headers = {
'Accept' : 'application/json'
}
r = requests . post ( '/ctf-exercises/{exerciseId}/teams/{teamId}/mission/tasks/{taskId}/abandon' , headers = headers )
print ( r . json ())
<?php
require 'vendor/autoload.php' ;
$headers = array (
'Accept' => 'application/json' ,
);
$client = new \ GuzzleHttp\Client ();
// Define array of request body.
$request_body = array ();
try {
$response = $client -> request ( 'POST' , '/ctf-exercises/{exerciseId}/teams/{teamId}/mission/tasks/{taskId}/abandon' , array (
'headers' => $headers ,
'json' => $request_body ,
)
);
print_r ( $response -> getBody () -> getContents ());
}
catch ( \ GuzzleHttp\Exception\BadResponseException $e ) {
// handle exception or api errors.
print_r ( $e -> getMessage ());
}
// ...
URL obj = new URL ( "/ctf-exercises/{exerciseId}/teams/{teamId}/mission/tasks/{taskId}/abandon" );
HttpURLConnection con = ( HttpURLConnection ) obj . openConnection ();
con . setRequestMethod ( "POST" );
int responseCode = con . getResponseCode ();
BufferedReader in = new BufferedReader (
new InputStreamReader ( con . getInputStream ()));
String inputLine ;
StringBuffer response = new StringBuffer ();
while (( inputLine = in . readLine ()) != null ) {
response . append ( inputLine );
}
in . close ();
System . out . println ( response . toString ());
package main
import (
"bytes"
"net/http"
)
func main () {
headers := map [ string ][] string {
"Accept" : [] string { "application/json" },
}
data := bytes . NewBuffer ([] byte { jsonReq })
req , err := http . NewRequest ( "POST" , "/ctf-exercises/{exerciseId}/teams/{teamId}/mission/tasks/{taskId}/abandon" , data )
req . Header = headers
client := & http . Client {}
resp , err := client . Do ( req )
// ...
}
POST /ctf-exercises/{exerciseId}/teams/{teamId}/mission/tasks/{taskId}/abandon
Parameters
Name
In
Type
Required
Description
exerciseId
path
string(uuid)
true
none
teamId
path
string(uuid)
true
none
taskId
path
string(uuid)
true
none
Example responses
200 Response
{
"status" : "ABANDONED" ,
"score" : 0
}
Responses
This operation does not require authentication
saveTaskFeedback
Code samples
# You can also use wget
curl -X POST /ctf-exercises/{ exerciseId} /teams/{ teamId} /mission/tasks/{ taskId} /feedback
POST /ctf-exercises/{exerciseId}/teams/{teamId}/mission/tasks/{taskId}/feedback HTTP / 1.1
fetch ( ' /ctf-exercises/{exerciseId}/teams/{teamId}/mission/tasks/{taskId}/feedback ' ,
{
method : ' POST '
})
. then ( function ( res ) {
return res . json ();
}). then ( function ( body ) {
console . log ( body );
});
require 'rest-client'
require 'json'
result = RestClient . post '/ctf-exercises/{exerciseId}/teams/{teamId}/mission/tasks/{taskId}/feedback' ,
params: {
}
p JSON . parse ( result )
import requests
r = requests . post ( '/ctf-exercises/{exerciseId}/teams/{teamId}/mission/tasks/{taskId}/feedback' )
print ( r . json ())
<?php
require 'vendor/autoload.php' ;
$client = new \ GuzzleHttp\Client ();
// Define array of request body.
$request_body = array ();
try {
$response = $client -> request ( 'POST' , '/ctf-exercises/{exerciseId}/teams/{teamId}/mission/tasks/{taskId}/feedback' , array (
'headers' => $headers ,
'json' => $request_body ,
)
);
print_r ( $response -> getBody () -> getContents ());
}
catch ( \ GuzzleHttp\Exception\BadResponseException $e ) {
// handle exception or api errors.
print_r ( $e -> getMessage ());
}
// ...
URL obj = new URL ( "/ctf-exercises/{exerciseId}/teams/{teamId}/mission/tasks/{taskId}/feedback" );
HttpURLConnection con = ( HttpURLConnection ) obj . openConnection ();
con . setRequestMethod ( "POST" );
int responseCode = con . getResponseCode ();
BufferedReader in = new BufferedReader (
new InputStreamReader ( con . getInputStream ()));
String inputLine ;
StringBuffer response = new StringBuffer ();
while (( inputLine = in . readLine ()) != null ) {
response . append ( inputLine );
}
in . close ();
System . out . println ( response . toString ());
package main
import (
"bytes"
"net/http"
)
func main () {
data := bytes . NewBuffer ([] byte { jsonReq })
req , err := http . NewRequest ( "POST" , "/ctf-exercises/{exerciseId}/teams/{teamId}/mission/tasks/{taskId}/feedback" , data )
req . Header = headers
client := & http . Client {}
resp , err := client . Do ( req )
// ...
}
POST /ctf-exercises/{exerciseId}/teams/{teamId}/mission/tasks/{taskId}/feedback
Parameters
Name
In
Type
Required
Description
exerciseId
path
string(uuid)
true
none
teamId
path
string(uuid)
true
none
taskId
path
string(uuid)
true
none
Responses
Status
Meaning
Description
Schema
default
Default
successful operation
None
This operation does not require authentication
lockTask
Code samples
# You can also use wget
curl -X POST /ctf-exercises/{ exerciseId} /teams/{ teamId} /mission/tasks/{ taskId} /lock \
-H 'Accept: application/json'
POST /ctf-exercises/{exerciseId}/teams/{teamId}/mission/tasks/{taskId}/lock HTTP / 1.1
Accept: application/json
const headers = {
' Accept ' : ' application/json '
};
fetch ( ' /ctf-exercises/{exerciseId}/teams/{teamId}/mission/tasks/{taskId}/lock ' ,
{
method : ' POST ' ,
headers : headers
})
. then ( function ( res ) {
return res . json ();
}). then ( function ( body ) {
console . log ( body );
});
require 'rest-client'
require 'json'
headers = {
'Accept' => 'application/json'
}
result = RestClient . post '/ctf-exercises/{exerciseId}/teams/{teamId}/mission/tasks/{taskId}/lock' ,
params: {
}, headers: headers
p JSON . parse ( result )
import requests
headers = {
'Accept' : 'application/json'
}
r = requests . post ( '/ctf-exercises/{exerciseId}/teams/{teamId}/mission/tasks/{taskId}/lock' , headers = headers )
print ( r . json ())
<?php
require 'vendor/autoload.php' ;
$headers = array (
'Accept' => 'application/json' ,
);
$client = new \ GuzzleHttp\Client ();
// Define array of request body.
$request_body = array ();
try {
$response = $client -> request ( 'POST' , '/ctf-exercises/{exerciseId}/teams/{teamId}/mission/tasks/{taskId}/lock' , array (
'headers' => $headers ,
'json' => $request_body ,
)
);
print_r ( $response -> getBody () -> getContents ());
}
catch ( \ GuzzleHttp\Exception\BadResponseException $e ) {
// handle exception or api errors.
print_r ( $e -> getMessage ());
}
// ...
URL obj = new URL ( "/ctf-exercises/{exerciseId}/teams/{teamId}/mission/tasks/{taskId}/lock" );
HttpURLConnection con = ( HttpURLConnection ) obj . openConnection ();
con . setRequestMethod ( "POST" );
int responseCode = con . getResponseCode ();
BufferedReader in = new BufferedReader (
new InputStreamReader ( con . getInputStream ()));
String inputLine ;
StringBuffer response = new StringBuffer ();
while (( inputLine = in . readLine ()) != null ) {
response . append ( inputLine );
}
in . close ();
System . out . println ( response . toString ());
package main
import (
"bytes"
"net/http"
)
func main () {
headers := map [ string ][] string {
"Accept" : [] string { "application/json" },
}
data := bytes . NewBuffer ([] byte { jsonReq })
req , err := http . NewRequest ( "POST" , "/ctf-exercises/{exerciseId}/teams/{teamId}/mission/tasks/{taskId}/lock" , data )
req . Header = headers
client := & http . Client {}
resp , err := client . Do ( req )
// ...
}
POST /ctf-exercises/{exerciseId}/teams/{teamId}/mission/tasks/{taskId}/lock
Parameters
Name
In
Type
Required
Description
exerciseId
path
string(uuid)
true
none
teamId
path
string(uuid)
true
none
taskId
path
string(uuid)
true
none
Example responses
200 Response
{
"status" : "ABANDONED" ,
"score" : 0
}
Responses
This operation does not require authentication
getNextHint
Code samples
# You can also use wget
curl -X POST /ctf-exercises/{ exerciseId} /teams/{ teamId} /mission/tasks/{ taskId} /next-hint \
-H 'Accept: application/json'
POST /ctf-exercises/{exerciseId}/teams/{teamId}/mission/tasks/{taskId}/next-hint HTTP / 1.1
Accept: application/json
const headers = {
' Accept ' : ' application/json '
};
fetch ( ' /ctf-exercises/{exerciseId}/teams/{teamId}/mission/tasks/{taskId}/next-hint ' ,
{
method : ' POST ' ,
headers : headers
})
. then ( function ( res ) {
return res . json ();
}). then ( function ( body ) {
console . log ( body );
});
require 'rest-client'
require 'json'
headers = {
'Accept' => 'application/json'
}
result = RestClient . post '/ctf-exercises/{exerciseId}/teams/{teamId}/mission/tasks/{taskId}/next-hint' ,
params: {
}, headers: headers
p JSON . parse ( result )
import requests
headers = {
'Accept' : 'application/json'
}
r = requests . post ( '/ctf-exercises/{exerciseId}/teams/{teamId}/mission/tasks/{taskId}/next-hint' , headers = headers )
print ( r . json ())
<?php
require 'vendor/autoload.php' ;
$headers = array (
'Accept' => 'application/json' ,
);
$client = new \ GuzzleHttp\Client ();
// Define array of request body.
$request_body = array ();
try {
$response = $client -> request ( 'POST' , '/ctf-exercises/{exerciseId}/teams/{teamId}/mission/tasks/{taskId}/next-hint' , array (
'headers' => $headers ,
'json' => $request_body ,
)
);
print_r ( $response -> getBody () -> getContents ());
}
catch ( \ GuzzleHttp\Exception\BadResponseException $e ) {
// handle exception or api errors.
print_r ( $e -> getMessage ());
}
// ...
URL obj = new URL ( "/ctf-exercises/{exerciseId}/teams/{teamId}/mission/tasks/{taskId}/next-hint" );
HttpURLConnection con = ( HttpURLConnection ) obj . openConnection ();
con . setRequestMethod ( "POST" );
int responseCode = con . getResponseCode ();
BufferedReader in = new BufferedReader (
new InputStreamReader ( con . getInputStream ()));
String inputLine ;
StringBuffer response = new StringBuffer ();
while (( inputLine = in . readLine ()) != null ) {
response . append ( inputLine );
}
in . close ();
System . out . println ( response . toString ());
package main
import (
"bytes"
"net/http"
)
func main () {
headers := map [ string ][] string {
"Accept" : [] string { "application/json" },
}
data := bytes . NewBuffer ([] byte { jsonReq })
req , err := http . NewRequest ( "POST" , "/ctf-exercises/{exerciseId}/teams/{teamId}/mission/tasks/{taskId}/next-hint" , data )
req . Header = headers
client := & http . Client {}
resp , err := client . Do ( req )
// ...
}
POST /ctf-exercises/{exerciseId}/teams/{teamId}/mission/tasks/{taskId}/next-hint
Parameters
Name
In
Type
Required
Description
exerciseId
path
string(uuid)
true
none
teamId
path
string(uuid)
true
none
taskId
path
string(uuid)
true
none
Example responses
200 Response
{
"usedHint" : {
"id" : "497f6eca-6276-4993-bfeb-53cbbbba6f08" ,
"content" : "string" ,
"penalty" : 0
},
"nextHintPenalty" : 0
}
Responses
Status
Meaning
Description
Schema
200
OK
successful operation
CTFHintUseDTO
This operation does not require authentication
solveTask
Code samples
# You can also use wget
curl -X POST /ctf-exercises/{ exerciseId} /teams/{ teamId} /mission/tasks/{ taskId} /solve \
-H 'Accept: application/json'
POST /ctf-exercises/{exerciseId}/teams/{teamId}/mission/tasks/{taskId}/solve HTTP / 1.1
Accept: application/json
const headers = {
' Accept ' : ' application/json '
};
fetch ( ' /ctf-exercises/{exerciseId}/teams/{teamId}/mission/tasks/{taskId}/solve ' ,
{
method : ' POST ' ,
headers : headers
})
. then ( function ( res ) {
return res . json ();
}). then ( function ( body ) {
console . log ( body );
});
require 'rest-client'
require 'json'
headers = {
'Accept' => 'application/json'
}
result = RestClient . post '/ctf-exercises/{exerciseId}/teams/{teamId}/mission/tasks/{taskId}/solve' ,
params: {
}, headers: headers
p JSON . parse ( result )
import requests
headers = {
'Accept' : 'application/json'
}
r = requests . post ( '/ctf-exercises/{exerciseId}/teams/{teamId}/mission/tasks/{taskId}/solve' , headers = headers )
print ( r . json ())
<?php
require 'vendor/autoload.php' ;
$headers = array (
'Accept' => 'application/json' ,
);
$client = new \ GuzzleHttp\Client ();
// Define array of request body.
$request_body = array ();
try {
$response = $client -> request ( 'POST' , '/ctf-exercises/{exerciseId}/teams/{teamId}/mission/tasks/{taskId}/solve' , array (
'headers' => $headers ,
'json' => $request_body ,
)
);
print_r ( $response -> getBody () -> getContents ());
}
catch ( \ GuzzleHttp\Exception\BadResponseException $e ) {
// handle exception or api errors.
print_r ( $e -> getMessage ());
}
// ...
URL obj = new URL ( "/ctf-exercises/{exerciseId}/teams/{teamId}/mission/tasks/{taskId}/solve" );
HttpURLConnection con = ( HttpURLConnection ) obj . openConnection ();
con . setRequestMethod ( "POST" );
int responseCode = con . getResponseCode ();
BufferedReader in = new BufferedReader (
new InputStreamReader ( con . getInputStream ()));
String inputLine ;
StringBuffer response = new StringBuffer ();
while (( inputLine = in . readLine ()) != null ) {
response . append ( inputLine );
}
in . close ();
System . out . println ( response . toString ());
package main
import (
"bytes"
"net/http"
)
func main () {
headers := map [ string ][] string {
"Accept" : [] string { "application/json" },
}
data := bytes . NewBuffer ([] byte { jsonReq })
req , err := http . NewRequest ( "POST" , "/ctf-exercises/{exerciseId}/teams/{teamId}/mission/tasks/{taskId}/solve" , data )
req . Header = headers
client := & http . Client {}
resp , err := client . Do ( req )
// ...
}
POST /ctf-exercises/{exerciseId}/teams/{teamId}/mission/tasks/{taskId}/solve
Parameters
Name
In
Type
Required
Description
exerciseId
path
string(uuid)
true
none
teamId
path
string(uuid)
true
none
taskId
path
string(uuid)
true
none
Example responses
200 Response
{
"status" : "ABANDONED" ,
"score" : 0
}
Responses
This operation does not require authentication
startTask
Code samples
# You can also use wget
curl -X POST /ctf-exercises/{ exerciseId} /teams/{ teamId} /mission/tasks/{ taskId} /start \
-H 'Accept: application/json'
POST /ctf-exercises/{exerciseId}/teams/{teamId}/mission/tasks/{taskId}/start HTTP / 1.1
Accept: application/json
const headers = {
' Accept ' : ' application/json '
};
fetch ( ' /ctf-exercises/{exerciseId}/teams/{teamId}/mission/tasks/{taskId}/start ' ,
{
method : ' POST ' ,
headers : headers
})
. then ( function ( res ) {
return res . json ();
}). then ( function ( body ) {
console . log ( body );
});
require 'rest-client'
require 'json'
headers = {
'Accept' => 'application/json'
}
result = RestClient . post '/ctf-exercises/{exerciseId}/teams/{teamId}/mission/tasks/{taskId}/start' ,
params: {
}, headers: headers
p JSON . parse ( result )
import requests
headers = {
'Accept' : 'application/json'
}
r = requests . post ( '/ctf-exercises/{exerciseId}/teams/{teamId}/mission/tasks/{taskId}/start' , headers = headers )
print ( r . json ())
<?php
require 'vendor/autoload.php' ;
$headers = array (
'Accept' => 'application/json' ,
);
$client = new \ GuzzleHttp\Client ();
// Define array of request body.
$request_body = array ();
try {
$response = $client -> request ( 'POST' , '/ctf-exercises/{exerciseId}/teams/{teamId}/mission/tasks/{taskId}/start' , array (
'headers' => $headers ,
'json' => $request_body ,
)
);
print_r ( $response -> getBody () -> getContents ());
}
catch ( \ GuzzleHttp\Exception\BadResponseException $e ) {
// handle exception or api errors.
print_r ( $e -> getMessage ());
}
// ...
URL obj = new URL ( "/ctf-exercises/{exerciseId}/teams/{teamId}/mission/tasks/{taskId}/start" );
HttpURLConnection con = ( HttpURLConnection ) obj . openConnection ();
con . setRequestMethod ( "POST" );
int responseCode = con . getResponseCode ();
BufferedReader in = new BufferedReader (
new InputStreamReader ( con . getInputStream ()));
String inputLine ;
StringBuffer response = new StringBuffer ();
while (( inputLine = in . readLine ()) != null ) {
response . append ( inputLine );
}
in . close ();
System . out . println ( response . toString ());
package main
import (
"bytes"
"net/http"
)
func main () {
headers := map [ string ][] string {
"Accept" : [] string { "application/json" },
}
data := bytes . NewBuffer ([] byte { jsonReq })
req , err := http . NewRequest ( "POST" , "/ctf-exercises/{exerciseId}/teams/{teamId}/mission/tasks/{taskId}/start" , data )
req . Header = headers
client := & http . Client {}
resp , err := client . Do ( req )
// ...
}
POST /ctf-exercises/{exerciseId}/teams/{teamId}/mission/tasks/{taskId}/start
Parameters
Name
In
Type
Required
Description
exerciseId
path
string(uuid)
true
none
teamId
path
string(uuid)
true
none
taskId
path
string(uuid)
true
none
Example responses
200 Response
{
"status" : "ABANDONED" ,
"score" : 0
}
Responses
This operation does not require authentication
unlockTask
Code samples
# You can also use wget
curl -X POST /ctf-exercises/{ exerciseId} /teams/{ teamId} /mission/tasks/{ taskId} /unlock \
-H 'Accept: application/json'
POST /ctf-exercises/{exerciseId}/teams/{teamId}/mission/tasks/{taskId}/unlock HTTP / 1.1
Accept: application/json
const headers = {
' Accept ' : ' application/json '
};
fetch ( ' /ctf-exercises/{exerciseId}/teams/{teamId}/mission/tasks/{taskId}/unlock ' ,
{
method : ' POST ' ,
headers : headers
})
. then ( function ( res ) {
return res . json ();
}). then ( function ( body ) {
console . log ( body );
});
require 'rest-client'
require 'json'
headers = {
'Accept' => 'application/json'
}
result = RestClient . post '/ctf-exercises/{exerciseId}/teams/{teamId}/mission/tasks/{taskId}/unlock' ,
params: {
}, headers: headers
p JSON . parse ( result )
import requests
headers = {
'Accept' : 'application/json'
}
r = requests . post ( '/ctf-exercises/{exerciseId}/teams/{teamId}/mission/tasks/{taskId}/unlock' , headers = headers )
print ( r . json ())
<?php
require 'vendor/autoload.php' ;
$headers = array (
'Accept' => 'application/json' ,
);
$client = new \ GuzzleHttp\Client ();
// Define array of request body.
$request_body = array ();
try {
$response = $client -> request ( 'POST' , '/ctf-exercises/{exerciseId}/teams/{teamId}/mission/tasks/{taskId}/unlock' , array (
'headers' => $headers ,
'json' => $request_body ,
)
);
print_r ( $response -> getBody () -> getContents ());
}
catch ( \ GuzzleHttp\Exception\BadResponseException $e ) {
// handle exception or api errors.
print_r ( $e -> getMessage ());
}
// ...
URL obj = new URL ( "/ctf-exercises/{exerciseId}/teams/{teamId}/mission/tasks/{taskId}/unlock" );
HttpURLConnection con = ( HttpURLConnection ) obj . openConnection ();
con . setRequestMethod ( "POST" );
int responseCode = con . getResponseCode ();
BufferedReader in = new BufferedReader (
new InputStreamReader ( con . getInputStream ()));
String inputLine ;
StringBuffer response = new StringBuffer ();
while (( inputLine = in . readLine ()) != null ) {
response . append ( inputLine );
}
in . close ();
System . out . println ( response . toString ());
package main
import (
"bytes"
"net/http"
)
func main () {
headers := map [ string ][] string {
"Accept" : [] string { "application/json" },
}
data := bytes . NewBuffer ([] byte { jsonReq })
req , err := http . NewRequest ( "POST" , "/ctf-exercises/{exerciseId}/teams/{teamId}/mission/tasks/{taskId}/unlock" , data )
req . Header = headers
client := & http . Client {}
resp , err := client . Do ( req )
// ...
}
POST /ctf-exercises/{exerciseId}/teams/{teamId}/mission/tasks/{taskId}/unlock
Parameters
Name
In
Type
Required
Description
exerciseId
path
string(uuid)
true
none
teamId
path
string(uuid)
true
none
taskId
path
string(uuid)
true
none
Example responses
200 Response
{
"status" : "ABANDONED" ,
"score" : 0
}
Responses
This operation does not require authentication
validateTask
Code samples
# You can also use wget
curl -X POST /ctf-exercises/{ exerciseId} /teams/{ teamId} /mission/tasks/{ taskId} /validate \
-H 'Accept: application/json'
POST /ctf-exercises/{exerciseId}/teams/{teamId}/mission/tasks/{taskId}/validate HTTP / 1.1
Accept: application/json
const headers = {
' Accept ' : ' application/json '
};
fetch ( ' /ctf-exercises/{exerciseId}/teams/{teamId}/mission/tasks/{taskId}/validate ' ,
{
method : ' POST ' ,
headers : headers
})
. then ( function ( res ) {
return res . json ();
}). then ( function ( body ) {
console . log ( body );
});
require 'rest-client'
require 'json'
headers = {
'Accept' => 'application/json'
}
result = RestClient . post '/ctf-exercises/{exerciseId}/teams/{teamId}/mission/tasks/{taskId}/validate' ,
params: {
}, headers: headers
p JSON . parse ( result )
import requests
headers = {
'Accept' : 'application/json'
}
r = requests . post ( '/ctf-exercises/{exerciseId}/teams/{teamId}/mission/tasks/{taskId}/validate' , headers = headers )
print ( r . json ())
<?php
require 'vendor/autoload.php' ;
$headers = array (
'Accept' => 'application/json' ,
);
$client = new \ GuzzleHttp\Client ();
// Define array of request body.
$request_body = array ();
try {
$response = $client -> request ( 'POST' , '/ctf-exercises/{exerciseId}/teams/{teamId}/mission/tasks/{taskId}/validate' , array (
'headers' => $headers ,
'json' => $request_body ,
)
);
print_r ( $response -> getBody () -> getContents ());
}
catch ( \ GuzzleHttp\Exception\BadResponseException $e ) {
// handle exception or api errors.
print_r ( $e -> getMessage ());
}
// ...
URL obj = new URL ( "/ctf-exercises/{exerciseId}/teams/{teamId}/mission/tasks/{taskId}/validate" );
HttpURLConnection con = ( HttpURLConnection ) obj . openConnection ();
con . setRequestMethod ( "POST" );
int responseCode = con . getResponseCode ();
BufferedReader in = new BufferedReader (
new InputStreamReader ( con . getInputStream ()));
String inputLine ;
StringBuffer response = new StringBuffer ();
while (( inputLine = in . readLine ()) != null ) {
response . append ( inputLine );
}
in . close ();
System . out . println ( response . toString ());
package main
import (
"bytes"
"net/http"
)
func main () {
headers := map [ string ][] string {
"Accept" : [] string { "application/json" },
}
data := bytes . NewBuffer ([] byte { jsonReq })
req , err := http . NewRequest ( "POST" , "/ctf-exercises/{exerciseId}/teams/{teamId}/mission/tasks/{taskId}/validate" , data )
req . Header = headers
client := & http . Client {}
resp , err := client . Do ( req )
// ...
}
POST /ctf-exercises/{exerciseId}/teams/{teamId}/mission/tasks/{taskId}/validate
Parameters
Name
In
Type
Required
Description
exerciseId
path
string(uuid)
true
none
teamId
path
string(uuid)
true
none
taskId
path
string(uuid)
true
none
Example responses
200 Response
{
"status" : "ABANDONED" ,
"score" : 0
}
Responses
This operation does not require authentication
getData
Code samples
# You can also use wget
curl -X GET /widget/user-scoring/exercise/{ exerciseId} \
-H 'Accept: application/json'
GET /widget/user-scoring/exercise/{exerciseId} HTTP / 1.1
Accept: application/json
const headers = {
' Accept ' : ' application/json '
};
fetch ( ' /widget/user-scoring/exercise/{exerciseId} ' ,
{
method : ' GET ' ,
headers : headers
})
. then ( function ( res ) {
return res . json ();
}). then ( function ( body ) {
console . log ( body );
});
require 'rest-client'
require 'json'
headers = {
'Accept' => 'application/json'
}
result = RestClient . get '/widget/user-scoring/exercise/{exerciseId}' ,
params: {
}, headers: headers
p JSON . parse ( result )
import requests
headers = {
'Accept' : 'application/json'
}
r = requests . get ( '/widget/user-scoring/exercise/{exerciseId}' , headers = headers )
print ( r . json ())
<?php
require 'vendor/autoload.php' ;
$headers = array (
'Accept' => 'application/json' ,
);
$client = new \ GuzzleHttp\Client ();
// Define array of request body.
$request_body = array ();
try {
$response = $client -> request ( 'GET' , '/widget/user-scoring/exercise/{exerciseId}' , array (
'headers' => $headers ,
'json' => $request_body ,
)
);
print_r ( $response -> getBody () -> getContents ());
}
catch ( \ GuzzleHttp\Exception\BadResponseException $e ) {
// handle exception or api errors.
print_r ( $e -> getMessage ());
}
// ...
URL obj = new URL ( "/widget/user-scoring/exercise/{exerciseId}" );
HttpURLConnection con = ( HttpURLConnection ) obj . openConnection ();
con . setRequestMethod ( "GET" );
int responseCode = con . getResponseCode ();
BufferedReader in = new BufferedReader (
new InputStreamReader ( con . getInputStream ()));
String inputLine ;
StringBuffer response = new StringBuffer ();
while (( inputLine = in . readLine ()) != null ) {
response . append ( inputLine );
}
in . close ();
System . out . println ( response . toString ());
package main
import (
"bytes"
"net/http"
)
func main () {
headers := map [ string ][] string {
"Accept" : [] string { "application/json" },
}
data := bytes . NewBuffer ([] byte { jsonReq })
req , err := http . NewRequest ( "GET" , "/widget/user-scoring/exercise/{exerciseId}" , data )
req . Header = headers
client := & http . Client {}
resp , err := client . Do ( req )
// ...
}
GET /widget/user-scoring/exercise/{exerciseId}
Parameters
Name
In
Type
Required
Description
exerciseId
path
string(uuid)
true
none
team
query
UUID
false
team id
timestamp
query
integer(int64)
false
none
Example responses
200 Response
[
{
"valueType" : "ARRAY"
}
]
Responses
Status
Meaning
Description
Schema
200
OK
[
{
"teamName":"Team-1,
"username":"BT1-User1",
"scores":[
{
"category":"SPECIAL",
"value":-986
},
{
"category":"AVAILABILITY",
"value":463
},
{
"category":"INCIDENT_REPORTS",
"value":-29
},
{
"category":"SITUATION_REPORTS",
"value":1044
},
{
"category":"ATTACK_REPORTS",
"value":167
},
{
"category":"RESTORE_TO_BACKUP",
"value":-350.0
}
]
},
...
]|Inline|
Response Schema
Status Code 200
Name
Type
Required
Restrictions
Description
anonymous
[JsonValue ]
false
none
none
» valueType
string
false
none
none
Enumerated Values
Property
Value
valueType
ARRAY
valueType
OBJECT
valueType
STRING
valueType
NUMBER
valueType
TRUE
valueType
FALSE
valueType
NULL
This operation does not require authentication
getAssessmentReport
Code samples
# You can also use wget
curl -X GET /ctf/assessment/exercises/{ exerciseId} /teams/{ teamId} \
-H 'Accept: application/json'
GET /ctf/assessment/exercises/{exerciseId}/teams/{teamId} HTTP / 1.1
Accept: application/json
const headers = {
' Accept ' : ' application/json '
};
fetch ( ' /ctf/assessment/exercises/{exerciseId}/teams/{teamId} ' ,
{
method : ' GET ' ,
headers : headers
})
. then ( function ( res ) {
return res . json ();
}). then ( function ( body ) {
console . log ( body );
});
require 'rest-client'
require 'json'
headers = {
'Accept' => 'application/json'
}
result = RestClient . get '/ctf/assessment/exercises/{exerciseId}/teams/{teamId}' ,
params: {
}, headers: headers
p JSON . parse ( result )
import requests
headers = {
'Accept' : 'application/json'
}
r = requests . get ( '/ctf/assessment/exercises/{exerciseId}/teams/{teamId}' , headers = headers )
print ( r . json ())
<?php
require 'vendor/autoload.php' ;
$headers = array (
'Accept' => 'application/json' ,
);
$client = new \ GuzzleHttp\Client ();
// Define array of request body.
$request_body = array ();
try {
$response = $client -> request ( 'GET' , '/ctf/assessment/exercises/{exerciseId}/teams/{teamId}' , array (
'headers' => $headers ,
'json' => $request_body ,
)
);
print_r ( $response -> getBody () -> getContents ());
}
catch ( \ GuzzleHttp\Exception\BadResponseException $e ) {
// handle exception or api errors.
print_r ( $e -> getMessage ());
}
// ...
URL obj = new URL ( "/ctf/assessment/exercises/{exerciseId}/teams/{teamId}" );
HttpURLConnection con = ( HttpURLConnection ) obj . openConnection ();
con . setRequestMethod ( "GET" );
int responseCode = con . getResponseCode ();
BufferedReader in = new BufferedReader (
new InputStreamReader ( con . getInputStream ()));
String inputLine ;
StringBuffer response = new StringBuffer ();
while (( inputLine = in . readLine ()) != null ) {
response . append ( inputLine );
}
in . close ();
System . out . println ( response . toString ());
package main
import (
"bytes"
"net/http"
)
func main () {
headers := map [ string ][] string {
"Accept" : [] string { "application/json" },
}
data := bytes . NewBuffer ([] byte { jsonReq })
req , err := http . NewRequest ( "GET" , "/ctf/assessment/exercises/{exerciseId}/teams/{teamId}" , data )
req . Header = headers
client := & http . Client {}
resp , err := client . Do ( req )
// ...
}
GET /ctf/assessment/exercises/{exerciseId}/teams/{teamId}
Parameters
Name
In
Type
Required
Description
exerciseId
path
string(uuid)
true
none
teamId
path
string(uuid)
true
none
Example responses
200 Response
{
"title" : "string" ,
"details" : "string" ,
"usernames" : [
"string"
],
"startTime" : 0 ,
"endTime" : 0 ,
"maxTimeMs" : 0 ,
"taskAvgTimeMs" : 0 ,
"scoreReport" : {
"scoreByCategory" : {
"property1" : 0 ,
"property2" : 0
},
"scoreEvents" : [
{
"type" : "ANSWER" ,
"taskCategory" : "string" ,
"source" : "TASK_EVENT" ,
"eventScore" : 0 ,
"totalScore" : 0 ,
"timestamp" : 0 ,
"taskName" : "string"
}
],
"totalScore" : 0
},
"tasksTotal" : 0 ,
"tasksSolved" : 0 ,
"progressByCategory" : {
"property1" : 0 ,
"property2" : 0
},
"totalProgress" : 0 ,
"hintsTotal" : 0 ,
"hintsUsed" : 0 ,
"wrongAnswers" : 0 ,
"abandonedTasks" : 0 ,
"teamTasksOverview" : {
"teamName" : "string" ,
"position" : 0 ,
"categories" : [
{
"category" : "string" ,
"tasks" : [
{
"status" : "ABANDONED" ,
"title" : "string" ,
"score" : 0 ,
"usedHints" : 0 ,
"maxHints" : 0 ,
"timeSpentMs" : 0
}
]
}
]
}
}
Responses
This operation does not require authentication
getOverview
Code samples
# You can also use wget
curl -X GET /ctf/game-overview/exercises/{ exerciseId} \
-H 'Accept: application/json'
GET /ctf/game-overview/exercises/{exerciseId} HTTP / 1.1
Accept: application/json
const headers = {
' Accept ' : ' application/json '
};
fetch ( ' /ctf/game-overview/exercises/{exerciseId} ' ,
{
method : ' GET ' ,
headers : headers
})
. then ( function ( res ) {
return res . json ();
}). then ( function ( body ) {
console . log ( body );
});
require 'rest-client'
require 'json'
headers = {
'Accept' => 'application/json'
}
result = RestClient . get '/ctf/game-overview/exercises/{exerciseId}' ,
params: {
}, headers: headers
p JSON . parse ( result )
import requests
headers = {
'Accept' : 'application/json'
}
r = requests . get ( '/ctf/game-overview/exercises/{exerciseId}' , headers = headers )
print ( r . json ())
<?php
require 'vendor/autoload.php' ;
$headers = array (
'Accept' => 'application/json' ,
);
$client = new \ GuzzleHttp\Client ();
// Define array of request body.
$request_body = array ();
try {
$response = $client -> request ( 'GET' , '/ctf/game-overview/exercises/{exerciseId}' , array (
'headers' => $headers ,
'json' => $request_body ,
)
);
print_r ( $response -> getBody () -> getContents ());
}
catch ( \ GuzzleHttp\Exception\BadResponseException $e ) {
// handle exception or api errors.
print_r ( $e -> getMessage ());
}
// ...
URL obj = new URL ( "/ctf/game-overview/exercises/{exerciseId}" );
HttpURLConnection con = ( HttpURLConnection ) obj . openConnection ();
con . setRequestMethod ( "GET" );
int responseCode = con . getResponseCode ();
BufferedReader in = new BufferedReader (
new InputStreamReader ( con . getInputStream ()));
String inputLine ;
StringBuffer response = new StringBuffer ();
while (( inputLine = in . readLine ()) != null ) {
response . append ( inputLine );
}
in . close ();
System . out . println ( response . toString ());
package main
import (
"bytes"
"net/http"
)
func main () {
headers := map [ string ][] string {
"Accept" : [] string { "application/json" },
}
data := bytes . NewBuffer ([] byte { jsonReq })
req , err := http . NewRequest ( "GET" , "/ctf/game-overview/exercises/{exerciseId}" , data )
req . Header = headers
client := & http . Client {}
resp , err := client . Do ( req )
// ...
}
GET /ctf/game-overview/exercises/{exerciseId}
Parameters
Name
In
Type
Required
Description
exerciseId
path
string(uuid)
true
none
Example responses
200 Response
{
"teams" : [
{
"teamName" : "string" ,
"position" : 0 ,
"categories" : [
{
"category" : "string" ,
"tasks" : [
{
"status" : "ABANDONED" ,
"title" : "string" ,
"score" : 0 ,
"usedHints" : 0 ,
"maxHints" : 0 ,
"timeSpentMs" : 0
}
]
}
]
}
],
"status" : {
"endTime" : 0 ,
"totalTeams" : 0 ,
"leader" : {
"name" : "string" ,
"score" : 0 ,
"tasksSolved" : 0
},
"tasksTotal" : 0 ,
"hintsUsed" : 0 ,
"hintsTotal" : 0 ,
"progressByCategory" : {
"property1" : 0 ,
"property2" : 0
}
}
}
Responses
This operation does not require authentication
getLeaderBoard
Code samples
# You can also use wget
curl -X GET /ctf/leaderboard/exercises/{ exerciseId} \
-H 'Accept: application/json'
GET /ctf/leaderboard/exercises/{exerciseId} HTTP / 1.1
Accept: application/json
const headers = {
' Accept ' : ' application/json '
};
fetch ( ' /ctf/leaderboard/exercises/{exerciseId} ' ,
{
method : ' GET ' ,
headers : headers
})
. then ( function ( res ) {
return res . json ();
}). then ( function ( body ) {
console . log ( body );
});
require 'rest-client'
require 'json'
headers = {
'Accept' => 'application/json'
}
result = RestClient . get '/ctf/leaderboard/exercises/{exerciseId}' ,
params: {
}, headers: headers
p JSON . parse ( result )
import requests
headers = {
'Accept' : 'application/json'
}
r = requests . get ( '/ctf/leaderboard/exercises/{exerciseId}' , headers = headers )
print ( r . json ())
<?php
require 'vendor/autoload.php' ;
$headers = array (
'Accept' => 'application/json' ,
);
$client = new \ GuzzleHttp\Client ();
// Define array of request body.
$request_body = array ();
try {
$response = $client -> request ( 'GET' , '/ctf/leaderboard/exercises/{exerciseId}' , array (
'headers' => $headers ,
'json' => $request_body ,
)
);
print_r ( $response -> getBody () -> getContents ());
}
catch ( \ GuzzleHttp\Exception\BadResponseException $e ) {
// handle exception or api errors.
print_r ( $e -> getMessage ());
}
// ...
URL obj = new URL ( "/ctf/leaderboard/exercises/{exerciseId}" );
HttpURLConnection con = ( HttpURLConnection ) obj . openConnection ();
con . setRequestMethod ( "GET" );
int responseCode = con . getResponseCode ();
BufferedReader in = new BufferedReader (
new InputStreamReader ( con . getInputStream ()));
String inputLine ;
StringBuffer response = new StringBuffer ();
while (( inputLine = in . readLine ()) != null ) {
response . append ( inputLine );
}
in . close ();
System . out . println ( response . toString ());
package main
import (
"bytes"
"net/http"
)
func main () {
headers := map [ string ][] string {
"Accept" : [] string { "application/json" },
}
data := bytes . NewBuffer ([] byte { jsonReq })
req , err := http . NewRequest ( "GET" , "/ctf/leaderboard/exercises/{exerciseId}" , data )
req . Header = headers
client := & http . Client {}
resp , err := client . Do ( req )
// ...
}
GET /ctf/leaderboard/exercises/{exerciseId}
Parameters
Name
In
Type
Required
Description
exerciseId
path
string(uuid)
true
none
Example responses
200 Response
{
"teams" : [
{
"teamName" : "string" ,
"score" : 0 ,
"tasks" : {
"total" : 0 ,
"solved" : 0 ,
"inProgress" : 0 ,
"abandoned" : 0 ,
"wrongSubmissions" : 0
},
"progressByCategory" : {
"property1" : 0 ,
"property2" : 0
},
"totalProgress" : 0 ,
"hints" : {
"used" : 0 ,
"total" : 0
}
}
],
"status" : {
"endTime" : 0 ,
"totalTeams" : 0 ,
"leader" : {
"name" : "string" ,
"score" : 0 ,
"tasksSolved" : 0
},
"tasksTotal" : 0 ,
"hintsUsed" : 0 ,
"hintsTotal" : 0 ,
"progressByCategory" : {
"property1" : 0 ,
"property2" : 0
}
}
}
Responses
This operation does not require authentication
getPodiumData
Code samples
# You can also use wget
curl -X GET /ctf/podium/exercises/{ exerciseId} \
-H 'Accept: application/json'
GET /ctf/podium/exercises/{exerciseId} HTTP / 1.1
Accept: application/json
const headers = {
' Accept ' : ' application/json '
};
fetch ( ' /ctf/podium/exercises/{exerciseId} ' ,
{
method : ' GET ' ,
headers : headers
})
. then ( function ( res ) {
return res . json ();
}). then ( function ( body ) {
console . log ( body );
});
require 'rest-client'
require 'json'
headers = {
'Accept' => 'application/json'
}
result = RestClient . get '/ctf/podium/exercises/{exerciseId}' ,
params: {
}, headers: headers
p JSON . parse ( result )
import requests
headers = {
'Accept' : 'application/json'
}
r = requests . get ( '/ctf/podium/exercises/{exerciseId}' , headers = headers )
print ( r . json ())
<?php
require 'vendor/autoload.php' ;
$headers = array (
'Accept' => 'application/json' ,
);
$client = new \ GuzzleHttp\Client ();
// Define array of request body.
$request_body = array ();
try {
$response = $client -> request ( 'GET' , '/ctf/podium/exercises/{exerciseId}' , array (
'headers' => $headers ,
'json' => $request_body ,
)
);
print_r ( $response -> getBody () -> getContents ());
}
catch ( \ GuzzleHttp\Exception\BadResponseException $e ) {
// handle exception or api errors.
print_r ( $e -> getMessage ());
}
// ...
URL obj = new URL ( "/ctf/podium/exercises/{exerciseId}" );
HttpURLConnection con = ( HttpURLConnection ) obj . openConnection ();
con . setRequestMethod ( "GET" );
int responseCode = con . getResponseCode ();
BufferedReader in = new BufferedReader (
new InputStreamReader ( con . getInputStream ()));
String inputLine ;
StringBuffer response = new StringBuffer ();
while (( inputLine = in . readLine ()) != null ) {
response . append ( inputLine );
}
in . close ();
System . out . println ( response . toString ());
package main
import (
"bytes"
"net/http"
)
func main () {
headers := map [ string ][] string {
"Accept" : [] string { "application/json" },
}
data := bytes . NewBuffer ([] byte { jsonReq })
req , err := http . NewRequest ( "GET" , "/ctf/podium/exercises/{exerciseId}" , data )
req . Header = headers
client := & http . Client {}
resp , err := client . Do ( req )
// ...
}
GET /ctf/podium/exercises/{exerciseId}
Parameters
Name
In
Type
Required
Description
exerciseId
path
string(uuid)
true
none
timestamp
query
integer(int64)
false
none
Example responses
200 Response
{
"endTime" : 0 ,
"teams" : [
{
"teamId" : "a4ede8ba-7c0a-4485-8763-cbd9b282fbec" ,
"score" : 0 ,
"tasksOverview" : {
"teamName" : "string" ,
"position" : 0 ,
"categories" : [
{
"category" : "string" ,
"tasks" : [
{
"status" : "ABANDONED" ,
"title" : "string" ,
"score" : 0 ,
"usedHints" : 0 ,
"maxHints" : 0 ,
"timeSpentMs" : 0
}
]
}
]
}
}
]
}
Responses
Status
Meaning
Description
Schema
200
OK
successful operation
CTFPodiumDTO
This operation does not require authentication
getSound
Code samples
# You can also use wget
curl -X GET /widget/team-scoring/exercise/{ exerciseId} /sounds/{ soundId}
GET /widget/team-scoring/exercise/{exerciseId}/sounds/{soundId} HTTP / 1.1
fetch ( ' /widget/team-scoring/exercise/{exerciseId}/sounds/{soundId} ' ,
{
method : ' GET '
})
. then ( function ( res ) {
return res . json ();
}). then ( function ( body ) {
console . log ( body );
});
require 'rest-client'
require 'json'
result = RestClient . get '/widget/team-scoring/exercise/{exerciseId}/sounds/{soundId}' ,
params: {
}
p JSON . parse ( result )
import requests
r = requests . get ( '/widget/team-scoring/exercise/{exerciseId}/sounds/{soundId}' )
print ( r . json ())
<?php
require 'vendor/autoload.php' ;
$client = new \ GuzzleHttp\Client ();
// Define array of request body.
$request_body = array ();
try {
$response = $client -> request ( 'GET' , '/widget/team-scoring/exercise/{exerciseId}/sounds/{soundId}' , array (
'headers' => $headers ,
'json' => $request_body ,
)
);
print_r ( $response -> getBody () -> getContents ());
}
catch ( \ GuzzleHttp\Exception\BadResponseException $e ) {
// handle exception or api errors.
print_r ( $e -> getMessage ());
}
// ...
URL obj = new URL ( "/widget/team-scoring/exercise/{exerciseId}/sounds/{soundId}" );
HttpURLConnection con = ( HttpURLConnection ) obj . openConnection ();
con . setRequestMethod ( "GET" );
int responseCode = con . getResponseCode ();
BufferedReader in = new BufferedReader (
new InputStreamReader ( con . getInputStream ()));
String inputLine ;
StringBuffer response = new StringBuffer ();
while (( inputLine = in . readLine ()) != null ) {
response . append ( inputLine );
}
in . close ();
System . out . println ( response . toString ());
package main
import (
"bytes"
"net/http"
)
func main () {
data := bytes . NewBuffer ([] byte { jsonReq })
req , err := http . NewRequest ( "GET" , "/widget/team-scoring/exercise/{exerciseId}/sounds/{soundId}" , data )
req . Header = headers
client := & http . Client {}
resp , err := client . Do ( req )
// ...
}
GET /widget/team-scoring/exercise/{exerciseId}/sounds/{soundId}
Parameters
Name
In
Type
Required
Description
exerciseId
path
string(uuid)
true
none
soundId
path
string
true
none
Responses
Status
Meaning
Description
Schema
default
Default
successful operation
None
This operation does not require authentication
Code samples
# You can also use wget
curl -X GET /widget/team-timeline/exercise/{ exerciseId} /team/{ teamId} \
-H 'Accept: application/json'
GET /widget/team-timeline/exercise/{exerciseId}/team/{teamId} HTTP / 1.1
Accept: application/json
const headers = {
' Accept ' : ' application/json '
};
fetch ( ' /widget/team-timeline/exercise/{exerciseId}/team/{teamId} ' ,
{
method : ' GET ' ,
headers : headers
})
. then ( function ( res ) {
return res . json ();
}). then ( function ( body ) {
console . log ( body );
});
require 'rest-client'
require 'json'
headers = {
'Accept' => 'application/json'
}
result = RestClient . get '/widget/team-timeline/exercise/{exerciseId}/team/{teamId}' ,
params: {
}, headers: headers
p JSON . parse ( result )
import requests
headers = {
'Accept' : 'application/json'
}
r = requests . get ( '/widget/team-timeline/exercise/{exerciseId}/team/{teamId}' , headers = headers )
print ( r . json ())
<?php
require 'vendor/autoload.php' ;
$headers = array (
'Accept' => 'application/json' ,
);
$client = new \ GuzzleHttp\Client ();
// Define array of request body.
$request_body = array ();
try {
$response = $client -> request ( 'GET' , '/widget/team-timeline/exercise/{exerciseId}/team/{teamId}' , array (
'headers' => $headers ,
'json' => $request_body ,
)
);
print_r ( $response -> getBody () -> getContents ());
}
catch ( \ GuzzleHttp\Exception\BadResponseException $e ) {
// handle exception or api errors.
print_r ( $e -> getMessage ());
}
// ...
URL obj = new URL ( "/widget/team-timeline/exercise/{exerciseId}/team/{teamId}" );
HttpURLConnection con = ( HttpURLConnection ) obj . openConnection ();
con . setRequestMethod ( "GET" );
int responseCode = con . getResponseCode ();
BufferedReader in = new BufferedReader (
new InputStreamReader ( con . getInputStream ()));
String inputLine ;
StringBuffer response = new StringBuffer ();
while (( inputLine = in . readLine ()) != null ) {
response . append ( inputLine );
}
in . close ();
System . out . println ( response . toString ());
package main
import (
"bytes"
"net/http"
)
func main () {
headers := map [ string ][] string {
"Accept" : [] string { "application/json" },
}
data := bytes . NewBuffer ([] byte { jsonReq })
req , err := http . NewRequest ( "GET" , "/widget/team-timeline/exercise/{exerciseId}/team/{teamId}" , data )
req . Header = headers
client := & http . Client {}
resp , err := client . Do ( req )
// ...
}
GET /widget/team-timeline/exercise/{exerciseId}/team/{teamId}
Name
In
Type
Required
Description
exerciseId
path
string(uuid)
true
none
teamId
path
string(uuid)
true
none
Example responses
200 Response
[
{
"valueType" : "ARRAY"
}
]
Status
Meaning
Description
Schema
200
OK
[
{
"category":"TOTAL",
"scores":[
{
"timestamp":"2017-06-22T09:15:12.189Z",
"value":1246.0,
"isEndex":false
},
{
"timestamp":"2017-06-22T09:16:12.189Z",
"value":1300.6,
"isEndex":true
}
]
},
{
"category":"AVAILABILITY",
"scores":[
{
"timestamp":"2017-06-22T09:15:12.189Z",
"value":1246.0,
"isEndex":false
},
{
"timestamp":"2017-06-22T09:16:12.189Z",
"value":1300.6,
"isEndex":true
}
]
},
{
"category":"ATTACK_REPORTS",
"scores":[
{
"timestamp":"2017-06-22T09:15:12.189Z",
"value":105.1,
"isEndex":false
},
{
"timestamp:"2017-06-22T09:16:12.189Z",
"value":231.0,
"isEndex":true
}
]
}
]|Inline|
Status Code 200
Name
Type
Required
Restrictions
Description
anonymous
[JsonValue ]
false
none
none
» valueType
string
false
none
none
Enumerated Values
Property
Value
valueType
ARRAY
valueType
OBJECT
valueType
STRING
valueType
NUMBER
valueType
TRUE
valueType
FALSE
valueType
NULL
This operation does not require authentication
getTaskReportDetails
Code samples
# You can also use wget
curl -X GET /ctf/task-reports/exercises/{ exerciseId} /teams/{ teamId} /tasks/{ taskId} /reports/{ reportId} \
-H 'Accept: application/json'
GET /ctf/task-reports/exercises/{exerciseId}/teams/{teamId}/tasks/{taskId}/reports/{reportId} HTTP / 1.1
Accept: application/json
const headers = {
' Accept ' : ' application/json '
};
fetch ( ' /ctf/task-reports/exercises/{exerciseId}/teams/{teamId}/tasks/{taskId}/reports/{reportId} ' ,
{
method : ' GET ' ,
headers : headers
})
. then ( function ( res ) {
return res . json ();
}). then ( function ( body ) {
console . log ( body );
});
require 'rest-client'
require 'json'
headers = {
'Accept' => 'application/json'
}
result = RestClient . get '/ctf/task-reports/exercises/{exerciseId}/teams/{teamId}/tasks/{taskId}/reports/{reportId}' ,
params: {
}, headers: headers
p JSON . parse ( result )
import requests
headers = {
'Accept' : 'application/json'
}
r = requests . get ( '/ctf/task-reports/exercises/{exerciseId}/teams/{teamId}/tasks/{taskId}/reports/{reportId}' , headers = headers )
print ( r . json ())
<?php
require 'vendor/autoload.php' ;
$headers = array (
'Accept' => 'application/json' ,
);
$client = new \ GuzzleHttp\Client ();
// Define array of request body.
$request_body = array ();
try {
$response = $client -> request ( 'GET' , '/ctf/task-reports/exercises/{exerciseId}/teams/{teamId}/tasks/{taskId}/reports/{reportId}' , array (
'headers' => $headers ,
'json' => $request_body ,
)
);
print_r ( $response -> getBody () -> getContents ());
}
catch ( \ GuzzleHttp\Exception\BadResponseException $e ) {
// handle exception or api errors.
print_r ( $e -> getMessage ());
}
// ...
URL obj = new URL ( "/ctf/task-reports/exercises/{exerciseId}/teams/{teamId}/tasks/{taskId}/reports/{reportId}" );
HttpURLConnection con = ( HttpURLConnection ) obj . openConnection ();
con . setRequestMethod ( "GET" );
int responseCode = con . getResponseCode ();
BufferedReader in = new BufferedReader (
new InputStreamReader ( con . getInputStream ()));
String inputLine ;
StringBuffer response = new StringBuffer ();
while (( inputLine = in . readLine ()) != null ) {
response . append ( inputLine );
}
in . close ();
System . out . println ( response . toString ());
package main
import (
"bytes"
"net/http"
)
func main () {
headers := map [ string ][] string {
"Accept" : [] string { "application/json" },
}
data := bytes . NewBuffer ([] byte { jsonReq })
req , err := http . NewRequest ( "GET" , "/ctf/task-reports/exercises/{exerciseId}/teams/{teamId}/tasks/{taskId}/reports/{reportId}" , data )
req . Header = headers
client := & http . Client {}
resp , err := client . Do ( req )
// ...
}
GET /ctf/task-reports/exercises/{exerciseId}/teams/{teamId}/tasks/{taskId}/reports/{reportId}
Parameters
Name
In
Type
Required
Description
exerciseId
path
string(uuid)
true
none
teamId
path
string(uuid)
true
none
taskId
path
string(uuid)
true
none
reportId
path
string(uuid)
true
none
Example responses
200 Response
{
"exerciseId" : "71ba10b8-c6bd-49fd-9742-f8dbc8ccdb47" ,
"teamId" : "a4ede8ba-7c0a-4485-8763-cbd9b282fbec" ,
"taskId" : "e6e9d88a-9b63-468a-aec3-b7a11de27af8" ,
"reportId" : "836df459-dc40-4aa1-972a-6eb0a864dff9" ,
"username" : "string" ,
"timestamp" : 0 ,
"answer" : "string"
}
Responses
This operation does not require authentication
saveTaskReportConfirmation
Code samples
# You can also use wget
curl -X POST /ctf/task-reports/exercises/{ exerciseId} /teams/{ teamId} /tasks/{ taskId} /reports/{ reportId} /confirmation
POST /ctf/task-reports/exercises/{exerciseId}/teams/{teamId}/tasks/{taskId}/reports/{reportId}/confirmation HTTP / 1.1
fetch ( ' /ctf/task-reports/exercises/{exerciseId}/teams/{teamId}/tasks/{taskId}/reports/{reportId}/confirmation ' ,
{
method : ' POST '
})
. then ( function ( res ) {
return res . json ();
}). then ( function ( body ) {
console . log ( body );
});
require 'rest-client'
require 'json'
result = RestClient . post '/ctf/task-reports/exercises/{exerciseId}/teams/{teamId}/tasks/{taskId}/reports/{reportId}/confirmation' ,
params: {
}
p JSON . parse ( result )
import requests
r = requests . post ( '/ctf/task-reports/exercises/{exerciseId}/teams/{teamId}/tasks/{taskId}/reports/{reportId}/confirmation' )
print ( r . json ())
<?php
require 'vendor/autoload.php' ;
$client = new \ GuzzleHttp\Client ();
// Define array of request body.
$request_body = array ();
try {
$response = $client -> request ( 'POST' , '/ctf/task-reports/exercises/{exerciseId}/teams/{teamId}/tasks/{taskId}/reports/{reportId}/confirmation' , array (
'headers' => $headers ,
'json' => $request_body ,
)
);
print_r ( $response -> getBody () -> getContents ());
}
catch ( \ GuzzleHttp\Exception\BadResponseException $e ) {
// handle exception or api errors.
print_r ( $e -> getMessage ());
}
// ...
URL obj = new URL ( "/ctf/task-reports/exercises/{exerciseId}/teams/{teamId}/tasks/{taskId}/reports/{reportId}/confirmation" );
HttpURLConnection con = ( HttpURLConnection ) obj . openConnection ();
con . setRequestMethod ( "POST" );
int responseCode = con . getResponseCode ();
BufferedReader in = new BufferedReader (
new InputStreamReader ( con . getInputStream ()));
String inputLine ;
StringBuffer response = new StringBuffer ();
while (( inputLine = in . readLine ()) != null ) {
response . append ( inputLine );
}
in . close ();
System . out . println ( response . toString ());
package main
import (
"bytes"
"net/http"
)
func main () {
data := bytes . NewBuffer ([] byte { jsonReq })
req , err := http . NewRequest ( "POST" , "/ctf/task-reports/exercises/{exerciseId}/teams/{teamId}/tasks/{taskId}/reports/{reportId}/confirmation" , data )
req . Header = headers
client := & http . Client {}
resp , err := client . Do ( req )
// ...
}
POST /ctf/task-reports/exercises/{exerciseId}/teams/{teamId}/tasks/{taskId}/reports/{reportId}/confirmation
Responses
Status
Meaning
Description
Schema
default
Default
successful operation
None
This operation does not require authentication
Code samples
# You can also use wget
curl -X GET /emi/stream/media/{ mediaId} /exercise/{ exerciseId} \
-H 'Range: string'
GET /emi/stream/media/{mediaId}/exercise/{exerciseId} HTTP / 1.1
Range: string
const headers = {
' Range ' : ' string '
};
fetch ( ' /emi/stream/media/{mediaId}/exercise/{exerciseId} ' ,
{
method : ' GET ' ,
headers : headers
})
. then ( function ( res ) {
return res . json ();
}). then ( function ( body ) {
console . log ( body );
});
require 'rest-client'
require 'json'
headers = {
'Range' => 'string'
}
result = RestClient . get '/emi/stream/media/{mediaId}/exercise/{exerciseId}' ,
params: {
}, headers: headers
p JSON . parse ( result )
import requests
headers = {
'Range' : 'string'
}
r = requests . get ( '/emi/stream/media/{mediaId}/exercise/{exerciseId}' , headers = headers )
print ( r . json ())
<?php
require 'vendor/autoload.php' ;
$headers = array (
'Range' => 'string' ,
);
$client = new \ GuzzleHttp\Client ();
// Define array of request body.
$request_body = array ();
try {
$response = $client -> request ( 'GET' , '/emi/stream/media/{mediaId}/exercise/{exerciseId}' , array (
'headers' => $headers ,
'json' => $request_body ,
)
);
print_r ( $response -> getBody () -> getContents ());
}
catch ( \ GuzzleHttp\Exception\BadResponseException $e ) {
// handle exception or api errors.
print_r ( $e -> getMessage ());
}
// ...
URL obj = new URL ( "/emi/stream/media/{mediaId}/exercise/{exerciseId}" );
HttpURLConnection con = ( HttpURLConnection ) obj . openConnection ();
con . setRequestMethod ( "GET" );
int responseCode = con . getResponseCode ();
BufferedReader in = new BufferedReader (
new InputStreamReader ( con . getInputStream ()));
String inputLine ;
StringBuffer response = new StringBuffer ();
while (( inputLine = in . readLine ()) != null ) {
response . append ( inputLine );
}
in . close ();
System . out . println ( response . toString ());
package main
import (
"bytes"
"net/http"
)
func main () {
headers := map [ string ][] string {
"Range" : [] string { "string" },
}
data := bytes . NewBuffer ([] byte { jsonReq })
req , err := http . NewRequest ( "GET" , "/emi/stream/media/{mediaId}/exercise/{exerciseId}" , data )
req . Header = headers
client := & http . Client {}
resp , err := client . Do ( req )
// ...
}
GET /emi/stream/media/{mediaId}/exercise/{exerciseId}
Name
In
Type
Required
Description
mediaId
path
string
true
none
exerciseId
path
string(uuid)
true
none
Range
header
string
false
none
Status
Meaning
Description
Schema
default
Default
successful operation
None
This operation does not require authentication
Code samples
# You can also use wget
curl -X POST /emi/upload/exercise/{ exerciseId} \
-H 'Accept: application/json'
POST /emi/upload/exercise/{exerciseId} HTTP / 1.1
Accept: application/json
const headers = {
' Accept ' : ' application/json '
};
fetch ( ' /emi/upload/exercise/{exerciseId} ' ,
{
method : ' POST ' ,
headers : headers
})
. then ( function ( res ) {
return res . json ();
}). then ( function ( body ) {
console . log ( body );
});
require 'rest-client'
require 'json'
headers = {
'Accept' => 'application/json'
}
result = RestClient . post '/emi/upload/exercise/{exerciseId}' ,
params: {
}, headers: headers
p JSON . parse ( result )
import requests
headers = {
'Accept' : 'application/json'
}
r = requests . post ( '/emi/upload/exercise/{exerciseId}' , headers = headers )
print ( r . json ())
<?php
require 'vendor/autoload.php' ;
$headers = array (
'Accept' => 'application/json' ,
);
$client = new \ GuzzleHttp\Client ();
// Define array of request body.
$request_body = array ();
try {
$response = $client -> request ( 'POST' , '/emi/upload/exercise/{exerciseId}' , array (
'headers' => $headers ,
'json' => $request_body ,
)
);
print_r ( $response -> getBody () -> getContents ());
}
catch ( \ GuzzleHttp\Exception\BadResponseException $e ) {
// handle exception or api errors.
print_r ( $e -> getMessage ());
}
// ...
URL obj = new URL ( "/emi/upload/exercise/{exerciseId}" );
HttpURLConnection con = ( HttpURLConnection ) obj . openConnection ();
con . setRequestMethod ( "POST" );
int responseCode = con . getResponseCode ();
BufferedReader in = new BufferedReader (
new InputStreamReader ( con . getInputStream ()));
String inputLine ;
StringBuffer response = new StringBuffer ();
while (( inputLine = in . readLine ()) != null ) {
response . append ( inputLine );
}
in . close ();
System . out . println ( response . toString ());
package main
import (
"bytes"
"net/http"
)
func main () {
headers := map [ string ][] string {
"Accept" : [] string { "application/json" },
}
data := bytes . NewBuffer ([] byte { jsonReq })
req , err := http . NewRequest ( "POST" , "/emi/upload/exercise/{exerciseId}" , data )
req . Header = headers
client := & http . Client {}
resp , err := client . Do ( req )
// ...
}
POST /emi/upload/exercise/{exerciseId}
Name
In
Type
Required
Description
exerciseId
path
string(uuid)
true
none
Example responses
200 Response
{
"id" : "string" ,
"name" : "string" ,
"fileType" : "AUDIO"
}
Status
Meaning
Description
Schema
200
OK
successful operation
MediaMetaInfo
This operation does not require authentication
getExerciseListDTOs
Code samples
# You can also use wget
curl -X GET /exercise \
-H 'Accept: application/json'
GET /exercise HTTP / 1.1
Accept: application/json
const headers = {
' Accept ' : ' application/json '
};
fetch ( ' /exercise ' ,
{
method : ' GET ' ,
headers : headers
})
. then ( function ( res ) {
return res . json ();
}). then ( function ( body ) {
console . log ( body );
});
require 'rest-client'
require 'json'
headers = {
'Accept' => 'application/json'
}
result = RestClient . get '/exercise' ,
params: {
}, headers: headers
p JSON . parse ( result )
import requests
headers = {
'Accept' : 'application/json'
}
r = requests . get ( '/exercise' , headers = headers )
print ( r . json ())
<?php
require 'vendor/autoload.php' ;
$headers = array (
'Accept' => 'application/json' ,
);
$client = new \ GuzzleHttp\Client ();
// Define array of request body.
$request_body = array ();
try {
$response = $client -> request ( 'GET' , '/exercise' , array (
'headers' => $headers ,
'json' => $request_body ,
)
);
print_r ( $response -> getBody () -> getContents ());
}
catch ( \ GuzzleHttp\Exception\BadResponseException $e ) {
// handle exception or api errors.
print_r ( $e -> getMessage ());
}
// ...
URL obj = new URL ( "/exercise" );
HttpURLConnection con = ( HttpURLConnection ) obj . openConnection ();
con . setRequestMethod ( "GET" );
int responseCode = con . getResponseCode ();
BufferedReader in = new BufferedReader (
new InputStreamReader ( con . getInputStream ()));
String inputLine ;
StringBuffer response = new StringBuffer ();
while (( inputLine = in . readLine ()) != null ) {
response . append ( inputLine );
}
in . close ();
System . out . println ( response . toString ());
package main
import (
"bytes"
"net/http"
)
func main () {
headers := map [ string ][] string {
"Accept" : [] string { "application/json" },
}
data := bytes . NewBuffer ([] byte { jsonReq })
req , err := http . NewRequest ( "GET" , "/exercise" , data )
req . Header = headers
client := & http . Client {}
resp , err := client . Do ( req )
// ...
}
GET /exercise
Example responses
200 Response
[
{
"name" : "string" ,
"id" : "497f6eca-6276-4993-bfeb-53cbbbba6f08" ,
"type" : "CAMPAIGN" ,
"description" : "string" ,
"status" : "NOT_STARTED" ,
"imageId" : "string" ,
"isTeamSettingsEnabled" : true
}
]
Responses
Status
Meaning
Description
Schema
200
OK
successful operation
Inline
Response Schema
Status Code 200
Name
Type
Required
Restrictions
Description
anonymous
[IExerciseListDTO ]
false
none
none
» name
string
false
none
none
» id
string(uuid)
false
none
none
» type
string
false
none
none
» description
string
false
none
none
» status
string
false
none
none
» imageId
string
false
none
none
» isTeamSettingsEnabled
boolean
false
read-only
none
Enumerated Values
Property
Value
type
CAMPAIGN
type
CTF
type
HYBRID
type
UNPUBLISHED
status
NOT_STARTED
status
RUNNING
status
STOPPED
status
UNPUBLISHED
This operation does not require authentication
save
Code samples
# You can also use wget
curl -X POST /system-event/exercise/{ exerciseId}
POST /system-event/exercise/{exerciseId} HTTP / 1.1
fetch ( ' /system-event/exercise/{exerciseId} ' ,
{
method : ' POST '
})
. then ( function ( res ) {
return res . json ();
}). then ( function ( body ) {
console . log ( body );
});
require 'rest-client'
require 'json'
result = RestClient . post '/system-event/exercise/{exerciseId}' ,
params: {
}
p JSON . parse ( result )
import requests
r = requests . post ( '/system-event/exercise/{exerciseId}' )
print ( r . json ())
<?php
require 'vendor/autoload.php' ;
$client = new \ GuzzleHttp\Client ();
// Define array of request body.
$request_body = array ();
try {
$response = $client -> request ( 'POST' , '/system-event/exercise/{exerciseId}' , array (
'headers' => $headers ,
'json' => $request_body ,
)
);
print_r ( $response -> getBody () -> getContents ());
}
catch ( \ GuzzleHttp\Exception\BadResponseException $e ) {
// handle exception or api errors.
print_r ( $e -> getMessage ());
}
// ...
URL obj = new URL ( "/system-event/exercise/{exerciseId}" );
HttpURLConnection con = ( HttpURLConnection ) obj . openConnection ();
con . setRequestMethod ( "POST" );
int responseCode = con . getResponseCode ();
BufferedReader in = new BufferedReader (
new InputStreamReader ( con . getInputStream ()));
String inputLine ;
StringBuffer response = new StringBuffer ();
while (( inputLine = in . readLine ()) != null ) {
response . append ( inputLine );
}
in . close ();
System . out . println ( response . toString ());
package main
import (
"bytes"
"net/http"
)
func main () {
data := bytes . NewBuffer ([] byte { jsonReq })
req , err := http . NewRequest ( "POST" , "/system-event/exercise/{exerciseId}" , data )
req . Header = headers
client := & http . Client {}
resp , err := client . Do ( req )
// ...
}
POST /system-event/exercise/{exerciseId}
Parameters
Name
In
Type
Required
Description
exerciseId
path
string(uuid)
true
none
Responses
Status
Meaning
Description
Schema
default
Default
successful operation
None
This operation does not require authentication
update
Code samples
# You can also use wget
curl -X PUT /exercise
fetch ( ' /exercise ' ,
{
method : ' PUT '
})
. then ( function ( res ) {
return res . json ();
}). then ( function ( body ) {
console . log ( body );
});
require 'rest-client'
require 'json'
result = RestClient . put '/exercise' ,
params: {
}
p JSON . parse ( result )
import requests
r = requests . put ( '/exercise' )
print ( r . json ())
<?php
require 'vendor/autoload.php' ;
$client = new \ GuzzleHttp\Client ();
// Define array of request body.
$request_body = array ();
try {
$response = $client -> request ( 'PUT' , '/exercise' , array (
'headers' => $headers ,
'json' => $request_body ,
)
);
print_r ( $response -> getBody () -> getContents ());
}
catch ( \ GuzzleHttp\Exception\BadResponseException $e ) {
// handle exception or api errors.
print_r ( $e -> getMessage ());
}
// ...
URL obj = new URL ( "/exercise" );
HttpURLConnection con = ( HttpURLConnection ) obj . openConnection ();
con . setRequestMethod ( "PUT" );
int responseCode = con . getResponseCode ();
BufferedReader in = new BufferedReader (
new InputStreamReader ( con . getInputStream ()));
String inputLine ;
StringBuffer response = new StringBuffer ();
while (( inputLine = in . readLine ()) != null ) {
response . append ( inputLine );
}
in . close ();
System . out . println ( response . toString ());
package main
import (
"bytes"
"net/http"
)
func main () {
data := bytes . NewBuffer ([] byte { jsonReq })
req , err := http . NewRequest ( "PUT" , "/exercise" , data )
req . Header = headers
client := & http . Client {}
resp , err := client . Do ( req )
// ...
}
PUT /exercise
Responses
Status
Meaning
Description
Schema
default
Default
successful operation
None
This operation does not require authentication
getObjectiveCategories
Code samples
# You can also use wget
curl -X GET /exercise/objective/category \
-H 'Accept: application/json'
GET /exercise/objective/category HTTP / 1.1
Accept: application/json
const headers = {
' Accept ' : ' application/json '
};
fetch ( ' /exercise/objective/category ' ,
{
method : ' GET ' ,
headers : headers
})
. then ( function ( res ) {
return res . json ();
}). then ( function ( body ) {
console . log ( body );
});
require 'rest-client'
require 'json'
headers = {
'Accept' => 'application/json'
}
result = RestClient . get '/exercise/objective/category' ,
params: {
}, headers: headers
p JSON . parse ( result )
import requests
headers = {
'Accept' : 'application/json'
}
r = requests . get ( '/exercise/objective/category' , headers = headers )
print ( r . json ())
<?php
require 'vendor/autoload.php' ;
$headers = array (
'Accept' => 'application/json' ,
);
$client = new \ GuzzleHttp\Client ();
// Define array of request body.
$request_body = array ();
try {
$response = $client -> request ( 'GET' , '/exercise/objective/category' , array (
'headers' => $headers ,
'json' => $request_body ,
)
);
print_r ( $response -> getBody () -> getContents ());
}
catch ( \ GuzzleHttp\Exception\BadResponseException $e ) {
// handle exception or api errors.
print_r ( $e -> getMessage ());
}
// ...
URL obj = new URL ( "/exercise/objective/category" );
HttpURLConnection con = ( HttpURLConnection ) obj . openConnection ();
con . setRequestMethod ( "GET" );
int responseCode = con . getResponseCode ();
BufferedReader in = new BufferedReader (
new InputStreamReader ( con . getInputStream ()));
String inputLine ;
StringBuffer response = new StringBuffer ();
while (( inputLine = in . readLine ()) != null ) {
response . append ( inputLine );
}
in . close ();
System . out . println ( response . toString ());
package main
import (
"bytes"
"net/http"
)
func main () {
headers := map [ string ][] string {
"Accept" : [] string { "application/json" },
}
data := bytes . NewBuffer ([] byte { jsonReq })
req , err := http . NewRequest ( "GET" , "/exercise/objective/category" , data )
req . Header = headers
client := & http . Client {}
resp , err := client . Do ( req )
// ...
}
GET /exercise/objective/category
Example responses
200 Response
Responses
Status
Meaning
Description
Schema
200
OK
["NETWORKING","CLIENT_SIDE","WEB"]
Inline
Response Schema
This operation does not require authentication
getObjectiveStatuses
Code samples
# You can also use wget
curl -X GET /exercise/objective/status \
-H 'Accept: application/json'
GET /exercise/objective/status HTTP / 1.1
Accept: application/json
const headers = {
' Accept ' : ' application/json '
};
fetch ( ' /exercise/objective/status ' ,
{
method : ' GET ' ,
headers : headers
})
. then ( function ( res ) {
return res . json ();
}). then ( function ( body ) {
console . log ( body );
});
require 'rest-client'
require 'json'
headers = {
'Accept' => 'application/json'
}
result = RestClient . get '/exercise/objective/status' ,
params: {
}, headers: headers
p JSON . parse ( result )
import requests
headers = {
'Accept' : 'application/json'
}
r = requests . get ( '/exercise/objective/status' , headers = headers )
print ( r . json ())
<?php
require 'vendor/autoload.php' ;
$headers = array (
'Accept' => 'application/json' ,
);
$client = new \ GuzzleHttp\Client ();
// Define array of request body.
$request_body = array ();
try {
$response = $client -> request ( 'GET' , '/exercise/objective/status' , array (
'headers' => $headers ,
'json' => $request_body ,
)
);
print_r ( $response -> getBody () -> getContents ());
}
catch ( \ GuzzleHttp\Exception\BadResponseException $e ) {
// handle exception or api errors.
print_r ( $e -> getMessage ());
}
// ...
URL obj = new URL ( "/exercise/objective/status" );
HttpURLConnection con = ( HttpURLConnection ) obj . openConnection ();
con . setRequestMethod ( "GET" );
int responseCode = con . getResponseCode ();
BufferedReader in = new BufferedReader (
new InputStreamReader ( con . getInputStream ()));
String inputLine ;
StringBuffer response = new StringBuffer ();
while (( inputLine = in . readLine ()) != null ) {
response . append ( inputLine );
}
in . close ();
System . out . println ( response . toString ());
package main
import (
"bytes"
"net/http"
)
func main () {
headers := map [ string ][] string {
"Accept" : [] string { "application/json" },
}
data := bytes . NewBuffer ([] byte { jsonReq })
req , err := http . NewRequest ( "GET" , "/exercise/objective/status" , data )
req . Header = headers
client := & http . Client {}
resp , err := client . Do ( req )
// ...
}
GET /exercise/objective/status
Example responses
200 Response
Responses
Status
Meaning
Description
Schema
200
OK
["NOT_COMPROMISED","COMPROMISED"]
Inline
Response Schema
This operation does not require authentication
replace
Code samples
# You can also use wget
curl -X POST /exercise/{ exerciseId} \
-H 'Accept: */*'
POST /exercise/{exerciseId} HTTP / 1.1
Accept: */*
const headers = {
' Accept ' : ' */* '
};
fetch ( ' /exercise/{exerciseId} ' ,
{
method : ' POST ' ,
headers : headers
})
. then ( function ( res ) {
return res . json ();
}). then ( function ( body ) {
console . log ( body );
});
require 'rest-client'
require 'json'
headers = {
'Accept' => '*/*'
}
result = RestClient . post '/exercise/{exerciseId}' ,
params: {
}, headers: headers
p JSON . parse ( result )
import requests
headers = {
'Accept' : '*/*'
}
r = requests . post ( '/exercise/{exerciseId}' , headers = headers )
print ( r . json ())
<?php
require 'vendor/autoload.php' ;
$headers = array (
'Accept' => '*/*' ,
);
$client = new \ GuzzleHttp\Client ();
// Define array of request body.
$request_body = array ();
try {
$response = $client -> request ( 'POST' , '/exercise/{exerciseId}' , array (
'headers' => $headers ,
'json' => $request_body ,
)
);
print_r ( $response -> getBody () -> getContents ());
}
catch ( \ GuzzleHttp\Exception\BadResponseException $e ) {
// handle exception or api errors.
print_r ( $e -> getMessage ());
}
// ...
URL obj = new URL ( "/exercise/{exerciseId}" );
HttpURLConnection con = ( HttpURLConnection ) obj . openConnection ();
con . setRequestMethod ( "POST" );
int responseCode = con . getResponseCode ();
BufferedReader in = new BufferedReader (
new InputStreamReader ( con . getInputStream ()));
String inputLine ;
StringBuffer response = new StringBuffer ();
while (( inputLine = in . readLine ()) != null ) {
response . append ( inputLine );
}
in . close ();
System . out . println ( response . toString ());
package main
import (
"bytes"
"net/http"
)
func main () {
headers := map [ string ][] string {
"Accept" : [] string { "*/*" },
}
data := bytes . NewBuffer ([] byte { jsonReq })
req , err := http . NewRequest ( "POST" , "/exercise/{exerciseId}" , data )
req . Header = headers
client := & http . Client {}
resp , err := client . Do ( req )
// ...
}
POST /exercise/{exerciseId}
Parameters
Name
In
Type
Required
Description
exerciseId
path
string(uuid)
true
none
Example responses
200 Response
Responses
Status
Meaning
Description
Schema
200
OK
successful operation
IExercise
This operation does not require authentication
delete
Code samples
# You can also use wget
curl -X DELETE /widget/gma/{ gmaId}
DELETE /widget/gma/{gmaId} HTTP / 1.1
fetch ( ' /widget/gma/{gmaId} ' ,
{
method : ' DELETE '
})
. then ( function ( res ) {
return res . json ();
}). then ( function ( body ) {
console . log ( body );
});
require 'rest-client'
require 'json'
result = RestClient . delete '/widget/gma/{gmaId}' ,
params: {
}
p JSON . parse ( result )
import requests
r = requests . delete ( '/widget/gma/{gmaId}' )
print ( r . json ())
<?php
require 'vendor/autoload.php' ;
$client = new \ GuzzleHttp\Client ();
// Define array of request body.
$request_body = array ();
try {
$response = $client -> request ( 'DELETE' , '/widget/gma/{gmaId}' , array (
'headers' => $headers ,
'json' => $request_body ,
)
);
print_r ( $response -> getBody () -> getContents ());
}
catch ( \ GuzzleHttp\Exception\BadResponseException $e ) {
// handle exception or api errors.
print_r ( $e -> getMessage ());
}
// ...
URL obj = new URL ( "/widget/gma/{gmaId}" );
HttpURLConnection con = ( HttpURLConnection ) obj . openConnection ();
con . setRequestMethod ( "DELETE" );
int responseCode = con . getResponseCode ();
BufferedReader in = new BufferedReader (
new InputStreamReader ( con . getInputStream ()));
String inputLine ;
StringBuffer response = new StringBuffer ();
while (( inputLine = in . readLine ()) != null ) {
response . append ( inputLine );
}
in . close ();
System . out . println ( response . toString ());
package main
import (
"bytes"
"net/http"
)
func main () {
data := bytes . NewBuffer ([] byte { jsonReq })
req , err := http . NewRequest ( "DELETE" , "/widget/gma/{gmaId}" , data )
req . Header = headers
client := & http . Client {}
resp , err := client . Do ( req )
// ...
}
DELETE /widget/gma/{gmaId}
Parameters
Name
In
Type
Required
Description
gmaId
path
string(uuid)
true
none
Responses
Status
Meaning
Description
Schema
default
Default
successful operation
None
This operation does not require authentication
getExerciseTeamTargets
Code samples
# You can also use wget
curl -X GET /exercise/{ exerciseId} /blueTeam/{ teamId} /targets \
-H 'Accept: application/json'
GET /exercise/{exerciseId}/blueTeam/{teamId}/targets HTTP / 1.1
Accept: application/json
const headers = {
' Accept ' : ' application/json '
};
fetch ( ' /exercise/{exerciseId}/blueTeam/{teamId}/targets ' ,
{
method : ' GET ' ,
headers : headers
})
. then ( function ( res ) {
return res . json ();
}). then ( function ( body ) {
console . log ( body );
});
require 'rest-client'
require 'json'
headers = {
'Accept' => 'application/json'
}
result = RestClient . get '/exercise/{exerciseId}/blueTeam/{teamId}/targets' ,
params: {
}, headers: headers
p JSON . parse ( result )
import requests
headers = {
'Accept' : 'application/json'
}
r = requests . get ( '/exercise/{exerciseId}/blueTeam/{teamId}/targets' , headers = headers )
print ( r . json ())
<?php
require 'vendor/autoload.php' ;
$headers = array (
'Accept' => 'application/json' ,
);
$client = new \ GuzzleHttp\Client ();
// Define array of request body.
$request_body = array ();
try {
$response = $client -> request ( 'GET' , '/exercise/{exerciseId}/blueTeam/{teamId}/targets' , array (
'headers' => $headers ,
'json' => $request_body ,
)
);
print_r ( $response -> getBody () -> getContents ());
}
catch ( \ GuzzleHttp\Exception\BadResponseException $e ) {
// handle exception or api errors.
print_r ( $e -> getMessage ());
}
// ...
URL obj = new URL ( "/exercise/{exerciseId}/blueTeam/{teamId}/targets" );
HttpURLConnection con = ( HttpURLConnection ) obj . openConnection ();
con . setRequestMethod ( "GET" );
int responseCode = con . getResponseCode ();
BufferedReader in = new BufferedReader (
new InputStreamReader ( con . getInputStream ()));
String inputLine ;
StringBuffer response = new StringBuffer ();
while (( inputLine = in . readLine ()) != null ) {
response . append ( inputLine );
}
in . close ();
System . out . println ( response . toString ());
package main
import (
"bytes"
"net/http"
)
func main () {
headers := map [ string ][] string {
"Accept" : [] string { "application/json" },
}
data := bytes . NewBuffer ([] byte { jsonReq })
req , err := http . NewRequest ( "GET" , "/exercise/{exerciseId}/blueTeam/{teamId}/targets" , data )
req . Header = headers
client := & http . Client {}
resp , err := client . Do ( req )
// ...
}
GET /exercise/{exerciseId}/blueTeam/{teamId}/targets
Parameters
Name
In
Type
Required
Description
exerciseId
path
string(uuid)
true
none
teamId
path
string(uuid)
true
none
Example responses
200 Response
{
"property1" : {
"valueType" : "ARRAY"
},
"property2" : {
"valueType" : "ARRAY"
}
}
Responses
Status
Meaning
Description
Schema
200
OK
successful operation
Inline
Response Schema
Status Code 200
Name
Type
Required
Restrictions
Description
» additionalProperties
JsonValue
false
none
none
»» valueType
string
false
none
none
Enumerated Values
Property
Value
valueType
ARRAY
valueType
OBJECT
valueType
STRING
valueType
NUMBER
valueType
TRUE
valueType
FALSE
valueType
NULL
This operation does not require authentication
getExerciseImage
Code samples
# You can also use wget
curl -X GET /exercise/{ exerciseId} /image
GET /exercise/{exerciseId}/image HTTP / 1.1
fetch ( ' /exercise/{exerciseId}/image ' ,
{
method : ' GET '
})
. then ( function ( res ) {
return res . json ();
}). then ( function ( body ) {
console . log ( body );
});
require 'rest-client'
require 'json'
result = RestClient . get '/exercise/{exerciseId}/image' ,
params: {
}
p JSON . parse ( result )
import requests
r = requests . get ( '/exercise/{exerciseId}/image' )
print ( r . json ())
<?php
require 'vendor/autoload.php' ;
$client = new \ GuzzleHttp\Client ();
// Define array of request body.
$request_body = array ();
try {
$response = $client -> request ( 'GET' , '/exercise/{exerciseId}/image' , array (
'headers' => $headers ,
'json' => $request_body ,
)
);
print_r ( $response -> getBody () -> getContents ());
}
catch ( \ GuzzleHttp\Exception\BadResponseException $e ) {
// handle exception or api errors.
print_r ( $e -> getMessage ());
}
// ...
URL obj = new URL ( "/exercise/{exerciseId}/image" );
HttpURLConnection con = ( HttpURLConnection ) obj . openConnection ();
con . setRequestMethod ( "GET" );
int responseCode = con . getResponseCode ();
BufferedReader in = new BufferedReader (
new InputStreamReader ( con . getInputStream ()));
String inputLine ;
StringBuffer response = new StringBuffer ();
while (( inputLine = in . readLine ()) != null ) {
response . append ( inputLine );
}
in . close ();
System . out . println ( response . toString ());
package main
import (
"bytes"
"net/http"
)
func main () {
data := bytes . NewBuffer ([] byte { jsonReq })
req , err := http . NewRequest ( "GET" , "/exercise/{exerciseId}/image" , data )
req . Header = headers
client := & http . Client {}
resp , err := client . Do ( req )
// ...
}
GET /exercise/{exerciseId}/image
Parameters
Name
In
Type
Required
Description
exerciseId
path
string(uuid)
true
none
Responses
Status
Meaning
Description
Schema
default
Default
successful operation
None
This operation does not require authentication
saveExerciseImage
Code samples
# You can also use wget
curl -X POST /exercise/{ exerciseId} /image \
-H 'Accept: */*'
POST /exercise/{exerciseId}/image HTTP / 1.1
Accept: */*
const headers = {
' Accept ' : ' */* '
};
fetch ( ' /exercise/{exerciseId}/image ' ,
{
method : ' POST ' ,
headers : headers
})
. then ( function ( res ) {
return res . json ();
}). then ( function ( body ) {
console . log ( body );
});
require 'rest-client'
require 'json'
headers = {
'Accept' => '*/*'
}
result = RestClient . post '/exercise/{exerciseId}/image' ,
params: {
}, headers: headers
p JSON . parse ( result )
import requests
headers = {
'Accept' : '*/*'
}
r = requests . post ( '/exercise/{exerciseId}/image' , headers = headers )
print ( r . json ())
<?php
require 'vendor/autoload.php' ;
$headers = array (
'Accept' => '*/*' ,
);
$client = new \ GuzzleHttp\Client ();
// Define array of request body.
$request_body = array ();
try {
$response = $client -> request ( 'POST' , '/exercise/{exerciseId}/image' , array (
'headers' => $headers ,
'json' => $request_body ,
)
);
print_r ( $response -> getBody () -> getContents ());
}
catch ( \ GuzzleHttp\Exception\BadResponseException $e ) {
// handle exception or api errors.
print_r ( $e -> getMessage ());
}
// ...
URL obj = new URL ( "/exercise/{exerciseId}/image" );
HttpURLConnection con = ( HttpURLConnection ) obj . openConnection ();
con . setRequestMethod ( "POST" );
int responseCode = con . getResponseCode ();
BufferedReader in = new BufferedReader (
new InputStreamReader ( con . getInputStream ()));
String inputLine ;
StringBuffer response = new StringBuffer ();
while (( inputLine = in . readLine ()) != null ) {
response . append ( inputLine );
}
in . close ();
System . out . println ( response . toString ());
package main
import (
"bytes"
"net/http"
)
func main () {
headers := map [ string ][] string {
"Accept" : [] string { "*/*" },
}
data := bytes . NewBuffer ([] byte { jsonReq })
req , err := http . NewRequest ( "POST" , "/exercise/{exerciseId}/image" , data )
req . Header = headers
client := & http . Client {}
resp , err := client . Do ( req )
// ...
}
POST /exercise/{exerciseId}/image
Parameters
Name
In
Type
Required
Description
exerciseId
path
string(uuid)
true
none
Example responses
200 Response
Responses
This operation does not require authentication
deleteExerciseImage
Code samples
# You can also use wget
curl -X DELETE /exercise/{ exerciseId} /image
DELETE /exercise/{exerciseId}/image HTTP / 1.1
fetch ( ' /exercise/{exerciseId}/image ' ,
{
method : ' DELETE '
})
. then ( function ( res ) {
return res . json ();
}). then ( function ( body ) {
console . log ( body );
});
require 'rest-client'
require 'json'
result = RestClient . delete '/exercise/{exerciseId}/image' ,
params: {
}
p JSON . parse ( result )
import requests
r = requests . delete ( '/exercise/{exerciseId}/image' )
print ( r . json ())
<?php
require 'vendor/autoload.php' ;
$client = new \ GuzzleHttp\Client ();
// Define array of request body.
$request_body = array ();
try {
$response = $client -> request ( 'DELETE' , '/exercise/{exerciseId}/image' , array (
'headers' => $headers ,
'json' => $request_body ,
)
);
print_r ( $response -> getBody () -> getContents ());
}
catch ( \ GuzzleHttp\Exception\BadResponseException $e ) {
// handle exception or api errors.
print_r ( $e -> getMessage ());
}
// ...
URL obj = new URL ( "/exercise/{exerciseId}/image" );
HttpURLConnection con = ( HttpURLConnection ) obj . openConnection ();
con . setRequestMethod ( "DELETE" );
int responseCode = con . getResponseCode ();
BufferedReader in = new BufferedReader (
new InputStreamReader ( con . getInputStream ()));
String inputLine ;
StringBuffer response = new StringBuffer ();
while (( inputLine = in . readLine ()) != null ) {
response . append ( inputLine );
}
in . close ();
System . out . println ( response . toString ());
package main
import (
"bytes"
"net/http"
)
func main () {
data := bytes . NewBuffer ([] byte { jsonReq })
req , err := http . NewRequest ( "DELETE" , "/exercise/{exerciseId}/image" , data )
req . Header = headers
client := & http . Client {}
resp , err := client . Do ( req )
// ...
}
DELETE /exercise/{exerciseId}/image
Parameters
Name
In
Type
Required
Description
exerciseId
path
string(uuid)
true
none
Responses
Status
Meaning
Description
Schema
default
Default
successful operation
None
This operation does not require authentication
getUserBlueTeam
Code samples
# You can also use wget
curl -X GET /exercise/{ exerciseId} /my-blue-team \
-H 'Accept: text/plain'
GET /exercise/{exerciseId}/my-blue-team HTTP / 1.1
Accept: text/plain
const headers = {
' Accept ' : ' text/plain '
};
fetch ( ' /exercise/{exerciseId}/my-blue-team ' ,
{
method : ' GET ' ,
headers : headers
})
. then ( function ( res ) {
return res . json ();
}). then ( function ( body ) {
console . log ( body );
});
require 'rest-client'
require 'json'
headers = {
'Accept' => 'text/plain'
}
result = RestClient . get '/exercise/{exerciseId}/my-blue-team' ,
params: {
}, headers: headers
p JSON . parse ( result )
import requests
headers = {
'Accept' : 'text/plain'
}
r = requests . get ( '/exercise/{exerciseId}/my-blue-team' , headers = headers )
print ( r . json ())
<?php
require 'vendor/autoload.php' ;
$headers = array (
'Accept' => 'text/plain' ,
);
$client = new \ GuzzleHttp\Client ();
// Define array of request body.
$request_body = array ();
try {
$response = $client -> request ( 'GET' , '/exercise/{exerciseId}/my-blue-team' , array (
'headers' => $headers ,
'json' => $request_body ,
)
);
print_r ( $response -> getBody () -> getContents ());
}
catch ( \ GuzzleHttp\Exception\BadResponseException $e ) {
// handle exception or api errors.
print_r ( $e -> getMessage ());
}
// ...
URL obj = new URL ( "/exercise/{exerciseId}/my-blue-team" );
HttpURLConnection con = ( HttpURLConnection ) obj . openConnection ();
con . setRequestMethod ( "GET" );
int responseCode = con . getResponseCode ();
BufferedReader in = new BufferedReader (
new InputStreamReader ( con . getInputStream ()));
String inputLine ;
StringBuffer response = new StringBuffer ();
while (( inputLine = in . readLine ()) != null ) {
response . append ( inputLine );
}
in . close ();
System . out . println ( response . toString ());
package main
import (
"bytes"
"net/http"
)
func main () {
headers := map [ string ][] string {
"Accept" : [] string { "text/plain" },
}
data := bytes . NewBuffer ([] byte { jsonReq })
req , err := http . NewRequest ( "GET" , "/exercise/{exerciseId}/my-blue-team" , data )
req . Header = headers
client := & http . Client {}
resp , err := client . Do ( req )
// ...
}
GET /exercise/{exerciseId}/my-blue-team
Parameters
Name
In
Type
Required
Description
exerciseId
path
string(uuid)
true
none
Example responses
200 Response
Responses
Status
Meaning
Description
Schema
200
OK
successful operation
string
This operation does not require authentication
updateNetworkSegment
Code samples
# You can also use wget
curl -X PUT /exercise/{ exerciseId} /network-segments/{ networkSegmentId}
PUT /exercise/{exerciseId}/network-segments/{networkSegmentId} HTTP / 1.1
fetch ( ' /exercise/{exerciseId}/network-segments/{networkSegmentId} ' ,
{
method : ' PUT '
})
. then ( function ( res ) {
return res . json ();
}). then ( function ( body ) {
console . log ( body );
});
require 'rest-client'
require 'json'
result = RestClient . put '/exercise/{exerciseId}/network-segments/{networkSegmentId}' ,
params: {
}
p JSON . parse ( result )
import requests
r = requests . put ( '/exercise/{exerciseId}/network-segments/{networkSegmentId}' )
print ( r . json ())
<?php
require 'vendor/autoload.php' ;
$client = new \ GuzzleHttp\Client ();
// Define array of request body.
$request_body = array ();
try {
$response = $client -> request ( 'PUT' , '/exercise/{exerciseId}/network-segments/{networkSegmentId}' , array (
'headers' => $headers ,
'json' => $request_body ,
)
);
print_r ( $response -> getBody () -> getContents ());
}
catch ( \ GuzzleHttp\Exception\BadResponseException $e ) {
// handle exception or api errors.
print_r ( $e -> getMessage ());
}
// ...
URL obj = new URL ( "/exercise/{exerciseId}/network-segments/{networkSegmentId}" );
HttpURLConnection con = ( HttpURLConnection ) obj . openConnection ();
con . setRequestMethod ( "PUT" );
int responseCode = con . getResponseCode ();
BufferedReader in = new BufferedReader (
new InputStreamReader ( con . getInputStream ()));
String inputLine ;
StringBuffer response = new StringBuffer ();
while (( inputLine = in . readLine ()) != null ) {
response . append ( inputLine );
}
in . close ();
System . out . println ( response . toString ());
package main
import (
"bytes"
"net/http"
)
func main () {
data := bytes . NewBuffer ([] byte { jsonReq })
req , err := http . NewRequest ( "PUT" , "/exercise/{exerciseId}/network-segments/{networkSegmentId}" , data )
req . Header = headers
client := & http . Client {}
resp , err := client . Do ( req )
// ...
}
PUT /exercise/{exerciseId}/network-segments/{networkSegmentId}
Parameters
Name
In
Type
Required
Description
exerciseId
path
string(uuid)
true
none
networkSegmentId
path
string(uuid)
true
none
Responses
Status
Meaning
Description
Schema
default
Default
successful operation
None
This operation does not require authentication
reloadExternalScripts
Code samples
# You can also use wget
curl -X POST /exercise/{ exerciseId} /reload-scripts
POST /exercise/{exerciseId}/reload-scripts HTTP / 1.1
fetch ( ' /exercise/{exerciseId}/reload-scripts ' ,
{
method : ' POST '
})
. then ( function ( res ) {
return res . json ();
}). then ( function ( body ) {
console . log ( body );
});
require 'rest-client'
require 'json'
result = RestClient . post '/exercise/{exerciseId}/reload-scripts' ,
params: {
}
p JSON . parse ( result )
import requests
r = requests . post ( '/exercise/{exerciseId}/reload-scripts' )
print ( r . json ())
<?php
require 'vendor/autoload.php' ;
$client = new \ GuzzleHttp\Client ();
// Define array of request body.
$request_body = array ();
try {
$response = $client -> request ( 'POST' , '/exercise/{exerciseId}/reload-scripts' , array (
'headers' => $headers ,
'json' => $request_body ,
)
);
print_r ( $response -> getBody () -> getContents ());
}
catch ( \ GuzzleHttp\Exception\BadResponseException $e ) {
// handle exception or api errors.
print_r ( $e -> getMessage ());
}
// ...
URL obj = new URL ( "/exercise/{exerciseId}/reload-scripts" );
HttpURLConnection con = ( HttpURLConnection ) obj . openConnection ();
con . setRequestMethod ( "POST" );
int responseCode = con . getResponseCode ();
BufferedReader in = new BufferedReader (
new InputStreamReader ( con . getInputStream ()));
String inputLine ;
StringBuffer response = new StringBuffer ();
while (( inputLine = in . readLine ()) != null ) {
response . append ( inputLine );
}
in . close ();
System . out . println ( response . toString ());
package main
import (
"bytes"
"net/http"
)
func main () {
data := bytes . NewBuffer ([] byte { jsonReq })
req , err := http . NewRequest ( "POST" , "/exercise/{exerciseId}/reload-scripts" , data )
req . Header = headers
client := & http . Client {}
resp , err := client . Do ( req )
// ...
}
POST /exercise/{exerciseId}/reload-scripts
Parameters
Name
In
Type
Required
Description
exerciseId
path
string(uuid)
true
none
Responses
Status
Meaning
Description
Schema
default
Default
successful operation
None
This operation does not require authentication
resetExercise
Code samples
# You can also use wget
curl -X POST /exercise/{ exerciseId} /reset
POST /exercise/{exerciseId}/reset HTTP / 1.1
fetch ( ' /exercise/{exerciseId}/reset ' ,
{
method : ' POST '
})
. then ( function ( res ) {
return res . json ();
}). then ( function ( body ) {
console . log ( body );
});
require 'rest-client'
require 'json'
result = RestClient . post '/exercise/{exerciseId}/reset' ,
params: {
}
p JSON . parse ( result )
import requests
r = requests . post ( '/exercise/{exerciseId}/reset' )
print ( r . json ())
<?php
require 'vendor/autoload.php' ;
$client = new \ GuzzleHttp\Client ();
// Define array of request body.
$request_body = array ();
try {
$response = $client -> request ( 'POST' , '/exercise/{exerciseId}/reset' , array (
'headers' => $headers ,
'json' => $request_body ,
)
);
print_r ( $response -> getBody () -> getContents ());
}
catch ( \ GuzzleHttp\Exception\BadResponseException $e ) {
// handle exception or api errors.
print_r ( $e -> getMessage ());
}
// ...
URL obj = new URL ( "/exercise/{exerciseId}/reset" );
HttpURLConnection con = ( HttpURLConnection ) obj . openConnection ();
con . setRequestMethod ( "POST" );
int responseCode = con . getResponseCode ();
BufferedReader in = new BufferedReader (
new InputStreamReader ( con . getInputStream ()));
String inputLine ;
StringBuffer response = new StringBuffer ();
while (( inputLine = in . readLine ()) != null ) {
response . append ( inputLine );
}
in . close ();
System . out . println ( response . toString ());
package main
import (
"bytes"
"net/http"
)
func main () {
data := bytes . NewBuffer ([] byte { jsonReq })
req , err := http . NewRequest ( "POST" , "/exercise/{exerciseId}/reset" , data )
req . Header = headers
client := & http . Client {}
resp , err := client . Do ( req )
// ...
}
POST /exercise/{exerciseId}/reset
Parameters
Name
In
Type
Required
Description
exerciseId
path
string(uuid)
true
none
Responses
Status
Meaning
Description
Schema
default
Default
successful operation
None
This operation does not require authentication
getExerciseScoreTypes
Code samples
# You can also use wget
curl -X GET /exercise/{ exerciseId} /score-types \
-H 'Accept: application/json'
GET /exercise/{exerciseId}/score-types HTTP / 1.1
Accept: application/json
const headers = {
' Accept ' : ' application/json '
};
fetch ( ' /exercise/{exerciseId}/score-types ' ,
{
method : ' GET ' ,
headers : headers
})
. then ( function ( res ) {
return res . json ();
}). then ( function ( body ) {
console . log ( body );
});
require 'rest-client'
require 'json'
headers = {
'Accept' => 'application/json'
}
result = RestClient . get '/exercise/{exerciseId}/score-types' ,
params: {
}, headers: headers
p JSON . parse ( result )
import requests
headers = {
'Accept' : 'application/json'
}
r = requests . get ( '/exercise/{exerciseId}/score-types' , headers = headers )
print ( r . json ())
<?php
require 'vendor/autoload.php' ;
$headers = array (
'Accept' => 'application/json' ,
);
$client = new \ GuzzleHttp\Client ();
// Define array of request body.
$request_body = array ();
try {
$response = $client -> request ( 'GET' , '/exercise/{exerciseId}/score-types' , array (
'headers' => $headers ,
'json' => $request_body ,
)
);
print_r ( $response -> getBody () -> getContents ());
}
catch ( \ GuzzleHttp\Exception\BadResponseException $e ) {
// handle exception or api errors.
print_r ( $e -> getMessage ());
}
// ...
URL obj = new URL ( "/exercise/{exerciseId}/score-types" );
HttpURLConnection con = ( HttpURLConnection ) obj . openConnection ();
con . setRequestMethod ( "GET" );
int responseCode = con . getResponseCode ();
BufferedReader in = new BufferedReader (
new InputStreamReader ( con . getInputStream ()));
String inputLine ;
StringBuffer response = new StringBuffer ();
while (( inputLine = in . readLine ()) != null ) {
response . append ( inputLine );
}
in . close ();
System . out . println ( response . toString ());
package main
import (
"bytes"
"net/http"
)
func main () {
headers := map [ string ][] string {
"Accept" : [] string { "application/json" },
}
data := bytes . NewBuffer ([] byte { jsonReq })
req , err := http . NewRequest ( "GET" , "/exercise/{exerciseId}/score-types" , data )
req . Header = headers
client := & http . Client {}
resp , err := client . Do ( req )
// ...
}
GET /exercise/{exerciseId}/score-types
Parameters
Name
In
Type
Required
Description
exerciseId
path
string(uuid)
true
none
Example responses
200 Response
Responses
Status
Meaning
Description
Schema
200
OK
successful operation
Inline
Response Schema
This operation does not require authentication
listenForTeamSettingsChanges
Code samples
# You can also use wget
curl -X GET /exercise/{ exerciseId} /team-settings/subscribe
GET /exercise/{exerciseId}/team-settings/subscribe HTTP / 1.1
fetch ( ' /exercise/{exerciseId}/team-settings/subscribe ' ,
{
method : ' GET '
})
. then ( function ( res ) {
return res . json ();
}). then ( function ( body ) {
console . log ( body );
});
require 'rest-client'
require 'json'
result = RestClient . get '/exercise/{exerciseId}/team-settings/subscribe' ,
params: {
}
p JSON . parse ( result )
import requests
r = requests . get ( '/exercise/{exerciseId}/team-settings/subscribe' )
print ( r . json ())
<?php
require 'vendor/autoload.php' ;
$client = new \ GuzzleHttp\Client ();
// Define array of request body.
$request_body = array ();
try {
$response = $client -> request ( 'GET' , '/exercise/{exerciseId}/team-settings/subscribe' , array (
'headers' => $headers ,
'json' => $request_body ,
)
);
print_r ( $response -> getBody () -> getContents ());
}
catch ( \ GuzzleHttp\Exception\BadResponseException $e ) {
// handle exception or api errors.
print_r ( $e -> getMessage ());
}
// ...
URL obj = new URL ( "/exercise/{exerciseId}/team-settings/subscribe" );
HttpURLConnection con = ( HttpURLConnection ) obj . openConnection ();
con . setRequestMethod ( "GET" );
int responseCode = con . getResponseCode ();
BufferedReader in = new BufferedReader (
new InputStreamReader ( con . getInputStream ()));
String inputLine ;
StringBuffer response = new StringBuffer ();
while (( inputLine = in . readLine ()) != null ) {
response . append ( inputLine );
}
in . close ();
System . out . println ( response . toString ());
package main
import (
"bytes"
"net/http"
)
func main () {
data := bytes . NewBuffer ([] byte { jsonReq })
req , err := http . NewRequest ( "GET" , "/exercise/{exerciseId}/team-settings/subscribe" , data )
req . Header = headers
client := & http . Client {}
resp , err := client . Do ( req )
// ...
}
GET /exercise/{exerciseId}/team-settings/subscribe
Parameters
Name
In
Type
Required
Description
exerciseId
path
string(uuid)
true
none
Responses
Status
Meaning
Description
Schema
default
Default
successful operation
None
This operation does not require authentication
getTeamAvatar
Code samples
# You can also use wget
curl -X GET /exercise/{ exerciseId} /teams/{ teamId} /avatar
GET /exercise/{exerciseId}/teams/{teamId}/avatar HTTP / 1.1
fetch ( ' /exercise/{exerciseId}/teams/{teamId}/avatar ' ,
{
method : ' GET '
})
. then ( function ( res ) {
return res . json ();
}). then ( function ( body ) {
console . log ( body );
});
require 'rest-client'
require 'json'
result = RestClient . get '/exercise/{exerciseId}/teams/{teamId}/avatar' ,
params: {
}
p JSON . parse ( result )
import requests
r = requests . get ( '/exercise/{exerciseId}/teams/{teamId}/avatar' )
print ( r . json ())
<?php
require 'vendor/autoload.php' ;
$client = new \ GuzzleHttp\Client ();
// Define array of request body.
$request_body = array ();
try {
$response = $client -> request ( 'GET' , '/exercise/{exerciseId}/teams/{teamId}/avatar' , array (
'headers' => $headers ,
'json' => $request_body ,
)
);
print_r ( $response -> getBody () -> getContents ());
}
catch ( \ GuzzleHttp\Exception\BadResponseException $e ) {
// handle exception or api errors.
print_r ( $e -> getMessage ());
}
// ...
URL obj = new URL ( "/exercise/{exerciseId}/teams/{teamId}/avatar" );
HttpURLConnection con = ( HttpURLConnection ) obj . openConnection ();
con . setRequestMethod ( "GET" );
int responseCode = con . getResponseCode ();
BufferedReader in = new BufferedReader (
new InputStreamReader ( con . getInputStream ()));
String inputLine ;
StringBuffer response = new StringBuffer ();
while (( inputLine = in . readLine ()) != null ) {
response . append ( inputLine );
}
in . close ();
System . out . println ( response . toString ());
package main
import (
"bytes"
"net/http"
)
func main () {
data := bytes . NewBuffer ([] byte { jsonReq })
req , err := http . NewRequest ( "GET" , "/exercise/{exerciseId}/teams/{teamId}/avatar" , data )
req . Header = headers
client := & http . Client {}
resp , err := client . Do ( req )
// ...
}
GET /exercise/{exerciseId}/teams/{teamId}/avatar
Parameters
Name
In
Type
Required
Description
exerciseId
path
string(uuid)
true
none
teamId
path
string(uuid)
true
none
Responses
Status
Meaning
Description
Schema
default
Default
successful operation
None
This operation does not require authentication
resetExerciseTeamData
Code samples
# You can also use wget
curl -X POST /exercise/{ exerciseId} /teams/{ teamId} /reset
POST /exercise/{exerciseId}/teams/{teamId}/reset HTTP / 1.1
fetch ( ' /exercise/{exerciseId}/teams/{teamId}/reset ' ,
{
method : ' POST '
})
. then ( function ( res ) {
return res . json ();
}). then ( function ( body ) {
console . log ( body );
});
require 'rest-client'
require 'json'
result = RestClient . post '/exercise/{exerciseId}/teams/{teamId}/reset' ,
params: {
}
p JSON . parse ( result )
import requests
r = requests . post ( '/exercise/{exerciseId}/teams/{teamId}/reset' )
print ( r . json ())
<?php
require 'vendor/autoload.php' ;
$client = new \ GuzzleHttp\Client ();
// Define array of request body.
$request_body = array ();
try {
$response = $client -> request ( 'POST' , '/exercise/{exerciseId}/teams/{teamId}/reset' , array (
'headers' => $headers ,
'json' => $request_body ,
)
);
print_r ( $response -> getBody () -> getContents ());
}
catch ( \ GuzzleHttp\Exception\BadResponseException $e ) {
// handle exception or api errors.
print_r ( $e -> getMessage ());
}
// ...
URL obj = new URL ( "/exercise/{exerciseId}/teams/{teamId}/reset" );
HttpURLConnection con = ( HttpURLConnection ) obj . openConnection ();
con . setRequestMethod ( "POST" );
int responseCode = con . getResponseCode ();
BufferedReader in = new BufferedReader (
new InputStreamReader ( con . getInputStream ()));
String inputLine ;
StringBuffer response = new StringBuffer ();
while (( inputLine = in . readLine ()) != null ) {
response . append ( inputLine );
}
in . close ();
System . out . println ( response . toString ());
package main
import (
"bytes"
"net/http"
)
func main () {
data := bytes . NewBuffer ([] byte { jsonReq })
req , err := http . NewRequest ( "POST" , "/exercise/{exerciseId}/teams/{teamId}/reset" , data )
req . Header = headers
client := & http . Client {}
resp , err := client . Do ( req )
// ...
}
POST /exercise/{exerciseId}/teams/{teamId}/reset
Parameters
Name
In
Type
Required
Description
exerciseId
path
string(uuid)
true
none
teamId
path
string(uuid)
true
none
Responses
Status
Meaning
Description
Schema
default
Default
successful operation
None
This operation does not require authentication
getTeamSettings
Code samples
# You can also use wget
curl -X GET /exercise/{ exerciseId} /teams/{ teamId} /settings \
-H 'Accept: application/json'
GET /exercise/{exerciseId}/teams/{teamId}/settings HTTP / 1.1
Accept: application/json
const headers = {
' Accept ' : ' application/json '
};
fetch ( ' /exercise/{exerciseId}/teams/{teamId}/settings ' ,
{
method : ' GET ' ,
headers : headers
})
. then ( function ( res ) {
return res . json ();
}). then ( function ( body ) {
console . log ( body );
});
require 'rest-client'
require 'json'
headers = {
'Accept' => 'application/json'
}
result = RestClient . get '/exercise/{exerciseId}/teams/{teamId}/settings' ,
params: {
}, headers: headers
p JSON . parse ( result )
import requests
headers = {
'Accept' : 'application/json'
}
r = requests . get ( '/exercise/{exerciseId}/teams/{teamId}/settings' , headers = headers )
print ( r . json ())
<?php
require 'vendor/autoload.php' ;
$headers = array (
'Accept' => 'application/json' ,
);
$client = new \ GuzzleHttp\Client ();
// Define array of request body.
$request_body = array ();
try {
$response = $client -> request ( 'GET' , '/exercise/{exerciseId}/teams/{teamId}/settings' , array (
'headers' => $headers ,
'json' => $request_body ,
)
);
print_r ( $response -> getBody () -> getContents ());
}
catch ( \ GuzzleHttp\Exception\BadResponseException $e ) {
// handle exception or api errors.
print_r ( $e -> getMessage ());
}
// ...
URL obj = new URL ( "/exercise/{exerciseId}/teams/{teamId}/settings" );
HttpURLConnection con = ( HttpURLConnection ) obj . openConnection ();
con . setRequestMethod ( "GET" );
int responseCode = con . getResponseCode ();
BufferedReader in = new BufferedReader (
new InputStreamReader ( con . getInputStream ()));
String inputLine ;
StringBuffer response = new StringBuffer ();
while (( inputLine = in . readLine ()) != null ) {
response . append ( inputLine );
}
in . close ();
System . out . println ( response . toString ());
package main
import (
"bytes"
"net/http"
)
func main () {
headers := map [ string ][] string {
"Accept" : [] string { "application/json" },
}
data := bytes . NewBuffer ([] byte { jsonReq })
req , err := http . NewRequest ( "GET" , "/exercise/{exerciseId}/teams/{teamId}/settings" , data )
req . Header = headers
client := & http . Client {}
resp , err := client . Do ( req )
// ...
}
GET /exercise/{exerciseId}/teams/{teamId}/settings
Parameters
Name
In
Type
Required
Description
exerciseId
path
string(uuid)
true
none
teamId
path
string(uuid)
true
none
Example responses
200 Response
{
"teamId" : "a4ede8ba-7c0a-4485-8763-cbd9b282fbec" ,
"teamName" : "string"
}
Responses
This operation does not require authentication
saveTeamSettings
Code samples
# You can also use wget
curl -X POST /exercise/{ exerciseId} /teams/{ teamId} /settings
POST /exercise/{exerciseId}/teams/{teamId}/settings HTTP / 1.1
fetch ( ' /exercise/{exerciseId}/teams/{teamId}/settings ' ,
{
method : ' POST '
})
. then ( function ( res ) {
return res . json ();
}). then ( function ( body ) {
console . log ( body );
});
require 'rest-client'
require 'json'
result = RestClient . post '/exercise/{exerciseId}/teams/{teamId}/settings' ,
params: {
}
p JSON . parse ( result )
import requests
r = requests . post ( '/exercise/{exerciseId}/teams/{teamId}/settings' )
print ( r . json ())
<?php
require 'vendor/autoload.php' ;
$client = new \ GuzzleHttp\Client ();
// Define array of request body.
$request_body = array ();
try {
$response = $client -> request ( 'POST' , '/exercise/{exerciseId}/teams/{teamId}/settings' , array (
'headers' => $headers ,
'json' => $request_body ,
)
);
print_r ( $response -> getBody () -> getContents ());
}
catch ( \ GuzzleHttp\Exception\BadResponseException $e ) {
// handle exception or api errors.
print_r ( $e -> getMessage ());
}
// ...
URL obj = new URL ( "/exercise/{exerciseId}/teams/{teamId}/settings" );
HttpURLConnection con = ( HttpURLConnection ) obj . openConnection ();
con . setRequestMethod ( "POST" );
int responseCode = con . getResponseCode ();
BufferedReader in = new BufferedReader (
new InputStreamReader ( con . getInputStream ()));
String inputLine ;
StringBuffer response = new StringBuffer ();
while (( inputLine = in . readLine ()) != null ) {
response . append ( inputLine );
}
in . close ();
System . out . println ( response . toString ());
package main
import (
"bytes"
"net/http"
)
func main () {
data := bytes . NewBuffer ([] byte { jsonReq })
req , err := http . NewRequest ( "POST" , "/exercise/{exerciseId}/teams/{teamId}/settings" , data )
req . Header = headers
client := & http . Client {}
resp , err := client . Do ( req )
// ...
}
POST /exercise/{exerciseId}/teams/{teamId}/settings
Parameters
Name
In
Type
Required
Description
exerciseId
path
string(uuid)
true
none
teamId
path
string(uuid)
true
none
Responses
Status
Meaning
Description
Schema
default
Default
successful operation
None
This operation does not require authentication
getExercise
Code samples
# You can also use wget
curl -X GET /exercise/{ id } \
-H 'Accept: application/json'
GET /exercise/{id} HTTP / 1.1
Accept: application/json
const headers = {
' Accept ' : ' application/json '
};
fetch ( ' /exercise/{id} ' ,
{
method : ' GET ' ,
headers : headers
})
. then ( function ( res ) {
return res . json ();
}). then ( function ( body ) {
console . log ( body );
});
require 'rest-client'
require 'json'
headers = {
'Accept' => 'application/json'
}
result = RestClient . get '/exercise/{id}' ,
params: {
}, headers: headers
p JSON . parse ( result )
import requests
headers = {
'Accept' : 'application/json'
}
r = requests . get ( '/exercise/{id}' , headers = headers )
print ( r . json ())
<?php
require 'vendor/autoload.php' ;
$headers = array (
'Accept' => 'application/json' ,
);
$client = new \ GuzzleHttp\Client ();
// Define array of request body.
$request_body = array ();
try {
$response = $client -> request ( 'GET' , '/exercise/{id}' , array (
'headers' => $headers ,
'json' => $request_body ,
)
);
print_r ( $response -> getBody () -> getContents ());
}
catch ( \ GuzzleHttp\Exception\BadResponseException $e ) {
// handle exception or api errors.
print_r ( $e -> getMessage ());
}
// ...
URL obj = new URL ( "/exercise/{id}" );
HttpURLConnection con = ( HttpURLConnection ) obj . openConnection ();
con . setRequestMethod ( "GET" );
int responseCode = con . getResponseCode ();
BufferedReader in = new BufferedReader (
new InputStreamReader ( con . getInputStream ()));
String inputLine ;
StringBuffer response = new StringBuffer ();
while (( inputLine = in . readLine ()) != null ) {
response . append ( inputLine );
}
in . close ();
System . out . println ( response . toString ());
package main
import (
"bytes"
"net/http"
)
func main () {
headers := map [ string ][] string {
"Accept" : [] string { "application/json" },
}
data := bytes . NewBuffer ([] byte { jsonReq })
req , err := http . NewRequest ( "GET" , "/exercise/{id}" , data )
req . Header = headers
client := & http . Client {}
resp , err := client . Do ( req )
// ...
}
GET /exercise/{id}
Parameters
Name
In
Type
Required
Description
id
path
string(uuid)
true
none
Example responses
200 Response
{
"property1" : {
"valueType" : "ARRAY"
},
"property2" : {
"valueType" : "ARRAY"
}
}
Responses
Status
Meaning
Description
Schema
200
OK
successful operation
Inline
Response Schema
Status Code 200
Name
Type
Required
Restrictions
Description
» additionalProperties
JsonValue
false
none
none
»» valueType
string
false
none
none
Enumerated Values
Property
Value
valueType
ARRAY
valueType
OBJECT
valueType
STRING
valueType
NUMBER
valueType
TRUE
valueType
FALSE
valueType
NULL
This operation does not require authentication
getExerciseBlueTeamUsers
Code samples
# You can also use wget
curl -X GET /exercise/{ id } /teams/{ teamId} /users \
-H 'Accept: application/json'
GET /exercise/{id}/teams/{teamId}/users HTTP / 1.1
Accept: application/json
const headers = {
' Accept ' : ' application/json '
};
fetch ( ' /exercise/{id}/teams/{teamId}/users ' ,
{
method : ' GET ' ,
headers : headers
})
. then ( function ( res ) {
return res . json ();
}). then ( function ( body ) {
console . log ( body );
});
require 'rest-client'
require 'json'
headers = {
'Accept' => 'application/json'
}
result = RestClient . get '/exercise/{id}/teams/{teamId}/users' ,
params: {
}, headers: headers
p JSON . parse ( result )
import requests
headers = {
'Accept' : 'application/json'
}
r = requests . get ( '/exercise/{id}/teams/{teamId}/users' , headers = headers )
print ( r . json ())
<?php
require 'vendor/autoload.php' ;
$headers = array (
'Accept' => 'application/json' ,
);
$client = new \ GuzzleHttp\Client ();
// Define array of request body.
$request_body = array ();
try {
$response = $client -> request ( 'GET' , '/exercise/{id}/teams/{teamId}/users' , array (
'headers' => $headers ,
'json' => $request_body ,
)
);
print_r ( $response -> getBody () -> getContents ());
}
catch ( \ GuzzleHttp\Exception\BadResponseException $e ) {
// handle exception or api errors.
print_r ( $e -> getMessage ());
}
// ...
URL obj = new URL ( "/exercise/{id}/teams/{teamId}/users" );
HttpURLConnection con = ( HttpURLConnection ) obj . openConnection ();
con . setRequestMethod ( "GET" );
int responseCode = con . getResponseCode ();
BufferedReader in = new BufferedReader (
new InputStreamReader ( con . getInputStream ()));
String inputLine ;
StringBuffer response = new StringBuffer ();
while (( inputLine = in . readLine ()) != null ) {
response . append ( inputLine );
}
in . close ();
System . out . println ( response . toString ());
package main
import (
"bytes"
"net/http"
)
func main () {
headers := map [ string ][] string {
"Accept" : [] string { "application/json" },
}
data := bytes . NewBuffer ([] byte { jsonReq })
req , err := http . NewRequest ( "GET" , "/exercise/{id}/teams/{teamId}/users" , data )
req . Header = headers
client := & http . Client {}
resp , err := client . Do ( req )
// ...
}
GET /exercise/{id}/teams/{teamId}/users
Parameters
Name
In
Type
Required
Description
id
path
string(uuid)
true
none
teamId
path
string(uuid)
true
none
Example responses
200 Response
[
{
"username" : "string" ,
"fullName" : "string" ,
"origin" : "LDAP"
}
]
Responses
Status
Meaning
Description
Schema
200
OK
successful operation
Inline
Response Schema
Status Code 200
Name
Type
Required
Restrictions
Description
anonymous
[UserListDTO ]
false
none
none
» username
string
false
none
none
» fullName
string
false
none
none
» origin
string
false
none
none
Enumerated Values
Property
Value
origin
LDAP
origin
LOCAL
origin
OBSERVER
origin
UNKNOWN
origin
EXTERNAL
This operation does not require authentication
getFileContent
Code samples
# You can also use wget
curl -X GET /files/{ fileId} \
-H 'Accept: application/octet-stream'
GET /files/{fileId} HTTP / 1.1
Accept: application/octet-stream
const headers = {
' Accept ' : ' application/octet-stream '
};
fetch ( ' /files/{fileId} ' ,
{
method : ' GET ' ,
headers : headers
})
. then ( function ( res ) {
return res . json ();
}). then ( function ( body ) {
console . log ( body );
});
require 'rest-client'
require 'json'
headers = {
'Accept' => 'application/octet-stream'
}
result = RestClient . get '/files/{fileId}' ,
params: {
}, headers: headers
p JSON . parse ( result )
import requests
headers = {
'Accept' : 'application/octet-stream'
}
r = requests . get ( '/files/{fileId}' , headers = headers )
print ( r . json ())
<?php
require 'vendor/autoload.php' ;
$headers = array (
'Accept' => 'application/octet-stream' ,
);
$client = new \ GuzzleHttp\Client ();
// Define array of request body.
$request_body = array ();
try {
$response = $client -> request ( 'GET' , '/files/{fileId}' , array (
'headers' => $headers ,
'json' => $request_body ,
)
);
print_r ( $response -> getBody () -> getContents ());
}
catch ( \ GuzzleHttp\Exception\BadResponseException $e ) {
// handle exception or api errors.
print_r ( $e -> getMessage ());
}
// ...
URL obj = new URL ( "/files/{fileId}" );
HttpURLConnection con = ( HttpURLConnection ) obj . openConnection ();
con . setRequestMethod ( "GET" );
int responseCode = con . getResponseCode ();
BufferedReader in = new BufferedReader (
new InputStreamReader ( con . getInputStream ()));
String inputLine ;
StringBuffer response = new StringBuffer ();
while (( inputLine = in . readLine ()) != null ) {
response . append ( inputLine );
}
in . close ();
System . out . println ( response . toString ());
package main
import (
"bytes"
"net/http"
)
func main () {
headers := map [ string ][] string {
"Accept" : [] string { "application/octet-stream" },
}
data := bytes . NewBuffer ([] byte { jsonReq })
req , err := http . NewRequest ( "GET" , "/files/{fileId}" , data )
req . Header = headers
client := & http . Client {}
resp , err := client . Do ( req )
// ...
}
GET /files/{fileId}
Parameters
Name
In
Type
Required
Description
fileId
path
string
true
none
Example responses
200 Response
Responses
Status
Meaning
Description
Schema
200
OK
successful operation
Inline
Response Schema
This operation does not require authentication
getHealthAggregatedData
Code samples
# You can also use wget
curl -X GET /health-data \
-H 'Accept: application/json'
GET /health-data HTTP / 1.1
Accept: application/json
const headers = {
' Accept ' : ' application/json '
};
fetch ( ' /health-data ' ,
{
method : ' GET ' ,
headers : headers
})
. then ( function ( res ) {
return res . json ();
}). then ( function ( body ) {
console . log ( body );
});
require 'rest-client'
require 'json'
headers = {
'Accept' => 'application/json'
}
result = RestClient . get '/health-data' ,
params: {
}, headers: headers
p JSON . parse ( result )
import requests
headers = {
'Accept' : 'application/json'
}
r = requests . get ( '/health-data' , headers = headers )
print ( r . json ())
<?php
require 'vendor/autoload.php' ;
$headers = array (
'Accept' => 'application/json' ,
);
$client = new \ GuzzleHttp\Client ();
// Define array of request body.
$request_body = array ();
try {
$response = $client -> request ( 'GET' , '/health-data' , array (
'headers' => $headers ,
'json' => $request_body ,
)
);
print_r ( $response -> getBody () -> getContents ());
}
catch ( \ GuzzleHttp\Exception\BadResponseException $e ) {
// handle exception or api errors.
print_r ( $e -> getMessage ());
}
// ...
URL obj = new URL ( "/health-data" );
HttpURLConnection con = ( HttpURLConnection ) obj . openConnection ();
con . setRequestMethod ( "GET" );
int responseCode = con . getResponseCode ();
BufferedReader in = new BufferedReader (
new InputStreamReader ( con . getInputStream ()));
String inputLine ;
StringBuffer response = new StringBuffer ();
while (( inputLine = in . readLine ()) != null ) {
response . append ( inputLine );
}
in . close ();
System . out . println ( response . toString ());
package main
import (
"bytes"
"net/http"
)
func main () {
headers := map [ string ][] string {
"Accept" : [] string { "application/json" },
}
data := bytes . NewBuffer ([] byte { jsonReq })
req , err := http . NewRequest ( "GET" , "/health-data" , data )
req . Header = headers
client := & http . Client {}
resp , err := client . Do ( req )
// ...
}
GET /health-data
Example responses
200 Response
{
"timestamp" : 0 ,
"data" : [
{
"type" : "string" ,
"name" : "string" ,
"description" : "string" ,
"checks" : [
{}
],
"isUp" : true
}
]
}
Responses
This operation does not require authentication
listenForHealthDataChanges
Code samples
# You can also use wget
curl -X GET /health-data/subscribe
GET /health-data/subscribe HTTP / 1.1
fetch ( ' /health-data/subscribe ' ,
{
method : ' GET '
})
. then ( function ( res ) {
return res . json ();
}). then ( function ( body ) {
console . log ( body );
});
require 'rest-client'
require 'json'
result = RestClient . get '/health-data/subscribe' ,
params: {
}
p JSON . parse ( result )
import requests
r = requests . get ( '/health-data/subscribe' )
print ( r . json ())
<?php
require 'vendor/autoload.php' ;
$client = new \ GuzzleHttp\Client ();
// Define array of request body.
$request_body = array ();
try {
$response = $client -> request ( 'GET' , '/health-data/subscribe' , array (
'headers' => $headers ,
'json' => $request_body ,
)
);
print_r ( $response -> getBody () -> getContents ());
}
catch ( \ GuzzleHttp\Exception\BadResponseException $e ) {
// handle exception or api errors.
print_r ( $e -> getMessage ());
}
// ...
URL obj = new URL ( "/health-data/subscribe" );
HttpURLConnection con = ( HttpURLConnection ) obj . openConnection ();
con . setRequestMethod ( "GET" );
int responseCode = con . getResponseCode ();
BufferedReader in = new BufferedReader (
new InputStreamReader ( con . getInputStream ()));
String inputLine ;
StringBuffer response = new StringBuffer ();
while (( inputLine = in . readLine ()) != null ) {
response . append ( inputLine );
}
in . close ();
System . out . println ( response . toString ());
package main
import (
"bytes"
"net/http"
)
func main () {
data := bytes . NewBuffer ([] byte { jsonReq })
req , err := http . NewRequest ( "GET" , "/health-data/subscribe" , data )
req . Header = headers
client := & http . Client {}
resp , err := client . Do ( req )
// ...
}
GET /health-data/subscribe
Responses
Status
Meaning
Description
Schema
default
Default
successful operation
None
This operation does not require authentication
getIntegrations
Code samples
# You can also use wget
curl -X GET /integrations \
-H 'Accept: application/json'
GET /integrations HTTP / 1.1
Accept: application/json
const headers = {
' Accept ' : ' application/json '
};
fetch ( ' /integrations ' ,
{
method : ' GET ' ,
headers : headers
})
. then ( function ( res ) {
return res . json ();
}). then ( function ( body ) {
console . log ( body );
});
require 'rest-client'
require 'json'
headers = {
'Accept' => 'application/json'
}
result = RestClient . get '/integrations' ,
params: {
}, headers: headers
p JSON . parse ( result )
import requests
headers = {
'Accept' : 'application/json'
}
r = requests . get ( '/integrations' , headers = headers )
print ( r . json ())
<?php
require 'vendor/autoload.php' ;
$headers = array (
'Accept' => 'application/json' ,
);
$client = new \ GuzzleHttp\Client ();
// Define array of request body.
$request_body = array ();
try {
$response = $client -> request ( 'GET' , '/integrations' , array (
'headers' => $headers ,
'json' => $request_body ,
)
);
print_r ( $response -> getBody () -> getContents ());
}
catch ( \ GuzzleHttp\Exception\BadResponseException $e ) {
// handle exception or api errors.
print_r ( $e -> getMessage ());
}
// ...
URL obj = new URL ( "/integrations" );
HttpURLConnection con = ( HttpURLConnection ) obj . openConnection ();
con . setRequestMethod ( "GET" );
int responseCode = con . getResponseCode ();
BufferedReader in = new BufferedReader (
new InputStreamReader ( con . getInputStream ()));
String inputLine ;
StringBuffer response = new StringBuffer ();
while (( inputLine = in . readLine ()) != null ) {
response . append ( inputLine );
}
in . close ();
System . out . println ( response . toString ());
package main
import (
"bytes"
"net/http"
)
func main () {
headers := map [ string ][] string {
"Accept" : [] string { "application/json" },
}
data := bytes . NewBuffer ([] byte { jsonReq })
req , err := http . NewRequest ( "GET" , "/integrations" , data )
req . Header = headers
client := & http . Client {}
resp , err := client . Do ( req )
// ...
}
GET /integrations
Example responses
200 Response
[
{
"id" : "string" ,
"name" : "string" ,
"type" : "REST" ,
"eventTypes" : [
"TARGET_STATUS_CHANGE"
],
"baseUrl" : "string" ,
"events" : [
{
"id" : {
"timestamp" : 0 ,
"date" : "2019-08-24T14:15:22Z"
},
"type" : "TARGET_STATUS_CHANGE" ,
"subjectType" : "TARGET" ,
"integrationId" : {
"timestamp" : 0 ,
"date" : "2019-08-24T14:15:22Z"
},
"subjectId" : "string"
}
],
"authentication" : {
"type" : "SESSION_TOKEN"
},
"configuration" : {
"integrationType" : "REST"
}
}
]
Responses
Status
Meaning
Description
Schema
200
OK
successful operation
Inline
Response Schema
Status Code 200
Name
Type
Required
Restrictions
Description
anonymous
[IntegrationListItemDTO ]
false
none
none
» id
string
false
none
none
» name
string
false
none
none
» type
string
false
none
none
» eventTypes
[string]
false
none
none
» baseUrl
string
false
none
none
» events
[IntegrationEvent ]
false
none
none
»» id
ObjectId
false
none
none
»»» timestamp
integer(int32)
false
none
none
»»» date
string(date-time)
false
none
none
»» type
string
false
none
none
»» subjectType
string
false
none
none
»» integrationId
ObjectId
false
none
none
»» subjectId
string
false
none
none
» authentication
IntegrationAuthentication
false
none
none
»» type
string
false
none
none
» configuration
IntegrationConfiguration
false
none
none
»» integrationType
string
false
none
none
Enumerated Values
Property
Value
type
REST
type
SENDGRID
type
SLACK_WEBHOOK
type
DELRAP
type
TARGET_STATUS_CHANGE
type
EMAIL
type
EXERCISE_START
type
EXERCISE_END
type
EXERCISE_PROGRESS_UPDATE
subjectType
TARGET
subjectType
EMAIL
subjectType
EXERCISE
type
SESSION_TOKEN
type
API_KEY
type
ACTIVEMQ
type
NOOP
integrationType
REST
integrationType
SENDGRID
integrationType
SLACK_WEBHOOK
integrationType
DELRAP
This operation does not require authentication
saveIntegration
Code samples
# You can also use wget
curl -X POST /integrations
POST /integrations HTTP / 1.1
fetch ( ' /integrations ' ,
{
method : ' POST '
})
. then ( function ( res ) {
return res . json ();
}). then ( function ( body ) {
console . log ( body );
});
require 'rest-client'
require 'json'
result = RestClient . post '/integrations' ,
params: {
}
p JSON . parse ( result )
import requests
r = requests . post ( '/integrations' )
print ( r . json ())
<?php
require 'vendor/autoload.php' ;
$client = new \ GuzzleHttp\Client ();
// Define array of request body.
$request_body = array ();
try {
$response = $client -> request ( 'POST' , '/integrations' , array (
'headers' => $headers ,
'json' => $request_body ,
)
);
print_r ( $response -> getBody () -> getContents ());
}
catch ( \ GuzzleHttp\Exception\BadResponseException $e ) {
// handle exception or api errors.
print_r ( $e -> getMessage ());
}
// ...
URL obj = new URL ( "/integrations" );
HttpURLConnection con = ( HttpURLConnection ) obj . openConnection ();
con . setRequestMethod ( "POST" );
int responseCode = con . getResponseCode ();
BufferedReader in = new BufferedReader (
new InputStreamReader ( con . getInputStream ()));
String inputLine ;
StringBuffer response = new StringBuffer ();
while (( inputLine = in . readLine ()) != null ) {
response . append ( inputLine );
}
in . close ();
System . out . println ( response . toString ());
package main
import (
"bytes"
"net/http"
)
func main () {
data := bytes . NewBuffer ([] byte { jsonReq })
req , err := http . NewRequest ( "POST" , "/integrations" , data )
req . Header = headers
client := & http . Client {}
resp , err := client . Do ( req )
// ...
}
POST /integrations
Responses
Status
Meaning
Description
Schema
default
Default
successful operation
None
This operation does not require authentication
getIntegrationEvents
Code samples
# You can also use wget
curl -X GET /integrations/events \
-H 'Accept: application/json'
GET /integrations/events HTTP / 1.1
Accept: application/json
const headers = {
' Accept ' : ' application/json '
};
fetch ( ' /integrations/events ' ,
{
method : ' GET ' ,
headers : headers
})
. then ( function ( res ) {
return res . json ();
}). then ( function ( body ) {
console . log ( body );
});
require 'rest-client'
require 'json'
headers = {
'Accept' => 'application/json'
}
result = RestClient . get '/integrations/events' ,
params: {
}, headers: headers
p JSON . parse ( result )
import requests
headers = {
'Accept' : 'application/json'
}
r = requests . get ( '/integrations/events' , headers = headers )
print ( r . json ())
<?php
require 'vendor/autoload.php' ;
$headers = array (
'Accept' => 'application/json' ,
);
$client = new \ GuzzleHttp\Client ();
// Define array of request body.
$request_body = array ();
try {
$response = $client -> request ( 'GET' , '/integrations/events' , array (
'headers' => $headers ,
'json' => $request_body ,
)
);
print_r ( $response -> getBody () -> getContents ());
}
catch ( \ GuzzleHttp\Exception\BadResponseException $e ) {
// handle exception or api errors.
print_r ( $e -> getMessage ());
}
// ...
URL obj = new URL ( "/integrations/events" );
HttpURLConnection con = ( HttpURLConnection ) obj . openConnection ();
con . setRequestMethod ( "GET" );
int responseCode = con . getResponseCode ();
BufferedReader in = new BufferedReader (
new InputStreamReader ( con . getInputStream ()));
String inputLine ;
StringBuffer response = new StringBuffer ();
while (( inputLine = in . readLine ()) != null ) {
response . append ( inputLine );
}
in . close ();
System . out . println ( response . toString ());
package main
import (
"bytes"
"net/http"
)
func main () {
headers := map [ string ][] string {
"Accept" : [] string { "application/json" },
}
data := bytes . NewBuffer ([] byte { jsonReq })
req , err := http . NewRequest ( "GET" , "/integrations/events" , data )
req . Header = headers
client := & http . Client {}
resp , err := client . Do ( req )
// ...
}
GET /integrations/events
Parameters
Name
In
Type
Required
Description
subjectId
query
string
false
none
subjectType
query
string
false
none
eventTypes
query
array[string]
false
none
integrationId
query
string
false
none
Enumerated Values
Parameter
Value
subjectType
TARGET
subjectType
EMAIL
subjectType
EXERCISE
eventTypes
TARGET_STATUS_CHANGE
eventTypes
EMAIL
eventTypes
EXERCISE_START
eventTypes
EXERCISE_END
eventTypes
EXERCISE_PROGRESS_UPDATE
Example responses
200 Response
[
{
"id" : "string" ,
"type" : "TARGET_STATUS_CHANGE" ,
"subjectName" : "string" ,
"subjectType" : "TARGET" ,
"integrationId" : "string" ,
"subjectId" : "string"
}
]
Responses
Status
Meaning
Description
Schema
200
OK
successful operation
Inline
Response Schema
Status Code 200
Name
Type
Required
Restrictions
Description
anonymous
[IntegrationEventDTO ]
false
none
none
» id
string
false
none
none
» type
string
false
none
none
» subjectName
string
false
none
none
» subjectType
string
false
none
none
» integrationId
string
false
none
none
» subjectId
string
false
none
none
Enumerated Values
Property
Value
type
TARGET_STATUS_CHANGE
type
EMAIL
type
EXERCISE_START
type
EXERCISE_END
type
EXERCISE_PROGRESS_UPDATE
subjectType
TARGET
subjectType
EMAIL
subjectType
EXERCISE
This operation does not require authentication
saveIntegrationEvent
Code samples
# You can also use wget
curl -X POST /integrations/events \
-H 'Accept: application/json'
POST /integrations/events HTTP / 1.1
Accept: application/json
const headers = {
' Accept ' : ' application/json '
};
fetch ( ' /integrations/events ' ,
{
method : ' POST ' ,
headers : headers
})
. then ( function ( res ) {
return res . json ();
}). then ( function ( body ) {
console . log ( body );
});
require 'rest-client'
require 'json'
headers = {
'Accept' => 'application/json'
}
result = RestClient . post '/integrations/events' ,
params: {
}, headers: headers
p JSON . parse ( result )
import requests
headers = {
'Accept' : 'application/json'
}
r = requests . post ( '/integrations/events' , headers = headers )
print ( r . json ())
<?php
require 'vendor/autoload.php' ;
$headers = array (
'Accept' => 'application/json' ,
);
$client = new \ GuzzleHttp\Client ();
// Define array of request body.
$request_body = array ();
try {
$response = $client -> request ( 'POST' , '/integrations/events' , array (
'headers' => $headers ,
'json' => $request_body ,
)
);
print_r ( $response -> getBody () -> getContents ());
}
catch ( \ GuzzleHttp\Exception\BadResponseException $e ) {
// handle exception or api errors.
print_r ( $e -> getMessage ());
}
// ...
URL obj = new URL ( "/integrations/events" );
HttpURLConnection con = ( HttpURLConnection ) obj . openConnection ();
con . setRequestMethod ( "POST" );
int responseCode = con . getResponseCode ();
BufferedReader in = new BufferedReader (
new InputStreamReader ( con . getInputStream ()));
String inputLine ;
StringBuffer response = new StringBuffer ();
while (( inputLine = in . readLine ()) != null ) {
response . append ( inputLine );
}
in . close ();
System . out . println ( response . toString ());
package main
import (
"bytes"
"net/http"
)
func main () {
headers := map [ string ][] string {
"Accept" : [] string { "application/json" },
}
data := bytes . NewBuffer ([] byte { jsonReq })
req , err := http . NewRequest ( "POST" , "/integrations/events" , data )
req . Header = headers
client := & http . Client {}
resp , err := client . Do ( req )
// ...
}
POST /integrations/events
Example responses
200 Response
{
"id" : "string" ,
"type" : "TARGET_STATUS_CHANGE" ,
"subjectName" : "string" ,
"subjectType" : "TARGET" ,
"integrationId" : "string" ,
"subjectId" : "string"
}
Responses
This operation does not require authentication
updateIntegrationEvent
Code samples
# You can also use wget
curl -X PUT /integrations/events/{ id }
PUT /integrations/events/{id} HTTP / 1.1
fetch ( ' /integrations/events/{id} ' ,
{
method : ' PUT '
})
. then ( function ( res ) {
return res . json ();
}). then ( function ( body ) {
console . log ( body );
});
require 'rest-client'
require 'json'
result = RestClient . put '/integrations/events/{id}' ,
params: {
}
p JSON . parse ( result )
import requests
r = requests . put ( '/integrations/events/{id}' )
print ( r . json ())
<?php
require 'vendor/autoload.php' ;
$client = new \ GuzzleHttp\Client ();
// Define array of request body.
$request_body = array ();
try {
$response = $client -> request ( 'PUT' , '/integrations/events/{id}' , array (
'headers' => $headers ,
'json' => $request_body ,
)
);
print_r ( $response -> getBody () -> getContents ());
}
catch ( \ GuzzleHttp\Exception\BadResponseException $e ) {
// handle exception or api errors.
print_r ( $e -> getMessage ());
}
// ...
URL obj = new URL ( "/integrations/events/{id}" );
HttpURLConnection con = ( HttpURLConnection ) obj . openConnection ();
con . setRequestMethod ( "PUT" );
int responseCode = con . getResponseCode ();
BufferedReader in = new BufferedReader (
new InputStreamReader ( con . getInputStream ()));
String inputLine ;
StringBuffer response = new StringBuffer ();
while (( inputLine = in . readLine ()) != null ) {
response . append ( inputLine );
}
in . close ();
System . out . println ( response . toString ());
package main
import (
"bytes"
"net/http"
)
func main () {
data := bytes . NewBuffer ([] byte { jsonReq })
req , err := http . NewRequest ( "PUT" , "/integrations/events/{id}" , data )
req . Header = headers
client := & http . Client {}
resp , err := client . Do ( req )
// ...
}
PUT /integrations/events/{id}
Parameters
Name
In
Type
Required
Description
id
path
string
true
none
Responses
Status
Meaning
Description
Schema
default
Default
successful operation
None
This operation does not require authentication
deleteIntegrationEvent
Code samples
# You can also use wget
curl -X DELETE /integrations/events/{ id }
DELETE /integrations/events/{id} HTTP / 1.1
fetch ( ' /integrations/events/{id} ' ,
{
method : ' DELETE '
})
. then ( function ( res ) {
return res . json ();
}). then ( function ( body ) {
console . log ( body );
});
require 'rest-client'
require 'json'
result = RestClient . delete '/integrations/events/{id}' ,
params: {
}
p JSON . parse ( result )
import requests
r = requests . delete ( '/integrations/events/{id}' )
print ( r . json ())
<?php
require 'vendor/autoload.php' ;
$client = new \ GuzzleHttp\Client ();
// Define array of request body.
$request_body = array ();
try {
$response = $client -> request ( 'DELETE' , '/integrations/events/{id}' , array (
'headers' => $headers ,
'json' => $request_body ,
)
);
print_r ( $response -> getBody () -> getContents ());
}
catch ( \ GuzzleHttp\Exception\BadResponseException $e ) {
// handle exception or api errors.
print_r ( $e -> getMessage ());
}
// ...
URL obj = new URL ( "/integrations/events/{id}" );
HttpURLConnection con = ( HttpURLConnection ) obj . openConnection ();
con . setRequestMethod ( "DELETE" );
int responseCode = con . getResponseCode ();
BufferedReader in = new BufferedReader (
new InputStreamReader ( con . getInputStream ()));
String inputLine ;
StringBuffer response = new StringBuffer ();
while (( inputLine = in . readLine ()) != null ) {
response . append ( inputLine );
}
in . close ();
System . out . println ( response . toString ());
package main
import (
"bytes"
"net/http"
)
func main () {
data := bytes . NewBuffer ([] byte { jsonReq })
req , err := http . NewRequest ( "DELETE" , "/integrations/events/{id}" , data )
req . Header = headers
client := & http . Client {}
resp , err := client . Do ( req )
// ...
}
DELETE /integrations/events/{id}
Parameters
Name
In
Type
Required
Description
id
path
string
true
none
Responses
Status
Meaning
Description
Schema
default
Default
successful operation
None
This operation does not require authentication
sendIntegrationEvent
Code samples
# You can also use wget
curl -X POST /integrations/events/{ subjectId} /send
POST /integrations/events/{subjectId}/send HTTP / 1.1
fetch ( ' /integrations/events/{subjectId}/send ' ,
{
method : ' POST '
})
. then ( function ( res ) {
return res . json ();
}). then ( function ( body ) {
console . log ( body );
});
require 'rest-client'
require 'json'
result = RestClient . post '/integrations/events/{subjectId}/send' ,
params: {
}
p JSON . parse ( result )
import requests
r = requests . post ( '/integrations/events/{subjectId}/send' )
print ( r . json ())
<?php
require 'vendor/autoload.php' ;
$client = new \ GuzzleHttp\Client ();
// Define array of request body.
$request_body = array ();
try {
$response = $client -> request ( 'POST' , '/integrations/events/{subjectId}/send' , array (
'headers' => $headers ,
'json' => $request_body ,
)
);
print_r ( $response -> getBody () -> getContents ());
}
catch ( \ GuzzleHttp\Exception\BadResponseException $e ) {
// handle exception or api errors.
print_r ( $e -> getMessage ());
}
// ...
URL obj = new URL ( "/integrations/events/{subjectId}/send" );
HttpURLConnection con = ( HttpURLConnection ) obj . openConnection ();
con . setRequestMethod ( "POST" );
int responseCode = con . getResponseCode ();
BufferedReader in = new BufferedReader (
new InputStreamReader ( con . getInputStream ()));
String inputLine ;
StringBuffer response = new StringBuffer ();
while (( inputLine = in . readLine ()) != null ) {
response . append ( inputLine );
}
in . close ();
System . out . println ( response . toString ());
package main
import (
"bytes"
"net/http"
)
func main () {
data := bytes . NewBuffer ([] byte { jsonReq })
req , err := http . NewRequest ( "POST" , "/integrations/events/{subjectId}/send" , data )
req . Header = headers
client := & http . Client {}
resp , err := client . Do ( req )
// ...
}
POST /integrations/events/{subjectId}/send
Parameters
Name
In
Type
Required
Description
subjectId
path
string
true
none
Responses
Status
Meaning
Description
Schema
default
Default
successful operation
None
This operation does not require authentication
updateIntegration
Code samples
# You can also use wget
curl -X PUT /integrations/{ id }
PUT /integrations/{id} HTTP / 1.1
fetch ( ' /integrations/{id} ' ,
{
method : ' PUT '
})
. then ( function ( res ) {
return res . json ();
}). then ( function ( body ) {
console . log ( body );
});
require 'rest-client'
require 'json'
result = RestClient . put '/integrations/{id}' ,
params: {
}
p JSON . parse ( result )
import requests
r = requests . put ( '/integrations/{id}' )
print ( r . json ())
<?php
require 'vendor/autoload.php' ;
$client = new \ GuzzleHttp\Client ();
// Define array of request body.
$request_body = array ();
try {
$response = $client -> request ( 'PUT' , '/integrations/{id}' , array (
'headers' => $headers ,
'json' => $request_body ,
)
);
print_r ( $response -> getBody () -> getContents ());
}
catch ( \ GuzzleHttp\Exception\BadResponseException $e ) {
// handle exception or api errors.
print_r ( $e -> getMessage ());
}
// ...
URL obj = new URL ( "/integrations/{id}" );
HttpURLConnection con = ( HttpURLConnection ) obj . openConnection ();
con . setRequestMethod ( "PUT" );
int responseCode = con . getResponseCode ();
BufferedReader in = new BufferedReader (
new InputStreamReader ( con . getInputStream ()));
String inputLine ;
StringBuffer response = new StringBuffer ();
while (( inputLine = in . readLine ()) != null ) {
response . append ( inputLine );
}
in . close ();
System . out . println ( response . toString ());
package main
import (
"bytes"
"net/http"
)
func main () {
data := bytes . NewBuffer ([] byte { jsonReq })
req , err := http . NewRequest ( "PUT" , "/integrations/{id}" , data )
req . Header = headers
client := & http . Client {}
resp , err := client . Do ( req )
// ...
}
PUT /integrations/{id}
Parameters
Name
In
Type
Required
Description
id
path
string
true
none
Responses
Status
Meaning
Description
Schema
default
Default
successful operation
None
This operation does not require authentication
deleteIntegration
Code samples
# You can also use wget
curl -X DELETE /integrations/{ id }
DELETE /integrations/{id} HTTP / 1.1
fetch ( ' /integrations/{id} ' ,
{
method : ' DELETE '
})
. then ( function ( res ) {
return res . json ();
}). then ( function ( body ) {
console . log ( body );
});
require 'rest-client'
require 'json'
result = RestClient . delete '/integrations/{id}' ,
params: {
}
p JSON . parse ( result )
import requests
r = requests . delete ( '/integrations/{id}' )
print ( r . json ())
<?php
require 'vendor/autoload.php' ;
$client = new \ GuzzleHttp\Client ();
// Define array of request body.
$request_body = array ();
try {
$response = $client -> request ( 'DELETE' , '/integrations/{id}' , array (
'headers' => $headers ,
'json' => $request_body ,
)
);
print_r ( $response -> getBody () -> getContents ());
}
catch ( \ GuzzleHttp\Exception\BadResponseException $e ) {
// handle exception or api errors.
print_r ( $e -> getMessage ());
}
// ...
URL obj = new URL ( "/integrations/{id}" );
HttpURLConnection con = ( HttpURLConnection ) obj . openConnection ();
con . setRequestMethod ( "DELETE" );
int responseCode = con . getResponseCode ();
BufferedReader in = new BufferedReader (
new InputStreamReader ( con . getInputStream ()));
String inputLine ;
StringBuffer response = new StringBuffer ();
while (( inputLine = in . readLine ()) != null ) {
response . append ( inputLine );
}
in . close ();
System . out . println ( response . toString ());
package main
import (
"bytes"
"net/http"
)
func main () {
data := bytes . NewBuffer ([] byte { jsonReq })
req , err := http . NewRequest ( "DELETE" , "/integrations/{id}" , data )
req . Header = headers
client := & http . Client {}
resp , err := client . Do ( req )
// ...
}
DELETE /integrations/{id}
Parameters
Name
In
Type
Required
Description
id
path
string
true
none
Responses
Status
Meaning
Description
Schema
default
Default
successful operation
None
This operation does not require authentication
getNewsInjections
Code samples
# You can also use wget
curl -X GET /news/injects/exercise/{ exerciseId} \
-H 'Accept: application/json'
GET /news/injects/exercise/{exerciseId} HTTP / 1.1
Accept: application/json
const headers = {
' Accept ' : ' application/json '
};
fetch ( ' /news/injects/exercise/{exerciseId} ' ,
{
method : ' GET ' ,
headers : headers
})
. then ( function ( res ) {
return res . json ();
}). then ( function ( body ) {
console . log ( body );
});
require 'rest-client'
require 'json'
headers = {
'Accept' => 'application/json'
}
result = RestClient . get '/news/injects/exercise/{exerciseId}' ,
params: {
}, headers: headers
p JSON . parse ( result )
import requests
headers = {
'Accept' : 'application/json'
}
r = requests . get ( '/news/injects/exercise/{exerciseId}' , headers = headers )
print ( r . json ())
<?php
require 'vendor/autoload.php' ;
$headers = array (
'Accept' => 'application/json' ,
);
$client = new \ GuzzleHttp\Client ();
// Define array of request body.
$request_body = array ();
try {
$response = $client -> request ( 'GET' , '/news/injects/exercise/{exerciseId}' , array (
'headers' => $headers ,
'json' => $request_body ,
)
);
print_r ( $response -> getBody () -> getContents ());
}
catch ( \ GuzzleHttp\Exception\BadResponseException $e ) {
// handle exception or api errors.
print_r ( $e -> getMessage ());
}
// ...
URL obj = new URL ( "/news/injects/exercise/{exerciseId}" );
HttpURLConnection con = ( HttpURLConnection ) obj . openConnection ();
con . setRequestMethod ( "GET" );
int responseCode = con . getResponseCode ();
BufferedReader in = new BufferedReader (
new InputStreamReader ( con . getInputStream ()));
String inputLine ;
StringBuffer response = new StringBuffer ();
while (( inputLine = in . readLine ()) != null ) {
response . append ( inputLine );
}
in . close ();
System . out . println ( response . toString ());
package main
import (
"bytes"
"net/http"
)
func main () {
headers := map [ string ][] string {
"Accept" : [] string { "application/json" },
}
data := bytes . NewBuffer ([] byte { jsonReq })
req , err := http . NewRequest ( "GET" , "/news/injects/exercise/{exerciseId}" , data )
req . Header = headers
client := & http . Client {}
resp , err := client . Do ( req )
// ...
}
GET /news/injects/exercise/{exerciseId}
Parameters
Name
In
Type
Required
Description
exerciseId
path
string(uuid)
true
none
teamId
query
string(uuid)
false
none
Example responses
200 Response
[
{
"id" : "497f6eca-6276-4993-bfeb-53cbbbba6f08" ,
"exerciseId" : "71ba10b8-c6bd-49fd-9742-f8dbc8ccdb47" ,
"title" : "string" ,
"description" : "string" ,
"timestamp" : 0 ,
"mediaId" : "string" ,
"thumbnailId" : "string" ,
"fileType" : "AUDIO" ,
"status" : "PUBLISHED" ,
"teams" : [
{
"teamId" : "a4ede8ba-7c0a-4485-8763-cbd9b282fbec" ,
"teamName" : "string" ,
"injectStatus" : "PUBLISHED" ,
"injectPublicationId" : "string" ,
"injectPublicationTimestamp" : 0
}
],
"isNew" : true
}
]
Responses
Status
Meaning
Description
Schema
200
OK
successful operation
Inline
Response Schema
Status Code 200
Name
Type
Required
Restrictions
Description
anonymous
[NewsInjectData ]
false
none
none
» id
string(uuid)
false
none
none
» exerciseId
string(uuid)
false
none
none
» title
string
false
none
none
» description
string
false
none
none
» timestamp
integer(int64)
false
none
none
» mediaId
string
false
none
none
» thumbnailId
string
false
none
none
» fileType
string
false
none
none
» status
string
false
none
none
» teams
[NewsInjectTeam ]
false
none
none
»» teamId
string(uuid)
false
none
none
»» teamName
string
false
none
none
»» injectStatus
string
false
none
none
»» injectPublicationId
string
false
none
none
»» injectPublicationTimestamp
integer(int64)
false
none
none
» isNew
boolean
false
read-only
none
Enumerated Values
Property
Value
fileType
AUDIO
fileType
IMAGE
fileType
VIDEO
status
PUBLISHED
status
UNPUBLISHED
injectStatus
PUBLISHED
injectStatus
UNPUBLISHED
This operation does not require authentication
saveNewsInject
Code samples
# You can also use wget
curl -X POST /news/injects/exercise/{ exerciseId}
POST /news/injects/exercise/{exerciseId} HTTP / 1.1
fetch ( ' /news/injects/exercise/{exerciseId} ' ,
{
method : ' POST '
})
. then ( function ( res ) {
return res . json ();
}). then ( function ( body ) {
console . log ( body );
});
require 'rest-client'
require 'json'
result = RestClient . post '/news/injects/exercise/{exerciseId}' ,
params: {
}
p JSON . parse ( result )
import requests
r = requests . post ( '/news/injects/exercise/{exerciseId}' )
print ( r . json ())
<?php
require 'vendor/autoload.php' ;
$client = new \ GuzzleHttp\Client ();
// Define array of request body.
$request_body = array ();
try {
$response = $client -> request ( 'POST' , '/news/injects/exercise/{exerciseId}' , array (
'headers' => $headers ,
'json' => $request_body ,
)
);
print_r ( $response -> getBody () -> getContents ());
}
catch ( \ GuzzleHttp\Exception\BadResponseException $e ) {
// handle exception or api errors.
print_r ( $e -> getMessage ());
}
// ...
URL obj = new URL ( "/news/injects/exercise/{exerciseId}" );
HttpURLConnection con = ( HttpURLConnection ) obj . openConnection ();
con . setRequestMethod ( "POST" );
int responseCode = con . getResponseCode ();
BufferedReader in = new BufferedReader (
new InputStreamReader ( con . getInputStream ()));
String inputLine ;
StringBuffer response = new StringBuffer ();
while (( inputLine = in . readLine ()) != null ) {
response . append ( inputLine );
}
in . close ();
System . out . println ( response . toString ());
package main
import (
"bytes"
"net/http"
)
func main () {
data := bytes . NewBuffer ([] byte { jsonReq })
req , err := http . NewRequest ( "POST" , "/news/injects/exercise/{exerciseId}" , data )
req . Header = headers
client := & http . Client {}
resp , err := client . Do ( req )
// ...
}
POST /news/injects/exercise/{exerciseId}
Parameters
Name
In
Type
Required
Description
exerciseId
path
string(uuid)
true
none
Responses
Status
Meaning
Description
Schema
default
Default
successful operation
None
This operation does not require authentication
saveNewsInjectPublications
Code samples
# You can also use wget
curl -X POST /news/injects/publications
POST /news/injects/publications HTTP / 1.1
fetch ( ' /news/injects/publications ' ,
{
method : ' POST '
})
. then ( function ( res ) {
return res . json ();
}). then ( function ( body ) {
console . log ( body );
});
require 'rest-client'
require 'json'
result = RestClient . post '/news/injects/publications' ,
params: {
}
p JSON . parse ( result )
import requests
r = requests . post ( '/news/injects/publications' )
print ( r . json ())
<?php
require 'vendor/autoload.php' ;
$client = new \ GuzzleHttp\Client ();
// Define array of request body.
$request_body = array ();
try {
$response = $client -> request ( 'POST' , '/news/injects/publications' , array (
'headers' => $headers ,
'json' => $request_body ,
)
);
print_r ( $response -> getBody () -> getContents ());
}
catch ( \ GuzzleHttp\Exception\BadResponseException $e ) {
// handle exception or api errors.
print_r ( $e -> getMessage ());
}
// ...
URL obj = new URL ( "/news/injects/publications" );
HttpURLConnection con = ( HttpURLConnection ) obj . openConnection ();
con . setRequestMethod ( "POST" );
int responseCode = con . getResponseCode ();
BufferedReader in = new BufferedReader (
new InputStreamReader ( con . getInputStream ()));
String inputLine ;
StringBuffer response = new StringBuffer ();
while (( inputLine = in . readLine ()) != null ) {
response . append ( inputLine );
}
in . close ();
System . out . println ( response . toString ());
package main
import (
"bytes"
"net/http"
)
func main () {
data := bytes . NewBuffer ([] byte { jsonReq })
req , err := http . NewRequest ( "POST" , "/news/injects/publications" , data )
req . Header = headers
client := & http . Client {}
resp , err := client . Do ( req )
// ...
}
POST /news/injects/publications
Responses
Status
Meaning
Description
Schema
default
Default
successful operation
None
This operation does not require authentication
getNewsInjection
Code samples
# You can also use wget
curl -X GET /news/injects/{ newsInjectId} /exercise/{ exerciseId} \
-H 'Accept: application/json'
GET /news/injects/{newsInjectId}/exercise/{exerciseId} HTTP / 1.1
Accept: application/json
const headers = {
' Accept ' : ' application/json '
};
fetch ( ' /news/injects/{newsInjectId}/exercise/{exerciseId} ' ,
{
method : ' GET ' ,
headers : headers
})
. then ( function ( res ) {
return res . json ();
}). then ( function ( body ) {
console . log ( body );
});
require 'rest-client'
require 'json'
headers = {
'Accept' => 'application/json'
}
result = RestClient . get '/news/injects/{newsInjectId}/exercise/{exerciseId}' ,
params: {
}, headers: headers
p JSON . parse ( result )
import requests
headers = {
'Accept' : 'application/json'
}
r = requests . get ( '/news/injects/{newsInjectId}/exercise/{exerciseId}' , headers = headers )
print ( r . json ())
<?php
require 'vendor/autoload.php' ;
$headers = array (
'Accept' => 'application/json' ,
);
$client = new \ GuzzleHttp\Client ();
// Define array of request body.
$request_body = array ();
try {
$response = $client -> request ( 'GET' , '/news/injects/{newsInjectId}/exercise/{exerciseId}' , array (
'headers' => $headers ,
'json' => $request_body ,
)
);
print_r ( $response -> getBody () -> getContents ());
}
catch ( \ GuzzleHttp\Exception\BadResponseException $e ) {
// handle exception or api errors.
print_r ( $e -> getMessage ());
}
// ...
URL obj = new URL ( "/news/injects/{newsInjectId}/exercise/{exerciseId}" );
HttpURLConnection con = ( HttpURLConnection ) obj . openConnection ();
con . setRequestMethod ( "GET" );
int responseCode = con . getResponseCode ();
BufferedReader in = new BufferedReader (
new InputStreamReader ( con . getInputStream ()));
String inputLine ;
StringBuffer response = new StringBuffer ();
while (( inputLine = in . readLine ()) != null ) {
response . append ( inputLine );
}
in . close ();
System . out . println ( response . toString ());
package main
import (
"bytes"
"net/http"
)
func main () {
headers := map [ string ][] string {
"Accept" : [] string { "application/json" },
}
data := bytes . NewBuffer ([] byte { jsonReq })
req , err := http . NewRequest ( "GET" , "/news/injects/{newsInjectId}/exercise/{exerciseId}" , data )
req . Header = headers
client := & http . Client {}
resp , err := client . Do ( req )
// ...
}
GET /news/injects/{newsInjectId}/exercise/{exerciseId}
Parameters
Name
In
Type
Required
Description
exerciseId
path
string(uuid)
true
none
newsInjectId
path
string(uuid)
true
none
teamId
query
string(uuid)
false
none
Example responses
200 Response
{
"id" : "497f6eca-6276-4993-bfeb-53cbbbba6f08" ,
"exerciseId" : "71ba10b8-c6bd-49fd-9742-f8dbc8ccdb47" ,
"title" : "string" ,
"description" : "string" ,
"timestamp" : 0 ,
"mediaId" : "string" ,
"thumbnailId" : "string" ,
"fileType" : "AUDIO" ,
"status" : "PUBLISHED" ,
"teams" : [
{
"teamId" : "a4ede8ba-7c0a-4485-8763-cbd9b282fbec" ,
"teamName" : "string" ,
"injectStatus" : "PUBLISHED" ,
"injectPublicationId" : "string" ,
"injectPublicationTimestamp" : 0
}
],
"isNew" : true
}
Responses
This operation does not require authentication
removeNewsInject
Code samples
# You can also use wget
curl -X DELETE /news/injects/{ newsInjectId} /exercise/{ exerciseId}
DELETE /news/injects/{newsInjectId}/exercise/{exerciseId} HTTP / 1.1
fetch ( ' /news/injects/{newsInjectId}/exercise/{exerciseId} ' ,
{
method : ' DELETE '
})
. then ( function ( res ) {
return res . json ();
}). then ( function ( body ) {
console . log ( body );
});
require 'rest-client'
require 'json'
result = RestClient . delete '/news/injects/{newsInjectId}/exercise/{exerciseId}' ,
params: {
}
p JSON . parse ( result )
import requests
r = requests . delete ( '/news/injects/{newsInjectId}/exercise/{exerciseId}' )
print ( r . json ())
<?php
require 'vendor/autoload.php' ;
$client = new \ GuzzleHttp\Client ();
// Define array of request body.
$request_body = array ();
try {
$response = $client -> request ( 'DELETE' , '/news/injects/{newsInjectId}/exercise/{exerciseId}' , array (
'headers' => $headers ,
'json' => $request_body ,
)
);
print_r ( $response -> getBody () -> getContents ());
}
catch ( \ GuzzleHttp\Exception\BadResponseException $e ) {
// handle exception or api errors.
print_r ( $e -> getMessage ());
}
// ...
URL obj = new URL ( "/news/injects/{newsInjectId}/exercise/{exerciseId}" );
HttpURLConnection con = ( HttpURLConnection ) obj . openConnection ();
con . setRequestMethod ( "DELETE" );
int responseCode = con . getResponseCode ();
BufferedReader in = new BufferedReader (
new InputStreamReader ( con . getInputStream ()));
String inputLine ;
StringBuffer response = new StringBuffer ();
while (( inputLine = in . readLine ()) != null ) {
response . append ( inputLine );
}
in . close ();
System . out . println ( response . toString ());
package main
import (
"bytes"
"net/http"
)
func main () {
data := bytes . NewBuffer ([] byte { jsonReq })
req , err := http . NewRequest ( "DELETE" , "/news/injects/{newsInjectId}/exercise/{exerciseId}" , data )
req . Header = headers
client := & http . Client {}
resp , err := client . Do ( req )
// ...
}
DELETE /news/injects/{newsInjectId}/exercise/{exerciseId}
Parameters
Name
In
Type
Required
Description
newsInjectId
path
string(uuid)
true
none
exerciseId
path
string(uuid)
true
none
Responses
Status
Meaning
Description
Schema
default
Default
successful operation
None
This operation does not require authentication
saveNewsInjectPublication
Code samples
# You can also use wget
curl -X POST /news/injects/{ newsInjectId} /exercise/{ exerciseId} /publication
POST /news/injects/{newsInjectId}/exercise/{exerciseId}/publication HTTP / 1.1
fetch ( ' /news/injects/{newsInjectId}/exercise/{exerciseId}/publication ' ,
{
method : ' POST '
})
. then ( function ( res ) {
return res . json ();
}). then ( function ( body ) {
console . log ( body );
});
require 'rest-client'
require 'json'
result = RestClient . post '/news/injects/{newsInjectId}/exercise/{exerciseId}/publication' ,
params: {
}
p JSON . parse ( result )
import requests
r = requests . post ( '/news/injects/{newsInjectId}/exercise/{exerciseId}/publication' )
print ( r . json ())
<?php
require 'vendor/autoload.php' ;
$client = new \ GuzzleHttp\Client ();
// Define array of request body.
$request_body = array ();
try {
$response = $client -> request ( 'POST' , '/news/injects/{newsInjectId}/exercise/{exerciseId}/publication' , array (
'headers' => $headers ,
'json' => $request_body ,
)
);
print_r ( $response -> getBody () -> getContents ());
}
catch ( \ GuzzleHttp\Exception\BadResponseException $e ) {
// handle exception or api errors.
print_r ( $e -> getMessage ());
}
// ...
URL obj = new URL ( "/news/injects/{newsInjectId}/exercise/{exerciseId}/publication" );
HttpURLConnection con = ( HttpURLConnection ) obj . openConnection ();
con . setRequestMethod ( "POST" );
int responseCode = con . getResponseCode ();
BufferedReader in = new BufferedReader (
new InputStreamReader ( con . getInputStream ()));
String inputLine ;
StringBuffer response = new StringBuffer ();
while (( inputLine = in . readLine ()) != null ) {
response . append ( inputLine );
}
in . close ();
System . out . println ( response . toString ());
package main
import (
"bytes"
"net/http"
)
func main () {
data := bytes . NewBuffer ([] byte { jsonReq })
req , err := http . NewRequest ( "POST" , "/news/injects/{newsInjectId}/exercise/{exerciseId}/publication" , data )
req . Header = headers
client := & http . Client {}
resp , err := client . Do ( req )
// ...
}
POST /news/injects/{newsInjectId}/exercise/{exerciseId}/publication
Parameters
Name
In
Type
Required
Description
exerciseId
path
string(uuid)
true
none
newsInjectId
path
string(uuid)
true
none
Responses
Status
Meaning
Description
Schema
default
Default
successful operation
None
This operation does not require authentication
unpublish
Code samples
# You can also use wget
curl -X DELETE /news/injects/{ newsInjectId} /exercise/{ exerciseId} /publication/{ publicationId}
DELETE /news/injects/{newsInjectId}/exercise/{exerciseId}/publication/{publicationId} HTTP / 1.1
fetch ( ' /news/injects/{newsInjectId}/exercise/{exerciseId}/publication/{publicationId} ' ,
{
method : ' DELETE '
})
. then ( function ( res ) {
return res . json ();
}). then ( function ( body ) {
console . log ( body );
});
require 'rest-client'
require 'json'
result = RestClient . delete '/news/injects/{newsInjectId}/exercise/{exerciseId}/publication/{publicationId}' ,
params: {
}
p JSON . parse ( result )
import requests
r = requests . delete ( '/news/injects/{newsInjectId}/exercise/{exerciseId}/publication/{publicationId}' )
print ( r . json ())
<?php
require 'vendor/autoload.php' ;
$client = new \ GuzzleHttp\Client ();
// Define array of request body.
$request_body = array ();
try {
$response = $client -> request ( 'DELETE' , '/news/injects/{newsInjectId}/exercise/{exerciseId}/publication/{publicationId}' , array (
'headers' => $headers ,
'json' => $request_body ,
)
);
print_r ( $response -> getBody () -> getContents ());
}
catch ( \ GuzzleHttp\Exception\BadResponseException $e ) {
// handle exception or api errors.
print_r ( $e -> getMessage ());
}
// ...
URL obj = new URL ( "/news/injects/{newsInjectId}/exercise/{exerciseId}/publication/{publicationId}" );
HttpURLConnection con = ( HttpURLConnection ) obj . openConnection ();
con . setRequestMethod ( "DELETE" );
int responseCode = con . getResponseCode ();
BufferedReader in = new BufferedReader (
new InputStreamReader ( con . getInputStream ()));
String inputLine ;
StringBuffer response = new StringBuffer ();
while (( inputLine = in . readLine ()) != null ) {
response . append ( inputLine );
}
in . close ();
System . out . println ( response . toString ());
package main
import (
"bytes"
"net/http"
)
func main () {
data := bytes . NewBuffer ([] byte { jsonReq })
req , err := http . NewRequest ( "DELETE" , "/news/injects/{newsInjectId}/exercise/{exerciseId}/publication/{publicationId}" , data )
req . Header = headers
client := & http . Client {}
resp , err := client . Do ( req )
// ...
}
DELETE /news/injects/{newsInjectId}/exercise/{exerciseId}/publication/{publicationId}
Parameters
Name
In
Type
Required
Description
exerciseId
path
string(uuid)
true
none
newsInjectId
path
string(uuid)
true
none
publicationId
path
string
true
none
Responses
Status
Meaning
Description
Schema
default
Default
successful operation
None
This operation does not require authentication
getNewsInjectionTeamsData
Code samples
# You can also use wget
curl -X GET /news/injects/{ newsInjectId} /exercise/{ exerciseId} /teams \
-H 'Accept: application/json'
GET /news/injects/{newsInjectId}/exercise/{exerciseId}/teams HTTP / 1.1
Accept: application/json
const headers = {
' Accept ' : ' application/json '
};
fetch ( ' /news/injects/{newsInjectId}/exercise/{exerciseId}/teams ' ,
{
method : ' GET ' ,
headers : headers
})
. then ( function ( res ) {
return res . json ();
}). then ( function ( body ) {
console . log ( body );
});
require 'rest-client'
require 'json'
headers = {
'Accept' => 'application/json'
}
result = RestClient . get '/news/injects/{newsInjectId}/exercise/{exerciseId}/teams' ,
params: {
}, headers: headers
p JSON . parse ( result )
import requests
headers = {
'Accept' : 'application/json'
}
r = requests . get ( '/news/injects/{newsInjectId}/exercise/{exerciseId}/teams' , headers = headers )
print ( r . json ())
<?php
require 'vendor/autoload.php' ;
$headers = array (
'Accept' => 'application/json' ,
);
$client = new \ GuzzleHttp\Client ();
// Define array of request body.
$request_body = array ();
try {
$response = $client -> request ( 'GET' , '/news/injects/{newsInjectId}/exercise/{exerciseId}/teams' , array (
'headers' => $headers ,
'json' => $request_body ,
)
);
print_r ( $response -> getBody () -> getContents ());
}
catch ( \ GuzzleHttp\Exception\BadResponseException $e ) {
// handle exception or api errors.
print_r ( $e -> getMessage ());
}
// ...
URL obj = new URL ( "/news/injects/{newsInjectId}/exercise/{exerciseId}/teams" );
HttpURLConnection con = ( HttpURLConnection ) obj . openConnection ();
con . setRequestMethod ( "GET" );
int responseCode = con . getResponseCode ();
BufferedReader in = new BufferedReader (
new InputStreamReader ( con . getInputStream ()));
String inputLine ;
StringBuffer response = new StringBuffer ();
while (( inputLine = in . readLine ()) != null ) {
response . append ( inputLine );
}
in . close ();
System . out . println ( response . toString ());
package main
import (
"bytes"
"net/http"
)
func main () {
headers := map [ string ][] string {
"Accept" : [] string { "application/json" },
}
data := bytes . NewBuffer ([] byte { jsonReq })
req , err := http . NewRequest ( "GET" , "/news/injects/{newsInjectId}/exercise/{exerciseId}/teams" , data )
req . Header = headers
client := & http . Client {}
resp , err := client . Do ( req )
// ...
}
GET /news/injects/{newsInjectId}/exercise/{exerciseId}/teams
Parameters
Name
In
Type
Required
Description
exerciseId
path
string(uuid)
true
none
newsInjectId
path
string(uuid)
true
none
Example responses
200 Response
[
{
"teamId" : "a4ede8ba-7c0a-4485-8763-cbd9b282fbec" ,
"teamName" : "string" ,
"injectStatus" : "PUBLISHED" ,
"injectPublicationId" : "string" ,
"injectPublicationTimestamp" : 0
}
]
Responses
Status
Meaning
Description
Schema
200
OK
successful operation
Inline
Response Schema
Status Code 200
Name
Type
Required
Restrictions
Description
anonymous
[NewsInjectTeam ]
false
none
none
» teamId
string(uuid)
false
none
none
» teamName
string
false
none
none
» injectStatus
string
false
none
none
» injectPublicationId
string
false
none
none
» injectPublicationTimestamp
integer(int64)
false
none
none
Enumerated Values
Property
Value
injectStatus
PUBLISHED
injectStatus
UNPUBLISHED
This operation does not require authentication
getUserPreferences
Code samples
# You can also use wget
curl -X GET /preferences \
-H 'Accept: application/json'
GET /preferences HTTP / 1.1
Accept: application/json
const headers = {
' Accept ' : ' application/json '
};
fetch ( ' /preferences ' ,
{
method : ' GET ' ,
headers : headers
})
. then ( function ( res ) {
return res . json ();
}). then ( function ( body ) {
console . log ( body );
});
require 'rest-client'
require 'json'
headers = {
'Accept' => 'application/json'
}
result = RestClient . get '/preferences' ,
params: {
}, headers: headers
p JSON . parse ( result )
import requests
headers = {
'Accept' : 'application/json'
}
r = requests . get ( '/preferences' , headers = headers )
print ( r . json ())
<?php
require 'vendor/autoload.php' ;
$headers = array (
'Accept' => 'application/json' ,
);
$client = new \ GuzzleHttp\Client ();
// Define array of request body.
$request_body = array ();
try {
$response = $client -> request ( 'GET' , '/preferences' , array (
'headers' => $headers ,
'json' => $request_body ,
)
);
print_r ( $response -> getBody () -> getContents ());
}
catch ( \ GuzzleHttp\Exception\BadResponseException $e ) {
// handle exception or api errors.
print_r ( $e -> getMessage ());
}
// ...
URL obj = new URL ( "/preferences" );
HttpURLConnection con = ( HttpURLConnection ) obj . openConnection ();
con . setRequestMethod ( "GET" );
int responseCode = con . getResponseCode ();
BufferedReader in = new BufferedReader (
new InputStreamReader ( con . getInputStream ()));
String inputLine ;
StringBuffer response = new StringBuffer ();
while (( inputLine = in . readLine ()) != null ) {
response . append ( inputLine );
}
in . close ();
System . out . println ( response . toString ());
package main
import (
"bytes"
"net/http"
)
func main () {
headers := map [ string ][] string {
"Accept" : [] string { "application/json" },
}
data := bytes . NewBuffer ([] byte { jsonReq })
req , err := http . NewRequest ( "GET" , "/preferences" , data )
req . Header = headers
client := & http . Client {}
resp , err := client . Do ( req )
// ...
}
GET /preferences
Example responses
200 Response
{
"defaultExerciseId" : "string" ,
"defaultTeamId" : "string" ,
"dateFormat" : "string" ,
"defaultListSize" : 0 ,
"isLightTheme" : true
}
Responses
Status
Meaning
Description
Schema
200
OK
{
"username":"tester",
"defaultExerciseId":"a43b1de0-1b7c-4ec7-b2bb-95ec6f36406e",
"defaultTeamId":"c5c95011-be78-425c-8cce-ee816a65930f"
}|PreferencesDTO |
This operation does not require authentication
saveUserPreferences
Code samples
# You can also use wget
curl -X PUT /preferences \
-H 'Accept: application/json'
PUT /preferences HTTP / 1.1
Accept: application/json
const headers = {
' Accept ' : ' application/json '
};
fetch ( ' /preferences ' ,
{
method : ' PUT ' ,
headers : headers
})
. then ( function ( res ) {
return res . json ();
}). then ( function ( body ) {
console . log ( body );
});
require 'rest-client'
require 'json'
headers = {
'Accept' => 'application/json'
}
result = RestClient . put '/preferences' ,
params: {
}, headers: headers
p JSON . parse ( result )
import requests
headers = {
'Accept' : 'application/json'
}
r = requests . put ( '/preferences' , headers = headers )
print ( r . json ())
<?php
require 'vendor/autoload.php' ;
$headers = array (
'Accept' => 'application/json' ,
);
$client = new \ GuzzleHttp\Client ();
// Define array of request body.
$request_body = array ();
try {
$response = $client -> request ( 'PUT' , '/preferences' , array (
'headers' => $headers ,
'json' => $request_body ,
)
);
print_r ( $response -> getBody () -> getContents ());
}
catch ( \ GuzzleHttp\Exception\BadResponseException $e ) {
// handle exception or api errors.
print_r ( $e -> getMessage ());
}
// ...
URL obj = new URL ( "/preferences" );
HttpURLConnection con = ( HttpURLConnection ) obj . openConnection ();
con . setRequestMethod ( "PUT" );
int responseCode = con . getResponseCode ();
BufferedReader in = new BufferedReader (
new InputStreamReader ( con . getInputStream ()));
String inputLine ;
StringBuffer response = new StringBuffer ();
while (( inputLine = in . readLine ()) != null ) {
response . append ( inputLine );
}
in . close ();
System . out . println ( response . toString ());
package main
import (
"bytes"
"net/http"
)
func main () {
headers := map [ string ][] string {
"Accept" : [] string { "application/json" },
}
data := bytes . NewBuffer ([] byte { jsonReq })
req , err := http . NewRequest ( "PUT" , "/preferences" , data )
req . Header = headers
client := & http . Client {}
resp , err := client . Do ( req )
// ...
}
PUT /preferences
Example responses
200 Response
{
"defaultExerciseId" : "string" ,
"defaultTeamId" : "string" ,
"dateFormat" : "string" ,
"defaultListSize" : 0 ,
"isLightTheme" : true
}
Responses
Status
Meaning
Description
Schema
200
OK
{
"username":"tester",
"defaultExerciseId":"a43b1de0-1b7c-4ec7-b2bb-95ec6f36406e",
"defaultTeamId":"c5c95011-be78-425c-8cce-ee816a65930f"
}|PreferencesDTO |
|400|Bad Request |if 'defaultExerciseId' or 'defaultTeamId' is not valid UUID|None|
|403|Forbidden |if 'username' doe not match authenticated user|None|
This operation does not require authentication
getProductKey
Code samples
# You can also use wget
curl -X GET /product-keys \
-H 'Accept: application/json'
GET /product-keys HTTP / 1.1
Accept: application/json
const headers = {
' Accept ' : ' application/json '
};
fetch ( ' /product-keys ' ,
{
method : ' GET ' ,
headers : headers
})
. then ( function ( res ) {
return res . json ();
}). then ( function ( body ) {
console . log ( body );
});
require 'rest-client'
require 'json'
headers = {
'Accept' => 'application/json'
}
result = RestClient . get '/product-keys' ,
params: {
}, headers: headers
p JSON . parse ( result )
import requests
headers = {
'Accept' : 'application/json'
}
r = requests . get ( '/product-keys' , headers = headers )
print ( r . json ())
<?php
require 'vendor/autoload.php' ;
$headers = array (
'Accept' => 'application/json' ,
);
$client = new \ GuzzleHttp\Client ();
// Define array of request body.
$request_body = array ();
try {
$response = $client -> request ( 'GET' , '/product-keys' , array (
'headers' => $headers ,
'json' => $request_body ,
)
);
print_r ( $response -> getBody () -> getContents ());
}
catch ( \ GuzzleHttp\Exception\BadResponseException $e ) {
// handle exception or api errors.
print_r ( $e -> getMessage ());
}
// ...
URL obj = new URL ( "/product-keys" );
HttpURLConnection con = ( HttpURLConnection ) obj . openConnection ();
con . setRequestMethod ( "GET" );
int responseCode = con . getResponseCode ();
BufferedReader in = new BufferedReader (
new InputStreamReader ( con . getInputStream ()));
String inputLine ;
StringBuffer response = new StringBuffer ();
while (( inputLine = in . readLine ()) != null ) {
response . append ( inputLine );
}
in . close ();
System . out . println ( response . toString ());
package main
import (
"bytes"
"net/http"
)
func main () {
headers := map [ string ][] string {
"Accept" : [] string { "application/json" },
}
data := bytes . NewBuffer ([] byte { jsonReq })
req , err := http . NewRequest ( "GET" , "/product-keys" , data )
req . Header = headers
client := & http . Client {}
resp , err := client . Do ( req )
// ...
}
GET /product-keys
Example responses
200 Response
{
"key" : "string" ,
"licensedTo" : "string" ,
"validUntil" : "string" ,
"numberOfUsers" : 0
}
Responses
This operation does not require authentication
saveProductKey
Code samples
# You can also use wget
curl -X PUT /product-keys
PUT /product-keys HTTP / 1.1
fetch ( ' /product-keys ' ,
{
method : ' PUT '
})
. then ( function ( res ) {
return res . json ();
}). then ( function ( body ) {
console . log ( body );
});
require 'rest-client'
require 'json'
result = RestClient . put '/product-keys' ,
params: {
}
p JSON . parse ( result )
import requests
r = requests . put ( '/product-keys' )
print ( r . json ())
<?php
require 'vendor/autoload.php' ;
$client = new \ GuzzleHttp\Client ();
// Define array of request body.
$request_body = array ();
try {
$response = $client -> request ( 'PUT' , '/product-keys' , array (
'headers' => $headers ,
'json' => $request_body ,
)
);
print_r ( $response -> getBody () -> getContents ());
}
catch ( \ GuzzleHttp\Exception\BadResponseException $e ) {
// handle exception or api errors.
print_r ( $e -> getMessage ());
}
// ...
URL obj = new URL ( "/product-keys" );
HttpURLConnection con = ( HttpURLConnection ) obj . openConnection ();
con . setRequestMethod ( "PUT" );
int responseCode = con . getResponseCode ();
BufferedReader in = new BufferedReader (
new InputStreamReader ( con . getInputStream ()));
String inputLine ;
StringBuffer response = new StringBuffer ();
while (( inputLine = in . readLine ()) != null ) {
response . append ( inputLine );
}
in . close ();
System . out . println ( response . toString ());
package main
import (
"bytes"
"net/http"
)
func main () {
data := bytes . NewBuffer ([] byte { jsonReq })
req , err := http . NewRequest ( "PUT" , "/product-keys" , data )
req . Header = headers
client := & http . Client {}
resp , err := client . Do ( req )
// ...
}
PUT /product-keys
Responses
Status
Meaning
Description
Schema
default
Default
successful operation
None
This operation does not require authentication
getQueuePosition
Code samples
# You can also use wget
curl -X GET /queue/{ exerciseId} \
-H 'Accept: */*'
GET /queue/{exerciseId} HTTP / 1.1
Accept: */*
const headers = {
' Accept ' : ' */* '
};
fetch ( ' /queue/{exerciseId} ' ,
{
method : ' GET ' ,
headers : headers
})
. then ( function ( res ) {
return res . json ();
}). then ( function ( body ) {
console . log ( body );
});
require 'rest-client'
require 'json'
headers = {
'Accept' => '*/*'
}
result = RestClient . get '/queue/{exerciseId}' ,
params: {
}, headers: headers
p JSON . parse ( result )
import requests
headers = {
'Accept' : '*/*'
}
r = requests . get ( '/queue/{exerciseId}' , headers = headers )
print ( r . json ())
<?php
require 'vendor/autoload.php' ;
$headers = array (
'Accept' => '*/*' ,
);
$client = new \ GuzzleHttp\Client ();
// Define array of request body.
$request_body = array ();
try {
$response = $client -> request ( 'GET' , '/queue/{exerciseId}' , array (
'headers' => $headers ,
'json' => $request_body ,
)
);
print_r ( $response -> getBody () -> getContents ());
}
catch ( \ GuzzleHttp\Exception\BadResponseException $e ) {
// handle exception or api errors.
print_r ( $e -> getMessage ());
}
// ...
URL obj = new URL ( "/queue/{exerciseId}" );
HttpURLConnection con = ( HttpURLConnection ) obj . openConnection ();
con . setRequestMethod ( "GET" );
int responseCode = con . getResponseCode ();
BufferedReader in = new BufferedReader (
new InputStreamReader ( con . getInputStream ()));
String inputLine ;
StringBuffer response = new StringBuffer ();
while (( inputLine = in . readLine ()) != null ) {
response . append ( inputLine );
}
in . close ();
System . out . println ( response . toString ());
package main
import (
"bytes"
"net/http"
)
func main () {
headers := map [ string ][] string {
"Accept" : [] string { "*/*" },
}
data := bytes . NewBuffer ([] byte { jsonReq })
req , err := http . NewRequest ( "GET" , "/queue/{exerciseId}" , data )
req . Header = headers
client := & http . Client {}
resp , err := client . Do ( req )
// ...
}
GET /queue/{exerciseId}
Parameters
Name
In
Type
Required
Description
exerciseId
path
string(uuid)
true
none
Example responses
200 Response
Responses
Status
Meaning
Description
Schema
200
OK
successful operation
QueueResponse
This operation does not require authentication
getAssignableRoles
Code samples
# You can also use wget
curl -X GET /roles \
-H 'Accept: application/json'
GET /roles HTTP / 1.1
Accept: application/json
const headers = {
' Accept ' : ' application/json '
};
fetch ( ' /roles ' ,
{
method : ' GET ' ,
headers : headers
})
. then ( function ( res ) {
return res . json ();
}). then ( function ( body ) {
console . log ( body );
});
require 'rest-client'
require 'json'
headers = {
'Accept' => 'application/json'
}
result = RestClient . get '/roles' ,
params: {
}, headers: headers
p JSON . parse ( result )
import requests
headers = {
'Accept' : 'application/json'
}
r = requests . get ( '/roles' , headers = headers )
print ( r . json ())
<?php
require 'vendor/autoload.php' ;
$headers = array (
'Accept' => 'application/json' ,
);
$client = new \ GuzzleHttp\Client ();
// Define array of request body.
$request_body = array ();
try {
$response = $client -> request ( 'GET' , '/roles' , array (
'headers' => $headers ,
'json' => $request_body ,
)
);
print_r ( $response -> getBody () -> getContents ());
}
catch ( \ GuzzleHttp\Exception\BadResponseException $e ) {
// handle exception or api errors.
print_r ( $e -> getMessage ());
}
// ...
URL obj = new URL ( "/roles" );
HttpURLConnection con = ( HttpURLConnection ) obj . openConnection ();
con . setRequestMethod ( "GET" );
int responseCode = con . getResponseCode ();
BufferedReader in = new BufferedReader (
new InputStreamReader ( con . getInputStream ()));
String inputLine ;
StringBuffer response = new StringBuffer ();
while (( inputLine = in . readLine ()) != null ) {
response . append ( inputLine );
}
in . close ();
System . out . println ( response . toString ());
package main
import (
"bytes"
"net/http"
)
func main () {
headers := map [ string ][] string {
"Accept" : [] string { "application/json" },
}
data := bytes . NewBuffer ([] byte { jsonReq })
req , err := http . NewRequest ( "GET" , "/roles" , data )
req . Header = headers
client := & http . Client {}
resp , err := client . Do ( req )
// ...
}
GET /roles
Example responses
200 Response
{
"roles" : [
{
"code" : "string" ,
"description" : "string" ,
"domains" : [
"GN_EXERCISE"
]
}
],
"targetsByDomain" : {
"property1" : [
{
"targets" : [
{
"id" : "string" ,
"name" : "string"
}
],
"parentDomain" : "GN_EXERCISE" ,
"parentTargetId" : "string" ,
"parentTargetName" : "string"
}
],
"property2" : [
{
"targets" : [
{
"id" : "string" ,
"name" : "string"
}
],
"parentDomain" : "GN_EXERCISE" ,
"parentTargetId" : "string" ,
"parentTargetName" : "string"
}
]
}
}
Responses
This operation does not require authentication
getSettings
Code samples
# You can also use wget
curl -X GET /settings \
-H 'Accept: application/json'
GET /settings HTTP / 1.1
Accept: application/json
const headers = {
' Accept ' : ' application/json '
};
fetch ( ' /settings ' ,
{
method : ' GET ' ,
headers : headers
})
. then ( function ( res ) {
return res . json ();
}). then ( function ( body ) {
console . log ( body );
});
require 'rest-client'
require 'json'
headers = {
'Accept' => 'application/json'
}
result = RestClient . get '/settings' ,
params: {
}, headers: headers
p JSON . parse ( result )
import requests
headers = {
'Accept' : 'application/json'
}
r = requests . get ( '/settings' , headers = headers )
print ( r . json ())
<?php
require 'vendor/autoload.php' ;
$headers = array (
'Accept' => 'application/json' ,
);
$client = new \ GuzzleHttp\Client ();
// Define array of request body.
$request_body = array ();
try {
$response = $client -> request ( 'GET' , '/settings' , array (
'headers' => $headers ,
'json' => $request_body ,
)
);
print_r ( $response -> getBody () -> getContents ());
}
catch ( \ GuzzleHttp\Exception\BadResponseException $e ) {
// handle exception or api errors.
print_r ( $e -> getMessage ());
}
// ...
URL obj = new URL ( "/settings" );
HttpURLConnection con = ( HttpURLConnection ) obj . openConnection ();
con . setRequestMethod ( "GET" );
int responseCode = con . getResponseCode ();
BufferedReader in = new BufferedReader (
new InputStreamReader ( con . getInputStream ()));
String inputLine ;
StringBuffer response = new StringBuffer ();
while (( inputLine = in . readLine ()) != null ) {
response . append ( inputLine );
}
in . close ();
System . out . println ( response . toString ());
package main
import (
"bytes"
"net/http"
)
func main () {
headers := map [ string ][] string {
"Accept" : [] string { "application/json" },
}
data := bytes . NewBuffer ([] byte { jsonReq })
req , err := http . NewRequest ( "GET" , "/settings" , data )
req . Header = headers
client := & http . Client {}
resp , err := client . Do ( req )
// ...
}
GET /settings
Example responses
200 Response
{
"gamenetEnabled" : true ,
"pentestEnabled" : true ,
"vulnerabilityScanEnabled" : true ,
"ldapEnabled" : true ,
"observerEnabled" : true ,
"vlmEnabled" : true ,
"gamenetSettings" : {
"soundOnTeamChangeEnabled" : true ,
"selectedSoundId" : "string" ,
"ctfPodiumFirstPlaceSoundEnabled" : true ,
"ctfPodiumFirstPlaceSoundId" : "string" ,
"ctfPodiumSecondThirdPlaceSoundEnabled" : true ,
"ctfPodiumSecondThirdPlaceSoundId" : "string" ,
"exerciseRefreshInterval" : 0 ,
"scoringTimelineWidgetRefreshInterval" : 0
},
"ldapSettings" : {
"principal" : "string" ,
"searchBase" : "string" ,
"principalSuffix" : "string" ,
"urls" : [
"string"
],
"groupMappings" : [
{
"role" : "string" ,
"distinguishedName" : "string"
}
],
"useSavedPassword" : true
},
"vlmSettings" : {
"url" : "string" ,
"serviceKey" : "string" ,
"localWebConsoleProxyEnabled" : true
},
"observerSettings" : {
"key" : "string" ,
"enabledViews" : [
"CAMPAIGN_LIVE"
],
"exerciseId" : "71ba10b8-c6bd-49fd-9742-f8dbc8ccdb47"
},
"apiTokens" : [
{
"name" : "string" ,
"value" : "string" ,
"timestamp" : 0 ,
"signingKey" : {
"value" : "string" ,
"timestamp" : 0
}
}
],
"widgetRefreshInterval" : 0 ,
"timestamp" : 0 ,
"applicationUrl" : "string" ,
"customLogoImageId" : "string" ,
"isLightTheme" : true
}
Responses
Status
Meaning
Description
Schema
200
OK
successful operation
SettingsDTO
This operation does not require authentication
saveSettings
Code samples
# You can also use wget
curl -X PUT /settings \
-H 'Accept: */*'
PUT /settings HTTP / 1.1
Accept: */*
const headers = {
' Accept ' : ' */* '
};
fetch ( ' /settings ' ,
{
method : ' PUT ' ,
headers : headers
})
. then ( function ( res ) {
return res . json ();
}). then ( function ( body ) {
console . log ( body );
});
require 'rest-client'
require 'json'
headers = {
'Accept' => '*/*'
}
result = RestClient . put '/settings' ,
params: {
}, headers: headers
p JSON . parse ( result )
import requests
headers = {
'Accept' : '*/*'
}
r = requests . put ( '/settings' , headers = headers )
print ( r . json ())
<?php
require 'vendor/autoload.php' ;
$headers = array (
'Accept' => '*/*' ,
);
$client = new \ GuzzleHttp\Client ();
// Define array of request body.
$request_body = array ();
try {
$response = $client -> request ( 'PUT' , '/settings' , array (
'headers' => $headers ,
'json' => $request_body ,
)
);
print_r ( $response -> getBody () -> getContents ());
}
catch ( \ GuzzleHttp\Exception\BadResponseException $e ) {
// handle exception or api errors.
print_r ( $e -> getMessage ());
}
// ...
URL obj = new URL ( "/settings" );
HttpURLConnection con = ( HttpURLConnection ) obj . openConnection ();
con . setRequestMethod ( "PUT" );
int responseCode = con . getResponseCode ();
BufferedReader in = new BufferedReader (
new InputStreamReader ( con . getInputStream ()));
String inputLine ;
StringBuffer response = new StringBuffer ();
while (( inputLine = in . readLine ()) != null ) {
response . append ( inputLine );
}
in . close ();
System . out . println ( response . toString ());
package main
import (
"bytes"
"net/http"
)
func main () {
headers := map [ string ][] string {
"Accept" : [] string { "*/*" },
}
data := bytes . NewBuffer ([] byte { jsonReq })
req , err := http . NewRequest ( "PUT" , "/settings" , data )
req . Header = headers
client := & http . Client {}
resp , err := client . Do ( req )
// ...
}
PUT /settings
Example responses
200 Response
Responses
Status
Meaning
Description
Schema
200
OK
successful operation
SettingsDTO
This operation does not require authentication
checkObserver
Code samples
# You can also use wget
curl -X GET /settings/check-observer \
-H 'Accept: */*'
GET /settings/check-observer HTTP / 1.1
Accept: */*
const headers = {
' Accept ' : ' */* '
};
fetch ( ' /settings/check-observer ' ,
{
method : ' GET ' ,
headers : headers
})
. then ( function ( res ) {
return res . json ();
}). then ( function ( body ) {
console . log ( body );
});
require 'rest-client'
require 'json'
headers = {
'Accept' => '*/*'
}
result = RestClient . get '/settings/check-observer' ,
params: {
}, headers: headers
p JSON . parse ( result )
import requests
headers = {
'Accept' : '*/*'
}
r = requests . get ( '/settings/check-observer' , headers = headers )
print ( r . json ())
<?php
require 'vendor/autoload.php' ;
$headers = array (
'Accept' => '*/*' ,
);
$client = new \ GuzzleHttp\Client ();
// Define array of request body.
$request_body = array ();
try {
$response = $client -> request ( 'GET' , '/settings/check-observer' , array (
'headers' => $headers ,
'json' => $request_body ,
)
);
print_r ( $response -> getBody () -> getContents ());
}
catch ( \ GuzzleHttp\Exception\BadResponseException $e ) {
// handle exception or api errors.
print_r ( $e -> getMessage ());
}
// ...
URL obj = new URL ( "/settings/check-observer" );
HttpURLConnection con = ( HttpURLConnection ) obj . openConnection ();
con . setRequestMethod ( "GET" );
int responseCode = con . getResponseCode ();
BufferedReader in = new BufferedReader (
new InputStreamReader ( con . getInputStream ()));
String inputLine ;
StringBuffer response = new StringBuffer ();
while (( inputLine = in . readLine ()) != null ) {
response . append ( inputLine );
}
in . close ();
System . out . println ( response . toString ());
package main
import (
"bytes"
"net/http"
)
func main () {
headers := map [ string ][] string {
"Accept" : [] string { "*/*" },
}
data := bytes . NewBuffer ([] byte { jsonReq })
req , err := http . NewRequest ( "GET" , "/settings/check-observer" , data )
req . Header = headers
client := & http . Client {}
resp , err := client . Do ( req )
// ...
}
GET /settings/check-observer
Parameters
Name
In
Type
Required
Description
observerKey
query
string
false
none
Example responses
200 Response
Responses
Status
Meaning
Description
Schema
200
OK
successful operation
boolean
This operation does not require authentication
getCustomLogo
Code samples
# You can also use wget
curl -X GET /settings/custom-logo
GET /settings/custom-logo HTTP / 1.1
fetch ( ' /settings/custom-logo ' ,
{
method : ' GET '
})
. then ( function ( res ) {
return res . json ();
}). then ( function ( body ) {
console . log ( body );
});
require 'rest-client'
require 'json'
result = RestClient . get '/settings/custom-logo' ,
params: {
}
p JSON . parse ( result )
import requests
r = requests . get ( '/settings/custom-logo' )
print ( r . json ())
<?php
require 'vendor/autoload.php' ;
$client = new \ GuzzleHttp\Client ();
// Define array of request body.
$request_body = array ();
try {
$response = $client -> request ( 'GET' , '/settings/custom-logo' , array (
'headers' => $headers ,
'json' => $request_body ,
)
);
print_r ( $response -> getBody () -> getContents ());
}
catch ( \ GuzzleHttp\Exception\BadResponseException $e ) {
// handle exception or api errors.
print_r ( $e -> getMessage ());
}
// ...
URL obj = new URL ( "/settings/custom-logo" );
HttpURLConnection con = ( HttpURLConnection ) obj . openConnection ();
con . setRequestMethod ( "GET" );
int responseCode = con . getResponseCode ();
BufferedReader in = new BufferedReader (
new InputStreamReader ( con . getInputStream ()));
String inputLine ;
StringBuffer response = new StringBuffer ();
while (( inputLine = in . readLine ()) != null ) {
response . append ( inputLine );
}
in . close ();
System . out . println ( response . toString ());
package main
import (
"bytes"
"net/http"
)
func main () {
data := bytes . NewBuffer ([] byte { jsonReq })
req , err := http . NewRequest ( "GET" , "/settings/custom-logo" , data )
req . Header = headers
client := & http . Client {}
resp , err := client . Do ( req )
// ...
}
GET /settings/custom-logo
Responses
Status
Meaning
Description
Schema
default
Default
successful operation
None
This operation does not require authentication
getFile
Code samples
# You can also use wget
curl -X GET /settings/files/{ fileId}
GET /settings/files/{fileId} HTTP / 1.1
fetch ( ' /settings/files/{fileId} ' ,
{
method : ' GET '
})
. then ( function ( res ) {
return res . json ();
}). then ( function ( body ) {
console . log ( body );
});
require 'rest-client'
require 'json'
result = RestClient . get '/settings/files/{fileId}' ,
params: {
}
p JSON . parse ( result )
import requests
r = requests . get ( '/settings/files/{fileId}' )
print ( r . json ())
<?php
require 'vendor/autoload.php' ;
$client = new \ GuzzleHttp\Client ();
// Define array of request body.
$request_body = array ();
try {
$response = $client -> request ( 'GET' , '/settings/files/{fileId}' , array (
'headers' => $headers ,
'json' => $request_body ,
)
);
print_r ( $response -> getBody () -> getContents ());
}
catch ( \ GuzzleHttp\Exception\BadResponseException $e ) {
// handle exception or api errors.
print_r ( $e -> getMessage ());
}
// ...
URL obj = new URL ( "/settings/files/{fileId}" );
HttpURLConnection con = ( HttpURLConnection ) obj . openConnection ();
con . setRequestMethod ( "GET" );
int responseCode = con . getResponseCode ();
BufferedReader in = new BufferedReader (
new InputStreamReader ( con . getInputStream ()));
String inputLine ;
StringBuffer response = new StringBuffer ();
while (( inputLine = in . readLine ()) != null ) {
response . append ( inputLine );
}
in . close ();
System . out . println ( response . toString ());
package main
import (
"bytes"
"net/http"
)
func main () {
data := bytes . NewBuffer ([] byte { jsonReq })
req , err := http . NewRequest ( "GET" , "/settings/files/{fileId}" , data )
req . Header = headers
client := & http . Client {}
resp , err := client . Do ( req )
// ...
}
GET /settings/files/{fileId}
Parameters
Name
In
Type
Required
Description
fileId
path
string
true
none
Responses
Status
Meaning
Description
Schema
default
Default
successful operation
None
This operation does not require authentication
deleteFile
Code samples
# You can also use wget
curl -X DELETE /settings/files/{ fileId}
DELETE /settings/files/{fileId} HTTP / 1.1
fetch ( ' /settings/files/{fileId} ' ,
{
method : ' DELETE '
})
. then ( function ( res ) {
return res . json ();
}). then ( function ( body ) {
console . log ( body );
});
require 'rest-client'
require 'json'
result = RestClient . delete '/settings/files/{fileId}' ,
params: {
}
p JSON . parse ( result )
import requests
r = requests . delete ( '/settings/files/{fileId}' )
print ( r . json ())
<?php
require 'vendor/autoload.php' ;
$client = new \ GuzzleHttp\Client ();
// Define array of request body.
$request_body = array ();
try {
$response = $client -> request ( 'DELETE' , '/settings/files/{fileId}' , array (
'headers' => $headers ,
'json' => $request_body ,
)
);
print_r ( $response -> getBody () -> getContents ());
}
catch ( \ GuzzleHttp\Exception\BadResponseException $e ) {
// handle exception or api errors.
print_r ( $e -> getMessage ());
}
// ...
URL obj = new URL ( "/settings/files/{fileId}" );
HttpURLConnection con = ( HttpURLConnection ) obj . openConnection ();
con . setRequestMethod ( "DELETE" );
int responseCode = con . getResponseCode ();
BufferedReader in = new BufferedReader (
new InputStreamReader ( con . getInputStream ()));
String inputLine ;
StringBuffer response = new StringBuffer ();
while (( inputLine = in . readLine ()) != null ) {
response . append ( inputLine );
}
in . close ();
System . out . println ( response . toString ());
package main
import (
"bytes"
"net/http"
)
func main () {
data := bytes . NewBuffer ([] byte { jsonReq })
req , err := http . NewRequest ( "DELETE" , "/settings/files/{fileId}" , data )
req . Header = headers
client := & http . Client {}
resp , err := client . Do ( req )
// ...
}
DELETE /settings/files/{fileId}
Parameters
Name
In
Type
Required
Description
fileId
path
string
true
none
Responses
Status
Meaning
Description
Schema
default
Default
successful operation
None
This operation does not require authentication
generateApiTokenSigningKey
Code samples
# You can also use wget
curl -X GET /settings/generate-signing-key \
-H 'Accept: application/json'
GET /settings/generate-signing-key HTTP / 1.1
Accept: application/json
const headers = {
' Accept ' : ' application/json '
};
fetch ( ' /settings/generate-signing-key ' ,
{
method : ' GET ' ,
headers : headers
})
. then ( function ( res ) {
return res . json ();
}). then ( function ( body ) {
console . log ( body );
});
require 'rest-client'
require 'json'
headers = {
'Accept' => 'application/json'
}
result = RestClient . get '/settings/generate-signing-key' ,
params: {
}, headers: headers
p JSON . parse ( result )
import requests
headers = {
'Accept' : 'application/json'
}
r = requests . get ( '/settings/generate-signing-key' , headers = headers )
print ( r . json ())
<?php
require 'vendor/autoload.php' ;
$headers = array (
'Accept' => 'application/json' ,
);
$client = new \ GuzzleHttp\Client ();
// Define array of request body.
$request_body = array ();
try {
$response = $client -> request ( 'GET' , '/settings/generate-signing-key' , array (
'headers' => $headers ,
'json' => $request_body ,
)
);
print_r ( $response -> getBody () -> getContents ());
}
catch ( \ GuzzleHttp\Exception\BadResponseException $e ) {
// handle exception or api errors.
print_r ( $e -> getMessage ());
}
// ...
URL obj = new URL ( "/settings/generate-signing-key" );
HttpURLConnection con = ( HttpURLConnection ) obj . openConnection ();
con . setRequestMethod ( "GET" );
int responseCode = con . getResponseCode ();
BufferedReader in = new BufferedReader (
new InputStreamReader ( con . getInputStream ()));
String inputLine ;
StringBuffer response = new StringBuffer ();
while (( inputLine = in . readLine ()) != null ) {
response . append ( inputLine );
}
in . close ();
System . out . println ( response . toString ());
package main
import (
"bytes"
"net/http"
)
func main () {
headers := map [ string ][] string {
"Accept" : [] string { "application/json" },
}
data := bytes . NewBuffer ([] byte { jsonReq })
req , err := http . NewRequest ( "GET" , "/settings/generate-signing-key" , data )
req . Header = headers
client := & http . Client {}
resp , err := client . Do ( req )
// ...
}
GET /settings/generate-signing-key
Example responses
200 Response
{
"value" : "string" ,
"timestamp" : 0
}
Responses
Status
Meaning
Description
Schema
200
OK
successful operation
SigningKey
This operation does not require authentication
generateApiToken
Code samples
# You can also use wget
curl -X GET /settings/generate-token \
-H 'Accept: application/json'
GET /settings/generate-token HTTP / 1.1
Accept: application/json
const headers = {
' Accept ' : ' application/json '
};
fetch ( ' /settings/generate-token ' ,
{
method : ' GET ' ,
headers : headers
})
. then ( function ( res ) {
return res . json ();
}). then ( function ( body ) {
console . log ( body );
});
require 'rest-client'
require 'json'
headers = {
'Accept' => 'application/json'
}
result = RestClient . get '/settings/generate-token' ,
params: {
}, headers: headers
p JSON . parse ( result )
import requests
headers = {
'Accept' : 'application/json'
}
r = requests . get ( '/settings/generate-token' , headers = headers )
print ( r . json ())
<?php
require 'vendor/autoload.php' ;
$headers = array (
'Accept' => 'application/json' ,
);
$client = new \ GuzzleHttp\Client ();
// Define array of request body.
$request_body = array ();
try {
$response = $client -> request ( 'GET' , '/settings/generate-token' , array (
'headers' => $headers ,
'json' => $request_body ,
)
);
print_r ( $response -> getBody () -> getContents ());
}
catch ( \ GuzzleHttp\Exception\BadResponseException $e ) {
// handle exception or api errors.
print_r ( $e -> getMessage ());
}
// ...
URL obj = new URL ( "/settings/generate-token" );
HttpURLConnection con = ( HttpURLConnection ) obj . openConnection ();
con . setRequestMethod ( "GET" );
int responseCode = con . getResponseCode ();
BufferedReader in = new BufferedReader (
new InputStreamReader ( con . getInputStream ()));
String inputLine ;
StringBuffer response = new StringBuffer ();
while (( inputLine = in . readLine ()) != null ) {
response . append ( inputLine );
}
in . close ();
System . out . println ( response . toString ());
package main
import (
"bytes"
"net/http"
)
func main () {
headers := map [ string ][] string {
"Accept" : [] string { "application/json" },
}
data := bytes . NewBuffer ([] byte { jsonReq })
req , err := http . NewRequest ( "GET" , "/settings/generate-token" , data )
req . Header = headers
client := & http . Client {}
resp , err := client . Do ( req )
// ...
}
GET /settings/generate-token
Example responses
200 Response
{
"name" : "string" ,
"value" : "string" ,
"timestamp" : 0 ,
"signingKey" : {
"value" : "string" ,
"timestamp" : 0
}
}
Responses
Status
Meaning
Description
Schema
200
OK
successful operation
ApiToken
This operation does not require authentication
getObserverSettings
Code samples
# You can also use wget
curl -X GET /settings/observer \
-H 'Accept: */*'
GET /settings/observer HTTP / 1.1
Accept: */*
const headers = {
' Accept ' : ' */* '
};
fetch ( ' /settings/observer ' ,
{
method : ' GET ' ,
headers : headers
})
. then ( function ( res ) {
return res . json ();
}). then ( function ( body ) {
console . log ( body );
});
require 'rest-client'
require 'json'
headers = {
'Accept' => '*/*'
}
result = RestClient . get '/settings/observer' ,
params: {
}, headers: headers
p JSON . parse ( result )
import requests
headers = {
'Accept' : '*/*'
}
r = requests . get ( '/settings/observer' , headers = headers )
print ( r . json ())
<?php
require 'vendor/autoload.php' ;
$headers = array (
'Accept' => '*/*' ,
);
$client = new \ GuzzleHttp\Client ();
// Define array of request body.
$request_body = array ();
try {
$response = $client -> request ( 'GET' , '/settings/observer' , array (
'headers' => $headers ,
'json' => $request_body ,
)
);
print_r ( $response -> getBody () -> getContents ());
}
catch ( \ GuzzleHttp\Exception\BadResponseException $e ) {
// handle exception or api errors.
print_r ( $e -> getMessage ());
}
// ...
URL obj = new URL ( "/settings/observer" );
HttpURLConnection con = ( HttpURLConnection ) obj . openConnection ();
con . setRequestMethod ( "GET" );
int responseCode = con . getResponseCode ();
BufferedReader in = new BufferedReader (
new InputStreamReader ( con . getInputStream ()));
String inputLine ;
StringBuffer response = new StringBuffer ();
while (( inputLine = in . readLine ()) != null ) {
response . append ( inputLine );
}
in . close ();
System . out . println ( response . toString ());
package main
import (
"bytes"
"net/http"
)
func main () {
headers := map [ string ][] string {
"Accept" : [] string { "*/*" },
}
data := bytes . NewBuffer ([] byte { jsonReq })
req , err := http . NewRequest ( "GET" , "/settings/observer" , data )
req . Header = headers
client := & http . Client {}
resp , err := client . Do ( req )
// ...
}
GET /settings/observer
Example responses
200 Response
Responses
This operation does not require authentication
getSoundList
Code samples
# You can also use wget
curl -X GET /settings/sounds \
-H 'Accept: application/json'
GET /settings/sounds HTTP / 1.1
Accept: application/json
const headers = {
' Accept ' : ' application/json '
};
fetch ( ' /settings/sounds ' ,
{
method : ' GET ' ,
headers : headers
})
. then ( function ( res ) {
return res . json ();
}). then ( function ( body ) {
console . log ( body );
});
require 'rest-client'
require 'json'
headers = {
'Accept' => 'application/json'
}
result = RestClient . get '/settings/sounds' ,
params: {
}, headers: headers
p JSON . parse ( result )
import requests
headers = {
'Accept' : 'application/json'
}
r = requests . get ( '/settings/sounds' , headers = headers )
print ( r . json ())
<?php
require 'vendor/autoload.php' ;
$headers = array (
'Accept' => 'application/json' ,
);
$client = new \ GuzzleHttp\Client ();
// Define array of request body.
$request_body = array ();
try {
$response = $client -> request ( 'GET' , '/settings/sounds' , array (
'headers' => $headers ,
'json' => $request_body ,
)
);
print_r ( $response -> getBody () -> getContents ());
}
catch ( \ GuzzleHttp\Exception\BadResponseException $e ) {
// handle exception or api errors.
print_r ( $e -> getMessage ());
}
// ...
URL obj = new URL ( "/settings/sounds" );
HttpURLConnection con = ( HttpURLConnection ) obj . openConnection ();
con . setRequestMethod ( "GET" );
int responseCode = con . getResponseCode ();
BufferedReader in = new BufferedReader (
new InputStreamReader ( con . getInputStream ()));
String inputLine ;
StringBuffer response = new StringBuffer ();
while (( inputLine = in . readLine ()) != null ) {
response . append ( inputLine );
}
in . close ();
System . out . println ( response . toString ());
package main
import (
"bytes"
"net/http"
)
func main () {
headers := map [ string ][] string {
"Accept" : [] string { "application/json" },
}
data := bytes . NewBuffer ([] byte { jsonReq })
req , err := http . NewRequest ( "GET" , "/settings/sounds" , data )
req . Header = headers
client := & http . Client {}
resp , err := client . Do ( req )
// ...
}
GET /settings/sounds
Example responses
200 Response
[
{
"id" : "string" ,
"name" : "string" ,
"size" : 0
}
]
Responses
Status
Meaning
Description
Schema
200
OK
successful operation
Inline
Response Schema
Status Code 200
Name
Type
Required
Restrictions
Description
anonymous
[IsaFileMetaData ]
false
none
none
» id
string
false
none
none
» name
string
false
none
none
» size
integer(int32)
false
none
none
This operation does not require authentication
uploadSound
Code samples
# You can also use wget
curl -X POST /settings/sounds \
-H 'Accept: application/json'
POST /settings/sounds HTTP / 1.1
Accept: application/json
const headers = {
' Accept ' : ' application/json '
};
fetch ( ' /settings/sounds ' ,
{
method : ' POST ' ,
headers : headers
})
. then ( function ( res ) {
return res . json ();
}). then ( function ( body ) {
console . log ( body );
});
require 'rest-client'
require 'json'
headers = {
'Accept' => 'application/json'
}
result = RestClient . post '/settings/sounds' ,
params: {
}, headers: headers
p JSON . parse ( result )
import requests
headers = {
'Accept' : 'application/json'
}
r = requests . post ( '/settings/sounds' , headers = headers )
print ( r . json ())
<?php
require 'vendor/autoload.php' ;
$headers = array (
'Accept' => 'application/json' ,
);
$client = new \ GuzzleHttp\Client ();
// Define array of request body.
$request_body = array ();
try {
$response = $client -> request ( 'POST' , '/settings/sounds' , array (
'headers' => $headers ,
'json' => $request_body ,
)
);
print_r ( $response -> getBody () -> getContents ());
}
catch ( \ GuzzleHttp\Exception\BadResponseException $e ) {
// handle exception or api errors.
print_r ( $e -> getMessage ());
}
// ...
URL obj = new URL ( "/settings/sounds" );
HttpURLConnection con = ( HttpURLConnection ) obj . openConnection ();
con . setRequestMethod ( "POST" );
int responseCode = con . getResponseCode ();
BufferedReader in = new BufferedReader (
new InputStreamReader ( con . getInputStream ()));
String inputLine ;
StringBuffer response = new StringBuffer ();
while (( inputLine = in . readLine ()) != null ) {
response . append ( inputLine );
}
in . close ();
System . out . println ( response . toString ());
package main
import (
"bytes"
"net/http"
)
func main () {
headers := map [ string ][] string {
"Accept" : [] string { "application/json" },
}
data := bytes . NewBuffer ([] byte { jsonReq })
req , err := http . NewRequest ( "POST" , "/settings/sounds" , data )
req . Header = headers
client := & http . Client {}
resp , err := client . Do ( req )
// ...
}
POST /settings/sounds
Example responses
200 Response
{
"id" : "string" ,
"name" : "string" ,
"size" : 0
}
Responses
This operation does not require authentication
getExerciseStartAndStopEvents
Code samples
# You can also use wget
curl -X GET /system-event/exercise/{ exerciseId} /duration \
-H 'Accept: application/json'
GET /system-event/exercise/{exerciseId}/duration HTTP / 1.1
Accept: application/json
const headers = {
' Accept ' : ' application/json '
};
fetch ( ' /system-event/exercise/{exerciseId}/duration ' ,
{
method : ' GET ' ,
headers : headers
})
. then ( function ( res ) {
return res . json ();
}). then ( function ( body ) {
console . log ( body );
});
require 'rest-client'
require 'json'
headers = {
'Accept' => 'application/json'
}
result = RestClient . get '/system-event/exercise/{exerciseId}/duration' ,
params: {
}, headers: headers
p JSON . parse ( result )
import requests
headers = {
'Accept' : 'application/json'
}
r = requests . get ( '/system-event/exercise/{exerciseId}/duration' , headers = headers )
print ( r . json ())
<?php
require 'vendor/autoload.php' ;
$headers = array (
'Accept' => 'application/json' ,
);
$client = new \ GuzzleHttp\Client ();
// Define array of request body.
$request_body = array ();
try {
$response = $client -> request ( 'GET' , '/system-event/exercise/{exerciseId}/duration' , array (
'headers' => $headers ,
'json' => $request_body ,
)
);
print_r ( $response -> getBody () -> getContents ());
}
catch ( \ GuzzleHttp\Exception\BadResponseException $e ) {
// handle exception or api errors.
print_r ( $e -> getMessage ());
}
// ...
URL obj = new URL ( "/system-event/exercise/{exerciseId}/duration" );
HttpURLConnection con = ( HttpURLConnection ) obj . openConnection ();
con . setRequestMethod ( "GET" );
int responseCode = con . getResponseCode ();
BufferedReader in = new BufferedReader (
new InputStreamReader ( con . getInputStream ()));
String inputLine ;
StringBuffer response = new StringBuffer ();
while (( inputLine = in . readLine ()) != null ) {
response . append ( inputLine );
}
in . close ();
System . out . println ( response . toString ());
package main
import (
"bytes"
"net/http"
)
func main () {
headers := map [ string ][] string {
"Accept" : [] string { "application/json" },
}
data := bytes . NewBuffer ([] byte { jsonReq })
req , err := http . NewRequest ( "GET" , "/system-event/exercise/{exerciseId}/duration" , data )
req . Header = headers
client := & http . Client {}
resp , err := client . Do ( req )
// ...
}
GET /system-event/exercise/{exerciseId}/duration
Parameters
Name
In
Type
Required
Description
exerciseId
path
string(uuid)
true
none
Example responses
200 Response
[
{
"startex" : 0 ,
"endex" : 0
}
]
Responses
Status
Meaning
Description
Schema
200
OK
successful operation
Inline
Response Schema
Status Code 200
Name
Type
Required
Restrictions
Description
anonymous
[StartexAndEndex ]
false
none
none
» startex
integer(int64)
false
none
none
» endex
integer(int64)
false
none
none
This operation does not require authentication
listen
Code samples
# You can also use wget
curl -X GET /system-event/exercise/{ exerciseId} /sse
GET /system-event/exercise/{exerciseId}/sse HTTP / 1.1
fetch ( ' /system-event/exercise/{exerciseId}/sse ' ,
{
method : ' GET '
})
. then ( function ( res ) {
return res . json ();
}). then ( function ( body ) {
console . log ( body );
});
require 'rest-client'
require 'json'
result = RestClient . get '/system-event/exercise/{exerciseId}/sse' ,
params: {
}
p JSON . parse ( result )
import requests
r = requests . get ( '/system-event/exercise/{exerciseId}/sse' )
print ( r . json ())
<?php
require 'vendor/autoload.php' ;
$client = new \ GuzzleHttp\Client ();
// Define array of request body.
$request_body = array ();
try {
$response = $client -> request ( 'GET' , '/system-event/exercise/{exerciseId}/sse' , array (
'headers' => $headers ,
'json' => $request_body ,
)
);
print_r ( $response -> getBody () -> getContents ());
}
catch ( \ GuzzleHttp\Exception\BadResponseException $e ) {
// handle exception or api errors.
print_r ( $e -> getMessage ());
}
// ...
URL obj = new URL ( "/system-event/exercise/{exerciseId}/sse" );
HttpURLConnection con = ( HttpURLConnection ) obj . openConnection ();
con . setRequestMethod ( "GET" );
int responseCode = con . getResponseCode ();
BufferedReader in = new BufferedReader (
new InputStreamReader ( con . getInputStream ()));
String inputLine ;
StringBuffer response = new StringBuffer ();
while (( inputLine = in . readLine ()) != null ) {
response . append ( inputLine );
}
in . close ();
System . out . println ( response . toString ());
package main
import (
"bytes"
"net/http"
)
func main () {
data := bytes . NewBuffer ([] byte { jsonReq })
req , err := http . NewRequest ( "GET" , "/system-event/exercise/{exerciseId}/sse" , data )
req . Header = headers
client := & http . Client {}
resp , err := client . Do ( req )
// ...
}
GET /system-event/exercise/{exerciseId}/sse
Parameters
Name
In
Type
Required
Description
exerciseId
path
string(uuid)
true
none
Responses
Status
Meaning
Description
Schema
default
Default
successful operation
None
This operation does not require authentication
getVersion
Code samples
# You can also use wget
curl -X GET /system/version \
-H 'Accept: application/json'
GET /system/version HTTP / 1.1
Accept: application/json
const headers = {
' Accept ' : ' application/json '
};
fetch ( ' /system/version ' ,
{
method : ' GET ' ,
headers : headers
})
. then ( function ( res ) {
return res . json ();
}). then ( function ( body ) {
console . log ( body );
});
require 'rest-client'
require 'json'
headers = {
'Accept' => 'application/json'
}
result = RestClient . get '/system/version' ,
params: {
}, headers: headers
p JSON . parse ( result )
import requests
headers = {
'Accept' : 'application/json'
}
r = requests . get ( '/system/version' , headers = headers )
print ( r . json ())
<?php
require 'vendor/autoload.php' ;
$headers = array (
'Accept' => 'application/json' ,
);
$client = new \ GuzzleHttp\Client ();
// Define array of request body.
$request_body = array ();
try {
$response = $client -> request ( 'GET' , '/system/version' , array (
'headers' => $headers ,
'json' => $request_body ,
)
);
print_r ( $response -> getBody () -> getContents ());
}
catch ( \ GuzzleHttp\Exception\BadResponseException $e ) {
// handle exception or api errors.
print_r ( $e -> getMessage ());
}
// ...
URL obj = new URL ( "/system/version" );
HttpURLConnection con = ( HttpURLConnection ) obj . openConnection ();
con . setRequestMethod ( "GET" );
int responseCode = con . getResponseCode ();
BufferedReader in = new BufferedReader (
new InputStreamReader ( con . getInputStream ()));
String inputLine ;
StringBuffer response = new StringBuffer ();
while (( inputLine = in . readLine ()) != null ) {
response . append ( inputLine );
}
in . close ();
System . out . println ( response . toString ());
package main
import (
"bytes"
"net/http"
)
func main () {
headers := map [ string ][] string {
"Accept" : [] string { "application/json" },
}
data := bytes . NewBuffer ([] byte { jsonReq })
req , err := http . NewRequest ( "GET" , "/system/version" , data )
req . Header = headers
client := & http . Client {}
resp , err := client . Do ( req )
// ...
}
GET /system/version
Example responses
200 Response
Responses
Status
Meaning
Description
Schema
200
OK
successful operation
string
This operation does not require authentication
subscribeToCalculationProgressEvents
Code samples
# You can also use wget
curl -X GET /target-check-availability/calculation-progress/subscribe
GET /target-check-availability/calculation-progress/subscribe HTTP / 1.1
fetch ( ' /target-check-availability/calculation-progress/subscribe ' ,
{
method : ' GET '
})
. then ( function ( res ) {
return res . json ();
}). then ( function ( body ) {
console . log ( body );
});
require 'rest-client'
require 'json'
result = RestClient . get '/target-check-availability/calculation-progress/subscribe' ,
params: {
}
p JSON . parse ( result )
import requests
r = requests . get ( '/target-check-availability/calculation-progress/subscribe' )
print ( r . json ())
<?php
require 'vendor/autoload.php' ;
$client = new \ GuzzleHttp\Client ();
// Define array of request body.
$request_body = array ();
try {
$response = $client -> request ( 'GET' , '/target-check-availability/calculation-progress/subscribe' , array (
'headers' => $headers ,
'json' => $request_body ,
)
);
print_r ( $response -> getBody () -> getContents ());
}
catch ( \ GuzzleHttp\Exception\BadResponseException $e ) {
// handle exception or api errors.
print_r ( $e -> getMessage ());
}
// ...
URL obj = new URL ( "/target-check-availability/calculation-progress/subscribe" );
HttpURLConnection con = ( HttpURLConnection ) obj . openConnection ();
con . setRequestMethod ( "GET" );
int responseCode = con . getResponseCode ();
BufferedReader in = new BufferedReader (
new InputStreamReader ( con . getInputStream ()));
String inputLine ;
StringBuffer response = new StringBuffer ();
while (( inputLine = in . readLine ()) != null ) {
response . append ( inputLine );
}
in . close ();
System . out . println ( response . toString ());
package main
import (
"bytes"
"net/http"
)
func main () {
data := bytes . NewBuffer ([] byte { jsonReq })
req , err := http . NewRequest ( "GET" , "/target-check-availability/calculation-progress/subscribe" , data )
req . Header = headers
client := & http . Client {}
resp , err := client . Do ( req )
// ...
}
GET /target-check-availability/calculation-progress/subscribe
Responses
Status
Meaning
Description
Schema
default
Default
successful operation
None
This operation does not require authentication
recalculateData
Code samples
# You can also use wget
curl -X POST /target-check-availability/recalculate
POST /target-check-availability/recalculate HTTP / 1.1
fetch ( ' /target-check-availability/recalculate ' ,
{
method : ' POST '
})
. then ( function ( res ) {
return res . json ();
}). then ( function ( body ) {
console . log ( body );
});
require 'rest-client'
require 'json'
result = RestClient . post '/target-check-availability/recalculate' ,
params: {
}
p JSON . parse ( result )
import requests
r = requests . post ( '/target-check-availability/recalculate' )
print ( r . json ())
<?php
require 'vendor/autoload.php' ;
$client = new \ GuzzleHttp\Client ();
// Define array of request body.
$request_body = array ();
try {
$response = $client -> request ( 'POST' , '/target-check-availability/recalculate' , array (
'headers' => $headers ,
'json' => $request_body ,
)
);
print_r ( $response -> getBody () -> getContents ());
}
catch ( \ GuzzleHttp\Exception\BadResponseException $e ) {
// handle exception or api errors.
print_r ( $e -> getMessage ());
}
// ...
URL obj = new URL ( "/target-check-availability/recalculate" );
HttpURLConnection con = ( HttpURLConnection ) obj . openConnection ();
con . setRequestMethod ( "POST" );
int responseCode = con . getResponseCode ();
BufferedReader in = new BufferedReader (
new InputStreamReader ( con . getInputStream ()));
String inputLine ;
StringBuffer response = new StringBuffer ();
while (( inputLine = in . readLine ()) != null ) {
response . append ( inputLine );
}
in . close ();
System . out . println ( response . toString ());
package main
import (
"bytes"
"net/http"
)
func main () {
data := bytes . NewBuffer ([] byte { jsonReq })
req , err := http . NewRequest ( "POST" , "/target-check-availability/recalculate" , data )
req . Header = headers
client := & http . Client {}
resp , err := client . Do ( req )
// ...
}
POST /target-check-availability/recalculate
Responses
Status
Meaning
Description
Schema
default
Default
successful operation
None
This operation does not require authentication
listenForLogoutEvents
Code samples
# You can also use wget
curl -X GET /users/current/events/subscribe
GET /users/current/events/subscribe HTTP / 1.1
fetch ( ' /users/current/events/subscribe ' ,
{
method : ' GET '
})
. then ( function ( res ) {
return res . json ();
}). then ( function ( body ) {
console . log ( body );
});
require 'rest-client'
require 'json'
result = RestClient . get '/users/current/events/subscribe' ,
params: {
}
p JSON . parse ( result )
import requests
r = requests . get ( '/users/current/events/subscribe' )
print ( r . json ())
<?php
require 'vendor/autoload.php' ;
$client = new \ GuzzleHttp\Client ();
// Define array of request body.
$request_body = array ();
try {
$response = $client -> request ( 'GET' , '/users/current/events/subscribe' , array (
'headers' => $headers ,
'json' => $request_body ,
)
);
print_r ( $response -> getBody () -> getContents ());
}
catch ( \ GuzzleHttp\Exception\BadResponseException $e ) {
// handle exception or api errors.
print_r ( $e -> getMessage ());
}
// ...
URL obj = new URL ( "/users/current/events/subscribe" );
HttpURLConnection con = ( HttpURLConnection ) obj . openConnection ();
con . setRequestMethod ( "GET" );
int responseCode = con . getResponseCode ();
BufferedReader in = new BufferedReader (
new InputStreamReader ( con . getInputStream ()));
String inputLine ;
StringBuffer response = new StringBuffer ();
while (( inputLine = in . readLine ()) != null ) {
response . append ( inputLine );
}
in . close ();
System . out . println ( response . toString ());
package main
import (
"bytes"
"net/http"
)
func main () {
data := bytes . NewBuffer ([] byte { jsonReq })
req , err := http . NewRequest ( "GET" , "/users/current/events/subscribe" , data )
req . Header = headers
client := & http . Client {}
resp , err := client . Do ( req )
// ...
}
GET /users/current/events/subscribe
Responses
Status
Meaning
Description
Schema
default
Default
successful operation
None
This operation does not require authentication
updateLastSeenNotifications
Code samples
# You can also use wget
curl -X PUT /users/current/last-seen-notifications
PUT /users/current/last-seen-notifications HTTP / 1.1
fetch ( ' /users/current/last-seen-notifications ' ,
{
method : ' PUT '
})
. then ( function ( res ) {
return res . json ();
}). then ( function ( body ) {
console . log ( body );
});
require 'rest-client'
require 'json'
result = RestClient . put '/users/current/last-seen-notifications' ,
params: {
}
p JSON . parse ( result )
import requests
r = requests . put ( '/users/current/last-seen-notifications' )
print ( r . json ())
<?php
require 'vendor/autoload.php' ;
$client = new \ GuzzleHttp\Client ();
// Define array of request body.
$request_body = array ();
try {
$response = $client -> request ( 'PUT' , '/users/current/last-seen-notifications' , array (
'headers' => $headers ,
'json' => $request_body ,
)
);
print_r ( $response -> getBody () -> getContents ());
}
catch ( \ GuzzleHttp\Exception\BadResponseException $e ) {
// handle exception or api errors.
print_r ( $e -> getMessage ());
}
// ...
URL obj = new URL ( "/users/current/last-seen-notifications" );
HttpURLConnection con = ( HttpURLConnection ) obj . openConnection ();
con . setRequestMethod ( "PUT" );
int responseCode = con . getResponseCode ();
BufferedReader in = new BufferedReader (
new InputStreamReader ( con . getInputStream ()));
String inputLine ;
StringBuffer response = new StringBuffer ();
while (( inputLine = in . readLine ()) != null ) {
response . append ( inputLine );
}
in . close ();
System . out . println ( response . toString ());
package main
import (
"bytes"
"net/http"
)
func main () {
data := bytes . NewBuffer ([] byte { jsonReq })
req , err := http . NewRequest ( "PUT" , "/users/current/last-seen-notifications" , data )
req . Header = headers
client := & http . Client {}
resp , err := client . Do ( req )
// ...
}
PUT /users/current/last-seen-notifications
Changes the notifications last seen timestamp of the current user
'current' in path refers to the currently logged in user of the request
Responses
Status
Meaning
Description
Schema
default
Default
successful operation
None
This operation does not require authentication
changePassword
Code samples
# You can also use wget
curl -X POST /widget/users/{ username} /password
POST /widget/users/{username}/password HTTP / 1.1
fetch ( ' /widget/users/{username}/password ' ,
{
method : ' POST '
})
. then ( function ( res ) {
return res . json ();
}). then ( function ( body ) {
console . log ( body );
});
require 'rest-client'
require 'json'
result = RestClient . post '/widget/users/{username}/password' ,
params: {
}
p JSON . parse ( result )
import requests
r = requests . post ( '/widget/users/{username}/password' )
print ( r . json ())
<?php
require 'vendor/autoload.php' ;
$client = new \ GuzzleHttp\Client ();
// Define array of request body.
$request_body = array ();
try {
$response = $client -> request ( 'POST' , '/widget/users/{username}/password' , array (
'headers' => $headers ,
'json' => $request_body ,
)
);
print_r ( $response -> getBody () -> getContents ());
}
catch ( \ GuzzleHttp\Exception\BadResponseException $e ) {
// handle exception or api errors.
print_r ( $e -> getMessage ());
}
// ...
URL obj = new URL ( "/widget/users/{username}/password" );
HttpURLConnection con = ( HttpURLConnection ) obj . openConnection ();
con . setRequestMethod ( "POST" );
int responseCode = con . getResponseCode ();
BufferedReader in = new BufferedReader (
new InputStreamReader ( con . getInputStream ()));
String inputLine ;
StringBuffer response = new StringBuffer ();
while (( inputLine = in . readLine ()) != null ) {
response . append ( inputLine );
}
in . close ();
System . out . println ( response . toString ());
package main
import (
"bytes"
"net/http"
)
func main () {
data := bytes . NewBuffer ([] byte { jsonReq })
req , err := http . NewRequest ( "POST" , "/widget/users/{username}/password" , data )
req . Header = headers
client := & http . Client {}
resp , err := client . Do ( req )
// ...
}
POST /widget/users/{username}/password
Changes the password of the given user
Parameters
Name
In
Type
Required
Description
username
path
string
true
none
Responses
Status
Meaning
Description
Schema
default
Default
successful operation
None
This operation does not require authentication
getSessionToken
Code samples
# You can also use wget
curl -X POST /vm/{ vmId} /session-token \
-H 'Accept: application/json'
POST /vm/{vmId}/session-token HTTP / 1.1
Accept: application/json
const headers = {
' Accept ' : ' application/json '
};
fetch ( ' /vm/{vmId}/session-token ' ,
{
method : ' POST ' ,
headers : headers
})
. then ( function ( res ) {
return res . json ();
}). then ( function ( body ) {
console . log ( body );
});
require 'rest-client'
require 'json'
headers = {
'Accept' => 'application/json'
}
result = RestClient . post '/vm/{vmId}/session-token' ,
params: {
}, headers: headers
p JSON . parse ( result )
import requests
headers = {
'Accept' : 'application/json'
}
r = requests . post ( '/vm/{vmId}/session-token' , headers = headers )
print ( r . json ())
<?php
require 'vendor/autoload.php' ;
$headers = array (
'Accept' => 'application/json' ,
);
$client = new \ GuzzleHttp\Client ();
// Define array of request body.
$request_body = array ();
try {
$response = $client -> request ( 'POST' , '/vm/{vmId}/session-token' , array (
'headers' => $headers ,
'json' => $request_body ,
)
);
print_r ( $response -> getBody () -> getContents ());
}
catch ( \ GuzzleHttp\Exception\BadResponseException $e ) {
// handle exception or api errors.
print_r ( $e -> getMessage ());
}
// ...
URL obj = new URL ( "/vm/{vmId}/session-token" );
HttpURLConnection con = ( HttpURLConnection ) obj . openConnection ();
con . setRequestMethod ( "POST" );
int responseCode = con . getResponseCode ();
BufferedReader in = new BufferedReader (
new InputStreamReader ( con . getInputStream ()));
String inputLine ;
StringBuffer response = new StringBuffer ();
while (( inputLine = in . readLine ()) != null ) {
response . append ( inputLine );
}
in . close ();
System . out . println ( response . toString ());
package main
import (
"bytes"
"net/http"
)
func main () {
headers := map [ string ][] string {
"Accept" : [] string { "application/json" },
}
data := bytes . NewBuffer ([] byte { jsonReq })
req , err := http . NewRequest ( "POST" , "/vm/{vmId}/session-token" , data )
req . Header = headers
client := & http . Client {}
resp , err := client . Do ( req )
// ...
}
POST /vm/{vmId}/session-token
Parameters
Name
In
Type
Required
Description
vmId
path
string(uuid)
true
none
Example responses
200 Response
Responses
Status
Meaning
Description
Schema
200
OK
successful operation
string
This operation does not require authentication
getWebConsoleUrl
Code samples
# You can also use wget
curl -X GET /vm/{ vmId} /webconsole-url/exercise/{ exerciseId} \
-H 'Accept: application/json'
GET /vm/{vmId}/webconsole-url/exercise/{exerciseId} HTTP / 1.1
Accept: application/json
const headers = {
' Accept ' : ' application/json '
};
fetch ( ' /vm/{vmId}/webconsole-url/exercise/{exerciseId} ' ,
{
method : ' GET ' ,
headers : headers
})
. then ( function ( res ) {
return res . json ();
}). then ( function ( body ) {
console . log ( body );
});
require 'rest-client'
require 'json'
headers = {
'Accept' => 'application/json'
}
result = RestClient . get '/vm/{vmId}/webconsole-url/exercise/{exerciseId}' ,
params: {
}, headers: headers
p JSON . parse ( result )
import requests
headers = {
'Accept' : 'application/json'
}
r = requests . get ( '/vm/{vmId}/webconsole-url/exercise/{exerciseId}' , headers = headers )
print ( r . json ())
<?php
require 'vendor/autoload.php' ;
$headers = array (
'Accept' => 'application/json' ,
);
$client = new \ GuzzleHttp\Client ();
// Define array of request body.
$request_body = array ();
try {
$response = $client -> request ( 'GET' , '/vm/{vmId}/webconsole-url/exercise/{exerciseId}' , array (
'headers' => $headers ,
'json' => $request_body ,
)
);
print_r ( $response -> getBody () -> getContents ());
}
catch ( \ GuzzleHttp\Exception\BadResponseException $e ) {
// handle exception or api errors.
print_r ( $e -> getMessage ());
}
// ...
URL obj = new URL ( "/vm/{vmId}/webconsole-url/exercise/{exerciseId}" );
HttpURLConnection con = ( HttpURLConnection ) obj . openConnection ();
con . setRequestMethod ( "GET" );
int responseCode = con . getResponseCode ();
BufferedReader in = new BufferedReader (
new InputStreamReader ( con . getInputStream ()));
String inputLine ;
StringBuffer response = new StringBuffer ();
while (( inputLine = in . readLine ()) != null ) {
response . append ( inputLine );
}
in . close ();
System . out . println ( response . toString ());
package main
import (
"bytes"
"net/http"
)
func main () {
headers := map [ string ][] string {
"Accept" : [] string { "application/json" },
}
data := bytes . NewBuffer ([] byte { jsonReq })
req , err := http . NewRequest ( "GET" , "/vm/{vmId}/webconsole-url/exercise/{exerciseId}" , data )
req . Header = headers
client := & http . Client {}
resp , err := client . Do ( req )
// ...
}
GET /vm/{vmId}/webconsole-url/exercise/{exerciseId}
Parameters
Name
In
Type
Required
Description
vmId
path
string(uuid)
true
none
exerciseId
path
string(uuid)
true
none
Example responses
200 Response
Responses
Status
Meaning
Description
Schema
200
OK
successful operation
string
This operation does not require authentication
requestFlag
Code samples
# You can also use wget
curl -X POST /widget/attack-campaign/attack-flag/request \
-H 'Accept: */*'
POST /widget/attack-campaign/attack-flag/request HTTP / 1.1
Accept: */*
const headers = {
' Accept ' : ' */* '
};
fetch ( ' /widget/attack-campaign/attack-flag/request ' ,
{
method : ' POST ' ,
headers : headers
})
. then ( function ( res ) {
return res . json ();
}). then ( function ( body ) {
console . log ( body );
});
require 'rest-client'
require 'json'
headers = {
'Accept' => '*/*'
}
result = RestClient . post '/widget/attack-campaign/attack-flag/request' ,
params: {
}, headers: headers
p JSON . parse ( result )
import requests
headers = {
'Accept' : '*/*'
}
r = requests . post ( '/widget/attack-campaign/attack-flag/request' , headers = headers )
print ( r . json ())
<?php
require 'vendor/autoload.php' ;
$headers = array (
'Accept' => '*/*' ,
);
$client = new \ GuzzleHttp\Client ();
// Define array of request body.
$request_body = array ();
try {
$response = $client -> request ( 'POST' , '/widget/attack-campaign/attack-flag/request' , array (
'headers' => $headers ,
'json' => $request_body ,
)
);
print_r ( $response -> getBody () -> getContents ());
}
catch ( \ GuzzleHttp\Exception\BadResponseException $e ) {
// handle exception or api errors.
print_r ( $e -> getMessage ());
}
// ...
URL obj = new URL ( "/widget/attack-campaign/attack-flag/request" );
HttpURLConnection con = ( HttpURLConnection ) obj . openConnection ();
con . setRequestMethod ( "POST" );
int responseCode = con . getResponseCode ();
BufferedReader in = new BufferedReader (
new InputStreamReader ( con . getInputStream ()));
String inputLine ;
StringBuffer response = new StringBuffer ();
while (( inputLine = in . readLine ()) != null ) {
response . append ( inputLine );
}
in . close ();
System . out . println ( response . toString ());
package main
import (
"bytes"
"net/http"
)
func main () {
headers := map [ string ][] string {
"Accept" : [] string { "*/*" },
}
data := bytes . NewBuffer ([] byte { jsonReq })
req , err := http . NewRequest ( "POST" , "/widget/attack-campaign/attack-flag/request" , data )
req . Header = headers
client := & http . Client {}
resp , err := client . Do ( req )
// ...
}
POST /widget/attack-campaign/attack-flag/request
Example responses
200 Response
Responses
Status
Meaning
Description
Schema
200
OK
successful operation
Inline
Response Schema
Status Code 200
Name
Type
Required
Restrictions
Description
» additionalProperties
JsonValue
false
none
none
»» valueType
string
false
none
none
Enumerated Values
Property
Value
valueType
ARRAY
valueType
OBJECT
valueType
STRING
valueType
NUMBER
valueType
TRUE
valueType
FALSE
valueType
NULL
This operation does not require authentication
assignUserToObjective
Code samples
# You can also use wget
curl -X POST /widget/attack-campaign/exercise/{ exerciseId} /objective/{ objectiveId} /assignment \
-H 'Accept: application/json'
POST /widget/attack-campaign/exercise/{exerciseId}/objective/{objectiveId}/assignment HTTP / 1.1
Accept: application/json
const headers = {
' Accept ' : ' application/json '
};
fetch ( ' /widget/attack-campaign/exercise/{exerciseId}/objective/{objectiveId}/assignment ' ,
{
method : ' POST ' ,
headers : headers
})
. then ( function ( res ) {
return res . json ();
}). then ( function ( body ) {
console . log ( body );
});
require 'rest-client'
require 'json'
headers = {
'Accept' => 'application/json'
}
result = RestClient . post '/widget/attack-campaign/exercise/{exerciseId}/objective/{objectiveId}/assignment' ,
params: {
}, headers: headers
p JSON . parse ( result )
import requests
headers = {
'Accept' : 'application/json'
}
r = requests . post ( '/widget/attack-campaign/exercise/{exerciseId}/objective/{objectiveId}/assignment' , headers = headers )
print ( r . json ())
<?php
require 'vendor/autoload.php' ;
$headers = array (
'Accept' => 'application/json' ,
);
$client = new \ GuzzleHttp\Client ();
// Define array of request body.
$request_body = array ();
try {
$response = $client -> request ( 'POST' , '/widget/attack-campaign/exercise/{exerciseId}/objective/{objectiveId}/assignment' , array (
'headers' => $headers ,
'json' => $request_body ,
)
);
print_r ( $response -> getBody () -> getContents ());
}
catch ( \ GuzzleHttp\Exception\BadResponseException $e ) {
// handle exception or api errors.
print_r ( $e -> getMessage ());
}
// ...
URL obj = new URL ( "/widget/attack-campaign/exercise/{exerciseId}/objective/{objectiveId}/assignment" );
HttpURLConnection con = ( HttpURLConnection ) obj . openConnection ();
con . setRequestMethod ( "POST" );
int responseCode = con . getResponseCode ();
BufferedReader in = new BufferedReader (
new InputStreamReader ( con . getInputStream ()));
String inputLine ;
StringBuffer response = new StringBuffer ();
while (( inputLine = in . readLine ()) != null ) {
response . append ( inputLine );
}
in . close ();
System . out . println ( response . toString ());
package main
import (
"bytes"
"net/http"
)
func main () {
headers := map [ string ][] string {
"Accept" : [] string { "application/json" },
}
data := bytes . NewBuffer ([] byte { jsonReq })
req , err := http . NewRequest ( "POST" , "/widget/attack-campaign/exercise/{exerciseId}/objective/{objectiveId}/assignment" , data )
req . Header = headers
client := & http . Client {}
resp , err := client . Do ( req )
// ...
}
POST /widget/attack-campaign/exercise/{exerciseId}/objective/{objectiveId}/assignment
Parameters
Name
In
Type
Required
Description
exerciseId
path
string(uuid)
true
none
objectiveId
path
string(uuid)
true
none
Example responses
200 Response
{
"property1" : {
"valueType" : "ARRAY"
},
"property2" : {
"valueType" : "ARRAY"
}
}
Responses
Status
Meaning
Description
Schema
200
OK
successful operation
Inline
Response Schema
Status Code 200
Name
Type
Required
Restrictions
Description
» additionalProperties
JsonValue
false
none
none
»» valueType
string
false
none
none
Enumerated Values
Property
Value
valueType
ARRAY
valueType
OBJECT
valueType
STRING
valueType
NUMBER
valueType
TRUE
valueType
FALSE
valueType
NULL
This operation does not require authentication
removeUserFromObjective
Code samples
# You can also use wget
curl -X DELETE /widget/attack-campaign/exercise/{ exerciseId} /objective/{ objectiveId} /assignment/{ assignmentId}
DELETE /widget/attack-campaign/exercise/{exerciseId}/objective/{objectiveId}/assignment/{assignmentId} HTTP / 1.1
fetch ( ' /widget/attack-campaign/exercise/{exerciseId}/objective/{objectiveId}/assignment/{assignmentId} ' ,
{
method : ' DELETE '
})
. then ( function ( res ) {
return res . json ();
}). then ( function ( body ) {
console . log ( body );
});
require 'rest-client'
require 'json'
result = RestClient . delete '/widget/attack-campaign/exercise/{exerciseId}/objective/{objectiveId}/assignment/{assignmentId}' ,
params: {
}
p JSON . parse ( result )
import requests
r = requests . delete ( '/widget/attack-campaign/exercise/{exerciseId}/objective/{objectiveId}/assignment/{assignmentId}' )
print ( r . json ())
<?php
require 'vendor/autoload.php' ;
$client = new \ GuzzleHttp\Client ();
// Define array of request body.
$request_body = array ();
try {
$response = $client -> request ( 'DELETE' , '/widget/attack-campaign/exercise/{exerciseId}/objective/{objectiveId}/assignment/{assignmentId}' , array (
'headers' => $headers ,
'json' => $request_body ,
)
);
print_r ( $response -> getBody () -> getContents ());
}
catch ( \ GuzzleHttp\Exception\BadResponseException $e ) {
// handle exception or api errors.
print_r ( $e -> getMessage ());
}
// ...
URL obj = new URL ( "/widget/attack-campaign/exercise/{exerciseId}/objective/{objectiveId}/assignment/{assignmentId}" );
HttpURLConnection con = ( HttpURLConnection ) obj . openConnection ();
con . setRequestMethod ( "DELETE" );
int responseCode = con . getResponseCode ();
BufferedReader in = new BufferedReader (
new InputStreamReader ( con . getInputStream ()));
String inputLine ;
StringBuffer response = new StringBuffer ();
while (( inputLine = in . readLine ()) != null ) {
response . append ( inputLine );
}
in . close ();
System . out . println ( response . toString ());
package main
import (
"bytes"
"net/http"
)
func main () {
data := bytes . NewBuffer ([] byte { jsonReq })
req , err := http . NewRequest ( "DELETE" , "/widget/attack-campaign/exercise/{exerciseId}/objective/{objectiveId}/assignment/{assignmentId}" , data )
req . Header = headers
client := & http . Client {}
resp , err := client . Do ( req )
// ...
}
DELETE /widget/attack-campaign/exercise/{exerciseId}/objective/{objectiveId}/assignment/{assignmentId}
Parameters
Name
In
Type
Required
Description
exerciseId
path
string(uuid)
true
none
objectiveId
path
string(uuid)
true
none
assignmentId
path
string(uuid)
true
none
Responses
Status
Meaning
Description
Schema
default
Default
successful operation
None
This operation does not require authentication
assignUserToObjectives
Code samples
# You can also use wget
curl -X POST /widget/attack-campaign/objective/assignment/batch \
-H 'Accept: application/json'
POST /widget/attack-campaign/objective/assignment/batch HTTP / 1.1
Accept: application/json
const headers = {
' Accept ' : ' application/json '
};
fetch ( ' /widget/attack-campaign/objective/assignment/batch ' ,
{
method : ' POST ' ,
headers : headers
})
. then ( function ( res ) {
return res . json ();
}). then ( function ( body ) {
console . log ( body );
});
require 'rest-client'
require 'json'
headers = {
'Accept' => 'application/json'
}
result = RestClient . post '/widget/attack-campaign/objective/assignment/batch' ,
params: {
}, headers: headers
p JSON . parse ( result )
import requests
headers = {
'Accept' : 'application/json'
}
r = requests . post ( '/widget/attack-campaign/objective/assignment/batch' , headers = headers )
print ( r . json ())
<?php
require 'vendor/autoload.php' ;
$headers = array (
'Accept' => 'application/json' ,
);
$client = new \ GuzzleHttp\Client ();
// Define array of request body.
$request_body = array ();
try {
$response = $client -> request ( 'POST' , '/widget/attack-campaign/objective/assignment/batch' , array (
'headers' => $headers ,
'json' => $request_body ,
)
);
print_r ( $response -> getBody () -> getContents ());
}
catch ( \ GuzzleHttp\Exception\BadResponseException $e ) {
// handle exception or api errors.
print_r ( $e -> getMessage ());
}
// ...
URL obj = new URL ( "/widget/attack-campaign/objective/assignment/batch" );
HttpURLConnection con = ( HttpURLConnection ) obj . openConnection ();
con . setRequestMethod ( "POST" );
int responseCode = con . getResponseCode ();
BufferedReader in = new BufferedReader (
new InputStreamReader ( con . getInputStream ()));
String inputLine ;
StringBuffer response = new StringBuffer ();
while (( inputLine = in . readLine ()) != null ) {
response . append ( inputLine );
}
in . close ();
System . out . println ( response . toString ());
package main
import (
"bytes"
"net/http"
)
func main () {
headers := map [ string ][] string {
"Accept" : [] string { "application/json" },
}
data := bytes . NewBuffer ([] byte { jsonReq })
req , err := http . NewRequest ( "POST" , "/widget/attack-campaign/objective/assignment/batch" , data )
req . Header = headers
client := & http . Client {}
resp , err := client . Do ( req )
// ...
}
POST /widget/attack-campaign/objective/assignment/batch
Example responses
200 Response
[
{
"id" : "497f6eca-6276-4993-bfeb-53cbbbba6f08" ,
"exerciseId" : "71ba10b8-c6bd-49fd-9742-f8dbc8ccdb47" ,
"teamId" : "a4ede8ba-7c0a-4485-8763-cbd9b282fbec" ,
"objectiveContainerId" : "19719b61-3636-4c2c-9f9e-15e15bf34e46" ,
"objectiveId" : "1ac8be30-2b34-409a-be6d-40652b73c978" ,
"username" : "string" ,
"timestamp" : 0 ,
"unassigned" : 0
}
]
Responses
Status
Meaning
Description
Schema
200
OK
successful operation
Inline
Response Schema
Status Code 200
Name
Type
Required
Restrictions
Description
anonymous
[AttackCampaignUserAssignment ]
false
none
none
» id
string(uuid)
false
none
none
» exerciseId
string(uuid)
false
none
none
» teamId
string(uuid)
false
none
none
» objectiveContainerId
string(uuid)
false
none
none
» objectiveId
string(uuid)
false
none
none
» username
string
false
none
none
» timestamp
integer(int64)
false
none
none
» unassigned
integer(int64)
false
none
none
This operation does not require authentication
saveReport
Code samples
# You can also use wget
curl -X POST /widget/situation-report/exercise/{ exerciseId} /team/{ teamId}
POST /widget/situation-report/exercise/{exerciseId}/team/{teamId} HTTP / 1.1
fetch ( ' /widget/situation-report/exercise/{exerciseId}/team/{teamId} ' ,
{
method : ' POST '
})
. then ( function ( res ) {
return res . json ();
}). then ( function ( body ) {
console . log ( body );
});
require 'rest-client'
require 'json'
result = RestClient . post '/widget/situation-report/exercise/{exerciseId}/team/{teamId}' ,
params: {
}
p JSON . parse ( result )
import requests
r = requests . post ( '/widget/situation-report/exercise/{exerciseId}/team/{teamId}' )
print ( r . json ())
<?php
require 'vendor/autoload.php' ;
$client = new \ GuzzleHttp\Client ();
// Define array of request body.
$request_body = array ();
try {
$response = $client -> request ( 'POST' , '/widget/situation-report/exercise/{exerciseId}/team/{teamId}' , array (
'headers' => $headers ,
'json' => $request_body ,
)
);
print_r ( $response -> getBody () -> getContents ());
}
catch ( \ GuzzleHttp\Exception\BadResponseException $e ) {
// handle exception or api errors.
print_r ( $e -> getMessage ());
}
// ...
URL obj = new URL ( "/widget/situation-report/exercise/{exerciseId}/team/{teamId}" );
HttpURLConnection con = ( HttpURLConnection ) obj . openConnection ();
con . setRequestMethod ( "POST" );
int responseCode = con . getResponseCode ();
BufferedReader in = new BufferedReader (
new InputStreamReader ( con . getInputStream ()));
String inputLine ;
StringBuffer response = new StringBuffer ();
while (( inputLine = in . readLine ()) != null ) {
response . append ( inputLine );
}
in . close ();
System . out . println ( response . toString ());
package main
import (
"bytes"
"net/http"
)
func main () {
data := bytes . NewBuffer ([] byte { jsonReq })
req , err := http . NewRequest ( "POST" , "/widget/situation-report/exercise/{exerciseId}/team/{teamId}" , data )
req . Header = headers
client := & http . Client {}
resp , err := client . Do ( req )
// ...
}
POST /widget/situation-report/exercise/{exerciseId}/team/{teamId}
Parameters
Name
In
Type
Required
Description
exerciseId
path
string(uuid)
true
none
teamId
path
string(uuid)
true
none
Responses
Status
Meaning
Description
Schema
default
Default
successful operation
None
This operation does not require authentication
saveReportBatch
Code samples
# You can also use wget
curl -X POST /widget/attack-campaign/report/batch
POST /widget/attack-campaign/report/batch HTTP / 1.1
fetch ( ' /widget/attack-campaign/report/batch ' ,
{
method : ' POST '
})
. then ( function ( res ) {
return res . json ();
}). then ( function ( body ) {
console . log ( body );
});
require 'rest-client'
require 'json'
result = RestClient . post '/widget/attack-campaign/report/batch' ,
params: {
}
p JSON . parse ( result )
import requests
r = requests . post ( '/widget/attack-campaign/report/batch' )
print ( r . json ())
<?php
require 'vendor/autoload.php' ;
$client = new \ GuzzleHttp\Client ();
// Define array of request body.
$request_body = array ();
try {
$response = $client -> request ( 'POST' , '/widget/attack-campaign/report/batch' , array (
'headers' => $headers ,
'json' => $request_body ,
)
);
print_r ( $response -> getBody () -> getContents ());
}
catch ( \ GuzzleHttp\Exception\BadResponseException $e ) {
// handle exception or api errors.
print_r ( $e -> getMessage ());
}
// ...
URL obj = new URL ( "/widget/attack-campaign/report/batch" );
HttpURLConnection con = ( HttpURLConnection ) obj . openConnection ();
con . setRequestMethod ( "POST" );
int responseCode = con . getResponseCode ();
BufferedReader in = new BufferedReader (
new InputStreamReader ( con . getInputStream ()));
String inputLine ;
StringBuffer response = new StringBuffer ();
while (( inputLine = in . readLine ()) != null ) {
response . append ( inputLine );
}
in . close ();
System . out . println ( response . toString ());
package main
import (
"bytes"
"net/http"
)
func main () {
data := bytes . NewBuffer ([] byte { jsonReq })
req , err := http . NewRequest ( "POST" , "/widget/attack-campaign/report/batch" , data )
req . Header = headers
client := & http . Client {}
resp , err := client . Do ( req )
// ...
}
POST /widget/attack-campaign/report/batch
Responses
Status
Meaning
Description
Schema
default
Default
successful operation
None
This operation does not require authentication
saveConfirmation
Code samples
# You can also use wget
curl -X POST /widget/situation-reports/exercise/{ exerciseId} /confirmation
POST /widget/situation-reports/exercise/{exerciseId}/confirmation HTTP / 1.1
fetch ( ' /widget/situation-reports/exercise/{exerciseId}/confirmation ' ,
{
method : ' POST '
})
. then ( function ( res ) {
return res . json ();
}). then ( function ( body ) {
console . log ( body );
});
require 'rest-client'
require 'json'
result = RestClient . post '/widget/situation-reports/exercise/{exerciseId}/confirmation' ,
params: {
}
p JSON . parse ( result )
import requests
r = requests . post ( '/widget/situation-reports/exercise/{exerciseId}/confirmation' )
print ( r . json ())
<?php
require 'vendor/autoload.php' ;
$client = new \ GuzzleHttp\Client ();
// Define array of request body.
$request_body = array ();
try {
$response = $client -> request ( 'POST' , '/widget/situation-reports/exercise/{exerciseId}/confirmation' , array (
'headers' => $headers ,
'json' => $request_body ,
)
);
print_r ( $response -> getBody () -> getContents ());
}
catch ( \ GuzzleHttp\Exception\BadResponseException $e ) {
// handle exception or api errors.
print_r ( $e -> getMessage ());
}
// ...
URL obj = new URL ( "/widget/situation-reports/exercise/{exerciseId}/confirmation" );
HttpURLConnection con = ( HttpURLConnection ) obj . openConnection ();
con . setRequestMethod ( "POST" );
int responseCode = con . getResponseCode ();
BufferedReader in = new BufferedReader (
new InputStreamReader ( con . getInputStream ()));
String inputLine ;
StringBuffer response = new StringBuffer ();
while (( inputLine = in . readLine ()) != null ) {
response . append ( inputLine );
}
in . close ();
System . out . println ( response . toString ());
package main
import (
"bytes"
"net/http"
)
func main () {
data := bytes . NewBuffer ([] byte { jsonReq })
req , err := http . NewRequest ( "POST" , "/widget/situation-reports/exercise/{exerciseId}/confirmation" , data )
req . Header = headers
client := & http . Client {}
resp , err := client . Do ( req )
// ...
}
POST /widget/situation-reports/exercise/{exerciseId}/confirmation
Parameters
Name
In
Type
Required
Description
exerciseId
path
string(uuid)
true
none
Responses
Status
Meaning
Description
Schema
default
Default
successful operation
None
This operation does not require authentication
saveConfirmationBatch
Code samples
# You can also use wget
curl -X POST /widget/incident-reports/exercise/{ exerciseId} /confirmation/batch
POST /widget/incident-reports/exercise/{exerciseId}/confirmation/batch HTTP / 1.1
fetch ( ' /widget/incident-reports/exercise/{exerciseId}/confirmation/batch ' ,
{
method : ' POST '
})
. then ( function ( res ) {
return res . json ();
}). then ( function ( body ) {
console . log ( body );
});
require 'rest-client'
require 'json'
result = RestClient . post '/widget/incident-reports/exercise/{exerciseId}/confirmation/batch' ,
params: {
}
p JSON . parse ( result )
import requests
r = requests . post ( '/widget/incident-reports/exercise/{exerciseId}/confirmation/batch' )
print ( r . json ())
<?php
require 'vendor/autoload.php' ;
$client = new \ GuzzleHttp\Client ();
// Define array of request body.
$request_body = array ();
try {
$response = $client -> request ( 'POST' , '/widget/incident-reports/exercise/{exerciseId}/confirmation/batch' , array (
'headers' => $headers ,
'json' => $request_body ,
)
);
print_r ( $response -> getBody () -> getContents ());
}
catch ( \ GuzzleHttp\Exception\BadResponseException $e ) {
// handle exception or api errors.
print_r ( $e -> getMessage ());
}
// ...
URL obj = new URL ( "/widget/incident-reports/exercise/{exerciseId}/confirmation/batch" );
HttpURLConnection con = ( HttpURLConnection ) obj . openConnection ();
con . setRequestMethod ( "POST" );
int responseCode = con . getResponseCode ();
BufferedReader in = new BufferedReader (
new InputStreamReader ( con . getInputStream ()));
String inputLine ;
StringBuffer response = new StringBuffer ();
while (( inputLine = in . readLine ()) != null ) {
response . append ( inputLine );
}
in . close ();
System . out . println ( response . toString ());
package main
import (
"bytes"
"net/http"
)
func main () {
data := bytes . NewBuffer ([] byte { jsonReq })
req , err := http . NewRequest ( "POST" , "/widget/incident-reports/exercise/{exerciseId}/confirmation/batch" , data )
req . Header = headers
client := & http . Client {}
resp , err := client . Do ( req )
// ...
}
POST /widget/incident-reports/exercise/{exerciseId}/confirmation/batch
Parameters
Name
In
Type
Required
Description
exerciseId
path
string(uuid)
true
none
Responses
Status
Meaning
Description
Schema
default
Default
successful operation
None
This operation does not require authentication
getReport
Code samples
# You can also use wget
curl -X GET /widget/attack-reports/exercise/{ exerciseId} /report/{ reportId} \
-H 'Accept: application/json'
GET /widget/attack-reports/exercise/{exerciseId}/report/{reportId} HTTP / 1.1
Accept: application/json
const headers = {
' Accept ' : ' application/json '
};
fetch ( ' /widget/attack-reports/exercise/{exerciseId}/report/{reportId} ' ,
{
method : ' GET ' ,
headers : headers
})
. then ( function ( res ) {
return res . json ();
}). then ( function ( body ) {
console . log ( body );
});
require 'rest-client'
require 'json'
headers = {
'Accept' => 'application/json'
}
result = RestClient . get '/widget/attack-reports/exercise/{exerciseId}/report/{reportId}' ,
params: {
}, headers: headers
p JSON . parse ( result )
import requests
headers = {
'Accept' : 'application/json'
}
r = requests . get ( '/widget/attack-reports/exercise/{exerciseId}/report/{reportId}' , headers = headers )
print ( r . json ())
<?php
require 'vendor/autoload.php' ;
$headers = array (
'Accept' => 'application/json' ,
);
$client = new \ GuzzleHttp\Client ();
// Define array of request body.
$request_body = array ();
try {
$response = $client -> request ( 'GET' , '/widget/attack-reports/exercise/{exerciseId}/report/{reportId}' , array (
'headers' => $headers ,
'json' => $request_body ,
)
);
print_r ( $response -> getBody () -> getContents ());
}
catch ( \ GuzzleHttp\Exception\BadResponseException $e ) {
// handle exception or api errors.
print_r ( $e -> getMessage ());
}
// ...
URL obj = new URL ( "/widget/attack-reports/exercise/{exerciseId}/report/{reportId}" );
HttpURLConnection con = ( HttpURLConnection ) obj . openConnection ();
con . setRequestMethod ( "GET" );
int responseCode = con . getResponseCode ();
BufferedReader in = new BufferedReader (
new InputStreamReader ( con . getInputStream ()));
String inputLine ;
StringBuffer response = new StringBuffer ();
while (( inputLine = in . readLine ()) != null ) {
response . append ( inputLine );
}
in . close ();
System . out . println ( response . toString ());
package main
import (
"bytes"
"net/http"
)
func main () {
headers := map [ string ][] string {
"Accept" : [] string { "application/json" },
}
data := bytes . NewBuffer ([] byte { jsonReq })
req , err := http . NewRequest ( "GET" , "/widget/attack-reports/exercise/{exerciseId}/report/{reportId}" , data )
req . Header = headers
client := & http . Client {}
resp , err := client . Do ( req )
// ...
}
GET /widget/attack-reports/exercise/{exerciseId}/report/{reportId}
Parameters
Name
In
Type
Required
Description
exerciseId
path
string(uuid)
true
none
reportId
path
string(uuid)
true
none
Example responses
200 Response
{
"property1" : {
"valueType" : "ARRAY"
},
"property2" : {
"valueType" : "ARRAY"
}
}
Responses
Status
Meaning
Description
Schema
200
OK
successful operation
Inline
Response Schema
Status Code 200
Name
Type
Required
Restrictions
Description
» additionalProperties
JsonValue
false
none
none
»» valueType
string
false
none
none
Enumerated Values
Property
Value
valueType
ARRAY
valueType
OBJECT
valueType
STRING
valueType
NUMBER
valueType
TRUE
valueType
FALSE
valueType
NULL
This operation does not require authentication
getTeamRankingData
Code samples
# You can also use wget
curl -X GET /widget/campaign-live/exercise/{ exerciseId} /ranking \
-H 'Accept: application/json'
GET /widget/campaign-live/exercise/{exerciseId}/ranking HTTP / 1.1
Accept: application/json
const headers = {
' Accept ' : ' application/json '
};
fetch ( ' /widget/campaign-live/exercise/{exerciseId}/ranking ' ,
{
method : ' GET ' ,
headers : headers
})
. then ( function ( res ) {
return res . json ();
}). then ( function ( body ) {
console . log ( body );
});
require 'rest-client'
require 'json'
headers = {
'Accept' => 'application/json'
}
result = RestClient . get '/widget/campaign-live/exercise/{exerciseId}/ranking' ,
params: {
}, headers: headers
p JSON . parse ( result )
import requests
headers = {
'Accept' : 'application/json'
}
r = requests . get ( '/widget/campaign-live/exercise/{exerciseId}/ranking' , headers = headers )
print ( r . json ())
<?php
require 'vendor/autoload.php' ;
$headers = array (
'Accept' => 'application/json' ,
);
$client = new \ GuzzleHttp\Client ();
// Define array of request body.
$request_body = array ();
try {
$response = $client -> request ( 'GET' , '/widget/campaign-live/exercise/{exerciseId}/ranking' , array (
'headers' => $headers ,
'json' => $request_body ,
)
);
print_r ( $response -> getBody () -> getContents ());
}
catch ( \ GuzzleHttp\Exception\BadResponseException $e ) {
// handle exception or api errors.
print_r ( $e -> getMessage ());
}
// ...
URL obj = new URL ( "/widget/campaign-live/exercise/{exerciseId}/ranking" );
HttpURLConnection con = ( HttpURLConnection ) obj . openConnection ();
con . setRequestMethod ( "GET" );
int responseCode = con . getResponseCode ();
BufferedReader in = new BufferedReader (
new InputStreamReader ( con . getInputStream ()));
String inputLine ;
StringBuffer response = new StringBuffer ();
while (( inputLine = in . readLine ()) != null ) {
response . append ( inputLine );
}
in . close ();
System . out . println ( response . toString ());
package main
import (
"bytes"
"net/http"
)
func main () {
headers := map [ string ][] string {
"Accept" : [] string { "application/json" },
}
data := bytes . NewBuffer ([] byte { jsonReq })
req , err := http . NewRequest ( "GET" , "/widget/campaign-live/exercise/{exerciseId}/ranking" , data )
req . Header = headers
client := & http . Client {}
resp , err := client . Do ( req )
// ...
}
GET /widget/campaign-live/exercise/{exerciseId}/ranking
Parameters
Name
In
Type
Required
Description
exerciseId
path
string(uuid)
true
none
timestamp
query
integer(int64)
false
none
Example responses
200 Response
[
{
"valueType" : "ARRAY"
}
]
Responses
Status
Meaning
Description
Schema
200
OK
[
{
"teamId":"3008c596-8cf1-4b68-a5f9-e089b973788d",
"teamName":"Team-10",
"score":10.0
},
{
"teamId":"3008c596-8cf1-4b68-a5f9-e089b973788d",
"teamName":"Team-20",
"score":20.5
}
]|Inline|
Response Schema
Status Code 200
Name
Type
Required
Restrictions
Description
anonymous
[JsonValue ]
false
none
none
» valueType
string
false
none
none
Enumerated Values
Property
Value
valueType
ARRAY
valueType
OBJECT
valueType
STRING
valueType
NUMBER
valueType
TRUE
valueType
FALSE
valueType
NULL
This operation does not require authentication
getCampaignLiveData
Code samples
# You can also use wget
curl -X GET /widget/campaign-live/exercise/{ exerciseId} /team/{ teamId} \
-H 'Accept: application/json'
GET /widget/campaign-live/exercise/{exerciseId}/team/{teamId} HTTP / 1.1
Accept: application/json
const headers = {
' Accept ' : ' application/json '
};
fetch ( ' /widget/campaign-live/exercise/{exerciseId}/team/{teamId} ' ,
{
method : ' GET ' ,
headers : headers
})
. then ( function ( res ) {
return res . json ();
}). then ( function ( body ) {
console . log ( body );
});
require 'rest-client'
require 'json'
headers = {
'Accept' => 'application/json'
}
result = RestClient . get '/widget/campaign-live/exercise/{exerciseId}/team/{teamId}' ,
params: {
}, headers: headers
p JSON . parse ( result )
import requests
headers = {
'Accept' : 'application/json'
}
r = requests . get ( '/widget/campaign-live/exercise/{exerciseId}/team/{teamId}' , headers = headers )
print ( r . json ())
<?php
require 'vendor/autoload.php' ;
$headers = array (
'Accept' => 'application/json' ,
);
$client = new \ GuzzleHttp\Client ();
// Define array of request body.
$request_body = array ();
try {
$response = $client -> request ( 'GET' , '/widget/campaign-live/exercise/{exerciseId}/team/{teamId}' , array (
'headers' => $headers ,
'json' => $request_body ,
)
);
print_r ( $response -> getBody () -> getContents ());
}
catch ( \ GuzzleHttp\Exception\BadResponseException $e ) {
// handle exception or api errors.
print_r ( $e -> getMessage ());
}
// ...
URL obj = new URL ( "/widget/campaign-live/exercise/{exerciseId}/team/{teamId}" );
HttpURLConnection con = ( HttpURLConnection ) obj . openConnection ();
con . setRequestMethod ( "GET" );
int responseCode = con . getResponseCode ();
BufferedReader in = new BufferedReader (
new InputStreamReader ( con . getInputStream ()));
String inputLine ;
StringBuffer response = new StringBuffer ();
while (( inputLine = in . readLine ()) != null ) {
response . append ( inputLine );
}
in . close ();
System . out . println ( response . toString ());
package main
import (
"bytes"
"net/http"
)
func main () {
headers := map [ string ][] string {
"Accept" : [] string { "application/json" },
}
data := bytes . NewBuffer ([] byte { jsonReq })
req , err := http . NewRequest ( "GET" , "/widget/campaign-live/exercise/{exerciseId}/team/{teamId}" , data )
req . Header = headers
client := & http . Client {}
resp , err := client . Do ( req )
// ...
}
GET /widget/campaign-live/exercise/{exerciseId}/team/{teamId}
Parameters
Name
In
Type
Required
Description
exerciseId
path
string(uuid)
true
none
teamId
path
string(uuid)
true
none
timestamp
query
integer(int64)
false
none
Example responses
200 Response
{
"teamId" : "a4ede8ba-7c0a-4485-8763-cbd9b282fbec" ,
"teamName" : "string" ,
"score" : 0 ,
"ranking" : 0 ,
"states" : {
"good" : 0 ,
"compromised" : 0 ,
"notAvailable" : 0
},
"networkSegments" : [
{
"id" : "497f6eca-6276-4993-bfeb-53cbbbba6f08" ,
"name" : "string" ,
"color" : "string" ,
"states" : {
"good" : 0 ,
"compromised" : 0 ,
"notAvailable" : 0
},
"isUnderAttack" : true
}
],
"targetGroups" : [
{
"name" : "string" ,
"targets" : [
{
"id" : "497f6eca-6276-4993-bfeb-53cbbbba6f08" ,
"name" : "string" ,
"targetChecks" : [
{
"id" : "497f6eca-6276-4993-bfeb-53cbbbba6f08" ,
"name" : "string" ,
"status" : "GOOD"
}
],
"networkSegmentId" : "da59500c-a661-45ab-94a0-11930236ec3b" ,
"isUnderAttack" : true ,
"isDeployed" : true
}
],
"isUnderAttack" : true
}
]
}
Responses
Status
Meaning
Description
Schema
200
OK
{
"teamId":"3008c596-8cf1-4b68-a5f9-e089b973788d",
"teamName":"Team-1",
"score":1486,
"ranking":10,
"states":{
"good":10,
"compromised":5,
"notAvailable":1
},
"networkSegments":[
{
"id":"a6a9c875-8084-4305-9d2b-2afd9e7beece",
"name":"DMZ",
"states":{
"good":10,
"compromised":5,
"notAvailable":1
},
"isUnderAttack":true
}
],
"targetGroups":[
{
"name":"Default",
"isUnderAttack":true,
"targets":[
{
"id":"aaf28481-18e9-4747-8c9e-13aaad9e6550",
"name":"team1_vm1_name1",
"networkSegmentId":"a6a9c875-8084-4305-9d2b-2afd9e7beece",
"isUnderAttack":true,
"targetChecks":[
{
"id":"c7c75726-0396-41a2-8bc0-295a8f4bdc2b",
"name":"team1_vm1_targetCheck1",
"status":"GOOD",
}
]
},
{
"id":"7993c5c8-a735-487a-8e03-58ca98c79eb0",
"name":"team1_vm5_name1",
"networkSegmentId":"a6a9c875-8084-4305-9d2b-2afd9e7beece",
"isUnderAttack":false,
"targetChecks":[
{
"id":"935ea515-b4a1-4c6f-8f3f-d3367d7ae810",
"name":"team1_vm2_targetCheck1",
"status":"COMPROMISED",
}
}
]
}
]
}|CampaignLiveWidgetData |
This operation does not require authentication
getAttackData
Code samples
# You can also use wget
curl -X GET /widget/campaign-live/exercise/{ exerciseId} /team/{ teamId} /attacks \
-H 'Accept: application/json'
GET /widget/campaign-live/exercise/{exerciseId}/team/{teamId}/attacks HTTP / 1.1
Accept: application/json
const headers = {
' Accept ' : ' application/json '
};
fetch ( ' /widget/campaign-live/exercise/{exerciseId}/team/{teamId}/attacks ' ,
{
method : ' GET ' ,
headers : headers
})
. then ( function ( res ) {
return res . json ();
}). then ( function ( body ) {
console . log ( body );
});
require 'rest-client'
require 'json'
headers = {
'Accept' => 'application/json'
}
result = RestClient . get '/widget/campaign-live/exercise/{exerciseId}/team/{teamId}/attacks' ,
params: {
}, headers: headers
p JSON . parse ( result )
import requests
headers = {
'Accept' : 'application/json'
}
r = requests . get ( '/widget/campaign-live/exercise/{exerciseId}/team/{teamId}/attacks' , headers = headers )
print ( r . json ())
<?php
require 'vendor/autoload.php' ;
$headers = array (
'Accept' => 'application/json' ,
);
$client = new \ GuzzleHttp\Client ();
// Define array of request body.
$request_body = array ();
try {
$response = $client -> request ( 'GET' , '/widget/campaign-live/exercise/{exerciseId}/team/{teamId}/attacks' , array (
'headers' => $headers ,
'json' => $request_body ,
)
);
print_r ( $response -> getBody () -> getContents ());
}
catch ( \ GuzzleHttp\Exception\BadResponseException $e ) {
// handle exception or api errors.
print_r ( $e -> getMessage ());
}
// ...
URL obj = new URL ( "/widget/campaign-live/exercise/{exerciseId}/team/{teamId}/attacks" );
HttpURLConnection con = ( HttpURLConnection ) obj . openConnection ();
con . setRequestMethod ( "GET" );
int responseCode = con . getResponseCode ();
BufferedReader in = new BufferedReader (
new InputStreamReader ( con . getInputStream ()));
String inputLine ;
StringBuffer response = new StringBuffer ();
while (( inputLine = in . readLine ()) != null ) {
response . append ( inputLine );
}
in . close ();
System . out . println ( response . toString ());
package main
import (
"bytes"
"net/http"
)
func main () {
headers := map [ string ][] string {
"Accept" : [] string { "application/json" },
}
data := bytes . NewBuffer ([] byte { jsonReq })
req , err := http . NewRequest ( "GET" , "/widget/campaign-live/exercise/{exerciseId}/team/{teamId}/attacks" , data )
req . Header = headers
client := & http . Client {}
resp , err := client . Do ( req )
// ...
}
GET /widget/campaign-live/exercise/{exerciseId}/team/{teamId}/attacks
Parameters
Name
In
Type
Required
Description
exerciseId
path
string(uuid)
true
none
teamId
path
string(uuid)
true
none
limit
query
integer(int32)
false
none
timestamp
query
integer(int64)
false
none
Example responses
200 Response
[
{
"exerciseId" : "71ba10b8-c6bd-49fd-9742-f8dbc8ccdb47" ,
"teamId" : "a4ede8ba-7c0a-4485-8763-cbd9b282fbec" ,
"objectiveContainerId" : "19719b61-3636-4c2c-9f9e-15e15bf34e46" ,
"objectiveContainerName" : "string" ,
"status" : "ATTACK_UNASSIGNED" ,
"timestamp" : 0
}
]
Responses
Status
Meaning
Description
Schema
200
OK
[
{
"exerciseId":"dfec7231-6212-42b3-9de9-c271533f61cb",
"teamId":"19d6820b-6afc-4b52-98f2-fa07a3e86fd3",
"objectiveContainerId":"750cb533-6b31-49ed-84c3-d49db7a80382",
"objectiveContainerName":"TargetCheck1",
"status":"UNDER_ATTACK",
"timestamp":"2017-06-21T09:31:20.619816269Z"
},
{
"exerciseId":"dfec7231-6212-42b3-9de9-c271533f61cb",
"teamId":"19d6820b-6afc-4b52-98f2-fa07a3e86fd3",
"objectiveContainerId":"e7b57e42-157e-4d44-8f02-20f59c63212f",
"objectiveContainerName":"TargetGroup1",
"status":"COMPROMISED",
"timestamp":"2017-06-21T09:31:20.619816269Z"
}
]|Inline|
Response Schema
Status Code 200
Name
Type
Required
Restrictions
Description
anonymous
[CampaignLiveAttackWidgetData ]
false
none
none
» exerciseId
string(uuid)
false
none
none
» teamId
string(uuid)
false
none
none
» objectiveContainerId
string(uuid)
false
none
none
» objectiveContainerName
string
false
none
none
» status
string
false
none
none
» timestamp
integer(int64)
false
none
none
Enumerated Values
Property
Value
status
ATTACK_UNASSIGNED
status
UNDER_ATTACK
status
COMPROMISED
status
FAILED
This operation does not require authentication
getReportData
Code samples
# You can also use wget
curl -X GET /widget/campaign-live/exercise/{ exerciseId} /team/{ teamId} /reports \
-H 'Accept: application/json'
GET /widget/campaign-live/exercise/{exerciseId}/team/{teamId}/reports HTTP / 1.1
Accept: application/json
const headers = {
' Accept ' : ' application/json '
};
fetch ( ' /widget/campaign-live/exercise/{exerciseId}/team/{teamId}/reports ' ,
{
method : ' GET ' ,
headers : headers
})
. then ( function ( res ) {
return res . json ();
}). then ( function ( body ) {
console . log ( body );
});
require 'rest-client'
require 'json'
headers = {
'Accept' => 'application/json'
}
result = RestClient . get '/widget/campaign-live/exercise/{exerciseId}/team/{teamId}/reports' ,
params: {
}, headers: headers
p JSON . parse ( result )
import requests
headers = {
'Accept' : 'application/json'
}
r = requests . get ( '/widget/campaign-live/exercise/{exerciseId}/team/{teamId}/reports' , headers = headers )
print ( r . json ())
<?php
require 'vendor/autoload.php' ;
$headers = array (
'Accept' => 'application/json' ,
);
$client = new \ GuzzleHttp\Client ();
// Define array of request body.
$request_body = array ();
try {
$response = $client -> request ( 'GET' , '/widget/campaign-live/exercise/{exerciseId}/team/{teamId}/reports' , array (
'headers' => $headers ,
'json' => $request_body ,
)
);
print_r ( $response -> getBody () -> getContents ());
}
catch ( \ GuzzleHttp\Exception\BadResponseException $e ) {
// handle exception or api errors.
print_r ( $e -> getMessage ());
}
// ...
URL obj = new URL ( "/widget/campaign-live/exercise/{exerciseId}/team/{teamId}/reports" );
HttpURLConnection con = ( HttpURLConnection ) obj . openConnection ();
con . setRequestMethod ( "GET" );
int responseCode = con . getResponseCode ();
BufferedReader in = new BufferedReader (
new InputStreamReader ( con . getInputStream ()));
String inputLine ;
StringBuffer response = new StringBuffer ();
while (( inputLine = in . readLine ()) != null ) {
response . append ( inputLine );
}
in . close ();
System . out . println ( response . toString ());
package main
import (
"bytes"
"net/http"
)
func main () {
headers := map [ string ][] string {
"Accept" : [] string { "application/json" },
}
data := bytes . NewBuffer ([] byte { jsonReq })
req , err := http . NewRequest ( "GET" , "/widget/campaign-live/exercise/{exerciseId}/team/{teamId}/reports" , data )
req . Header = headers
client := & http . Client {}
resp , err := client . Do ( req )
// ...
}
GET /widget/campaign-live/exercise/{exerciseId}/team/{teamId}/reports
Parameters
Name
In
Type
Required
Description
exerciseId
path
string(uuid)
true
none
teamId
path
string(uuid)
true
none
limit
query
integer(int32)
false
none
timestamp
query
integer(int64)
false
none
Example responses
200 Response
[
{
"exerciseId" : "71ba10b8-c6bd-49fd-9742-f8dbc8ccdb47" ,
"teamId" : "a4ede8ba-7c0a-4485-8763-cbd9b282fbec" ,
"timestamp" : 0 ,
"type" : "SITUATION_REPORT" ,
"targetId" : "cbca1126-180e-4334-9df8-cf82289d378b" ,
"incidentType" : "ONLINE"
}
]
Responses
Status
Meaning
Description
Schema
200
OK
[
{
"exerciseId":"dfec7231-6212-42b3-9de9-c271533f61cb",
"teamId":"19d6820b-6afc-4b52-98f2-fa07a3e86fd3",
"timestamp":"2017-06-17T03:40:51Z",
"type":"SITUATION_REPORT"
},
{
"exerciseId":"dfec7231-6212-42b3-9de9-c271533f61cb",
"teamId":"19d6820b-6afc-4b52-98f2-fa07a3e86fd3",
"timestamp":"2017-06-14T03:40:51Z",
"targetId":"52cbbddd-c52d-42a0-b452-0184f4d9402c",
"type":"INCIDENT",
"incidentType":"INFORMATION_GATHERING"
}
]|Inline|
Response Schema
Status Code 200
Name
Type
Required
Restrictions
Description
anonymous
[CampaignLiveReportWidgetData ]
false
none
none
» exerciseId
string(uuid)
false
none
none
» teamId
string(uuid)
false
none
none
» timestamp
integer(int64)
false
none
none
» type
string
false
none
none
» targetId
string(uuid)
false
none
none
» incidentType
string
false
none
none
Enumerated Values
Property
Value
type
SITUATION_REPORT
type
INCIDENT
incidentType
ONLINE
incidentType
OFFLINE
incidentType
COMPROMISED
incidentType
NOT_COMPROMISED
This operation does not require authentication
getGmaOverviewList
Code samples
# You can also use wget
curl -X GET /widget/gma \
-H 'Accept: application/json'
GET /widget/gma HTTP / 1.1
Accept: application/json
const headers = {
' Accept ' : ' application/json '
};
fetch ( ' /widget/gma ' ,
{
method : ' GET ' ,
headers : headers
})
. then ( function ( res ) {
return res . json ();
}). then ( function ( body ) {
console . log ( body );
});
require 'rest-client'
require 'json'
headers = {
'Accept' => 'application/json'
}
result = RestClient . get '/widget/gma' ,
params: {
}, headers: headers
p JSON . parse ( result )
import requests
headers = {
'Accept' : 'application/json'
}
r = requests . get ( '/widget/gma' , headers = headers )
print ( r . json ())
<?php
require 'vendor/autoload.php' ;
$headers = array (
'Accept' => 'application/json' ,
);
$client = new \ GuzzleHttp\Client ();
// Define array of request body.
$request_body = array ();
try {
$response = $client -> request ( 'GET' , '/widget/gma' , array (
'headers' => $headers ,
'json' => $request_body ,
)
);
print_r ( $response -> getBody () -> getContents ());
}
catch ( \ GuzzleHttp\Exception\BadResponseException $e ) {
// handle exception or api errors.
print_r ( $e -> getMessage ());
}
// ...
URL obj = new URL ( "/widget/gma" );
HttpURLConnection con = ( HttpURLConnection ) obj . openConnection ();
con . setRequestMethod ( "GET" );
int responseCode = con . getResponseCode ();
BufferedReader in = new BufferedReader (
new InputStreamReader ( con . getInputStream ()));
String inputLine ;
StringBuffer response = new StringBuffer ();
while (( inputLine = in . readLine ()) != null ) {
response . append ( inputLine );
}
in . close ();
System . out . println ( response . toString ());
package main
import (
"bytes"
"net/http"
)
func main () {
headers := map [ string ][] string {
"Accept" : [] string { "application/json" },
}
data := bytes . NewBuffer ([] byte { jsonReq })
req , err := http . NewRequest ( "GET" , "/widget/gma" , data )
req . Header = headers
client := & http . Client {}
resp , err := client . Do ( req )
// ...
}
GET /widget/gma
Example responses
200 Response
[
{
"id" : "497f6eca-6276-4993-bfeb-53cbbbba6f08" ,
"ipAddress" : "string" ,
"registered" : 0 ,
"latestActivityTimestamp" : 0 ,
"exercises" : [
{
"id" : "497f6eca-6276-4993-bfeb-53cbbbba6f08" ,
"name" : "string" ,
"teams" : [
{
"id" : "497f6eca-6276-4993-bfeb-53cbbbba6f08" ,
"name" : "string"
}
]
}
]
}
]
Responses
Status
Meaning
Description
Schema
200
OK
successful operation
Inline
Response Schema
Status Code 200
Name
Type
Required
Restrictions
Description
anonymous
[GmaOverview ]
false
none
none
» id
string(uuid)
false
none
none
» ipAddress
string
false
none
none
» registered
integer(int64)
false
none
none
» latestActivityTimestamp
integer(int64)
false
none
none
» exercises
[GmaExerciseOverview ]
false
none
none
»» id
string(uuid)
false
none
none
»» name
string
false
none
none
»» teams
[GmaTeamOverview ]
false
none
none
»»» id
string(uuid)
false
none
none
»»» name
string
false
none
none
This operation does not require authentication
saveReports
Code samples
# You can also use wget
curl -X POST /widget/incident-report/exercise/{ exerciseId} /team/{ teamId}
POST /widget/incident-report/exercise/{exerciseId}/team/{teamId} HTTP / 1.1
fetch ( ' /widget/incident-report/exercise/{exerciseId}/team/{teamId} ' ,
{
method : ' POST '
})
. then ( function ( res ) {
return res . json ();
}). then ( function ( body ) {
console . log ( body );
});
require 'rest-client'
require 'json'
result = RestClient . post '/widget/incident-report/exercise/{exerciseId}/team/{teamId}' ,
params: {
}
p JSON . parse ( result )
import requests
r = requests . post ( '/widget/incident-report/exercise/{exerciseId}/team/{teamId}' )
print ( r . json ())
<?php
require 'vendor/autoload.php' ;
$client = new \ GuzzleHttp\Client ();
// Define array of request body.
$request_body = array ();
try {
$response = $client -> request ( 'POST' , '/widget/incident-report/exercise/{exerciseId}/team/{teamId}' , array (
'headers' => $headers ,
'json' => $request_body ,
)
);
print_r ( $response -> getBody () -> getContents ());
}
catch ( \ GuzzleHttp\Exception\BadResponseException $e ) {
// handle exception or api errors.
print_r ( $e -> getMessage ());
}
// ...
URL obj = new URL ( "/widget/incident-report/exercise/{exerciseId}/team/{teamId}" );
HttpURLConnection con = ( HttpURLConnection ) obj . openConnection ();
con . setRequestMethod ( "POST" );
int responseCode = con . getResponseCode ();
BufferedReader in = new BufferedReader (
new InputStreamReader ( con . getInputStream ()));
String inputLine ;
StringBuffer response = new StringBuffer ();
while (( inputLine = in . readLine ()) != null ) {
response . append ( inputLine );
}
in . close ();
System . out . println ( response . toString ());
package main
import (
"bytes"
"net/http"
)
func main () {
data := bytes . NewBuffer ([] byte { jsonReq })
req , err := http . NewRequest ( "POST" , "/widget/incident-report/exercise/{exerciseId}/team/{teamId}" , data )
req . Header = headers
client := & http . Client {}
resp , err := client . Do ( req )
// ...
}
POST /widget/incident-report/exercise/{exerciseId}/team/{teamId}
Parameters
Name
In
Type
Required
Description
exerciseId
path
string(uuid)
true
none
teamId
path
string(uuid)
true
none
Responses
Status
Meaning
Description
Schema
default
Default
successful operation
None
This operation does not require authentication
getIncidentTypes
Code samples
# You can also use wget
curl -X GET /widget/incident-report/exercise/{ exerciseId} /types \
-H 'Accept: application/json'
GET /widget/incident-report/exercise/{exerciseId}/types HTTP / 1.1
Accept: application/json
const headers = {
' Accept ' : ' application/json '
};
fetch ( ' /widget/incident-report/exercise/{exerciseId}/types ' ,
{
method : ' GET ' ,
headers : headers
})
. then ( function ( res ) {
return res . json ();
}). then ( function ( body ) {
console . log ( body );
});
require 'rest-client'
require 'json'
headers = {
'Accept' => 'application/json'
}
result = RestClient . get '/widget/incident-report/exercise/{exerciseId}/types' ,
params: {
}, headers: headers
p JSON . parse ( result )
import requests
headers = {
'Accept' : 'application/json'
}
r = requests . get ( '/widget/incident-report/exercise/{exerciseId}/types' , headers = headers )
print ( r . json ())
<?php
require 'vendor/autoload.php' ;
$headers = array (
'Accept' => 'application/json' ,
);
$client = new \ GuzzleHttp\Client ();
// Define array of request body.
$request_body = array ();
try {
$response = $client -> request ( 'GET' , '/widget/incident-report/exercise/{exerciseId}/types' , array (
'headers' => $headers ,
'json' => $request_body ,
)
);
print_r ( $response -> getBody () -> getContents ());
}
catch ( \ GuzzleHttp\Exception\BadResponseException $e ) {
// handle exception or api errors.
print_r ( $e -> getMessage ());
}
// ...
URL obj = new URL ( "/widget/incident-report/exercise/{exerciseId}/types" );
HttpURLConnection con = ( HttpURLConnection ) obj . openConnection ();
con . setRequestMethod ( "GET" );
int responseCode = con . getResponseCode ();
BufferedReader in = new BufferedReader (
new InputStreamReader ( con . getInputStream ()));
String inputLine ;
StringBuffer response = new StringBuffer ();
while (( inputLine = in . readLine ()) != null ) {
response . append ( inputLine );
}
in . close ();
System . out . println ( response . toString ());
package main
import (
"bytes"
"net/http"
)
func main () {
headers := map [ string ][] string {
"Accept" : [] string { "application/json" },
}
data := bytes . NewBuffer ([] byte { jsonReq })
req , err := http . NewRequest ( "GET" , "/widget/incident-report/exercise/{exerciseId}/types" , data )
req . Header = headers
client := & http . Client {}
resp , err := client . Do ( req )
// ...
}
GET /widget/incident-report/exercise/{exerciseId}/types
Parameters
Name
In
Type
Required
Description
exerciseId
path
string(uuid)
true
none
Example responses
200 Response
Responses
Status
Meaning
Description
Schema
200
OK
successful operation
Inline
Response Schema
This operation does not require authentication
getIncidentReports
Code samples
# You can also use wget
curl -X GET /widget/reporting-status/exercise/{ exerciseId} /objective/{ objectiveId} /incident-report \
-H 'Accept: application/json'
GET /widget/reporting-status/exercise/{exerciseId}/objective/{objectiveId}/incident-report HTTP / 1.1
Accept: application/json
const headers = {
' Accept ' : ' application/json '
};
fetch ( ' /widget/reporting-status/exercise/{exerciseId}/objective/{objectiveId}/incident-report ' ,
{
method : ' GET ' ,
headers : headers
})
. then ( function ( res ) {
return res . json ();
}). then ( function ( body ) {
console . log ( body );
});
require 'rest-client'
require 'json'
headers = {
'Accept' => 'application/json'
}
result = RestClient . get '/widget/reporting-status/exercise/{exerciseId}/objective/{objectiveId}/incident-report' ,
params: {
}, headers: headers
p JSON . parse ( result )
import requests
headers = {
'Accept' : 'application/json'
}
r = requests . get ( '/widget/reporting-status/exercise/{exerciseId}/objective/{objectiveId}/incident-report' , headers = headers )
print ( r . json ())
<?php
require 'vendor/autoload.php' ;
$headers = array (
'Accept' => 'application/json' ,
);
$client = new \ GuzzleHttp\Client ();
// Define array of request body.
$request_body = array ();
try {
$response = $client -> request ( 'GET' , '/widget/reporting-status/exercise/{exerciseId}/objective/{objectiveId}/incident-report' , array (
'headers' => $headers ,
'json' => $request_body ,
)
);
print_r ( $response -> getBody () -> getContents ());
}
catch ( \ GuzzleHttp\Exception\BadResponseException $e ) {
// handle exception or api errors.
print_r ( $e -> getMessage ());
}
// ...
URL obj = new URL ( "/widget/reporting-status/exercise/{exerciseId}/objective/{objectiveId}/incident-report" );
HttpURLConnection con = ( HttpURLConnection ) obj . openConnection ();
con . setRequestMethod ( "GET" );
int responseCode = con . getResponseCode ();
BufferedReader in = new BufferedReader (
new InputStreamReader ( con . getInputStream ()));
String inputLine ;
StringBuffer response = new StringBuffer ();
while (( inputLine = in . readLine ()) != null ) {
response . append ( inputLine );
}
in . close ();
System . out . println ( response . toString ());
package main
import (
"bytes"
"net/http"
)
func main () {
headers := map [ string ][] string {
"Accept" : [] string { "application/json" },
}
data := bytes . NewBuffer ([] byte { jsonReq })
req , err := http . NewRequest ( "GET" , "/widget/reporting-status/exercise/{exerciseId}/objective/{objectiveId}/incident-report" , data )
req . Header = headers
client := & http . Client {}
resp , err := client . Do ( req )
// ...
}
GET /widget/reporting-status/exercise/{exerciseId}/objective/{objectiveId}/incident-report
Parameters
Name
In
Type
Required
Description
exerciseId
path
string(uuid)
true
none
objectiveId
path
string(uuid)
true
none
Example responses
200 Response
[
{
"id" : "497f6eca-6276-4993-bfeb-53cbbbba6f08" ,
"teamId" : "a4ede8ba-7c0a-4485-8763-cbd9b282fbec" ,
"exerciseId" : "71ba10b8-c6bd-49fd-9742-f8dbc8ccdb47" ,
"username" : "string" ,
"timestamp" : 0 ,
"networkSegmentId" : "da59500c-a661-45ab-94a0-11930236ec3b" ,
"targetId" : "cbca1126-180e-4334-9df8-cf82289d378b" ,
"targetCheckId" : "e6bd6631-9fae-481a-af78-b92fff1729e4" ,
"incidentType" : "ONLINE" ,
"details" : "string"
}
]
Responses
Status
Meaning
Description
Schema
200
OK
successful operation
Inline
Response Schema
Status Code 200
Name
Type
Required
Restrictions
Description
anonymous
[IncidentReport ]
false
none
none
» id
string(uuid)
false
none
none
» teamId
string(uuid)
false
none
none
» exerciseId
string(uuid)
false
none
none
» username
string
false
none
none
» timestamp
integer(int64)
false
none
none
» networkSegmentId
string(uuid)
false
none
none
» targetId
string(uuid)
false
none
none
» targetCheckId
string(uuid)
false
none
none
» incidentType
string
false
none
none
» details
string
false
none
none
Enumerated Values
Property
Value
incidentType
ONLINE
incidentType
OFFLINE
incidentType
COMPROMISED
incidentType
NOT_COMPROMISED
This operation does not require authentication
getSpecialScoringMessageDetails
Code samples
# You can also use wget
curl -X GET /widget/scoring-log/exercise/{ exerciseId} /teams/{ teamId} /messages/{ messageId} /details \
-H 'Accept: */*'
GET /widget/scoring-log/exercise/{exerciseId}/teams/{teamId}/messages/{messageId}/details HTTP / 1.1
Accept: */*
const headers = {
' Accept ' : ' */* '
};
fetch ( ' /widget/scoring-log/exercise/{exerciseId}/teams/{teamId}/messages/{messageId}/details ' ,
{
method : ' GET ' ,
headers : headers
})
. then ( function ( res ) {
return res . json ();
}). then ( function ( body ) {
console . log ( body );
});
require 'rest-client'
require 'json'
headers = {
'Accept' => '*/*'
}
result = RestClient . get '/widget/scoring-log/exercise/{exerciseId}/teams/{teamId}/messages/{messageId}/details' ,
params: {
}, headers: headers
p JSON . parse ( result )
import requests
headers = {
'Accept' : '*/*'
}
r = requests . get ( '/widget/scoring-log/exercise/{exerciseId}/teams/{teamId}/messages/{messageId}/details' , headers = headers )
print ( r . json ())
<?php
require 'vendor/autoload.php' ;
$headers = array (
'Accept' => '*/*' ,
);
$client = new \ GuzzleHttp\Client ();
// Define array of request body.
$request_body = array ();
try {
$response = $client -> request ( 'GET' , '/widget/scoring-log/exercise/{exerciseId}/teams/{teamId}/messages/{messageId}/details' , array (
'headers' => $headers ,
'json' => $request_body ,
)
);
print_r ( $response -> getBody () -> getContents ());
}
catch ( \ GuzzleHttp\Exception\BadResponseException $e ) {
// handle exception or api errors.
print_r ( $e -> getMessage ());
}
// ...
URL obj = new URL ( "/widget/scoring-log/exercise/{exerciseId}/teams/{teamId}/messages/{messageId}/details" );
HttpURLConnection con = ( HttpURLConnection ) obj . openConnection ();
con . setRequestMethod ( "GET" );
int responseCode = con . getResponseCode ();
BufferedReader in = new BufferedReader (
new InputStreamReader ( con . getInputStream ()));
String inputLine ;
StringBuffer response = new StringBuffer ();
while (( inputLine = in . readLine ()) != null ) {
response . append ( inputLine );
}
in . close ();
System . out . println ( response . toString ());
package main
import (
"bytes"
"net/http"
)
func main () {
headers := map [ string ][] string {
"Accept" : [] string { "*/*" },
}
data := bytes . NewBuffer ([] byte { jsonReq })
req , err := http . NewRequest ( "GET" , "/widget/scoring-log/exercise/{exerciseId}/teams/{teamId}/messages/{messageId}/details" , data )
req . Header = headers
client := & http . Client {}
resp , err := client . Do ( req )
// ...
}
GET /widget/scoring-log/exercise/{exerciseId}/teams/{teamId}/messages/{messageId}/details
Parameters
Name
In
Type
Required
Description
exerciseId
path
string(uuid)
true
none
teamId
path
string(uuid)
true
none
messageId
path
string(uuid)
true
none
Example responses
200 Response
Responses
This operation does not require authentication
getReportDataById
Code samples
# You can also use wget
curl -X GET /widget/situation-reports/exercise/{ exerciseId} /team/{ teamId} /report/{ reportId} \
-H 'Accept: application/json'
GET /widget/situation-reports/exercise/{exerciseId}/team/{teamId}/report/{reportId} HTTP / 1.1
Accept: application/json
const headers = {
' Accept ' : ' application/json '
};
fetch ( ' /widget/situation-reports/exercise/{exerciseId}/team/{teamId}/report/{reportId} ' ,
{
method : ' GET ' ,
headers : headers
})
. then ( function ( res ) {
return res . json ();
}). then ( function ( body ) {
console . log ( body );
});
require 'rest-client'
require 'json'
headers = {
'Accept' => 'application/json'
}
result = RestClient . get '/widget/situation-reports/exercise/{exerciseId}/team/{teamId}/report/{reportId}' ,
params: {
}, headers: headers
p JSON . parse ( result )
import requests
headers = {
'Accept' : 'application/json'
}
r = requests . get ( '/widget/situation-reports/exercise/{exerciseId}/team/{teamId}/report/{reportId}' , headers = headers )
print ( r . json ())
<?php
require 'vendor/autoload.php' ;
$headers = array (
'Accept' => 'application/json' ,
);
$client = new \ GuzzleHttp\Client ();
// Define array of request body.
$request_body = array ();
try {
$response = $client -> request ( 'GET' , '/widget/situation-reports/exercise/{exerciseId}/team/{teamId}/report/{reportId}' , array (
'headers' => $headers ,
'json' => $request_body ,
)
);
print_r ( $response -> getBody () -> getContents ());
}
catch ( \ GuzzleHttp\Exception\BadResponseException $e ) {
// handle exception or api errors.
print_r ( $e -> getMessage ());
}
// ...
URL obj = new URL ( "/widget/situation-reports/exercise/{exerciseId}/team/{teamId}/report/{reportId}" );
HttpURLConnection con = ( HttpURLConnection ) obj . openConnection ();
con . setRequestMethod ( "GET" );
int responseCode = con . getResponseCode ();
BufferedReader in = new BufferedReader (
new InputStreamReader ( con . getInputStream ()));
String inputLine ;
StringBuffer response = new StringBuffer ();
while (( inputLine = in . readLine ()) != null ) {
response . append ( inputLine );
}
in . close ();
System . out . println ( response . toString ());
package main
import (
"bytes"
"net/http"
)
func main () {
headers := map [ string ][] string {
"Accept" : [] string { "application/json" },
}
data := bytes . NewBuffer ([] byte { jsonReq })
req , err := http . NewRequest ( "GET" , "/widget/situation-reports/exercise/{exerciseId}/team/{teamId}/report/{reportId}" , data )
req . Header = headers
client := & http . Client {}
resp , err := client . Do ( req )
// ...
}
GET /widget/situation-reports/exercise/{exerciseId}/team/{teamId}/report/{reportId}
Parameters
Name
In
Type
Required
Description
exerciseId
path
string(uuid)
true
none
teamId
path
string(uuid)
true
none
reportId
path
string(uuid)
true
none
Example responses
200 Response
{
"id" : "497f6eca-6276-4993-bfeb-53cbbbba6f08" ,
"teamId" : "a4ede8ba-7c0a-4485-8763-cbd9b282fbec" ,
"exerciseId" : "71ba10b8-c6bd-49fd-9742-f8dbc8ccdb47" ,
"username" : "string" ,
"timestamp" : 0 ,
"reportText" : "string"
}
Responses
This operation does not require authentication
saveSpecialScore
Code samples
# You can also use wget
curl -X POST /widget/special-scoring/exercise/{ exerciseId}
POST /widget/special-scoring/exercise/{exerciseId} HTTP / 1.1
fetch ( ' /widget/special-scoring/exercise/{exerciseId} ' ,
{
method : ' POST '
})
. then ( function ( res ) {
return res . json ();
}). then ( function ( body ) {
console . log ( body );
});
require 'rest-client'
require 'json'
result = RestClient . post '/widget/special-scoring/exercise/{exerciseId}' ,
params: {
}
p JSON . parse ( result )
import requests
r = requests . post ( '/widget/special-scoring/exercise/{exerciseId}' )
print ( r . json ())
<?php
require 'vendor/autoload.php' ;
$client = new \ GuzzleHttp\Client ();
// Define array of request body.
$request_body = array ();
try {
$response = $client -> request ( 'POST' , '/widget/special-scoring/exercise/{exerciseId}' , array (
'headers' => $headers ,
'json' => $request_body ,
)
);
print_r ( $response -> getBody () -> getContents ());
}
catch ( \ GuzzleHttp\Exception\BadResponseException $e ) {
// handle exception or api errors.
print_r ( $e -> getMessage ());
}
// ...
URL obj = new URL ( "/widget/special-scoring/exercise/{exerciseId}" );
HttpURLConnection con = ( HttpURLConnection ) obj . openConnection ();
con . setRequestMethod ( "POST" );
int responseCode = con . getResponseCode ();
BufferedReader in = new BufferedReader (
new InputStreamReader ( con . getInputStream ()));
String inputLine ;
StringBuffer response = new StringBuffer ();
while (( inputLine = in . readLine ()) != null ) {
response . append ( inputLine );
}
in . close ();
System . out . println ( response . toString ());
package main
import (
"bytes"
"net/http"
)
func main () {
data := bytes . NewBuffer ([] byte { jsonReq })
req , err := http . NewRequest ( "POST" , "/widget/special-scoring/exercise/{exerciseId}" , data )
req . Header = headers
client := & http . Client {}
resp , err := client . Do ( req )
// ...
}
POST /widget/special-scoring/exercise/{exerciseId}
Saves submitted special score for the given team
{
"teamId":"string/uuid",
"score":"(+/-)int",
"description":"string"
}
Parameters
Name
In
Type
Required
Description
exerciseId
path
string(uuid)
true
none
Responses
Status
Meaning
Description
Schema
default
Default
successful operation
None
This operation does not require authentication
getLatest
Code samples
# You can also use wget
curl -X GET /widget/team-timeline/exercise/{ exerciseId} /team/{ teamId} /latest \
-H 'Accept: application/json'
GET /widget/team-timeline/exercise/{exerciseId}/team/{teamId}/latest HTTP / 1.1
Accept: application/json
const headers = {
' Accept ' : ' application/json '
};
fetch ( ' /widget/team-timeline/exercise/{exerciseId}/team/{teamId}/latest ' ,
{
method : ' GET ' ,
headers : headers
})
. then ( function ( res ) {
return res . json ();
}). then ( function ( body ) {
console . log ( body );
});
require 'rest-client'
require 'json'
headers = {
'Accept' => 'application/json'
}
result = RestClient . get '/widget/team-timeline/exercise/{exerciseId}/team/{teamId}/latest' ,
params: {
}, headers: headers
p JSON . parse ( result )
import requests
headers = {
'Accept' : 'application/json'
}
r = requests . get ( '/widget/team-timeline/exercise/{exerciseId}/team/{teamId}/latest' , headers = headers )
print ( r . json ())
<?php
require 'vendor/autoload.php' ;
$headers = array (
'Accept' => 'application/json' ,
);
$client = new \ GuzzleHttp\Client ();
// Define array of request body.
$request_body = array ();
try {
$response = $client -> request ( 'GET' , '/widget/team-timeline/exercise/{exerciseId}/team/{teamId}/latest' , array (
'headers' => $headers ,
'json' => $request_body ,
)
);
print_r ( $response -> getBody () -> getContents ());
}
catch ( \ GuzzleHttp\Exception\BadResponseException $e ) {
// handle exception or api errors.
print_r ( $e -> getMessage ());
}
// ...
URL obj = new URL ( "/widget/team-timeline/exercise/{exerciseId}/team/{teamId}/latest" );
HttpURLConnection con = ( HttpURLConnection ) obj . openConnection ();
con . setRequestMethod ( "GET" );
int responseCode = con . getResponseCode ();
BufferedReader in = new BufferedReader (
new InputStreamReader ( con . getInputStream ()));
String inputLine ;
StringBuffer response = new StringBuffer ();
while (( inputLine = in . readLine ()) != null ) {
response . append ( inputLine );
}
in . close ();
System . out . println ( response . toString ());
package main
import (
"bytes"
"net/http"
)
func main () {
headers := map [ string ][] string {
"Accept" : [] string { "application/json" },
}
data := bytes . NewBuffer ([] byte { jsonReq })
req , err := http . NewRequest ( "GET" , "/widget/team-timeline/exercise/{exerciseId}/team/{teamId}/latest" , data )
req . Header = headers
client := & http . Client {}
resp , err := client . Do ( req )
// ...
}
GET /widget/team-timeline/exercise/{exerciseId}/team/{teamId}/latest
Parameters
Name
In
Type
Required
Description
exerciseId
path
string(uuid)
true
none
teamId
path
string(uuid)
true
none
Example responses
200 Response
[
{
"valueType" : "ARRAY"
}
]
Responses
Status
Meaning
Description
Schema
200
OK
[
{
"category":"TOTAL",
"scores":[
{
"timestamp":"2017-06-22T09:16:12.189Z",
"value":1300.6,
"isEndex":true
}
]
},
{
"category":"AVAILABILITY",
"scores":[
{
"timestamp":"2017-06-22T09:15:12.189Z",
"value":1246.0,
"isEndex":true
}
]
},
{
"category":"ATTACK_REPORTS",
"scores":[
{
"timestamp":"2017-06-22T09:15:12.189Z",
"value":105.1,
"isEndex":true
}
]
}
]|Inline|
Response Schema
Status Code 200
Name
Type
Required
Restrictions
Description
anonymous
[JsonValue ]
false
none
none
» valueType
string
false
none
none
Enumerated Values
Property
Value
valueType
ARRAY
valueType
OBJECT
valueType
STRING
valueType
NUMBER
valueType
TRUE
valueType
FALSE
valueType
NULL
This operation does not require authentication
assignTargetChecks
Code samples
# You can also use wget
curl -X POST /widget/target-status/exercise/{ exerciseId} /team/{ teamId} /target/{ targetId} /assign-checks
POST /widget/target-status/exercise/{exerciseId}/team/{teamId}/target/{targetId}/assign-checks HTTP / 1.1
fetch ( ' /widget/target-status/exercise/{exerciseId}/team/{teamId}/target/{targetId}/assign-checks ' ,
{
method : ' POST '
})
. then ( function ( res ) {
return res . json ();
}). then ( function ( body ) {
console . log ( body );
});
require 'rest-client'
require 'json'
result = RestClient . post '/widget/target-status/exercise/{exerciseId}/team/{teamId}/target/{targetId}/assign-checks' ,
params: {
}
p JSON . parse ( result )
import requests
r = requests . post ( '/widget/target-status/exercise/{exerciseId}/team/{teamId}/target/{targetId}/assign-checks' )
print ( r . json ())
<?php
require 'vendor/autoload.php' ;
$client = new \ GuzzleHttp\Client ();
// Define array of request body.
$request_body = array ();
try {
$response = $client -> request ( 'POST' , '/widget/target-status/exercise/{exerciseId}/team/{teamId}/target/{targetId}/assign-checks' , array (
'headers' => $headers ,
'json' => $request_body ,
)
);
print_r ( $response -> getBody () -> getContents ());
}
catch ( \ GuzzleHttp\Exception\BadResponseException $e ) {
// handle exception or api errors.
print_r ( $e -> getMessage ());
}
// ...
URL obj = new URL ( "/widget/target-status/exercise/{exerciseId}/team/{teamId}/target/{targetId}/assign-checks" );
HttpURLConnection con = ( HttpURLConnection ) obj . openConnection ();
con . setRequestMethod ( "POST" );
int responseCode = con . getResponseCode ();
BufferedReader in = new BufferedReader (
new InputStreamReader ( con . getInputStream ()));
String inputLine ;
StringBuffer response = new StringBuffer ();
while (( inputLine = in . readLine ()) != null ) {
response . append ( inputLine );
}
in . close ();
System . out . println ( response . toString ());
package main
import (
"bytes"
"net/http"
)
func main () {
data := bytes . NewBuffer ([] byte { jsonReq })
req , err := http . NewRequest ( "POST" , "/widget/target-status/exercise/{exerciseId}/team/{teamId}/target/{targetId}/assign-checks" , data )
req . Header = headers
client := & http . Client {}
resp , err := client . Do ( req )
// ...
}
POST /widget/target-status/exercise/{exerciseId}/team/{teamId}/target/{targetId}/assign-checks
Parameters
Name
In
Type
Required
Description
exerciseId
path
string(uuid)
true
none
teamId
path
string(uuid)
true
none
targetId
path
string(uuid)
true
none
Responses
Status
Meaning
Description
Schema
default
Default
successful operation
None
This operation does not require authentication
getUsers
Code samples
# You can also use wget
curl -X GET /widget/users \
-H 'Accept: application/json'
GET /widget/users HTTP / 1.1
Accept: application/json
const headers = {
' Accept ' : ' application/json '
};
fetch ( ' /widget/users ' ,
{
method : ' GET ' ,
headers : headers
})
. then ( function ( res ) {
return res . json ();
}). then ( function ( body ) {
console . log ( body );
});
require 'rest-client'
require 'json'
headers = {
'Accept' => 'application/json'
}
result = RestClient . get '/widget/users' ,
params: {
}, headers: headers
p JSON . parse ( result )
import requests
headers = {
'Accept' : 'application/json'
}
r = requests . get ( '/widget/users' , headers = headers )
print ( r . json ())
<?php
require 'vendor/autoload.php' ;
$headers = array (
'Accept' => 'application/json' ,
);
$client = new \ GuzzleHttp\Client ();
// Define array of request body.
$request_body = array ();
try {
$response = $client -> request ( 'GET' , '/widget/users' , array (
'headers' => $headers ,
'json' => $request_body ,
)
);
print_r ( $response -> getBody () -> getContents ());
}
catch ( \ GuzzleHttp\Exception\BadResponseException $e ) {
// handle exception or api errors.
print_r ( $e -> getMessage ());
}
// ...
URL obj = new URL ( "/widget/users" );
HttpURLConnection con = ( HttpURLConnection ) obj . openConnection ();
con . setRequestMethod ( "GET" );
int responseCode = con . getResponseCode ();
BufferedReader in = new BufferedReader (
new InputStreamReader ( con . getInputStream ()));
String inputLine ;
StringBuffer response = new StringBuffer ();
while (( inputLine = in . readLine ()) != null ) {
response . append ( inputLine );
}
in . close ();
System . out . println ( response . toString ());
package main
import (
"bytes"
"net/http"
)
func main () {
headers := map [ string ][] string {
"Accept" : [] string { "application/json" },
}
data := bytes . NewBuffer ([] byte { jsonReq })
req , err := http . NewRequest ( "GET" , "/widget/users" , data )
req . Header = headers
client := & http . Client {}
resp , err := client . Do ( req )
// ...
}
GET /widget/users
Example responses
200 Response
[
{
"username" : "string" ,
"fullName" : "string" ,
"origin" : "LDAP"
}
]
Responses
Status
Meaning
Description
Schema
200
OK
successful operation
Inline
Response Schema
Status Code 200
Name
Type
Required
Restrictions
Description
anonymous
[UserListDTO ]
false
none
none
» username
string
false
none
none
» fullName
string
false
none
none
» origin
string
false
none
none
Enumerated Values
Property
Value
origin
LDAP
origin
LOCAL
origin
OBSERVER
origin
UNKNOWN
origin
EXTERNAL
This operation does not require authentication
createUser
Code samples
# You can also use wget
curl -X POST /widget/users
POST /widget/users HTTP / 1.1
fetch ( ' /widget/users ' ,
{
method : ' POST '
})
. then ( function ( res ) {
return res . json ();
}). then ( function ( body ) {
console . log ( body );
});
require 'rest-client'
require 'json'
result = RestClient . post '/widget/users' ,
params: {
}
p JSON . parse ( result )
import requests
r = requests . post ( '/widget/users' )
print ( r . json ())
<?php
require 'vendor/autoload.php' ;
$client = new \ GuzzleHttp\Client ();
// Define array of request body.
$request_body = array ();
try {
$response = $client -> request ( 'POST' , '/widget/users' , array (
'headers' => $headers ,
'json' => $request_body ,
)
);
print_r ( $response -> getBody () -> getContents ());
}
catch ( \ GuzzleHttp\Exception\BadResponseException $e ) {
// handle exception or api errors.
print_r ( $e -> getMessage ());
}
// ...
URL obj = new URL ( "/widget/users" );
HttpURLConnection con = ( HttpURLConnection ) obj . openConnection ();
con . setRequestMethod ( "POST" );
int responseCode = con . getResponseCode ();
BufferedReader in = new BufferedReader (
new InputStreamReader ( con . getInputStream ()));
String inputLine ;
StringBuffer response = new StringBuffer ();
while (( inputLine = in . readLine ()) != null ) {
response . append ( inputLine );
}
in . close ();
System . out . println ( response . toString ());
package main
import (
"bytes"
"net/http"
)
func main () {
data := bytes . NewBuffer ([] byte { jsonReq })
req , err := http . NewRequest ( "POST" , "/widget/users" , data )
req . Header = headers
client := & http . Client {}
resp , err := client . Do ( req )
// ...
}
POST /widget/users
Responses
Status
Meaning
Description
Schema
default
Default
successful operation
None
This operation does not require authentication
getUser
Code samples
# You can also use wget
curl -X GET /widget/users/{ username} \
-H 'Accept: application/json'
GET /widget/users/{username} HTTP / 1.1
Accept: application/json
const headers = {
' Accept ' : ' application/json '
};
fetch ( ' /widget/users/{username} ' ,
{
method : ' GET ' ,
headers : headers
})
. then ( function ( res ) {
return res . json ();
}). then ( function ( body ) {
console . log ( body );
});
require 'rest-client'
require 'json'
headers = {
'Accept' => 'application/json'
}
result = RestClient . get '/widget/users/{username}' ,
params: {
}, headers: headers
p JSON . parse ( result )
import requests
headers = {
'Accept' : 'application/json'
}
r = requests . get ( '/widget/users/{username}' , headers = headers )
print ( r . json ())
<?php
require 'vendor/autoload.php' ;
$headers = array (
'Accept' => 'application/json' ,
);
$client = new \ GuzzleHttp\Client ();
// Define array of request body.
$request_body = array ();
try {
$response = $client -> request ( 'GET' , '/widget/users/{username}' , array (
'headers' => $headers ,
'json' => $request_body ,
)
);
print_r ( $response -> getBody () -> getContents ());
}
catch ( \ GuzzleHttp\Exception\BadResponseException $e ) {
// handle exception or api errors.
print_r ( $e -> getMessage ());
}
// ...
URL obj = new URL ( "/widget/users/{username}" );
HttpURLConnection con = ( HttpURLConnection ) obj . openConnection ();
con . setRequestMethod ( "GET" );
int responseCode = con . getResponseCode ();
BufferedReader in = new BufferedReader (
new InputStreamReader ( con . getInputStream ()));
String inputLine ;
StringBuffer response = new StringBuffer ();
while (( inputLine = in . readLine ()) != null ) {
response . append ( inputLine );
}
in . close ();
System . out . println ( response . toString ());
package main
import (
"bytes"
"net/http"
)
func main () {
headers := map [ string ][] string {
"Accept" : [] string { "application/json" },
}
data := bytes . NewBuffer ([] byte { jsonReq })
req , err := http . NewRequest ( "GET" , "/widget/users/{username}" , data )
req . Header = headers
client := & http . Client {}
resp , err := client . Do ( req )
// ...
}
GET /widget/users/{username}
Parameters
Name
In
Type
Required
Description
username
path
string
true
none
Example responses
200 Response
{
"username" : "string" ,
"fullName" : "string" ,
"roles" : [
{
"code" : "string" ,
"description" : "string" ,
"targetsByDomain" : {
"property1" : [
"string"
],
"property2" : [
"string"
]
}
}
]
}
Responses
Status
Meaning
Description
Schema
200
OK
successful operation
UserDetailDTO
This operation does not require authentication
saveRole
Code samples
# You can also use wget
curl -X POST /widget/users/{ username} /roles
POST /widget/users/{username}/roles HTTP / 1.1
fetch ( ' /widget/users/{username}/roles ' ,
{
method : ' POST '
})
. then ( function ( res ) {
return res . json ();
}). then ( function ( body ) {
console . log ( body );
});
require 'rest-client'
require 'json'
result = RestClient . post '/widget/users/{username}/roles' ,
params: {
}
p JSON . parse ( result )
import requests
r = requests . post ( '/widget/users/{username}/roles' )
print ( r . json ())
<?php
require 'vendor/autoload.php' ;
$client = new \ GuzzleHttp\Client ();
// Define array of request body.
$request_body = array ();
try {
$response = $client -> request ( 'POST' , '/widget/users/{username}/roles' , array (
'headers' => $headers ,
'json' => $request_body ,
)
);
print_r ( $response -> getBody () -> getContents ());
}
catch ( \ GuzzleHttp\Exception\BadResponseException $e ) {
// handle exception or api errors.
print_r ( $e -> getMessage ());
}
// ...
URL obj = new URL ( "/widget/users/{username}/roles" );
HttpURLConnection con = ( HttpURLConnection ) obj . openConnection ();
con . setRequestMethod ( "POST" );
int responseCode = con . getResponseCode ();
BufferedReader in = new BufferedReader (
new InputStreamReader ( con . getInputStream ()));
String inputLine ;
StringBuffer response = new StringBuffer ();
while (( inputLine = in . readLine ()) != null ) {
response . append ( inputLine );
}
in . close ();
System . out . println ( response . toString ());
package main
import (
"bytes"
"net/http"
)
func main () {
data := bytes . NewBuffer ([] byte { jsonReq })
req , err := http . NewRequest ( "POST" , "/widget/users/{username}/roles" , data )
req . Header = headers
client := & http . Client {}
resp , err := client . Do ( req )
// ...
}
POST /widget/users/{username}/roles
Saves the given user role
Overwrites any existing domain targets by what is given in the payload
Parameters
Name
In
Type
Required
Description
username
path
string
true
none
Responses
Status
Meaning
Description
Schema
default
Default
successful operation
None
This operation does not require authentication
removeRole
Code samples
# You can also use wget
curl -X DELETE /widget/users/{ username} /roles/{ code}
DELETE /widget/users/{username}/roles/{code} HTTP / 1.1
fetch ( ' /widget/users/{username}/roles/{code} ' ,
{
method : ' DELETE '
})
. then ( function ( res ) {
return res . json ();
}). then ( function ( body ) {
console . log ( body );
});
require 'rest-client'
require 'json'
result = RestClient . delete '/widget/users/{username}/roles/{code}' ,
params: {
}
p JSON . parse ( result )
import requests
r = requests . delete ( '/widget/users/{username}/roles/{code}' )
print ( r . json ())
<?php
require 'vendor/autoload.php' ;
$client = new \ GuzzleHttp\Client ();
// Define array of request body.
$request_body = array ();
try {
$response = $client -> request ( 'DELETE' , '/widget/users/{username}/roles/{code}' , array (
'headers' => $headers ,
'json' => $request_body ,
)
);
print_r ( $response -> getBody () -> getContents ());
}
catch ( \ GuzzleHttp\Exception\BadResponseException $e ) {
// handle exception or api errors.
print_r ( $e -> getMessage ());
}
// ...
URL obj = new URL ( "/widget/users/{username}/roles/{code}" );
HttpURLConnection con = ( HttpURLConnection ) obj . openConnection ();
con . setRequestMethod ( "DELETE" );
int responseCode = con . getResponseCode ();
BufferedReader in = new BufferedReader (
new InputStreamReader ( con . getInputStream ()));
String inputLine ;
StringBuffer response = new StringBuffer ();
while (( inputLine = in . readLine ()) != null ) {
response . append ( inputLine );
}
in . close ();
System . out . println ( response . toString ());
package main
import (
"bytes"
"net/http"
)
func main () {
data := bytes . NewBuffer ([] byte { jsonReq })
req , err := http . NewRequest ( "DELETE" , "/widget/users/{username}/roles/{code}" , data )
req . Header = headers
client := & http . Client {}
resp , err := client . Do ( req )
// ...
}
DELETE /widget/users/{username}/roles/{code}
Removes the given user role
Parameters
Name
In
Type
Required
Description
username
path
string
true
none
code
path
string
true
none
Responses
Status
Meaning
Description
Schema
default
Default
successful operation
None
This operation does not require authentication
Schemas
ActiveMqAuthentication
{
"type" : "SESSION_TOKEN" ,
"brokerUrl" : "string" ,
"username" : "string" ,
"password" : "string"
}
Properties
allOf - discriminator: IntegrationAuthentication.type
and
Name
Type
Required
Restrictions
Description
anonymous
object
false
none
none
» brokerUrl
string
false
none
none
» username
string
false
none
none
» password
string
false
none
none
ActiveTime
{
"startTime" : 0 ,
"endTime" : 0
}
Properties
Name
Type
Required
Restrictions
Description
startTime
integer(int64)
false
none
none
endTime
integer(int64)
false
none
none
AdvancedScoringLogMessageData
{
"id" : "497f6eca-6276-4993-bfeb-53cbbbba6f08" ,
"exerciseId" : "71ba10b8-c6bd-49fd-9742-f8dbc8ccdb47" ,
"category" : "TOTAL" ,
"teamId" : "a4ede8ba-7c0a-4485-8763-cbd9b282fbec" ,
"teamName" : "string" ,
"targetObjectId" : "0736fe8b-41d3-4e16-8748-96fb9cfaaac8" ,
"targetObjectName" : "string" ,
"targetObjectType" : "TARGET" ,
"score" : 0 ,
"timestamp" : 0
}
Properties
Name
Type
Required
Restrictions
Description
id
string(uuid)
false
none
none
exerciseId
string(uuid)
false
none
none
category
string
false
none
none
teamId
string(uuid)
false
none
none
teamName
string
false
none
none
targetObjectId
string(uuid)
false
none
none
targetObjectName
string
false
none
none
targetObjectType
string
false
none
none
score
number(double)
false
none
none
timestamp
integer(int64)
false
none
none
Enumerated Values
Property
Value
category
TOTAL
category
SPECIAL
category
ATTACK_REPORTS
category
AVAILABILITY
category
INCIDENT_REPORTS
category
SITUATION_REPORTS
category
RESTORE_FROM_BACKUP
category
USE_HINT
category
ABANDON_TASK
category
SOLVE_TASK
targetObjectType
TARGET
targetObjectType
TARGET_CHECK
targetObjectType
TARGET_GROUP
targetObjectType
TASK
{
"meta" : {
"offset" : 0 ,
"limit" : 0 ,
"totalCount" : 0 ,
"timestamp" : 0
},
"data" : [
{
"id" : "497f6eca-6276-4993-bfeb-53cbbbba6f08" ,
"exerciseId" : "71ba10b8-c6bd-49fd-9742-f8dbc8ccdb47" ,
"category" : "TOTAL" ,
"teamId" : "a4ede8ba-7c0a-4485-8763-cbd9b282fbec" ,
"teamName" : "string" ,
"targetObjectId" : "0736fe8b-41d3-4e16-8748-96fb9cfaaac8" ,
"targetObjectName" : "string" ,
"targetObjectType" : "TARGET" ,
"score" : 0 ,
"timestamp" : 0
}
]
}
Properties
Annotation
Properties
None
AnnotationIntrospector
Properties
None
ApiKeyAuthentication
{
"type" : "SESSION_TOKEN" ,
"apiKey" : "string"
}
Properties
allOf - discriminator: IntegrationAuthentication.type
and
Name
Type
Required
Restrictions
Description
anonymous
object
false
none
none
» apiKey
string
false
none
none
ApiToken
{
"name" : "string" ,
"value" : "string" ,
"timestamp" : 0 ,
"signingKey" : {
"value" : "string" ,
"timestamp" : 0
}
}
Properties
Name
Type
Required
Restrictions
Description
name
string
false
none
none
value
string
false
none
none
timestamp
integer(int64)
false
none
none
signingKey
SigningKey
false
none
none
ArrayBuilders
{
"byteBuilder" : {},
"booleanBuilder" : {},
"doubleBuilder" : {},
"intBuilder" : {},
"floatBuilder" : {},
"shortBuilder" : {},
"longBuilder" : {}
}
Properties
AssignableRolesDTO
{
"roles" : [
{
"code" : "string" ,
"description" : "string" ,
"domains" : [
"GN_EXERCISE"
]
}
],
"targetsByDomain" : {
"property1" : [
{
"targets" : [
{
"id" : "string" ,
"name" : "string"
}
],
"parentDomain" : "GN_EXERCISE" ,
"parentTargetId" : "string" ,
"parentTargetName" : "string"
}
],
"property2" : [
{
"targets" : [
{
"id" : "string" ,
"name" : "string"
}
],
"parentDomain" : "GN_EXERCISE" ,
"parentTargetId" : "string" ,
"parentTargetName" : "string"
}
]
}
}
Properties
Name
Type
Required
Restrictions
Description
roles
[RoleListItem ]
false
none
none
targetsByDomain
object
false
none
none
» additionalProperties
[TargetsDTO ]
false
none
none
AttackCampaignObjective
{
"type" : "TARGET_CHECK" ,
"name" : "string" ,
"category" : "NETWORKING" ,
"teams" : [
{
"teamId" : "a4ede8ba-7c0a-4485-8763-cbd9b282fbec" ,
"teamName" : "string" ,
"objectiveContainerId" : "19719b61-3636-4c2c-9f9e-15e15bf34e46" ,
"objectiveUserName" : "string" ,
"objectiveStatus" : "NOT_COMPROMISED" ,
"targetCheckAvailabilityStatus" : true ,
"objectiveId" : "1ac8be30-2b34-409a-be6d-40652b73c978" ,
"userAssignmentId" : "5cbec838-7673-4a99-92c7-f2aeed4a48c2" ,
"reportCount" : 0 ,
"attackAttempted" : true
}
]
}
Properties
Name
Type
Required
Restrictions
Description
type
string
false
none
none
name
string
false
none
none
category
string
false
none
none
teams
[AttackCampaignObjectiveTeam ]
false
none
none
Enumerated Values
Property
Value
type
TARGET_CHECK
type
TARGET_GROUP
category
NETWORKING
category
CLIENT_SIDE
category
WEB
AttackCampaignObjectiveTeam
{
"teamId" : "a4ede8ba-7c0a-4485-8763-cbd9b282fbec" ,
"teamName" : "string" ,
"objectiveContainerId" : "19719b61-3636-4c2c-9f9e-15e15bf34e46" ,
"objectiveUserName" : "string" ,
"objectiveStatus" : "NOT_COMPROMISED" ,
"targetCheckAvailabilityStatus" : true ,
"objectiveId" : "1ac8be30-2b34-409a-be6d-40652b73c978" ,
"userAssignmentId" : "5cbec838-7673-4a99-92c7-f2aeed4a48c2" ,
"reportCount" : 0 ,
"attackAttempted" : true
}
Properties
Name
Type
Required
Restrictions
Description
teamId
string(uuid)
false
none
none
teamName
string
false
none
none
objectiveContainerId
string(uuid)
false
none
none
objectiveUserName
string
false
none
none
objectiveStatus
string
false
none
none
targetCheckAvailabilityStatus
boolean
false
none
none
objectiveId
string(uuid)
false
none
none
userAssignmentId
string(uuid)
false
none
none
reportCount
integer(int32)
false
none
none
attackAttempted
boolean
false
none
none
Enumerated Values
Property
Value
objectiveStatus
NOT_COMPROMISED
objectiveStatus
COMPROMISED
objectiveStatus
PENDING_COMPROMISED
objectiveStatus
UNABLE_TO_COMPROMISE
AttackCampaignUserAssignment
{
"id" : "497f6eca-6276-4993-bfeb-53cbbbba6f08" ,
"exerciseId" : "71ba10b8-c6bd-49fd-9742-f8dbc8ccdb47" ,
"teamId" : "a4ede8ba-7c0a-4485-8763-cbd9b282fbec" ,
"objectiveContainerId" : "19719b61-3636-4c2c-9f9e-15e15bf34e46" ,
"objectiveId" : "1ac8be30-2b34-409a-be6d-40652b73c978" ,
"username" : "string" ,
"timestamp" : 0 ,
"unassigned" : 0
}
Properties
Name
Type
Required
Restrictions
Description
id
string(uuid)
false
none
none
exerciseId
string(uuid)
false
none
none
teamId
string(uuid)
false
none
none
objectiveContainerId
string(uuid)
false
none
none
objectiveId
string(uuid)
false
none
none
username
string
false
none
none
timestamp
integer(int64)
false
none
none
unassigned
integer(int64)
false
none
none
{
"campaignPhaseId" : "ec1a6f36-e0b2-4e93-85b6-db68c75b7edc" ,
"campaignPhaseName" : "string" ,
"objectives" : [
{
"type" : "TARGET_CHECK" ,
"name" : "string" ,
"category" : "NETWORKING" ,
"teams" : [
{
"teamId" : "a4ede8ba-7c0a-4485-8763-cbd9b282fbec" ,
"teamName" : "string" ,
"objectiveContainerId" : "19719b61-3636-4c2c-9f9e-15e15bf34e46" ,
"objectiveUserName" : "string" ,
"objectiveStatus" : "NOT_COMPROMISED" ,
"targetCheckAvailabilityStatus" : true ,
"objectiveId" : "1ac8be30-2b34-409a-be6d-40652b73c978" ,
"userAssignmentId" : "5cbec838-7673-4a99-92c7-f2aeed4a48c2" ,
"reportCount" : 0 ,
"attackAttempted" : true
}
]
}
]
}
Properties
Name
Type
Required
Restrictions
Description
campaignPhaseId
string(uuid)
false
none
none
campaignPhaseName
string
false
none
none
objectives
[AttackCampaignObjective ]
false
none
none
{
"reportId" : "836df459-dc40-4aa1-972a-6eb0a864dff9" ,
"teamId" : "a4ede8ba-7c0a-4485-8763-cbd9b282fbec" ,
"teamName" : "string" ,
"status" : "PENDING_CONFIRMATION" ,
"whiteTeamMember" : "string" ,
"timestamp" : 0 ,
"feedback" : "string" ,
"objectiveContainerId" : "19719b61-3636-4c2c-9f9e-15e15bf34e46" ,
"objectiveContainerName" : "string" ,
"objectiveId" : "1ac8be30-2b34-409a-be6d-40652b73c978" ,
"objectiveName" : "string" ,
"campaignPhaseName" : "string" ,
"objectiveStatus" : "NOT_COMPROMISED" ,
"objectiveReportsCount" : 0
}
Properties
Name
Type
Required
Restrictions
Description
reportId
string(uuid)
false
none
none
teamId
string(uuid)
false
none
none
teamName
string
false
none
none
status
string
false
none
none
whiteTeamMember
string
false
none
none
timestamp
integer(int64)
false
none
none
feedback
string
false
none
none
objectiveContainerId
string(uuid)
false
none
none
objectiveContainerName
string
false
none
none
objectiveId
string(uuid)
false
none
none
objectiveName
string
false
none
none
campaignPhaseName
string
false
none
none
objectiveStatus
string
false
none
none
objectiveReportsCount
integer(int32)
false
none
none
Enumerated Values
Property
Value
status
PENDING_CONFIRMATION
status
CONFIRMED
status
DENIED
objectiveStatus
NOT_COMPROMISED
objectiveStatus
COMPROMISED
objectiveStatus
PENDING_COMPROMISED
objectiveStatus
UNABLE_TO_COMPROMISE
AuthDTO
{
"username" : "string" ,
"fullName" : "string" ,
"loginOrigin" : "LDAP" ,
"permissions" : [
"string"
],
"redirectUrl" : "string" ,
"isAdmin" : true
}
Properties
Name
Type
Required
Restrictions
Description
username
string
false
none
none
fullName
string
false
none
none
loginOrigin
string
false
none
none
permissions
[string]
false
none
none
redirectUrl
string
false
none
none
isAdmin
boolean
false
read-only
none
Enumerated Values
Property
Value
loginOrigin
LDAP
loginOrigin
LOCAL
loginOrigin
OBSERVER
loginOrigin
UNKNOWN
loginOrigin
EXTERNAL
Base64Variant
{
"name" : "string" ,
"maxLineLength" : 0 ,
"paddingByte" : "string" ,
"paddingChar" : "string"
}
Properties
Name
Type
Required
Restrictions
Description
name
string
false
none
none
maxLineLength
integer(int32)
false
none
none
paddingByte
string(byte)
false
none
none
paddingChar
string
false
none
none
BlueTeam
{
"id" : "497f6eca-6276-4993-bfeb-53cbbbba6f08" ,
"name" : "string" ,
"ldapGroup" : "string" ,
"gmaId" : "38986f0b-d3bf-44a4-9955-8376fb08408a" ,
"targetGroups" : [
{
"id" : "497f6eca-6276-4993-bfeb-53cbbbba6f08" ,
"name" : "string" ,
"username" : "string" ,
"objectives" : [
{
"id" : "497f6eca-6276-4993-bfeb-53cbbbba6f08" ,
"name" : "string" ,
"category" : "NETWORKING" ,
"campaignPhaseId" : "ec1a6f36-e0b2-4e93-85b6-db68c75b7edc" ,
"scoreWeight" : 0 ,
"sequence" : 0
}
],
"targets" : [
{
"id" : "497f6eca-6276-4993-bfeb-53cbbbba6f08" ,
"name" : "string" ,
"hostname" : "string" ,
"networkSegmentId" : "da59500c-a661-45ab-94a0-11930236ec3b" ,
"targetChecks" : [
{
"id" : "497f6eca-6276-4993-bfeb-53cbbbba6f08" ,
"name" : "string" ,
"status" : "GOOD" ,
"username" : "string"
}
],
"scoreBreakdown" : [
{
"name" : "TOTAL" ,
"value" : 0
}
],
"isDeployed" : true
}
]
}
],
"avatarFileId" : "string"
}
Properties
Name
Type
Required
Restrictions
Description
id
string(uuid)
false
none
none
name
string
false
none
none
ldapGroup
string
false
none
none
gmaId
string(uuid)
false
none
none
targetGroups
[TargetGroup ]
false
none
none
avatarFileId
string
false
none
none
BooleanBuilder
Properties
None
ByteBuilder
Properties
None
CTFAssessmentReport
{
"title" : "string" ,
"details" : "string" ,
"usernames" : [
"string"
],
"startTime" : 0 ,
"endTime" : 0 ,
"maxTimeMs" : 0 ,
"taskAvgTimeMs" : 0 ,
"scoreReport" : {
"scoreByCategory" : {
"property1" : 0 ,
"property2" : 0
},
"scoreEvents" : [
{
"type" : "ANSWER" ,
"taskCategory" : "string" ,
"source" : "TASK_EVENT" ,
"eventScore" : 0 ,
"totalScore" : 0 ,
"timestamp" : 0 ,
"taskName" : "string"
}
],
"totalScore" : 0
},
"tasksTotal" : 0 ,
"tasksSolved" : 0 ,
"progressByCategory" : {
"property1" : 0 ,
"property2" : 0
},
"totalProgress" : 0 ,
"hintsTotal" : 0 ,
"hintsUsed" : 0 ,
"wrongAnswers" : 0 ,
"abandonedTasks" : 0 ,
"teamTasksOverview" : {
"teamName" : "string" ,
"position" : 0 ,
"categories" : [
{
"category" : "string" ,
"tasks" : [
{
"status" : "ABANDONED" ,
"title" : "string" ,
"score" : 0 ,
"usedHints" : 0 ,
"maxHints" : 0 ,
"timeSpentMs" : 0
}
]
}
]
}
}
Properties
Name
Type
Required
Restrictions
Description
title
string
false
none
none
details
string
false
none
none
usernames
[string]
false
none
none
startTime
integer(int64)
false
none
none
endTime
integer(int64)
false
none
none
maxTimeMs
integer(int64)
false
none
none
taskAvgTimeMs
integer(int64)
false
none
none
scoreReport
ScoreReport
false
none
none
tasksTotal
integer(int32)
false
none
none
tasksSolved
integer(int32)
false
none
none
progressByCategory
object
false
none
none
» additionalProperties
integer(int32)
false
none
none
totalProgress
integer(int32)
false
none
none
hintsTotal
integer(int32)
false
none
none
hintsUsed
integer(int32)
false
none
none
wrongAnswers
integer(int32)
false
none
none
abandonedTasks
integer(int32)
false
none
none
teamTasksOverview
CTFTeamOverviewDTO
false
none
none
CTFBlueTeam
{
"id" : "497f6eca-6276-4993-bfeb-53cbbbba6f08" ,
"name" : "string" ,
"ldapGroup" : "string" ,
"tasks" : [
{
"niceIds" : {
"taskIds" : [
"string"
],
"knowledgeIds" : [
"string"
],
"skillIds" : [
"string"
],
"abilityIds" : [
"string"
]
},
"type" : "SINGLE_ANSWER" ,
"description" : "string" ,
"requiredTaskIds" : [
"497f6eca-6276-4993-bfeb-53cbbbba6f08"
],
"targets" : [
{
"id" : "497f6eca-6276-4993-bfeb-53cbbbba6f08" ,
"name" : "string" ,
"hostname" : "string" ,
"networkSegmentId" : "da59500c-a661-45ab-94a0-11930236ec3b" ,
"targetChecks" : [
{
"id" : "497f6eca-6276-4993-bfeb-53cbbbba6f08" ,
"name" : "string" ,
"status" : "GOOD" ,
"username" : "string"
}
],
"scoreBreakdown" : [
{
"name" : "TOTAL" ,
"value" : 0
}
],
"isDeployed" : true
}
],
"question" : "string" ,
"title" : "string" ,
"definitionId" : "058563fe-6949-46e9-9fb3-06a0e3a11f6a" ,
"category" : "string" ,
"hints" : [
{
"id" : "497f6eca-6276-4993-bfeb-53cbbbba6f08" ,
"content" : "string" ,
"penalty" : 0
}
],
"score" : 0 ,
"isLocked" : true
}
],
"avatarFileId" : "string" ,
"gmaId" : "38986f0b-d3bf-44a4-9955-8376fb08408a"
}
Properties
Name
Type
Required
Restrictions
Description
id
string(uuid)
false
none
none
name
string
false
none
none
ldapGroup
string
false
none
none
tasks
[ICTFTask ]
false
none
none
avatarFileId
string
false
none
none
gmaId
string(uuid)
false
none
none
CTFCategoryDTO
{
"category" : "string" ,
"name" : "string" ,
"tasks" : [
{
"id" : "497f6eca-6276-4993-bfeb-53cbbbba6f08" ,
"type" : "SINGLE_ANSWER" ,
"title" : "string" ,
"score" : 0 ,
"teamsSolved" : 0 ,
"status" : "ABANDONED" ,
"availableHints" : 0 ,
"usedHintPoints" : 0 ,
"requiredTasks" : [
{
"id" : "497f6eca-6276-4993-bfeb-53cbbbba6f08" ,
"title" : "string"
}
],
"niceIds" : {
"taskIds" : [
"string"
],
"knowledgeIds" : [
"string"
],
"skillIds" : [
"string"
],
"abilityIds" : [
"string"
]
},
"targets" : [
{
"targetId" : "cbca1126-180e-4334-9df8-cf82289d378b" ,
"targetName" : "string" ,
"vmId" : "f1446e55-23f6-4461-a5de-ba794da4dde9" ,
"powerState" : "POWERED_OFF"
}
],
"answerCrossUsageDetected" : true
}
]
}
Properties
Name
Type
Required
Restrictions
Description
category
string
false
none
none
name
string
false
none
none
tasks
[CTFTaskDTO ]
false
none
none
CTFExercise
{
"teamSettingsEnabled" : true ,
"networkSegments" : [
{
"id" : "497f6eca-6276-4993-bfeb-53cbbbba6f08" ,
"name" : "string" ,
"description" : "string" ,
"colorHex" : "string"
}
],
"name" : "string" ,
"id" : "497f6eca-6276-4993-bfeb-53cbbbba6f08" ,
"type" : "CAMPAIGN" ,
"definition" : {
"image" : "string" ,
"networkSegments" : [
{
"name" : "string" ,
"description" : "string" ,
"colorHex" : "string"
}
],
"name" : "string" ,
"type" : "CAMPAIGN" ,
"description" : "string" ,
"gitConfiguration" : {
"url" : "string" ,
"authenticationType" : "CREDENTIALS" ,
"branch" : "string"
},
"blueTeamLdapGroup" : "string" ,
"externalId" : "string" ,
"campaignPhases" : [
{
"name" : "string" ,
"description" : "string" ,
"startTime" : 0
}
],
"externalSource" : "VLM" ,
"activeTimes" : [
{
"startTime" : 0 ,
"endTime" : 0
}
],
"difficulty" : "EASY" ,
"blueTeamName" : "string" ,
"targetGroups" : [
{
"name" : "string" ,
"username" : "string" ,
"objectives" : [
{
"name" : "string" ,
"category" : "NETWORKING" ,
"campaignPhaseName" : "string" ,
"scoreWeight" : 0 ,
"sequence" : 0
}
],
"targets" : [
{
"name" : "string" ,
"hostname" : "string" ,
"networkSegmentName" : "string" ,
"targetChecks" : [
{
"name" : "string" ,
"description" : "string" ,
"type" : "ICMP_RESPONDER_PING" ,
"ipAddress" : "string" ,
"parameters" : [
{
"name" : "string" ,
"value" : "string"
}
],
"scoreWeight" : 0 ,
"objectives" : [
{
"name" : "string" ,
"category" : "NETWORKING" ,
"campaignPhaseName" : "string" ,
"scoreWeight" : 0 ,
"sequence" : 0
}
],
"username" : "string"
}
],
"scoreBreakdown" : [
{
"name" : "TOTAL" ,
"value" : 0
}
]
}
]
}
],
"numberOfTeams" : 0 ,
"gmaId" : [
"497f6eca-6276-4993-bfeb-53cbbbba6f08"
],
"imageId" : "string" ,
"whiteTeamLdapGroup" : "string" ,
"isTeamSettingsEnabled" : true ,
"isTargetManagementEnabled" : true
},
"description" : "string" ,
"gitConfiguration" : {
"url" : "string" ,
"authenticationType" : "CREDENTIALS" ,
"branch" : "string"
},
"externalId" : "string" ,
"campaignPhases" : [
{
"id" : "497f6eca-6276-4993-bfeb-53cbbbba6f08" ,
"name" : "string" ,
"description" : "string" ,
"startTime" : 0
}
],
"externalSource" : "VLM" ,
"activeTimes" : [
{
"startTime" : 0 ,
"endTime" : 0
}
],
"difficulty" : "EASY" ,
"blueTeams" : [
{
"avatarFileId" : "string" ,
"ldapGroup" : "string" ,
"name" : "string" ,
"id" : "497f6eca-6276-4993-bfeb-53cbbbba6f08" ,
"gmaId" : "38986f0b-d3bf-44a4-9955-8376fb08408a" ,
"tasks" : [
{
"niceIds" : {
"taskIds" : [
"string"
],
"knowledgeIds" : [
"string"
],
"skillIds" : [
"string"
],
"abilityIds" : [
"string"
]
},
"type" : "SINGLE_ANSWER" ,
"description" : "string" ,
"requiredTaskIds" : [
"497f6eca-6276-4993-bfeb-53cbbbba6f08"
],
"targets" : [
{
"id" : "497f6eca-6276-4993-bfeb-53cbbbba6f08" ,
"name" : "string" ,
"hostname" : "string" ,
"networkSegmentId" : "da59500c-a661-45ab-94a0-11930236ec3b" ,
"targetChecks" : [
{
"id" : "497f6eca-6276-4993-bfeb-53cbbbba6f08" ,
"name" : "string" ,
"status" : "GOOD" ,
"username" : "string"
}
],
"scoreBreakdown" : [
{
"name" : "TOTAL" ,
"value" : 0
}
],
"isDeployed" : true
}
],
"question" : "string" ,
"title" : "string" ,
"definitionId" : "058563fe-6949-46e9-9fb3-06a0e3a11f6a" ,
"category" : "string" ,
"hints" : [
{
"id" : "497f6eca-6276-4993-bfeb-53cbbbba6f08" ,
"content" : "string" ,
"penalty" : 0
}
],
"score" : 0 ,
"isLocked" : true
}
]
}
],
"imageId" : "string" ,
"whiteTeamLdapGroup" : "string" ,
"isTargetManagementEnabled" : true ,
"taskCategories" : [
{
"code" : "string" ,
"name" : "string" ,
"icon" : "string"
}
],
"durationPeriod" : "string" ,
"taskAbandonPenalty" : 0 ,
"openedTasksLimit" : 0 ,
"individualAssessmentIdlePeriod" : "string" ,
"missionDurationPeriod" : "string" ,
"workRoleId" : "string" ,
"showTeamPosition" : true ,
"isNiceFrameworkSupported" : true ,
"isIndividualAssessment" : true
}
Properties
allOf - discriminator: IExercise.type
Name
Type
Required
Restrictions
Description
anonymous
IExercise
false
none
none
and
Name
Type
Required
Restrictions
Description
anonymous
object
false
none
none
» blueTeams
[CTFBlueTeam ]
false
none
none
» taskCategories
[CTFTaskCategory ]
false
none
none
» durationPeriod
string
false
none
none
» taskAbandonPenalty
number(double)
false
none
none
» openedTasksLimit
integer(int32)
false
none
none
» individualAssessmentIdlePeriod
string
false
none
none
» missionDurationPeriod
string
false
none
none
» workRoleId
string
false
none
none
» showTeamPosition
boolean
false
none
none
» isNiceFrameworkSupported
boolean
false
read-only
none
» isIndividualAssessment
boolean
false
read-only
none
CTFExerciseDefinition
{
"image" : "string" ,
"networkSegments" : [
{
"name" : "string" ,
"description" : "string" ,
"colorHex" : "string"
}
],
"name" : "string" ,
"type" : "CAMPAIGN" ,
"description" : "string" ,
"gitConfiguration" : {
"url" : "string" ,
"authenticationType" : "CREDENTIALS" ,
"branch" : "string"
},
"blueTeamLdapGroup" : "string" ,
"externalId" : "string" ,
"campaignPhases" : [
{
"name" : "string" ,
"description" : "string" ,
"startTime" : 0
}
],
"externalSource" : "VLM" ,
"activeTimes" : [
{
"startTime" : 0 ,
"endTime" : 0
}
],
"difficulty" : "EASY" ,
"blueTeamName" : "string" ,
"targetGroups" : [
{
"name" : "string" ,
"username" : "string" ,
"objectives" : [
{
"name" : "string" ,
"category" : "NETWORKING" ,
"campaignPhaseName" : "string" ,
"scoreWeight" : 0 ,
"sequence" : 0
}
],
"targets" : [
{
"name" : "string" ,
"hostname" : "string" ,
"networkSegmentName" : "string" ,
"targetChecks" : [
{
"name" : "string" ,
"description" : "string" ,
"type" : "ICMP_RESPONDER_PING" ,
"ipAddress" : "string" ,
"parameters" : [
{
"name" : "string" ,
"value" : "string"
}
],
"scoreWeight" : 0 ,
"objectives" : [
{
"name" : "string" ,
"category" : "NETWORKING" ,
"campaignPhaseName" : "string" ,
"scoreWeight" : 0 ,
"sequence" : 0
}
],
"username" : "string"
}
],
"scoreBreakdown" : [
{
"name" : "TOTAL" ,
"value" : 0
}
]
}
]
}
],
"numberOfTeams" : 0 ,
"gmaId" : [
"497f6eca-6276-4993-bfeb-53cbbbba6f08"
],
"imageId" : "string" ,
"whiteTeamLdapGroup" : "string" ,
"isTeamSettingsEnabled" : true ,
"isTargetManagementEnabled" : true ,
"tasks" : [
{
"niceIds" : {
"taskIds" : [
"string"
],
"knowledgeIds" : [
"string"
],
"skillIds" : [
"string"
],
"abilityIds" : [
"string"
]
},
"id" : "497f6eca-6276-4993-bfeb-53cbbbba6f08" ,
"type" : "SINGLE_ANSWER" ,
"description" : "string" ,
"targetNamePatterns" : [
"string"
],
"requiredTaskIds" : [
"497f6eca-6276-4993-bfeb-53cbbbba6f08"
],
"question" : "string" ,
"title" : "string" ,
"category" : "string" ,
"hints" : [
{
"content" : "string" ,
"penalty" : 0
}
],
"score" : 0 ,
"isLocked" : true
}
],
"durationPeriod" : "string" ,
"taskAbandonPenalty" : 0 ,
"openedTasksLimit" : 0 ,
"individualAssessmentIdlePeriod" : "string" ,
"missionDurationPeriod" : "string" ,
"taskCategories" : [
{
"code" : "string" ,
"name" : "string" ,
"icon" : "string"
}
],
"workRoleId" : "string" ,
"showTeamPosition" : true ,
"isNiceFrameworkSupported" : true ,
"isIndividualAssessment" : true
}
Properties
allOf - discriminator: IExerciseDefinition.type
and
Name
Type
Required
Restrictions
Description
anonymous
object
false
none
none
» tasks
[ICTFTaskDefinition ]
false
none
none
» durationPeriod
string
false
none
none
» taskAbandonPenalty
number(double)
false
none
none
» openedTasksLimit
integer(int32)
false
none
none
» individualAssessmentIdlePeriod
string
false
none
none
» missionDurationPeriod
string
false
none
none
» taskCategories
[CTFTaskCategory ]
false
none
none
» workRoleId
string
false
none
none
» showTeamPosition
boolean
false
none
none
» isNiceFrameworkSupported
boolean
false
read-only
none
» isIndividualAssessment
boolean
false
read-only
none
CTFExerciseStatusDTO
{
"endTime" : 0 ,
"totalTeams" : 0 ,
"leader" : {
"name" : "string" ,
"score" : 0 ,
"tasksSolved" : 0
},
"tasksTotal" : 0 ,
"hintsUsed" : 0 ,
"hintsTotal" : 0 ,
"progressByCategory" : {
"property1" : 0 ,
"property2" : 0
}
}
Properties
Name
Type
Required
Restrictions
Description
endTime
integer(int64)
false
none
none
totalTeams
integer(int32)
false
none
none
leader
ExerciseStatusLeaderDTO
false
none
none
tasksTotal
integer(int32)
false
none
none
hintsUsed
integer(int32)
false
none
none
hintsTotal
integer(int32)
false
none
none
progressByCategory
object
false
none
none
» additionalProperties
integer(int32)
false
none
none
{
"niceIds" : {
"taskIds" : [
"string"
],
"knowledgeIds" : [
"string"
],
"skillIds" : [
"string"
],
"abilityIds" : [
"string"
]
},
"type" : "SINGLE_ANSWER" ,
"description" : "string" ,
"requiredTaskIds" : [
"497f6eca-6276-4993-bfeb-53cbbbba6f08"
],
"targets" : [
{
"id" : "497f6eca-6276-4993-bfeb-53cbbbba6f08" ,
"name" : "string" ,
"hostname" : "string" ,
"networkSegmentId" : "da59500c-a661-45ab-94a0-11930236ec3b" ,
"targetChecks" : [
{
"id" : "497f6eca-6276-4993-bfeb-53cbbbba6f08" ,
"name" : "string" ,
"status" : "GOOD" ,
"username" : "string"
}
],
"scoreBreakdown" : [
{
"name" : "TOTAL" ,
"value" : 0
}
],
"isDeployed" : true
}
],
"question" : "string" ,
"title" : "string" ,
"definitionId" : "058563fe-6949-46e9-9fb3-06a0e3a11f6a" ,
"category" : "string" ,
"hints" : [
{
"id" : "497f6eca-6276-4993-bfeb-53cbbbba6f08" ,
"content" : "string" ,
"penalty" : 0
}
],
"score" : 0 ,
"isLocked" : true
}
Properties
allOf - discriminator: ICTFTask.type
Name
Type
Required
Restrictions
Description
anonymous
ICTFTask
false
none
none
and
Name
Type
Required
Restrictions
Description
anonymous
object
false
none
none
{
"niceIds" : {
"taskIds" : [
"string"
],
"knowledgeIds" : [
"string"
],
"skillIds" : [
"string"
],
"abilityIds" : [
"string"
]
},
"id" : "497f6eca-6276-4993-bfeb-53cbbbba6f08" ,
"type" : "SINGLE_ANSWER" ,
"description" : "string" ,
"targetNamePatterns" : [
"string"
],
"requiredTaskIds" : [
"497f6eca-6276-4993-bfeb-53cbbbba6f08"
],
"question" : "string" ,
"title" : "string" ,
"category" : "string" ,
"hints" : [
{
"content" : "string" ,
"penalty" : 0
}
],
"score" : 0 ,
"isLocked" : true
}
Properties
allOf - discriminator: ICTFTaskDefinition.type
and
Name
Type
Required
Restrictions
Description
anonymous
object
false
none
none
CTFGmaValidationTask
{
"niceIds" : {
"taskIds" : [
"string"
],
"knowledgeIds" : [
"string"
],
"skillIds" : [
"string"
],
"abilityIds" : [
"string"
]
},
"type" : "SINGLE_ANSWER" ,
"description" : "string" ,
"requiredTaskIds" : [
"497f6eca-6276-4993-bfeb-53cbbbba6f08"
],
"targets" : [
{
"id" : "497f6eca-6276-4993-bfeb-53cbbbba6f08" ,
"name" : "string" ,
"hostname" : "string" ,
"networkSegmentId" : "da59500c-a661-45ab-94a0-11930236ec3b" ,
"targetChecks" : [
{
"id" : "497f6eca-6276-4993-bfeb-53cbbbba6f08" ,
"name" : "string" ,
"status" : "GOOD" ,
"username" : "string"
}
],
"scoreBreakdown" : [
{
"name" : "TOTAL" ,
"value" : 0
}
],
"isDeployed" : true
}
],
"question" : "string" ,
"title" : "string" ,
"definitionId" : "058563fe-6949-46e9-9fb3-06a0e3a11f6a" ,
"category" : "string" ,
"hints" : [
{
"id" : "497f6eca-6276-4993-bfeb-53cbbbba6f08" ,
"content" : "string" ,
"penalty" : 0
}
],
"score" : 0 ,
"isLocked" : true ,
"scripts" : [
{
"script" : "string" ,
"args" : [
"string"
]
}
],
"isInputRequired" : true
}
Properties
allOf - discriminator: ICTFTask.type
Name
Type
Required
Restrictions
Description
anonymous
ICTFTask
false
none
none
and
Name
Type
Required
Restrictions
Description
anonymous
object
false
none
none
» scripts
[ScriptConfiguration ]
false
none
none
» isInputRequired
boolean
false
read-only
none
CTFGmaValidationTaskDefinition
{
"niceIds" : {
"taskIds" : [
"string"
],
"knowledgeIds" : [
"string"
],
"skillIds" : [
"string"
],
"abilityIds" : [
"string"
]
},
"id" : "497f6eca-6276-4993-bfeb-53cbbbba6f08" ,
"type" : "SINGLE_ANSWER" ,
"description" : "string" ,
"targetNamePatterns" : [
"string"
],
"requiredTaskIds" : [
"497f6eca-6276-4993-bfeb-53cbbbba6f08"
],
"question" : "string" ,
"title" : "string" ,
"category" : "string" ,
"hints" : [
{
"content" : "string" ,
"penalty" : 0
}
],
"score" : 0 ,
"isLocked" : true ,
"scripts" : [
{
"script" : "string" ,
"args" : [
"string"
]
}
],
"isInputRequired" : true
}
Properties
allOf - discriminator: ICTFTaskDefinition.type
and
Name
Type
Required
Restrictions
Description
anonymous
object
false
none
none
» scripts
[ScriptConfiguration ]
false
none
none
» isInputRequired
boolean
false
read-only
none
CTFHint
{
"id" : "497f6eca-6276-4993-bfeb-53cbbbba6f08" ,
"content" : "string" ,
"penalty" : 0
}
Properties
Name
Type
Required
Restrictions
Description
id
string(uuid)
false
none
none
content
string
false
none
none
penalty
integer(int32)
false
none
none
CTFHintDefinition
{
"content" : "string" ,
"penalty" : 0
}
Properties
Name
Type
Required
Restrictions
Description
content
string
false
none
none
penalty
integer(int32)
false
none
none
CTFHintUseDTO
{
"usedHint" : {
"id" : "497f6eca-6276-4993-bfeb-53cbbbba6f08" ,
"content" : "string" ,
"penalty" : 0
},
"nextHintPenalty" : 0
}
Properties
Name
Type
Required
Restrictions
Description
usedHint
CTFHint
false
none
none
nextHintPenalty
integer(int32)
false
none
none
CTFLatestTaskInfo
{
"taskId" : "string" ,
"taskName" : "string" ,
"status" : "ABANDONED"
}
Properties
Name
Type
Required
Restrictions
Description
taskId
string
false
none
none
taskName
string
false
none
none
status
string
false
none
none
Enumerated Values
Property
Value
status
ABANDONED
status
IN_PROGRESS
status
NOT_STARTED
status
DEPENDENCIES_UNSOLVED
status
VALIDATING
status
SOLVED
status
LOCKED
CTFLatestTeamTaskInfo
{
"teamId" : "string" ,
"teamName" : "string" ,
"saved" : 0 ,
"total" : 0 ,
"latestTaskInfo" : [
{
"taskId" : "string" ,
"taskName" : "string" ,
"status" : "ABANDONED"
}
]
}
Properties
Name
Type
Required
Restrictions
Description
teamId
string
false
none
none
teamName
string
false
none
none
saved
integer(int32)
false
none
none
total
integer(int32)
false
none
none
latestTaskInfo
[CTFLatestTaskInfo ]
false
none
none
CTFLeaderboardDTO
{
"teams" : [
{
"teamName" : "string" ,
"score" : 0 ,
"tasks" : {
"total" : 0 ,
"solved" : 0 ,
"inProgress" : 0 ,
"abandoned" : 0 ,
"wrongSubmissions" : 0
},
"progressByCategory" : {
"property1" : 0 ,
"property2" : 0
},
"totalProgress" : 0 ,
"hints" : {
"used" : 0 ,
"total" : 0
}
}
],
"status" : {
"endTime" : 0 ,
"totalTeams" : 0 ,
"leader" : {
"name" : "string" ,
"score" : 0 ,
"tasksSolved" : 0
},
"tasksTotal" : 0 ,
"hintsUsed" : 0 ,
"hintsTotal" : 0 ,
"progressByCategory" : {
"property1" : 0 ,
"property2" : 0
}
}
}
Properties
CTFMissionDTO
{
"teamCount" : 0 ,
"endTime" : 0 ,
"missionEndTime" : 0 ,
"tasksByCategory" : [
{
"category" : "string" ,
"name" : "string" ,
"tasks" : [
{
"id" : "497f6eca-6276-4993-bfeb-53cbbbba6f08" ,
"type" : "SINGLE_ANSWER" ,
"title" : "string" ,
"score" : 0 ,
"teamsSolved" : 0 ,
"status" : "ABANDONED" ,
"availableHints" : 0 ,
"usedHintPoints" : 0 ,
"requiredTasks" : [
{
"id" : "497f6eca-6276-4993-bfeb-53cbbbba6f08" ,
"title" : "string"
}
],
"niceIds" : {
"taskIds" : [
"string"
],
"knowledgeIds" : [
"string"
],
"skillIds" : [
"string"
],
"abilityIds" : [
"string"
]
},
"targets" : [
{
"targetId" : "cbca1126-180e-4334-9df8-cf82289d378b" ,
"targetName" : "string" ,
"vmId" : "f1446e55-23f6-4461-a5de-ba794da4dde9" ,
"powerState" : "POWERED_OFF"
}
],
"answerCrossUsageDetected" : true
}
]
}
],
"openedTasksLimit" : 0 ,
"individualStartStop" : {
"start" : 0 ,
"stop" : 0
}
}
Properties
Name
Type
Required
Restrictions
Description
teamCount
integer(int32)
false
none
none
endTime
integer(int64)
false
none
none
missionEndTime
integer(int64)
false
none
none
tasksByCategory
[CTFCategoryDTO ]
false
none
none
openedTasksLimit
integer(int32)
false
none
none
individualStartStop
IndividualStartStop
false
none
none
CTFNiceSummaryCategoryDTO
{
"name" : "string" ,
"solved" : 0 ,
"unsolved" : 0 ,
"total" : 0 ,
"items" : [
{
"id" : "string" ,
"tasks" : [
{
"title" : "string" ,
"status" : "ABANDONED" ,
"category" : "string"
}
],
"isSolved" : true
}
]
}
Properties
Name
Type
Required
Restrictions
Description
name
string
false
none
none
solved
integer(int32)
false
none
none
unsolved
integer(int32)
false
none
none
total
integer(int32)
false
none
none
items
[CTFNiceSummaryItemDTO ]
false
none
none
CTFNiceSummaryItemDTO
{
"id" : "string" ,
"tasks" : [
{
"title" : "string" ,
"status" : "ABANDONED" ,
"category" : "string"
}
],
"isSolved" : true
}
Properties
Name
Type
Required
Restrictions
Description
id
string
false
none
none
tasks
[CTFNiceSummaryItemTaskDTO ]
false
none
none
isSolved
boolean
false
read-only
none
CTFNiceSummaryItemTaskDTO
{
"title" : "string" ,
"status" : "ABANDONED" ,
"category" : "string"
}
Properties
Name
Type
Required
Restrictions
Description
title
string
false
none
none
status
string
false
none
none
category
string
false
none
none
Enumerated Values
Property
Value
status
ABANDONED
status
IN_PROGRESS
status
NOT_STARTED
status
DEPENDENCIES_UNSOLVED
status
VALIDATING
status
SOLVED
status
LOCKED
CTFOverviewDTO
{
"teams" : [
{
"teamName" : "string" ,
"position" : 0 ,
"categories" : [
{
"category" : "string" ,
"tasks" : [
{
"status" : "ABANDONED" ,
"title" : "string" ,
"score" : 0 ,
"usedHints" : 0 ,
"maxHints" : 0 ,
"timeSpentMs" : 0
}
]
}
]
}
],
"status" : {
"endTime" : 0 ,
"totalTeams" : 0 ,
"leader" : {
"name" : "string" ,
"score" : 0 ,
"tasksSolved" : 0
},
"tasksTotal" : 0 ,
"hintsUsed" : 0 ,
"hintsTotal" : 0 ,
"progressByCategory" : {
"property1" : 0 ,
"property2" : 0
}
}
}
Properties
CTFPodiumDTO
{
"endTime" : 0 ,
"teams" : [
{
"teamId" : "a4ede8ba-7c0a-4485-8763-cbd9b282fbec" ,
"score" : 0 ,
"tasksOverview" : {
"teamName" : "string" ,
"position" : 0 ,
"categories" : [
{
"category" : "string" ,
"tasks" : [
{
"status" : "ABANDONED" ,
"title" : "string" ,
"score" : 0 ,
"usedHints" : 0 ,
"maxHints" : 0 ,
"timeSpentMs" : 0
}
]
}
]
}
}
]
}
Properties
Name
Type
Required
Restrictions
Description
endTime
integer(int64)
false
none
none
teams
[PodiumTeamDTO ]
false
none
none
CTFTask
{
"niceIds" : {
"taskIds" : [
"string"
],
"knowledgeIds" : [
"string"
],
"skillIds" : [
"string"
],
"abilityIds" : [
"string"
]
},
"type" : "SINGLE_ANSWER" ,
"description" : "string" ,
"requiredTaskIds" : [
"497f6eca-6276-4993-bfeb-53cbbbba6f08"
],
"targets" : [
{
"id" : "497f6eca-6276-4993-bfeb-53cbbbba6f08" ,
"name" : "string" ,
"hostname" : "string" ,
"networkSegmentId" : "da59500c-a661-45ab-94a0-11930236ec3b" ,
"targetChecks" : [
{
"id" : "497f6eca-6276-4993-bfeb-53cbbbba6f08" ,
"name" : "string" ,
"status" : "GOOD" ,
"username" : "string"
}
],
"scoreBreakdown" : [
{
"name" : "TOTAL" ,
"value" : 0
}
],
"isDeployed" : true
}
],
"question" : "string" ,
"title" : "string" ,
"definitionId" : "058563fe-6949-46e9-9fb3-06a0e3a11f6a" ,
"category" : "string" ,
"hints" : [
{
"id" : "497f6eca-6276-4993-bfeb-53cbbbba6f08" ,
"content" : "string" ,
"penalty" : 0
}
],
"score" : 0 ,
"isLocked" : true ,
"answer" : "string"
}
Properties
allOf - discriminator: ICTFTask.type
Name
Type
Required
Restrictions
Description
anonymous
ICTFTask
false
none
none
and
Name
Type
Required
Restrictions
Description
anonymous
object
false
none
none
» answer
string
false
none
none
CTFTaskBulkEventSaveResult
{
"teamInfo" : [
{
"teamId" : "string" ,
"teamName" : "string" ,
"saved" : 0 ,
"total" : 0 ,
"latestTaskInfo" : [
{
"taskId" : "string" ,
"taskName" : "string" ,
"status" : "ABANDONED"
}
]
}
]
}
Properties
CTFTaskCategory
{
"code" : "string" ,
"name" : "string" ,
"icon" : "string"
}
Properties
Name
Type
Required
Restrictions
Description
code
string
false
none
none
name
string
false
none
none
icon
string
false
none
none
CTFTaskDTO
{
"id" : "497f6eca-6276-4993-bfeb-53cbbbba6f08" ,
"type" : "SINGLE_ANSWER" ,
"title" : "string" ,
"score" : 0 ,
"teamsSolved" : 0 ,
"status" : "ABANDONED" ,
"availableHints" : 0 ,
"usedHintPoints" : 0 ,
"requiredTasks" : [
{
"id" : "497f6eca-6276-4993-bfeb-53cbbbba6f08" ,
"title" : "string"
}
],
"niceIds" : {
"taskIds" : [
"string"
],
"knowledgeIds" : [
"string"
],
"skillIds" : [
"string"
],
"abilityIds" : [
"string"
]
},
"targets" : [
{
"targetId" : "cbca1126-180e-4334-9df8-cf82289d378b" ,
"targetName" : "string" ,
"vmId" : "f1446e55-23f6-4461-a5de-ba794da4dde9" ,
"powerState" : "POWERED_OFF"
}
],
"answerCrossUsageDetected" : true
}
Properties
Name
Type
Required
Restrictions
Description
id
string(uuid)
false
none
none
type
string
false
none
none
title
string
false
none
none
score
integer(int32)
false
none
none
teamsSolved
integer(int32)
false
none
none
status
string
false
none
none
availableHints
integer(int32)
false
none
none
usedHintPoints
number(double)
false
none
none
requiredTasks
[RequiredTask ]
false
none
none
niceIds
NiceIds
false
none
none
targets
[TargetData ]
false
none
none
answerCrossUsageDetected
boolean
false
none
none
Enumerated Values
Property
Value
type
SINGLE_ANSWER
type
GMA_VALIDATION
type
FREE_FORM
status
ABANDONED
status
IN_PROGRESS
status
NOT_STARTED
status
DEPENDENCIES_UNSOLVED
status
VALIDATING
status
SOLVED
status
LOCKED
CTFTaskDefinition
{
"niceIds" : {
"taskIds" : [
"string"
],
"knowledgeIds" : [
"string"
],
"skillIds" : [
"string"
],
"abilityIds" : [
"string"
]
},
"id" : "497f6eca-6276-4993-bfeb-53cbbbba6f08" ,
"type" : "SINGLE_ANSWER" ,
"description" : "string" ,
"targetNamePatterns" : [
"string"
],
"requiredTaskIds" : [
"497f6eca-6276-4993-bfeb-53cbbbba6f08"
],
"question" : "string" ,
"title" : "string" ,
"category" : "string" ,
"hints" : [
{
"content" : "string" ,
"penalty" : 0
}
],
"score" : 0 ,
"isLocked" : true ,
"answer" : [
"string"
]
}
Properties
allOf - discriminator: ICTFTaskDefinition.type
and
Name
Type
Required
Restrictions
Description
anonymous
object
false
none
none
» answer
[string]
false
none
none
CTFTaskDetailsDTO
{
"id" : "497f6eca-6276-4993-bfeb-53cbbbba6f08" ,
"type" : "SINGLE_ANSWER" ,
"title" : "string" ,
"question" : "string" ,
"description" : "string" ,
"score" : 0 ,
"hintCount" : 0 ,
"answer" : "string" ,
"hints" : [
{
"id" : "497f6eca-6276-4993-bfeb-53cbbbba6f08" ,
"content" : "string" ,
"penalty" : 0
}
],
"status" : "ABANDONED" ,
"taskAbandonPenalty" : 0 ,
"usedHintIds" : [
"497f6eca-6276-4993-bfeb-53cbbbba6f08"
],
"nextHintPenalty" : 0 ,
"penaltyPoints" : 0 ,
"submissions" : [
{
"timestamp" : 0 ,
"teamName" : "string" ,
"userName" : "string" ,
"answer" : "string" ,
"score" : 0 ,
"feedback" : "string" ,
"validatorOutput" : "string" ,
"answerCrossUsageTeamNames" : [
"string"
],
"isCorrect" : true
}
],
"feedback" : [
{
"timestamp" : 0 ,
"teamName" : "string" ,
"userName" : "string" ,
"feedback" : "string"
}
],
"validatorOutput" : "string" ,
"isInputRequired" : true
}
Properties
Name
Type
Required
Restrictions
Description
id
string(uuid)
false
none
none
type
string
false
none
none
title
string
false
none
none
question
string
false
none
none
description
string
false
none
none
score
integer(int32)
false
none
none
hintCount
integer(int32)
false
none
none
answer
string
false
none
none
hints
[CTFHint ]
false
none
none
status
string
false
none
none
taskAbandonPenalty
number(double)
false
none
none
usedHintIds
[string]
false
none
none
nextHintPenalty
number(double)
false
none
none
penaltyPoints
number(double)
false
none
none
submissions
[CTFTaskSubmissionDTO ]
false
none
none
feedback
[CTFTaskFeedbackDTO ]
false
none
none
validatorOutput
string
false
none
none
isInputRequired
boolean
false
read-only
none
Enumerated Values
Property
Value
type
SINGLE_ANSWER
type
GMA_VALIDATION
type
FREE_FORM
status
ABANDONED
status
IN_PROGRESS
status
NOT_STARTED
status
DEPENDENCIES_UNSOLVED
status
VALIDATING
status
SOLVED
status
LOCKED
CTFTaskEventSaveResult
{
"status" : "ABANDONED" ,
"score" : 0
}
Properties
Name
Type
Required
Restrictions
Description
status
string
false
none
none
score
integer(int32)
false
none
none
Enumerated Values
Property
Value
status
ABANDONED
status
IN_PROGRESS
status
NOT_STARTED
status
DEPENDENCIES_UNSOLVED
status
VALIDATING
status
SOLVED
status
LOCKED
CTFTaskFeedbackDTO
{
"timestamp" : 0 ,
"teamName" : "string" ,
"userName" : "string" ,
"feedback" : "string"
}
Properties
Name
Type
Required
Restrictions
Description
timestamp
integer(int64)
false
none
none
teamName
string
false
none
none
userName
string
false
none
none
feedback
string
false
none
none
CTFTaskReportDetails
{
"exerciseId" : "71ba10b8-c6bd-49fd-9742-f8dbc8ccdb47" ,
"teamId" : "a4ede8ba-7c0a-4485-8763-cbd9b282fbec" ,
"taskId" : "e6e9d88a-9b63-468a-aec3-b7a11de27af8" ,
"reportId" : "836df459-dc40-4aa1-972a-6eb0a864dff9" ,
"username" : "string" ,
"timestamp" : 0 ,
"answer" : "string"
}
Properties
Name
Type
Required
Restrictions
Description
exerciseId
string(uuid)
false
none
none
teamId
string(uuid)
false
none
none
taskId
string(uuid)
false
none
none
reportId
string(uuid)
false
none
none
username
string
false
none
none
timestamp
integer(int64)
false
none
none
answer
string
false
none
none
CTFTaskSubmissionDTO
{
"timestamp" : 0 ,
"teamName" : "string" ,
"userName" : "string" ,
"answer" : "string" ,
"score" : 0 ,
"feedback" : "string" ,
"validatorOutput" : "string" ,
"answerCrossUsageTeamNames" : [
"string"
],
"isCorrect" : true
}
Properties
Name
Type
Required
Restrictions
Description
timestamp
integer(int64)
false
none
none
teamName
string
false
none
none
userName
string
false
none
none
answer
string
false
none
none
score
number(double)
false
none
none
feedback
string
false
none
none
validatorOutput
string
false
none
none
answerCrossUsageTeamNames
[string]
false
none
none
isCorrect
boolean
false
read-only
none
CTFTeamOverviewDTO
{
"teamName" : "string" ,
"position" : 0 ,
"categories" : [
{
"category" : "string" ,
"tasks" : [
{
"status" : "ABANDONED" ,
"title" : "string" ,
"score" : 0 ,
"usedHints" : 0 ,
"maxHints" : 0 ,
"timeSpentMs" : 0
}
]
}
]
}
Properties
Name
Type
Required
Restrictions
Description
teamName
string
false
none
none
position
integer(int32)
false
none
none
categories
[OverviewCategoryDTO ]
false
none
none
CTFTeamStatusDTO
{
"endTime" : 0 ,
"missionEndTime" : 0 ,
"missionMaxDurationMs" : 0 ,
"leader" : {
"score" : 0 ,
"tasksSolved" : 0
},
"teamScore" : 0 ,
"teamPosition" : 0 ,
"totalTeams" : 0 ,
"tasksSolved" : 0 ,
"tasksOpened" : 0 ,
"tasksLimit" : 0 ,
"tasksTotal" : 0 ,
"hintsUsed" : 0 ,
"hintsTotal" : 0 ,
"individualStartStop" : {
"start" : 0 ,
"stop" : 0
},
"showTeamPosition" : true
}
Properties
Name
Type
Required
Restrictions
Description
endTime
integer(int64)
false
none
none
missionEndTime
integer(int64)
false
none
none
missionMaxDurationMs
integer(int64)
false
none
none
leader
TeamStatusLeaderDTO
false
none
none
teamScore
number(double)
false
none
none
teamPosition
integer(int32)
false
none
none
totalTeams
integer(int32)
false
none
none
tasksSolved
integer(int32)
false
none
none
tasksOpened
integer(int32)
false
none
none
tasksLimit
integer(int32)
false
none
none
tasksTotal
integer(int32)
false
none
none
hintsUsed
integer(int32)
false
none
none
hintsTotal
integer(int32)
false
none
none
individualStartStop
IndividualStartStop
false
none
none
showTeamPosition
boolean
false
none
none
{
"exerciseId" : "71ba10b8-c6bd-49fd-9742-f8dbc8ccdb47" ,
"teamId" : "a4ede8ba-7c0a-4485-8763-cbd9b282fbec" ,
"objectiveContainerId" : "19719b61-3636-4c2c-9f9e-15e15bf34e46" ,
"objectiveContainerName" : "string" ,
"status" : "ATTACK_UNASSIGNED" ,
"timestamp" : 0
}
Properties
Name
Type
Required
Restrictions
Description
exerciseId
string(uuid)
false
none
none
teamId
string(uuid)
false
none
none
objectiveContainerId
string(uuid)
false
none
none
objectiveContainerName
string
false
none
none
status
string
false
none
none
timestamp
integer(int64)
false
none
none
Enumerated Values
Property
Value
status
ATTACK_UNASSIGNED
status
UNDER_ATTACK
status
COMPROMISED
status
FAILED
CampaignLiveNetworkSegment
{
"id" : "497f6eca-6276-4993-bfeb-53cbbbba6f08" ,
"name" : "string" ,
"color" : "string" ,
"states" : {
"good" : 0 ,
"compromised" : 0 ,
"notAvailable" : 0
},
"isUnderAttack" : true
}
Properties
Name
Type
Required
Restrictions
Description
id
string(uuid)
false
none
none
name
string
false
none
none
color
string
false
none
none
states
TargetCheckStates
false
none
none
isUnderAttack
boolean
false
read-only
none
{
"exerciseId" : "71ba10b8-c6bd-49fd-9742-f8dbc8ccdb47" ,
"teamId" : "a4ede8ba-7c0a-4485-8763-cbd9b282fbec" ,
"timestamp" : 0 ,
"type" : "SITUATION_REPORT" ,
"targetId" : "cbca1126-180e-4334-9df8-cf82289d378b" ,
"incidentType" : "ONLINE"
}
Properties
Name
Type
Required
Restrictions
Description
exerciseId
string(uuid)
false
none
none
teamId
string(uuid)
false
none
none
timestamp
integer(int64)
false
none
none
type
string
false
none
none
targetId
string(uuid)
false
none
none
incidentType
string
false
none
none
Enumerated Values
Property
Value
type
SITUATION_REPORT
type
INCIDENT
incidentType
ONLINE
incidentType
OFFLINE
incidentType
COMPROMISED
incidentType
NOT_COMPROMISED
CampaignLiveTarget
{
"id" : "497f6eca-6276-4993-bfeb-53cbbbba6f08" ,
"name" : "string" ,
"targetChecks" : [
{
"id" : "497f6eca-6276-4993-bfeb-53cbbbba6f08" ,
"name" : "string" ,
"status" : "GOOD"
}
],
"networkSegmentId" : "da59500c-a661-45ab-94a0-11930236ec3b" ,
"isUnderAttack" : true ,
"isDeployed" : true
}
Properties
Name
Type
Required
Restrictions
Description
id
string(uuid)
false
none
none
name
string
false
none
none
targetChecks
[CampaignLiveTargetCheck ]
false
none
none
networkSegmentId
string(uuid)
false
none
none
isUnderAttack
boolean
false
read-only
none
isDeployed
boolean
false
read-only
none
CampaignLiveTargetCheck
{
"id" : "497f6eca-6276-4993-bfeb-53cbbbba6f08" ,
"name" : "string" ,
"status" : "GOOD"
}
Properties
Name
Type
Required
Restrictions
Description
id
string(uuid)
false
none
none
name
string
false
none
none
status
string
false
none
none
Enumerated Values
Property
Value
status
GOOD
status
COMPROMISED
status
NOT_AVAILABLE
CampaignLiveTargetGroup
{
"name" : "string" ,
"targets" : [
{
"id" : "497f6eca-6276-4993-bfeb-53cbbbba6f08" ,
"name" : "string" ,
"targetChecks" : [
{
"id" : "497f6eca-6276-4993-bfeb-53cbbbba6f08" ,
"name" : "string" ,
"status" : "GOOD"
}
],
"networkSegmentId" : "da59500c-a661-45ab-94a0-11930236ec3b" ,
"isUnderAttack" : true ,
"isDeployed" : true
}
],
"isUnderAttack" : true
}
Properties
Name
Type
Required
Restrictions
Description
name
string
false
none
none
targets
[CampaignLiveTarget ]
false
none
none
isUnderAttack
boolean
false
read-only
none
{
"teamId" : "a4ede8ba-7c0a-4485-8763-cbd9b282fbec" ,
"teamName" : "string" ,
"score" : 0 ,
"ranking" : 0 ,
"states" : {
"good" : 0 ,
"compromised" : 0 ,
"notAvailable" : 0
},
"networkSegments" : [
{
"id" : "497f6eca-6276-4993-bfeb-53cbbbba6f08" ,
"name" : "string" ,
"color" : "string" ,
"states" : {
"good" : 0 ,
"compromised" : 0 ,
"notAvailable" : 0
},
"isUnderAttack" : true
}
],
"targetGroups" : [
{
"name" : "string" ,
"targets" : [
{
"id" : "497f6eca-6276-4993-bfeb-53cbbbba6f08" ,
"name" : "string" ,
"targetChecks" : [
{
"id" : "497f6eca-6276-4993-bfeb-53cbbbba6f08" ,
"name" : "string" ,
"status" : "GOOD"
}
],
"networkSegmentId" : "da59500c-a661-45ab-94a0-11930236ec3b" ,
"isUnderAttack" : true ,
"isDeployed" : true
}
],
"isUnderAttack" : true
}
]
}
Properties
Name
Type
Required
Restrictions
Description
teamId
string(uuid)
false
none
none
teamName
string
false
none
none
score
number(double)
false
none
none
ranking
integer(int32)
false
none
none
states
TargetCheckStates
false
none
none
networkSegments
[CampaignLiveNetworkSegment ]
false
none
none
targetGroups
[CampaignLiveTargetGroup ]
false
none
none
CampaignPhase
{
"id" : "497f6eca-6276-4993-bfeb-53cbbbba6f08" ,
"name" : "string" ,
"description" : "string" ,
"startTime" : 0
}
Properties
Name
Type
Required
Restrictions
Description
id
string(uuid)
false
none
none
name
string
false
none
none
description
string
false
none
none
startTime
integer(int64)
false
none
none
CampaignPhaseDefinition
{
"name" : "string" ,
"description" : "string" ,
"startTime" : 0
}
Properties
Name
Type
Required
Restrictions
Description
name
string
false
none
none
description
string
false
none
none
startTime
integer(int64)
false
none
none
CharacterEscapes
{
"escapeCodesForAscii" : [
0
]
}
Properties
Name
Type
Required
Restrictions
Description
escapeCodesForAscii
[integer]
false
none
none
ClassIntrospector
Properties
None
ClassLoader
{
"parent" : {
"parent" : {},
"name" : "string" ,
"unnamedModule" : {
"layer" : {},
"name" : "string" ,
"descriptor" : {
"open" : true ,
"automatic" : true
},
"classLoader" : {},
"annotations" : [
{}
],
"declaredAnnotations" : [
{}
],
"named" : true ,
"packages" : [
"string"
]
},
"registeredAsParallelCapable" : true ,
"definedPackages" : [
{
"name" : "string" ,
"annotations" : [
{}
],
"declaredAnnotations" : [
{}
],
"sealed" : true ,
"specificationTitle" : "string" ,
"specificationVersion" : "string" ,
"specificationVendor" : "string" ,
"implementationTitle" : "string" ,
"implementationVersion" : "string" ,
"implementationVendor" : "string"
}
]
},
"name" : "string" ,
"unnamedModule" : {
"layer" : {},
"name" : "string" ,
"descriptor" : {
"open" : true ,
"automatic" : true
},
"classLoader" : {
"parent" : {},
"name" : "string" ,
"unnamedModule" : {},
"registeredAsParallelCapable" : true ,
"definedPackages" : [
{
"name" : "string" ,
"annotations" : [
{}
],
"declaredAnnotations" : [
{}
],
"sealed" : true ,
"specificationTitle" : "string" ,
"specificationVersion" : "string" ,
"specificationVendor" : "string" ,
"implementationTitle" : "string" ,
"implementationVersion" : "string" ,
"implementationVendor" : "string"
}
]
},
"annotations" : [
{}
],
"declaredAnnotations" : [
{}
],
"named" : true ,
"packages" : [
"string"
]
},
"registeredAsParallelCapable" : true ,
"definedPackages" : [
{
"name" : "string" ,
"annotations" : [
{}
],
"declaredAnnotations" : [
{}
],
"sealed" : true ,
"specificationTitle" : "string" ,
"specificationVersion" : "string" ,
"specificationVendor" : "string" ,
"implementationTitle" : "string" ,
"implementationVersion" : "string" ,
"implementationVendor" : "string"
}
]
}
Properties
Name
Type
Required
Restrictions
Description
parent
ClassLoader
false
none
none
name
string
false
none
none
unnamedModule
Module
false
none
none
registeredAsParallelCapable
boolean
false
none
none
definedPackages
[Package ]
false
none
none
CombinedObserverSettingsDTO
{
"views" : [
"CAMPAIGN_LIVE"
],
"isEnabled" : true
}
Properties
Name
Type
Required
Restrictions
Description
views
[string]
false
none
none
isEnabled
boolean
false
read-only
none
ContextAttributes
Properties
None
Currency
{
"currencyCode" : "string" ,
"defaultFractionDigits" : 0 ,
"numericCode" : 0 ,
"displayName" : "string" ,
"symbol" : "string" ,
"numericCodeAsString" : "string"
}
Properties
Name
Type
Required
Restrictions
Description
currencyCode
string
false
none
none
defaultFractionDigits
integer(int32)
false
none
none
numericCode
integer(int32)
false
none
none
displayName
string
false
none
none
symbol
string
false
none
none
numericCodeAsString
string
false
none
none
{
"calendar" : "2019-08-24T14:15:22Z" ,
"numberFormat" : {
"groupingUsed" : true ,
"parseIntegerOnly" : true ,
"maximumIntegerDigits" : 0 ,
"minimumIntegerDigits" : 0 ,
"maximumFractionDigits" : 0 ,
"minimumFractionDigits" : 0 ,
"currency" : {
"currencyCode" : "string" ,
"defaultFractionDigits" : 0 ,
"numericCode" : 0 ,
"displayName" : "string" ,
"symbol" : "string" ,
"numericCodeAsString" : "string"
},
"roundingMode" : "UP"
},
"lenient" : true ,
"timeZone" : {
"id" : "string" ,
"displayName" : "string" ,
"dstsavings" : 0 ,
"rawOffset" : 0
}
}
Properties
Name
Type
Required
Restrictions
Description
calendar
string(date-time)
false
none
none
numberFormat
NumberFormat
false
none
none
lenient
boolean
false
none
none
timeZone
TimeZone
false
none
none
DelRapConfiguration
{
"integrationType" : "REST"
}
Properties
allOf - discriminator: IntegrationConfiguration.integrationType
and
Name
Type
Required
Restrictions
Description
anonymous
object
false
none
none
DeserializationConfig
{
"defaultPropertyInclusion" : {
"valueInclusion" : "ALWAYS" ,
"contentInclusion" : "ALWAYS"
},
"annotationIntrospector" : {},
"deserializationFeatures" : 0 ,
"nodeFactory" : {},
"problemHandlers" : {},
"defaultVisibilityChecker" : {},
"attributes" : {},
"rootName" : "string" ,
"subtypeResolver" : {},
"fullRootName" : {
"empty" : true ,
"simpleName" : "string" ,
"namespace" : "string"
},
"handlerInstantiator" : {},
"propertyNamingStrategy" : {},
"timeZone" : {
"id" : "string" ,
"displayName" : "string" ,
"dstsavings" : 0 ,
"rawOffset" : 0
},
"locale" : {
"language" : "string" ,
"script" : "string" ,
"country" : "string" ,
"variant" : "string" ,
"extensionKeys" : [
"string"
],
"unicodeLocaleAttributes" : [
"string"
],
"unicodeLocaleKeys" : [
"string"
],
"iso3Language" : "string" ,
"iso3Country" : "string" ,
"displayLanguage" : "string" ,
"displayScript" : "string" ,
"displayCountry" : "string" ,
"displayVariant" : "string" ,
"displayName" : "string"
},
"classIntrospector" : {},
"typeFactory" : {
"classLoader" : {
"parent" : {},
"name" : "string" ,
"unnamedModule" : {
"layer" : {},
"name" : "string" ,
"descriptor" : {
"open" : true ,
"automatic" : true
},
"classLoader" : {},
"annotations" : [
{}
],
"declaredAnnotations" : [
{}
],
"named" : true ,
"packages" : [
"string"
]
},
"registeredAsParallelCapable" : true ,
"definedPackages" : [
{
"name" : "string" ,
"annotations" : [
{}
],
"declaredAnnotations" : [
{}
],
"sealed" : true ,
"specificationTitle" : "string" ,
"specificationVersion" : "string" ,
"specificationVendor" : "string" ,
"implementationTitle" : "string" ,
"implementationVersion" : "string" ,
"implementationVendor" : "string"
}
]
}
},
"annotationProcessingEnabled" : true ,
"dateFormat" : {
"calendar" : "2019-08-24T14:15:22Z" ,
"numberFormat" : {
"groupingUsed" : true ,
"parseIntegerOnly" : true ,
"maximumIntegerDigits" : 0 ,
"minimumIntegerDigits" : 0 ,
"maximumFractionDigits" : 0 ,
"minimumFractionDigits" : 0 ,
"currency" : {
"currencyCode" : "string" ,
"defaultFractionDigits" : 0 ,
"numericCode" : 0 ,
"displayName" : "string" ,
"symbol" : "string" ,
"numericCodeAsString" : "string"
},
"roundingMode" : "UP"
},
"lenient" : true ,
"timeZone" : {
"id" : "string" ,
"displayName" : "string" ,
"dstsavings" : 0 ,
"rawOffset" : 0
}
},
"base64Variant" : {
"name" : "string" ,
"maxLineLength" : 0 ,
"paddingByte" : "string" ,
"paddingChar" : "string"
}
}
Properties
DeserializationContext
{
"annotationIntrospector" : {},
"factory" : {},
"timeZone" : {
"id" : "string" ,
"displayName" : "string" ,
"dstsavings" : 0 ,
"rawOffset" : 0
},
"locale" : {
"language" : "string" ,
"script" : "string" ,
"country" : "string" ,
"variant" : "string" ,
"extensionKeys" : [
"string"
],
"unicodeLocaleAttributes" : [
"string"
],
"unicodeLocaleKeys" : [
"string"
],
"iso3Language" : "string" ,
"iso3Country" : "string" ,
"displayLanguage" : "string" ,
"displayScript" : "string" ,
"displayCountry" : "string" ,
"displayVariant" : "string" ,
"displayName" : "string"
},
"config" : {
"defaultPropertyInclusion" : {
"valueInclusion" : "ALWAYS" ,
"contentInclusion" : "ALWAYS"
},
"annotationIntrospector" : {},
"deserializationFeatures" : 0 ,
"nodeFactory" : {},
"problemHandlers" : {},
"defaultVisibilityChecker" : {},
"attributes" : {},
"rootName" : "string" ,
"subtypeResolver" : {},
"fullRootName" : {
"empty" : true ,
"simpleName" : "string" ,
"namespace" : "string"
},
"handlerInstantiator" : {},
"propertyNamingStrategy" : {},
"timeZone" : {
"id" : "string" ,
"displayName" : "string" ,
"dstsavings" : 0 ,
"rawOffset" : 0
},
"locale" : {
"language" : "string" ,
"script" : "string" ,
"country" : "string" ,
"variant" : "string" ,
"extensionKeys" : [
"string"
],
"unicodeLocaleAttributes" : [
"string"
],
"unicodeLocaleKeys" : [
"string"
],
"iso3Language" : "string" ,
"iso3Country" : "string" ,
"displayLanguage" : "string" ,
"displayScript" : "string" ,
"displayCountry" : "string" ,
"displayVariant" : "string" ,
"displayName" : "string"
},
"classIntrospector" : {},
"typeFactory" : {
"classLoader" : {
"parent" : {},
"name" : "string" ,
"unnamedModule" : {
"layer" : {},
"name" : "string" ,
"descriptor" : {
"open" : true ,
"automatic" : true
},
"classLoader" : {},
"annotations" : [
{}
],
"declaredAnnotations" : [
{}
],
"named" : true ,
"packages" : [
"string"
]
},
"registeredAsParallelCapable" : true ,
"definedPackages" : [
{
"name" : "string" ,
"annotations" : [
{}
],
"declaredAnnotations" : [
{}
],
"sealed" : true ,
"specificationTitle" : "string" ,
"specificationVersion" : "string" ,
"specificationVendor" : "string" ,
"implementationTitle" : "string" ,
"implementationVersion" : "string" ,
"implementationVendor" : "string"
}
]
}
},
"annotationProcessingEnabled" : true ,
"dateFormat" : {
"calendar" : "2019-08-24T14:15:22Z" ,
"numberFormat" : {
"groupingUsed" : true ,
"parseIntegerOnly" : true ,
"maximumIntegerDigits" : 0 ,
"minimumIntegerDigits" : 0 ,
"maximumFractionDigits" : 0 ,
"minimumFractionDigits" : 0 ,
"currency" : {
"currencyCode" : "string" ,
"defaultFractionDigits" : 0 ,
"numericCode" : 0 ,
"displayName" : "string" ,
"symbol" : "string" ,
"numericCodeAsString" : "string"
},
"roundingMode" : "UP"
},
"lenient" : true ,
"timeZone" : {
"id" : "string" ,
"displayName" : "string" ,
"dstsavings" : 0 ,
"rawOffset" : 0
}
},
"base64Variant" : {
"name" : "string" ,
"maxLineLength" : 0 ,
"paddingByte" : "string" ,
"paddingChar" : "string"
}
},
"parser" : {
"textLength" : 0 ,
"textCharacters" : [
"string"
],
"text" : "string" ,
"schema" : {
"schemaType" : "string"
},
"booleanValue" : true ,
"byteValue" : "string" ,
"doubleValue" : 0 ,
"floatValue" : 0 ,
"shortValue" : 0 ,
"longValue" : 0 ,
"textOffset" : 0 ,
"closed" : true ,
"currentValue" : {},
"numberType" : "INT" ,
"intValue" : 0 ,
"typeId" : {},
"valueAsLong" : 0 ,
"inputSource" : {},
"valueAsDouble" : 0 ,
"numberValue" : {},
"valueAsString" : "string" ,
"valueAsBoolean" : true ,
"currentLocation" : {
"byteOffset" : 0 ,
"sourceRef" : {},
"lineNr" : 0 ,
"columnNr" : 0 ,
"charOffset" : 0
},
"binaryValue" : [
"string"
],
"valueAsInt" : 0 ,
"parsingContext" : {
"parent" : {},
"entryCount" : 0 ,
"currentValue" : {},
"typeDesc" : "string" ,
"currentIndex" : 0 ,
"currentName" : "string"
},
"codec" : {
"factory" : {
"characterEscapes" : {
"escapeCodesForAscii" : [
0
]
},
"rootValueSeparator" : "string" ,
"formatName" : "string" ,
"outputDecorator" : {},
"inputDecorator" : {},
"codec" : {}
},
"jsonFactory" : {
"characterEscapes" : {
"escapeCodesForAscii" : [
0
]
},
"rootValueSeparator" : "string" ,
"formatName" : "string" ,
"outputDecorator" : {},
"inputDecorator" : {},
"codec" : {}
}
},
"currentName" : "string" ,
"currentToken" : "NOT_AVAILABLE" ,
"tokenLocation" : {
"byteOffset" : 0 ,
"sourceRef" : {},
"lineNr" : 0 ,
"columnNr" : 0 ,
"charOffset" : 0
},
"featureMask" : 0 ,
"bigIntegerValue" : 0 ,
"formatFeatures" : 0 ,
"decimalValue" : 0 ,
"embeddedObject" : {},
"objectId" : {},
"currentTokenId" : 0 ,
"expectedStartArrayToken" : true ,
"expectedStartObjectToken" : true ,
"lastClearedToken" : "NOT_AVAILABLE"
},
"typeFactory" : {
"classLoader" : {
"parent" : {},
"name" : "string" ,
"unnamedModule" : {
"layer" : {},
"name" : "string" ,
"descriptor" : {
"open" : true ,
"automatic" : true
},
"classLoader" : {},
"annotations" : [
{}
],
"declaredAnnotations" : [
{}
],
"named" : true ,
"packages" : [
"string"
]
},
"registeredAsParallelCapable" : true ,
"definedPackages" : [
{
"name" : "string" ,
"annotations" : [
{}
],
"declaredAnnotations" : [
{}
],
"sealed" : true ,
"specificationTitle" : "string" ,
"specificationVersion" : "string" ,
"specificationVendor" : "string" ,
"implementationTitle" : "string" ,
"implementationVersion" : "string" ,
"implementationVendor" : "string"
}
]
}
},
"deserializationFeatures" : 0 ,
"nodeFactory" : {},
"base64Variant" : {
"name" : "string" ,
"maxLineLength" : 0 ,
"paddingByte" : "string" ,
"paddingChar" : "string"
},
"arrayBuilders" : {
"byteBuilder" : {},
"booleanBuilder" : {},
"doubleBuilder" : {},
"intBuilder" : {},
"floatBuilder" : {},
"shortBuilder" : {},
"longBuilder" : {}
},
"contextualType" : {
"interface" : true ,
"primitive" : true ,
"interfaces" : [
{}
],
"genericSignature" : "string" ,
"final" : true ,
"abstract" : true ,
"contentType" : {},
"bindings" : {
"empty" : true ,
"typeParameters" : [
{}
]
},
"concrete" : true ,
"referencedType" : {},
"enumType" : true ,
"superClass" : {},
"throwable" : true ,
"arrayType" : true ,
"collectionLikeType" : true ,
"contentValueHandler" : {},
"contentTypeHandler" : {},
"containerType" : true ,
"valueHandler" : {},
"typeHandler" : {},
"keyType" : {},
"javaLangObject" : true ,
"mapLikeType" : true ,
"erasedSignature" : "string" ,
"typeName" : "string" ,
"referenceType" : true
}
}
Properties
DeserializerFactory
Properties
None
DoubleBuilder
Properties
None
Duration
{
"seconds" : 0 ,
"nano" : 0 ,
"units" : [
{
"duration" : {
"seconds" : 0 ,
"nano" : 0 ,
"units" : [],
"negative" : true ,
"zero" : true
},
"durationEstimated" : true ,
"dateBased" : true ,
"timeBased" : true
}
],
"negative" : true ,
"zero" : true
}
Properties
Name
Type
Required
Restrictions
Description
seconds
integer(int64)
false
none
none
nano
integer(int32)
false
none
none
units
[TemporalUnit ]
false
none
none
negative
boolean
false
none
none
zero
boolean
false
none
none
EmailEvent
{
"id" : {
"timestamp" : 0 ,
"date" : "2019-08-24T14:15:22Z"
},
"type" : "TARGET_STATUS_CHANGE" ,
"subjectType" : "TARGET" ,
"integrationId" : {
"timestamp" : 0 ,
"date" : "2019-08-24T14:15:22Z"
},
"subjectId" : "string" ,
"mailFrom" : "string" ,
"mailTo" : "string" ,
"mailToMany" : [
"string"
],
"mailSubject" : "string" ,
"mailBody" : "string"
}
Properties
allOf - discriminator: IntegrationEvent.type
Name
Type
Required
Restrictions
Description
anonymous
IntegrationEvent
false
none
none
and
Name
Type
Required
Restrictions
Description
anonymous
object
false
none
none
» mailFrom
string
false
none
none
» mailTo
string
false
none
none
» mailToMany
[string]
false
none
none
» mailSubject
string
false
none
none
» mailBody
string
false
none
none
EmailEventDTO
{
"id" : "string" ,
"type" : "TARGET_STATUS_CHANGE" ,
"subjectName" : "string" ,
"subjectType" : "TARGET" ,
"integrationId" : "string" ,
"subjectId" : "string" ,
"mailFrom" : "string" ,
"mailTo" : "string" ,
"mailToMany" : [
"string"
],
"mailSubject" : "string" ,
"mailBody" : "string"
}
Properties
allOf - discriminator: IntegrationEventDTO.type
and
Name
Type
Required
Restrictions
Description
anonymous
object
false
none
none
» mailFrom
string
false
none
none
» mailTo
string
false
none
none
» mailToMany
[string]
false
none
none
» mailSubject
string
false
none
none
» mailBody
string
false
none
none
Exercise
{
"teamSettingsEnabled" : true ,
"networkSegments" : [
{
"id" : "497f6eca-6276-4993-bfeb-53cbbbba6f08" ,
"name" : "string" ,
"description" : "string" ,
"colorHex" : "string"
}
],
"name" : "string" ,
"id" : "497f6eca-6276-4993-bfeb-53cbbbba6f08" ,
"type" : "CAMPAIGN" ,
"definition" : {
"image" : "string" ,
"networkSegments" : [
{
"name" : "string" ,
"description" : "string" ,
"colorHex" : "string"
}
],
"name" : "string" ,
"type" : "CAMPAIGN" ,
"description" : "string" ,
"gitConfiguration" : {
"url" : "string" ,
"authenticationType" : "CREDENTIALS" ,
"branch" : "string"
},
"blueTeamLdapGroup" : "string" ,
"externalId" : "string" ,
"campaignPhases" : [
{
"name" : "string" ,
"description" : "string" ,
"startTime" : 0
}
],
"externalSource" : "VLM" ,
"activeTimes" : [
{
"startTime" : 0 ,
"endTime" : 0
}
],
"difficulty" : "EASY" ,
"blueTeamName" : "string" ,
"targetGroups" : [
{
"name" : "string" ,
"username" : "string" ,
"objectives" : [
{
"name" : "string" ,
"category" : "NETWORKING" ,
"campaignPhaseName" : "string" ,
"scoreWeight" : 0 ,
"sequence" : 0
}
],
"targets" : [
{
"name" : "string" ,
"hostname" : "string" ,
"networkSegmentName" : "string" ,
"targetChecks" : [
{
"name" : "string" ,
"description" : "string" ,
"type" : "ICMP_RESPONDER_PING" ,
"ipAddress" : "string" ,
"parameters" : [
{
"name" : "string" ,
"value" : "string"
}
],
"scoreWeight" : 0 ,
"objectives" : [
{
"name" : "string" ,
"category" : "NETWORKING" ,
"campaignPhaseName" : "string" ,
"scoreWeight" : 0 ,
"sequence" : 0
}
],
"username" : "string"
}
],
"scoreBreakdown" : [
{
"name" : "TOTAL" ,
"value" : 0
}
]
}
]
}
],
"numberOfTeams" : 0 ,
"gmaId" : [
"497f6eca-6276-4993-bfeb-53cbbbba6f08"
],
"imageId" : "string" ,
"whiteTeamLdapGroup" : "string" ,
"isTeamSettingsEnabled" : true ,
"isTargetManagementEnabled" : true
},
"description" : "string" ,
"gitConfiguration" : {
"url" : "string" ,
"authenticationType" : "CREDENTIALS" ,
"branch" : "string"
},
"externalId" : "string" ,
"campaignPhases" : [
{
"id" : "497f6eca-6276-4993-bfeb-53cbbbba6f08" ,
"name" : "string" ,
"description" : "string" ,
"startTime" : 0
}
],
"externalSource" : "VLM" ,
"activeTimes" : [
{
"startTime" : 0 ,
"endTime" : 0
}
],
"difficulty" : "EASY" ,
"blueTeams" : [
{
"avatarFileId" : "string" ,
"ldapGroup" : "string" ,
"name" : "string" ,
"id" : "497f6eca-6276-4993-bfeb-53cbbbba6f08" ,
"gmaId" : "38986f0b-d3bf-44a4-9955-8376fb08408a" ,
"targetGroups" : [
{
"id" : "497f6eca-6276-4993-bfeb-53cbbbba6f08" ,
"name" : "string" ,
"username" : "string" ,
"objectives" : [
{
"id" : "497f6eca-6276-4993-bfeb-53cbbbba6f08" ,
"name" : "string" ,
"category" : "NETWORKING" ,
"campaignPhaseId" : "ec1a6f36-e0b2-4e93-85b6-db68c75b7edc" ,
"scoreWeight" : 0 ,
"sequence" : 0
}
],
"targets" : [
{
"id" : "497f6eca-6276-4993-bfeb-53cbbbba6f08" ,
"name" : "string" ,
"hostname" : "string" ,
"networkSegmentId" : "da59500c-a661-45ab-94a0-11930236ec3b" ,
"targetChecks" : [
{
"id" : "497f6eca-6276-4993-bfeb-53cbbbba6f08" ,
"name" : "string" ,
"status" : "GOOD" ,
"username" : "string"
}
],
"scoreBreakdown" : [
{
"name" : "TOTAL" ,
"value" : 0
}
],
"isDeployed" : true
}
]
}
]
}
],
"imageId" : "string" ,
"whiteTeamLdapGroup" : "string" ,
"isTargetManagementEnabled" : true ,
"redTeamLdapGroup" : "string" ,
"gracePeriodInMinutes" : 0 ,
"pointsBudget" : {
"total" : 0 ,
"breakdown" : [
{
"name" : "TOTAL" ,
"value" : 0
}
]
},
"expectedSituationReportsCount" : 0 ,
"attackFlagFileUnixPaths" : [
"string"
],
"attackFlagFileWinPaths" : [
"string"
],
"scoringBotUsername" : "string" ,
"scoringBotPassword" : "string" ,
"situationReportTemplate" : "string" ,
"incidentReportTemplate" : "string" ,
"disabledIncidentTypes" : [
"ONLINE"
],
"isTargetCheckStatusHidden" : true
}
Properties
allOf - discriminator: IExercise.type
Name
Type
Required
Restrictions
Description
anonymous
IExercise
false
none
none
and
Name
Type
Required
Restrictions
Description
anonymous
object
false
none
none
» redTeamLdapGroup
string
false
none
none
» gracePeriodInMinutes
integer(int32)
false
none
none
» blueTeams
[BlueTeam ]
false
none
none
» pointsBudget
ExercisePointsBudget
false
none
none
» expectedSituationReportsCount
integer(int32)
false
none
none
» attackFlagFileUnixPaths
[string]
false
none
none
» attackFlagFileWinPaths
[string]
false
none
none
» scoringBotUsername
string
false
none
none
» scoringBotPassword
string
false
none
none
» situationReportTemplate
string
false
none
none
» incidentReportTemplate
string
false
none
none
» disabledIncidentTypes
[string]
false
none
none
» isTargetCheckStatusHidden
boolean
false
read-only
none
ExerciseDefinition
{
"image" : "string" ,
"networkSegments" : [
{
"name" : "string" ,
"description" : "string" ,
"colorHex" : "string"
}
],
"name" : "string" ,
"type" : "CAMPAIGN" ,
"description" : "string" ,
"gitConfiguration" : {
"url" : "string" ,
"authenticationType" : "CREDENTIALS" ,
"branch" : "string"
},
"blueTeamLdapGroup" : "string" ,
"externalId" : "string" ,
"campaignPhases" : [
{
"name" : "string" ,
"description" : "string" ,
"startTime" : 0
}
],
"externalSource" : "VLM" ,
"activeTimes" : [
{
"startTime" : 0 ,
"endTime" : 0
}
],
"difficulty" : "EASY" ,
"blueTeamName" : "string" ,
"targetGroups" : [
{
"name" : "string" ,
"username" : "string" ,
"objectives" : [
{
"name" : "string" ,
"category" : "NETWORKING" ,
"campaignPhaseName" : "string" ,
"scoreWeight" : 0 ,
"sequence" : 0
}
],
"targets" : [
{
"name" : "string" ,
"hostname" : "string" ,
"networkSegmentName" : "string" ,
"targetChecks" : [
{
"name" : "string" ,
"description" : "string" ,
"type" : "ICMP_RESPONDER_PING" ,
"ipAddress" : "string" ,
"parameters" : [
{
"name" : "string" ,
"value" : "string"
}
],
"scoreWeight" : 0 ,
"objectives" : [
{
"name" : "string" ,
"category" : "NETWORKING" ,
"campaignPhaseName" : "string" ,
"scoreWeight" : 0 ,
"sequence" : 0
}
],
"username" : "string"
}
],
"scoreBreakdown" : [
{
"name" : "TOTAL" ,
"value" : 0
}
]
}
]
}
],
"numberOfTeams" : 0 ,
"gmaId" : [
"497f6eca-6276-4993-bfeb-53cbbbba6f08"
],
"imageId" : "string" ,
"whiteTeamLdapGroup" : "string" ,
"isTeamSettingsEnabled" : true ,
"isTargetManagementEnabled" : true ,
"redTeamLdapGroup" : "string" ,
"gracePeriodInMinutes" : 0 ,
"pointsBudget" : {
"total" : 0 ,
"breakdown" : [
{
"name" : "TOTAL" ,
"value" : 0
}
]
},
"expectedSituationReportsCount" : 0 ,
"attackFlagFileUnixPaths" : [
"string"
],
"attackFlagFileWinPaths" : [
"string"
],
"scoringBotUsername" : "string" ,
"scoringBotPassword" : "string" ,
"situationReportTemplate" : "string" ,
"incidentReportTemplate" : "string" ,
"disabledIncidentTypes" : [
"ONLINE"
],
"isTargetCheckStatusHidden" : true
}
Properties
allOf - discriminator: IExerciseDefinition.type
and
Name
Type
Required
Restrictions
Description
anonymous
object
false
none
none
» redTeamLdapGroup
string
false
none
none
» gracePeriodInMinutes
integer(int32)
false
none
none
» pointsBudget
ExercisePointsBudget
false
none
none
» expectedSituationReportsCount
integer(int32)
false
none
none
» attackFlagFileUnixPaths
[string]
false
none
none
» attackFlagFileWinPaths
[string]
false
none
none
» scoringBotUsername
string
false
none
none
» scoringBotPassword
string
false
none
none
» situationReportTemplate
string
false
none
none
» incidentReportTemplate
string
false
none
none
» disabledIncidentTypes
[string]
false
none
none
» isTargetCheckStatusHidden
boolean
false
read-only
none
ExerciseEndEvent
{
"id" : {
"timestamp" : 0 ,
"date" : "2019-08-24T14:15:22Z"
},
"type" : "TARGET_STATUS_CHANGE" ,
"subjectType" : "TARGET" ,
"integrationId" : {
"timestamp" : 0 ,
"date" : "2019-08-24T14:15:22Z"
},
"subjectId" : "string"
}
Properties
allOf - discriminator: IntegrationEvent.type
Name
Type
Required
Restrictions
Description
anonymous
IntegrationEvent
false
none
none
and
Name
Type
Required
Restrictions
Description
anonymous
object
false
none
none
ExerciseEndEventDTO
{
"id" : "string" ,
"type" : "TARGET_STATUS_CHANGE" ,
"subjectName" : "string" ,
"subjectType" : "TARGET" ,
"integrationId" : "string" ,
"subjectId" : "string"
}
Properties
allOf - discriminator: IntegrationEventDTO.type
and
Name
Type
Required
Restrictions
Description
anonymous
object
false
none
none
ExercisePointsBudget
{
"total" : 0 ,
"breakdown" : [
{
"name" : "TOTAL" ,
"value" : 0
}
]
}
Properties
Name
Type
Required
Restrictions
Description
total
integer(int32)
false
none
none
breakdown
[ScoreBreakdown ]
false
none
none
ExerciseProgressUpdateEvent
{
"id" : {
"timestamp" : 0 ,
"date" : "2019-08-24T14:15:22Z"
},
"type" : "TARGET_STATUS_CHANGE" ,
"subjectType" : "TARGET" ,
"integrationId" : {
"timestamp" : 0 ,
"date" : "2019-08-24T14:15:22Z"
},
"subjectId" : "string"
}
Properties
allOf - discriminator: IntegrationEvent.type
Name
Type
Required
Restrictions
Description
anonymous
IntegrationEvent
false
none
none
and
Name
Type
Required
Restrictions
Description
anonymous
object
false
none
none
ExerciseProgressUpdateEventDTO
{
"id" : "string" ,
"type" : "TARGET_STATUS_CHANGE" ,
"subjectName" : "string" ,
"subjectType" : "TARGET" ,
"integrationId" : "string" ,
"subjectId" : "string"
}
Properties
allOf - discriminator: IntegrationEventDTO.type
and
Name
Type
Required
Restrictions
Description
anonymous
object
false
none
none
ExerciseStartEvent
{
"id" : {
"timestamp" : 0 ,
"date" : "2019-08-24T14:15:22Z"
},
"type" : "TARGET_STATUS_CHANGE" ,
"subjectType" : "TARGET" ,
"integrationId" : {
"timestamp" : 0 ,
"date" : "2019-08-24T14:15:22Z"
},
"subjectId" : "string"
}
Properties
allOf - discriminator: IntegrationEvent.type
Name
Type
Required
Restrictions
Description
anonymous
IntegrationEvent
false
none
none
and
Name
Type
Required
Restrictions
Description
anonymous
object
false
none
none
ExerciseStartEventDTO
{
"id" : "string" ,
"type" : "TARGET_STATUS_CHANGE" ,
"subjectName" : "string" ,
"subjectType" : "TARGET" ,
"integrationId" : "string" ,
"subjectId" : "string"
}
Properties
allOf - discriminator: IntegrationEventDTO.type
and
Name
Type
Required
Restrictions
Description
anonymous
object
false
none
none
ExerciseStatusLeaderDTO
{
"name" : "string" ,
"score" : 0 ,
"tasksSolved" : 0
}
Properties
Name
Type
Required
Restrictions
Description
name
string
false
none
none
score
number(double)
false
none
none
tasksSolved
integer(int32)
false
none
none
FilePermission
{
"fileId" : "string" ,
"permissions" : [
"string"
],
"exerciseId" : "71ba10b8-c6bd-49fd-9742-f8dbc8ccdb47" ,
"teamId" : "a4ede8ba-7c0a-4485-8763-cbd9b282fbec"
}
Properties
Name
Type
Required
Restrictions
Description
fileId
string
false
none
none
permissions
[string]
false
none
none
exerciseId
string(uuid)
false
none
none
teamId
string(uuid)
false
none
none
FilterProvider
Properties
None
FloatBuilder
Properties
None
{
"schemaType" : "string"
}
Properties
Name
Type
Required
Restrictions
Description
schemaType
string
false
none
none
GamenetSettingsDTO
{
"soundOnTeamChangeEnabled" : true ,
"selectedSoundId" : "string" ,
"ctfPodiumFirstPlaceSoundEnabled" : true ,
"ctfPodiumFirstPlaceSoundId" : "string" ,
"ctfPodiumSecondThirdPlaceSoundEnabled" : true ,
"ctfPodiumSecondThirdPlaceSoundId" : "string" ,
"exerciseRefreshInterval" : 0 ,
"scoringTimelineWidgetRefreshInterval" : 0
}
Properties
Name
Type
Required
Restrictions
Description
soundOnTeamChangeEnabled
boolean
false
none
none
selectedSoundId
string
false
none
none
ctfPodiumFirstPlaceSoundEnabled
boolean
false
none
none
ctfPodiumFirstPlaceSoundId
string
false
none
none
ctfPodiumSecondThirdPlaceSoundEnabled
boolean
false
none
none
ctfPodiumSecondThirdPlaceSoundId
string
false
none
none
exerciseRefreshInterval
integer(int64)
false
none
none
scoringTimelineWidgetRefreshInterval
integer(int64)
false
none
none
GitCredentialsConfiguration
{
"url" : "string" ,
"authenticationType" : "CREDENTIALS" ,
"branch" : "string" ,
"username" : "string" ,
"password" : [
"string"
]
}
Properties
allOf - discriminator: IGitConfiguration.authenticationType
Name
Type
Required
Restrictions
Description
anonymous
IGitConfiguration
false
none
none
and
Name
Type
Required
Restrictions
Description
anonymous
object
false
none
none
» username
string
false
none
none
» password
[string]
false
none
none
GitSshConfiguration
{
"url" : "string" ,
"authenticationType" : "CREDENTIALS" ,
"branch" : "string" ,
"sshKey" : [
"string"
]
}
Properties
allOf - discriminator: IGitConfiguration.authenticationType
Name
Type
Required
Restrictions
Description
anonymous
IGitConfiguration
false
none
none
and
Name
Type
Required
Restrictions
Description
anonymous
object
false
none
none
» sshKey
[string]
false
none
none
GmaExerciseOverview
{
"id" : "497f6eca-6276-4993-bfeb-53cbbbba6f08" ,
"name" : "string" ,
"teams" : [
{
"id" : "497f6eca-6276-4993-bfeb-53cbbbba6f08" ,
"name" : "string"
}
]
}
Properties
Name
Type
Required
Restrictions
Description
id
string(uuid)
false
none
none
name
string
false
none
none
teams
[GmaTeamOverview ]
false
none
none
GmaOverview
{
"id" : "497f6eca-6276-4993-bfeb-53cbbbba6f08" ,
"ipAddress" : "string" ,
"registered" : 0 ,
"latestActivityTimestamp" : 0 ,
"exercises" : [
{
"id" : "497f6eca-6276-4993-bfeb-53cbbbba6f08" ,
"name" : "string" ,
"teams" : [
{
"id" : "497f6eca-6276-4993-bfeb-53cbbbba6f08" ,
"name" : "string"
}
]
}
]
}
Properties
Name
Type
Required
Restrictions
Description
id
string(uuid)
false
none
none
ipAddress
string
false
none
none
registered
integer(int64)
false
none
none
latestActivityTimestamp
integer(int64)
false
none
none
exercises
[GmaExerciseOverview ]
false
none
none
GmaTeamOverview
{
"id" : "497f6eca-6276-4993-bfeb-53cbbbba6f08" ,
"name" : "string"
}
Properties
Name
Type
Required
Restrictions
Description
id
string(uuid)
false
none
none
name
string
false
none
none
HandlerInstantiator
Properties
None
HealthAggregatedData
{
"timestamp" : 0 ,
"data" : [
{
"type" : "string" ,
"name" : "string" ,
"description" : "string" ,
"checks" : [
{}
],
"isUp" : true
}
]
}
Properties
Name
Type
Required
Restrictions
Description
timestamp
integer(int64)
false
none
none
data
[HealthAggregatedDataItem ]
false
none
none
HealthAggregatedDataItem
{
"type" : "string" ,
"name" : "string" ,
"description" : "string" ,
"checks" : [
{
"type" : "string" ,
"name" : "string" ,
"description" : "string" ,
"checks" : [],
"isUp" : true
}
],
"isUp" : true
}
Properties
Name
Type
Required
Restrictions
Description
type
string
false
none
none
name
string
false
none
none
description
string
false
none
none
checks
[HealthAggregatedDataItem ]
false
none
none
isUp
boolean
false
read-only
none
HybridBlueTeam
{
"id" : "497f6eca-6276-4993-bfeb-53cbbbba6f08" ,
"name" : "string" ,
"ldapGroup" : "string" ,
"gmaId" : "38986f0b-d3bf-44a4-9955-8376fb08408a" ,
"targetGroups" : [
{
"id" : "497f6eca-6276-4993-bfeb-53cbbbba6f08" ,
"name" : "string" ,
"username" : "string" ,
"objectives" : [
{
"id" : "497f6eca-6276-4993-bfeb-53cbbbba6f08" ,
"name" : "string" ,
"category" : "NETWORKING" ,
"campaignPhaseId" : "ec1a6f36-e0b2-4e93-85b6-db68c75b7edc" ,
"scoreWeight" : 0 ,
"sequence" : 0
}
],
"targets" : [
{
"id" : "497f6eca-6276-4993-bfeb-53cbbbba6f08" ,
"name" : "string" ,
"hostname" : "string" ,
"networkSegmentId" : "da59500c-a661-45ab-94a0-11930236ec3b" ,
"targetChecks" : [
{
"id" : "497f6eca-6276-4993-bfeb-53cbbbba6f08" ,
"name" : "string" ,
"status" : "GOOD" ,
"username" : "string"
}
],
"scoreBreakdown" : [
{
"name" : "TOTAL" ,
"value" : 0
}
],
"isDeployed" : true
}
]
}
],
"tasks" : [
{
"niceIds" : {
"taskIds" : [
"string"
],
"knowledgeIds" : [
"string"
],
"skillIds" : [
"string"
],
"abilityIds" : [
"string"
]
},
"type" : "SINGLE_ANSWER" ,
"description" : "string" ,
"requiredTaskIds" : [
"497f6eca-6276-4993-bfeb-53cbbbba6f08"
],
"targets" : [
{
"id" : "497f6eca-6276-4993-bfeb-53cbbbba6f08" ,
"name" : "string" ,
"hostname" : "string" ,
"networkSegmentId" : "da59500c-a661-45ab-94a0-11930236ec3b" ,
"targetChecks" : [
{
"id" : "497f6eca-6276-4993-bfeb-53cbbbba6f08" ,
"name" : "string" ,
"status" : "GOOD" ,
"username" : "string"
}
],
"scoreBreakdown" : [
{
"name" : "TOTAL" ,
"value" : 0
}
],
"isDeployed" : true
}
],
"question" : "string" ,
"title" : "string" ,
"definitionId" : "058563fe-6949-46e9-9fb3-06a0e3a11f6a" ,
"category" : "string" ,
"hints" : [
{
"id" : "497f6eca-6276-4993-bfeb-53cbbbba6f08" ,
"content" : "string" ,
"penalty" : 0
}
],
"score" : 0 ,
"isLocked" : true
}
],
"avatarFileId" : "string"
}
Properties
Name
Type
Required
Restrictions
Description
id
string(uuid)
false
none
none
name
string
false
none
none
ldapGroup
string
false
none
none
gmaId
string(uuid)
false
none
none
targetGroups
[TargetGroup ]
false
none
none
tasks
[ICTFTask ]
false
none
none
avatarFileId
string
false
none
none
HybridExercise
{
"teamSettingsEnabled" : true ,
"networkSegments" : [
{
"id" : "497f6eca-6276-4993-bfeb-53cbbbba6f08" ,
"name" : "string" ,
"description" : "string" ,
"colorHex" : "string"
}
],
"name" : "string" ,
"id" : "497f6eca-6276-4993-bfeb-53cbbbba6f08" ,
"type" : "CAMPAIGN" ,
"definition" : {
"image" : "string" ,
"networkSegments" : [
{
"name" : "string" ,
"description" : "string" ,
"colorHex" : "string"
}
],
"name" : "string" ,
"type" : "CAMPAIGN" ,
"description" : "string" ,
"gitConfiguration" : {
"url" : "string" ,
"authenticationType" : "CREDENTIALS" ,
"branch" : "string"
},
"blueTeamLdapGroup" : "string" ,
"externalId" : "string" ,
"campaignPhases" : [
{
"name" : "string" ,
"description" : "string" ,
"startTime" : 0
}
],
"externalSource" : "VLM" ,
"activeTimes" : [
{
"startTime" : 0 ,
"endTime" : 0
}
],
"difficulty" : "EASY" ,
"blueTeamName" : "string" ,
"targetGroups" : [
{
"name" : "string" ,
"username" : "string" ,
"objectives" : [
{
"name" : "string" ,
"category" : "NETWORKING" ,
"campaignPhaseName" : "string" ,
"scoreWeight" : 0 ,
"sequence" : 0
}
],
"targets" : [
{
"name" : "string" ,
"hostname" : "string" ,
"networkSegmentName" : "string" ,
"targetChecks" : [
{
"name" : "string" ,
"description" : "string" ,
"type" : "ICMP_RESPONDER_PING" ,
"ipAddress" : "string" ,
"parameters" : [
{
"name" : "string" ,
"value" : "string"
}
],
"scoreWeight" : 0 ,
"objectives" : [
{
"name" : "string" ,
"category" : "NETWORKING" ,
"campaignPhaseName" : "string" ,
"scoreWeight" : 0 ,
"sequence" : 0
}
],
"username" : "string"
}
],
"scoreBreakdown" : [
{
"name" : "TOTAL" ,
"value" : 0
}
]
}
]
}
],
"numberOfTeams" : 0 ,
"gmaId" : [
"497f6eca-6276-4993-bfeb-53cbbbba6f08"
],
"imageId" : "string" ,
"whiteTeamLdapGroup" : "string" ,
"isTeamSettingsEnabled" : true ,
"isTargetManagementEnabled" : true
},
"description" : "string" ,
"gitConfiguration" : {
"url" : "string" ,
"authenticationType" : "CREDENTIALS" ,
"branch" : "string"
},
"externalId" : "string" ,
"campaignPhases" : [
{
"id" : "497f6eca-6276-4993-bfeb-53cbbbba6f08" ,
"name" : "string" ,
"description" : "string" ,
"startTime" : 0
}
],
"externalSource" : "VLM" ,
"activeTimes" : [
{
"startTime" : 0 ,
"endTime" : 0
}
],
"difficulty" : "EASY" ,
"blueTeams" : [
{
"avatarFileId" : "string" ,
"ldapGroup" : "string" ,
"name" : "string" ,
"id" : "497f6eca-6276-4993-bfeb-53cbbbba6f08" ,
"gmaId" : "38986f0b-d3bf-44a4-9955-8376fb08408a" ,
"targetGroups" : [
{
"id" : "497f6eca-6276-4993-bfeb-53cbbbba6f08" ,
"name" : "string" ,
"username" : "string" ,
"objectives" : [
{
"id" : "497f6eca-6276-4993-bfeb-53cbbbba6f08" ,
"name" : "string" ,
"category" : "NETWORKING" ,
"campaignPhaseId" : "ec1a6f36-e0b2-4e93-85b6-db68c75b7edc" ,
"scoreWeight" : 0 ,
"sequence" : 0
}
],
"targets" : [
{
"id" : "497f6eca-6276-4993-bfeb-53cbbbba6f08" ,
"name" : "string" ,
"hostname" : "string" ,
"networkSegmentId" : "da59500c-a661-45ab-94a0-11930236ec3b" ,
"targetChecks" : [
{
"id" : "497f6eca-6276-4993-bfeb-53cbbbba6f08" ,
"name" : "string" ,
"status" : "GOOD" ,
"username" : "string"
}
],
"scoreBreakdown" : [
{
"name" : "TOTAL" ,
"value" : 0
}
],
"isDeployed" : true
}
]
}
],
"tasks" : [
{
"niceIds" : {
"taskIds" : [
"string"
],
"knowledgeIds" : [
"string"
],
"skillIds" : [
"string"
],
"abilityIds" : [
"string"
]
},
"type" : "SINGLE_ANSWER" ,
"description" : "string" ,
"requiredTaskIds" : [
"497f6eca-6276-4993-bfeb-53cbbbba6f08"
],
"targets" : [
{
"id" : "497f6eca-6276-4993-bfeb-53cbbbba6f08" ,
"name" : "string" ,
"hostname" : "string" ,
"networkSegmentId" : "da59500c-a661-45ab-94a0-11930236ec3b" ,
"targetChecks" : [
{
"id" : "497f6eca-6276-4993-bfeb-53cbbbba6f08" ,
"name" : "string" ,
"status" : "GOOD" ,
"username" : "string"
}
],
"scoreBreakdown" : [
{
"name" : "TOTAL" ,
"value" : 0
}
],
"isDeployed" : true
}
],
"question" : "string" ,
"title" : "string" ,
"definitionId" : "058563fe-6949-46e9-9fb3-06a0e3a11f6a" ,
"category" : "string" ,
"hints" : [
{
"id" : "497f6eca-6276-4993-bfeb-53cbbbba6f08" ,
"content" : "string" ,
"penalty" : 0
}
],
"score" : 0 ,
"isLocked" : true
}
]
}
],
"imageId" : "string" ,
"whiteTeamLdapGroup" : "string" ,
"isTargetManagementEnabled" : true ,
"redTeamLdapGroup" : "string" ,
"gracePeriodInMinutes" : 0 ,
"pointsBudget" : {
"total" : 0 ,
"breakdown" : [
{
"name" : "TOTAL" ,
"value" : 0
}
]
},
"expectedSituationReportsCount" : 0 ,
"attackFlagFileUnixPaths" : [
"string"
],
"attackFlagFileWinPaths" : [
"string"
],
"scoringBotUsername" : "string" ,
"scoringBotPassword" : "string" ,
"situationReportTemplate" : "string" ,
"incidentReportTemplate" : "string" ,
"disabledIncidentTypes" : [
"ONLINE"
],
"durationPeriod" : "string" ,
"taskAbandonPenalty" : 0 ,
"openedTasksLimit" : 0 ,
"taskCategories" : [
{
"code" : "string" ,
"name" : "string" ,
"icon" : "string"
}
],
"individualAssessmentIdlePeriod" : "string" ,
"missionDurationPeriod" : "string" ,
"workRoleId" : "string" ,
"showTeamPosition" : true ,
"isTargetCheckStatusHidden" : true ,
"isNiceFrameworkSupported" : true ,
"isIndividualAssessment" : true
}
Properties
allOf - discriminator: IExercise.type
Name
Type
Required
Restrictions
Description
anonymous
IExercise
false
none
none
and
Name
Type
Required
Restrictions
Description
anonymous
object
false
none
none
» blueTeams
[HybridBlueTeam ]
false
none
none
» redTeamLdapGroup
string
false
none
none
» gracePeriodInMinutes
integer(int32)
false
none
none
» pointsBudget
ExercisePointsBudget
false
none
none
» expectedSituationReportsCount
integer(int32)
false
none
none
» attackFlagFileUnixPaths
[string]
false
none
none
» attackFlagFileWinPaths
[string]
false
none
none
» scoringBotUsername
string
false
none
none
» scoringBotPassword
string
false
none
none
» situationReportTemplate
string
false
none
none
» incidentReportTemplate
string
false
none
none
» disabledIncidentTypes
[string]
false
none
none
» durationPeriod
string
false
none
none
» taskAbandonPenalty
number(double)
false
none
none
» openedTasksLimit
integer(int32)
false
none
none
» taskCategories
[CTFTaskCategory ]
false
none
none
» individualAssessmentIdlePeriod
string
false
none
none
» missionDurationPeriod
string
false
none
none
» workRoleId
string
false
none
none
» showTeamPosition
boolean
false
none
none
» isTargetCheckStatusHidden
boolean
false
read-only
none
» isNiceFrameworkSupported
boolean
false
read-only
none
» isIndividualAssessment
boolean
false
read-only
none
HybridExerciseDefinition
{
"image" : "string" ,
"networkSegments" : [
{
"name" : "string" ,
"description" : "string" ,
"colorHex" : "string"
}
],
"name" : "string" ,
"type" : "CAMPAIGN" ,
"description" : "string" ,
"gitConfiguration" : {
"url" : "string" ,
"authenticationType" : "CREDENTIALS" ,
"branch" : "string"
},
"blueTeamLdapGroup" : "string" ,
"externalId" : "string" ,
"campaignPhases" : [
{
"name" : "string" ,
"description" : "string" ,
"startTime" : 0
}
],
"externalSource" : "VLM" ,
"activeTimes" : [
{
"startTime" : 0 ,
"endTime" : 0
}
],
"difficulty" : "EASY" ,
"blueTeamName" : "string" ,
"targetGroups" : [
{
"name" : "string" ,
"username" : "string" ,
"objectives" : [
{
"name" : "string" ,
"category" : "NETWORKING" ,
"campaignPhaseName" : "string" ,
"scoreWeight" : 0 ,
"sequence" : 0
}
],
"targets" : [
{
"name" : "string" ,
"hostname" : "string" ,
"networkSegmentName" : "string" ,
"targetChecks" : [
{
"name" : "string" ,
"description" : "string" ,
"type" : "ICMP_RESPONDER_PING" ,
"ipAddress" : "string" ,
"parameters" : [
{
"name" : "string" ,
"value" : "string"
}
],
"scoreWeight" : 0 ,
"objectives" : [
{
"name" : "string" ,
"category" : "NETWORKING" ,
"campaignPhaseName" : "string" ,
"scoreWeight" : 0 ,
"sequence" : 0
}
],
"username" : "string"
}
],
"scoreBreakdown" : [
{
"name" : "TOTAL" ,
"value" : 0
}
]
}
]
}
],
"numberOfTeams" : 0 ,
"gmaId" : [
"497f6eca-6276-4993-bfeb-53cbbbba6f08"
],
"imageId" : "string" ,
"whiteTeamLdapGroup" : "string" ,
"isTeamSettingsEnabled" : true ,
"isTargetManagementEnabled" : true ,
"redTeamLdapGroup" : "string" ,
"gracePeriodInMinutes" : 0 ,
"pointsBudget" : {
"total" : 0 ,
"breakdown" : [
{
"name" : "TOTAL" ,
"value" : 0
}
]
},
"expectedSituationReportsCount" : 0 ,
"attackFlagFileUnixPaths" : [
"string"
],
"attackFlagFileWinPaths" : [
"string"
],
"scoringBotUsername" : "string" ,
"scoringBotPassword" : "string" ,
"situationReportTemplate" : "string" ,
"incidentReportTemplate" : "string" ,
"disabledIncidentTypes" : [
"ONLINE"
],
"tasks" : [
{
"niceIds" : {
"taskIds" : [
"string"
],
"knowledgeIds" : [
"string"
],
"skillIds" : [
"string"
],
"abilityIds" : [
"string"
]
},
"id" : "497f6eca-6276-4993-bfeb-53cbbbba6f08" ,
"type" : "SINGLE_ANSWER" ,
"description" : "string" ,
"targetNamePatterns" : [
"string"
],
"requiredTaskIds" : [
"497f6eca-6276-4993-bfeb-53cbbbba6f08"
],
"question" : "string" ,
"title" : "string" ,
"category" : "string" ,
"hints" : [
{
"content" : "string" ,
"penalty" : 0
}
],
"score" : 0 ,
"isLocked" : true
}
],
"durationPeriod" : "string" ,
"taskAbandonPenalty" : 0 ,
"openedTasksLimit" : 0 ,
"individualAssessmentIdlePeriod" : "string" ,
"missionDurationPeriod" : "string" ,
"taskCategories" : [
{
"code" : "string" ,
"name" : "string" ,
"icon" : "string"
}
],
"workRoleId" : "string" ,
"showTeamPosition" : true ,
"isTargetCheckStatusHidden" : true ,
"isNiceFrameworkSupported" : true ,
"isIndividualAssessment" : true
}
Properties
allOf - discriminator: IExerciseDefinition.type
and
Name
Type
Required
Restrictions
Description
anonymous
object
false
none
none
» redTeamLdapGroup
string
false
none
none
» gracePeriodInMinutes
integer(int32)
false
none
none
» pointsBudget
ExercisePointsBudget
false
none
none
» expectedSituationReportsCount
integer(int32)
false
none
none
» attackFlagFileUnixPaths
[string]
false
none
none
» attackFlagFileWinPaths
[string]
false
none
none
» scoringBotUsername
string
false
none
none
» scoringBotPassword
string
false
none
none
» situationReportTemplate
string
false
none
none
» incidentReportTemplate
string
false
none
none
» disabledIncidentTypes
[string]
false
none
none
» tasks
[ICTFTaskDefinition ]
false
none
none
» durationPeriod
string
false
none
none
» taskAbandonPenalty
number(double)
false
none
none
» openedTasksLimit
integer(int32)
false
none
none
» individualAssessmentIdlePeriod
string
false
none
none
» missionDurationPeriod
string
false
none
none
» taskCategories
[CTFTaskCategory ]
false
none
none
» workRoleId
string
false
none
none
» showTeamPosition
boolean
false
none
none
» isTargetCheckStatusHidden
boolean
false
read-only
none
» isNiceFrameworkSupported
boolean
false
read-only
none
» isIndividualAssessment
boolean
false
read-only
none
IBlueTeam
{
"avatarFileId" : "string" ,
"ldapGroup" : "string" ,
"name" : "string" ,
"id" : "497f6eca-6276-4993-bfeb-53cbbbba6f08" ,
"gmaId" : "38986f0b-d3bf-44a4-9955-8376fb08408a"
}
Properties
Name
Type
Required
Restrictions
Description
avatarFileId
string
false
none
none
ldapGroup
string
false
none
none
name
string
false
none
none
id
string(uuid)
false
none
none
gmaId
string(uuid)
false
none
none
ICTFTask
{
"niceIds" : {
"taskIds" : [
"string"
],
"knowledgeIds" : [
"string"
],
"skillIds" : [
"string"
],
"abilityIds" : [
"string"
]
},
"type" : "SINGLE_ANSWER" ,
"description" : "string" ,
"requiredTaskIds" : [
"497f6eca-6276-4993-bfeb-53cbbbba6f08"
],
"targets" : [
{
"id" : "497f6eca-6276-4993-bfeb-53cbbbba6f08" ,
"name" : "string" ,
"hostname" : "string" ,
"networkSegmentId" : "da59500c-a661-45ab-94a0-11930236ec3b" ,
"targetChecks" : [
{
"id" : "497f6eca-6276-4993-bfeb-53cbbbba6f08" ,
"name" : "string" ,
"status" : "GOOD" ,
"username" : "string"
}
],
"scoreBreakdown" : [
{
"name" : "TOTAL" ,
"value" : 0
}
],
"isDeployed" : true
}
],
"question" : "string" ,
"title" : "string" ,
"definitionId" : "058563fe-6949-46e9-9fb3-06a0e3a11f6a" ,
"category" : "string" ,
"hints" : [
{
"id" : "497f6eca-6276-4993-bfeb-53cbbbba6f08" ,
"content" : "string" ,
"penalty" : 0
}
],
"score" : 0 ,
"isLocked" : true
}
Properties
Name
Type
Required
Restrictions
Description
niceIds
NiceIds
false
none
none
type
string
false
none
none
description
string
false
none
none
requiredTaskIds
[string]
false
none
none
targets
[Target ]
false
none
none
question
string
false
none
none
title
string
false
none
none
definitionId
string(uuid)
false
none
none
category
string
false
none
none
hints
[CTFHint ]
false
none
none
score
integer(int32)
false
none
none
isLocked
boolean
false
read-only
none
Enumerated Values
Property
Value
type
SINGLE_ANSWER
type
GMA_VALIDATION
type
FREE_FORM
ICTFTaskDefinition
{
"niceIds" : {
"taskIds" : [
"string"
],
"knowledgeIds" : [
"string"
],
"skillIds" : [
"string"
],
"abilityIds" : [
"string"
]
},
"id" : "497f6eca-6276-4993-bfeb-53cbbbba6f08" ,
"type" : "SINGLE_ANSWER" ,
"description" : "string" ,
"targetNamePatterns" : [
"string"
],
"requiredTaskIds" : [
"497f6eca-6276-4993-bfeb-53cbbbba6f08"
],
"question" : "string" ,
"title" : "string" ,
"category" : "string" ,
"hints" : [
{
"content" : "string" ,
"penalty" : 0
}
],
"score" : 0 ,
"isLocked" : true
}
Properties
Name
Type
Required
Restrictions
Description
niceIds
NiceIds
false
none
none
id
string(uuid)
false
none
none
type
string
false
none
none
description
string
false
none
none
targetNamePatterns
[string]
false
none
none
requiredTaskIds
[string]
false
none
none
question
string
false
none
none
title
string
false
none
none
category
string
false
none
none
hints
[CTFHintDefinition ]
false
none
none
score
integer(int32)
false
none
none
isLocked
boolean
false
read-only
none
Enumerated Values
Property
Value
type
SINGLE_ANSWER
type
GMA_VALIDATION
type
FREE_FORM
IExercise
{
"teamSettingsEnabled" : true ,
"networkSegments" : [
{
"id" : "497f6eca-6276-4993-bfeb-53cbbbba6f08" ,
"name" : "string" ,
"description" : "string" ,
"colorHex" : "string"
}
],
"name" : "string" ,
"id" : "497f6eca-6276-4993-bfeb-53cbbbba6f08" ,
"type" : "CAMPAIGN" ,
"definition" : {
"image" : "string" ,
"networkSegments" : [
{
"name" : "string" ,
"description" : "string" ,
"colorHex" : "string"
}
],
"name" : "string" ,
"type" : "CAMPAIGN" ,
"description" : "string" ,
"gitConfiguration" : {
"url" : "string" ,
"authenticationType" : "CREDENTIALS" ,
"branch" : "string"
},
"blueTeamLdapGroup" : "string" ,
"externalId" : "string" ,
"campaignPhases" : [
{
"name" : "string" ,
"description" : "string" ,
"startTime" : 0
}
],
"externalSource" : "VLM" ,
"activeTimes" : [
{
"startTime" : 0 ,
"endTime" : 0
}
],
"difficulty" : "EASY" ,
"blueTeamName" : "string" ,
"targetGroups" : [
{
"name" : "string" ,
"username" : "string" ,
"objectives" : [
{
"name" : "string" ,
"category" : "NETWORKING" ,
"campaignPhaseName" : "string" ,
"scoreWeight" : 0 ,
"sequence" : 0
}
],
"targets" : [
{
"name" : "string" ,
"hostname" : "string" ,
"networkSegmentName" : "string" ,
"targetChecks" : [
{
"name" : "string" ,
"description" : "string" ,
"type" : "ICMP_RESPONDER_PING" ,
"ipAddress" : "string" ,
"parameters" : [
{
"name" : "string" ,
"value" : "string"
}
],
"scoreWeight" : 0 ,
"objectives" : [
{
"name" : "string" ,
"category" : "NETWORKING" ,
"campaignPhaseName" : "string" ,
"scoreWeight" : 0 ,
"sequence" : 0
}
],
"username" : "string"
}
],
"scoreBreakdown" : [
{
"name" : "TOTAL" ,
"value" : 0
}
]
}
]
}
],
"numberOfTeams" : 0 ,
"gmaId" : [
"497f6eca-6276-4993-bfeb-53cbbbba6f08"
],
"imageId" : "string" ,
"whiteTeamLdapGroup" : "string" ,
"isTeamSettingsEnabled" : true ,
"isTargetManagementEnabled" : true
},
"description" : "string" ,
"gitConfiguration" : {
"url" : "string" ,
"authenticationType" : "CREDENTIALS" ,
"branch" : "string"
},
"externalId" : "string" ,
"campaignPhases" : [
{
"id" : "497f6eca-6276-4993-bfeb-53cbbbba6f08" ,
"name" : "string" ,
"description" : "string" ,
"startTime" : 0
}
],
"externalSource" : "VLM" ,
"activeTimes" : [
{
"startTime" : 0 ,
"endTime" : 0
}
],
"difficulty" : "EASY" ,
"blueTeams" : [
{
"avatarFileId" : "string" ,
"ldapGroup" : "string" ,
"name" : "string" ,
"id" : "497f6eca-6276-4993-bfeb-53cbbbba6f08" ,
"gmaId" : "38986f0b-d3bf-44a4-9955-8376fb08408a"
}
],
"imageId" : "string" ,
"whiteTeamLdapGroup" : "string" ,
"isTargetManagementEnabled" : true
}
Properties
Name
Type
Required
Restrictions
Description
teamSettingsEnabled
boolean
false
none
none
networkSegments
[NetworkSegment ]
false
none
none
name
string
false
none
none
id
string(uuid)
false
none
none
type
string
false
none
none
definition
IExerciseDefinition
false
none
none
description
string
false
none
none
gitConfiguration
IGitConfiguration
false
none
none
externalId
string
false
none
none
campaignPhases
[CampaignPhase ]
false
none
none
externalSource
string
false
none
none
activeTimes
[ActiveTime ]
false
none
none
difficulty
string
false
none
none
blueTeams
[IBlueTeam ]
false
none
none
imageId
string
false
none
none
whiteTeamLdapGroup
string
false
none
none
isTargetManagementEnabled
boolean
false
read-only
none
Enumerated Values
Property
Value
type
CAMPAIGN
type
CTF
type
HYBRID
type
UNPUBLISHED
externalSource
VLM
externalSource
OTHER
difficulty
EASY
difficulty
MEDIUM
difficulty
HARD
IExerciseDefinition
{
"image" : "string" ,
"networkSegments" : [
{
"name" : "string" ,
"description" : "string" ,
"colorHex" : "string"
}
],
"name" : "string" ,
"type" : "CAMPAIGN" ,
"description" : "string" ,
"gitConfiguration" : {
"url" : "string" ,
"authenticationType" : "CREDENTIALS" ,
"branch" : "string"
},
"blueTeamLdapGroup" : "string" ,
"externalId" : "string" ,
"campaignPhases" : [
{
"name" : "string" ,
"description" : "string" ,
"startTime" : 0
}
],
"externalSource" : "VLM" ,
"activeTimes" : [
{
"startTime" : 0 ,
"endTime" : 0
}
],
"difficulty" : "EASY" ,
"blueTeamName" : "string" ,
"targetGroups" : [
{
"name" : "string" ,
"username" : "string" ,
"objectives" : [
{
"name" : "string" ,
"category" : "NETWORKING" ,
"campaignPhaseName" : "string" ,
"scoreWeight" : 0 ,
"sequence" : 0
}
],
"targets" : [
{
"name" : "string" ,
"hostname" : "string" ,
"networkSegmentName" : "string" ,
"targetChecks" : [
{
"name" : "string" ,
"description" : "string" ,
"type" : "ICMP_RESPONDER_PING" ,
"ipAddress" : "string" ,
"parameters" : [
{
"name" : "string" ,
"value" : "string"
}
],
"scoreWeight" : 0 ,
"objectives" : [
{
"name" : "string" ,
"category" : "NETWORKING" ,
"campaignPhaseName" : "string" ,
"scoreWeight" : 0 ,
"sequence" : 0
}
],
"username" : "string"
}
],
"scoreBreakdown" : [
{
"name" : "TOTAL" ,
"value" : 0
}
]
}
]
}
],
"numberOfTeams" : 0 ,
"gmaId" : [
"497f6eca-6276-4993-bfeb-53cbbbba6f08"
],
"imageId" : "string" ,
"whiteTeamLdapGroup" : "string" ,
"isTeamSettingsEnabled" : true ,
"isTargetManagementEnabled" : true
}
Properties
Name
Type
Required
Restrictions
Description
image
string
false
none
none
networkSegments
[NetworkSegmentDefinition ]
false
none
none
name
string
false
none
none
type
string
false
none
none
description
string
false
none
none
gitConfiguration
IGitConfiguration
false
none
none
blueTeamLdapGroup
string
false
none
none
externalId
string
false
none
none
campaignPhases
[CampaignPhaseDefinition ]
false
none
none
externalSource
string
false
none
none
activeTimes
[ActiveTime ]
false
none
none
difficulty
string
false
none
none
blueTeamName
string
false
none
none
targetGroups
[TargetGroupDefinition ]
false
none
none
numberOfTeams
integer(int32)
false
none
none
gmaId
[string]
false
none
none
imageId
string
false
none
none
whiteTeamLdapGroup
string
false
none
none
isTeamSettingsEnabled
boolean
false
read-only
none
isTargetManagementEnabled
boolean
false
read-only
none
Enumerated Values
Property
Value
type
CAMPAIGN
type
CTF
type
HYBRID
type
UNPUBLISHED
externalSource
VLM
externalSource
OTHER
difficulty
EASY
difficulty
MEDIUM
difficulty
HARD
IExerciseListDTO
{
"name" : "string" ,
"id" : "497f6eca-6276-4993-bfeb-53cbbbba6f08" ,
"type" : "CAMPAIGN" ,
"description" : "string" ,
"status" : "NOT_STARTED" ,
"imageId" : "string" ,
"isTeamSettingsEnabled" : true
}
Properties
Name
Type
Required
Restrictions
Description
name
string
false
none
none
id
string(uuid)
false
none
none
type
string
false
none
none
description
string
false
none
none
status
string
false
none
none
imageId
string
false
none
none
isTeamSettingsEnabled
boolean
false
read-only
none
Enumerated Values
Property
Value
type
CAMPAIGN
type
CTF
type
HYBRID
type
UNPUBLISHED
status
NOT_STARTED
status
RUNNING
status
STOPPED
status
UNPUBLISHED
IGitConfiguration
{
"url" : "string" ,
"authenticationType" : "CREDENTIALS" ,
"branch" : "string"
}
Properties
Name
Type
Required
Restrictions
Description
url
string
false
none
none
authenticationType
string
false
none
none
branch
string
false
none
none
Enumerated Values
Property
Value
authenticationType
CREDENTIALS
authenticationType
SSH
IncidentReport
{
"id" : "497f6eca-6276-4993-bfeb-53cbbbba6f08" ,
"teamId" : "a4ede8ba-7c0a-4485-8763-cbd9b282fbec" ,
"exerciseId" : "71ba10b8-c6bd-49fd-9742-f8dbc8ccdb47" ,
"username" : "string" ,
"timestamp" : 0 ,
"networkSegmentId" : "da59500c-a661-45ab-94a0-11930236ec3b" ,
"targetId" : "cbca1126-180e-4334-9df8-cf82289d378b" ,
"targetCheckId" : "e6bd6631-9fae-481a-af78-b92fff1729e4" ,
"incidentType" : "ONLINE" ,
"details" : "string"
}
Properties
Name
Type
Required
Restrictions
Description
id
string(uuid)
false
none
none
teamId
string(uuid)
false
none
none
exerciseId
string(uuid)
false
none
none
username
string
false
none
none
timestamp
integer(int64)
false
none
none
networkSegmentId
string(uuid)
false
none
none
targetId
string(uuid)
false
none
none
targetCheckId
string(uuid)
false
none
none
incidentType
string
false
none
none
details
string
false
none
none
Enumerated Values
Property
Value
incidentType
ONLINE
incidentType
OFFLINE
incidentType
COMPROMISED
incidentType
NOT_COMPROMISED
{
"reportId" : "836df459-dc40-4aa1-972a-6eb0a864dff9" ,
"teamId" : "a4ede8ba-7c0a-4485-8763-cbd9b282fbec" ,
"teamName" : "string" ,
"status" : "PENDING_CONFIRMATION" ,
"whiteTeamMember" : "string" ,
"timestamp" : 0 ,
"feedback" : "string" ,
"targetId" : "cbca1126-180e-4334-9df8-cf82289d378b" ,
"targetName" : "string" ,
"targetCheckId" : "e6bd6631-9fae-481a-af78-b92fff1729e4" ,
"targetCheckName" : "string" ,
"incidentType" : "ONLINE" ,
"blueTeamMember" : "string" ,
"details" : "string"
}
Properties
Name
Type
Required
Restrictions
Description
reportId
string(uuid)
false
none
none
teamId
string(uuid)
false
none
none
teamName
string
false
none
none
status
string
false
none
none
whiteTeamMember
string
false
none
none
timestamp
integer(int64)
false
none
none
feedback
string
false
none
none
targetId
string(uuid)
false
none
none
targetName
string
false
none
none
targetCheckId
string(uuid)
false
none
none
targetCheckName
string
false
none
none
incidentType
string
false
none
none
blueTeamMember
string
false
none
none
details
string
false
none
none
Enumerated Values
Property
Value
status
PENDING_CONFIRMATION
status
CONFIRMED
status
DENIED
incidentType
ONLINE
incidentType
OFFLINE
incidentType
COMPROMISED
incidentType
NOT_COMPROMISED
IndividualStartStop
{
"start" : 0 ,
"stop" : 0
}
Properties
Name
Type
Required
Restrictions
Description
start
integer(int64)
false
none
none
stop
integer(int64)
false
none
none
InjectableValues
Properties
None
Properties
None
IntBuilder
Properties
None
IntegrationAuthentication
{
"type" : "SESSION_TOKEN"
}
Properties
Name
Type
Required
Restrictions
Description
type
string
false
none
none
Enumerated Values
Property
Value
type
SESSION_TOKEN
type
API_KEY
type
ACTIVEMQ
type
NOOP
IntegrationConfiguration
{
"integrationType" : "REST"
}
Properties
Name
Type
Required
Restrictions
Description
integrationType
string
false
none
none
Enumerated Values
Property
Value
integrationType
REST
integrationType
SENDGRID
integrationType
SLACK_WEBHOOK
integrationType
DELRAP
IntegrationEvent
{
"id" : {
"timestamp" : 0 ,
"date" : "2019-08-24T14:15:22Z"
},
"type" : "TARGET_STATUS_CHANGE" ,
"subjectType" : "TARGET" ,
"integrationId" : {
"timestamp" : 0 ,
"date" : "2019-08-24T14:15:22Z"
},
"subjectId" : "string"
}
Properties
Name
Type
Required
Restrictions
Description
id
ObjectId
false
none
none
type
string
false
none
none
subjectType
string
false
none
none
integrationId
ObjectId
false
none
none
subjectId
string
false
none
none
Enumerated Values
Property
Value
type
TARGET_STATUS_CHANGE
type
EMAIL
type
EXERCISE_START
type
EXERCISE_END
type
EXERCISE_PROGRESS_UPDATE
subjectType
TARGET
subjectType
EMAIL
subjectType
EXERCISE
IntegrationEventDTO
{
"id" : "string" ,
"type" : "TARGET_STATUS_CHANGE" ,
"subjectName" : "string" ,
"subjectType" : "TARGET" ,
"integrationId" : "string" ,
"subjectId" : "string"
}
Properties
Name
Type
Required
Restrictions
Description
id
string
false
none
none
type
string
false
none
none
subjectName
string
false
none
none
subjectType
string
false
none
none
integrationId
string
false
none
none
subjectId
string
false
none
none
Enumerated Values
Property
Value
type
TARGET_STATUS_CHANGE
type
EMAIL
type
EXERCISE_START
type
EXERCISE_END
type
EXERCISE_PROGRESS_UPDATE
subjectType
TARGET
subjectType
EMAIL
subjectType
EXERCISE
IntegrationListItemDTO
{
"id" : "string" ,
"name" : "string" ,
"type" : "REST" ,
"eventTypes" : [
"TARGET_STATUS_CHANGE"
],
"baseUrl" : "string" ,
"events" : [
{
"id" : {
"timestamp" : 0 ,
"date" : "2019-08-24T14:15:22Z"
},
"type" : "TARGET_STATUS_CHANGE" ,
"subjectType" : "TARGET" ,
"integrationId" : {
"timestamp" : 0 ,
"date" : "2019-08-24T14:15:22Z"
},
"subjectId" : "string"
}
],
"authentication" : {
"type" : "SESSION_TOKEN"
},
"configuration" : {
"integrationType" : "REST"
}
}
Properties
Name
Type
Required
Restrictions
Description
id
string
false
none
none
name
string
false
none
none
type
string
false
none
none
eventTypes
[string]
false
none
none
baseUrl
string
false
none
none
events
[IntegrationEvent ]
false
none
none
authentication
IntegrationAuthentication
false
none
none
configuration
IntegrationConfiguration
false
none
none
Enumerated Values
Property
Value
type
REST
type
SENDGRID
type
SLACK_WEBHOOK
type
DELRAP
IsaFile
{
"id" : "string" ,
"name" : "string" ,
"extension" : "string" ,
"size" : 0 ,
"type" : "AUDIO" ,
"contents" : [
"string"
],
"uniqueSubjectId" : "string"
}
Properties
Name
Type
Required
Restrictions
Description
id
string
false
none
none
name
string
false
none
none
extension
string
false
none
none
size
integer(int32)
false
none
none
type
string
false
none
none
contents
[string]
false
none
none
uniqueSubjectId
string
false
none
none
Enumerated Values
Property
Value
type
AUDIO
type
IMAGE
type
VIDEO
{
"id" : "string" ,
"name" : "string" ,
"size" : 0
}
Properties
Name
Type
Required
Restrictions
Description
id
string
false
none
none
name
string
false
none
none
size
integer(int32)
false
none
none
JavaType
{
"interface" : true ,
"primitive" : true ,
"interfaces" : [
{
"interface" : true ,
"primitive" : true ,
"interfaces" : [],
"genericSignature" : "string" ,
"final" : true ,
"abstract" : true ,
"contentType" : {},
"bindings" : {
"empty" : true ,
"typeParameters" : [
{}
]
},
"concrete" : true ,
"referencedType" : {},
"enumType" : true ,
"superClass" : {},
"throwable" : true ,
"arrayType" : true ,
"collectionLikeType" : true ,
"contentValueHandler" : {},
"contentTypeHandler" : {},
"containerType" : true ,
"valueHandler" : {},
"typeHandler" : {},
"keyType" : {},
"javaLangObject" : true ,
"mapLikeType" : true ,
"erasedSignature" : "string" ,
"typeName" : "string" ,
"referenceType" : true
}
],
"genericSignature" : "string" ,
"final" : true ,
"abstract" : true ,
"contentType" : {
"interface" : true ,
"primitive" : true ,
"interfaces" : [
{}
],
"genericSignature" : "string" ,
"final" : true ,
"abstract" : true ,
"contentType" : {},
"bindings" : {
"empty" : true ,
"typeParameters" : [
{}
]
},
"concrete" : true ,
"referencedType" : {},
"enumType" : true ,
"superClass" : {},
"throwable" : true ,
"arrayType" : true ,
"collectionLikeType" : true ,
"contentValueHandler" : {},
"contentTypeHandler" : {},
"containerType" : true ,
"valueHandler" : {},
"typeHandler" : {},
"keyType" : {},
"javaLangObject" : true ,
"mapLikeType" : true ,
"erasedSignature" : "string" ,
"typeName" : "string" ,
"referenceType" : true
},
"bindings" : {
"empty" : true ,
"typeParameters" : [
{
"interface" : true ,
"primitive" : true ,
"interfaces" : [
{}
],
"genericSignature" : "string" ,
"final" : true ,
"abstract" : true ,
"contentType" : {},
"bindings" : {},
"concrete" : true ,
"referencedType" : {},
"enumType" : true ,
"superClass" : {},
"throwable" : true ,
"arrayType" : true ,
"collectionLikeType" : true ,
"contentValueHandler" : {},
"contentTypeHandler" : {},
"containerType" : true ,
"valueHandler" : {},
"typeHandler" : {},
"keyType" : {},
"javaLangObject" : true ,
"mapLikeType" : true ,
"erasedSignature" : "string" ,
"typeName" : "string" ,
"referenceType" : true
}
]
},
"concrete" : true ,
"referencedType" : {
"interface" : true ,
"primitive" : true ,
"interfaces" : [
{}
],
"genericSignature" : "string" ,
"final" : true ,
"abstract" : true ,
"contentType" : {},
"bindings" : {
"empty" : true ,
"typeParameters" : [
{}
]
},
"concrete" : true ,
"referencedType" : {},
"enumType" : true ,
"superClass" : {},
"throwable" : true ,
"arrayType" : true ,
"collectionLikeType" : true ,
"contentValueHandler" : {},
"contentTypeHandler" : {},
"containerType" : true ,
"valueHandler" : {},
"typeHandler" : {},
"keyType" : {},
"javaLangObject" : true ,
"mapLikeType" : true ,
"erasedSignature" : "string" ,
"typeName" : "string" ,
"referenceType" : true
},
"enumType" : true ,
"superClass" : {
"interface" : true ,
"primitive" : true ,
"interfaces" : [
{}
],
"genericSignature" : "string" ,
"final" : true ,
"abstract" : true ,
"contentType" : {},
"bindings" : {
"empty" : true ,
"typeParameters" : [
{}
]
},
"concrete" : true ,
"referencedType" : {},
"enumType" : true ,
"superClass" : {},
"throwable" : true ,
"arrayType" : true ,
"collectionLikeType" : true ,
"contentValueHandler" : {},
"contentTypeHandler" : {},
"containerType" : true ,
"valueHandler" : {},
"typeHandler" : {},
"keyType" : {},
"javaLangObject" : true ,
"mapLikeType" : true ,
"erasedSignature" : "string" ,
"typeName" : "string" ,
"referenceType" : true
},
"throwable" : true ,
"arrayType" : true ,
"collectionLikeType" : true ,
"contentValueHandler" : {},
"contentTypeHandler" : {},
"containerType" : true ,
"valueHandler" : {},
"typeHandler" : {},
"keyType" : {
"interface" : true ,
"primitive" : true ,
"interfaces" : [
{}
],
"genericSignature" : "string" ,
"final" : true ,
"abstract" : true ,
"contentType" : {},
"bindings" : {
"empty" : true ,
"typeParameters" : [
{}
]
},
"concrete" : true ,
"referencedType" : {},
"enumType" : true ,
"superClass" : {},
"throwable" : true ,
"arrayType" : true ,
"collectionLikeType" : true ,
"contentValueHandler" : {},
"contentTypeHandler" : {},
"containerType" : true ,
"valueHandler" : {},
"typeHandler" : {},
"keyType" : {},
"javaLangObject" : true ,
"mapLikeType" : true ,
"erasedSignature" : "string" ,
"typeName" : "string" ,
"referenceType" : true
},
"javaLangObject" : true ,
"mapLikeType" : true ,
"erasedSignature" : "string" ,
"typeName" : "string" ,
"referenceType" : true
}
Properties
Name
Type
Required
Restrictions
Description
interface
boolean
false
none
none
primitive
boolean
false
none
none
interfaces
[JavaType ]
false
none
none
genericSignature
string
false
none
none
final
boolean
false
none
none
abstract
boolean
false
none
none
contentType
JavaType
false
none
none
bindings
TypeBindings
false
none
none
concrete
boolean
false
none
none
referencedType
JavaType
false
none
none
enumType
boolean
false
none
none
superClass
JavaType
false
none
none
throwable
boolean
false
none
none
arrayType
boolean
false
none
none
collectionLikeType
boolean
false
none
none
contentValueHandler
object
false
none
none
contentTypeHandler
object
false
none
none
containerType
boolean
false
none
none
valueHandler
object
false
none
none
typeHandler
object
false
none
none
keyType
JavaType
false
none
none
javaLangObject
boolean
false
none
none
mapLikeType
boolean
false
none
none
erasedSignature
string
false
none
none
typeName
string
false
none
none
referenceType
boolean
false
none
none
JsonFactory
{
"characterEscapes" : {
"escapeCodesForAscii" : [
0
]
},
"rootValueSeparator" : "string" ,
"formatName" : "string" ,
"outputDecorator" : {},
"inputDecorator" : {},
"codec" : {
"factory" : {
"characterEscapes" : {
"escapeCodesForAscii" : [
0
]
},
"rootValueSeparator" : "string" ,
"formatName" : "string" ,
"outputDecorator" : {},
"inputDecorator" : {},
"codec" : {}
},
"jsonFactory" : {
"characterEscapes" : {
"escapeCodesForAscii" : [
0
]
},
"rootValueSeparator" : "string" ,
"formatName" : "string" ,
"outputDecorator" : {},
"inputDecorator" : {},
"codec" : {}
}
}
}
Properties
Name
Type
Required
Restrictions
Description
characterEscapes
CharacterEscapes
false
none
none
rootValueSeparator
string
false
none
none
formatName
string
false
none
none
outputDecorator
OutputDecorator
false
none
none
inputDecorator
InputDecorator
false
none
none
codec
ObjectCodec
false
none
none
JsonGenerator
{
"characterEscapes" : {
"escapeCodesForAscii" : [
0
]
},
"schema" : {
"schemaType" : "string"
},
"closed" : true ,
"currentValue" : {},
"codec" : {
"factory" : {
"characterEscapes" : {
"escapeCodesForAscii" : [
0
]
},
"rootValueSeparator" : "string" ,
"formatName" : "string" ,
"outputDecorator" : {},
"inputDecorator" : {},
"codec" : {}
},
"jsonFactory" : {
"characterEscapes" : {
"escapeCodesForAscii" : [
0
]
},
"rootValueSeparator" : "string" ,
"formatName" : "string" ,
"outputDecorator" : {},
"inputDecorator" : {},
"codec" : {}
}
},
"prettyPrinter" : {},
"featureMask" : 0 ,
"formatFeatures" : 0 ,
"outputTarget" : {},
"outputBuffered" : 0 ,
"outputContext" : {
"parent" : {},
"entryCount" : 0 ,
"currentValue" : {},
"typeDesc" : "string" ,
"currentIndex" : 0 ,
"currentName" : "string"
},
"highestEscapedChar" : 0
}
Properties
Name
Type
Required
Restrictions
Description
characterEscapes
CharacterEscapes
false
none
none
schema
FormatSchema
false
none
none
closed
boolean
false
none
none
currentValue
object
false
none
none
codec
ObjectCodec
false
none
none
prettyPrinter
PrettyPrinter
false
none
none
featureMask
integer(int32)
false
none
none
formatFeatures
integer(int32)
false
none
none
outputTarget
object
false
none
none
outputBuffered
integer(int32)
false
none
none
outputContext
JsonStreamContext
false
none
none
highestEscapedChar
integer(int32)
false
none
none
JsonLocation
{
"byteOffset" : 0 ,
"sourceRef" : {},
"lineNr" : 0 ,
"columnNr" : 0 ,
"charOffset" : 0
}
Properties
Name
Type
Required
Restrictions
Description
byteOffset
integer(int64)
false
none
none
sourceRef
object
false
none
none
lineNr
integer(int32)
false
none
none
columnNr
integer(int32)
false
none
none
charOffset
integer(int64)
false
none
none
JsonNodeFactory
Properties
None
JsonParser
{
"textLength" : 0 ,
"textCharacters" : [
"string"
],
"text" : "string" ,
"schema" : {
"schemaType" : "string"
},
"booleanValue" : true ,
"byteValue" : "string" ,
"doubleValue" : 0 ,
"floatValue" : 0 ,
"shortValue" : 0 ,
"longValue" : 0 ,
"textOffset" : 0 ,
"closed" : true ,
"currentValue" : {},
"numberType" : "INT" ,
"intValue" : 0 ,
"typeId" : {},
"valueAsLong" : 0 ,
"inputSource" : {},
"valueAsDouble" : 0 ,
"numberValue" : {},
"valueAsString" : "string" ,
"valueAsBoolean" : true ,
"currentLocation" : {
"byteOffset" : 0 ,
"sourceRef" : {},
"lineNr" : 0 ,
"columnNr" : 0 ,
"charOffset" : 0
},
"binaryValue" : [
"string"
],
"valueAsInt" : 0 ,
"parsingContext" : {
"parent" : {},
"entryCount" : 0 ,
"currentValue" : {},
"typeDesc" : "string" ,
"currentIndex" : 0 ,
"currentName" : "string"
},
"codec" : {
"factory" : {
"characterEscapes" : {
"escapeCodesForAscii" : [
0
]
},
"rootValueSeparator" : "string" ,
"formatName" : "string" ,
"outputDecorator" : {},
"inputDecorator" : {},
"codec" : {}
},
"jsonFactory" : {
"characterEscapes" : {
"escapeCodesForAscii" : [
0
]
},
"rootValueSeparator" : "string" ,
"formatName" : "string" ,
"outputDecorator" : {},
"inputDecorator" : {},
"codec" : {}
}
},
"currentName" : "string" ,
"currentToken" : "NOT_AVAILABLE" ,
"tokenLocation" : {
"byteOffset" : 0 ,
"sourceRef" : {},
"lineNr" : 0 ,
"columnNr" : 0 ,
"charOffset" : 0
},
"featureMask" : 0 ,
"bigIntegerValue" : 0 ,
"formatFeatures" : 0 ,
"decimalValue" : 0 ,
"embeddedObject" : {},
"objectId" : {},
"currentTokenId" : 0 ,
"expectedStartArrayToken" : true ,
"expectedStartObjectToken" : true ,
"lastClearedToken" : "NOT_AVAILABLE"
}
Properties
Name
Type
Required
Restrictions
Description
textLength
integer(int32)
false
none
none
textCharacters
[string]
false
none
none
text
string
false
none
none
schema
FormatSchema
false
none
none
booleanValue
boolean
false
none
none
byteValue
string(byte)
false
none
none
doubleValue
number(double)
false
none
none
floatValue
number(float)
false
none
none
shortValue
integer(int32)
false
none
none
longValue
integer(int64)
false
none
none
textOffset
integer(int32)
false
none
none
closed
boolean
false
none
none
currentValue
object
false
none
none
numberType
string
false
none
none
intValue
integer(int32)
false
none
none
typeId
object
false
none
none
valueAsLong
integer(int64)
false
none
none
inputSource
object
false
none
none
valueAsDouble
number(double)
false
none
none
numberValue
Number
false
none
none
valueAsString
string
false
none
none
valueAsBoolean
boolean
false
none
none
currentLocation
JsonLocation
false
none
none
binaryValue
[string]
false
none
none
valueAsInt
integer(int32)
false
none
none
parsingContext
JsonStreamContext
false
none
none
codec
ObjectCodec
false
none
none
currentName
string
false
none
none
currentToken
string
false
none
none
tokenLocation
JsonLocation
false
none
none
featureMask
integer(int32)
false
none
none
bigIntegerValue
integer
false
none
none
formatFeatures
integer(int32)
false
none
none
decimalValue
number
false
none
none
embeddedObject
object
false
none
none
objectId
object
false
none
none
currentTokenId
integer(int32)
false
none
none
expectedStartArrayToken
boolean
false
none
none
expectedStartObjectToken
boolean
false
none
none
lastClearedToken
string
false
none
none
Enumerated Values
Property
Value
numberType
INT
numberType
LONG
numberType
BIG_INTEGER
numberType
FLOAT
numberType
DOUBLE
numberType
BIG_DECIMAL
currentToken
NOT_AVAILABLE
currentToken
START_OBJECT
currentToken
END_OBJECT
currentToken
START_ARRAY
currentToken
END_ARRAY
currentToken
FIELD_NAME
currentToken
VALUE_EMBEDDED_OBJECT
currentToken
VALUE_STRING
currentToken
VALUE_NUMBER_INT
currentToken
VALUE_NUMBER_FLOAT
currentToken
VALUE_TRUE
currentToken
VALUE_FALSE
currentToken
VALUE_NULL
lastClearedToken
NOT_AVAILABLE
lastClearedToken
START_OBJECT
lastClearedToken
END_OBJECT
lastClearedToken
START_ARRAY
lastClearedToken
END_ARRAY
lastClearedToken
FIELD_NAME
lastClearedToken
VALUE_EMBEDDED_OBJECT
lastClearedToken
VALUE_STRING
lastClearedToken
VALUE_NUMBER_INT
lastClearedToken
VALUE_NUMBER_FLOAT
lastClearedToken
VALUE_TRUE
lastClearedToken
VALUE_FALSE
lastClearedToken
VALUE_NULL
JsonSerializer
{
"unwrappingSerializer" : true
}
Properties
Name
Type
Required
Restrictions
Description
unwrappingSerializer
boolean
false
none
none
JsonSerializerObject
{
"delegatee" : {
"delegatee" : {},
"unwrappingSerializer" : true
},
"unwrappingSerializer" : true
}
Properties
Name
Type
Required
Restrictions
Description
delegatee
JsonSerializerObject
false
none
none
unwrappingSerializer
boolean
false
none
none
JsonStreamContext
{
"parent" : {
"parent" : {},
"entryCount" : 0 ,
"currentValue" : {},
"typeDesc" : "string" ,
"currentIndex" : 0 ,
"currentName" : "string"
},
"entryCount" : 0 ,
"currentValue" : {},
"typeDesc" : "string" ,
"currentIndex" : 0 ,
"currentName" : "string"
}
Properties
Name
Type
Required
Restrictions
Description
parent
JsonStreamContext
false
none
none
entryCount
integer(int32)
false
none
none
currentValue
object
false
none
none
typeDesc
string
false
none
none
currentIndex
integer(int32)
false
none
none
currentName
string
false
none
none
JsonValue
Properties
Name
Type
Required
Restrictions
Description
valueType
string
false
none
none
Enumerated Values
Property
Value
valueType
ARRAY
valueType
OBJECT
valueType
STRING
valueType
NUMBER
valueType
TRUE
valueType
FALSE
valueType
NULL
LdapGroupMappingDTO
{
"role" : "string" ,
"distinguishedName" : "string"
}
Properties
Name
Type
Required
Restrictions
Description
role
string
false
none
none
distinguishedName
string
false
none
none
LdapSettingsDTO
{
"principal" : "string" ,
"searchBase" : "string" ,
"principalSuffix" : "string" ,
"urls" : [
"string"
],
"groupMappings" : [
{
"role" : "string" ,
"distinguishedName" : "string"
}
],
"useSavedPassword" : true
}
Properties
Name
Type
Required
Restrictions
Description
principal
string
false
none
none
searchBase
string
false
none
none
principalSuffix
string
false
none
none
urls
[string]
false
none
none
groupMappings
[LdapGroupMappingDTO ]
false
none
none
useSavedPassword
boolean
false
none
none
LeaderboardHints
{
"used" : 0 ,
"total" : 0
}
Properties
Name
Type
Required
Restrictions
Description
used
integer(int32)
false
none
none
total
integer(int32)
false
none
none
LeaderboardTasks
{
"total" : 0 ,
"solved" : 0 ,
"inProgress" : 0 ,
"abandoned" : 0 ,
"wrongSubmissions" : 0
}
Properties
Name
Type
Required
Restrictions
Description
total
integer(int32)
false
none
none
solved
integer(int32)
false
none
none
inProgress
integer(int32)
false
none
none
abandoned
integer(int32)
false
none
none
wrongSubmissions
integer(int32)
false
none
none
LeaderboardTeamDTO
{
"teamName" : "string" ,
"score" : 0 ,
"tasks" : {
"total" : 0 ,
"solved" : 0 ,
"inProgress" : 0 ,
"abandoned" : 0 ,
"wrongSubmissions" : 0
},
"progressByCategory" : {
"property1" : 0 ,
"property2" : 0
},
"totalProgress" : 0 ,
"hints" : {
"used" : 0 ,
"total" : 0
}
}
Properties
Name
Type
Required
Restrictions
Description
teamName
string
false
none
none
score
number(double)
false
none
none
tasks
LeaderboardTasks
false
none
none
progressByCategory
object
false
none
none
» additionalProperties
integer(int32)
false
none
none
totalProgress
integer(int32)
false
none
none
hints
LeaderboardHints
false
none
none
LinkedNode
Properties
None
LinkedNodeDeserializationProblemHandler
Properties
None
Locale
{
"language" : "string" ,
"script" : "string" ,
"country" : "string" ,
"variant" : "string" ,
"extensionKeys" : [
"string"
],
"unicodeLocaleAttributes" : [
"string"
],
"unicodeLocaleKeys" : [
"string"
],
"iso3Language" : "string" ,
"iso3Country" : "string" ,
"displayLanguage" : "string" ,
"displayScript" : "string" ,
"displayCountry" : "string" ,
"displayVariant" : "string" ,
"displayName" : "string"
}
Properties
Name
Type
Required
Restrictions
Description
language
string
false
none
none
script
string
false
none
none
country
string
false
none
none
variant
string
false
none
none
extensionKeys
[string]
false
none
none
unicodeLocaleAttributes
[string]
false
none
none
unicodeLocaleKeys
[string]
false
none
none
iso3Language
string
false
none
none
iso3Country
string
false
none
none
displayLanguage
string
false
none
none
displayScript
string
false
none
none
displayCountry
string
false
none
none
displayVariant
string
false
none
none
displayName
string
false
none
none
LongBuilder
Properties
None
{
"id" : "string" ,
"name" : "string" ,
"fileType" : "AUDIO"
}
Properties
Name
Type
Required
Restrictions
Description
id
string
false
none
none
name
string
false
none
none
fileType
string
false
none
none
Enumerated Values
Property
Value
fileType
AUDIO
fileType
IMAGE
fileType
VIDEO
{
"type" : "string" ,
"subtype" : "string" ,
"parameters" : {
"property1" : "string" ,
"property2" : "string"
},
"wildcardType" : true ,
"wildcardSubtype" : true
}
Properties
Name
Type
Required
Restrictions
Description
type
string
false
none
none
subtype
string
false
none
none
parameters
object
false
none
none
» additionalProperties
string
false
none
none
wildcardType
boolean
false
none
none
wildcardSubtype
boolean
false
none
none
{
"offset" : 0 ,
"limit" : 0 ,
"totalCount" : 0 ,
"timestamp" : 0
}
Properties
Name
Type
Required
Restrictions
Description
offset
integer(int32)
false
none
none
limit
integer(int32)
false
none
none
totalCount
integer(int64)
false
none
none
timestamp
integer(int64)
false
none
none
MitrePatternDTO
{
"id" : "string" ,
"name" : "string" ,
"description" : "string" ,
"subTechniques" : [
{
"id" : "string" ,
"name" : "string" ,
"description" : "string" ,
"subTechniques" : [],
"externalReferences" : [
{
"externalId" : "string" ,
"sourceName" : "string" ,
"url" : "string"
}
],
"tacticReferences" : [
{
"phaseName" : "string"
}
],
"type" : "MITRE_TACTIC" ,
"isDeprecated" : true ,
"isSubTechnique" : true
}
],
"externalReferences" : [
{
"externalId" : "string" ,
"sourceName" : "string" ,
"url" : "string"
}
],
"tacticReferences" : [
{
"phaseName" : "string"
}
],
"type" : "MITRE_TACTIC" ,
"isDeprecated" : true ,
"isSubTechnique" : true
}
Properties
Name
Type
Required
Restrictions
Description
id
string
false
none
none
name
string
false
none
none
description
string
false
none
none
subTechniques
[MitrePatternDTO ]
false
none
none
externalReferences
[MitreReferenceDTO ]
false
none
none
tacticReferences
[MitreTacticReferenceDTO ]
false
none
none
type
string
false
none
none
isDeprecated
boolean
false
read-only
none
isSubTechnique
boolean
false
read-only
none
Enumerated Values
Property
Value
type
MITRE_TACTIC
type
MITRE_PATTERN
type
MITRE_RELATIONSHIP
MitreReferenceDTO
{
"externalId" : "string" ,
"sourceName" : "string" ,
"url" : "string"
}
Properties
Name
Type
Required
Restrictions
Description
externalId
string
false
none
none
sourceName
string
false
none
none
url
string
false
none
none
MitreTacticDTO
{
"id" : "string" ,
"name" : "string" ,
"techniques" : [
{
"id" : "string" ,
"name" : "string" ,
"description" : "string" ,
"subTechniques" : [
{}
],
"externalReferences" : [
{
"externalId" : "string" ,
"sourceName" : "string" ,
"url" : "string"
}
],
"tacticReferences" : [
{
"phaseName" : "string"
}
],
"type" : "MITRE_TACTIC" ,
"isDeprecated" : true ,
"isSubTechnique" : true
}
],
"shortName" : "string" ,
"type" : "MITRE_TACTIC" ,
"isDeprecated" : true
}
Properties
Name
Type
Required
Restrictions
Description
id
string
false
none
none
name
string
false
none
none
techniques
[MitrePatternDTO ]
false
none
none
shortName
string
false
none
none
type
string
false
none
none
isDeprecated
boolean
false
read-only
none
Enumerated Values
Property
Value
type
MITRE_TACTIC
type
MITRE_PATTERN
type
MITRE_RELATIONSHIP
MitreTacticReferenceDTO
{
"phaseName" : "string"
}
Properties
Name
Type
Required
Restrictions
Description
phaseName
string
false
none
none
Module
{
"layer" : {},
"name" : "string" ,
"descriptor" : {
"open" : true ,
"automatic" : true
},
"classLoader" : {
"parent" : {},
"name" : "string" ,
"unnamedModule" : {
"layer" : {},
"name" : "string" ,
"descriptor" : {
"open" : true ,
"automatic" : true
},
"classLoader" : {},
"annotations" : [
{}
],
"declaredAnnotations" : [
{}
],
"named" : true ,
"packages" : [
"string"
]
},
"registeredAsParallelCapable" : true ,
"definedPackages" : [
{
"name" : "string" ,
"annotations" : [
{}
],
"declaredAnnotations" : [
{}
],
"sealed" : true ,
"specificationTitle" : "string" ,
"specificationVersion" : "string" ,
"specificationVendor" : "string" ,
"implementationTitle" : "string" ,
"implementationVersion" : "string" ,
"implementationVendor" : "string"
}
]
},
"annotations" : [
{}
],
"declaredAnnotations" : [
{}
],
"named" : true ,
"packages" : [
"string"
]
}
Properties
Name
Type
Required
Restrictions
Description
layer
ModuleLayer
false
none
none
name
string
false
none
none
descriptor
ModuleDescriptor
false
none
none
classLoader
ClassLoader
false
none
none
annotations
[Annotation ]
false
none
none
declaredAnnotations
[Annotation ]
false
none
none
named
boolean
false
none
none
packages
[string]
false
none
none
ModuleDescriptor
{
"open" : true ,
"automatic" : true
}
Properties
Name
Type
Required
Restrictions
Description
open
boolean
false
none
none
automatic
boolean
false
none
none
ModuleLayer
Properties
None
NetworkSegment
{
"id" : "497f6eca-6276-4993-bfeb-53cbbbba6f08" ,
"name" : "string" ,
"description" : "string" ,
"colorHex" : "string"
}
Properties
Name
Type
Required
Restrictions
Description
id
string(uuid)
false
none
none
name
string
false
none
none
description
string
false
none
none
colorHex
string
false
none
none
NetworkSegmentDefinition
{
"name" : "string" ,
"description" : "string" ,
"colorHex" : "string"
}
Properties
Name
Type
Required
Restrictions
Description
name
string
false
none
none
description
string
false
none
none
colorHex
string
false
none
none
NewsInjectData
{
"id" : "497f6eca-6276-4993-bfeb-53cbbbba6f08" ,
"exerciseId" : "71ba10b8-c6bd-49fd-9742-f8dbc8ccdb47" ,
"title" : "string" ,
"description" : "string" ,
"timestamp" : 0 ,
"mediaId" : "string" ,
"thumbnailId" : "string" ,
"fileType" : "AUDIO" ,
"status" : "PUBLISHED" ,
"teams" : [
{
"teamId" : "a4ede8ba-7c0a-4485-8763-cbd9b282fbec" ,
"teamName" : "string" ,
"injectStatus" : "PUBLISHED" ,
"injectPublicationId" : "string" ,
"injectPublicationTimestamp" : 0
}
],
"isNew" : true
}
Properties
Name
Type
Required
Restrictions
Description
id
string(uuid)
false
none
none
exerciseId
string(uuid)
false
none
none
title
string
false
none
none
description
string
false
none
none
timestamp
integer(int64)
false
none
none
mediaId
string
false
none
none
thumbnailId
string
false
none
none
fileType
string
false
none
none
status
string
false
none
none
teams
[NewsInjectTeam ]
false
none
none
isNew
boolean
false
read-only
none
Enumerated Values
Property
Value
fileType
AUDIO
fileType
IMAGE
fileType
VIDEO
status
PUBLISHED
status
UNPUBLISHED
NewsInjectTeam
{
"teamId" : "a4ede8ba-7c0a-4485-8763-cbd9b282fbec" ,
"teamName" : "string" ,
"injectStatus" : "PUBLISHED" ,
"injectPublicationId" : "string" ,
"injectPublicationTimestamp" : 0
}
Properties
Name
Type
Required
Restrictions
Description
teamId
string(uuid)
false
none
none
teamName
string
false
none
none
injectStatus
string
false
none
none
injectPublicationId
string
false
none
none
injectPublicationTimestamp
integer(int64)
false
none
none
Enumerated Values
Property
Value
injectStatus
PUBLISHED
injectStatus
UNPUBLISHED
NiceIds
{
"taskIds" : [
"string"
],
"knowledgeIds" : [
"string"
],
"skillIds" : [
"string"
],
"abilityIds" : [
"string"
]
}
Properties
Name
Type
Required
Restrictions
Description
taskIds
[string]
false
none
none
knowledgeIds
[string]
false
none
none
skillIds
[string]
false
none
none
abilityIds
[string]
false
none
none
NoopAuthentication
{
"type" : "SESSION_TOKEN"
}
Properties
allOf - discriminator: IntegrationAuthentication.type
and
Name
Type
Required
Restrictions
Description
anonymous
object
false
none
none
Number
Properties
None
{
"groupingUsed" : true ,
"parseIntegerOnly" : true ,
"maximumIntegerDigits" : 0 ,
"minimumIntegerDigits" : 0 ,
"maximumFractionDigits" : 0 ,
"minimumFractionDigits" : 0 ,
"currency" : {
"currencyCode" : "string" ,
"defaultFractionDigits" : 0 ,
"numericCode" : 0 ,
"displayName" : "string" ,
"symbol" : "string" ,
"numericCodeAsString" : "string"
},
"roundingMode" : "UP"
}
Properties
Name
Type
Required
Restrictions
Description
groupingUsed
boolean
false
none
none
parseIntegerOnly
boolean
false
none
none
maximumIntegerDigits
integer(int32)
false
none
none
minimumIntegerDigits
integer(int32)
false
none
none
maximumFractionDigits
integer(int32)
false
none
none
minimumFractionDigits
integer(int32)
false
none
none
currency
Currency
false
none
none
roundingMode
string
false
none
none
Enumerated Values
Property
Value
roundingMode
UP
roundingMode
DOWN
roundingMode
CEILING
roundingMode
FLOOR
roundingMode
HALF_UP
roundingMode
HALF_DOWN
roundingMode
HALF_EVEN
roundingMode
UNNECESSARY
ObjectCodec
{
"factory" : {
"characterEscapes" : {
"escapeCodesForAscii" : [
0
]
},
"rootValueSeparator" : "string" ,
"formatName" : "string" ,
"outputDecorator" : {},
"inputDecorator" : {},
"codec" : {
"factory" : {},
"jsonFactory" : {}
}
},
"jsonFactory" : {
"characterEscapes" : {
"escapeCodesForAscii" : [
0
]
},
"rootValueSeparator" : "string" ,
"formatName" : "string" ,
"outputDecorator" : {},
"inputDecorator" : {},
"codec" : {
"factory" : {},
"jsonFactory" : {}
}
}
}
Properties
Name
Type
Required
Restrictions
Description
factory
JsonFactory
false
none
none
jsonFactory
JsonFactory
false
none
none
ObjectId
{
"timestamp" : 0 ,
"date" : "2019-08-24T14:15:22Z"
}
Properties
Name
Type
Required
Restrictions
Description
timestamp
integer(int32)
false
none
none
date
string(date-time)
false
none
none
ObjectMapper
{
"serializerProvider" : {
"defaultNullValueSerializer" : {
"delegatee" : {},
"unwrappingSerializer" : true
},
"annotationIntrospector" : {},
"defaultNullKeySerializer" : {
"delegatee" : {},
"unwrappingSerializer" : true
},
"timeZone" : {
"id" : "string" ,
"displayName" : "string" ,
"dstsavings" : 0 ,
"rawOffset" : 0
},
"locale" : {
"language" : "string" ,
"script" : "string" ,
"country" : "string" ,
"variant" : "string" ,
"extensionKeys" : [
"string"
],
"unicodeLocaleAttributes" : [
"string"
],
"unicodeLocaleKeys" : [
"string"
],
"iso3Language" : "string" ,
"iso3Country" : "string" ,
"displayLanguage" : "string" ,
"displayScript" : "string" ,
"displayCountry" : "string" ,
"displayVariant" : "string" ,
"displayName" : "string"
},
"config" : {
"defaultPropertyInclusion" : {
"valueInclusion" : "ALWAYS" ,
"contentInclusion" : "ALWAYS"
},
"annotationIntrospector" : {},
"defaultPrettyPrinter" : {},
"serializationInclusion" : "ALWAYS" ,
"serializationFeatures" : 0 ,
"filterProvider" : {},
"defaultVisibilityChecker" : {},
"attributes" : {},
"rootName" : "string" ,
"subtypeResolver" : {},
"fullRootName" : {
"empty" : true ,
"simpleName" : "string" ,
"namespace" : "string"
},
"handlerInstantiator" : {},
"propertyNamingStrategy" : {},
"timeZone" : {
"id" : "string" ,
"displayName" : "string" ,
"dstsavings" : 0 ,
"rawOffset" : 0
},
"locale" : {
"language" : "string" ,
"script" : "string" ,
"country" : "string" ,
"variant" : "string" ,
"extensionKeys" : [
"string"
],
"unicodeLocaleAttributes" : [
"string"
],
"unicodeLocaleKeys" : [
"string"
],
"iso3Language" : "string" ,
"iso3Country" : "string" ,
"displayLanguage" : "string" ,
"displayScript" : "string" ,
"displayCountry" : "string" ,
"displayVariant" : "string" ,
"displayName" : "string"
},
"classIntrospector" : {},
"typeFactory" : {
"classLoader" : {
"parent" : {},
"name" : "string" ,
"unnamedModule" : {
"layer" : {},
"name" : "string" ,
"descriptor" : {
"open" : true ,
"automatic" : true
},
"classLoader" : {},
"annotations" : [
{}
],
"declaredAnnotations" : [
{}
],
"named" : true ,
"packages" : [
"string"
]
},
"registeredAsParallelCapable" : true ,
"definedPackages" : [
{
"name" : "string" ,
"annotations" : [
{}
],
"declaredAnnotations" : [
{}
],
"sealed" : true ,
"specificationTitle" : "string" ,
"specificationVersion" : "string" ,
"specificationVendor" : "string" ,
"implementationTitle" : "string" ,
"implementationVersion" : "string" ,
"implementationVendor" : "string"
}
]
}
},
"annotationProcessingEnabled" : true ,
"dateFormat" : {
"calendar" : "2019-08-24T14:15:22Z" ,
"numberFormat" : {
"groupingUsed" : true ,
"parseIntegerOnly" : true ,
"maximumIntegerDigits" : 0 ,
"minimumIntegerDigits" : 0 ,
"maximumFractionDigits" : 0 ,
"minimumFractionDigits" : 0 ,
"currency" : {
"currencyCode" : "string" ,
"defaultFractionDigits" : 0 ,
"numericCode" : 0 ,
"displayName" : "string" ,
"symbol" : "string" ,
"numericCodeAsString" : "string"
},
"roundingMode" : "UP"
},
"lenient" : true ,
"timeZone" : {
"id" : "string" ,
"displayName" : "string" ,
"dstsavings" : 0 ,
"rawOffset" : 0
}
},
"base64Variant" : {
"name" : "string" ,
"maxLineLength" : 0 ,
"paddingByte" : "string" ,
"paddingChar" : "string"
}
},
"typeFactory" : {
"classLoader" : {
"parent" : {},
"name" : "string" ,
"unnamedModule" : {
"layer" : {},
"name" : "string" ,
"descriptor" : {
"open" : true ,
"automatic" : true
},
"classLoader" : {},
"annotations" : [
{}
],
"declaredAnnotations" : [
{}
],
"named" : true ,
"packages" : [
"string"
]
},
"registeredAsParallelCapable" : true ,
"definedPackages" : [
{
"name" : "string" ,
"annotations" : [
{}
],
"declaredAnnotations" : [
{}
],
"sealed" : true ,
"specificationTitle" : "string" ,
"specificationVersion" : "string" ,
"specificationVendor" : "string" ,
"implementationTitle" : "string" ,
"implementationVersion" : "string" ,
"implementationVendor" : "string"
}
]
}
},
"generator" : {
"characterEscapes" : {
"escapeCodesForAscii" : [
0
]
},
"schema" : {
"schemaType" : "string"
},
"closed" : true ,
"currentValue" : {},
"codec" : {
"factory" : {
"characterEscapes" : {
"escapeCodesForAscii" : [
0
]
},
"rootValueSeparator" : "string" ,
"formatName" : "string" ,
"outputDecorator" : {},
"inputDecorator" : {},
"codec" : {}
},
"jsonFactory" : {
"characterEscapes" : {
"escapeCodesForAscii" : [
0
]
},
"rootValueSeparator" : "string" ,
"formatName" : "string" ,
"outputDecorator" : {},
"inputDecorator" : {},
"codec" : {}
}
},
"prettyPrinter" : {},
"featureMask" : 0 ,
"formatFeatures" : 0 ,
"outputTarget" : {},
"outputBuffered" : 0 ,
"outputContext" : {
"parent" : {},
"entryCount" : 0 ,
"currentValue" : {},
"typeDesc" : "string" ,
"currentIndex" : 0 ,
"currentName" : "string"
},
"highestEscapedChar" : 0
},
"filterProvider" : {}
},
"serializerFactory" : {},
"injectableValues" : {},
"propertyNamingStrategy" : {},
"serializationConfig" : {
"defaultPropertyInclusion" : {
"valueInclusion" : "ALWAYS" ,
"contentInclusion" : "ALWAYS"
},
"annotationIntrospector" : {},
"defaultPrettyPrinter" : {},
"serializationInclusion" : "ALWAYS" ,
"serializationFeatures" : 0 ,
"filterProvider" : {},
"defaultVisibilityChecker" : {},
"attributes" : {},
"rootName" : "string" ,
"subtypeResolver" : {},
"fullRootName" : {
"empty" : true ,
"simpleName" : "string" ,
"namespace" : "string"
},
"handlerInstantiator" : {},
"propertyNamingStrategy" : {},
"timeZone" : {
"id" : "string" ,
"displayName" : "string" ,
"dstsavings" : 0 ,
"rawOffset" : 0
},
"locale" : {
"language" : "string" ,
"script" : "string" ,
"country" : "string" ,
"variant" : "string" ,
"extensionKeys" : [
"string"
],
"unicodeLocaleAttributes" : [
"string"
],
"unicodeLocaleKeys" : [
"string"
],
"iso3Language" : "string" ,
"iso3Country" : "string" ,
"displayLanguage" : "string" ,
"displayScript" : "string" ,
"displayCountry" : "string" ,
"displayVariant" : "string" ,
"displayName" : "string"
},
"classIntrospector" : {},
"typeFactory" : {
"classLoader" : {
"parent" : {},
"name" : "string" ,
"unnamedModule" : {
"layer" : {},
"name" : "string" ,
"descriptor" : {
"open" : true ,
"automatic" : true
},
"classLoader" : {},
"annotations" : [
{}
],
"declaredAnnotations" : [
{}
],
"named" : true ,
"packages" : [
"string"
]
},
"registeredAsParallelCapable" : true ,
"definedPackages" : [
{
"name" : "string" ,
"annotations" : [
{}
],
"declaredAnnotations" : [
{}
],
"sealed" : true ,
"specificationTitle" : "string" ,
"specificationVersion" : "string" ,
"specificationVendor" : "string" ,
"implementationTitle" : "string" ,
"implementationVersion" : "string" ,
"implementationVendor" : "string"
}
]
}
},
"annotationProcessingEnabled" : true ,
"dateFormat" : {
"calendar" : "2019-08-24T14:15:22Z" ,
"numberFormat" : {
"groupingUsed" : true ,
"parseIntegerOnly" : true ,
"maximumIntegerDigits" : 0 ,
"minimumIntegerDigits" : 0 ,
"maximumFractionDigits" : 0 ,
"minimumFractionDigits" : 0 ,
"currency" : {
"currencyCode" : "string" ,
"defaultFractionDigits" : 0 ,
"numericCode" : 0 ,
"displayName" : "string" ,
"symbol" : "string" ,
"numericCodeAsString" : "string"
},
"roundingMode" : "UP"
},
"lenient" : true ,
"timeZone" : {
"id" : "string" ,
"displayName" : "string" ,
"dstsavings" : 0 ,
"rawOffset" : 0
}
},
"base64Variant" : {
"name" : "string" ,
"maxLineLength" : 0 ,
"paddingByte" : "string" ,
"paddingChar" : "string"
}
},
"serializerProviderInstance" : {
"defaultNullValueSerializer" : {
"delegatee" : {},
"unwrappingSerializer" : true
},
"annotationIntrospector" : {},
"defaultNullKeySerializer" : {
"delegatee" : {},
"unwrappingSerializer" : true
},
"timeZone" : {
"id" : "string" ,
"displayName" : "string" ,
"dstsavings" : 0 ,
"rawOffset" : 0
},
"locale" : {
"language" : "string" ,
"script" : "string" ,
"country" : "string" ,
"variant" : "string" ,
"extensionKeys" : [
"string"
],
"unicodeLocaleAttributes" : [
"string"
],
"unicodeLocaleKeys" : [
"string"
],
"iso3Language" : "string" ,
"iso3Country" : "string" ,
"displayLanguage" : "string" ,
"displayScript" : "string" ,
"displayCountry" : "string" ,
"displayVariant" : "string" ,
"displayName" : "string"
},
"config" : {
"defaultPropertyInclusion" : {
"valueInclusion" : "ALWAYS" ,
"contentInclusion" : "ALWAYS"
},
"annotationIntrospector" : {},
"defaultPrettyPrinter" : {},
"serializationInclusion" : "ALWAYS" ,
"serializationFeatures" : 0 ,
"filterProvider" : {},
"defaultVisibilityChecker" : {},
"attributes" : {},
"rootName" : "string" ,
"subtypeResolver" : {},
"fullRootName" : {
"empty" : true ,
"simpleName" : "string" ,
"namespace" : "string"
},
"handlerInstantiator" : {},
"propertyNamingStrategy" : {},
"timeZone" : {
"id" : "string" ,
"displayName" : "string" ,
"dstsavings" : 0 ,
"rawOffset" : 0
},
"locale" : {
"language" : "string" ,
"script" : "string" ,
"country" : "string" ,
"variant" : "string" ,
"extensionKeys" : [
"string"
],
"unicodeLocaleAttributes" : [
"string"
],
"unicodeLocaleKeys" : [
"string"
],
"iso3Language" : "string" ,
"iso3Country" : "string" ,
"displayLanguage" : "string" ,
"displayScript" : "string" ,
"displayCountry" : "string" ,
"displayVariant" : "string" ,
"displayName" : "string"
},
"classIntrospector" : {},
"typeFactory" : {
"classLoader" : {
"parent" : {},
"name" : "string" ,
"unnamedModule" : {
"layer" : {},
"name" : "string" ,
"descriptor" : {
"open" : true ,
"automatic" : true
},
"classLoader" : {},
"annotations" : [
{}
],
"declaredAnnotations" : [
{}
],
"named" : true ,
"packages" : [
"string"
]
},
"registeredAsParallelCapable" : true ,
"definedPackages" : [
{
"name" : "string" ,
"annotations" : [
{}
],
"declaredAnnotations" : [
{}
],
"sealed" : true ,
"specificationTitle" : "string" ,
"specificationVersion" : "string" ,
"specificationVendor" : "string" ,
"implementationTitle" : "string" ,
"implementationVersion" : "string" ,
"implementationVendor" : "string"
}
]
}
},
"annotationProcessingEnabled" : true ,
"dateFormat" : {
"calendar" : "2019-08-24T14:15:22Z" ,
"numberFormat" : {
"groupingUsed" : true ,
"parseIntegerOnly" : true ,
"maximumIntegerDigits" : 0 ,
"minimumIntegerDigits" : 0 ,
"maximumFractionDigits" : 0 ,
"minimumFractionDigits" : 0 ,
"currency" : {
"currencyCode" : "string" ,
"defaultFractionDigits" : 0 ,
"numericCode" : 0 ,
"displayName" : "string" ,
"symbol" : "string" ,
"numericCodeAsString" : "string"
},
"roundingMode" : "UP"
},
"lenient" : true ,
"timeZone" : {
"id" : "string" ,
"displayName" : "string" ,
"dstsavings" : 0 ,
"rawOffset" : 0
}
},
"base64Variant" : {
"name" : "string" ,
"maxLineLength" : 0 ,
"paddingByte" : "string" ,
"paddingChar" : "string"
}
},
"typeFactory" : {
"classLoader" : {
"parent" : {},
"name" : "string" ,
"unnamedModule" : {
"layer" : {},
"name" : "string" ,
"descriptor" : {
"open" : true ,
"automatic" : true
},
"classLoader" : {},
"annotations" : [
{}
],
"declaredAnnotations" : [
{}
],
"named" : true ,
"packages" : [
"string"
]
},
"registeredAsParallelCapable" : true ,
"definedPackages" : [
{
"name" : "string" ,
"annotations" : [
{}
],
"declaredAnnotations" : [
{}
],
"sealed" : true ,
"specificationTitle" : "string" ,
"specificationVersion" : "string" ,
"specificationVendor" : "string" ,
"implementationTitle" : "string" ,
"implementationVersion" : "string" ,
"implementationVendor" : "string"
}
]
}
},
"generator" : {
"characterEscapes" : {
"escapeCodesForAscii" : [
0
]
},
"schema" : {
"schemaType" : "string"
},
"closed" : true ,
"currentValue" : {},
"codec" : {
"factory" : {
"characterEscapes" : {
"escapeCodesForAscii" : [
0
]
},
"rootValueSeparator" : "string" ,
"formatName" : "string" ,
"outputDecorator" : {},
"inputDecorator" : {},
"codec" : {}
},
"jsonFactory" : {
"characterEscapes" : {
"escapeCodesForAscii" : [
0
]
},
"rootValueSeparator" : "string" ,
"formatName" : "string" ,
"outputDecorator" : {},
"inputDecorator" : {},
"codec" : {}
}
},
"prettyPrinter" : {},
"featureMask" : 0 ,
"formatFeatures" : 0 ,
"outputTarget" : {},
"outputBuffered" : 0 ,
"outputContext" : {
"parent" : {},
"entryCount" : 0 ,
"currentValue" : {},
"typeDesc" : "string" ,
"currentIndex" : 0 ,
"currentName" : "string"
},
"highestEscapedChar" : 0
},
"filterProvider" : {}
},
"deserializationConfig" : {
"defaultPropertyInclusion" : {
"valueInclusion" : "ALWAYS" ,
"contentInclusion" : "ALWAYS"
},
"annotationIntrospector" : {},
"deserializationFeatures" : 0 ,
"nodeFactory" : {},
"problemHandlers" : {},
"defaultVisibilityChecker" : {},
"attributes" : {},
"rootName" : "string" ,
"subtypeResolver" : {},
"fullRootName" : {
"empty" : true ,
"simpleName" : "string" ,
"namespace" : "string"
},
"handlerInstantiator" : {},
"propertyNamingStrategy" : {},
"timeZone" : {
"id" : "string" ,
"displayName" : "string" ,
"dstsavings" : 0 ,
"rawOffset" : 0
},
"locale" : {
"language" : "string" ,
"script" : "string" ,
"country" : "string" ,
"variant" : "string" ,
"extensionKeys" : [
"string"
],
"unicodeLocaleAttributes" : [
"string"
],
"unicodeLocaleKeys" : [
"string"
],
"iso3Language" : "string" ,
"iso3Country" : "string" ,
"displayLanguage" : "string" ,
"displayScript" : "string" ,
"displayCountry" : "string" ,
"displayVariant" : "string" ,
"displayName" : "string"
},
"classIntrospector" : {},
"typeFactory" : {
"classLoader" : {
"parent" : {},
"name" : "string" ,
"unnamedModule" : {
"layer" : {},
"name" : "string" ,
"descriptor" : {
"open" : true ,
"automatic" : true
},
"classLoader" : {},
"annotations" : [
{}
],
"declaredAnnotations" : [
{}
],
"named" : true ,
"packages" : [
"string"
]
},
"registeredAsParallelCapable" : true ,
"definedPackages" : [
{
"name" : "string" ,
"annotations" : [
{}
],
"declaredAnnotations" : [
{}
],
"sealed" : true ,
"specificationTitle" : "string" ,
"specificationVersion" : "string" ,
"specificationVendor" : "string" ,
"implementationTitle" : "string" ,
"implementationVersion" : "string" ,
"implementationVendor" : "string"
}
]
}
},
"annotationProcessingEnabled" : true ,
"dateFormat" : {
"calendar" : "2019-08-24T14:15:22Z" ,
"numberFormat" : {
"groupingUsed" : true ,
"parseIntegerOnly" : true ,
"maximumIntegerDigits" : 0 ,
"minimumIntegerDigits" : 0 ,
"maximumFractionDigits" : 0 ,
"minimumFractionDigits" : 0 ,
"currency" : {
"currencyCode" : "string" ,
"defaultFractionDigits" : 0 ,
"numericCode" : 0 ,
"displayName" : "string" ,
"symbol" : "string" ,
"numericCodeAsString" : "string"
},
"roundingMode" : "UP"
},
"lenient" : true ,
"timeZone" : {
"id" : "string" ,
"displayName" : "string" ,
"dstsavings" : 0 ,
"rawOffset" : 0
}
},
"base64Variant" : {
"name" : "string" ,
"maxLineLength" : 0 ,
"paddingByte" : "string" ,
"paddingChar" : "string"
}
},
"deserializationContext" : {
"annotationIntrospector" : {},
"factory" : {},
"timeZone" : {
"id" : "string" ,
"displayName" : "string" ,
"dstsavings" : 0 ,
"rawOffset" : 0
},
"locale" : {
"language" : "string" ,
"script" : "string" ,
"country" : "string" ,
"variant" : "string" ,
"extensionKeys" : [
"string"
],
"unicodeLocaleAttributes" : [
"string"
],
"unicodeLocaleKeys" : [
"string"
],
"iso3Language" : "string" ,
"iso3Country" : "string" ,
"displayLanguage" : "string" ,
"displayScript" : "string" ,
"displayCountry" : "string" ,
"displayVariant" : "string" ,
"displayName" : "string"
},
"config" : {
"defaultPropertyInclusion" : {
"valueInclusion" : "ALWAYS" ,
"contentInclusion" : "ALWAYS"
},
"annotationIntrospector" : {},
"deserializationFeatures" : 0 ,
"nodeFactory" : {},
"problemHandlers" : {},
"defaultVisibilityChecker" : {},
"attributes" : {},
"rootName" : "string" ,
"subtypeResolver" : {},
"fullRootName" : {
"empty" : true ,
"simpleName" : "string" ,
"namespace" : "string"
},
"handlerInstantiator" : {},
"propertyNamingStrategy" : {},
"timeZone" : {
"id" : "string" ,
"displayName" : "string" ,
"dstsavings" : 0 ,
"rawOffset" : 0
},
"locale" : {
"language" : "string" ,
"script" : "string" ,
"country" : "string" ,
"variant" : "string" ,
"extensionKeys" : [
"string"
],
"unicodeLocaleAttributes" : [
"string"
],
"unicodeLocaleKeys" : [
"string"
],
"iso3Language" : "string" ,
"iso3Country" : "string" ,
"displayLanguage" : "string" ,
"displayScript" : "string" ,
"displayCountry" : "string" ,
"displayVariant" : "string" ,
"displayName" : "string"
},
"classIntrospector" : {},
"typeFactory" : {
"classLoader" : {
"parent" : {},
"name" : "string" ,
"unnamedModule" : {
"layer" : {},
"name" : "string" ,
"descriptor" : {
"open" : true ,
"automatic" : true
},
"classLoader" : {},
"annotations" : [
{}
],
"declaredAnnotations" : [
{}
],
"named" : true ,
"packages" : [
"string"
]
},
"registeredAsParallelCapable" : true ,
"definedPackages" : [
{
"name" : "string" ,
"annotations" : [
{}
],
"declaredAnnotations" : [
{}
],
"sealed" : true ,
"specificationTitle" : "string" ,
"specificationVersion" : "string" ,
"specificationVendor" : "string" ,
"implementationTitle" : "string" ,
"implementationVersion" : "string" ,
"implementationVendor" : "string"
}
]
}
},
"annotationProcessingEnabled" : true ,
"dateFormat" : {
"calendar" : "2019-08-24T14:15:22Z" ,
"numberFormat" : {
"groupingUsed" : true ,
"parseIntegerOnly" : true ,
"maximumIntegerDigits" : 0 ,
"minimumIntegerDigits" : 0 ,
"maximumFractionDigits" : 0 ,
"minimumFractionDigits" : 0 ,
"currency" : {
"currencyCode" : "string" ,
"defaultFractionDigits" : 0 ,
"numericCode" : 0 ,
"displayName" : "string" ,
"symbol" : "string" ,
"numericCodeAsString" : "string"
},
"roundingMode" : "UP"
},
"lenient" : true ,
"timeZone" : {
"id" : "string" ,
"displayName" : "string" ,
"dstsavings" : 0 ,
"rawOffset" : 0
}
},
"base64Variant" : {
"name" : "string" ,
"maxLineLength" : 0 ,
"paddingByte" : "string" ,
"paddingChar" : "string"
}
},
"parser" : {
"textLength" : 0 ,
"textCharacters" : [
"string"
],
"text" : "string" ,
"schema" : {
"schemaType" : "string"
},
"booleanValue" : true ,
"byteValue" : "string" ,
"doubleValue" : 0 ,
"floatValue" : 0 ,
"shortValue" : 0 ,
"longValue" : 0 ,
"textOffset" : 0 ,
"closed" : true ,
"currentValue" : {},
"numberType" : "INT" ,
"intValue" : 0 ,
"typeId" : {},
"valueAsLong" : 0 ,
"inputSource" : {},
"valueAsDouble" : 0 ,
"numberValue" : {},
"valueAsString" : "string" ,
"valueAsBoolean" : true ,
"currentLocation" : {
"byteOffset" : 0 ,
"sourceRef" : {},
"lineNr" : 0 ,
"columnNr" : 0 ,
"charOffset" : 0
},
"binaryValue" : [
"string"
],
"valueAsInt" : 0 ,
"parsingContext" : {
"parent" : {},
"entryCount" : 0 ,
"currentValue" : {},
"typeDesc" : "string" ,
"currentIndex" : 0 ,
"currentName" : "string"
},
"codec" : {
"factory" : {
"characterEscapes" : {
"escapeCodesForAscii" : [
0
]
},
"rootValueSeparator" : "string" ,
"formatName" : "string" ,
"outputDecorator" : {},
"inputDecorator" : {},
"codec" : {}
},
"jsonFactory" : {
"characterEscapes" : {
"escapeCodesForAscii" : [
0
]
},
"rootValueSeparator" : "string" ,
"formatName" : "string" ,
"outputDecorator" : {},
"inputDecorator" : {},
"codec" : {}
}
},
"currentName" : "string" ,
"currentToken" : "NOT_AVAILABLE" ,
"tokenLocation" : {
"byteOffset" : 0 ,
"sourceRef" : {},
"lineNr" : 0 ,
"columnNr" : 0 ,
"charOffset" : 0
},
"featureMask" : 0 ,
"bigIntegerValue" : 0 ,
"formatFeatures" : 0 ,
"decimalValue" : 0 ,
"embeddedObject" : {},
"objectId" : {},
"currentTokenId" : 0 ,
"expectedStartArrayToken" : true ,
"expectedStartObjectToken" : true ,
"lastClearedToken" : "NOT_AVAILABLE"
},
"typeFactory" : {
"classLoader" : {
"parent" : {},
"name" : "string" ,
"unnamedModule" : {
"layer" : {},
"name" : "string" ,
"descriptor" : {
"open" : true ,
"automatic" : true
},
"classLoader" : {},
"annotations" : [
{}
],
"declaredAnnotations" : [
{}
],
"named" : true ,
"packages" : [
"string"
]
},
"registeredAsParallelCapable" : true ,
"definedPackages" : [
{
"name" : "string" ,
"annotations" : [
{}
],
"declaredAnnotations" : [
{}
],
"sealed" : true ,
"specificationTitle" : "string" ,
"specificationVersion" : "string" ,
"specificationVendor" : "string" ,
"implementationTitle" : "string" ,
"implementationVersion" : "string" ,
"implementationVendor" : "string"
}
]
}
},
"deserializationFeatures" : 0 ,
"nodeFactory" : {},
"base64Variant" : {
"name" : "string" ,
"maxLineLength" : 0 ,
"paddingByte" : "string" ,
"paddingChar" : "string"
},
"arrayBuilders" : {
"byteBuilder" : {},
"booleanBuilder" : {},
"doubleBuilder" : {},
"intBuilder" : {},
"floatBuilder" : {},
"shortBuilder" : {},
"longBuilder" : {}
},
"contextualType" : {
"interface" : true ,
"primitive" : true ,
"interfaces" : [
{}
],
"genericSignature" : "string" ,
"final" : true ,
"abstract" : true ,
"contentType" : {},
"bindings" : {
"empty" : true ,
"typeParameters" : [
{}
]
},
"concrete" : true ,
"referencedType" : {},
"enumType" : true ,
"superClass" : {},
"throwable" : true ,
"arrayType" : true ,
"collectionLikeType" : true ,
"contentValueHandler" : {},
"contentTypeHandler" : {},
"containerType" : true ,
"valueHandler" : {},
"typeHandler" : {},
"keyType" : {},
"javaLangObject" : true ,
"mapLikeType" : true ,
"erasedSignature" : "string" ,
"typeName" : "string" ,
"referenceType" : true
}
},
"factory" : {
"characterEscapes" : {
"escapeCodesForAscii" : [
0
]
},
"rootValueSeparator" : "string" ,
"formatName" : "string" ,
"outputDecorator" : {},
"inputDecorator" : {},
"codec" : {
"factory" : {},
"jsonFactory" : {}
}
},
"visibilityChecker" : {},
"typeFactory" : {
"classLoader" : {
"parent" : {},
"name" : "string" ,
"unnamedModule" : {
"layer" : {},
"name" : "string" ,
"descriptor" : {
"open" : true ,
"automatic" : true
},
"classLoader" : {},
"annotations" : [
{}
],
"declaredAnnotations" : [
{}
],
"named" : true ,
"packages" : [
"string"
]
},
"registeredAsParallelCapable" : true ,
"definedPackages" : [
{
"name" : "string" ,
"annotations" : [
{}
],
"declaredAnnotations" : [
{}
],
"sealed" : true ,
"specificationTitle" : "string" ,
"specificationVersion" : "string" ,
"specificationVendor" : "string" ,
"implementationTitle" : "string" ,
"implementationVersion" : "string" ,
"implementationVendor" : "string"
}
]
}
},
"subtypeResolver" : {},
"nodeFactory" : {},
"dateFormat" : {
"calendar" : "2019-08-24T14:15:22Z" ,
"numberFormat" : {
"groupingUsed" : true ,
"parseIntegerOnly" : true ,
"maximumIntegerDigits" : 0 ,
"minimumIntegerDigits" : 0 ,
"maximumFractionDigits" : 0 ,
"minimumFractionDigits" : 0 ,
"currency" : {
"currencyCode" : "string" ,
"defaultFractionDigits" : 0 ,
"numericCode" : 0 ,
"displayName" : "string" ,
"symbol" : "string" ,
"numericCodeAsString" : "string"
},
"roundingMode" : "UP"
},
"lenient" : true ,
"timeZone" : {
"id" : "string" ,
"displayName" : "string" ,
"dstsavings" : 0 ,
"rawOffset" : 0
}
},
"jsonFactory" : {
"characterEscapes" : {
"escapeCodesForAscii" : [
0
]
},
"rootValueSeparator" : "string" ,
"formatName" : "string" ,
"outputDecorator" : {},
"inputDecorator" : {},
"codec" : {
"factory" : {},
"jsonFactory" : {}
}
}
}
Properties
Objective
{
"id" : "497f6eca-6276-4993-bfeb-53cbbbba6f08" ,
"name" : "string" ,
"category" : "NETWORKING" ,
"campaignPhaseId" : "ec1a6f36-e0b2-4e93-85b6-db68c75b7edc" ,
"scoreWeight" : 0 ,
"sequence" : 0
}
Properties
Name
Type
Required
Restrictions
Description
id
string(uuid)
false
none
none
name
string
false
none
none
category
string
false
none
none
campaignPhaseId
string(uuid)
false
none
none
scoreWeight
integer(int32)
false
none
none
sequence
integer(int32)
false
none
none
Enumerated Values
Property
Value
category
NETWORKING
category
CLIENT_SIDE
category
WEB
ObjectiveAttacks
{
"successfulAttackReportCount" : 0 ,
"failedAttackReportCount" : 0
}
Properties
Name
Type
Required
Restrictions
Description
successfulAttackReportCount
integer(int32)
false
none
none
failedAttackReportCount
integer(int32)
false
none
none
ObjectiveDefinition
{
"name" : "string" ,
"category" : "NETWORKING" ,
"campaignPhaseName" : "string" ,
"scoreWeight" : 0 ,
"sequence" : 0
}
Properties
Name
Type
Required
Restrictions
Description
name
string
false
none
none
category
string
false
none
none
campaignPhaseName
string
false
none
none
scoreWeight
integer(int32)
false
none
none
sequence
integer(int32)
false
none
none
Enumerated Values
Property
Value
category
NETWORKING
category
CLIENT_SIDE
category
WEB
ObserverSettingsDTO
{
"key" : "string" ,
"enabledViews" : [
"CAMPAIGN_LIVE"
],
"exerciseId" : "71ba10b8-c6bd-49fd-9742-f8dbc8ccdb47"
}
Properties
Name
Type
Required
Restrictions
Description
key
string
false
none
none
enabledViews
[string]
false
none
none
exerciseId
string(uuid)
false
none
none
OutputDecorator
Properties
None
OverviewCategoryDTO
{
"category" : "string" ,
"tasks" : [
{
"status" : "ABANDONED" ,
"title" : "string" ,
"score" : 0 ,
"usedHints" : 0 ,
"maxHints" : 0 ,
"timeSpentMs" : 0
}
]
}
Properties
Name
Type
Required
Restrictions
Description
category
string
false
none
none
tasks
[OverviewTaskDTO ]
false
none
none
OverviewTaskDTO
{
"status" : "ABANDONED" ,
"title" : "string" ,
"score" : 0 ,
"usedHints" : 0 ,
"maxHints" : 0 ,
"timeSpentMs" : 0
}
Properties
Name
Type
Required
Restrictions
Description
status
string
false
none
none
title
string
false
none
none
score
integer(int32)
false
none
none
usedHints
integer(int32)
false
none
none
maxHints
integer(int32)
false
none
none
timeSpentMs
integer(int64)
false
none
none
Enumerated Values
Property
Value
status
ABANDONED
status
IN_PROGRESS
status
NOT_STARTED
status
DEPENDENCIES_UNSOLVED
status
VALIDATING
status
SOLVED
status
LOCKED
Package
{
"name" : "string" ,
"annotations" : [
{}
],
"declaredAnnotations" : [
{}
],
"sealed" : true ,
"specificationTitle" : "string" ,
"specificationVersion" : "string" ,
"specificationVendor" : "string" ,
"implementationTitle" : "string" ,
"implementationVersion" : "string" ,
"implementationVendor" : "string"
}
Properties
Name
Type
Required
Restrictions
Description
name
string
false
none
none
annotations
[Annotation ]
false
none
none
declaredAnnotations
[Annotation ]
false
none
none
sealed
boolean
false
none
none
specificationTitle
string
false
none
none
specificationVersion
string
false
none
none
specificationVendor
string
false
none
none
implementationTitle
string
false
none
none
implementationVersion
string
false
none
none
implementationVendor
string
false
none
none
PodiumTeamDTO
{
"teamId" : "a4ede8ba-7c0a-4485-8763-cbd9b282fbec" ,
"score" : 0 ,
"tasksOverview" : {
"teamName" : "string" ,
"position" : 0 ,
"categories" : [
{
"category" : "string" ,
"tasks" : [
{
"status" : "ABANDONED" ,
"title" : "string" ,
"score" : 0 ,
"usedHints" : 0 ,
"maxHints" : 0 ,
"timeSpentMs" : 0
}
]
}
]
}
}
Properties
Name
Type
Required
Restrictions
Description
teamId
string(uuid)
false
none
none
score
number(double)
false
none
none
tasksOverview
CTFTeamOverviewDTO
false
none
none
PreferencesDTO
{
"defaultExerciseId" : "string" ,
"defaultTeamId" : "string" ,
"dateFormat" : "string" ,
"defaultListSize" : 0 ,
"isLightTheme" : true
}
Properties
Name
Type
Required
Restrictions
Description
defaultExerciseId
string
false
none
none
defaultTeamId
string
false
none
none
dateFormat
string
false
none
none
defaultListSize
integer(int32)
false
none
none
isLightTheme
boolean
false
read-only
none
PrettyPrinter
Properties
None
ProductKeyDetailsDTO
{
"key" : "string" ,
"licensedTo" : "string" ,
"validUntil" : "string" ,
"numberOfUsers" : 0
}
Properties
Name
Type
Required
Restrictions
Description
key
string
false
none
none
licensedTo
string
false
none
none
validUntil
string
false
none
none
numberOfUsers
integer(int32)
false
none
none
PropertyName
{
"empty" : true ,
"simpleName" : "string" ,
"namespace" : "string"
}
Properties
Name
Type
Required
Restrictions
Description
empty
boolean
false
none
none
simpleName
string
false
none
none
namespace
string
false
none
none
PropertyNamingStrategy
Properties
None
QueueResponse
{
"position" : 0 ,
"hasSlotReserved" : true ,
"estimatedWaitTime" : {
"seconds" : 0 ,
"nano" : 0 ,
"units" : [
{
"duration" : {},
"durationEstimated" : true ,
"dateBased" : true ,
"timeBased" : true
}
],
"negative" : true ,
"zero" : true
}
}
Properties
Name
Type
Required
Restrictions
Description
position
integer(int32)
false
none
none
hasSlotReserved
boolean
false
none
none
estimatedWaitTime
Duration
false
none
none
ReportFilteringResult
{
"totalCount" : 0 ,
"filteredCount" : 0 ,
"reports" : [
{
"timestamp" : 0 ,
"status" : "PENDING_CONFIRMATION" ,
"feedback" : "string" ,
"whiteTeamMember" : "string" ,
"reportId" : "836df459-dc40-4aa1-972a-6eb0a864dff9" ,
"teamId" : "a4ede8ba-7c0a-4485-8763-cbd9b282fbec" ,
"teamName" : "string"
}
]
}
Properties
Name
Type
Required
Restrictions
Description
totalCount
integer(int32)
false
none
none
filteredCount
integer(int32)
false
none
none
reports
[ReportsWidgetData ]
false
none
none
{
"totalCount" : 0 ,
"filteredCount" : 0 ,
"reports" : [
{
"reportId" : "836df459-dc40-4aa1-972a-6eb0a864dff9" ,
"teamId" : "a4ede8ba-7c0a-4485-8763-cbd9b282fbec" ,
"teamName" : "string" ,
"status" : "PENDING_CONFIRMATION" ,
"whiteTeamMember" : "string" ,
"timestamp" : 0 ,
"feedback" : "string" ,
"objectiveContainerId" : "19719b61-3636-4c2c-9f9e-15e15bf34e46" ,
"objectiveContainerName" : "string" ,
"objectiveId" : "1ac8be30-2b34-409a-be6d-40652b73c978" ,
"objectiveName" : "string" ,
"campaignPhaseName" : "string" ,
"objectiveStatus" : "NOT_COMPROMISED" ,
"objectiveReportsCount" : 0
}
]
}
Properties
Name
Type
Required
Restrictions
Description
totalCount
integer(int32)
false
none
none
filteredCount
integer(int32)
false
none
none
reports
[AttackReportsWidgetData ]
false
none
none
{
"totalCount" : 0 ,
"filteredCount" : 0 ,
"reports" : [
{
"reportId" : "836df459-dc40-4aa1-972a-6eb0a864dff9" ,
"teamId" : "a4ede8ba-7c0a-4485-8763-cbd9b282fbec" ,
"teamName" : "string" ,
"status" : "PENDING_CONFIRMATION" ,
"whiteTeamMember" : "string" ,
"timestamp" : 0 ,
"feedback" : "string" ,
"targetId" : "cbca1126-180e-4334-9df8-cf82289d378b" ,
"targetName" : "string" ,
"targetCheckId" : "e6bd6631-9fae-481a-af78-b92fff1729e4" ,
"targetCheckName" : "string" ,
"incidentType" : "ONLINE" ,
"blueTeamMember" : "string" ,
"details" : "string"
}
]
}
Properties
Name
Type
Required
Restrictions
Description
totalCount
integer(int32)
false
none
none
filteredCount
integer(int32)
false
none
none
reports
[IncidentReportsWidgetData ]
false
none
none
{
"totalCount" : 0 ,
"filteredCount" : 0 ,
"reports" : [
{
"reportId" : "836df459-dc40-4aa1-972a-6eb0a864dff9" ,
"teamId" : "a4ede8ba-7c0a-4485-8763-cbd9b282fbec" ,
"teamName" : "string" ,
"status" : "PENDING_CONFIRMATION" ,
"timestamp" : 0 ,
"whiteTeamMember" : "string" ,
"feedback" : "string" ,
"blueTeamMember" : "string" ,
"grade" : 0
}
]
}
Properties
Name
Type
Required
Restrictions
Description
totalCount
integer(int32)
false
none
none
filteredCount
integer(int32)
false
none
none
reports
[SituationReportsWidgetData ]
false
none
none
{
"totalCount" : 0 ,
"filteredCount" : 0 ,
"reports" : [
{
"reportId" : "836df459-dc40-4aa1-972a-6eb0a864dff9" ,
"teamId" : "a4ede8ba-7c0a-4485-8763-cbd9b282fbec" ,
"teamName" : "string" ,
"timestamp" : 0 ,
"status" : "PENDING_CONFIRMATION" ,
"whiteTeamMember" : "string" ,
"feedback" : "string" ,
"taskId" : "e6e9d88a-9b63-468a-aec3-b7a11de27af8" ,
"title" : "string" ,
"category" : "string" ,
"createdBy" : "string" ,
"validatedOn" : 0 ,
"initialScore" : 0 ,
"score" : 0 ,
"scorePercentage" : 0
}
]
}
Properties
Name
Type
Required
Restrictions
Description
totalCount
integer(int32)
false
none
none
filteredCount
integer(int32)
false
none
none
reports
[TaskReportsWidgetData ]
false
none
none
ReportingStatusObjective
{
"type" : "TARGET_CHECK" ,
"name" : "string" ,
"category" : "NETWORKING" ,
"teams" : [
{
"teamId" : "a4ede8ba-7c0a-4485-8763-cbd9b282fbec" ,
"teamName" : "string" ,
"objectiveContainerId" : "19719b61-3636-4c2c-9f9e-15e15bf34e46" ,
"objectiveStatus" : "NOT_STARTED" ,
"objectiveId" : "1ac8be30-2b34-409a-be6d-40652b73c978" ,
"incidentReports" : [
{
"id" : "497f6eca-6276-4993-bfeb-53cbbbba6f08" ,
"teamId" : "a4ede8ba-7c0a-4485-8763-cbd9b282fbec" ,
"exerciseId" : "71ba10b8-c6bd-49fd-9742-f8dbc8ccdb47" ,
"username" : "string" ,
"timestamp" : 0 ,
"networkSegmentId" : "da59500c-a661-45ab-94a0-11930236ec3b" ,
"targetId" : "cbca1126-180e-4334-9df8-cf82289d378b" ,
"targetCheckId" : "e6bd6631-9fae-481a-af78-b92fff1729e4" ,
"incidentType" : "ONLINE" ,
"details" : "string"
}
],
"incidentReportCount" : 0 ,
"objectiveAttacks" : {
"successfulAttackReportCount" : 0 ,
"failedAttackReportCount" : 0
}
}
]
}
Properties
Name
Type
Required
Restrictions
Description
type
string
false
none
none
name
string
false
none
none
category
string
false
none
none
teams
[ReportingStatusObjectiveTeam ]
false
none
none
Enumerated Values
Property
Value
type
TARGET_CHECK
type
TARGET_GROUP
category
NETWORKING
category
CLIENT_SIDE
category
WEB
ReportingStatusObjectiveTeam
{
"teamId" : "a4ede8ba-7c0a-4485-8763-cbd9b282fbec" ,
"teamName" : "string" ,
"objectiveContainerId" : "19719b61-3636-4c2c-9f9e-15e15bf34e46" ,
"objectiveStatus" : "NOT_STARTED" ,
"objectiveId" : "1ac8be30-2b34-409a-be6d-40652b73c978" ,
"incidentReports" : [
{
"id" : "497f6eca-6276-4993-bfeb-53cbbbba6f08" ,
"teamId" : "a4ede8ba-7c0a-4485-8763-cbd9b282fbec" ,
"exerciseId" : "71ba10b8-c6bd-49fd-9742-f8dbc8ccdb47" ,
"username" : "string" ,
"timestamp" : 0 ,
"networkSegmentId" : "da59500c-a661-45ab-94a0-11930236ec3b" ,
"targetId" : "cbca1126-180e-4334-9df8-cf82289d378b" ,
"targetCheckId" : "e6bd6631-9fae-481a-af78-b92fff1729e4" ,
"incidentType" : "ONLINE" ,
"details" : "string"
}
],
"incidentReportCount" : 0 ,
"objectiveAttacks" : {
"successfulAttackReportCount" : 0 ,
"failedAttackReportCount" : 0
}
}
Properties
Name
Type
Required
Restrictions
Description
teamId
string(uuid)
false
none
none
teamName
string
false
none
none
objectiveContainerId
string(uuid)
false
none
none
objectiveStatus
string
false
none
none
objectiveId
string(uuid)
false
none
none
incidentReports
[IncidentReport ]
false
none
none
incidentReportCount
integer(int32)
false
none
none
objectiveAttacks
ObjectiveAttacks
false
none
none
Enumerated Values
Property
Value
objectiveStatus
NOT_STARTED
objectiveStatus
SUCCESSFUL
objectiveStatus
FAILED
objectiveStatus
IN_PROGRESS
{
"campaignPhaseId" : "ec1a6f36-e0b2-4e93-85b6-db68c75b7edc" ,
"campaignPhaseName" : "string" ,
"objectives" : [
{
"type" : "TARGET_CHECK" ,
"name" : "string" ,
"category" : "NETWORKING" ,
"teams" : [
{
"teamId" : "a4ede8ba-7c0a-4485-8763-cbd9b282fbec" ,
"teamName" : "string" ,
"objectiveContainerId" : "19719b61-3636-4c2c-9f9e-15e15bf34e46" ,
"objectiveStatus" : "NOT_STARTED" ,
"objectiveId" : "1ac8be30-2b34-409a-be6d-40652b73c978" ,
"incidentReports" : [
{
"id" : "497f6eca-6276-4993-bfeb-53cbbbba6f08" ,
"teamId" : "a4ede8ba-7c0a-4485-8763-cbd9b282fbec" ,
"exerciseId" : "71ba10b8-c6bd-49fd-9742-f8dbc8ccdb47" ,
"username" : "string" ,
"timestamp" : 0 ,
"networkSegmentId" : "da59500c-a661-45ab-94a0-11930236ec3b" ,
"targetId" : "cbca1126-180e-4334-9df8-cf82289d378b" ,
"targetCheckId" : "e6bd6631-9fae-481a-af78-b92fff1729e4" ,
"incidentType" : "ONLINE" ,
"details" : "string"
}
],
"incidentReportCount" : 0 ,
"objectiveAttacks" : {
"successfulAttackReportCount" : 0 ,
"failedAttackReportCount" : 0
}
}
]
}
]
}
Properties
Name
Type
Required
Restrictions
Description
campaignPhaseId
string(uuid)
false
none
none
campaignPhaseName
string
false
none
none
objectives
[ReportingStatusObjective ]
false
none
none
{
"timestamp" : 0 ,
"status" : "PENDING_CONFIRMATION" ,
"feedback" : "string" ,
"whiteTeamMember" : "string" ,
"reportId" : "836df459-dc40-4aa1-972a-6eb0a864dff9" ,
"teamId" : "a4ede8ba-7c0a-4485-8763-cbd9b282fbec" ,
"teamName" : "string"
}
Properties
Name
Type
Required
Restrictions
Description
timestamp
integer(int64)
false
none
none
status
string
false
none
none
feedback
string
false
none
none
whiteTeamMember
string
false
none
none
reportId
string(uuid)
false
none
none
teamId
string(uuid)
false
none
none
teamName
string
false
none
none
Enumerated Values
Property
Value
status
PENDING_CONFIRMATION
status
CONFIRMED
status
DENIED
RequiredTask
{
"id" : "497f6eca-6276-4993-bfeb-53cbbbba6f08" ,
"title" : "string"
}
Properties
Name
Type
Required
Restrictions
Description
id
string(uuid)
false
none
none
title
string
false
none
none
RestConfiguration
{
"integrationType" : "REST" ,
"baseUrl" : "string"
}
Properties
allOf - discriminator: IntegrationConfiguration.integrationType
and
Name
Type
Required
Restrictions
Description
anonymous
object
false
none
none
» baseUrl
string
false
none
none
RoleListItem
{
"code" : "string" ,
"description" : "string" ,
"domains" : [
"GN_EXERCISE"
]
}
Properties
Name
Type
Required
Restrictions
Description
code
string
false
none
none
description
string
false
none
none
domains
[string]
false
none
none
ScoreBreakdown
{
"name" : "TOTAL" ,
"value" : 0
}
Properties
Name
Type
Required
Restrictions
Description
name
string
false
none
none
value
integer(int32)
false
none
none
Enumerated Values
Property
Value
name
TOTAL
name
SPECIAL
name
ATTACK_REPORTS
name
AVAILABILITY
name
INCIDENT_REPORTS
name
SITUATION_REPORTS
name
RESTORE_FROM_BACKUP
name
USE_HINT
name
ABANDON_TASK
name
SOLVE_TASK
ScoreEvent
{
"type" : "ANSWER" ,
"taskCategory" : "string" ,
"source" : "TASK_EVENT" ,
"eventScore" : 0 ,
"totalScore" : 0 ,
"timestamp" : 0 ,
"taskName" : "string"
}
Properties
Name
Type
Required
Restrictions
Description
type
string
false
none
none
taskCategory
string
false
none
none
source
string
false
none
none
eventScore
integer(int32)
false
none
none
totalScore
integer(int32)
false
none
none
timestamp
integer(int64)
false
none
none
taskName
string
false
none
none
Enumerated Values
Property
Value
type
ANSWER
type
ASSIGNMENT
type
CONFIRMATION
type
UNASSIGNMENT
type
HINT_USAGE
type
GMA_VALIDATION
type
LOCK
type
UNLOCK
source
TASK_EVENT
source
SPECIAL
ScoreReport
{
"scoreByCategory" : {
"property1" : 0 ,
"property2" : 0
},
"scoreEvents" : [
{
"type" : "ANSWER" ,
"taskCategory" : "string" ,
"source" : "TASK_EVENT" ,
"eventScore" : 0 ,
"totalScore" : 0 ,
"timestamp" : 0 ,
"taskName" : "string"
}
],
"totalScore" : 0
}
Properties
Name
Type
Required
Restrictions
Description
scoreByCategory
object
false
none
none
» additionalProperties
integer(int32)
false
none
none
scoreEvents
[ScoreEvent ]
false
none
none
totalScore
integer(int32)
false
none
none
ScoringLogMessageData
{
"id" : "497f6eca-6276-4993-bfeb-53cbbbba6f08" ,
"category" : "TOTAL" ,
"teamId" : "a4ede8ba-7c0a-4485-8763-cbd9b282fbec" ,
"teamName" : "string" ,
"score" : 0 ,
"timestamp" : 0
}
Properties
Name
Type
Required
Restrictions
Description
id
string(uuid)
false
none
none
category
string
false
none
none
teamId
string(uuid)
false
none
none
teamName
string
false
none
none
score
number(double)
false
none
none
timestamp
integer(int64)
false
none
none
Enumerated Values
Property
Value
category
TOTAL
category
SPECIAL
category
ATTACK_REPORTS
category
AVAILABILITY
category
INCIDENT_REPORTS
category
SITUATION_REPORTS
category
RESTORE_FROM_BACKUP
category
USE_HINT
category
ABANDON_TASK
category
SOLVE_TASK
ScoringLogSpecialMessageDetailsDTO
{
"id" : "497f6eca-6276-4993-bfeb-53cbbbba6f08" ,
"details" : "string"
}
Properties
Name
Type
Required
Restrictions
Description
id
string(uuid)
false
none
none
details
string
false
none
none
{
"meta" : {
"offset" : 0 ,
"limit" : 0 ,
"totalCount" : 0 ,
"timestamp" : 0
},
"data" : [
{
"id" : "497f6eca-6276-4993-bfeb-53cbbbba6f08" ,
"category" : "TOTAL" ,
"teamId" : "a4ede8ba-7c0a-4485-8763-cbd9b282fbec" ,
"teamName" : "string" ,
"score" : 0 ,
"timestamp" : 0
}
]
}
Properties
ScriptConfiguration
{
"script" : "string" ,
"args" : [
"string"
]
}
Properties
Name
Type
Required
Restrictions
Description
script
string
false
none
none
args
[string]
false
none
none
{
"networkSegmentId" : "da59500c-a661-45ab-94a0-11930236ec3b" ,
"networkSegmentName" : "string" ,
"states" : {
"good" : 0 ,
"compromised" : 0 ,
"notAvailable" : 0
}
}
Properties
Name
Type
Required
Restrictions
Description
networkSegmentId
string(uuid)
false
none
none
networkSegmentName
string
false
none
none
states
TargetCheckStates
false
none
none
SendGridConfiguration
{
"integrationType" : "REST" ,
"from" : "string" ,
"to" : "string" ,
"toMany" : [
"string"
]
}
Properties
allOf - discriminator: IntegrationConfiguration.integrationType
and
Name
Type
Required
Restrictions
Description
anonymous
object
false
none
none
» from
string
false
none
none
» to
string
false
none
none
» toMany
[string]
false
none
none
SerializationConfig
{
"defaultPropertyInclusion" : {
"valueInclusion" : "ALWAYS" ,
"contentInclusion" : "ALWAYS"
},
"annotationIntrospector" : {},
"defaultPrettyPrinter" : {},
"serializationInclusion" : "ALWAYS" ,
"serializationFeatures" : 0 ,
"filterProvider" : {},
"defaultVisibilityChecker" : {},
"attributes" : {},
"rootName" : "string" ,
"subtypeResolver" : {},
"fullRootName" : {
"empty" : true ,
"simpleName" : "string" ,
"namespace" : "string"
},
"handlerInstantiator" : {},
"propertyNamingStrategy" : {},
"timeZone" : {
"id" : "string" ,
"displayName" : "string" ,
"dstsavings" : 0 ,
"rawOffset" : 0
},
"locale" : {
"language" : "string" ,
"script" : "string" ,
"country" : "string" ,
"variant" : "string" ,
"extensionKeys" : [
"string"
],
"unicodeLocaleAttributes" : [
"string"
],
"unicodeLocaleKeys" : [
"string"
],
"iso3Language" : "string" ,
"iso3Country" : "string" ,
"displayLanguage" : "string" ,
"displayScript" : "string" ,
"displayCountry" : "string" ,
"displayVariant" : "string" ,
"displayName" : "string"
},
"classIntrospector" : {},
"typeFactory" : {
"classLoader" : {
"parent" : {},
"name" : "string" ,
"unnamedModule" : {
"layer" : {},
"name" : "string" ,
"descriptor" : {
"open" : true ,
"automatic" : true
},
"classLoader" : {},
"annotations" : [
{}
],
"declaredAnnotations" : [
{}
],
"named" : true ,
"packages" : [
"string"
]
},
"registeredAsParallelCapable" : true ,
"definedPackages" : [
{
"name" : "string" ,
"annotations" : [
{}
],
"declaredAnnotations" : [
{}
],
"sealed" : true ,
"specificationTitle" : "string" ,
"specificationVersion" : "string" ,
"specificationVendor" : "string" ,
"implementationTitle" : "string" ,
"implementationVersion" : "string" ,
"implementationVendor" : "string"
}
]
}
},
"annotationProcessingEnabled" : true ,
"dateFormat" : {
"calendar" : "2019-08-24T14:15:22Z" ,
"numberFormat" : {
"groupingUsed" : true ,
"parseIntegerOnly" : true ,
"maximumIntegerDigits" : 0 ,
"minimumIntegerDigits" : 0 ,
"maximumFractionDigits" : 0 ,
"minimumFractionDigits" : 0 ,
"currency" : {
"currencyCode" : "string" ,
"defaultFractionDigits" : 0 ,
"numericCode" : 0 ,
"displayName" : "string" ,
"symbol" : "string" ,
"numericCodeAsString" : "string"
},
"roundingMode" : "UP"
},
"lenient" : true ,
"timeZone" : {
"id" : "string" ,
"displayName" : "string" ,
"dstsavings" : 0 ,
"rawOffset" : 0
}
},
"base64Variant" : {
"name" : "string" ,
"maxLineLength" : 0 ,
"paddingByte" : "string" ,
"paddingChar" : "string"
}
}
Properties
Enumerated Values
Property
Value
serializationInclusion
ALWAYS
serializationInclusion
NON_NULL
serializationInclusion
NON_ABSENT
serializationInclusion
NON_EMPTY
serializationInclusion
NON_DEFAULT
serializationInclusion
USE_DEFAULTS
SerializerFactory
Properties
None
SerializerProvider
{
"defaultNullValueSerializer" : {
"delegatee" : {},
"unwrappingSerializer" : true
},
"annotationIntrospector" : {},
"defaultNullKeySerializer" : {
"delegatee" : {},
"unwrappingSerializer" : true
},
"timeZone" : {
"id" : "string" ,
"displayName" : "string" ,
"dstsavings" : 0 ,
"rawOffset" : 0
},
"locale" : {
"language" : "string" ,
"script" : "string" ,
"country" : "string" ,
"variant" : "string" ,
"extensionKeys" : [
"string"
],
"unicodeLocaleAttributes" : [
"string"
],
"unicodeLocaleKeys" : [
"string"
],
"iso3Language" : "string" ,
"iso3Country" : "string" ,
"displayLanguage" : "string" ,
"displayScript" : "string" ,
"displayCountry" : "string" ,
"displayVariant" : "string" ,
"displayName" : "string"
},
"config" : {
"defaultPropertyInclusion" : {
"valueInclusion" : "ALWAYS" ,
"contentInclusion" : "ALWAYS"
},
"annotationIntrospector" : {},
"defaultPrettyPrinter" : {},
"serializationInclusion" : "ALWAYS" ,
"serializationFeatures" : 0 ,
"filterProvider" : {},
"defaultVisibilityChecker" : {},
"attributes" : {},
"rootName" : "string" ,
"subtypeResolver" : {},
"fullRootName" : {
"empty" : true ,
"simpleName" : "string" ,
"namespace" : "string"
},
"handlerInstantiator" : {},
"propertyNamingStrategy" : {},
"timeZone" : {
"id" : "string" ,
"displayName" : "string" ,
"dstsavings" : 0 ,
"rawOffset" : 0
},
"locale" : {
"language" : "string" ,
"script" : "string" ,
"country" : "string" ,
"variant" : "string" ,
"extensionKeys" : [
"string"
],
"unicodeLocaleAttributes" : [
"string"
],
"unicodeLocaleKeys" : [
"string"
],
"iso3Language" : "string" ,
"iso3Country" : "string" ,
"displayLanguage" : "string" ,
"displayScript" : "string" ,
"displayCountry" : "string" ,
"displayVariant" : "string" ,
"displayName" : "string"
},
"classIntrospector" : {},
"typeFactory" : {
"classLoader" : {
"parent" : {},
"name" : "string" ,
"unnamedModule" : {
"layer" : {},
"name" : "string" ,
"descriptor" : {
"open" : true ,
"automatic" : true
},
"classLoader" : {},
"annotations" : [
{}
],
"declaredAnnotations" : [
{}
],
"named" : true ,
"packages" : [
"string"
]
},
"registeredAsParallelCapable" : true ,
"definedPackages" : [
{
"name" : "string" ,
"annotations" : [
{}
],
"declaredAnnotations" : [
{}
],
"sealed" : true ,
"specificationTitle" : "string" ,
"specificationVersion" : "string" ,
"specificationVendor" : "string" ,
"implementationTitle" : "string" ,
"implementationVersion" : "string" ,
"implementationVendor" : "string"
}
]
}
},
"annotationProcessingEnabled" : true ,
"dateFormat" : {
"calendar" : "2019-08-24T14:15:22Z" ,
"numberFormat" : {
"groupingUsed" : true ,
"parseIntegerOnly" : true ,
"maximumIntegerDigits" : 0 ,
"minimumIntegerDigits" : 0 ,
"maximumFractionDigits" : 0 ,
"minimumFractionDigits" : 0 ,
"currency" : {
"currencyCode" : "string" ,
"defaultFractionDigits" : 0 ,
"numericCode" : 0 ,
"displayName" : "string" ,
"symbol" : "string" ,
"numericCodeAsString" : "string"
},
"roundingMode" : "UP"
},
"lenient" : true ,
"timeZone" : {
"id" : "string" ,
"displayName" : "string" ,
"dstsavings" : 0 ,
"rawOffset" : 0
}
},
"base64Variant" : {
"name" : "string" ,
"maxLineLength" : 0 ,
"paddingByte" : "string" ,
"paddingChar" : "string"
}
},
"typeFactory" : {
"classLoader" : {
"parent" : {},
"name" : "string" ,
"unnamedModule" : {
"layer" : {},
"name" : "string" ,
"descriptor" : {
"open" : true ,
"automatic" : true
},
"classLoader" : {},
"annotations" : [
{}
],
"declaredAnnotations" : [
{}
],
"named" : true ,
"packages" : [
"string"
]
},
"registeredAsParallelCapable" : true ,
"definedPackages" : [
{
"name" : "string" ,
"annotations" : [
{}
],
"declaredAnnotations" : [
{}
],
"sealed" : true ,
"specificationTitle" : "string" ,
"specificationVersion" : "string" ,
"specificationVendor" : "string" ,
"implementationTitle" : "string" ,
"implementationVersion" : "string" ,
"implementationVendor" : "string"
}
]
}
},
"generator" : {
"characterEscapes" : {
"escapeCodesForAscii" : [
0
]
},
"schema" : {
"schemaType" : "string"
},
"closed" : true ,
"currentValue" : {},
"codec" : {
"factory" : {
"characterEscapes" : {
"escapeCodesForAscii" : [
0
]
},
"rootValueSeparator" : "string" ,
"formatName" : "string" ,
"outputDecorator" : {},
"inputDecorator" : {},
"codec" : {}
},
"jsonFactory" : {
"characterEscapes" : {
"escapeCodesForAscii" : [
0
]
},
"rootValueSeparator" : "string" ,
"formatName" : "string" ,
"outputDecorator" : {},
"inputDecorator" : {},
"codec" : {}
}
},
"prettyPrinter" : {},
"featureMask" : 0 ,
"formatFeatures" : 0 ,
"outputTarget" : {},
"outputBuffered" : 0 ,
"outputContext" : {
"parent" : {},
"entryCount" : 0 ,
"currentValue" : {},
"typeDesc" : "string" ,
"currentIndex" : 0 ,
"currentName" : "string"
},
"highestEscapedChar" : 0
},
"filterProvider" : {}
}
Properties
SessionTokenAuthentication
{
"type" : "SESSION_TOKEN" ,
"url" : "string" ,
"username" : "string" ,
"password" : "string"
}
Properties
allOf - discriminator: IntegrationAuthentication.type
and
Name
Type
Required
Restrictions
Description
anonymous
object
false
none
none
» url
string
false
none
none
» username
string
false
none
none
» password
string
false
none
none
SettingsDTO
{
"gamenetEnabled" : true ,
"pentestEnabled" : true ,
"vulnerabilityScanEnabled" : true ,
"ldapEnabled" : true ,
"observerEnabled" : true ,
"vlmEnabled" : true ,
"gamenetSettings" : {
"soundOnTeamChangeEnabled" : true ,
"selectedSoundId" : "string" ,
"ctfPodiumFirstPlaceSoundEnabled" : true ,
"ctfPodiumFirstPlaceSoundId" : "string" ,
"ctfPodiumSecondThirdPlaceSoundEnabled" : true ,
"ctfPodiumSecondThirdPlaceSoundId" : "string" ,
"exerciseRefreshInterval" : 0 ,
"scoringTimelineWidgetRefreshInterval" : 0
},
"ldapSettings" : {
"principal" : "string" ,
"searchBase" : "string" ,
"principalSuffix" : "string" ,
"urls" : [
"string"
],
"groupMappings" : [
{
"role" : "string" ,
"distinguishedName" : "string"
}
],
"useSavedPassword" : true
},
"vlmSettings" : {
"url" : "string" ,
"serviceKey" : "string" ,
"localWebConsoleProxyEnabled" : true
},
"observerSettings" : {
"key" : "string" ,
"enabledViews" : [
"CAMPAIGN_LIVE"
],
"exerciseId" : "71ba10b8-c6bd-49fd-9742-f8dbc8ccdb47"
},
"apiTokens" : [
{
"name" : "string" ,
"value" : "string" ,
"timestamp" : 0 ,
"signingKey" : {
"value" : "string" ,
"timestamp" : 0
}
}
],
"widgetRefreshInterval" : 0 ,
"timestamp" : 0 ,
"applicationUrl" : "string" ,
"customLogoImageId" : "string" ,
"isLightTheme" : true
}
Properties
Name
Type
Required
Restrictions
Description
gamenetEnabled
boolean
false
none
none
pentestEnabled
boolean
false
none
none
vulnerabilityScanEnabled
boolean
false
none
none
ldapEnabled
boolean
false
none
none
observerEnabled
boolean
false
none
none
vlmEnabled
boolean
false
none
none
gamenetSettings
GamenetSettingsDTO
false
none
none
ldapSettings
LdapSettingsDTO
false
none
none
vlmSettings
VlmSettingsDTO
false
none
none
observerSettings
ObserverSettingsDTO
false
none
none
apiTokens
[ApiToken ]
false
none
none
widgetRefreshInterval
integer(int64)
false
none
none
timestamp
integer(int64)
false
none
none
applicationUrl
string
false
none
none
customLogoImageId
string
false
none
none
isLightTheme
boolean
false
read-only
none
ShortBuilder
Properties
None
SigningKey
{
"value" : "string" ,
"timestamp" : 0
}
Properties
Name
Type
Required
Restrictions
Description
value
string
false
none
none
timestamp
integer(int64)
false
none
none
SituationReport
{
"id" : "497f6eca-6276-4993-bfeb-53cbbbba6f08" ,
"teamId" : "a4ede8ba-7c0a-4485-8763-cbd9b282fbec" ,
"exerciseId" : "71ba10b8-c6bd-49fd-9742-f8dbc8ccdb47" ,
"username" : "string" ,
"timestamp" : 0 ,
"reportText" : "string"
}
Properties
Name
Type
Required
Restrictions
Description
id
string(uuid)
false
none
none
teamId
string(uuid)
false
none
none
exerciseId
string(uuid)
false
none
none
username
string
false
none
none
timestamp
integer(int64)
false
none
none
reportText
string
false
none
none
{
"reportId" : "836df459-dc40-4aa1-972a-6eb0a864dff9" ,
"teamId" : "a4ede8ba-7c0a-4485-8763-cbd9b282fbec" ,
"teamName" : "string" ,
"status" : "PENDING_CONFIRMATION" ,
"timestamp" : 0 ,
"whiteTeamMember" : "string" ,
"feedback" : "string" ,
"blueTeamMember" : "string" ,
"grade" : 0
}
Properties
Name
Type
Required
Restrictions
Description
reportId
string(uuid)
false
none
none
teamId
string(uuid)
false
none
none
teamName
string
false
none
none
status
string
false
none
none
timestamp
integer(int64)
false
none
none
whiteTeamMember
string
false
none
none
feedback
string
false
none
none
blueTeamMember
string
false
none
none
grade
integer(int32)
false
none
none
Enumerated Values
Property
Value
status
PENDING_CONFIRMATION
status
CONFIRMED
status
DENIED
SlackConfiguration
{
"integrationType" : "REST" ,
"webhookUrl" : "string"
}
Properties
allOf - discriminator: IntegrationConfiguration.integrationType
and
Name
Type
Required
Restrictions
Description
anonymous
object
false
none
none
» webhookUrl
string
false
none
none
SpecialScoringMessage
{
"id" : "497f6eca-6276-4993-bfeb-53cbbbba6f08" ,
"exerciseId" : "71ba10b8-c6bd-49fd-9742-f8dbc8ccdb47" ,
"teamId" : "a4ede8ba-7c0a-4485-8763-cbd9b282fbec" ,
"networkSegmentId" : "da59500c-a661-45ab-94a0-11930236ec3b" ,
"description" : "string" ,
"username" : "string" ,
"score" : 0 ,
"timestamp" : 0 ,
"created" : 0 ,
"scoreType" : "TOTAL"
}
Properties
Name
Type
Required
Restrictions
Description
id
string(uuid)
false
none
none
exerciseId
string(uuid)
false
none
none
teamId
string(uuid)
false
none
none
networkSegmentId
string(uuid)
false
none
none
description
string
false
none
none
username
string
false
none
none
score
number(double)
false
none
none
timestamp
integer(int64)
false
none
none
created
integer(int64)
false
none
none
scoreType
string
false
none
none
Enumerated Values
Property
Value
scoreType
TOTAL
scoreType
SPECIAL
scoreType
ATTACK_REPORTS
scoreType
AVAILABILITY
scoreType
INCIDENT_REPORTS
scoreType
SITUATION_REPORTS
scoreType
RESTORE_FROM_BACKUP
scoreType
USE_HINT
scoreType
ABANDON_TASK
scoreType
SOLVE_TASK
Sse
Properties
None
SseBroadcaster
Properties
None
StartexAndEndex
{
"startex" : 0 ,
"endex" : 0
}
Properties
Name
Type
Required
Restrictions
Description
startex
integer(int64)
false
none
none
endex
integer(int64)
false
none
none
SubtypeResolver
Properties
None
Target
{
"id" : "497f6eca-6276-4993-bfeb-53cbbbba6f08" ,
"name" : "string" ,
"hostname" : "string" ,
"networkSegmentId" : "da59500c-a661-45ab-94a0-11930236ec3b" ,
"targetChecks" : [
{
"id" : "497f6eca-6276-4993-bfeb-53cbbbba6f08" ,
"name" : "string" ,
"status" : "GOOD" ,
"username" : "string"
}
],
"scoreBreakdown" : [
{
"name" : "TOTAL" ,
"value" : 0
}
],
"isDeployed" : true
}
Properties
Name
Type
Required
Restrictions
Description
id
string(uuid)
false
none
none
name
string
false
none
none
hostname
string
false
none
none
networkSegmentId
string(uuid)
false
none
none
targetChecks
[TargetCheck ]
false
none
none
scoreBreakdown
[ScoreBreakdown ]
false
none
none
isDeployed
boolean
false
read-only
none
TargetCheck
{
"id" : "497f6eca-6276-4993-bfeb-53cbbbba6f08" ,
"name" : "string" ,
"status" : "GOOD" ,
"username" : "string"
}
Properties
Name
Type
Required
Restrictions
Description
id
string(uuid)
false
none
none
name
string
false
none
none
status
string
false
none
none
username
string
false
none
none
Enumerated Values
Property
Value
status
GOOD
status
COMPROMISED
status
NOT_AVAILABLE
TargetCheckAvailabilityService
Properties
None
TargetCheckDefinition
{
"name" : "string" ,
"description" : "string" ,
"type" : "ICMP_RESPONDER_PING" ,
"ipAddress" : "string" ,
"parameters" : [
{
"name" : "string" ,
"value" : "string"
}
],
"scoreWeight" : 0 ,
"objectives" : [
{
"name" : "string" ,
"category" : "NETWORKING" ,
"campaignPhaseName" : "string" ,
"scoreWeight" : 0 ,
"sequence" : 0
}
],
"username" : "string"
}
Properties
Name
Type
Required
Restrictions
Description
name
string
false
none
none
description
string
false
none
none
type
string
false
none
none
ipAddress
string
false
none
none
parameters
[TargetCheckParameter ]
false
none
none
scoreWeight
integer(int32)
false
none
none
objectives
[ObjectiveDefinition ]
false
none
none
username
string
false
none
none
Enumerated Values
Property
Value
type
ICMP_RESPONDER_PING
type
TCP_RESPONDER_SOCKET
type
EXTERNAL_SCRIPT
TargetCheckParameter
{
"name" : "string" ,
"value" : "string"
}
Properties
Name
Type
Required
Restrictions
Description
name
string
false
none
none
value
string
false
none
none
TargetCheckStates
{
"good" : 0 ,
"compromised" : 0 ,
"notAvailable" : 0
}
Properties
Name
Type
Required
Restrictions
Description
good
integer(int32)
false
none
none
compromised
integer(int32)
false
none
none
notAvailable
integer(int32)
false
none
none
TargetData
{
"targetId" : "cbca1126-180e-4334-9df8-cf82289d378b" ,
"targetName" : "string" ,
"vmId" : "f1446e55-23f6-4461-a5de-ba794da4dde9" ,
"powerState" : "POWERED_OFF"
}
Properties
Name
Type
Required
Restrictions
Description
targetId
string(uuid)
false
none
none
targetName
string
false
none
none
vmId
string(uuid)
false
none
none
powerState
string
false
none
none
Enumerated Values
Property
Value
powerState
POWERED_OFF
powerState
POWERED_ON
powerState
SUSPENDED
powerState
UNKNOWN
TargetDefinition
{
"name" : "string" ,
"hostname" : "string" ,
"networkSegmentName" : "string" ,
"targetChecks" : [
{
"name" : "string" ,
"description" : "string" ,
"type" : "ICMP_RESPONDER_PING" ,
"ipAddress" : "string" ,
"parameters" : [
{
"name" : "string" ,
"value" : "string"
}
],
"scoreWeight" : 0 ,
"objectives" : [
{
"name" : "string" ,
"category" : "NETWORKING" ,
"campaignPhaseName" : "string" ,
"scoreWeight" : 0 ,
"sequence" : 0
}
],
"username" : "string"
}
],
"scoreBreakdown" : [
{
"name" : "TOTAL" ,
"value" : 0
}
]
}
Properties
Name
Type
Required
Restrictions
Description
name
string
false
none
none
hostname
string
false
none
none
networkSegmentName
string
false
none
none
targetChecks
[TargetCheckDefinition ]
false
none
none
scoreBreakdown
[ScoreBreakdown ]
false
none
none
TargetGroup
{
"id" : "497f6eca-6276-4993-bfeb-53cbbbba6f08" ,
"name" : "string" ,
"username" : "string" ,
"objectives" : [
{
"id" : "497f6eca-6276-4993-bfeb-53cbbbba6f08" ,
"name" : "string" ,
"category" : "NETWORKING" ,
"campaignPhaseId" : "ec1a6f36-e0b2-4e93-85b6-db68c75b7edc" ,
"scoreWeight" : 0 ,
"sequence" : 0
}
],
"targets" : [
{
"id" : "497f6eca-6276-4993-bfeb-53cbbbba6f08" ,
"name" : "string" ,
"hostname" : "string" ,
"networkSegmentId" : "da59500c-a661-45ab-94a0-11930236ec3b" ,
"targetChecks" : [
{
"id" : "497f6eca-6276-4993-bfeb-53cbbbba6f08" ,
"name" : "string" ,
"status" : "GOOD" ,
"username" : "string"
}
],
"scoreBreakdown" : [
{
"name" : "TOTAL" ,
"value" : 0
}
],
"isDeployed" : true
}
]
}
Properties
Name
Type
Required
Restrictions
Description
id
string(uuid)
false
none
none
name
string
false
none
none
username
string
false
none
none
objectives
[Objective ]
false
none
none
targets
[Target ]
false
none
none
TargetGroupDefinition
{
"name" : "string" ,
"username" : "string" ,
"objectives" : [
{
"name" : "string" ,
"category" : "NETWORKING" ,
"campaignPhaseName" : "string" ,
"scoreWeight" : 0 ,
"sequence" : 0
}
],
"targets" : [
{
"name" : "string" ,
"hostname" : "string" ,
"networkSegmentName" : "string" ,
"targetChecks" : [
{
"name" : "string" ,
"description" : "string" ,
"type" : "ICMP_RESPONDER_PING" ,
"ipAddress" : "string" ,
"parameters" : [
{
"name" : "string" ,
"value" : "string"
}
],
"scoreWeight" : 0 ,
"objectives" : [
{
"name" : "string" ,
"category" : "NETWORKING" ,
"campaignPhaseName" : "string" ,
"scoreWeight" : 0 ,
"sequence" : 0
}
],
"username" : "string"
}
],
"scoreBreakdown" : [
{
"name" : "TOTAL" ,
"value" : 0
}
]
}
]
}
Properties
Name
Type
Required
Restrictions
Description
name
string
false
none
none
username
string
false
none
none
objectives
[ObjectiveDefinition ]
false
none
none
targets
[TargetDefinition ]
false
none
none
TargetListItem
{
"id" : "string" ,
"name" : "string"
}
Properties
Name
Type
Required
Restrictions
Description
id
string
false
none
none
name
string
false
none
none
TargetStatusChangeIntegrationEvent
{
"id" : {
"timestamp" : 0 ,
"date" : "2019-08-24T14:15:22Z"
},
"type" : "TARGET_STATUS_CHANGE" ,
"subjectType" : "TARGET" ,
"integrationId" : {
"timestamp" : 0 ,
"date" : "2019-08-24T14:15:22Z"
},
"subjectId" : "string" ,
"url" : "string" ,
"body" : "string" ,
"statusMapping" : {
"property1" : "string" ,
"property2" : "string"
}
}
Properties
allOf - discriminator: IntegrationEvent.type
Name
Type
Required
Restrictions
Description
anonymous
IntegrationEvent
false
none
none
and
Name
Type
Required
Restrictions
Description
anonymous
object
false
none
none
» url
string
false
none
none
» body
string
false
none
none
» statusMapping
object
false
none
none
»» additionalProperties
string
false
none
none
TargetStatusChangeIntegrationEventDTO
{
"id" : "string" ,
"type" : "TARGET_STATUS_CHANGE" ,
"subjectName" : "string" ,
"subjectType" : "TARGET" ,
"integrationId" : "string" ,
"subjectId" : "string" ,
"url" : "string" ,
"body" : "string" ,
"statusMapping" : {
"property1" : "string" ,
"property2" : "string"
}
}
Properties
allOf - discriminator: IntegrationEventDTO.type
and
Name
Type
Required
Restrictions
Description
anonymous
object
false
none
none
» url
string
false
none
none
» body
string
false
none
none
» statusMapping
object
false
none
none
»» additionalProperties
string
false
none
none
{
"targetId" : "cbca1126-180e-4334-9df8-cf82289d378b" ,
"targetName" : "string" ,
"networkSegmentId" : "da59500c-a661-45ab-94a0-11930236ec3b" ,
"networkSegmentName" : "string" ,
"targetChecks" : [
{
"id" : "497f6eca-6276-4993-bfeb-53cbbbba6f08" ,
"name" : "string" ,
"status" : "GOOD" ,
"username" : "string"
}
]
}
Properties
Name
Type
Required
Restrictions
Description
targetId
string(uuid)
false
none
none
targetName
string
false
none
none
networkSegmentId
string(uuid)
false
none
none
networkSegmentName
string
false
none
none
targetChecks
[TargetCheck ]
false
none
none
TargetsDTO
{
"targets" : [
{
"id" : "string" ,
"name" : "string"
}
],
"parentDomain" : "GN_EXERCISE" ,
"parentTargetId" : "string" ,
"parentTargetName" : "string"
}
Properties
Name
Type
Required
Restrictions
Description
targets
[TargetListItem ]
false
none
none
parentDomain
string
false
none
none
parentTargetId
string
false
none
none
parentTargetName
string
false
none
none
Enumerated Values
Property
Value
parentDomain
GN_EXERCISE
parentDomain
GN_BLUE_TEAM
parentDomain
ADMIN
parentDomain
SUPER_ADMIN
{
"reportId" : "836df459-dc40-4aa1-972a-6eb0a864dff9" ,
"teamId" : "a4ede8ba-7c0a-4485-8763-cbd9b282fbec" ,
"teamName" : "string" ,
"timestamp" : 0 ,
"status" : "PENDING_CONFIRMATION" ,
"whiteTeamMember" : "string" ,
"feedback" : "string" ,
"taskId" : "e6e9d88a-9b63-468a-aec3-b7a11de27af8" ,
"title" : "string" ,
"category" : "string" ,
"createdBy" : "string" ,
"validatedOn" : 0 ,
"initialScore" : 0 ,
"score" : 0 ,
"scorePercentage" : 0
}
Properties
Name
Type
Required
Restrictions
Description
reportId
string(uuid)
false
none
none
teamId
string(uuid)
false
none
none
teamName
string
false
none
none
timestamp
integer(int64)
false
none
none
status
string
false
none
none
whiteTeamMember
string
false
none
none
feedback
string
false
none
none
taskId
string(uuid)
false
none
none
title
string
false
none
none
category
string
false
none
none
createdBy
string
false
none
none
validatedOn
integer(int64)
false
none
none
initialScore
integer(int32)
false
none
none
score
integer(int32)
false
none
none
scorePercentage
number(double)
false
none
none
Enumerated Values
Property
Value
status
PENDING_CONFIRMATION
status
CONFIRMED
status
DENIED
TeamSettingsDTO
{
"teamId" : "a4ede8ba-7c0a-4485-8763-cbd9b282fbec" ,
"teamName" : "string"
}
Properties
Name
Type
Required
Restrictions
Description
teamId
string(uuid)
false
none
none
teamName
string
false
none
none
TeamStatusLeaderDTO
{
"score" : 0 ,
"tasksSolved" : 0
}
Properties
Name
Type
Required
Restrictions
Description
score
number(double)
false
none
none
tasksSolved
integer(int32)
false
none
none
{
"teamId" : "a4ede8ba-7c0a-4485-8763-cbd9b282fbec" ,
"teamName" : "string" ,
"states" : {
"good" : 0 ,
"compromised" : 0 ,
"notAvailable" : 0
}
}
Properties
Name
Type
Required
Restrictions
Description
teamId
string(uuid)
false
none
none
teamName
string
false
none
none
states
TargetCheckStates
false
none
none
TemporalUnit
{
"duration" : {
"seconds" : 0 ,
"nano" : 0 ,
"units" : [
{
"duration" : {},
"durationEstimated" : true ,
"dateBased" : true ,
"timeBased" : true
}
],
"negative" : true ,
"zero" : true
},
"durationEstimated" : true ,
"dateBased" : true ,
"timeBased" : true
}
Properties
Name
Type
Required
Restrictions
Description
duration
Duration
false
none
none
durationEstimated
boolean
false
none
none
dateBased
boolean
false
none
none
timeBased
boolean
false
none
none
TimeZone
{
"id" : "string" ,
"displayName" : "string" ,
"dstsavings" : 0 ,
"rawOffset" : 0
}
Properties
Name
Type
Required
Restrictions
Description
id
string
false
none
none
displayName
string
false
none
none
dstsavings
integer(int32)
false
none
none
rawOffset
integer(int32)
false
none
none
TypeBindings
{
"empty" : true ,
"typeParameters" : [
{
"interface" : true ,
"primitive" : true ,
"interfaces" : [
{}
],
"genericSignature" : "string" ,
"final" : true ,
"abstract" : true ,
"contentType" : {},
"bindings" : {
"empty" : true ,
"typeParameters" : []
},
"concrete" : true ,
"referencedType" : {},
"enumType" : true ,
"superClass" : {},
"throwable" : true ,
"arrayType" : true ,
"collectionLikeType" : true ,
"contentValueHandler" : {},
"contentTypeHandler" : {},
"containerType" : true ,
"valueHandler" : {},
"typeHandler" : {},
"keyType" : {},
"javaLangObject" : true ,
"mapLikeType" : true ,
"erasedSignature" : "string" ,
"typeName" : "string" ,
"referenceType" : true
}
]
}
Properties
Name
Type
Required
Restrictions
Description
empty
boolean
false
none
none
typeParameters
[JavaType ]
false
none
none
TypeFactory
{
"classLoader" : {
"parent" : {},
"name" : "string" ,
"unnamedModule" : {
"layer" : {},
"name" : "string" ,
"descriptor" : {
"open" : true ,
"automatic" : true
},
"classLoader" : {},
"annotations" : [
{}
],
"declaredAnnotations" : [
{}
],
"named" : true ,
"packages" : [
"string"
]
},
"registeredAsParallelCapable" : true ,
"definedPackages" : [
{
"name" : "string" ,
"annotations" : [
{}
],
"declaredAnnotations" : [
{}
],
"sealed" : true ,
"specificationTitle" : "string" ,
"specificationVersion" : "string" ,
"specificationVendor" : "string" ,
"implementationTitle" : "string" ,
"implementationVersion" : "string" ,
"implementationVendor" : "string"
}
]
}
}
Properties
Name
Type
Required
Restrictions
Description
classLoader
ClassLoader
false
none
none
UnpublishedExercise
{
"teamSettingsEnabled" : true ,
"networkSegments" : [
{
"id" : "497f6eca-6276-4993-bfeb-53cbbbba6f08" ,
"name" : "string" ,
"description" : "string" ,
"colorHex" : "string"
}
],
"name" : "string" ,
"id" : "497f6eca-6276-4993-bfeb-53cbbbba6f08" ,
"type" : "CAMPAIGN" ,
"definition" : {
"image" : "string" ,
"networkSegments" : [
{
"name" : "string" ,
"description" : "string" ,
"colorHex" : "string"
}
],
"name" : "string" ,
"type" : "CAMPAIGN" ,
"description" : "string" ,
"gitConfiguration" : {
"url" : "string" ,
"authenticationType" : "CREDENTIALS" ,
"branch" : "string"
},
"blueTeamLdapGroup" : "string" ,
"externalId" : "string" ,
"campaignPhases" : [
{
"name" : "string" ,
"description" : "string" ,
"startTime" : 0
}
],
"externalSource" : "VLM" ,
"activeTimes" : [
{
"startTime" : 0 ,
"endTime" : 0
}
],
"difficulty" : "EASY" ,
"blueTeamName" : "string" ,
"targetGroups" : [
{
"name" : "string" ,
"username" : "string" ,
"objectives" : [
{
"name" : "string" ,
"category" : "NETWORKING" ,
"campaignPhaseName" : "string" ,
"scoreWeight" : 0 ,
"sequence" : 0
}
],
"targets" : [
{
"name" : "string" ,
"hostname" : "string" ,
"networkSegmentName" : "string" ,
"targetChecks" : [
{
"name" : "string" ,
"description" : "string" ,
"type" : "ICMP_RESPONDER_PING" ,
"ipAddress" : "string" ,
"parameters" : [
{
"name" : "string" ,
"value" : "string"
}
],
"scoreWeight" : 0 ,
"objectives" : [
{
"name" : "string" ,
"category" : "NETWORKING" ,
"campaignPhaseName" : "string" ,
"scoreWeight" : 0 ,
"sequence" : 0
}
],
"username" : "string"
}
],
"scoreBreakdown" : [
{
"name" : "TOTAL" ,
"value" : 0
}
]
}
]
}
],
"numberOfTeams" : 0 ,
"gmaId" : [
"497f6eca-6276-4993-bfeb-53cbbbba6f08"
],
"imageId" : "string" ,
"whiteTeamLdapGroup" : "string" ,
"isTeamSettingsEnabled" : true ,
"isTargetManagementEnabled" : true
},
"description" : "string" ,
"gitConfiguration" : {
"url" : "string" ,
"authenticationType" : "CREDENTIALS" ,
"branch" : "string"
},
"externalId" : "string" ,
"campaignPhases" : [
{
"id" : "497f6eca-6276-4993-bfeb-53cbbbba6f08" ,
"name" : "string" ,
"description" : "string" ,
"startTime" : 0
}
],
"externalSource" : "VLM" ,
"activeTimes" : [
{
"startTime" : 0 ,
"endTime" : 0
}
],
"difficulty" : "EASY" ,
"blueTeams" : [
{
"avatarFileId" : "string" ,
"ldapGroup" : "string" ,
"name" : "string" ,
"id" : "497f6eca-6276-4993-bfeb-53cbbbba6f08" ,
"gmaId" : "38986f0b-d3bf-44a4-9955-8376fb08408a" ,
"targetGroups" : [
{
"id" : "497f6eca-6276-4993-bfeb-53cbbbba6f08" ,
"name" : "string" ,
"username" : "string" ,
"objectives" : [
{
"id" : "497f6eca-6276-4993-bfeb-53cbbbba6f08" ,
"name" : "string" ,
"category" : "NETWORKING" ,
"campaignPhaseId" : "ec1a6f36-e0b2-4e93-85b6-db68c75b7edc" ,
"scoreWeight" : 0 ,
"sequence" : 0
}
],
"targets" : [
{
"id" : "497f6eca-6276-4993-bfeb-53cbbbba6f08" ,
"name" : "string" ,
"hostname" : "string" ,
"networkSegmentId" : "da59500c-a661-45ab-94a0-11930236ec3b" ,
"targetChecks" : [
{
"id" : "497f6eca-6276-4993-bfeb-53cbbbba6f08" ,
"name" : "string" ,
"status" : "GOOD" ,
"username" : "string"
}
],
"scoreBreakdown" : [
{
"name" : "TOTAL" ,
"value" : 0
}
],
"isDeployed" : true
}
]
}
],
"tasks" : [
{
"niceIds" : {
"taskIds" : [
"string"
],
"knowledgeIds" : [
"string"
],
"skillIds" : [
"string"
],
"abilityIds" : [
"string"
]
},
"type" : "SINGLE_ANSWER" ,
"description" : "string" ,
"requiredTaskIds" : [
"497f6eca-6276-4993-bfeb-53cbbbba6f08"
],
"targets" : [
{
"id" : "497f6eca-6276-4993-bfeb-53cbbbba6f08" ,
"name" : "string" ,
"hostname" : "string" ,
"networkSegmentId" : "da59500c-a661-45ab-94a0-11930236ec3b" ,
"targetChecks" : [
{
"id" : "497f6eca-6276-4993-bfeb-53cbbbba6f08" ,
"name" : "string" ,
"status" : "GOOD" ,
"username" : "string"
}
],
"scoreBreakdown" : [
{
"name" : "TOTAL" ,
"value" : 0
}
],
"isDeployed" : true
}
],
"question" : "string" ,
"title" : "string" ,
"definitionId" : "058563fe-6949-46e9-9fb3-06a0e3a11f6a" ,
"category" : "string" ,
"hints" : [
{
"id" : "497f6eca-6276-4993-bfeb-53cbbbba6f08" ,
"content" : "string" ,
"penalty" : 0
}
],
"score" : 0 ,
"isLocked" : true
}
]
}
],
"imageId" : "string" ,
"whiteTeamLdapGroup" : "string" ,
"isTargetManagementEnabled" : true ,
"redTeamLdapGroup" : "string" ,
"gracePeriodInMinutes" : 0 ,
"pointsBudget" : {
"total" : 0 ,
"breakdown" : [
{
"name" : "TOTAL" ,
"value" : 0
}
]
},
"expectedSituationReportsCount" : 0 ,
"attackFlagFileUnixPaths" : [
"string"
],
"attackFlagFileWinPaths" : [
"string"
],
"scoringBotUsername" : "string" ,
"scoringBotPassword" : "string" ,
"situationReportTemplate" : "string" ,
"incidentReportTemplate" : "string" ,
"disabledIncidentTypes" : [
"ONLINE"
],
"durationPeriod" : "string" ,
"taskAbandonPenalty" : 0 ,
"openedTasksLimit" : 0 ,
"taskCategories" : [
{
"code" : "string" ,
"name" : "string" ,
"icon" : "string"
}
],
"individualAssessmentIdlePeriod" : "string" ,
"missionDurationPeriod" : "string" ,
"workRoleId" : "string" ,
"showTeamPosition" : true ,
"isTargetCheckStatusHidden" : true ,
"isNiceFrameworkSupported" : true ,
"isIndividualAssessment" : true
}
Properties
allOf - discriminator: IExercise.type
Name
Type
Required
Restrictions
Description
anonymous
IExercise
false
none
none
and
Name
Type
Required
Restrictions
Description
anonymous
object
false
none
none
» blueTeams
[UnpublishedExerciseBlueTeam ]
false
none
none
» redTeamLdapGroup
string
false
none
none
» gracePeriodInMinutes
integer(int32)
false
none
none
» pointsBudget
ExercisePointsBudget
false
none
none
» expectedSituationReportsCount
integer(int32)
false
none
none
» attackFlagFileUnixPaths
[string]
false
none
none
» attackFlagFileWinPaths
[string]
false
none
none
» scoringBotUsername
string
false
none
none
» scoringBotPassword
string
false
none
none
» situationReportTemplate
string
false
none
none
» incidentReportTemplate
string
false
none
none
» disabledIncidentTypes
[string]
false
none
none
» durationPeriod
string
false
none
none
» taskAbandonPenalty
number(double)
false
none
none
» openedTasksLimit
integer(int32)
false
none
none
» taskCategories
[CTFTaskCategory ]
false
none
none
» individualAssessmentIdlePeriod
string
false
none
none
» missionDurationPeriod
string
false
none
none
» workRoleId
string
false
none
none
» showTeamPosition
boolean
false
none
none
» isTargetCheckStatusHidden
boolean
false
read-only
none
» isNiceFrameworkSupported
boolean
false
read-only
none
» isIndividualAssessment
boolean
false
read-only
none
UnpublishedExerciseBlueTeam
{
"id" : "497f6eca-6276-4993-bfeb-53cbbbba6f08" ,
"name" : "string" ,
"ldapGroup" : "string" ,
"gmaId" : "38986f0b-d3bf-44a4-9955-8376fb08408a" ,
"targetGroups" : [
{
"id" : "497f6eca-6276-4993-bfeb-53cbbbba6f08" ,
"name" : "string" ,
"username" : "string" ,
"objectives" : [
{
"id" : "497f6eca-6276-4993-bfeb-53cbbbba6f08" ,
"name" : "string" ,
"category" : "NETWORKING" ,
"campaignPhaseId" : "ec1a6f36-e0b2-4e93-85b6-db68c75b7edc" ,
"scoreWeight" : 0 ,
"sequence" : 0
}
],
"targets" : [
{
"id" : "497f6eca-6276-4993-bfeb-53cbbbba6f08" ,
"name" : "string" ,
"hostname" : "string" ,
"networkSegmentId" : "da59500c-a661-45ab-94a0-11930236ec3b" ,
"targetChecks" : [
{
"id" : "497f6eca-6276-4993-bfeb-53cbbbba6f08" ,
"name" : "string" ,
"status" : "GOOD" ,
"username" : "string"
}
],
"scoreBreakdown" : [
{
"name" : "TOTAL" ,
"value" : 0
}
],
"isDeployed" : true
}
]
}
],
"tasks" : [
{
"niceIds" : {
"taskIds" : [
"string"
],
"knowledgeIds" : [
"string"
],
"skillIds" : [
"string"
],
"abilityIds" : [
"string"
]
},
"type" : "SINGLE_ANSWER" ,
"description" : "string" ,
"requiredTaskIds" : [
"497f6eca-6276-4993-bfeb-53cbbbba6f08"
],
"targets" : [
{
"id" : "497f6eca-6276-4993-bfeb-53cbbbba6f08" ,
"name" : "string" ,
"hostname" : "string" ,
"networkSegmentId" : "da59500c-a661-45ab-94a0-11930236ec3b" ,
"targetChecks" : [
{
"id" : "497f6eca-6276-4993-bfeb-53cbbbba6f08" ,
"name" : "string" ,
"status" : "GOOD" ,
"username" : "string"
}
],
"scoreBreakdown" : [
{
"name" : "TOTAL" ,
"value" : 0
}
],
"isDeployed" : true
}
],
"question" : "string" ,
"title" : "string" ,
"definitionId" : "058563fe-6949-46e9-9fb3-06a0e3a11f6a" ,
"category" : "string" ,
"hints" : [
{
"id" : "497f6eca-6276-4993-bfeb-53cbbbba6f08" ,
"content" : "string" ,
"penalty" : 0
}
],
"score" : 0 ,
"isLocked" : true
}
],
"avatarFileId" : "string"
}
Properties
Name
Type
Required
Restrictions
Description
id
string(uuid)
false
none
none
name
string
false
none
none
ldapGroup
string
false
none
none
gmaId
string(uuid)
false
none
none
targetGroups
[TargetGroup ]
false
none
none
tasks
[ICTFTask ]
false
none
none
avatarFileId
string
false
none
none
UnpublishedExerciseDefinition
{
"image" : "string" ,
"networkSegments" : [
{
"name" : "string" ,
"description" : "string" ,
"colorHex" : "string"
}
],
"name" : "string" ,
"type" : "CAMPAIGN" ,
"description" : "string" ,
"gitConfiguration" : {
"url" : "string" ,
"authenticationType" : "CREDENTIALS" ,
"branch" : "string"
},
"blueTeamLdapGroup" : "string" ,
"externalId" : "string" ,
"campaignPhases" : [
{
"name" : "string" ,
"description" : "string" ,
"startTime" : 0
}
],
"externalSource" : "VLM" ,
"activeTimes" : [
{
"startTime" : 0 ,
"endTime" : 0
}
],
"difficulty" : "EASY" ,
"blueTeamName" : "string" ,
"targetGroups" : [
{
"name" : "string" ,
"username" : "string" ,
"objectives" : [
{
"name" : "string" ,
"category" : "NETWORKING" ,
"campaignPhaseName" : "string" ,
"scoreWeight" : 0 ,
"sequence" : 0
}
],
"targets" : [
{
"name" : "string" ,
"hostname" : "string" ,
"networkSegmentName" : "string" ,
"targetChecks" : [
{
"name" : "string" ,
"description" : "string" ,
"type" : "ICMP_RESPONDER_PING" ,
"ipAddress" : "string" ,
"parameters" : [
{
"name" : "string" ,
"value" : "string"
}
],
"scoreWeight" : 0 ,
"objectives" : [
{
"name" : "string" ,
"category" : "NETWORKING" ,
"campaignPhaseName" : "string" ,
"scoreWeight" : 0 ,
"sequence" : 0
}
],
"username" : "string"
}
],
"scoreBreakdown" : [
{
"name" : "TOTAL" ,
"value" : 0
}
]
}
]
}
],
"numberOfTeams" : 0 ,
"gmaId" : [
"497f6eca-6276-4993-bfeb-53cbbbba6f08"
],
"imageId" : "string" ,
"whiteTeamLdapGroup" : "string" ,
"isTeamSettingsEnabled" : true ,
"isTargetManagementEnabled" : true ,
"redTeamLdapGroup" : "string" ,
"gracePeriodInMinutes" : 0 ,
"pointsBudget" : {
"total" : 0 ,
"breakdown" : [
{
"name" : "TOTAL" ,
"value" : 0
}
]
},
"expectedSituationReportsCount" : 0 ,
"attackFlagFileUnixPaths" : [
"string"
],
"attackFlagFileWinPaths" : [
"string"
],
"scoringBotUsername" : "string" ,
"scoringBotPassword" : "string" ,
"situationReportTemplate" : "string" ,
"incidentReportTemplate" : "string" ,
"disabledIncidentTypes" : [
"ONLINE"
],
"tasks" : [
{
"niceIds" : {
"taskIds" : [
"string"
],
"knowledgeIds" : [
"string"
],
"skillIds" : [
"string"
],
"abilityIds" : [
"string"
]
},
"id" : "497f6eca-6276-4993-bfeb-53cbbbba6f08" ,
"type" : "SINGLE_ANSWER" ,
"description" : "string" ,
"targetNamePatterns" : [
"string"
],
"requiredTaskIds" : [
"497f6eca-6276-4993-bfeb-53cbbbba6f08"
],
"question" : "string" ,
"title" : "string" ,
"category" : "string" ,
"hints" : [
{
"content" : "string" ,
"penalty" : 0
}
],
"score" : 0 ,
"isLocked" : true
}
],
"durationPeriod" : "string" ,
"taskAbandonPenalty" : 0 ,
"openedTasksLimit" : 0 ,
"individualAssessmentIdlePeriod" : "string" ,
"missionDurationPeriod" : "string" ,
"taskCategories" : [
{
"code" : "string" ,
"name" : "string" ,
"icon" : "string"
}
],
"workRoleId" : "string" ,
"showTeamPosition" : true ,
"isTargetCheckStatusHidden" : true ,
"isNiceFrameworkSupported" : true ,
"isIndividualAssessment" : true
}
Properties
allOf - discriminator: IExerciseDefinition.type
and
Name
Type
Required
Restrictions
Description
anonymous
object
false
none
none
» redTeamLdapGroup
string
false
none
none
» gracePeriodInMinutes
integer(int32)
false
none
none
» pointsBudget
ExercisePointsBudget
false
none
none
» expectedSituationReportsCount
integer(int32)
false
none
none
» attackFlagFileUnixPaths
[string]
false
none
none
» attackFlagFileWinPaths
[string]
false
none
none
» scoringBotUsername
string
false
none
none
» scoringBotPassword
string
false
none
none
» situationReportTemplate
string
false
none
none
» incidentReportTemplate
string
false
none
none
» disabledIncidentTypes
[string]
false
none
none
» tasks
[ICTFTaskDefinition ]
false
none
none
» durationPeriod
string
false
none
none
» taskAbandonPenalty
number(double)
false
none
none
» openedTasksLimit
integer(int32)
false
none
none
» individualAssessmentIdlePeriod
string
false
none
none
» missionDurationPeriod
string
false
none
none
» taskCategories
[CTFTaskCategory ]
false
none
none
» workRoleId
string
false
none
none
» showTeamPosition
boolean
false
none
none
» isTargetCheckStatusHidden
boolean
false
read-only
none
» isNiceFrameworkSupported
boolean
false
read-only
none
» isIndividualAssessment
boolean
false
read-only
none
UserDetailDTO
{
"username" : "string" ,
"fullName" : "string" ,
"roles" : [
{
"code" : "string" ,
"description" : "string" ,
"targetsByDomain" : {
"property1" : [
"string"
],
"property2" : [
"string"
]
}
}
]
}
Properties
Name
Type
Required
Restrictions
Description
username
string
false
none
none
fullName
string
false
none
none
roles
[UserRoleDTO ]
false
none
none
UserListDTO
{
"username" : "string" ,
"fullName" : "string" ,
"origin" : "LDAP"
}
Properties
Name
Type
Required
Restrictions
Description
username
string
false
none
none
fullName
string
false
none
none
origin
string
false
none
none
Enumerated Values
Property
Value
origin
LDAP
origin
LOCAL
origin
OBSERVER
origin
UNKNOWN
origin
EXTERNAL
UserRoleDTO
{
"code" : "string" ,
"description" : "string" ,
"targetsByDomain" : {
"property1" : [
"string"
],
"property2" : [
"string"
]
}
}
Properties
Name
Type
Required
Restrictions
Description
code
string
false
none
none
description
string
false
none
none
targetsByDomain
object
false
none
none
» additionalProperties
[string]
false
none
none
Value
{
"valueInclusion" : "ALWAYS" ,
"contentInclusion" : "ALWAYS"
}
Properties
Name
Type
Required
Restrictions
Description
valueInclusion
string
false
none
none
contentInclusion
string
false
none
none
Enumerated Values
Property
Value
valueInclusion
ALWAYS
valueInclusion
NON_NULL
valueInclusion
NON_ABSENT
valueInclusion
NON_EMPTY
valueInclusion
NON_DEFAULT
valueInclusion
USE_DEFAULTS
contentInclusion
ALWAYS
contentInclusion
NON_NULL
contentInclusion
NON_ABSENT
contentInclusion
NON_EMPTY
contentInclusion
NON_DEFAULT
contentInclusion
USE_DEFAULTS
VisibilityChecker
Properties
None
VisibilityCheckerObject
Properties
None
VlmSettingsDTO
{
"url" : "string" ,
"serviceKey" : "string" ,
"localWebConsoleProxyEnabled" : true
}
Properties
Name
Type
Required
Restrictions
Description
url
string
false
none
none
serviceKey
string
false
none
none
localWebConsoleProxyEnabled
boolean
false
none
none