DAI API v5.2
Scroll down for code samples, example requests and responses. Select a language for code samples from the tabs above or the mobile navigation menu.
Base URLs:
Authentication
-
oAuth2 authentication.
-
Flow: password
-
Token URL = http://localhost:4568/ai/auth
-
Scope | Scope Description |
---|---|
user | User |
admin | Admin |
Agents
Create a new agent
Code samples
package main
import (
"bytes"
"net/http"
)
func main() {
headers := map[string][]string{
"Content-Type": []string{"application/x-www-form-urlencoded"},
"Accept": []string{"*/*"},
"Authorization": []string{"Bearer {access-token}"},
}
data := bytes.NewBuffer([]byte{jsonReq})
req, err := http.NewRequest("POST", "/ai/agents", data)
req.Header = headers
client := &http.Client{}
resp, err := client.Do(req)
// ...
}
const inputBody = '{
"type": "object",
"properties": {
"name": {
"description": "Unique name",
"type": "string"
},
"recordpath": {
"description": "Record path",
"type": "string",
"default": ""
},
"suite": {
"description": " EPF suite",
"type": "string",
"default": ""
},
"agenttype": {
"description": "Agent type. Examples: DESIGN or RUN",
"type": "string",
"default": "DESIGN"
},
"epphost": {
"description": "EPP host IP address",
"type": "string",
"default": ""
},
"epptestcontrollerport": {
"description": "Port number of EPP Test Controller",
"type": "integer",
"default": 123
},
"eppanalyzerport": {
"description": "Port number of EPP Analyzer",
"type": "integer",
"default": 123
},
"eppworkspacepath": {
"description": "EPP workspace path",
"type": "string",
"default": ""
},
"isconnected": {
"description": "Indicate connected Agent",
"type": "boolean",
"default": false
},
"ishosted": {
"description": "Indicate hosted Agent",
"type": "boolean",
"default": false
}
},
"required": [
"name",
"recordpath",
"suite",
"agenttype",
"epphost",
"epptestcontrollerport",
"eppanalyzerport",
"eppworkspacepath"
]
}';
const headers = {
'Content-Type':'application/x-www-form-urlencoded',
'Accept':'*/*',
'Authorization':'Bearer {access-token}'
};
fetch('/ai/agents',
{
method: 'POST',
body: inputBody,
headers: headers
})
.then(function(res) {
return res.json();
}).then(function(body) {
console.log(body);
});
import requests
headers = {
'Content-Type': 'application/x-www-form-urlencoded',
'Accept': '*/*',
'Authorization': 'Bearer {access-token}'
}
r = requests.post('/ai/agents', headers = headers)
print(r.json())
require 'rest-client'
require 'json'
headers = {
'Content-Type' => 'application/x-www-form-urlencoded',
'Accept' => '*/*',
'Authorization' => 'Bearer {access-token}'
}
result = RestClient.post '/ai/agents',
params: {
}, headers: headers
p JSON.parse(result)
POST /agents
Body parameter
type: object
properties:
name:
description: Unique name
type: string
recordpath:
description: Record path
type: string
default: ""
suite:
description: " EPF suite"
type: string
default: ""
agenttype:
description: "Agent type. Examples: DESIGN or RUN"
type: string
default: DESIGN
epphost:
description: EPP host IP address
type: string
default: ""
epptestcontrollerport:
description: Port number of EPP Test Controller
type: integer
default: 123
eppanalyzerport:
description: Port number of EPP Analyzer
type: integer
default: 123
eppworkspacepath:
description: EPP workspace path
type: string
default: ""
isconnected:
description: Indicate connected Agent
type: boolean
default: false
ishosted:
description: Indicate hosted Agent
type: boolean
default: false
required:
- name
- recordpath
- suite
- agenttype
- epphost
- epptestcontrollerport
- eppanalyzerport
- eppworkspacepath
Parameters
Name | In | Type | Required | Description |
---|---|---|---|---|
body | body | object | true | none |
» name | body | string | true | Unique name |
» recordpath | body | string | true | Record path |
» suite | body | string | true | EPF suite |
» agenttype | body | string | true | Agent type. Examples: DESIGN or RUN |
» epphost | body | string | true | EPP host IP address |
» epptestcontrollerport | body | integer | true | Port number of EPP Test Controller |
» eppanalyzerport | body | integer | true | Port number of EPP Analyzer |
» eppworkspacepath | body | string | true | EPP workspace path |
» isconnected | body | boolean | false | Indicate connected Agent |
» ishosted | body | boolean | false | Indicate hosted Agent |
Example responses
200 Response
Responses
Status | Meaning | Description | Schema |
---|---|---|---|
200 | OK | The agent was created and returned | Agent |
400 | Bad Request | The agent name was invalid | None |
401 | Unauthorized | Invalid token or token timed out. | None |
403 | Forbidden | Attempt to access a restricted or admin-only resource. | None |
Get a list of all agents
Code samples
package main
import (
"bytes"
"net/http"
)
func main() {
headers := map[string][]string{
"Accept": []string{"*/*"},
"Authorization": []string{"Bearer {access-token}"},
}
data := bytes.NewBuffer([]byte{jsonReq})
req, err := http.NewRequest("GET", "/ai/agents", data)
req.Header = headers
client := &http.Client{}
resp, err := client.Do(req)
// ...
}
const headers = {
'Accept':'*/*',
'Authorization':'Bearer {access-token}'
};
fetch('/ai/agents',
{
method: 'GET',
headers: headers
})
.then(function(res) {
return res.json();
}).then(function(body) {
console.log(body);
});
import requests
headers = {
'Accept': '*/*',
'Authorization': 'Bearer {access-token}'
}
r = requests.get('/ai/agents', headers = headers)
print(r.json())
require 'rest-client'
require 'json'
headers = {
'Accept' => '*/*',
'Authorization' => 'Bearer {access-token}'
}
result = RestClient.get '/ai/agents',
params: {
}, headers: headers
p JSON.parse(result)
GET /agents
Parameters
Name | In | Type | Required | Description |
---|---|---|---|---|
include_hosted | query | boolean | false | Include hosted Agents in the result |
Example responses
200 Response
Responses
Status | Meaning | Description | Schema |
---|---|---|---|
200 | OK | The list of agents | Inline |
401 | Unauthorized | Invalid token or token timed out. | None |
403 | Forbidden | Attempt to access a restricted or admin-only resource. | None |
Response Schema
Status Code 200
Name | Type | Required | Restrictions | Description |
---|---|---|---|---|
anonymous | [Agent] | false | none | none |
» id | integer | false | none | none |
» name | string | true | none | none |
» recordpath | string | true | none | none |
» suite | string | true | none | none |
» agenttype | string | false | none | none |
» epphost | string | true | none | none |
» epptestcontrollerport | integer | true | none | none |
» eppanalyzerport | integer | true | none | none |
» eppworkspacepath | string | true | none | none |
» isconnected | boolean | false | none | none |
» ishosted | boolean | false | none | none |
Update an agent
Code samples
package main
import (
"bytes"
"net/http"
)
func main() {
headers := map[string][]string{
"Content-Type": []string{"application/json"},
"Accept": []string{"*/*"},
"Authorization": []string{"Bearer {access-token}"},
}
data := bytes.NewBuffer([]byte{jsonReq})
req, err := http.NewRequest("PUT", "/ai/agents/{id}", data)
req.Header = headers
client := &http.Client{}
resp, err := client.Do(req)
// ...
}
const inputBody = '{
"properties": {
"id": {
"type": "integer",
"name": "id"
},
"name": {
"type": "string",
"name": "name"
},
"recordpath": {
"type": "string",
"name": "recordpath"
},
"suite": {
"type": "string",
"name": "suite"
},
"agenttype": {
"type": "string",
"name": "agenttype"
},
"epphost": {
"type": "string",
"name": "epphost"
},
"epptestcontrollerport": {
"type": "integer",
"name": "epptestcontrollerport"
},
"eppanalyzerport": {
"type": "integer",
"name": "eppanalyzerport"
},
"eppworkspacepath": {
"type": "string",
"name": "eppworkspacepath"
},
"isconnected": {
"type": "boolean",
"name": "isconnected"
},
"ishosted": {
"type": "boolean",
"name": "ishosted"
}
},
"required": [
"name",
"recordpath",
"suite",
"epphost",
"epptestcontrollerport",
"eppanalyzerport",
"eppworkspacepath"
]
}';
const headers = {
'Content-Type':'application/json',
'Accept':'*/*',
'Authorization':'Bearer {access-token}'
};
fetch('/ai/agents/{id}',
{
method: 'PUT',
body: inputBody,
headers: headers
})
.then(function(res) {
return res.json();
}).then(function(body) {
console.log(body);
});
import requests
headers = {
'Content-Type': 'application/json',
'Accept': '*/*',
'Authorization': 'Bearer {access-token}'
}
r = requests.put('/ai/agents/{id}', headers = headers)
print(r.json())
require 'rest-client'
require 'json'
headers = {
'Content-Type' => 'application/json',
'Accept' => '*/*',
'Authorization' => 'Bearer {access-token}'
}
result = RestClient.put '/ai/agents/{id}',
params: {
}, headers: headers
p JSON.parse(result)
PUT /agents/{id}
Body parameter
{
"properties": {
"id": {
"type": "integer",
"name": "id"
},
"name": {
"type": "string",
"name": "name"
},
"recordpath": {
"type": "string",
"name": "recordpath"
},
"suite": {
"type": "string",
"name": "suite"
},
"agenttype": {
"type": "string",
"name": "agenttype"
},
"epphost": {
"type": "string",
"name": "epphost"
},
"epptestcontrollerport": {
"type": "integer",
"name": "epptestcontrollerport"
},
"eppanalyzerport": {
"type": "integer",
"name": "eppanalyzerport"
},
"eppworkspacepath": {
"type": "string",
"name": "eppworkspacepath"
},
"isconnected": {
"type": "boolean",
"name": "isconnected"
},
"ishosted": {
"type": "boolean",
"name": "ishosted"
}
},
"required": [
"name",
"recordpath",
"suite",
"epphost",
"epptestcontrollerport",
"eppanalyzerport",
"eppworkspacepath"
]
}
Parameters
Name | In | Type | Required | Description |
---|---|---|---|---|
body | body | Agent | true | Request body |
Example responses
200 Response
Responses
Status | Meaning | Description | Schema |
---|---|---|---|
200 | OK | The agent was updated and returned | Agent |
400 | Bad Request | The agent name was invalid | None |
401 | Unauthorized | Invalid token or token timed out. | None |
403 | Forbidden | Attempt to access a restricted or admin-only resource. | None |
Delete an agent
Code samples
package main
import (
"bytes"
"net/http"
)
func main() {
headers := map[string][]string{
"Authorization": []string{"Bearer {access-token}"},
}
data := bytes.NewBuffer([]byte{jsonReq})
req, err := http.NewRequest("DELETE", "/ai/agents/{id}", data)
req.Header = headers
client := &http.Client{}
resp, err := client.Do(req)
// ...
}
const headers = {
'Authorization':'Bearer {access-token}'
};
fetch('/ai/agents/{id}',
{
method: 'DELETE',
headers: headers
})
.then(function(res) {
return res.json();
}).then(function(body) {
console.log(body);
});
import requests
headers = {
'Authorization': 'Bearer {access-token}'
}
r = requests.delete('/ai/agents/{id}', headers = headers)
print(r.json())
require 'rest-client'
require 'json'
headers = {
'Authorization' => 'Bearer {access-token}'
}
result = RestClient.delete '/ai/agents/{id}',
params: {
}, headers: headers
p JSON.parse(result)
DELETE /agents/{id}
Responses
Status | Meaning | Description | Schema |
---|---|---|---|
200 | OK | The agent was deleted | None |
401 | Unauthorized | Invalid token or token timed out. | None |
403 | Forbidden | Attempt to access a restricted or admin-only resource. | None |
Get a single agent
Code samples
package main
import (
"bytes"
"net/http"
)
func main() {
headers := map[string][]string{
"Accept": []string{"*/*"},
"Authorization": []string{"Bearer {access-token}"},
}
data := bytes.NewBuffer([]byte{jsonReq})
req, err := http.NewRequest("GET", "/ai/agents/{id}", data)
req.Header = headers
client := &http.Client{}
resp, err := client.Do(req)
// ...
}
const headers = {
'Accept':'*/*',
'Authorization':'Bearer {access-token}'
};
fetch('/ai/agents/{id}',
{
method: 'GET',
headers: headers
})
.then(function(res) {
return res.json();
}).then(function(body) {
console.log(body);
});
import requests
headers = {
'Accept': '*/*',
'Authorization': 'Bearer {access-token}'
}
r = requests.get('/ai/agents/{id}', headers = headers)
print(r.json())
require 'rest-client'
require 'json'
headers = {
'Accept' => '*/*',
'Authorization' => 'Bearer {access-token}'
}
result = RestClient.get '/ai/agents/{id}',
params: {
}, headers: headers
p JSON.parse(result)
GET /agents/{id}
Example responses
200 Response
Responses
Status | Meaning | Description | Schema |
---|---|---|---|
200 | OK | The agent | Agent |
401 | Unauthorized | Invalid token or token timed out. | None |
403 | Forbidden | Attempt to access a restricted or admin-only resource. | None |
404 | Not Found | The agent doesn't exist | None |
Associate an agent with a model
Code samples
package main
import (
"bytes"
"net/http"
)
func main() {
headers := map[string][]string{
"Content-Type": []string{"application/json"},
"Accept": []string{"*/*"},
"Authorization": []string{"Bearer {access-token}"},
}
data := bytes.NewBuffer([]byte{jsonReq})
req, err := http.NewRequest("PUT", "/ai/models/{model_id}/agent", data)
req.Header = headers
client := &http.Client{}
resp, err := client.Do(req)
// ...
}
const inputBody = '{
"type": "object",
"properties": {
"agent": {
"name": "agent",
"type": "integer"
}
},
"required": [
"agent"
]
}';
const headers = {
'Content-Type':'application/json',
'Accept':'*/*',
'Authorization':'Bearer {access-token}'
};
fetch('/ai/models/{model_id}/agent',
{
method: 'PUT',
body: inputBody,
headers: headers
})
.then(function(res) {
return res.json();
}).then(function(body) {
console.log(body);
});
import requests
headers = {
'Content-Type': 'application/json',
'Accept': '*/*',
'Authorization': 'Bearer {access-token}'
}
r = requests.put('/ai/models/{model_id}/agent', headers = headers)
print(r.json())
require 'rest-client'
require 'json'
headers = {
'Content-Type' => 'application/json',
'Accept' => '*/*',
'Authorization' => 'Bearer {access-token}'
}
result = RestClient.put '/ai/models/{model_id}/agent',
params: {
}, headers: headers
p JSON.parse(result)
PUT /models/{model_id}/agent
Body parameter
{
"type": "object",
"properties": {
"agent": {
"name": "agent",
"type": "integer"
}
},
"required": [
"agent"
]
}
Parameters
Name | In | Type | Required | Description |
---|---|---|---|---|
body | body | ModelAgent | true | Request body |
Example responses
200 Response
Responses
Status | Meaning | Description | Schema |
---|---|---|---|
200 | OK | The agent was associated and returned | Agent |
400 | Bad Request | The agent name was invalid | None |
401 | Unauthorized | Invalid token or token timed out. | None |
403 | Forbidden | Attempt to access a restricted or admin-only resource. | None |
Get the agent associated to a model
Code samples
package main
import (
"bytes"
"net/http"
)
func main() {
headers := map[string][]string{
"Accept": []string{"*/*"},
"Authorization": []string{"Bearer {access-token}"},
}
data := bytes.NewBuffer([]byte{jsonReq})
req, err := http.NewRequest("GET", "/ai/models/{model_id}/agent", data)
req.Header = headers
client := &http.Client{}
resp, err := client.Do(req)
// ...
}
const headers = {
'Accept':'*/*',
'Authorization':'Bearer {access-token}'
};
fetch('/ai/models/{model_id}/agent',
{
method: 'GET',
headers: headers
})
.then(function(res) {
return res.json();
}).then(function(body) {
console.log(body);
});
import requests
headers = {
'Accept': '*/*',
'Authorization': 'Bearer {access-token}'
}
r = requests.get('/ai/models/{model_id}/agent', headers = headers)
print(r.json())
require 'rest-client'
require 'json'
headers = {
'Accept' => '*/*',
'Authorization' => 'Bearer {access-token}'
}
result = RestClient.get '/ai/models/{model_id}/agent',
params: {
}, headers: headers
p JSON.parse(result)
GET /models/{model_id}/agent
Example responses
200 Response
Responses
Status | Meaning | Description | Schema |
---|---|---|---|
200 | OK | The agent | Agent |
401 | Unauthorized | Invalid token or token timed out. | None |
403 | Forbidden | Attempt to access a restricted or admin-only resource. | None |
404 | Not Found | The model doesn't exist | None |
Asset
Delete an asset from all associated models
Code samples
package main
import (
"bytes"
"net/http"
)
func main() {
headers := map[string][]string{
"Authorization": []string{"Bearer {access-token}"},
}
data := bytes.NewBuffer([]byte{jsonReq})
req, err := http.NewRequest("DELETE", "/ai/assets/{asset_id}", data)
req.Header = headers
client := &http.Client{}
resp, err := client.Do(req)
// ...
}
const headers = {
'Authorization':'Bearer {access-token}'
};
fetch('/ai/assets/{asset_id}',
{
method: 'DELETE',
headers: headers
})
.then(function(res) {
return res.json();
}).then(function(body) {
console.log(body);
});
import requests
headers = {
'Authorization': 'Bearer {access-token}'
}
r = requests.delete('/ai/assets/{asset_id}', headers = headers)
print(r.json())
require 'rest-client'
require 'json'
headers = {
'Authorization' => 'Bearer {access-token}'
}
result = RestClient.delete '/ai/assets/{asset_id}',
params: {
}, headers: headers
p JSON.parse(result)
DELETE /assets/{asset_id}
Parameters
Name | In | Type | Required | Description |
---|---|---|---|---|
asset_id | path | int | true | none |
Responses
Status | Meaning | Description | Schema |
---|---|---|---|
204 | No Content | The Asset was disassociated from Models | None |
400 | Bad Request | The Asset data was invalid | None |
401 | Unauthorized | Invalid token or token timed out. | None |
403 | Forbidden | Attempt to access a restricted or admin-only resource. | None |
Get a list of models associated with an asset
Code samples
package main
import (
"bytes"
"net/http"
)
func main() {
headers := map[string][]string{
"Authorization": []string{"Bearer {access-token}"},
}
data := bytes.NewBuffer([]byte{jsonReq})
req, err := http.NewRequest("GET", "/ai/assets/{asset_id}", data)
req.Header = headers
client := &http.Client{}
resp, err := client.Do(req)
// ...
}
const headers = {
'Authorization':'Bearer {access-token}'
};
fetch('/ai/assets/{asset_id}',
{
method: 'GET',
headers: headers
})
.then(function(res) {
return res.json();
}).then(function(body) {
console.log(body);
});
import requests
headers = {
'Authorization': 'Bearer {access-token}'
}
r = requests.get('/ai/assets/{asset_id}', headers = headers)
print(r.json())
require 'rest-client'
require 'json'
headers = {
'Authorization' => 'Bearer {access-token}'
}
result = RestClient.get '/ai/assets/{asset_id}',
params: {
}, headers: headers
p JSON.parse(result)
GET /assets/{asset_id}
Parameters
Name | In | Type | Required | Description |
---|---|---|---|---|
asset_id | path | int | true | none |
Responses
Status | Meaning | Description | Schema |
---|---|---|---|
200 | OK | The list of associated models | None |
400 | Bad Request | The Asset data was invalid | None |
401 | Unauthorized | Invalid token or token timed out. | None |
403 | Forbidden | Attempt to access a restricted or admin-only resource. | None |
Authentication
Login and get token
Code samples
package main
import (
"bytes"
"net/http"
)
func main() {
headers := map[string][]string{
"Content-Type": []string{"application/x-www-form-urlencoded"},
"Accept": []string{"*/*"},
}
data := bytes.NewBuffer([]byte{jsonReq})
req, err := http.NewRequest("POST", "/ai/auth", data)
req.Header = headers
client := &http.Client{}
resp, err := client.Do(req)
// ...
}
const inputBody = '{
"type": "object",
"properties": {
"username": {
"description": "Your username",
"type": "string"
},
"password": {
"description": "your password",
"type": "string"
}
},
"required": [
"username",
"password"
]
}';
const headers = {
'Content-Type':'application/x-www-form-urlencoded',
'Accept':'*/*'
};
fetch('/ai/auth',
{
method: 'POST',
body: inputBody,
headers: headers
})
.then(function(res) {
return res.json();
}).then(function(body) {
console.log(body);
});
import requests
headers = {
'Content-Type': 'application/x-www-form-urlencoded',
'Accept': '*/*'
}
r = requests.post('/ai/auth', headers = headers)
print(r.json())
require 'rest-client'
require 'json'
headers = {
'Content-Type' => 'application/x-www-form-urlencoded',
'Accept' => '*/*'
}
result = RestClient.post '/ai/auth',
params: {
}, headers: headers
p JSON.parse(result)
POST /auth
Use this endpoint to obtain a bearer token, which can be passed in an Authorization
header to any other endpoint that requires authentication. Note: Unlike other endpoints, the POST /auth
endpoint requires username and password to be passed using Content-Type: application/x-www-form-urlencoded
.
Body parameter
type: object
properties:
username:
description: Your username
type: string
password:
description: your password
type: string
required:
- username
- password
Parameters
Name | In | Type | Required | Description |
---|---|---|---|---|
body | body | object | true | none |
» username | body | string | true | Your username |
» password | body | string | true | your password |
Example responses
200 Response
Responses
Status | Meaning | Description | Schema |
---|---|---|---|
200 | OK | The token response | UserSwagger |
404 | Not Found | Token info not available | None |
Delete an auth token
Code samples
package main
import (
"bytes"
"net/http"
)
func main() {
headers := map[string][]string{
"Authorization": []string{"Bearer {access-token}"},
}
data := bytes.NewBuffer([]byte{jsonReq})
req, err := http.NewRequest("DELETE", "/ai/auth", data)
req.Header = headers
client := &http.Client{}
resp, err := client.Do(req)
// ...
}
const headers = {
'Authorization':'Bearer {access-token}'
};
fetch('/ai/auth',
{
method: 'DELETE',
headers: headers
})
.then(function(res) {
return res.json();
}).then(function(body) {
console.log(body);
});
import requests
headers = {
'Authorization': 'Bearer {access-token}'
}
r = requests.delete('/ai/auth', headers = headers)
print(r.json())
require 'rest-client'
require 'json'
headers = {
'Authorization' => 'Bearer {access-token}'
}
result = RestClient.delete '/ai/auth',
params: {
}, headers: headers
p JSON.parse(result)
DELETE /auth
Responses
Status | Meaning | Description | Schema |
---|---|---|---|
200 | OK | The token was deleted | None |
404 | Not Found | Token info not available | None |
Get token info
Code samples
package main
import (
"bytes"
"net/http"
)
func main() {
headers := map[string][]string{
"Accept": []string{"*/*"},
"Authorization": []string{"Bearer {access-token}"},
}
data := bytes.NewBuffer([]byte{jsonReq})
req, err := http.NewRequest("GET", "/ai/auth", data)
req.Header = headers
client := &http.Client{}
resp, err := client.Do(req)
// ...
}
const headers = {
'Accept':'*/*',
'Authorization':'Bearer {access-token}'
};
fetch('/ai/auth',
{
method: 'GET',
headers: headers
})
.then(function(res) {
return res.json();
}).then(function(body) {
console.log(body);
});
import requests
headers = {
'Accept': '*/*',
'Authorization': 'Bearer {access-token}'
}
r = requests.get('/ai/auth', headers = headers)
print(r.json())
require 'rest-client'
require 'json'
headers = {
'Accept' => '*/*',
'Authorization' => 'Bearer {access-token}'
}
result = RestClient.get '/ai/auth',
params: {
}, headers: headers
p JSON.parse(result)
GET /auth
Example responses
200 Response
Responses
Status | Meaning | Description | Schema |
---|---|---|---|
200 | OK | Get token info | SwaggerToken |
404 | Not Found | Token info not available | None |
Temporary Endpoint for Keycloak consumption
Code samples
package main
import (
"bytes"
"net/http"
)
func main() {
headers := map[string][]string{
"Content-Type": []string{"application/x-www-form-urlencoded"},
"Accept": []string{"*/*"},
"Authorization": []string{"Bearer {access-token}"},
}
data := bytes.NewBuffer([]byte{jsonReq})
req, err := http.NewRequest("POST", "/ai/internal/auth", data)
req.Header = headers
client := &http.Client{}
resp, err := client.Do(req)
// ...
}
const inputBody = '{
"type": "object",
"properties": {
"username": {
"description": "Your username",
"type": "string"
},
"password": {
"description": "your password",
"type": "string"
}
},
"required": [
"username",
"password"
]
}';
const headers = {
'Content-Type':'application/x-www-form-urlencoded',
'Accept':'*/*',
'Authorization':'Bearer {access-token}'
};
fetch('/ai/internal/auth',
{
method: 'POST',
body: inputBody,
headers: headers
})
.then(function(res) {
return res.json();
}).then(function(body) {
console.log(body);
});
import requests
headers = {
'Content-Type': 'application/x-www-form-urlencoded',
'Accept': '*/*',
'Authorization': 'Bearer {access-token}'
}
r = requests.post('/ai/internal/auth', headers = headers)
print(r.json())
require 'rest-client'
require 'json'
headers = {
'Content-Type' => 'application/x-www-form-urlencoded',
'Accept' => '*/*',
'Authorization' => 'Bearer {access-token}'
}
result = RestClient.post '/ai/internal/auth',
params: {
}, headers: headers
p JSON.parse(result)
POST /internal/auth
Use this endpoint to obtain user details with username and password. To be used by Keycloak for login. Requires username and password to be passed using Content-Type: application/x-www-form-urlencoded
.
Body parameter
type: object
properties:
username:
description: Your username
type: string
password:
description: your password
type: string
required:
- username
- password
Parameters
Name | In | Type | Required | Description |
---|---|---|---|---|
body | body | object | true | none |
» username | body | string | true | Your username |
» password | body | string | true | your password |
Example responses
200 Response
Responses
Status | Meaning | Description | Schema |
---|---|---|---|
200 | OK | The token response | SwaggerUser |
400 | Bad Request | Bad request | None |
404 | Not Found | Token info not available | None |
Coverage
Update a coverage model
Code samples
package main
import (
"bytes"
"net/http"
)
func main() {
headers := map[string][]string{
"Content-Type": []string{"application/json"},
"Accept": []string{"*/*"},
"Authorization": []string{"Bearer {access-token}"},
}
data := bytes.NewBuffer([]byte{jsonReq})
req, err := http.NewRequest("PUT", "/ai/coverage/model/{id}", data)
req.Header = headers
client := &http.Client{}
resp, err := client.Do(req)
// ...
}
const inputBody = '{
"type": "object",
"properties": {
"id": {
"name": "id",
"type": "integer"
},
"name": {
"name": "name",
"type": "string"
},
"variable_depth": {
"name": "variable_depth",
"type": "integer"
},
"path_depth": {
"name": "path_depth",
"type": "integer"
},
"active": {
"name": "active",
"type": "boolean"
},
"created": {
"name": "created",
"type": "string"
}
}
}';
const headers = {
'Content-Type':'application/json',
'Accept':'*/*',
'Authorization':'Bearer {access-token}'
};
fetch('/ai/coverage/model/{id}',
{
method: 'PUT',
body: inputBody,
headers: headers
})
.then(function(res) {
return res.json();
}).then(function(body) {
console.log(body);
});
import requests
headers = {
'Content-Type': 'application/json',
'Accept': '*/*',
'Authorization': 'Bearer {access-token}'
}
r = requests.put('/ai/coverage/model/{id}', headers = headers)
print(r.json())
require 'rest-client'
require 'json'
headers = {
'Content-Type' => 'application/json',
'Accept' => '*/*',
'Authorization' => 'Bearer {access-token}'
}
result = RestClient.put '/ai/coverage/model/{id}',
params: {
}, headers: headers
p JSON.parse(result)
PUT /coverage/model/{id}
Body parameter
{
"type": "object",
"properties": {
"id": {
"name": "id",
"type": "integer"
},
"name": {
"name": "name",
"type": "string"
},
"variable_depth": {
"name": "variable_depth",
"type": "integer"
},
"path_depth": {
"name": "path_depth",
"type": "integer"
},
"active": {
"name": "active",
"type": "boolean"
},
"created": {
"name": "created",
"type": "string"
}
}
}
Parameters
Name | In | Type | Required | Description |
---|---|---|---|---|
body | body | Coverage_Model | true | Request body |
Example responses
200 Response
Responses
Status | Meaning | Description | Schema |
---|---|---|---|
200 | OK | The coverage model was updated and returned | CoverageModel |
400 | Bad Request | The coverage model data was invalid | None |
401 | Unauthorized | Invalid token or token timed out. | None |
403 | Forbidden | Attempt to access a restricted or admin-only resource. | None |
Delete a coverage model
Code samples
package main
import (
"bytes"
"net/http"
)
func main() {
headers := map[string][]string{
"Authorization": []string{"Bearer {access-token}"},
}
data := bytes.NewBuffer([]byte{jsonReq})
req, err := http.NewRequest("DELETE", "/ai/coverage/model/{id}", data)
req.Header = headers
client := &http.Client{}
resp, err := client.Do(req)
// ...
}
const headers = {
'Authorization':'Bearer {access-token}'
};
fetch('/ai/coverage/model/{id}',
{
method: 'DELETE',
headers: headers
})
.then(function(res) {
return res.json();
}).then(function(body) {
console.log(body);
});
import requests
headers = {
'Authorization': 'Bearer {access-token}'
}
r = requests.delete('/ai/coverage/model/{id}', headers = headers)
print(r.json())
require 'rest-client'
require 'json'
headers = {
'Authorization' => 'Bearer {access-token}'
}
result = RestClient.delete '/ai/coverage/model/{id}',
params: {
}, headers: headers
p JSON.parse(result)
DELETE /coverage/model/{id}
Responses
Status | Meaning | Description | Schema |
---|---|---|---|
200 | OK | The coverage model was deleted | None |
401 | Unauthorized | Invalid token or token timed out. | None |
403 | Forbidden | Attempt to access a restricted or admin-only resource. | None |
404 | Not Found | The coverage model doesn't exist | None |
Get a coverage model by id
Code samples
package main
import (
"bytes"
"net/http"
)
func main() {
headers := map[string][]string{
"Accept": []string{"*/*"},
"Authorization": []string{"Bearer {access-token}"},
}
data := bytes.NewBuffer([]byte{jsonReq})
req, err := http.NewRequest("GET", "/ai/coverage/model/{id}", data)
req.Header = headers
client := &http.Client{}
resp, err := client.Do(req)
// ...
}
const headers = {
'Accept':'*/*',
'Authorization':'Bearer {access-token}'
};
fetch('/ai/coverage/model/{id}',
{
method: 'GET',
headers: headers
})
.then(function(res) {
return res.json();
}).then(function(body) {
console.log(body);
});
import requests
headers = {
'Accept': '*/*',
'Authorization': 'Bearer {access-token}'
}
r = requests.get('/ai/coverage/model/{id}', headers = headers)
print(r.json())
require 'rest-client'
require 'json'
headers = {
'Accept' => '*/*',
'Authorization' => 'Bearer {access-token}'
}
result = RestClient.get '/ai/coverage/model/{id}',
params: {
}, headers: headers
p JSON.parse(result)
GET /coverage/model/{id}
Example responses
200 Response
Responses
Status | Meaning | Description | Schema |
---|---|---|---|
200 | OK | A coverage model | CoverageModel |
401 | Unauthorized | Invalid token or token timed out. | None |
403 | Forbidden | Attempt to access a restricted or admin-only resource. | None |
404 | Not Found | The coverage model doesn't exist | None |
Create a new coverage model
Code samples
package main
import (
"bytes"
"net/http"
)
func main() {
headers := map[string][]string{
"Content-Type": []string{"application/json"},
"Accept": []string{"*/*"},
"Authorization": []string{"Bearer {access-token}"},
}
data := bytes.NewBuffer([]byte{jsonReq})
req, err := http.NewRequest("POST", "/ai/coverage/models", data)
req.Header = headers
client := &http.Client{}
resp, err := client.Do(req)
// ...
}
const inputBody = '{
"properties": {
"id": {
"type": "integer",
"name": "id"
},
"name": {
"type": "string",
"name": "name"
},
"variable_depth": {
"type": "integer",
"name": "variable_depth"
},
"path_depth": {
"type": "integer",
"name": "path_depth"
},
"active": {
"type": "boolean",
"name": "active"
},
"created": {
"type": "string",
"name": "created"
}
}
}';
const headers = {
'Content-Type':'application/json',
'Accept':'*/*',
'Authorization':'Bearer {access-token}'
};
fetch('/ai/coverage/models',
{
method: 'POST',
body: inputBody,
headers: headers
})
.then(function(res) {
return res.json();
}).then(function(body) {
console.log(body);
});
import requests
headers = {
'Content-Type': 'application/json',
'Accept': '*/*',
'Authorization': 'Bearer {access-token}'
}
r = requests.post('/ai/coverage/models', headers = headers)
print(r.json())
require 'rest-client'
require 'json'
headers = {
'Content-Type' => 'application/json',
'Accept' => '*/*',
'Authorization' => 'Bearer {access-token}'
}
result = RestClient.post '/ai/coverage/models',
params: {
}, headers: headers
p JSON.parse(result)
POST /coverage/models
Body parameter
{
"properties": {
"id": {
"type": "integer",
"name": "id"
},
"name": {
"type": "string",
"name": "name"
},
"variable_depth": {
"type": "integer",
"name": "variable_depth"
},
"path_depth": {
"type": "integer",
"name": "path_depth"
},
"active": {
"type": "boolean",
"name": "active"
},
"created": {
"type": "string",
"name": "created"
}
}
}
Parameters
Name | In | Type | Required | Description |
---|---|---|---|---|
body | body | CoverageModel | true | Request body |
Example responses
201 Response
Responses
Status | Meaning | Description | Schema |
---|---|---|---|
201 | Created | The coverage model was created and returned | CoverageModel |
400 | Bad Request | The coverage model data was invalid | None |
401 | Unauthorized | Invalid token or token timed out. | None |
403 | Forbidden | Attempt to access a restricted or admin-only resource. | None |
409 | Conflict | The coverage model already exists | None |
Get a list of all coverage models
Code samples
package main
import (
"bytes"
"net/http"
)
func main() {
headers := map[string][]string{
"Accept": []string{"*/*"},
"Authorization": []string{"Bearer {access-token}"},
}
data := bytes.NewBuffer([]byte{jsonReq})
req, err := http.NewRequest("GET", "/ai/coverage/models", data)
req.Header = headers
client := &http.Client{}
resp, err := client.Do(req)
// ...
}
const headers = {
'Accept':'*/*',
'Authorization':'Bearer {access-token}'
};
fetch('/ai/coverage/models',
{
method: 'GET',
headers: headers
})
.then(function(res) {
return res.json();
}).then(function(body) {
console.log(body);
});
import requests
headers = {
'Accept': '*/*',
'Authorization': 'Bearer {access-token}'
}
r = requests.get('/ai/coverage/models', headers = headers)
print(r.json())
require 'rest-client'
require 'json'
headers = {
'Accept' => '*/*',
'Authorization' => 'Bearer {access-token}'
}
result = RestClient.get '/ai/coverage/models',
params: {
}, headers: headers
p JSON.parse(result)
GET /coverage/models
Example responses
200 Response
Responses
Status | Meaning | Description | Schema |
---|---|---|---|
200 | OK | The list of coverage models | Inline |
401 | Unauthorized | Invalid token or token timed out. | None |
403 | Forbidden | Attempt to access a restricted or admin-only resource. | None |
Response Schema
Status Code 200
Name | Type | Required | Restrictions | Description |
---|---|---|---|---|
anonymous | [CoverageModel] | false | none | none |
» id | integer | false | none | none |
» name | string | false | none | none |
» variable_depth | integer | false | none | none |
» path_depth | integer | false | none | none |
» active | boolean | false | none | none |
» created | string | false | none | none |
Errors
List Errors Details
Code samples
package main
import (
"bytes"
"net/http"
)
func main() {
headers := map[string][]string{
"Accept": []string{"*/*"},
"Authorization": []string{"Bearer {access-token}"},
}
data := bytes.NewBuffer([]byte{jsonReq})
req, err := http.NewRequest("GET", "/ai/errors", data)
req.Header = headers
client := &http.Client{}
resp, err := client.Do(req)
// ...
}
const headers = {
'Accept':'*/*',
'Authorization':'Bearer {access-token}'
};
fetch('/ai/errors',
{
method: 'GET',
headers: headers
})
.then(function(res) {
return res.json();
}).then(function(body) {
console.log(body);
});
import requests
headers = {
'Accept': '*/*',
'Authorization': 'Bearer {access-token}'
}
r = requests.get('/ai/errors', headers = headers)
print(r.json())
require 'rest-client'
require 'json'
headers = {
'Accept' => '*/*',
'Authorization' => 'Bearer {access-token}'
}
result = RestClient.get '/ai/errors',
params: {
}, headers: headers
p JSON.parse(result)
GET /errors
Parameters
Name | In | Type | Required | Description |
---|---|---|---|---|
id | query | integer | false | The Error ID to include in the results |
task_instance_id | query | string | false | The Task Instance ID to include in the results |
offset | query | string | false | Desired index of first item in response |
limit | query | string | false | Maximum number of returned items |
Example responses
200 Response
Responses
Status | Meaning | Description | Schema |
---|---|---|---|
200 | OK | The matching errors | Inline |
401 | Unauthorized | Invalid token or token timed out. | None |
403 | Forbidden | Attempt to access a restricted or admin-only resource. | None |
Response Schema
Status Code 200
Name | Type | Required | Restrictions | Description |
---|---|---|---|---|
» items | [Error] | false | none | none |
»» id | integer | true | none | none |
»» created | string | true | none | none |
»» task_instance_id | string | true | none | none |
»» sender | string | true | none | none |
»» severity | string | true | none | none |
»» message | string | true | none | none |
»» error_time | string | true | none | none |
» total_count | integer | false | none | none |
» date_as_of | string(date-time) | false | none | none |
Groups
Create a new group
Code samples
package main
import (
"bytes"
"net/http"
)
func main() {
headers := map[string][]string{
"Content-Type": []string{"application/json"},
"Accept": []string{"*/*"},
"Authorization": []string{"Bearer {access-token}"},
}
data := bytes.NewBuffer([]byte{jsonReq})
req, err := http.NewRequest("POST", "/ai/groups", data)
req.Header = headers
client := &http.Client{}
resp, err := client.Do(req)
// ...
}
const inputBody = '{
"type": "object",
"properties": {
"id": {
"name": "id",
"type": "integer"
},
"groupname": {
"name": "groupname",
"type": "string"
}
},
"required": [
"groupname"
]
}';
const headers = {
'Content-Type':'application/json',
'Accept':'*/*',
'Authorization':'Bearer {access-token}'
};
fetch('/ai/groups',
{
method: 'POST',
body: inputBody,
headers: headers
})
.then(function(res) {
return res.json();
}).then(function(body) {
console.log(body);
});
import requests
headers = {
'Content-Type': 'application/json',
'Accept': '*/*',
'Authorization': 'Bearer {access-token}'
}
r = requests.post('/ai/groups', headers = headers)
print(r.json())
require 'rest-client'
require 'json'
headers = {
'Content-Type' => 'application/json',
'Accept' => '*/*',
'Authorization' => 'Bearer {access-token}'
}
result = RestClient.post '/ai/groups',
params: {
}, headers: headers
p JSON.parse(result)
POST /groups
Body parameter
{
"type": "object",
"properties": {
"id": {
"name": "id",
"type": "integer"
},
"groupname": {
"name": "groupname",
"type": "string"
}
},
"required": [
"groupname"
]
}
Parameters
Name | In | Type | Required | Description |
---|---|---|---|---|
body | body | Group | true | Request body |
Example responses
200 Response
Responses
Status | Meaning | Description | Schema |
---|---|---|---|
200 | OK | The group was created and returned | Groups |
400 | Bad Request | The group data was invalid | None |
401 | Unauthorized | Invalid token or token timed out. | None |
403 | Forbidden | Attempt to access a restricted or admin-only resource. | None |
Get a list of all groups
Code samples
package main
import (
"bytes"
"net/http"
)
func main() {
headers := map[string][]string{
"Accept": []string{"*/*"},
"Authorization": []string{"Bearer {access-token}"},
}
data := bytes.NewBuffer([]byte{jsonReq})
req, err := http.NewRequest("GET", "/ai/groups", data)
req.Header = headers
client := &http.Client{}
resp, err := client.Do(req)
// ...
}
const headers = {
'Accept':'*/*',
'Authorization':'Bearer {access-token}'
};
fetch('/ai/groups',
{
method: 'GET',
headers: headers
})
.then(function(res) {
return res.json();
}).then(function(body) {
console.log(body);
});
import requests
headers = {
'Accept': '*/*',
'Authorization': 'Bearer {access-token}'
}
r = requests.get('/ai/groups', headers = headers)
print(r.json())
require 'rest-client'
require 'json'
headers = {
'Accept' => '*/*',
'Authorization' => 'Bearer {access-token}'
}
result = RestClient.get '/ai/groups',
params: {
}, headers: headers
p JSON.parse(result)
GET /groups
Example responses
200 Response
Responses
Status | Meaning | Description | Schema |
---|---|---|---|
200 | OK | The list of groups | Inline |
401 | Unauthorized | Invalid token or token timed out. | None |
403 | Forbidden | Attempt to access a restricted or admin-only resource. | None |
404 | Not Found | There are currently no groups | None |
Response Schema
Status Code 200
Name | Type | Required | Restrictions | Description |
---|---|---|---|---|
anonymous | [Groups] | false | none | none |
» id | integer | false | none | none |
» groupname | string | true | none | none |
Update a group
Code samples
package main
import (
"bytes"
"net/http"
)
func main() {
headers := map[string][]string{
"Content-Type": []string{"application/json"},
"Accept": []string{"*/*"},
"Authorization": []string{"Bearer {access-token}"},
}
data := bytes.NewBuffer([]byte{jsonReq})
req, err := http.NewRequest("PUT", "/ai/groups/{id}", data)
req.Header = headers
client := &http.Client{}
resp, err := client.Do(req)
// ...
}
const inputBody = '{
"type": "object",
"properties": {
"id": {
"name": "id",
"type": "integer"
},
"groupname": {
"name": "groupname",
"type": "string"
}
},
"required": [
"groupname"
]
}';
const headers = {
'Content-Type':'application/json',
'Accept':'*/*',
'Authorization':'Bearer {access-token}'
};
fetch('/ai/groups/{id}',
{
method: 'PUT',
body: inputBody,
headers: headers
})
.then(function(res) {
return res.json();
}).then(function(body) {
console.log(body);
});
import requests
headers = {
'Content-Type': 'application/json',
'Accept': '*/*',
'Authorization': 'Bearer {access-token}'
}
r = requests.put('/ai/groups/{id}', headers = headers)
print(r.json())
require 'rest-client'
require 'json'
headers = {
'Content-Type' => 'application/json',
'Accept' => '*/*',
'Authorization' => 'Bearer {access-token}'
}
result = RestClient.put '/ai/groups/{id}',
params: {
}, headers: headers
p JSON.parse(result)
PUT /groups/{id}
Body parameter
{
"type": "object",
"properties": {
"id": {
"name": "id",
"type": "integer"
},
"groupname": {
"name": "groupname",
"type": "string"
}
},
"required": [
"groupname"
]
}
Parameters
Name | In | Type | Required | Description |
---|---|---|---|---|
body | body | Group | true | Request body |
Example responses
200 Response
Responses
Status | Meaning | Description | Schema |
---|---|---|---|
200 | OK | The group was updated and returned | Groups |
400 | Bad Request | The group data was invalid | None |
401 | Unauthorized | Invalid token or token timed out. | None |
403 | Forbidden | Attempt to access a restricted or admin-only resource. | None |
Delete a group
Code samples
package main
import (
"bytes"
"net/http"
)
func main() {
headers := map[string][]string{
"Authorization": []string{"Bearer {access-token}"},
}
data := bytes.NewBuffer([]byte{jsonReq})
req, err := http.NewRequest("DELETE", "/ai/groups/{id}", data)
req.Header = headers
client := &http.Client{}
resp, err := client.Do(req)
// ...
}
const headers = {
'Authorization':'Bearer {access-token}'
};
fetch('/ai/groups/{id}',
{
method: 'DELETE',
headers: headers
})
.then(function(res) {
return res.json();
}).then(function(body) {
console.log(body);
});
import requests
headers = {
'Authorization': 'Bearer {access-token}'
}
r = requests.delete('/ai/groups/{id}', headers = headers)
print(r.json())
require 'rest-client'
require 'json'
headers = {
'Authorization' => 'Bearer {access-token}'
}
result = RestClient.delete '/ai/groups/{id}',
params: {
}, headers: headers
p JSON.parse(result)
DELETE /groups/{id}
Responses
Status | Meaning | Description | Schema |
---|---|---|---|
200 | OK | The group was deleted | None |
401 | Unauthorized | Invalid token or token timed out. | None |
403 | Forbidden | Attempt to access a restricted or admin-only resource. | None |
404 | Not Found | Group not found | None |
Get a group by id
Code samples
package main
import (
"bytes"
"net/http"
)
func main() {
headers := map[string][]string{
"Accept": []string{"*/*"},
"Authorization": []string{"Bearer {access-token}"},
}
data := bytes.NewBuffer([]byte{jsonReq})
req, err := http.NewRequest("GET", "/ai/groups/{id}", data)
req.Header = headers
client := &http.Client{}
resp, err := client.Do(req)
// ...
}
const headers = {
'Accept':'*/*',
'Authorization':'Bearer {access-token}'
};
fetch('/ai/groups/{id}',
{
method: 'GET',
headers: headers
})
.then(function(res) {
return res.json();
}).then(function(body) {
console.log(body);
});
import requests
headers = {
'Accept': '*/*',
'Authorization': 'Bearer {access-token}'
}
r = requests.get('/ai/groups/{id}', headers = headers)
print(r.json())
require 'rest-client'
require 'json'
headers = {
'Accept' => '*/*',
'Authorization' => 'Bearer {access-token}'
}
result = RestClient.get '/ai/groups/{id}',
params: {
}, headers: headers
p JSON.parse(result)
GET /groups/{id}
Example responses
200 Response
Responses
Status | Meaning | Description | Schema |
---|---|---|---|
200 | OK | A group | Groups |
401 | Unauthorized | Invalid token or token timed out. | None |
403 | Forbidden | Attempt to access a restricted or admin-only resource. | None |
Licenses
Update all licenses
Code samples
package main
import (
"bytes"
"net/http"
)
func main() {
headers := map[string][]string{
"Authorization": []string{"Bearer {access-token}"},
}
data := bytes.NewBuffer([]byte{jsonReq})
req, err := http.NewRequest("PATCH", "/ai/licenses", data)
req.Header = headers
client := &http.Client{}
resp, err := client.Do(req)
// ...
}
const headers = {
'Authorization':'Bearer {access-token}'
};
fetch('/ai/licenses',
{
method: 'PATCH',
headers: headers
})
.then(function(res) {
return res.json();
}).then(function(body) {
console.log(body);
});
import requests
headers = {
'Authorization': 'Bearer {access-token}'
}
r = requests.patch('/ai/licenses', headers = headers)
print(r.json())
require 'rest-client'
require 'json'
headers = {
'Authorization' => 'Bearer {access-token}'
}
result = RestClient.patch '/ai/licenses',
params: {
}, headers: headers
p JSON.parse(result)
PATCH /licenses
Responses
Status | Meaning | Description | Schema |
---|---|---|---|
200 | OK | The license was updated | None |
403 | Forbidden | Access denied | None |
Create a new license
Code samples
package main
import (
"bytes"
"net/http"
)
func main() {
headers := map[string][]string{
"Content-Type": []string{"application/json"},
"Accept": []string{"*/*"},
"Authorization": []string{"Bearer {access-token}"},
}
data := bytes.NewBuffer([]byte{jsonReq})
req, err := http.NewRequest("POST", "/ai/licenses", data)
req.Header = headers
client := &http.Client{}
resp, err := client.Do(req)
// ...
}
const inputBody = '{
"type": "object",
"properties": {
"serialnumber": {
"name": "serialnumber",
"type": "integer"
},
"license": {
"name": "license",
"type": "string"
},
"eula_accepted": {
"name": "eula_accepted",
"type": "boolean"
}
},
"required": [
"serialnumber",
"license",
"eula_accepted"
]
}';
const headers = {
'Content-Type':'application/json',
'Accept':'*/*',
'Authorization':'Bearer {access-token}'
};
fetch('/ai/licenses',
{
method: 'POST',
body: inputBody,
headers: headers
})
.then(function(res) {
return res.json();
}).then(function(body) {
console.log(body);
});
import requests
headers = {
'Content-Type': 'application/json',
'Accept': '*/*',
'Authorization': 'Bearer {access-token}'
}
r = requests.post('/ai/licenses', headers = headers)
print(r.json())
require 'rest-client'
require 'json'
headers = {
'Content-Type' => 'application/json',
'Accept' => '*/*',
'Authorization' => 'Bearer {access-token}'
}
result = RestClient.post '/ai/licenses',
params: {
}, headers: headers
p JSON.parse(result)
POST /licenses
Body parameter
{
"type": "object",
"properties": {
"serialnumber": {
"name": "serialnumber",
"type": "integer"
},
"license": {
"name": "license",
"type": "string"
},
"eula_accepted": {
"name": "eula_accepted",
"type": "boolean"
}
},
"required": [
"serialnumber",
"license",
"eula_accepted"
]
}
Parameters
Name | In | Type | Required | Description |
---|---|---|---|---|
body | body | License | true | Request body |
Example responses
200 Response
Responses
Status | Meaning | Description | Schema |
---|---|---|---|
200 | OK | The license was created and returned | Licenses |
400 | Bad Request | The license params were invalid or the license already exists | None |
403 | Forbidden | Access denied | None |
Get a list of licenses
Code samples
package main
import (
"bytes"
"net/http"
)
func main() {
headers := map[string][]string{
"Accept": []string{"*/*"},
"Authorization": []string{"Bearer {access-token}"},
}
data := bytes.NewBuffer([]byte{jsonReq})
req, err := http.NewRequest("GET", "/ai/licenses", data)
req.Header = headers
client := &http.Client{}
resp, err := client.Do(req)
// ...
}
const headers = {
'Accept':'*/*',
'Authorization':'Bearer {access-token}'
};
fetch('/ai/licenses',
{
method: 'GET',
headers: headers
})
.then(function(res) {
return res.json();
}).then(function(body) {
console.log(body);
});
import requests
headers = {
'Accept': '*/*',
'Authorization': 'Bearer {access-token}'
}
r = requests.get('/ai/licenses', headers = headers)
print(r.json())
require 'rest-client'
require 'json'
headers = {
'Accept' => '*/*',
'Authorization' => 'Bearer {access-token}'
}
result = RestClient.get '/ai/licenses',
params: {
}, headers: headers
p JSON.parse(result)
GET /licenses
Example responses
200 Response
Responses
Status | Meaning | Description | Schema |
---|---|---|---|
200 | OK | The list of licenses | Inline |
403 | Forbidden | User must be an Admin | None |
404 | Not Found | There are currently no licenses | None |
Response Schema
Status Code 200
Name | Type | Required | Restrictions | Description |
---|---|---|---|---|
anonymous | [Licenses] | false | none | none |
» serialnumber | integer | true | none | none |
» license | string | true | none | none |
» eula_accepted | boolean | true | none | none |
Delete a license
Code samples
package main
import (
"bytes"
"net/http"
)
func main() {
headers := map[string][]string{
"Authorization": []string{"Bearer {access-token}"},
}
data := bytes.NewBuffer([]byte{jsonReq})
req, err := http.NewRequest("DELETE", "/ai/licenses/{ser_num}", data)
req.Header = headers
client := &http.Client{}
resp, err := client.Do(req)
// ...
}
const headers = {
'Authorization':'Bearer {access-token}'
};
fetch('/ai/licenses/{ser_num}',
{
method: 'DELETE',
headers: headers
})
.then(function(res) {
return res.json();
}).then(function(body) {
console.log(body);
});
import requests
headers = {
'Authorization': 'Bearer {access-token}'
}
r = requests.delete('/ai/licenses/{ser_num}', headers = headers)
print(r.json())
require 'rest-client'
require 'json'
headers = {
'Authorization' => 'Bearer {access-token}'
}
result = RestClient.delete '/ai/licenses/{ser_num}',
params: {
}, headers: headers
p JSON.parse(result)
DELETE /licenses/{ser_num}
Responses
Status | Meaning | Description | Schema |
---|---|---|---|
200 | OK | The license was deleted | None |
404 | Not Found | License not found | None |
Get a license
Code samples
package main
import (
"bytes"
"net/http"
)
func main() {
headers := map[string][]string{
"Accept": []string{"*/*"},
"Authorization": []string{"Bearer {access-token}"},
}
data := bytes.NewBuffer([]byte{jsonReq})
req, err := http.NewRequest("GET", "/ai/licenses/{ser_num}", data)
req.Header = headers
client := &http.Client{}
resp, err := client.Do(req)
// ...
}
const headers = {
'Accept':'*/*',
'Authorization':'Bearer {access-token}'
};
fetch('/ai/licenses/{ser_num}',
{
method: 'GET',
headers: headers
})
.then(function(res) {
return res.json();
}).then(function(body) {
console.log(body);
});
import requests
headers = {
'Accept': '*/*',
'Authorization': 'Bearer {access-token}'
}
r = requests.get('/ai/licenses/{ser_num}', headers = headers)
print(r.json())
require 'rest-client'
require 'json'
headers = {
'Accept' => '*/*',
'Authorization' => 'Bearer {access-token}'
}
result = RestClient.get '/ai/licenses/{ser_num}',
params: {
}, headers: headers
p JSON.parse(result)
GET /licenses/{ser_num}
Example responses
200 Response
Responses
Status | Meaning | Description | Schema |
---|---|---|---|
200 | OK | An eggplant AI license | Licenses |
404 | Not Found | License not found | None |
Get status info
Code samples
package main
import (
"bytes"
"net/http"
)
func main() {
headers := map[string][]string{
"Accept": []string{"*/*"},
"Authorization": []string{"Bearer {access-token}"},
}
data := bytes.NewBuffer([]byte{jsonReq})
req, err := http.NewRequest("GET", "/ai/status", data)
req.Header = headers
client := &http.Client{}
resp, err := client.Do(req)
// ...
}
const headers = {
'Accept':'*/*',
'Authorization':'Bearer {access-token}'
};
fetch('/ai/status',
{
method: 'GET',
headers: headers
})
.then(function(res) {
return res.json();
}).then(function(body) {
console.log(body);
});
import requests
headers = {
'Accept': '*/*',
'Authorization': 'Bearer {access-token}'
}
r = requests.get('/ai/status', headers = headers)
print(r.json())
require 'rest-client'
require 'json'
headers = {
'Accept' => '*/*',
'Authorization' => 'Bearer {access-token}'
}
result = RestClient.get '/ai/status',
params: {
}, headers: headers
p JSON.parse(result)
GET /status
Example responses
200 Response
Responses
Status | Meaning | Description | Schema |
---|---|---|---|
200 | OK | Status details | LicenseStatus |
Get license usage details
Code samples
package main
import (
"bytes"
"net/http"
)
func main() {
headers := map[string][]string{
"Accept": []string{"*/*"},
"Authorization": []string{"Bearer {access-token}"},
}
data := bytes.NewBuffer([]byte{jsonReq})
req, err := http.NewRequest("GET", "/ai/usage", data)
req.Header = headers
client := &http.Client{}
resp, err := client.Do(req)
// ...
}
const headers = {
'Accept':'*/*',
'Authorization':'Bearer {access-token}'
};
fetch('/ai/usage',
{
method: 'GET',
headers: headers
})
.then(function(res) {
return res.json();
}).then(function(body) {
console.log(body);
});
import requests
headers = {
'Accept': '*/*',
'Authorization': 'Bearer {access-token}'
}
r = requests.get('/ai/usage', headers = headers)
print(r.json())
require 'rest-client'
require 'json'
headers = {
'Accept' => '*/*',
'Authorization' => 'Bearer {access-token}'
}
result = RestClient.get '/ai/usage',
params: {
}, headers: headers
p JSON.parse(result)
GET /usage
Example responses
200 Response
Responses
Status | Meaning | Description | Schema |
---|---|---|---|
200 | OK | License usage details | LicenseUsage |
Models
Create a new model
Code samples
package main
import (
"bytes"
"net/http"
)
func main() {
headers := map[string][]string{
"Content-Type": []string{"application/json"},
"Accept": []string{"*/*"},
"Authorization": []string{"Bearer {access-token}"},
}
data := bytes.NewBuffer([]byte{jsonReq})
req, err := http.NewRequest("POST", "/ai/models", data)
req.Header = headers
client := &http.Client{}
resp, err := client.Do(req)
// ...
}
const inputBody = '{
"properties": {
"id": {
"type": "integer",
"name": "id"
},
"modeluuid": {
"type": "string",
"name": "modeluuid"
},
"name": {
"type": "string",
"name": "name"
},
"group": {
"type": "string",
"name": "group"
},
"agent": {
"type": "integer",
"name": "agent"
},
"created": {
"type": "string",
"name": "created"
},
"updated": {
"type": "string",
"name": "updated"
},
"modeljson": {
"type": "string",
"name": "modeljson"
}
},
"required": [
"group"
]
}';
const headers = {
'Content-Type':'application/json',
'Accept':'*/*',
'Authorization':'Bearer {access-token}'
};
fetch('/ai/models',
{
method: 'POST',
body: inputBody,
headers: headers
})
.then(function(res) {
return res.json();
}).then(function(body) {
console.log(body);
});
import requests
headers = {
'Content-Type': 'application/json',
'Accept': '*/*',
'Authorization': 'Bearer {access-token}'
}
r = requests.post('/ai/models', headers = headers)
print(r.json())
require 'rest-client'
require 'json'
headers = {
'Content-Type' => 'application/json',
'Accept' => '*/*',
'Authorization' => 'Bearer {access-token}'
}
result = RestClient.post '/ai/models',
params: {
}, headers: headers
p JSON.parse(result)
POST /models
Body parameter
{
"properties": {
"id": {
"type": "integer",
"name": "id"
},
"modeluuid": {
"type": "string",
"name": "modeluuid"
},
"name": {
"type": "string",
"name": "name"
},
"group": {
"type": "string",
"name": "group"
},
"agent": {
"type": "integer",
"name": "agent"
},
"created": {
"type": "string",
"name": "created"
},
"updated": {
"type": "string",
"name": "updated"
},
"modeljson": {
"type": "string",
"name": "modeljson"
}
},
"required": [
"group"
]
}
Parameters
Name | In | Type | Required | Description |
---|---|---|---|---|
body | body | Model | true | Request body |
Example responses
200 Response
Responses
Status | Meaning | Description | Schema |
---|---|---|---|
200 | OK | The model was created and returned | Model |
400 | Bad Request | The model data was invalid | None |
401 | Unauthorized | Invalid token or token timed out. | None |
403 | Forbidden | Attempt to access a restricted or admin-only resource. | None |
409 | Conflict | The model already exists | None |
Get a list of all models
Code samples
package main
import (
"bytes"
"net/http"
)
func main() {
headers := map[string][]string{
"Accept": []string{"*/*"},
"Authorization": []string{"Bearer {access-token}"},
}
data := bytes.NewBuffer([]byte{jsonReq})
req, err := http.NewRequest("GET", "/ai/models", data)
req.Header = headers
client := &http.Client{}
resp, err := client.Do(req)
// ...
}
const headers = {
'Accept':'*/*',
'Authorization':'Bearer {access-token}'
};
fetch('/ai/models',
{
method: 'GET',
headers: headers
})
.then(function(res) {
return res.json();
}).then(function(body) {
console.log(body);
});
import requests
headers = {
'Accept': '*/*',
'Authorization': 'Bearer {access-token}'
}
r = requests.get('/ai/models', headers = headers)
print(r.json())
require 'rest-client'
require 'json'
headers = {
'Accept' => '*/*',
'Authorization' => 'Bearer {access-token}'
}
result = RestClient.get '/ai/models',
params: {
}, headers: headers
p JSON.parse(result)
GET /models
Example responses
200 Response
Responses
Status | Meaning | Description | Schema |
---|---|---|---|
200 | OK | The list of models | Inline |
401 | Unauthorized | Invalid token or token timed out. | None |
403 | Forbidden | Attempt to access a restricted or admin-only resource. | None |
404 | Not Found | There are currently no models | None |
Response Schema
Status Code 200
Name | Type | Required | Restrictions | Description |
---|---|---|---|---|
anonymous | [Model] | false | none | none |
» id | integer | false | none | none |
» modeluuid | string | false | none | none |
» name | string | false | none | none |
» group | string | true | none | none |
» agent | integer | false | none | none |
» created | string | false | none | none |
» updated | string | false | none | none |
» modeljson | string | false | none | none |
Update a model
Code samples
package main
import (
"bytes"
"net/http"
)
func main() {
headers := map[string][]string{
"Content-Type": []string{"application/json"},
"Accept": []string{"*/*"},
"Authorization": []string{"Bearer {access-token}"},
}
data := bytes.NewBuffer([]byte{jsonReq})
req, err := http.NewRequest("PUT", "/ai/models/{model_id}", data)
req.Header = headers
client := &http.Client{}
resp, err := client.Do(req)
// ...
}
const inputBody = '{
"properties": {
"id": {
"type": "integer",
"name": "id"
},
"modeluuid": {
"type": "string",
"name": "modeluuid"
},
"name": {
"type": "string",
"name": "name"
},
"group": {
"type": "string",
"name": "group"
},
"agent": {
"type": "integer",
"name": "agent"
},
"created": {
"type": "string",
"name": "created"
},
"updated": {
"type": "string",
"name": "updated"
},
"modeljson": {
"type": "string",
"name": "modeljson"
}
},
"required": [
"group"
]
}';
const headers = {
'Content-Type':'application/json',
'Accept':'*/*',
'Authorization':'Bearer {access-token}'
};
fetch('/ai/models/{model_id}',
{
method: 'PUT',
body: inputBody,
headers: headers
})
.then(function(res) {
return res.json();
}).then(function(body) {
console.log(body);
});
import requests
headers = {
'Content-Type': 'application/json',
'Accept': '*/*',
'Authorization': 'Bearer {access-token}'
}
r = requests.put('/ai/models/{model_id}', headers = headers)
print(r.json())
require 'rest-client'
require 'json'
headers = {
'Content-Type' => 'application/json',
'Accept' => '*/*',
'Authorization' => 'Bearer {access-token}'
}
result = RestClient.put '/ai/models/{model_id}',
params: {
}, headers: headers
p JSON.parse(result)
PUT /models/{model_id}
Body parameter
{
"properties": {
"id": {
"type": "integer",
"name": "id"
},
"modeluuid": {
"type": "string",
"name": "modeluuid"
},
"name": {
"type": "string",
"name": "name"
},
"group": {
"type": "string",
"name": "group"
},
"agent": {
"type": "integer",
"name": "agent"
},
"created": {
"type": "string",
"name": "created"
},
"updated": {
"type": "string",
"name": "updated"
},
"modeljson": {
"type": "string",
"name": "modeljson"
}
},
"required": [
"group"
]
}
Parameters
Name | In | Type | Required | Description |
---|---|---|---|---|
body | body | Model | true | Request body |
Example responses
200 Response
Responses
Status | Meaning | Description | Schema |
---|---|---|---|
200 | OK | The model was updated and returned | Model |
400 | Bad Request | The model data was invalid | None |
401 | Unauthorized | Invalid token or token timed out. | None |
403 | Forbidden | Not authorized to update the model | None |
Delete a model
Code samples
package main
import (
"bytes"
"net/http"
)
func main() {
headers := map[string][]string{
"Authorization": []string{"Bearer {access-token}"},
}
data := bytes.NewBuffer([]byte{jsonReq})
req, err := http.NewRequest("DELETE", "/ai/models/{model_id}", data)
req.Header = headers
client := &http.Client{}
resp, err := client.Do(req)
// ...
}
const headers = {
'Authorization':'Bearer {access-token}'
};
fetch('/ai/models/{model_id}',
{
method: 'DELETE',
headers: headers
})
.then(function(res) {
return res.json();
}).then(function(body) {
console.log(body);
});
import requests
headers = {
'Authorization': 'Bearer {access-token}'
}
r = requests.delete('/ai/models/{model_id}', headers = headers)
print(r.json())
require 'rest-client'
require 'json'
headers = {
'Authorization' => 'Bearer {access-token}'
}
result = RestClient.delete '/ai/models/{model_id}',
params: {
}, headers: headers
p JSON.parse(result)
DELETE /models/{model_id}
Responses
Status | Meaning | Description | Schema |
---|---|---|---|
200 | OK | The model was deleted | None |
401 | Unauthorized | Invalid token or token timed out. | None |
403 | Forbidden | Not authorized to access the model | None |
404 | Not Found | Model not found | None |
Get a model by id
Code samples
package main
import (
"bytes"
"net/http"
)
func main() {
headers := map[string][]string{
"Accept": []string{"*/*"},
"Authorization": []string{"Bearer {access-token}"},
}
data := bytes.NewBuffer([]byte{jsonReq})
req, err := http.NewRequest("GET", "/ai/models/{model_id}", data)
req.Header = headers
client := &http.Client{}
resp, err := client.Do(req)
// ...
}
const headers = {
'Accept':'*/*',
'Authorization':'Bearer {access-token}'
};
fetch('/ai/models/{model_id}',
{
method: 'GET',
headers: headers
})
.then(function(res) {
return res.json();
}).then(function(body) {
console.log(body);
});
import requests
headers = {
'Accept': '*/*',
'Authorization': 'Bearer {access-token}'
}
r = requests.get('/ai/models/{model_id}', headers = headers)
print(r.json())
require 'rest-client'
require 'json'
headers = {
'Accept' => '*/*',
'Authorization' => 'Bearer {access-token}'
}
result = RestClient.get '/ai/models/{model_id}',
params: {
}, headers: headers
p JSON.parse(result)
GET /models/{model_id}
Example responses
200 Response
Responses
Status | Meaning | Description | Schema |
---|---|---|---|
200 | OK | The model | Model |
401 | Unauthorized | Invalid token or token timed out. | None |
403 | Forbidden | Not authorized to access the model | None |
404 | Not Found | Could not load model | None |
Get a list of model actions with RCI and failure summary
Code samples
package main
import (
"bytes"
"net/http"
)
func main() {
headers := map[string][]string{
"Accept": []string{"*/*"},
"Authorization": []string{"Bearer {access-token}"},
}
data := bytes.NewBuffer([]byte{jsonReq})
req, err := http.NewRequest("GET", "/ai/models/{model_id}/actions", data)
req.Header = headers
client := &http.Client{}
resp, err := client.Do(req)
// ...
}
const headers = {
'Accept':'*/*',
'Authorization':'Bearer {access-token}'
};
fetch('/ai/models/{model_id}/actions',
{
method: 'GET',
headers: headers
})
.then(function(res) {
return res.json();
}).then(function(body) {
console.log(body);
});
import requests
headers = {
'Accept': '*/*',
'Authorization': 'Bearer {access-token}'
}
r = requests.get('/ai/models/{model_id}/actions', headers = headers)
print(r.json())
require 'rest-client'
require 'json'
headers = {
'Accept' => '*/*',
'Authorization' => 'Bearer {access-token}'
}
result = RestClient.get '/ai/models/{model_id}/actions',
params: {
}, headers: headers
p JSON.parse(result)
GET /models/{model_id}/actions
Example responses
200 Response
Responses
Status | Meaning | Description | Schema |
---|---|---|---|
200 | OK | The model actions list | Inline |
400 | Bad Request | The model data was invalid | None |
401 | Unauthorized | Invalid token or token timed out. | None |
403 | Forbidden | Not authorized to access the model. | None |
404 | Not Found | The model not found. | None |
Response Schema
Status Code 200
Name | Type | Required | Restrictions | Description |
---|---|---|---|---|
anonymous | [ModelAction] | false | none | none |
» stateName | string | true | none | none |
» actionName | string | true | none | none |
» passes | integer | true | none | none |
» is_rci | boolean | true | none | none |
» fails | integer | true | none | none |
Get a list of model defects
Code samples
package main
import (
"bytes"
"net/http"
)
func main() {
headers := map[string][]string{
"Authorization": []string{"Bearer {access-token}"},
}
data := bytes.NewBuffer([]byte{jsonReq})
req, err := http.NewRequest("GET", "/ai/models/{model_id}/defects", data)
req.Header = headers
client := &http.Client{}
resp, err := client.Do(req)
// ...
}
const headers = {
'Authorization':'Bearer {access-token}'
};
fetch('/ai/models/{model_id}/defects',
{
method: 'GET',
headers: headers
})
.then(function(res) {
return res.json();
}).then(function(body) {
console.log(body);
});
import requests
headers = {
'Authorization': 'Bearer {access-token}'
}
r = requests.get('/ai/models/{model_id}/defects', headers = headers)
print(r.json())
require 'rest-client'
require 'json'
headers = {
'Authorization' => 'Bearer {access-token}'
}
result = RestClient.get '/ai/models/{model_id}/defects',
params: {
}, headers: headers
p JSON.parse(result)
GET /models/{model_id}/defects
Responses
Status | Meaning | Description | Schema |
---|---|---|---|
200 | OK | The model defects | None |
401 | Unauthorized | Invalid token or token timed out. | None |
403 | Forbidden | Attempt to access a restricted or admin-only resource. | None |
404 | Not Found | Model not found | None |
Add a new tag
Code samples
package main
import (
"bytes"
"net/http"
)
func main() {
headers := map[string][]string{
"Content-Type": []string{"application/json"},
"Authorization": []string{"Bearer {access-token}"},
}
data := bytes.NewBuffer([]byte{jsonReq})
req, err := http.NewRequest("POST", "/ai/models/{model_id}/tags", data)
req.Header = headers
client := &http.Client{}
resp, err := client.Do(req)
// ...
}
const inputBody = '{
"type": "object",
"properties": {
"id": {
"name": "id",
"type": "integer"
},
"model": {
"name": "model",
"type": "string"
},
"tag": {
"name": "tag",
"type": "string"
},
"created": {
"name": "created",
"type": "string"
},
"author": {
"name": "author",
"type": "string"
}
},
"required": [
"model",
"tag",
"author"
]
}';
const headers = {
'Content-Type':'application/json',
'Authorization':'Bearer {access-token}'
};
fetch('/ai/models/{model_id}/tags',
{
method: 'POST',
body: inputBody,
headers: headers
})
.then(function(res) {
return res.json();
}).then(function(body) {
console.log(body);
});
import requests
headers = {
'Content-Type': 'application/json',
'Authorization': 'Bearer {access-token}'
}
r = requests.post('/ai/models/{model_id}/tags', headers = headers)
print(r.json())
require 'rest-client'
require 'json'
headers = {
'Content-Type' => 'application/json',
'Authorization' => 'Bearer {access-token}'
}
result = RestClient.post '/ai/models/{model_id}/tags',
params: {
}, headers: headers
p JSON.parse(result)
POST /models/{model_id}/tags
Body parameter
{
"type": "object",
"properties": {
"id": {
"name": "id",
"type": "integer"
},
"model": {
"name": "model",
"type": "string"
},
"tag": {
"name": "tag",
"type": "string"
},
"created": {
"name": "created",
"type": "string"
},
"author": {
"name": "author",
"type": "string"
}
},
"required": [
"model",
"tag",
"author"
]
}
Parameters
Name | In | Type | Required | Description |
---|---|---|---|---|
body | body | ModelTags | true | Request body |
Responses
Status | Meaning | Description | Schema |
---|---|---|---|
200 | OK | The model tag was created and returned | None |
400 | Bad Request | The model data was invalid | None |
401 | Unauthorized | Invalid token or token timed out. | None |
403 | Forbidden | Attempt to access a restricted or admin-only resource. | None |
409 | Conflict | The model already exists | None |
Get a list of model tags
Code samples
package main
import (
"bytes"
"net/http"
)
func main() {
headers := map[string][]string{
"Authorization": []string{"Bearer {access-token}"},
}
data := bytes.NewBuffer([]byte{jsonReq})
req, err := http.NewRequest("GET", "/ai/models/{model_id}/tags", data)
req.Header = headers
client := &http.Client{}
resp, err := client.Do(req)
// ...
}
const headers = {
'Authorization':'Bearer {access-token}'
};
fetch('/ai/models/{model_id}/tags',
{
method: 'GET',
headers: headers
})
.then(function(res) {
return res.json();
}).then(function(body) {
console.log(body);
});
import requests
headers = {
'Authorization': 'Bearer {access-token}'
}
r = requests.get('/ai/models/{model_id}/tags', headers = headers)
print(r.json())
require 'rest-client'
require 'json'
headers = {
'Authorization' => 'Bearer {access-token}'
}
result = RestClient.get '/ai/models/{model_id}/tags',
params: {
}, headers: headers
p JSON.parse(result)
GET /models/{model_id}/tags
Responses
Status | Meaning | Description | Schema |
---|---|---|---|
200 | OK | The model tags | None |
401 | Unauthorized | Invalid token or token timed out. | None |
403 | Forbidden | Not authorized to access the model tags | None |
404 | Not Found | Could not load model tags | None |
Update a model tag
Code samples
package main
import (
"bytes"
"net/http"
)
func main() {
headers := map[string][]string{
"Content-Type": []string{"application/json"},
"Authorization": []string{"Bearer {access-token}"},
}
data := bytes.NewBuffer([]byte{jsonReq})
req, err := http.NewRequest("PUT", "/ai/models/{model_id}/tags/{tag_id}", data)
req.Header = headers
client := &http.Client{}
resp, err := client.Do(req)
// ...
}
const inputBody = '{
"type": "object",
"properties": {
"id": {
"name": "id",
"type": "integer"
},
"model": {
"name": "model",
"type": "string"
},
"tag": {
"name": "tag",
"type": "string"
},
"created": {
"name": "created",
"type": "string"
},
"author": {
"name": "author",
"type": "string"
}
},
"required": [
"model",
"tag",
"author"
]
}';
const headers = {
'Content-Type':'application/json',
'Authorization':'Bearer {access-token}'
};
fetch('/ai/models/{model_id}/tags/{tag_id}',
{
method: 'PUT',
body: inputBody,
headers: headers
})
.then(function(res) {
return res.json();
}).then(function(body) {
console.log(body);
});
import requests
headers = {
'Content-Type': 'application/json',
'Authorization': 'Bearer {access-token}'
}
r = requests.put('/ai/models/{model_id}/tags/{tag_id}', headers = headers)
print(r.json())
require 'rest-client'
require 'json'
headers = {
'Content-Type' => 'application/json',
'Authorization' => 'Bearer {access-token}'
}
result = RestClient.put '/ai/models/{model_id}/tags/{tag_id}',
params: {
}, headers: headers
p JSON.parse(result)
PUT /models/{model_id}/tags/{tag_id}
Body parameter
{
"type": "object",
"properties": {
"id": {
"name": "id",
"type": "integer"
},
"model": {
"name": "model",
"type": "string"
},
"tag": {
"name": "tag",
"type": "string"
},
"created": {
"name": "created",
"type": "string"
},
"author": {
"name": "author",
"type": "string"
}
},
"required": [
"model",
"tag",
"author"
]
}
Parameters
Name | In | Type | Required | Description |
---|---|---|---|---|
body | body | Update_model_tag | true | Request body |
Responses
Status | Meaning | Description | Schema |
---|---|---|---|
200 | OK | The model tag was updated and returned | None |
400 | Bad Request | The model tag data was invalid | None |
401 | Unauthorized | Invalid token or token timed out. | None |
403 | Forbidden | Attempt to access a restricted or admin-only resource. | None |
ModelAssets
Create a new Model Asset
Code samples
package main
import (
"bytes"
"net/http"
)
func main() {
headers := map[string][]string{
"Content-Type": []string{"application/json"},
"Authorization": []string{"Bearer {access-token}"},
}
data := bytes.NewBuffer([]byte{jsonReq})
req, err := http.NewRequest("POST", "/ai/models/{model_id}/assets", data)
req.Header = headers
client := &http.Client{}
resp, err := client.Do(req)
// ...
}
const inputBody = '{
"type": "object",
"properties": {
"id": {
"name": "id",
"type": "integer"
},
"asset_id": {
"name": "asset_id",
"type": "string"
},
"model_id": {
"name": "model_id",
"type": "integer"
}
},
"required": [
"asset_id"
]
}';
const headers = {
'Content-Type':'application/json',
'Authorization':'Bearer {access-token}'
};
fetch('/ai/models/{model_id}/assets',
{
method: 'POST',
body: inputBody,
headers: headers
})
.then(function(res) {
return res.json();
}).then(function(body) {
console.log(body);
});
import requests
headers = {
'Content-Type': 'application/json',
'Authorization': 'Bearer {access-token}'
}
r = requests.post('/ai/models/{model_id}/assets', headers = headers)
print(r.json())
require 'rest-client'
require 'json'
headers = {
'Content-Type' => 'application/json',
'Authorization' => 'Bearer {access-token}'
}
result = RestClient.post '/ai/models/{model_id}/assets',
params: {
}, headers: headers
p JSON.parse(result)
POST /models/{model_id}/assets
Body parameter
{
"type": "object",
"properties": {
"id": {
"name": "id",
"type": "integer"
},
"asset_id": {
"name": "asset_id",
"type": "string"
},
"model_id": {
"name": "model_id",
"type": "integer"
}
},
"required": [
"asset_id"
]
}
Parameters
Name | In | Type | Required | Description |
---|---|---|---|---|
body | body | Create_new_Model_Asset | true | Request body |
Responses
Status | Meaning | Description | Schema |
---|---|---|---|
201 | Created | The Model Asset was created and returned | None |
400 | Bad Request | The Model data was invalid | None |
401 | Unauthorized | Invalid token or token timed out. | None |
403 | Forbidden | Attempt to access a restricted or admin-only resource. | None |
404 | Not Found | The Model was not found | None |
409 | Conflict | The Model already has an associated Asset | None |
List model's associated assets
Code samples
package main
import (
"bytes"
"net/http"
)
func main() {
headers := map[string][]string{
"Authorization": []string{"Bearer {access-token}"},
}
data := bytes.NewBuffer([]byte{jsonReq})
req, err := http.NewRequest("GET", "/ai/models/{model_id}/assets", data)
req.Header = headers
client := &http.Client{}
resp, err := client.Do(req)
// ...
}
const headers = {
'Authorization':'Bearer {access-token}'
};
fetch('/ai/models/{model_id}/assets',
{
method: 'GET',
headers: headers
})
.then(function(res) {
return res.json();
}).then(function(body) {
console.log(body);
});
import requests
headers = {
'Authorization': 'Bearer {access-token}'
}
r = requests.get('/ai/models/{model_id}/assets', headers = headers)
print(r.json())
require 'rest-client'
require 'json'
headers = {
'Authorization' => 'Bearer {access-token}'
}
result = RestClient.get '/ai/models/{model_id}/assets',
params: {
}, headers: headers
p JSON.parse(result)
GET /models/{model_id}/assets
Parameters
Name | In | Type | Required | Description |
---|---|---|---|---|
model_id | path | int | true | none |
Responses
Status | Meaning | Description | Schema |
---|---|---|---|
200 | OK | A Model's Asset | None |
400 | Bad Request | The Model data was invalid | None |
401 | Unauthorized | Invalid token or token timed out. | None |
403 | Forbidden | Attempt to access a restricted or admin-only resource. | None |
404 | Not Found | The Model was not found | None |
Update a Model's Asset
Code samples
package main
import (
"bytes"
"net/http"
)
func main() {
headers := map[string][]string{
"Content-Type": []string{"application/json"},
"Authorization": []string{"Bearer {access-token}"},
}
data := bytes.NewBuffer([]byte{jsonReq})
req, err := http.NewRequest("PUT", "/ai/models/{model_id}/assets/{asset_id}", data)
req.Header = headers
client := &http.Client{}
resp, err := client.Do(req)
// ...
}
const inputBody = '{
"type": "object",
"properties": {
"id": {
"name": "id",
"type": "integer"
},
"asset_id": {
"name": "asset_id",
"type": "string"
},
"model_id": {
"name": "model_id",
"type": "integer"
}
},
"required": [
"asset_id"
]
}';
const headers = {
'Content-Type':'application/json',
'Authorization':'Bearer {access-token}'
};
fetch('/ai/models/{model_id}/assets/{asset_id}',
{
method: 'PUT',
body: inputBody,
headers: headers
})
.then(function(res) {
return res.json();
}).then(function(body) {
console.log(body);
});
import requests
headers = {
'Content-Type': 'application/json',
'Authorization': 'Bearer {access-token}'
}
r = requests.put('/ai/models/{model_id}/assets/{asset_id}', headers = headers)
print(r.json())
require 'rest-client'
require 'json'
headers = {
'Content-Type' => 'application/json',
'Authorization' => 'Bearer {access-token}'
}
result = RestClient.put '/ai/models/{model_id}/assets/{asset_id}',
params: {
}, headers: headers
p JSON.parse(result)
PUT /models/{model_id}/assets/{asset_id}
Body parameter
{
"type": "object",
"properties": {
"id": {
"name": "id",
"type": "integer"
},
"asset_id": {
"name": "asset_id",
"type": "string"
},
"model_id": {
"name": "model_id",
"type": "integer"
}
},
"required": [
"asset_id"
]
}
Parameters
Name | In | Type | Required | Description |
---|---|---|---|---|
body | body | NewModelAsset | true | Request body |
Responses
Status | Meaning | Description | Schema |
---|---|---|---|
200 | OK | The Model Asset was updated and returned | None |
400 | Bad Request | The Model data or Asset data was invalid | None |
401 | Unauthorized | Invalid token or token timed out. | None |
403 | Forbidden | Attempt to access a restricted or admin-only resource. | None |
404 | Not Found | The Model or Asset was not found | None |
Get an asset by id
Code samples
package main
import (
"bytes"
"net/http"
)
func main() {
headers := map[string][]string{
"Authorization": []string{"Bearer {access-token}"},
}
data := bytes.NewBuffer([]byte{jsonReq})
req, err := http.NewRequest("GET", "/ai/models/{model_id}/assets/{asset_id}", data)
req.Header = headers
client := &http.Client{}
resp, err := client.Do(req)
// ...
}
const headers = {
'Authorization':'Bearer {access-token}'
};
fetch('/ai/models/{model_id}/assets/{asset_id}',
{
method: 'GET',
headers: headers
})
.then(function(res) {
return res.json();
}).then(function(body) {
console.log(body);
});
import requests
headers = {
'Authorization': 'Bearer {access-token}'
}
r = requests.get('/ai/models/{model_id}/assets/{asset_id}', headers = headers)
print(r.json())
require 'rest-client'
require 'json'
headers = {
'Authorization' => 'Bearer {access-token}'
}
result = RestClient.get '/ai/models/{model_id}/assets/{asset_id}',
params: {
}, headers: headers
p JSON.parse(result)
GET /models/{model_id}/assets/{asset_id}
Parameters
Name | In | Type | Required | Description |
---|---|---|---|---|
model_id | path | int | true | none |
asset_id | path | int | true | none |
Responses
Status | Meaning | Description | Schema |
---|---|---|---|
200 | OK | A Model Asset | None |
400 | Bad Request | The Model data or Asset data was invalid | None |
401 | Unauthorized | Invalid token or token timed out. | None |
403 | Forbidden | Attempt to access a restricted or admin-only resource. | None |
404 | Not Found | The Model or Asset was not found | None |
ModelAsset
Delete a model's asset
Code samples
package main
import (
"bytes"
"net/http"
)
func main() {
headers := map[string][]string{
"Authorization": []string{"Bearer {access-token}"},
}
data := bytes.NewBuffer([]byte{jsonReq})
req, err := http.NewRequest("DELETE", "/ai/models/{model_id}/assets/{asset_id}", data)
req.Header = headers
client := &http.Client{}
resp, err := client.Do(req)
// ...
}
const headers = {
'Authorization':'Bearer {access-token}'
};
fetch('/ai/models/{model_id}/assets/{asset_id}',
{
method: 'DELETE',
headers: headers
})
.then(function(res) {
return res.json();
}).then(function(body) {
console.log(body);
});
import requests
headers = {
'Authorization': 'Bearer {access-token}'
}
r = requests.delete('/ai/models/{model_id}/assets/{asset_id}', headers = headers)
print(r.json())
require 'rest-client'
require 'json'
headers = {
'Authorization' => 'Bearer {access-token}'
}
result = RestClient.delete '/ai/models/{model_id}/assets/{asset_id}',
params: {
}, headers: headers
p JSON.parse(result)
DELETE /models/{model_id}/assets/{asset_id}
Parameters
Name | In | Type | Required | Description |
---|---|---|---|---|
model_id | path | int | true | none |
asset_id | path | int | true | none |
Responses
Status | Meaning | Description | Schema |
---|---|---|---|
204 | No Content | The Model's associated Asset was deleted | None |
400 | Bad Request | The Model data or Asset data was invalid | None |
401 | Unauthorized | Invalid token or token timed out. | None |
403 | Forbidden | Attempt to access a restricted or admin-only resource. | None |
404 | Not Found | The Model or Asset not found | None |
Coverage Report
Get model coverage report
Code samples
package main
import (
"bytes"
"net/http"
)
func main() {
headers := map[string][]string{
"Accept": []string{"*/*"},
"Authorization": []string{"Bearer {access-token}"},
}
data := bytes.NewBuffer([]byte{jsonReq})
req, err := http.NewRequest("GET", "/ai/models/{model_id}/coverage", data)
req.Header = headers
client := &http.Client{}
resp, err := client.Do(req)
// ...
}
const headers = {
'Accept':'*/*',
'Authorization':'Bearer {access-token}'
};
fetch('/ai/models/{model_id}/coverage',
{
method: 'GET',
headers: headers
})
.then(function(res) {
return res.json();
}).then(function(body) {
console.log(body);
});
import requests
headers = {
'Accept': '*/*',
'Authorization': 'Bearer {access-token}'
}
r = requests.get('/ai/models/{model_id}/coverage', headers = headers)
print(r.json())
require 'rest-client'
require 'json'
headers = {
'Accept' => '*/*',
'Authorization' => 'Bearer {access-token}'
}
result = RestClient.get '/ai/models/{model_id}/coverage',
params: {
}, headers: headers
p JSON.parse(result)
GET /models/{model_id}/coverage
Example responses
200 Response
Responses
Status | Meaning | Description | Schema |
---|---|---|---|
200 | OK | Model coverage report | ModelCoverage |
401 | Unauthorized | Invalid token or token timed out. | None |
403 | Forbidden | Attempt to access a restricted or admin-only resource. | None |
404 | Not Found | Model not found | None |
Release Insights
Get release insights
Code samples
package main
import (
"bytes"
"net/http"
)
func main() {
headers := map[string][]string{
"Accept": []string{"*/*"},
"Authorization": []string{"Bearer {access-token}"},
}
data := bytes.NewBuffer([]byte{jsonReq})
req, err := http.NewRequest("GET", "/ai/models/{model_id}/release-insights", data)
req.Header = headers
client := &http.Client{}
resp, err := client.Do(req)
// ...
}
const headers = {
'Accept':'*/*',
'Authorization':'Bearer {access-token}'
};
fetch('/ai/models/{model_id}/release-insights',
{
method: 'GET',
headers: headers
})
.then(function(res) {
return res.json();
}).then(function(body) {
console.log(body);
});
import requests
headers = {
'Accept': '*/*',
'Authorization': 'Bearer {access-token}'
}
r = requests.get('/ai/models/{model_id}/release-insights', headers = headers)
print(r.json())
require 'rest-client'
require 'json'
headers = {
'Accept' => '*/*',
'Authorization' => 'Bearer {access-token}'
}
result = RestClient.get '/ai/models/{model_id}/release-insights',
params: {
}, headers: headers
p JSON.parse(result)
GET /models/{model_id}/release-insights
Example responses
200 Response
Responses
Status | Meaning | Description | Schema |
---|---|---|---|
200 | OK | Release insights | ReleaseInsights |
400 | Bad Request | Bad request data | None |
401 | Unauthorized | Invalid token or token timed out. | None |
403 | Forbidden | Attempt to access a restricted or admin-only resource. | None |
404 | Not Found | Release insights data or model not found | None |
Runs
Get model test runs
Code samples
package main
import (
"bytes"
"net/http"
)
func main() {
headers := map[string][]string{
"Accept": []string{"*/*"},
"Authorization": []string{"Bearer {access-token}"},
}
data := bytes.NewBuffer([]byte{jsonReq})
req, err := http.NewRequest("GET", "/ai/models/{model_id}/runs", data)
req.Header = headers
client := &http.Client{}
resp, err := client.Do(req)
// ...
}
const headers = {
'Accept':'*/*',
'Authorization':'Bearer {access-token}'
};
fetch('/ai/models/{model_id}/runs',
{
method: 'GET',
headers: headers
})
.then(function(res) {
return res.json();
}).then(function(body) {
console.log(body);
});
import requests
headers = {
'Accept': '*/*',
'Authorization': 'Bearer {access-token}'
}
r = requests.get('/ai/models/{model_id}/runs', headers = headers)
print(r.json())
require 'rest-client'
require 'json'
headers = {
'Accept' => '*/*',
'Authorization' => 'Bearer {access-token}'
}
result = RestClient.get '/ai/models/{model_id}/runs',
params: {
}, headers: headers
p JSON.parse(result)
GET /models/{model_id}/runs
Parameters
Name | In | Type | Required | Description |
---|---|---|---|---|
model_id | path | integer | true | The model id |
starttime | query | string | false | Only include runs that occurred after this time |
endtime | query | string | false | Only include runs that occurred before this time |
Example responses
200 Response
Responses
Status | Meaning | Description | Schema |
---|---|---|---|
200 | OK | The matching test runs | Inline |
401 | Unauthorized | Invalid token or token timed out. | None |
403 | Forbidden | Attempt to access a restricted or admin-only resource. | None |
404 | Not Found | Model not found | None |
Response Schema
Status Code 200
Name | Type | Required | Restrictions | Description |
---|---|---|---|---|
anonymous | [Run] | false | none | none |
» id | integer | true | none | none |
» hierarchyid | integer | true | none | none |
» modelname | string | true | none | none |
» groupid | integer | true | none | none |
» teststatus | string | true | none | none |
» starttime | string | true | none | none |
» endtime | string | true | none | none |
» seed | integer | true | none | none |
» coverage | float | true | none | none |
» logfile | string | true | none | none |
» usedtests | string | true | none | none |
» events | boolean | true | none | none |
» runtype | string | true | none | none |
» testcase | string | true | none | none |
» testconfigtask | any | true | none | none |
» step | integer | true | none | none |
» failedaction | string | true | none | none |
» scriptname | string | true | none | none |
» suitename | string | true | none | none |
Get count of each test status for each test cases in a model
Code samples
package main
import (
"bytes"
"net/http"
)
func main() {
headers := map[string][]string{
"Accept": []string{"*/*"},
"Authorization": []string{"Bearer {access-token}"},
}
data := bytes.NewBuffer([]byte{jsonReq})
req, err := http.NewRequest("GET", "/ai/models/{model_id}/testcasesummary", data)
req.Header = headers
client := &http.Client{}
resp, err := client.Do(req)
// ...
}
const headers = {
'Accept':'*/*',
'Authorization':'Bearer {access-token}'
};
fetch('/ai/models/{model_id}/testcasesummary',
{
method: 'GET',
headers: headers
})
.then(function(res) {
return res.json();
}).then(function(body) {
console.log(body);
});
import requests
headers = {
'Accept': '*/*',
'Authorization': 'Bearer {access-token}'
}
r = requests.get('/ai/models/{model_id}/testcasesummary', headers = headers)
print(r.json())
require 'rest-client'
require 'json'
headers = {
'Accept' => '*/*',
'Authorization' => 'Bearer {access-token}'
}
result = RestClient.get '/ai/models/{model_id}/testcasesummary',
params: {
}, headers: headers
p JSON.parse(result)
GET /models/{model_id}/testcasesummary
Parameters
Name | In | Type | Required | Description |
---|---|---|---|---|
model_id | path | integer | true | The model id |
starttime | query | string | false | Only include runs that occurred after this time |
endtime | query | string | false | Only include runs that occurred before this time |
Example responses
200 Response
Responses
Status | Meaning | Description | Schema |
---|---|---|---|
200 | OK | The matching test runs | Inline |
401 | Unauthorized | Invalid token or token timed out. | None |
403 | Forbidden | Attempt to access a restricted or admin-only resource. | None |
404 | Not Found | Model not found | None |
Response Schema
Status Code 200
Name | Type | Required | Restrictions | Description |
---|---|---|---|---|
» items | [RunSummary] | false | none | none |
»» testcase | string | true | none | none |
»» passcount | integer | true | none | none |
»» failcount | integer | true | none | none |
»» cancelcount | integer | true | none | none |
»» errorcount | integer | true | none | none |
»» incompletecount | integer | true | none | none |
List runs details
Code samples
package main
import (
"bytes"
"net/http"
)
func main() {
headers := map[string][]string{
"Accept": []string{"*/*"},
"Authorization": []string{"Bearer {access-token}"},
}
data := bytes.NewBuffer([]byte{jsonReq})
req, err := http.NewRequest("GET", "/ai/runs", data)
req.Header = headers
client := &http.Client{}
resp, err := client.Do(req)
// ...
}
const headers = {
'Accept':'*/*',
'Authorization':'Bearer {access-token}'
};
fetch('/ai/runs',
{
method: 'GET',
headers: headers
})
.then(function(res) {
return res.json();
}).then(function(body) {
console.log(body);
});
import requests
headers = {
'Accept': '*/*',
'Authorization': 'Bearer {access-token}'
}
r = requests.get('/ai/runs', headers = headers)
print(r.json())
require 'rest-client'
require 'json'
headers = {
'Accept' => '*/*',
'Authorization' => 'Bearer {access-token}'
}
result = RestClient.get '/ai/runs',
params: {
}, headers: headers
p JSON.parse(result)
GET /runs
Parameters
Name | In | Type | Required | Description |
---|---|---|---|---|
id | query | integer | false | The test run ID to include in the results |
testcase | query | string | false | The test case to include in the results |
teststatus | query | string | false | The test status to include in the results |
modelname | query | string | false | The model name to include in the results |
task_instance_id | query | string | false | The task instance ID to include in the results |
sort | query | string | false | The sort critera |
offset | query | string | false | Desired index of first item in response |
limit | query | string | false | Maximum number of returned items |
step | query | integer | false | The step in the test configuration run |
modeluuid | query | integer | false | The test modeluuid to include in results |
Example responses
200 Response
Responses
Status | Meaning | Description | Schema |
---|---|---|---|
200 | OK | The matching test runs | Inline |
401 | Unauthorized | Invalid token or token timed out. | None |
403 | Forbidden | Attempt to access a restricted or admin-only resource. | None |
Response Schema
Status Code 200
Name | Type | Required | Restrictions | Description |
---|---|---|---|---|
» items | [Run] | false | none | none |
»» id | integer | true | none | none |
»» hierarchyid | integer | true | none | none |
»» modelname | string | true | none | none |
»» groupid | integer | true | none | none |
»» teststatus | string | true | none | none |
»» starttime | string | true | none | none |
»» endtime | string | true | none | none |
»» seed | integer | true | none | none |
»» coverage | float | true | none | none |
»» logfile | string | true | none | none |
»» usedtests | string | true | none | none |
»» events | boolean | true | none | none |
»» runtype | string | true | none | none |
»» testcase | string | true | none | none |
»» testconfigtask | any | true | none | none |
»» step | integer | true | none | none |
»» failedaction | string | true | none | none |
»» scriptname | string | true | none | none |
»» suitename | string | true | none | none |
» total_count | integer | false | none | none |
» date_as_of | string(date-time) | false | none | none |
Delete a run
Code samples
package main
import (
"bytes"
"net/http"
)
func main() {
headers := map[string][]string{
"Authorization": []string{"Bearer {access-token}"},
}
data := bytes.NewBuffer([]byte{jsonReq})
req, err := http.NewRequest("DELETE", "/ai/runs/{id}", data)
req.Header = headers
client := &http.Client{}
resp, err := client.Do(req)
// ...
}
const headers = {
'Authorization':'Bearer {access-token}'
};
fetch('/ai/runs/{id}',
{
method: 'DELETE',
headers: headers
})
.then(function(res) {
return res.json();
}).then(function(body) {
console.log(body);
});
import requests
headers = {
'Authorization': 'Bearer {access-token}'
}
r = requests.delete('/ai/runs/{id}', headers = headers)
print(r.json())
require 'rest-client'
require 'json'
headers = {
'Authorization' => 'Bearer {access-token}'
}
result = RestClient.delete '/ai/runs/{id}',
params: {
}, headers: headers
p JSON.parse(result)
DELETE /runs/{id}
Responses
Status | Meaning | Description | Schema |
---|---|---|---|
200 | OK | The run was deleted | None |
401 | Unauthorized | Invalid token or token timed out. | None |
403 | Forbidden | Attempt to access a restricted or admin-only resource. | None |
404 | Not Found | Run not found | None |
Get run details
Code samples
package main
import (
"bytes"
"net/http"
)
func main() {
headers := map[string][]string{
"Accept": []string{"*/*"},
"Authorization": []string{"Bearer {access-token}"},
}
data := bytes.NewBuffer([]byte{jsonReq})
req, err := http.NewRequest("GET", "/ai/runs/{id}", data)
req.Header = headers
client := &http.Client{}
resp, err := client.Do(req)
// ...
}
const headers = {
'Accept':'*/*',
'Authorization':'Bearer {access-token}'
};
fetch('/ai/runs/{id}',
{
method: 'GET',
headers: headers
})
.then(function(res) {
return res.json();
}).then(function(body) {
console.log(body);
});
import requests
headers = {
'Accept': '*/*',
'Authorization': 'Bearer {access-token}'
}
r = requests.get('/ai/runs/{id}', headers = headers)
print(r.json())
require 'rest-client'
require 'json'
headers = {
'Accept' => '*/*',
'Authorization' => 'Bearer {access-token}'
}
result = RestClient.get '/ai/runs/{id}',
params: {
}, headers: headers
p JSON.parse(result)
GET /runs/{id}
Example responses
200 Response
Responses
Status | Meaning | Description | Schema |
---|---|---|---|
200 | OK | A model test run | Run |
401 | Unauthorized | Invalid token or token timed out. | None |
403 | Forbidden | Attempt to access a restricted or admin-only resource. | None |
404 | Not Found | Run not found | None |
Get summary information for a task instance
Code samples
package main
import (
"bytes"
"net/http"
)
func main() {
headers := map[string][]string{
"Accept": []string{"*/*"},
"Authorization": []string{"Bearer {access-token}"},
}
data := bytes.NewBuffer([]byte{jsonReq})
req, err := http.NewRequest("GET", "/ai/testconfigtasks/{id}/summary", data)
req.Header = headers
client := &http.Client{}
resp, err := client.Do(req)
// ...
}
const headers = {
'Accept':'*/*',
'Authorization':'Bearer {access-token}'
};
fetch('/ai/testconfigtasks/{id}/summary',
{
method: 'GET',
headers: headers
})
.then(function(res) {
return res.json();
}).then(function(body) {
console.log(body);
});
import requests
headers = {
'Accept': '*/*',
'Authorization': 'Bearer {access-token}'
}
r = requests.get('/ai/testconfigtasks/{id}/summary', headers = headers)
print(r.json())
require 'rest-client'
require 'json'
headers = {
'Accept' => '*/*',
'Authorization' => 'Bearer {access-token}'
}
result = RestClient.get '/ai/testconfigtasks/{id}/summary',
params: {
}, headers: headers
p JSON.parse(result)
GET /testconfigtasks/{id}/summary
Parameters
Name | In | Type | Required | Description |
---|---|---|---|---|
id | path | string | true | The task instance ID |
Example responses
200 Response
Responses
Status | Meaning | Description | Schema |
---|---|---|---|
200 | OK | Summary information for the task instance | Inline |
401 | Unauthorized | Invalid token or token timed out. | None |
403 | Forbidden | Attempt to access a restricted or admin-only resource. | None |
Response Schema
Status Code 200
Name | Type | Required | Restrictions | Description |
---|---|---|---|---|
» properties | any | false | none | none |
» required | any | false | none | none |
Testcases Report
Get model test case runs
Code samples
package main
import (
"bytes"
"net/http"
)
func main() {
headers := map[string][]string{
"Accept": []string{"*/*"},
"Authorization": []string{"Bearer {access-token}"},
}
data := bytes.NewBuffer([]byte{jsonReq})
req, err := http.NewRequest("GET", "/ai/models/{model_id}/testcaseruns", data)
req.Header = headers
client := &http.Client{}
resp, err := client.Do(req)
// ...
}
const headers = {
'Accept':'*/*',
'Authorization':'Bearer {access-token}'
};
fetch('/ai/models/{model_id}/testcaseruns',
{
method: 'GET',
headers: headers
})
.then(function(res) {
return res.json();
}).then(function(body) {
console.log(body);
});
import requests
headers = {
'Accept': '*/*',
'Authorization': 'Bearer {access-token}'
}
r = requests.get('/ai/models/{model_id}/testcaseruns', headers = headers)
print(r.json())
require 'rest-client'
require 'json'
headers = {
'Accept' => '*/*',
'Authorization' => 'Bearer {access-token}'
}
result = RestClient.get '/ai/models/{model_id}/testcaseruns',
params: {
}, headers: headers
p JSON.parse(result)
GET /models/{model_id}/testcaseruns
Example responses
200 Response
Responses
Status | Meaning | Description | Schema |
---|---|---|---|
200 | OK | The model test case runs | ModelCoverage |
401 | Unauthorized | Invalid token or token timed out. | None |
403 | Forbidden | Attempt to access a restricted or admin-only resource. | None |
404 | Not Found | Model not found | None |
Testcases
Create new testcase
Code samples
package main
import (
"bytes"
"net/http"
)
func main() {
headers := map[string][]string{
"Content-Type": []string{"application/json"},
"Accept": []string{"*/*"},
"Authorization": []string{"Bearer {access-token}"},
}
data := bytes.NewBuffer([]byte{jsonReq})
req, err := http.NewRequest("POST", "/ai/models/{model_id}/testcases", data)
req.Header = headers
client := &http.Client{}
resp, err := client.Do(req)
// ...
}
const inputBody = '{
"type": "object",
"properties": {
"testcaseName": {
"name": "testcaseName",
"type": "string"
},
"testcase": {
"name": "testcase",
"type": "string"
},
"id": {
"name": "id",
"type": "integer"
},
"tests": {
"name": "tests",
"type": "string"
},
"fails": {
"name": "fails",
"type": "string"
},
"testcaseTags": {
"name": "testcaseTags",
"type": "string"
},
"testcaseDescription": {
"name": "testcaseDescription",
"type": "string"
},
"testcaseOrigin": {
"name": "testcaseOrigin",
"type": "string"
},
"testcaseExternalID": {
"name": "testcaseExternalID",
"type": "string"
},
"testIds": {
"name": "testIds",
"type": "string"
},
"modelId": {
"name": "modelId",
"type": "string"
},
"modelName": {
"name": "modelName",
"type": "string"
}
},
"required": [
"testcaseName",
"testcase"
]
}';
const headers = {
'Content-Type':'application/json',
'Accept':'*/*',
'Authorization':'Bearer {access-token}'
};
fetch('/ai/models/{model_id}/testcases',
{
method: 'POST',
body: inputBody,
headers: headers
})
.then(function(res) {
return res.json();
}).then(function(body) {
console.log(body);
});
import requests
headers = {
'Content-Type': 'application/json',
'Accept': '*/*',
'Authorization': 'Bearer {access-token}'
}
r = requests.post('/ai/models/{model_id}/testcases', headers = headers)
print(r.json())
require 'rest-client'
require 'json'
headers = {
'Content-Type' => 'application/json',
'Accept' => '*/*',
'Authorization' => 'Bearer {access-token}'
}
result = RestClient.post '/ai/models/{model_id}/testcases',
params: {
}, headers: headers
p JSON.parse(result)
POST /models/{model_id}/testcases
Body parameter
{
"type": "object",
"properties": {
"testcaseName": {
"name": "testcaseName",
"type": "string"
},
"testcase": {
"name": "testcase",
"type": "string"
},
"id": {
"name": "id",
"type": "integer"
},
"tests": {
"name": "tests",
"type": "string"
},
"fails": {
"name": "fails",
"type": "string"
},
"testcaseTags": {
"name": "testcaseTags",
"type": "string"
},
"testcaseDescription": {
"name": "testcaseDescription",
"type": "string"
},
"testcaseOrigin": {
"name": "testcaseOrigin",
"type": "string"
},
"testcaseExternalID": {
"name": "testcaseExternalID",
"type": "string"
},
"testIds": {
"name": "testIds",
"type": "string"
},
"modelId": {
"name": "modelId",
"type": "string"
},
"modelName": {
"name": "modelName",
"type": "string"
}
},
"required": [
"testcaseName",
"testcase"
]
}
Parameters
Name | In | Type | Required | Description |
---|---|---|---|---|
body | body | Create_test_case | true | Request body |
Example responses
200 Response
Responses
Status | Meaning | Description | Schema |
---|---|---|---|
200 | OK | The test case was created and returned | TestCases |
400 | Bad Request | The testcase already exists | None |
401 | Unauthorized | Invalid token or token timed out. | None |
403 | Forbidden | Attempt to access a restricted or admin-only resource. | None |
Get a list of model test cases
Code samples
package main
import (
"bytes"
"net/http"
)
func main() {
headers := map[string][]string{
"Accept": []string{"*/*"},
"Authorization": []string{"Bearer {access-token}"},
}
data := bytes.NewBuffer([]byte{jsonReq})
req, err := http.NewRequest("GET", "/ai/testcases", data)
req.Header = headers
client := &http.Client{}
resp, err := client.Do(req)
// ...
}
const headers = {
'Accept':'*/*',
'Authorization':'Bearer {access-token}'
};
fetch('/ai/testcases',
{
method: 'GET',
headers: headers
})
.then(function(res) {
return res.json();
}).then(function(body) {
console.log(body);
});
import requests
headers = {
'Accept': '*/*',
'Authorization': 'Bearer {access-token}'
}
r = requests.get('/ai/testcases', headers = headers)
print(r.json())
require 'rest-client'
require 'json'
headers = {
'Accept' => '*/*',
'Authorization' => 'Bearer {access-token}'
}
result = RestClient.get '/ai/testcases',
params: {
}, headers: headers
p JSON.parse(result)
GET /testcases
Parameters
Name | In | Type | Required | Description |
---|---|---|---|---|
modelid | query | string | false | The model UUID to include in the results |
searchText | query | string | false | The search criteria to include in the results |
sort | query | string | false | The sort criteria |
offset | query | string | false | Desired index of first item in response |
limit | query | string | false | Maximum number of returned items |
Example responses
200 Response
Responses
Status | Meaning | Description | Schema |
---|---|---|---|
200 | OK | The testcases | Inline |
400 | Bad Request | parameter is incorrect | None |
401 | Unauthorized | Invalid token or token timed out. | None |
403 | Forbidden | Attempt to access a restricted or admin-only resource. | None |
Response Schema
Status Code 200
Name | Type | Required | Restrictions | Description |
---|---|---|---|---|
anonymous | [TestCases] | false | none | none |
» testcaseName | string | true | none | none |
» testcase | string | true | none | none |
» id | integer | false | none | none |
» tests | string | false | none | none |
» fails | string | false | none | none |
» testcaseTags | string | false | none | none |
» testcaseDescription | string | false | none | none |
» testcaseOrigin | string | false | none | none |
» testcaseExternalID | string | false | none | none |
» testIds | string | false | none | none |
» modelId | string | false | none | none |
» modelName | string | false | none | none |
Update a test case
Code samples
package main
import (
"bytes"
"net/http"
)
func main() {
headers := map[string][]string{
"Content-Type": []string{"application/json"},
"Accept": []string{"*/*"},
"Authorization": []string{"Bearer {access-token}"},
}
data := bytes.NewBuffer([]byte{jsonReq})
req, err := http.NewRequest("PUT", "/ai/models/{model_id}/testcases/{testcase_id}", data)
req.Header = headers
client := &http.Client{}
resp, err := client.Do(req)
// ...
}
const inputBody = '{
"type": "object",
"properties": {
"testcaseName": {
"name": "testcaseName",
"type": "string"
},
"testcase": {
"name": "testcase",
"type": "string"
},
"id": {
"name": "id",
"type": "integer"
},
"tests": {
"name": "tests",
"type": "string"
},
"fails": {
"name": "fails",
"type": "string"
},
"testcaseTags": {
"name": "testcaseTags",
"type": "string"
},
"testcaseDescription": {
"name": "testcaseDescription",
"type": "string"
},
"testcaseOrigin": {
"name": "testcaseOrigin",
"type": "string"
},
"testcaseExternalID": {
"name": "testcaseExternalID",
"type": "string"
},
"testIds": {
"name": "testIds",
"type": "string"
},
"modelId": {
"name": "modelId",
"type": "string"
},
"modelName": {
"name": "modelName",
"type": "string"
}
},
"required": [
"testcaseName",
"testcase"
]
}';
const headers = {
'Content-Type':'application/json',
'Accept':'*/*',
'Authorization':'Bearer {access-token}'
};
fetch('/ai/models/{model_id}/testcases/{testcase_id}',
{
method: 'PUT',
body: inputBody,
headers: headers
})
.then(function(res) {
return res.json();
}).then(function(body) {
console.log(body);
});
import requests
headers = {
'Content-Type': 'application/json',
'Accept': '*/*',
'Authorization': 'Bearer {access-token}'
}
r = requests.put('/ai/models/{model_id}/testcases/{testcase_id}', headers = headers)
print(r.json())
require 'rest-client'
require 'json'
headers = {
'Content-Type' => 'application/json',
'Accept' => '*/*',
'Authorization' => 'Bearer {access-token}'
}
result = RestClient.put '/ai/models/{model_id}/testcases/{testcase_id}',
params: {
}, headers: headers
p JSON.parse(result)
PUT /models/{model_id}/testcases/{testcase_id}
Body parameter
{
"type": "object",
"properties": {
"testcaseName": {
"name": "testcaseName",
"type": "string"
},
"testcase": {
"name": "testcase",
"type": "string"
},
"id": {
"name": "id",
"type": "integer"
},
"tests": {
"name": "tests",
"type": "string"
},
"fails": {
"name": "fails",
"type": "string"
},
"testcaseTags": {
"name": "testcaseTags",
"type": "string"
},
"testcaseDescription": {
"name": "testcaseDescription",
"type": "string"
},
"testcaseOrigin": {
"name": "testcaseOrigin",
"type": "string"
},
"testcaseExternalID": {
"name": "testcaseExternalID",
"type": "string"
},
"testIds": {
"name": "testIds",
"type": "string"
},
"modelId": {
"name": "modelId",
"type": "string"
},
"modelName": {
"name": "modelName",
"type": "string"
}
},
"required": [
"testcaseName",
"testcase"
]
}
Parameters
Name | In | Type | Required | Description |
---|---|---|---|---|
body | body | Update_test_case | true | Request body |
Example responses
200 Response
Responses
Status | Meaning | Description | Schema |
---|---|---|---|
200 | OK | The test case was updated and returned | TestCases |
400 | Bad Request | The test case data was invalid | None |
401 | Unauthorized | Invalid token or token timed out. | None |
403 | Forbidden | Attempt to access a restricted or admin-only resource. | None |
404 | Not Found | Model not found | None |
Delete a test case
Code samples
package main
import (
"bytes"
"net/http"
)
func main() {
headers := map[string][]string{
"Authorization": []string{"Bearer {access-token}"},
}
data := bytes.NewBuffer([]byte{jsonReq})
req, err := http.NewRequest("DELETE", "/ai/models/{model_id}/testcases/{testcase_id}", data)
req.Header = headers
client := &http.Client{}
resp, err := client.Do(req)
// ...
}
const headers = {
'Authorization':'Bearer {access-token}'
};
fetch('/ai/models/{model_id}/testcases/{testcase_id}',
{
method: 'DELETE',
headers: headers
})
.then(function(res) {
return res.json();
}).then(function(body) {
console.log(body);
});
import requests
headers = {
'Authorization': 'Bearer {access-token}'
}
r = requests.delete('/ai/models/{model_id}/testcases/{testcase_id}', headers = headers)
print(r.json())
require 'rest-client'
require 'json'
headers = {
'Authorization' => 'Bearer {access-token}'
}
result = RestClient.delete '/ai/models/{model_id}/testcases/{testcase_id}',
params: {
}, headers: headers
p JSON.parse(result)
DELETE /models/{model_id}/testcases/{testcase_id}
Responses
Status | Meaning | Description | Schema |
---|---|---|---|
200 | OK | The test case was deleted | None |
401 | Unauthorized | Invalid token or token timed out. | None |
403 | Forbidden | Attempt to access a restricted or admin-only resource. | None |
404 | Not Found | Unable to delete test case | None |
Get a model test case
Code samples
package main
import (
"bytes"
"net/http"
)
func main() {
headers := map[string][]string{
"Accept": []string{"*/*"},
"Authorization": []string{"Bearer {access-token}"},
}
data := bytes.NewBuffer([]byte{jsonReq})
req, err := http.NewRequest("GET", "/ai/models/{model_id}/testcases/{testcase_id}", data)
req.Header = headers
client := &http.Client{}
resp, err := client.Do(req)
// ...
}
const headers = {
'Accept':'*/*',
'Authorization':'Bearer {access-token}'
};
fetch('/ai/models/{model_id}/testcases/{testcase_id}',
{
method: 'GET',
headers: headers
})
.then(function(res) {
return res.json();
}).then(function(body) {
console.log(body);
});
import requests
headers = {
'Accept': '*/*',
'Authorization': 'Bearer {access-token}'
}
r = requests.get('/ai/models/{model_id}/testcases/{testcase_id}', headers = headers)
print(r.json())
require 'rest-client'
require 'json'
headers = {
'Accept' => '*/*',
'Authorization' => 'Bearer {access-token}'
}
result = RestClient.get '/ai/models/{model_id}/testcases/{testcase_id}',
params: {
}, headers: headers
p JSON.parse(result)
GET /models/{model_id}/testcases/{testcase_id}
Example responses
200 Response
Responses
Status | Meaning | Description | Schema |
---|---|---|---|
200 | OK | A testcases | TestCases |
401 | Unauthorized | Invalid token or token timed out. | None |
403 | Forbidden | Attempt to access a restricted or admin-only resource. | None |
404 | Not Found | Model not found | None |
Ping
Ensures the API is up
Code samples
package main
import (
"bytes"
"net/http"
)
func main() {
headers := map[string][]string{
"Accept": []string{"*/*"},
"Authorization": []string{"Bearer {access-token}"},
}
data := bytes.NewBuffer([]byte{jsonReq})
req, err := http.NewRequest("GET", "/ai/ping", data)
req.Header = headers
client := &http.Client{}
resp, err := client.Do(req)
// ...
}
const headers = {
'Accept':'*/*',
'Authorization':'Bearer {access-token}'
};
fetch('/ai/ping',
{
method: 'GET',
headers: headers
})
.then(function(res) {
return res.json();
}).then(function(body) {
console.log(body);
});
import requests
headers = {
'Accept': '*/*',
'Authorization': 'Bearer {access-token}'
}
r = requests.get('/ai/ping', headers = headers)
print(r.json())
require 'rest-client'
require 'json'
headers = {
'Accept' => '*/*',
'Authorization' => 'Bearer {access-token}'
}
result = RestClient.get '/ai/ping',
params: {
}, headers: headers
p JSON.parse(result)
GET /ping
Example responses
200 Response
Responses
Status | Meaning | Description | Schema |
---|---|---|---|
200 | OK | Returns the API status | Ping |
Run Logs
Create run log
Code samples
package main
import (
"bytes"
"net/http"
)
func main() {
headers := map[string][]string{
"Accept": []string{"*/*"},
"Authorization": []string{"Bearer {access-token}"},
}
data := bytes.NewBuffer([]byte{jsonReq})
req, err := http.NewRequest("POST", "/ai/runlogs/{id}", data)
req.Header = headers
client := &http.Client{}
resp, err := client.Do(req)
// ...
}
const headers = {
'Accept':'*/*',
'Authorization':'Bearer {access-token}'
};
fetch('/ai/runlogs/{id}',
{
method: 'POST',
headers: headers
})
.then(function(res) {
return res.json();
}).then(function(body) {
console.log(body);
});
import requests
headers = {
'Accept': '*/*',
'Authorization': 'Bearer {access-token}'
}
r = requests.post('/ai/runlogs/{id}', headers = headers)
print(r.json())
require 'rest-client'
require 'json'
headers = {
'Accept' => '*/*',
'Authorization' => 'Bearer {access-token}'
}
result = RestClient.post '/ai/runlogs/{id}',
params: {
}, headers: headers
p JSON.parse(result)
POST /runlogs/{id}
Example responses
200 Response
Responses
Status | Meaning | Description | Schema |
---|---|---|---|
200 | OK | The run log | RunLogs |
400 | Bad Request | Invalid or duplicated agent name | None |
401 | Unauthorized | Invalid token or token timed out. | None |
403 | Forbidden | Attempt to access a restricted or admin-only resource. | None |
Get a single run log
Code samples
package main
import (
"bytes"
"net/http"
)
func main() {
headers := map[string][]string{
"Accept": []string{"*/*"},
"Authorization": []string{"Bearer {access-token}"},
}
data := bytes.NewBuffer([]byte{jsonReq})
req, err := http.NewRequest("GET", "/ai/runlogs/{id}", data)
req.Header = headers
client := &http.Client{}
resp, err := client.Do(req)
// ...
}
const headers = {
'Accept':'*/*',
'Authorization':'Bearer {access-token}'
};
fetch('/ai/runlogs/{id}',
{
method: 'GET',
headers: headers
})
.then(function(res) {
return res.json();
}).then(function(body) {
console.log(body);
});
import requests
headers = {
'Accept': '*/*',
'Authorization': 'Bearer {access-token}'
}
r = requests.get('/ai/runlogs/{id}', headers = headers)
print(r.json())
require 'rest-client'
require 'json'
headers = {
'Accept' => '*/*',
'Authorization' => 'Bearer {access-token}'
}
result = RestClient.get '/ai/runlogs/{id}',
params: {
}, headers: headers
p JSON.parse(result)
GET /runlogs/{id}
Example responses
200 Response
Responses
Status | Meaning | Description | Schema |
---|---|---|---|
200 | OK | A model test run log | RunLogs |
401 | Unauthorized | Invalid token or token timed out. | None |
403 | Forbidden | Attempt to access a restricted or admin-only resource. | None |
404 | Not Found | Log not found | None |
Run Screenshots
Get screenshots for a run
Code samples
package main
import (
"bytes"
"net/http"
)
func main() {
headers := map[string][]string{
"Accept": []string{"*/*"},
"Authorization": []string{"Bearer {access-token}"},
}
data := bytes.NewBuffer([]byte{jsonReq})
req, err := http.NewRequest("GET", "/ai/runs/{id}/screenshots", data)
req.Header = headers
client := &http.Client{}
resp, err := client.Do(req)
// ...
}
const headers = {
'Accept':'*/*',
'Authorization':'Bearer {access-token}'
};
fetch('/ai/runs/{id}/screenshots',
{
method: 'GET',
headers: headers
})
.then(function(res) {
return res.json();
}).then(function(body) {
console.log(body);
});
import requests
headers = {
'Accept': '*/*',
'Authorization': 'Bearer {access-token}'
}
r = requests.get('/ai/runs/{id}/screenshots', headers = headers)
print(r.json())
require 'rest-client'
require 'json'
headers = {
'Accept' => '*/*',
'Authorization' => 'Bearer {access-token}'
}
result = RestClient.get '/ai/runs/{id}/screenshots',
params: {
}, headers: headers
p JSON.parse(result)
GET /runs/{id}/screenshots
Get a single run's screenshots and metadata
Parameters
Name | In | Type | Required | Description |
---|---|---|---|---|
id | path | integer | true | run id to get the screenshot from |
Example responses
200 Response
Responses
Status | Meaning | Description | Schema |
---|---|---|---|
200 | OK | A model test run screenshot metadata | Inline |
401 | Unauthorized | Invalid token or token timed out. | None |
403 | Forbidden | Attempt to access a restricted or admin-only resource. | None |
404 | Not Found | Run id does not exist | None |
Response Schema
Status Code 200
Name | Type | Required | Restrictions | Description |
---|---|---|---|---|
» items | [Screenshots] | false | none | none |
»» timestamp | string | true | none | none |
»» artifactid | string | true | none | none |
»» name | string | true | none | none |
»» capture_type | string | true | none | none |
»» content_type | string | true | none | none |
»» state | string | true | none | none |
»» action | string | true | none | none |
»» script | string | true | none | none |
»» suite | string | true | none | none |
» total_count | integer | false | none | none |
» date_as_of | string(date-time) | false | none | none |
Performance
Get model run timings
Code samples
package main
import (
"bytes"
"net/http"
)
func main() {
headers := map[string][]string{
"Accept": []string{"*/*"},
"Authorization": []string{"Bearer {access-token}"},
}
data := bytes.NewBuffer([]byte{jsonReq})
req, err := http.NewRequest("GET", "/ai/runs/{id}/timings", data)
req.Header = headers
client := &http.Client{}
resp, err := client.Do(req)
// ...
}
const headers = {
'Accept':'*/*',
'Authorization':'Bearer {access-token}'
};
fetch('/ai/runs/{id}/timings',
{
method: 'GET',
headers: headers
})
.then(function(res) {
return res.json();
}).then(function(body) {
console.log(body);
});
import requests
headers = {
'Accept': '*/*',
'Authorization': 'Bearer {access-token}'
}
r = requests.get('/ai/runs/{id}/timings', headers = headers)
print(r.json())
require 'rest-client'
require 'json'
headers = {
'Accept' => '*/*',
'Authorization' => 'Bearer {access-token}'
}
result = RestClient.get '/ai/runs/{id}/timings',
params: {
}, headers: headers
p JSON.parse(result)
GET /runs/{id}/timings
Example responses
200 Response
Responses
Status | Meaning | Description | Schema |
---|---|---|---|
200 | OK | A list of timings for model test runs | Inline |
401 | Unauthorized | Invalid token or token timed out. | None |
403 | Forbidden | Attempt to access a restricted or admin-only resource. | None |
404 | Not Found | No timings were found | None |
Response Schema
Status Code 200
Name | Type | Required | Restrictions | Description |
---|---|---|---|---|
anonymous | [Timings] | false | none | none |
» order | integer | true | none | none |
» state | string | true | none | none |
» action | string | true | none | none |
» timing | float | true | none | none |
Screenshots
Add a screenshot
Code samples
package main
import (
"bytes"
"net/http"
)
func main() {
headers := map[string][]string{
"Authorization": []string{"Bearer {access-token}"},
}
data := bytes.NewBuffer([]byte{jsonReq})
req, err := http.NewRequest("POST", "/ai/screenshots", data)
req.Header = headers
client := &http.Client{}
resp, err := client.Do(req)
// ...
}
const headers = {
'Authorization':'Bearer {access-token}'
};
fetch('/ai/screenshots',
{
method: 'POST',
headers: headers
})
.then(function(res) {
return res.json();
}).then(function(body) {
console.log(body);
});
import requests
headers = {
'Authorization': 'Bearer {access-token}'
}
r = requests.post('/ai/screenshots', headers = headers)
print(r.json())
require 'rest-client'
require 'json'
headers = {
'Authorization' => 'Bearer {access-token}'
}
result = RestClient.post '/ai/screenshots',
params: {
}, headers: headers
p JSON.parse(result)
POST /screenshots
Post a MessagePack-encoded object containing a screenshot and metadata
Responses
Status | Meaning | Description | Schema |
---|---|---|---|
202 | Accepted | Received binary blob msgpack can unpack |
None |
400 | Bad Request | Received invalid data | None |
401 | Unauthorized | Invalid token or token timed out. | None |
403 | Forbidden | Attempt to access a restricted or admin-only resource. | None |
Get a presigned screenshot URL
Code samples
package main
import (
"bytes"
"net/http"
)
func main() {
data := bytes.NewBuffer([]byte{jsonReq})
req, err := http.NewRequest("GET", "/ai/screenshots/{artifact_id}", data)
req.Header = headers
client := &http.Client{}
resp, err := client.Do(req)
// ...
}
fetch('/ai/screenshots/{artifact_id}',
{
method: 'GET'
})
.then(function(res) {
return res.json();
}).then(function(body) {
console.log(body);
});
import requests
r = requests.get('/ai/screenshots/{artifact_id}')
print(r.json())
require 'rest-client'
require 'json'
result = RestClient.get '/ai/screenshots/{artifact_id}',
params: {
}
p JSON.parse(result)
GET /screenshots/{artifact_id}
Get presigned object URL for screenshot with given artifact id
Parameters
Name | In | Type | Required | Description |
---|---|---|---|---|
artifact_id | path | string | true | Screenshot artifact_id (UUID) |
Responses
Status | Meaning | Description | Schema |
---|---|---|---|
303 | See Other | See Other | None |
401 | Unauthorized | Invalid token or token timed out. | None |
403 | Forbidden | Attempt to access a restricted or admin-only resource. | None |
404 | Not Found | Not Found | None |
Get a presigned screenshot URL with Content-Disposition
Code samples
package main
import (
"bytes"
"net/http"
)
func main() {
data := bytes.NewBuffer([]byte{jsonReq})
req, err := http.NewRequest("GET", "/ai/screenshots/{artifact_id}/download", data)
req.Header = headers
client := &http.Client{}
resp, err := client.Do(req)
// ...
}
fetch('/ai/screenshots/{artifact_id}/download',
{
method: 'GET'
})
.then(function(res) {
return res.json();
}).then(function(body) {
console.log(body);
});
import requests
r = requests.get('/ai/screenshots/{artifact_id}/download')
print(r.json())
require 'rest-client'
require 'json'
result = RestClient.get '/ai/screenshots/{artifact_id}/download',
params: {
}
p JSON.parse(result)
GET /screenshots/{artifact_id}/download
Get presigned object URL for screenshot with given artifact id and Content-Disposition
set to attachment
Parameters
Name | In | Type | Required | Description |
---|---|---|---|---|
artifact_id | path | string | true | Screenshot artifact_id (UUID) |
Responses
Status | Meaning | Description | Schema |
---|---|---|---|
303 | See Other | See Other | None |
401 | Unauthorized | Invalid token or token timed out. | None |
403 | Forbidden | Attempt to access a restricted or admin-only resource. | None |
404 | Not Found | Not Found | None |
SMTP
Update SMTP config
Code samples
package main
import (
"bytes"
"net/http"
)
func main() {
headers := map[string][]string{
"Content-Type": []string{"application/json"},
"Accept": []string{"*/*"},
"Authorization": []string{"Bearer {access-token}"},
}
data := bytes.NewBuffer([]byte{jsonReq})
req, err := http.NewRequest("PUT", "/ai/smtp", data)
req.Header = headers
client := &http.Client{}
resp, err := client.Do(req)
// ...
}
const inputBody = '{
"properties": {
"id": {
"type": "integer",
"name": "id"
},
"serverhost": {
"type": "string",
"name": "serverhost"
},
"username": {
"type": "string",
"name": "username"
},
"password": {
"type": "string",
"name": "password"
},
"port": {
"type": "integer",
"name": "port"
},
"recipient": {
"type": "string",
"name": "recipient"
}
},
"required": [
"id",
"serverhost",
"username",
"password",
"port",
"recipient"
]
}';
const headers = {
'Content-Type':'application/json',
'Accept':'*/*',
'Authorization':'Bearer {access-token}'
};
fetch('/ai/smtp',
{
method: 'PUT',
body: inputBody,
headers: headers
})
.then(function(res) {
return res.json();
}).then(function(body) {
console.log(body);
});
import requests
headers = {
'Content-Type': 'application/json',
'Accept': '*/*',
'Authorization': 'Bearer {access-token}'
}
r = requests.put('/ai/smtp', headers = headers)
print(r.json())
require 'rest-client'
require 'json'
headers = {
'Content-Type' => 'application/json',
'Accept' => '*/*',
'Authorization' => 'Bearer {access-token}'
}
result = RestClient.put '/ai/smtp',
params: {
}, headers: headers
p JSON.parse(result)
PUT /smtp
Body parameter
{
"properties": {
"id": {
"type": "integer",
"name": "id"
},
"serverhost": {
"type": "string",
"name": "serverhost"
},
"username": {
"type": "string",
"name": "username"
},
"password": {
"type": "string",
"name": "password"
},
"port": {
"type": "integer",
"name": "port"
},
"recipient": {
"type": "string",
"name": "recipient"
}
},
"required": [
"id",
"serverhost",
"username",
"password",
"port",
"recipient"
]
}
Parameters
Name | In | Type | Required | Description |
---|---|---|---|---|
body | body | SMTP | true | Request body |
Example responses
200 Response
Responses
Status | Meaning | Description | Schema |
---|---|---|---|
200 | OK | The updated SMTP settings | SMTP |
400 | Bad Request | Data structure error. | None |
401 | Unauthorized | Invalid token or token timed out. | None |
403 | Forbidden | Attempt to access a restricted or admin-only resource. | None |
Get the current SMTP configuration
Code samples
package main
import (
"bytes"
"net/http"
)
func main() {
headers := map[string][]string{
"Accept": []string{"*/*"},
"Authorization": []string{"Bearer {access-token}"},
}
data := bytes.NewBuffer([]byte{jsonReq})
req, err := http.NewRequest("GET", "/ai/smtp", data)
req.Header = headers
client := &http.Client{}
resp, err := client.Do(req)
// ...
}
const headers = {
'Accept':'*/*',
'Authorization':'Bearer {access-token}'
};
fetch('/ai/smtp',
{
method: 'GET',
headers: headers
})
.then(function(res) {
return res.json();
}).then(function(body) {
console.log(body);
});
import requests
headers = {
'Accept': '*/*',
'Authorization': 'Bearer {access-token}'
}
r = requests.get('/ai/smtp', headers = headers)
print(r.json())
require 'rest-client'
require 'json'
headers = {
'Accept' => '*/*',
'Authorization' => 'Bearer {access-token}'
}
result = RestClient.get '/ai/smtp',
params: {
}, headers: headers
p JSON.parse(result)
GET /smtp
Example responses
200 Response
Responses
Status | Meaning | Description | Schema |
---|---|---|---|
200 | OK | The current SMTP config | SMTP |
401 | Unauthorized | Invalid token or token timed out. | None |
403 | Forbidden | Attempt to access a restricted or admin-only resource. | None |
Test Config Tasks
Create a new test config task
Code samples
package main
import (
"bytes"
"net/http"
)
func main() {
headers := map[string][]string{
"Content-Type": []string{"application/json"},
"Accept": []string{"*/*"},
"Authorization": []string{"Bearer {access-token}"},
}
data := bytes.NewBuffer([]byte{jsonReq})
req, err := http.NewRequest("POST", "/ai/testconfigtasks", data)
req.Header = headers
client := &http.Client{}
resp, err := client.Do(req)
// ...
}
const inputBody = '{
"properties": {
"created_datetime": {
"type": "string",
"name": "created_datetime"
},
"runstatus": {
"type": "string",
"name": "runstatus"
},
"test_config_id": {
"type": "string",
"name": "test_config_id"
},
"task_instance_id": {
"type": "string",
"name": "task_instance_id"
},
"updated_datetime": {
"type": "string",
"name": "updated_datetime"
}
},
"required": [
"runstatus"
]
}';
const headers = {
'Content-Type':'application/json',
'Accept':'*/*',
'Authorization':'Bearer {access-token}'
};
fetch('/ai/testconfigtasks',
{
method: 'POST',
body: inputBody,
headers: headers
})
.then(function(res) {
return res.json();
}).then(function(body) {
console.log(body);
});
import requests
headers = {
'Content-Type': 'application/json',
'Accept': '*/*',
'Authorization': 'Bearer {access-token}'
}
r = requests.post('/ai/testconfigtasks', headers = headers)
print(r.json())
require 'rest-client'
require 'json'
headers = {
'Content-Type' => 'application/json',
'Accept' => '*/*',
'Authorization' => 'Bearer {access-token}'
}
result = RestClient.post '/ai/testconfigtasks',
params: {
}, headers: headers
p JSON.parse(result)
POST /testconfigtasks
Body parameter
{
"properties": {
"created_datetime": {
"type": "string",
"name": "created_datetime"
},
"runstatus": {
"type": "string",
"name": "runstatus"
},
"test_config_id": {
"type": "string",
"name": "test_config_id"
},
"task_instance_id": {
"type": "string",
"name": "task_instance_id"
},
"updated_datetime": {
"type": "string",
"name": "updated_datetime"
}
},
"required": [
"runstatus"
]
}
Parameters
Name | In | Type | Required | Description |
---|---|---|---|---|
body | body | TestConfigTask | true | Request body |
Example responses
200 Response
Responses
Status | Meaning | Description | Schema |
---|---|---|---|
200 | OK | The test config task was created and returned | TestConfigTask |
400 | Bad Request | The test instance id was invalid | None |
401 | Unauthorized | Invalid token or token timed out. | None |
403 | Forbidden | Attempt to access a restricted or admin-only resource. | None |
Get a list of all test config tasks
Code samples
package main
import (
"bytes"
"net/http"
)
func main() {
headers := map[string][]string{
"Accept": []string{"*/*"},
"Authorization": []string{"Bearer {access-token}"},
}
data := bytes.NewBuffer([]byte{jsonReq})
req, err := http.NewRequest("GET", "/ai/testconfigtasks", data)
req.Header = headers
client := &http.Client{}
resp, err := client.Do(req)
// ...
}
const headers = {
'Accept':'*/*',
'Authorization':'Bearer {access-token}'
};
fetch('/ai/testconfigtasks',
{
method: 'GET',
headers: headers
})
.then(function(res) {
return res.json();
}).then(function(body) {
console.log(body);
});
import requests
headers = {
'Accept': '*/*',
'Authorization': 'Bearer {access-token}'
}
r = requests.get('/ai/testconfigtasks', headers = headers)
print(r.json())
require 'rest-client'
require 'json'
headers = {
'Accept' => '*/*',
'Authorization' => 'Bearer {access-token}'
}
result = RestClient.get '/ai/testconfigtasks',
params: {
}, headers: headers
p JSON.parse(result)
GET /testconfigtasks
Parameters
Name | In | Type | Required | Description |
---|---|---|---|---|
test_config_id | query | string | false | Filter by test_config_id |
offset | query | integer | false | The number of items to skip before result |
limit | query | integer | false | The numbers of items to return |
sort | query | string | false | Sort by column: -cname = Descending; +cname = Ascending |
limit_per_test_config | query | integer | false | The maximum number of items to return for each test configuration |
Example responses
200 Response
Responses
Status | Meaning | Description | Schema |
---|---|---|---|
200 | OK | The list of test config tasks | Inline |
401 | Unauthorized | Invalid token or token timed out. | None |
403 | Forbidden | Attempt to access a restricted or admin-only resource. | None |
Response Schema
Status Code 200
Name | Type | Required | Restrictions | Description |
---|---|---|---|---|
anonymous | [TestConfigTask] | false | none | none |
» created_datetime | string | false | none | none |
» runstatus | string | true | none | none |
» test_config_id | string | false | none | none |
» task_instance_id | string | false | none | none |
» updated_datetime | string | false | none | none |
Update a test config task
Code samples
package main
import (
"bytes"
"net/http"
)
func main() {
headers := map[string][]string{
"Content-Type": []string{"application/json"},
"Accept": []string{"*/*"},
"Authorization": []string{"Bearer {access-token}"},
}
data := bytes.NewBuffer([]byte{jsonReq})
req, err := http.NewRequest("PUT", "/ai/testconfigtasks/{id}", data)
req.Header = headers
client := &http.Client{}
resp, err := client.Do(req)
// ...
}
const inputBody = '{
"properties": {
"created_datetime": {
"type": "string",
"name": "created_datetime"
},
"runstatus": {
"type": "string",
"name": "runstatus"
},
"test_config_id": {
"type": "string",
"name": "test_config_id"
},
"task_instance_id": {
"type": "string",
"name": "task_instance_id"
},
"updated_datetime": {
"type": "string",
"name": "updated_datetime"
}
},
"required": [
"runstatus"
]
}';
const headers = {
'Content-Type':'application/json',
'Accept':'*/*',
'Authorization':'Bearer {access-token}'
};
fetch('/ai/testconfigtasks/{id}',
{
method: 'PUT',
body: inputBody,
headers: headers
})
.then(function(res) {
return res.json();
}).then(function(body) {
console.log(body);
});
import requests
headers = {
'Content-Type': 'application/json',
'Accept': '*/*',
'Authorization': 'Bearer {access-token}'
}
r = requests.put('/ai/testconfigtasks/{id}', headers = headers)
print(r.json())
require 'rest-client'
require 'json'
headers = {
'Content-Type' => 'application/json',
'Accept' => '*/*',
'Authorization' => 'Bearer {access-token}'
}
result = RestClient.put '/ai/testconfigtasks/{id}',
params: {
}, headers: headers
p JSON.parse(result)
PUT /testconfigtasks/{id}
Body parameter
{
"properties": {
"created_datetime": {
"type": "string",
"name": "created_datetime"
},
"runstatus": {
"type": "string",
"name": "runstatus"
},
"test_config_id": {
"type": "string",
"name": "test_config_id"
},
"task_instance_id": {
"type": "string",
"name": "task_instance_id"
},
"updated_datetime": {
"type": "string",
"name": "updated_datetime"
}
},
"required": [
"runstatus"
]
}
Parameters
Name | In | Type | Required | Description |
---|---|---|---|---|
id | path | string | true | none |
body | body | TestConfigTask | true | Request body |
Example responses
200 Response
Responses
Status | Meaning | Description | Schema |
---|---|---|---|
200 | OK | The test config task was updated and returned | TestConfigTask |
400 | Bad Request | The run status was invalid | None |
401 | Unauthorized | Invalid token or token timed out. | None |
403 | Forbidden | Attempt to access a restricted or admin-only resource. | None |
404 | Not Found | The test config task doesn't exist | None |
Get a single test config task
Code samples
package main
import (
"bytes"
"net/http"
)
func main() {
headers := map[string][]string{
"Accept": []string{"*/*"},
"Authorization": []string{"Bearer {access-token}"},
}
data := bytes.NewBuffer([]byte{jsonReq})
req, err := http.NewRequest("GET", "/ai/testconfigtasks/{id}", data)
req.Header = headers
client := &http.Client{}
resp, err := client.Do(req)
// ...
}
const headers = {
'Accept':'*/*',
'Authorization':'Bearer {access-token}'
};
fetch('/ai/testconfigtasks/{id}',
{
method: 'GET',
headers: headers
})
.then(function(res) {
return res.json();
}).then(function(body) {
console.log(body);
});
import requests
headers = {
'Accept': '*/*',
'Authorization': 'Bearer {access-token}'
}
r = requests.get('/ai/testconfigtasks/{id}', headers = headers)
print(r.json())
require 'rest-client'
require 'json'
headers = {
'Accept' => '*/*',
'Authorization' => 'Bearer {access-token}'
}
result = RestClient.get '/ai/testconfigtasks/{id}',
params: {
}, headers: headers
p JSON.parse(result)
GET /testconfigtasks/{id}
Parameters
Name | In | Type | Required | Description |
---|---|---|---|---|
id | path | string | true | none |
Example responses
200 Response
Responses
Status | Meaning | Description | Schema |
---|---|---|---|
200 | OK | The test config task | TestConfigTask |
401 | Unauthorized | Invalid token or token timed out. | None |
403 | Forbidden | Attempt to access a restricted or admin-only resource. | None |
404 | Not Found | The test config task doesn't exist | None |
Get detailed information on a single test config task
Code samples
package main
import (
"bytes"
"net/http"
)
func main() {
headers := map[string][]string{
"Accept": []string{"*/*"},
"Authorization": []string{"Bearer {access-token}"},
}
data := bytes.NewBuffer([]byte{jsonReq})
req, err := http.NewRequest("GET", "/ai/testconfigtasks/{id}/details", data)
req.Header = headers
client := &http.Client{}
resp, err := client.Do(req)
// ...
}
const headers = {
'Accept':'*/*',
'Authorization':'Bearer {access-token}'
};
fetch('/ai/testconfigtasks/{id}/details',
{
method: 'GET',
headers: headers
})
.then(function(res) {
return res.json();
}).then(function(body) {
console.log(body);
});
import requests
headers = {
'Accept': '*/*',
'Authorization': 'Bearer {access-token}'
}
r = requests.get('/ai/testconfigtasks/{id}/details', headers = headers)
print(r.json())
require 'rest-client'
require 'json'
headers = {
'Accept' => '*/*',
'Authorization' => 'Bearer {access-token}'
}
result = RestClient.get '/ai/testconfigtasks/{id}/details',
params: {
}, headers: headers
p JSON.parse(result)
GET /testconfigtasks/{id}/details
Parameters
Name | In | Type | Required | Description |
---|---|---|---|---|
id | path | string | true | none |
Example responses
200 Response
Responses
Status | Meaning | Description | Schema |
---|---|---|---|
200 | OK | The test config task | TestConfigTaskDetails |
401 | Unauthorized | Invalid token or token timed out. | None |
403 | Forbidden | Attempt to access a restricted or admin-only resource. | None |
404 | Not Found | The test config task doesn't exist | None |
Get a list of all test config tasks with extra information from ExecutionStatus
Code samples
package main
import (
"bytes"
"net/http"
)
func main() {
headers := map[string][]string{
"Accept": []string{"*/*"},
"Authorization": []string{"Bearer {access-token}"},
}
data := bytes.NewBuffer([]byte{jsonReq})
req, err := http.NewRequest("GET", "/ai/testconfigtasks_extended", data)
req.Header = headers
client := &http.Client{}
resp, err := client.Do(req)
// ...
}
const headers = {
'Accept':'*/*',
'Authorization':'Bearer {access-token}'
};
fetch('/ai/testconfigtasks_extended',
{
method: 'GET',
headers: headers
})
.then(function(res) {
return res.json();
}).then(function(body) {
console.log(body);
});
import requests
headers = {
'Accept': '*/*',
'Authorization': 'Bearer {access-token}'
}
r = requests.get('/ai/testconfigtasks_extended', headers = headers)
print(r.json())
require 'rest-client'
require 'json'
headers = {
'Accept' => '*/*',
'Authorization' => 'Bearer {access-token}'
}
result = RestClient.get '/ai/testconfigtasks_extended',
params: {
}, headers: headers
p JSON.parse(result)
GET /testconfigtasks_extended
Parameters
Name | In | Type | Required | Description |
---|---|---|---|---|
test_config_id | query | string | false | Filter by test_config_id |
offset | query | integer | false | The number of items to skip before result |
limit | query | integer | false | The numbers of items to return |
sort | query | string | false | Sort by column: -cname = Descending; +cname = Ascending |
limit_per_test_config | query | integer | false | The maximum number of items to return for each test configuration |
Example responses
200 Response
Responses
Status | Meaning | Description | Schema |
---|---|---|---|
200 | OK | The list of test config tasks | Inline |
401 | Unauthorized | Invalid token or token timed out. | None |
403 | Forbidden | Attempt to access a restricted or admin-only resource. | None |
Response Schema
Status Code 200
Name | Type | Required | Restrictions | Description |
---|---|---|---|---|
anonymous | [TestConfigTaskExtended] | false | none | none |
» created_datetime | string | false | none | none |
» runstatus | string | true | none | none |
» test_config_id | string | false | none | none |
» task_instance_id | string | false | none | none |
» updated_datetime | string | false | none | none |
» suts | string | true | none | none |
» test_config_name | string | true | none | none |
» agents | string | true | none | none |
» model_name | string | true | none | none |
Users
Create a user
Code samples
package main
import (
"bytes"
"net/http"
)
func main() {
headers := map[string][]string{
"Content-Type": []string{"application/json"},
"Accept": []string{"*/*"},
"Authorization": []string{"Bearer {access-token}"},
}
data := bytes.NewBuffer([]byte{jsonReq})
req, err := http.NewRequest("POST", "/ai/users", data)
req.Header = headers
client := &http.Client{}
resp, err := client.Do(req)
// ...
}
const inputBody = '{
"type": "object",
"properties": {
"id": {
"name": "id",
"type": "string"
},
"username": {
"name": "username",
"type": "string"
},
"role": {
"name": "role",
"enum": [
"None",
"User",
"Admin"
],
"default": "User",
"type": "string"
},
"groups": {
"name": "groups",
"items": {
"type": "string"
},
"type": "array"
},
"password": {
"name": "password",
"type": "string"
},
"license": {
"name": "license",
"type": "string"
},
"hide_welcome_popup": {
"name": "hide_welcome_popup",
"type": "string"
}
},
"required": [
"username"
]
}';
const headers = {
'Content-Type':'application/json',
'Accept':'*/*',
'Authorization':'Bearer {access-token}'
};
fetch('/ai/users',
{
method: 'POST',
body: inputBody,
headers: headers
})
.then(function(res) {
return res.json();
}).then(function(body) {
console.log(body);
});
import requests
headers = {
'Content-Type': 'application/json',
'Accept': '*/*',
'Authorization': 'Bearer {access-token}'
}
r = requests.post('/ai/users', headers = headers)
print(r.json())
require 'rest-client'
require 'json'
headers = {
'Content-Type' => 'application/json',
'Accept' => '*/*',
'Authorization' => 'Bearer {access-token}'
}
result = RestClient.post '/ai/users',
params: {
}, headers: headers
p JSON.parse(result)
POST /users
Body parameter
{
"type": "object",
"properties": {
"id": {
"name": "id",
"type": "string"
},
"username": {
"name": "username",
"type": "string"
},
"role": {
"name": "role",
"enum": [
"None",
"User",
"Admin"
],
"default": "User",
"type": "string"
},
"groups": {
"name": "groups",
"items": {
"type": "string"
},
"type": "array"
},
"password": {
"name": "password",
"type": "string"
},
"license": {
"name": "license",
"type": "string"
},
"hide_welcome_popup": {
"name": "hide_welcome_popup",
"type": "string"
}
},
"required": [
"username"
]
}
Parameters
Name | In | Type | Required | Description |
---|---|---|---|---|
body | body | User | true | Request body |
Example responses
200 Response
Responses
Status | Meaning | Description | Schema |
---|---|---|---|
200 | OK | The created user | UserSwagger |
400 | Bad Request | Invalid username. | None |
402 | Payment Required | Exceeded the maximum number of users | None |
403 | Forbidden | User must be an Admin. | None |
409 | Conflict | User or group already exists | None |
Get a list of all users
Code samples
package main
import (
"bytes"
"net/http"
)
func main() {
headers := map[string][]string{
"Accept": []string{"*/*"},
"Authorization": []string{"Bearer {access-token}"},
}
data := bytes.NewBuffer([]byte{jsonReq})
req, err := http.NewRequest("GET", "/ai/users", data)
req.Header = headers
client := &http.Client{}
resp, err := client.Do(req)
// ...
}
const headers = {
'Accept':'*/*',
'Authorization':'Bearer {access-token}'
};
fetch('/ai/users',
{
method: 'GET',
headers: headers
})
.then(function(res) {
return res.json();
}).then(function(body) {
console.log(body);
});
import requests
headers = {
'Accept': '*/*',
'Authorization': 'Bearer {access-token}'
}
r = requests.get('/ai/users', headers = headers)
print(r.json())
require 'rest-client'
require 'json'
headers = {
'Accept' => '*/*',
'Authorization' => 'Bearer {access-token}'
}
result = RestClient.get '/ai/users',
params: {
}, headers: headers
p JSON.parse(result)
GET /users
Example responses
200 Response
Responses
Status | Meaning | Description | Schema |
---|---|---|---|
200 | OK | The list of users | Inline |
401 | Unauthorized | Invalid token or token timed out. | None |
402 | Payment Required | License limits exceeded. | None |
403 | Forbidden | Attempt to access a restricted or admin-only resource. | None |
404 | Not Found | There are currently no users | None |
Response Schema
Status Code 200
Name | Type | Required | Restrictions | Description |
---|---|---|---|---|
anonymous | [UserSwagger] | false | none | none |
» User | UserSwagger | false | none | none |
»» id | any | false | none | none |
»» username | any | false | none | none |
»» role | any | false | none | none |
»» groups | [GroupSwagger] | false | none | none |
»»» Group | GroupSwagger | false | none | none |
»»»» id | any | false | none | none |
»»»» name | any | false | none | none |
»» hide_welcome_popup | any | false | none | none |
Update a user
Code samples
package main
import (
"bytes"
"net/http"
)
func main() {
headers := map[string][]string{
"Content-Type": []string{"application/json"},
"Accept": []string{"*/*"},
"Authorization": []string{"Bearer {access-token}"},
}
data := bytes.NewBuffer([]byte{jsonReq})
req, err := http.NewRequest("PUT", "/ai/users/{user_id}", data)
req.Header = headers
client := &http.Client{}
resp, err := client.Do(req)
// ...
}
const inputBody = '{
"type": "object",
"properties": {
"id": {
"name": "id",
"type": "string"
},
"username": {
"name": "username",
"type": "string"
},
"role": {
"name": "role",
"enum": [
"None",
"User",
"Admin"
],
"default": "User",
"type": "string"
},
"groups": {
"name": "groups",
"items": {
"type": "string"
},
"type": "array"
},
"password": {
"name": "password",
"type": "string"
},
"license": {
"name": "license",
"type": "string"
},
"hide_welcome_popup": {
"name": "hide_welcome_popup",
"type": "string"
}
},
"required": [
"username"
]
}';
const headers = {
'Content-Type':'application/json',
'Accept':'*/*',
'Authorization':'Bearer {access-token}'
};
fetch('/ai/users/{user_id}',
{
method: 'PUT',
body: inputBody,
headers: headers
})
.then(function(res) {
return res.json();
}).then(function(body) {
console.log(body);
});
import requests
headers = {
'Content-Type': 'application/json',
'Accept': '*/*',
'Authorization': 'Bearer {access-token}'
}
r = requests.put('/ai/users/{user_id}', headers = headers)
print(r.json())
require 'rest-client'
require 'json'
headers = {
'Content-Type' => 'application/json',
'Accept' => '*/*',
'Authorization' => 'Bearer {access-token}'
}
result = RestClient.put '/ai/users/{user_id}',
params: {
}, headers: headers
p JSON.parse(result)
PUT /users/{user_id}
Body parameter
{
"type": "object",
"properties": {
"id": {
"name": "id",
"type": "string"
},
"username": {
"name": "username",
"type": "string"
},
"role": {
"name": "role",
"enum": [
"None",
"User",
"Admin"
],
"default": "User",
"type": "string"
},
"groups": {
"name": "groups",
"items": {
"type": "string"
},
"type": "array"
},
"password": {
"name": "password",
"type": "string"
},
"license": {
"name": "license",
"type": "string"
},
"hide_welcome_popup": {
"name": "hide_welcome_popup",
"type": "string"
}
},
"required": [
"username"
]
}
Parameters
Name | In | Type | Required | Description |
---|---|---|---|---|
body | body | User | true | Request body |
Example responses
200 Response
Responses
Status | Meaning | Description | Schema |
---|---|---|---|
200 | OK | The updated user | UserSwagger |
401 | Unauthorized | Invalid token or token timed out. | None |
402 | Payment Required | License limits exceeded. | None |
403 | Forbidden | Attempt to access a restricted or admin-only resource. | None |
Delete a user
Code samples
package main
import (
"bytes"
"net/http"
)
func main() {
headers := map[string][]string{
"Content-Type": []string{"application/json"},
"Authorization": []string{"Bearer {access-token}"},
}
data := bytes.NewBuffer([]byte{jsonReq})
req, err := http.NewRequest("DELETE", "/ai/users/{user_id}", data)
req.Header = headers
client := &http.Client{}
resp, err := client.Do(req)
// ...
}
const inputBody = '{
"type": "object",
"properties": {
"id": {
"name": "id",
"type": "string"
},
"username": {
"name": "username",
"type": "string"
},
"role": {
"name": "role",
"enum": [
"None",
"User",
"Admin"
],
"default": "User",
"type": "string"
},
"groups": {
"name": "groups",
"items": {
"type": "string"
},
"type": "array"
},
"password": {
"name": "password",
"type": "string"
},
"license": {
"name": "license",
"type": "string"
},
"hide_welcome_popup": {
"name": "hide_welcome_popup",
"type": "string"
}
},
"required": [
"username"
]
}';
const headers = {
'Content-Type':'application/json',
'Authorization':'Bearer {access-token}'
};
fetch('/ai/users/{user_id}',
{
method: 'DELETE',
body: inputBody,
headers: headers
})
.then(function(res) {
return res.json();
}).then(function(body) {
console.log(body);
});
import requests
headers = {
'Content-Type': 'application/json',
'Authorization': 'Bearer {access-token}'
}
r = requests.delete('/ai/users/{user_id}', headers = headers)
print(r.json())
require 'rest-client'
require 'json'
headers = {
'Content-Type' => 'application/json',
'Authorization' => 'Bearer {access-token}'
}
result = RestClient.delete '/ai/users/{user_id}',
params: {
}, headers: headers
p JSON.parse(result)
DELETE /users/{user_id}
Body parameter
{
"type": "object",
"properties": {
"id": {
"name": "id",
"type": "string"
},
"username": {
"name": "username",
"type": "string"
},
"role": {
"name": "role",
"enum": [
"None",
"User",
"Admin"
],
"default": "User",
"type": "string"
},
"groups": {
"name": "groups",
"items": {
"type": "string"
},
"type": "array"
},
"password": {
"name": "password",
"type": "string"
},
"license": {
"name": "license",
"type": "string"
},
"hide_welcome_popup": {
"name": "hide_welcome_popup",
"type": "string"
}
},
"required": [
"username"
]
}
Parameters
Name | In | Type | Required | Description |
---|---|---|---|---|
body | body | User | true | Request body |
Responses
Status | Meaning | Description | Schema |
---|---|---|---|
200 | OK | User was deleted successfully | None |
401 | Unauthorized | Invalid token or token timed out. | None |
402 | Payment Required | License limits exceeded. | None |
403 | Forbidden | Attempt to access a restricted or admin-only resource. | None |
Get a single user
Code samples
package main
import (
"bytes"
"net/http"
)
func main() {
headers := map[string][]string{
"Accept": []string{"*/*"},
"Authorization": []string{"Bearer {access-token}"},
}
data := bytes.NewBuffer([]byte{jsonReq})
req, err := http.NewRequest("GET", "/ai/users/{user_id}", data)
req.Header = headers
client := &http.Client{}
resp, err := client.Do(req)
// ...
}
const headers = {
'Accept':'*/*',
'Authorization':'Bearer {access-token}'
};
fetch('/ai/users/{user_id}',
{
method: 'GET',
headers: headers
})
.then(function(res) {
return res.json();
}).then(function(body) {
console.log(body);
});
import requests
headers = {
'Accept': '*/*',
'Authorization': 'Bearer {access-token}'
}
r = requests.get('/ai/users/{user_id}', headers = headers)
print(r.json())
require 'rest-client'
require 'json'
headers = {
'Accept' => '*/*',
'Authorization' => 'Bearer {access-token}'
}
result = RestClient.get '/ai/users/{user_id}',
params: {
}, headers: headers
p JSON.parse(result)
GET /users/{user_id}
Parameters
Name | In | Type | Required | Description |
---|---|---|---|---|
user_id | path | int | true | none |
Example responses
200 Response
Responses
Status | Meaning | Description | Schema |
---|---|---|---|
200 | OK | The list of users | UserSwagger |
401 | Unauthorized | Invalid token or token timed out. | None |
403 | Forbidden | Attempt to access a restricted or admin-only resource. | None |
404 | Not Found | There are currently no user | None |
Show / Hide the welcome popup message for a user
Code samples
package main
import (
"bytes"
"net/http"
)
func main() {
headers := map[string][]string{
"Content-Type": []string{"application/json"},
"Accept": []string{"*/*"},
"Authorization": []string{"Bearer {access-token}"},
}
data := bytes.NewBuffer([]byte{jsonReq})
req, err := http.NewRequest("POST", "/ai/users/{user_id}/welcome_popup", data)
req.Header = headers
client := &http.Client{}
resp, err := client.Do(req)
// ...
}
const inputBody = '{
"type": "object",
"properties": {
"hide_welcome_popup": {
"name": "hide_welcome_popup",
"type": "string"
}
},
"required": [
"hide_welcome_popup"
]
}';
const headers = {
'Content-Type':'application/json',
'Accept':'*/*',
'Authorization':'Bearer {access-token}'
};
fetch('/ai/users/{user_id}/welcome_popup',
{
method: 'POST',
body: inputBody,
headers: headers
})
.then(function(res) {
return res.json();
}).then(function(body) {
console.log(body);
});
import requests
headers = {
'Content-Type': 'application/json',
'Accept': '*/*',
'Authorization': 'Bearer {access-token}'
}
r = requests.post('/ai/users/{user_id}/welcome_popup', headers = headers)
print(r.json())
require 'rest-client'
require 'json'
headers = {
'Content-Type' => 'application/json',
'Accept' => '*/*',
'Authorization' => 'Bearer {access-token}'
}
result = RestClient.post '/ai/users/{user_id}/welcome_popup',
params: {
}, headers: headers
p JSON.parse(result)
POST /users/{user_id}/welcome_popup
Body parameter
{
"type": "object",
"properties": {
"hide_welcome_popup": {
"name": "hide_welcome_popup",
"type": "string"
}
},
"required": [
"hide_welcome_popup"
]
}
Parameters
Name | In | Type | Required | Description |
---|---|---|---|---|
body | body | UserWelcome | true | Request body |
Example responses
200 Response
Responses
Status | Meaning | Description | Schema |
---|---|---|---|
200 | OK | The updated user | UserSwagger |
400 | Bad Request | Incorrect params passed. | None |
401 | Unauthorized | Invalid token or token timed out. | None |
402 | Payment Required | License limits exceeded. | None |
403 | Forbidden | Attempt to access a restricted or admin-only resource. | None |
Schemas
TestConfigTask
{
"properties": {
"created_datetime": {
"type": "string",
"name": "created_datetime"
},
"runstatus": {
"type": "string",
"name": "runstatus"
},
"test_config_id": {
"type": "string",
"name": "test_config_id"
},
"task_instance_id": {
"type": "string",
"name": "task_instance_id"
},
"updated_datetime": {
"type": "string",
"name": "updated_datetime"
}
},
"required": [
"runstatus"
]
}
Properties
Name | Type | Required | Restrictions | Description |
---|---|---|---|---|
created_datetime | string | false | none | none |
runstatus | string | true | none | none |
test_config_id | string | false | none | none |
task_instance_id | string | false | none | none |
updated_datetime | string | false | none | none |
TestConfigTaskExtended
{
"properties": {
"created_datetime": {
"type": "string",
"name": "created_datetime"
},
"runstatus": {
"type": "string",
"name": "runstatus"
},
"test_config_id": {
"type": "string",
"name": "test_config_id"
},
"task_instance_id": {
"type": "string",
"name": "task_instance_id"
},
"updated_datetime": {
"type": "string",
"name": "updated_datetime"
},
"suts": {
"type": "string",
"name": "suts"
},
"test_config_name": {
"type": "string",
"name": "test_config_name"
},
"agents": {
"type": "string",
"name": "agents"
},
"model_name": {
"type": "string",
"name": "model_name"
}
},
"required": [
"runstatus",
"suts",
"test_config_name",
"agents",
"model_name"
]
}
Properties
Name | Type | Required | Restrictions | Description |
---|---|---|---|---|
created_datetime | string | false | none | none |
runstatus | string | true | none | none |
test_config_id | string | false | none | none |
task_instance_id | string | false | none | none |
updated_datetime | string | false | none | none |
suts | string | true | none | none |
test_config_name | string | true | none | none |
agents | string | true | none | none |
model_name | string | true | none | none |
TestConfigTaskDetails
{
"properties": {
"created_datetime": {
"type": "string",
"name": "created_datetime"
},
"runstatus": {
"type": "string",
"name": "runstatus"
},
"test_config_id": {
"type": "string",
"name": "test_config_id"
},
"task_instance_id": {
"type": "string",
"name": "task_instance_id"
},
"updated_datetime": {
"type": "string",
"name": "updated_datetime"
},
"messages": {
"name": "messages"
}
},
"required": [
"runstatus",
"messages"
]
}
Properties
Name | Type | Required | Restrictions | Description |
---|---|---|---|---|
created_datetime | string | false | none | none |
runstatus | string | true | none | none |
test_config_id | string | false | none | none |
task_instance_id | string | false | none | none |
updated_datetime | string | false | none | none |
messages | any | true | none | none |
Agent
{
"properties": {
"id": {
"type": "integer",
"name": "id"
},
"name": {
"type": "string",
"name": "name"
},
"recordpath": {
"type": "string",
"name": "recordpath"
},
"suite": {
"type": "string",
"name": "suite"
},
"agenttype": {
"type": "string",
"name": "agenttype"
},
"epphost": {
"type": "string",
"name": "epphost"
},
"epptestcontrollerport": {
"type": "integer",
"name": "epptestcontrollerport"
},
"eppanalyzerport": {
"type": "integer",
"name": "eppanalyzerport"
},
"eppworkspacepath": {
"type": "string",
"name": "eppworkspacepath"
},
"isconnected": {
"type": "boolean",
"name": "isconnected"
},
"ishosted": {
"type": "boolean",
"name": "ishosted"
}
},
"required": [
"name",
"recordpath",
"suite",
"epphost",
"epptestcontrollerport",
"eppanalyzerport",
"eppworkspacepath"
]
}
Properties
Name | Type | Required | Restrictions | Description |
---|---|---|---|---|
id | integer | false | none | none |
name | string | true | none | none |
recordpath | string | true | none | none |
suite | string | true | none | none |
agenttype | string | false | none | none |
epphost | string | true | none | none |
epptestcontrollerport | integer | true | none | none |
eppanalyzerport | integer | true | none | none |
eppworkspacepath | string | true | none | none |
isconnected | boolean | false | none | none |
ishosted | boolean | false | none | none |
CoverageModel
{
"properties": {
"id": {
"type": "integer",
"name": "id"
},
"name": {
"type": "string",
"name": "name"
},
"variable_depth": {
"type": "integer",
"name": "variable_depth"
},
"path_depth": {
"type": "integer",
"name": "path_depth"
},
"active": {
"type": "boolean",
"name": "active"
},
"created": {
"type": "string",
"name": "created"
}
}
}
Properties
Name | Type | Required | Restrictions | Description |
---|---|---|---|---|
id | integer | false | none | none |
name | string | false | none | none |
variable_depth | integer | false | none | none |
path_depth | integer | false | none | none |
active | boolean | false | none | none |
created | string | false | none | none |
Model
{
"properties": {
"id": {
"type": "integer",
"name": "id"
},
"modeluuid": {
"type": "string",
"name": "modeluuid"
},
"name": {
"type": "string",
"name": "name"
},
"group": {
"type": "string",
"name": "group"
},
"agent": {
"type": "integer",
"name": "agent"
},
"created": {
"type": "string",
"name": "created"
},
"updated": {
"type": "string",
"name": "updated"
},
"modeljson": {
"type": "string",
"name": "modeljson"
}
},
"required": [
"group"
]
}
Properties
Name | Type | Required | Restrictions | Description |
---|---|---|---|---|
id | integer | false | none | none |
modeluuid | string | false | none | none |
name | string | false | none | none |
group | string | true | none | none |
agent | integer | false | none | none |
created | string | false | none | none |
updated | string | false | none | none |
modeljson | string | false | none | none |
ModelAgent
{
"type": "object",
"properties": {
"agent": {
"name": "agent",
"type": "integer"
}
},
"required": [
"agent"
]
}
Properties
Name | Type | Required | Restrictions | Description |
---|---|---|---|---|
agent | integer | true | none | none |
Run
{
"properties": {
"id": {
"type": "integer",
"name": "id"
},
"hierarchyid": {
"type": "integer",
"name": "hierarchyid"
},
"modelname": {
"type": "string",
"name": "modelname"
},
"groupid": {
"type": "integer",
"name": "groupid"
},
"teststatus": {
"type": "string",
"name": "teststatus"
},
"starttime": {
"type": "string",
"name": "starttime"
},
"endtime": {
"type": "string",
"name": "endtime"
},
"seed": {
"type": "integer",
"name": "seed"
},
"coverage": {
"type": "float",
"name": "coverage"
},
"logfile": {
"type": "string",
"name": "logfile"
},
"usedtests": {
"type": "string",
"name": "usedtests"
},
"events": {
"type": "boolean",
"name": "events"
},
"runtype": {
"type": "string",
"name": "runtype"
},
"testcase": {
"type": "string",
"name": "testcase"
},
"testconfigtask": {
"name": "testconfigtask"
},
"step": {
"type": "integer",
"name": "step"
},
"failedaction": {
"type": "string",
"name": "failedaction"
},
"scriptname": {
"type": "string",
"name": "scriptname"
},
"suitename": {
"type": "string",
"name": "suitename"
}
},
"required": [
"id",
"hierarchyid",
"modelname",
"groupid",
"teststatus",
"starttime",
"endtime",
"seed",
"coverage",
"logfile",
"usedtests",
"events",
"runtype",
"testcase",
"testconfigtask",
"step",
"failedaction",
"scriptname",
"suitename"
]
}
Properties
Name | Type | Required | Restrictions | Description |
---|---|---|---|---|
id | integer | true | none | none |
hierarchyid | integer | true | none | none |
modelname | string | true | none | none |
groupid | integer | true | none | none |
teststatus | string | true | none | none |
starttime | string | true | none | none |
endtime | string | true | none | none |
seed | integer | true | none | none |
coverage | float | true | none | none |
logfile | string | true | none | none |
usedtests | string | true | none | none |
events | boolean | true | none | none |
runtype | string | true | none | none |
testcase | string | true | none | none |
testconfigtask | any | true | none | none |
step | integer | true | none | none |
failedaction | string | true | none | none |
scriptname | string | true | none | none |
suitename | string | true | none | none |
RunSummary
{
"properties": {
"testcase": {
"type": "string",
"name": "testcase"
},
"passcount": {
"type": "integer",
"name": "passcount"
},
"failcount": {
"type": "integer",
"name": "failcount"
},
"cancelcount": {
"type": "integer",
"name": "cancelcount"
},
"errorcount": {
"type": "integer",
"name": "errorcount"
},
"incompletecount": {
"type": "integer",
"name": "incompletecount"
}
},
"required": [
"testcase",
"passcount",
"failcount",
"cancelcount",
"errorcount",
"incompletecount"
]
}
Properties
Name | Type | Required | Restrictions | Description |
---|---|---|---|---|
testcase | string | true | none | none |
passcount | integer | true | none | none |
failcount | integer | true | none | none |
cancelcount | integer | true | none | none |
errorcount | integer | true | none | none |
incompletecount | integer | true | none | none |
ModelCoverage
{
"properties": {
"bob": {
"type": "string",
"name": "bob"
}
},
"required": [
"bob"
]
}
Properties
Name | Type | Required | Restrictions | Description |
---|---|---|---|---|
bob | string | true | none | none |
TestCases
{
"properties": {
"testcaseName": {
"type": "string",
"name": "testcaseName"
},
"testcase": {
"type": "string",
"name": "testcase"
},
"id": {
"type": "integer",
"name": "id"
},
"tests": {
"type": "string",
"name": "tests"
},
"fails": {
"type": "string",
"name": "fails"
},
"testcaseTags": {
"type": "string",
"name": "testcaseTags"
},
"testcaseDescription": {
"type": "string",
"name": "testcaseDescription"
},
"testcaseOrigin": {
"type": "string",
"name": "testcaseOrigin"
},
"testcaseExternalID": {
"type": "string",
"name": "testcaseExternalID"
},
"testIds": {
"type": "string",
"name": "testIds"
},
"modelId": {
"type": "string",
"name": "modelId"
},
"modelName": {
"type": "string",
"name": "modelName"
}
},
"required": [
"testcaseName",
"testcase"
]
}
Properties
Name | Type | Required | Restrictions | Description |
---|---|---|---|---|
testcaseName | string | true | none | none |
testcase | string | true | none | none |
id | integer | false | none | none |
tests | string | false | none | none |
fails | string | false | none | none |
testcaseTags | string | false | none | none |
testcaseDescription | string | false | none | none |
testcaseOrigin | string | false | none | none |
testcaseExternalID | string | false | none | none |
testIds | string | false | none | none |
modelId | string | false | none | none |
modelName | string | false | none | none |
ModelTags
{
"type": "object",
"properties": {
"id": {
"name": "id",
"type": "integer"
},
"model": {
"name": "model",
"type": "string"
},
"tag": {
"name": "tag",
"type": "string"
},
"created": {
"name": "created",
"type": "string"
},
"author": {
"name": "author",
"type": "string"
}
},
"required": [
"model",
"tag",
"author"
]
}
Properties
Name | Type | Required | Restrictions | Description |
---|---|---|---|---|
id | integer | false | none | none |
model | string | true | none | none |
tag | string | true | none | none |
created | string | false | none | none |
author | string | true | none | none |
Timings
{
"properties": {
"order": {
"type": "integer",
"name": "order"
},
"state": {
"type": "string",
"name": "state"
},
"action": {
"type": "string",
"name": "action"
},
"timing": {
"type": "float",
"name": "timing"
}
},
"required": [
"order",
"state",
"action",
"timing"
]
}
Properties
Name | Type | Required | Restrictions | Description |
---|---|---|---|---|
order | integer | true | none | none |
state | string | true | none | none |
action | string | true | none | none |
timing | float | true | none | none |
Screenshots
{
"properties": {
"timestamp": {
"type": "string",
"name": "timestamp"
},
"artifactid": {
"type": "string",
"name": "artifactid"
},
"name": {
"type": "string",
"name": "name"
},
"capture_type": {
"type": "string",
"name": "capture_type"
},
"content_type": {
"type": "string",
"name": "content_type"
},
"state": {
"type": "string",
"name": "state"
},
"action": {
"type": "string",
"name": "action"
},
"script": {
"type": "string",
"name": "script"
},
"suite": {
"type": "string",
"name": "suite"
}
},
"required": [
"timestamp",
"artifactid",
"name",
"capture_type",
"content_type",
"state",
"action",
"script",
"suite"
]
}
Properties
Name | Type | Required | Restrictions | Description |
---|---|---|---|---|
timestamp | string | true | none | none |
artifactid | string | true | none | none |
name | string | true | none | none |
capture_type | string | true | none | none |
content_type | string | true | none | none |
state | string | true | none | none |
action | string | true | none | none |
script | string | true | none | none |
suite | string | true | none | none |
TestConfigTaskSummary
{
"properties": {
"total_steps_in_test_config": {
"type": "integer",
"name": "total_steps_in_test_config"
},
"test_config_total_runs_complete": {
"type": "integer",
"name": "test_config_total_runs_complete"
},
"test_config_total_runs_passes": {
"type": "integer",
"name": "test_config_total_runs_passes"
},
"test_config_total_runs_failures": {
"type": "integer",
"name": "test_config_total_runs_failures"
},
"test_config_total_runs_incomplete": {
"type": "integer",
"name": "test_config_total_runs_incomplete"
},
"test_config_total_runs_cancelled": {
"type": "integer",
"name": "test_config_total_runs_cancelled"
},
"test_config_total_runs_in_error": {
"type": "integer",
"name": "test_config_total_runs_in_error"
},
"total_execution_time_secs": {
"type": "float",
"name": "total_execution_time_secs"
},
"task_instance_steps_completed": {
"type": "integer",
"name": "task_instance_steps_completed"
},
"sut_used": {
"type": "string",
"name": "sut_used"
}
},
"required": [
"total_steps_in_test_config",
"test_config_total_runs_complete",
"test_config_total_runs_passes",
"test_config_total_runs_failures",
"test_config_total_runs_incomplete",
"test_config_total_runs_cancelled",
"test_config_total_runs_in_error",
"total_execution_time_secs",
"task_instance_steps_completed",
"sut_used"
]
}
Properties
Name | Type | Required | Restrictions | Description |
---|---|---|---|---|
total_steps_in_test_config | integer | true | none | none |
test_config_total_runs_complete | integer | true | none | none |
test_config_total_runs_passes | integer | true | none | none |
test_config_total_runs_failures | integer | true | none | none |
test_config_total_runs_incomplete | integer | true | none | none |
test_config_total_runs_cancelled | integer | true | none | none |
test_config_total_runs_in_error | integer | true | none | none |
total_execution_time_secs | float | true | none | none |
task_instance_steps_completed | integer | true | none | none |
sut_used | string | true | none | none |
NewModelAsset
{
"type": "object",
"properties": {
"id": {
"name": "id",
"type": "integer"
},
"asset_id": {
"name": "asset_id",
"type": "string"
},
"model_id": {
"name": "model_id",
"type": "integer"
}
},
"required": [
"asset_id"
]
}
Properties
Name | Type | Required | Restrictions | Description |
---|---|---|---|---|
id | integer | false | none | none |
asset_id | string | true | none | none |
model_id | integer | false | none | none |
RunLogs
{
"properties": {
"id": {
"type": "integer",
"name": "id"
},
"eventtime": {
"type": "string",
"name": "eventtime"
},
"testrunid": {
"type": "integer",
"name": "testrunid"
},
"message": {
"type": "string",
"name": "message"
}
},
"required": [
"id",
"eventtime",
"testrunid",
"message"
]
}
Properties
Name | Type | Required | Restrictions | Description |
---|---|---|---|---|
id | integer | true | none | none |
eventtime | string | true | none | none |
testrunid | integer | true | none | none |
message | string | true | none | none |
ReleaseInsights
{
"properties": {
"id": {
"type": "integer",
"name": "id"
}
},
"required": [
"id"
]
}
Properties
Name | Type | Required | Restrictions | Description |
---|---|---|---|---|
id | integer | true | none | none |
Error
{
"properties": {
"id": {
"type": "integer",
"name": "id"
},
"created": {
"type": "string",
"name": "created"
},
"task_instance_id": {
"type": "string",
"name": "task_instance_id"
},
"sender": {
"type": "string",
"name": "sender"
},
"severity": {
"type": "string",
"name": "severity"
},
"message": {
"type": "string",
"name": "message"
},
"error_time": {
"type": "string",
"name": "error_time"
}
},
"required": [
"id",
"created",
"task_instance_id",
"sender",
"severity",
"message",
"error_time"
]
}
Properties
Name | Type | Required | Restrictions | Description |
---|---|---|---|---|
id | integer | true | none | none |
created | string | true | none | none |
task_instance_id | string | true | none | none |
sender | string | true | none | none |
severity | string | true | none | none |
message | string | true | none | none |
error_time | string | true | none | none |
ModelAction
{
"properties": {
"stateName": {
"type": "string",
"name": "stateName"
},
"actionName": {
"type": "string",
"name": "actionName"
},
"passes": {
"type": "integer",
"name": "passes"
},
"is_rci": {
"type": "boolean",
"name": "is_rci"
},
"fails": {
"type": "integer",
"name": "fails"
}
},
"required": [
"stateName",
"actionName",
"passes",
"is_rci",
"fails"
]
}
Properties
Name | Type | Required | Restrictions | Description |
---|---|---|---|---|
stateName | string | true | none | none |
actionName | string | true | none | none |
passes | integer | true | none | none |
is_rci | boolean | true | none | none |
fails | integer | true | none | none |
Ping
{
"type": "object",
"properties": {
"status": "string",
"allow_log_download": "bool"
}
}
Properties
Name | Type | Required | Restrictions | Description |
---|---|---|---|---|
status | any | false | none | none |
allow_log_download | any | false | none | none |
UserSwagger
{
"type": "object",
"title": "User",
"properties": {
"id": "int",
"username": "string",
"role": "string",
"groups": {
"type": "array",
"items": {
"title": "Group",
"properties": {
"id": "string",
"name": "string"
},
"type": "object"
}
},
"hide_welcome_popup": "bool"
}
}
User
Properties
Name | Type | Required | Restrictions | Description |
---|---|---|---|---|
id | any | false | none | none |
username | any | false | none | none |
role | any | false | none | none |
groups | [GroupSwagger] | false | none | none |
hide_welcome_popup | any | false | none | none |
GroupSwagger
{
"title": "Group",
"properties": {
"id": "string",
"name": "string"
},
"type": "object"
}
Group
Properties
Name | Type | Required | Restrictions | Description |
---|---|---|---|---|
id | any | false | none | none |
name | any | false | none | none |
SwaggerToken
{
"type": "object",
"title": "Token",
"properties": {
"access_token": {
"type": "string"
},
"expires_in": {
"type": "integer"
},
"token_type": {
"type": "string"
},
"payload": {
"type": "object",
"title": "TokenPayload",
"properties": {
"exp": {
"type": "integer"
},
"iat": {
"type": "datetime"
},
"iss": {
"type": "string"
},
"rand": {
"type": "integer"
},
"user": {
"type": "object",
"title": "TokenUsername",
"properties": {
"username": {
"type": "string"
},
"role": {
"type": "string",
"enum": [
"admin",
"user",
"none"
],
"is_service": "boolean"
}
}
}
}
}
}
}
Token
Properties
Name | Type | Required | Restrictions | Description |
---|---|---|---|---|
access_token | string | false | none | none |
expires_in | integer | false | none | none |
token_type | string | false | none | none |
payload | SwaggerTokenPayload | false | none | none |
SwaggerTokenPayload
{
"type": "object",
"title": "TokenPayload",
"properties": {
"exp": {
"type": "integer"
},
"iat": {
"type": "datetime"
},
"iss": {
"type": "string"
},
"rand": {
"type": "integer"
},
"user": {
"type": "object",
"title": "TokenUsername",
"properties": {
"username": {
"type": "string"
},
"role": {
"type": "string",
"enum": [
"admin",
"user",
"none"
],
"is_service": "boolean"
}
}
}
}
}
TokenPayload
Properties
Name | Type | Required | Restrictions | Description |
---|---|---|---|---|
exp | integer | false | none | none |
iat | datetime | false | none | none |
iss | string | false | none | none |
rand | integer | false | none | none |
user | SwaggerTokenUserInfo | false | none | none |
SwaggerTokenUserInfo
{
"type": "object",
"title": "TokenUsername",
"properties": {
"username": {
"type": "string"
},
"role": {
"type": "string",
"enum": [
"admin",
"user",
"none"
],
"is_service": "boolean"
}
}
}
TokenUsername
Properties
Name | Type | Required | Restrictions | Description |
---|---|---|---|---|
username | string | false | none | none |
role | string | false | none | none |
Enumerated Values
Property | Value |
---|---|
role | admin |
role | user |
role | none |
SwaggerUser
{
"type": "object",
"title": "Merged user and token data",
"properties": {
"id": {
"type": "string"
},
"username": {
"type": "string"
},
"role": {
"type": "string"
},
"groups": {
"type": "array",
"items": {
"type": "object",
"title": "Group",
"properties": {
"id": {
"type": "integer"
},
"name": {
"type": "string"
}
}
}
},
"hide_welcome_popup": {
"type": "boolean"
}
}
}
Merged user and token data
Properties
Name | Type | Required | Restrictions | Description |
---|---|---|---|---|
id | string | false | none | none |
username | string | false | none | none |
role | string | false | none | none |
groups | [SwaggerGroupSchema] | false | none | none |
hide_welcome_popup | boolean | false | none | none |
SwaggerGroupSchema
{
"type": "object",
"title": "Group",
"properties": {
"id": {
"type": "integer"
},
"name": {
"type": "string"
}
}
}
Group
Properties
Name | Type | Required | Restrictions | Description |
---|---|---|---|---|
id | integer | false | none | none |
name | string | false | none | none |
Groups
{
"properties": {
"id": {
"type": "integer",
"name": "id"
},
"groupname": {
"type": "string",
"name": "groupname"
}
},
"required": [
"groupname"
]
}
Properties
Name | Type | Required | Restrictions | Description |
---|---|---|---|---|
id | integer | false | none | none |
groupname | string | true | none | none |
Group
{
"type": "object",
"properties": {
"id": {
"name": "id",
"type": "integer"
},
"groupname": {
"name": "groupname",
"type": "string"
}
},
"required": [
"groupname"
]
}
Properties
Name | Type | Required | Restrictions | Description |
---|---|---|---|---|
id | integer | false | none | none |
groupname | string | true | none | none |
User
{
"type": "object",
"properties": {
"id": {
"name": "id",
"type": "string"
},
"username": {
"name": "username",
"type": "string"
},
"role": {
"name": "role",
"enum": [
"None",
"User",
"Admin"
],
"default": "User",
"type": "string"
},
"groups": {
"name": "groups",
"items": {
"type": "string"
},
"type": "array"
},
"password": {
"name": "password",
"type": "string"
},
"license": {
"name": "license",
"type": "string"
},
"hide_welcome_popup": {
"name": "hide_welcome_popup",
"type": "string"
}
},
"required": [
"username"
]
}
Properties
Name | Type | Required | Restrictions | Description |
---|---|---|---|---|
id | string | false | none | none |
username | string | true | none | none |
role | string | false | none | none |
groups | [string] | false | none | none |
password | string | false | none | none |
license | string | false | none | none |
hide_welcome_popup | string | false | none | none |
Enumerated Values
Property | Value |
---|---|
role | None |
role | User |
role | Admin |
UserWelcome
{
"type": "object",
"properties": {
"hide_welcome_popup": {
"name": "hide_welcome_popup",
"type": "string"
}
},
"required": [
"hide_welcome_popup"
]
}
Properties
Name | Type | Required | Restrictions | Description |
---|---|---|---|---|
hide_welcome_popup | string | true | none | none |
SMTP
{
"properties": {
"id": {
"type": "integer",
"name": "id"
},
"serverhost": {
"type": "string",
"name": "serverhost"
},
"username": {
"type": "string",
"name": "username"
},
"password": {
"type": "string",
"name": "password"
},
"port": {
"type": "integer",
"name": "port"
},
"recipient": {
"type": "string",
"name": "recipient"
}
},
"required": [
"id",
"serverhost",
"username",
"password",
"port",
"recipient"
]
}
Properties
Name | Type | Required | Restrictions | Description |
---|---|---|---|---|
id | integer | true | none | none |
serverhost | string | true | none | none |
username | string | true | none | none |
password | string | true | none | none |
port | integer | true | none | none |
recipient | string | true | none | none |
Licenses
{
"properties": {
"serialnumber": {
"type": "integer",
"name": "serialnumber"
},
"license": {
"type": "string",
"name": "license"
},
"eula_accepted": {
"type": "boolean",
"name": "eula_accepted"
}
},
"required": [
"serialnumber",
"license",
"eula_accepted"
]
}
Properties
Name | Type | Required | Restrictions | Description |
---|---|---|---|---|
serialnumber | integer | true | none | none |
license | string | true | none | none |
eula_accepted | boolean | true | none | none |
License
{
"type": "object",
"properties": {
"serialnumber": {
"name": "serialnumber",
"type": "integer"
},
"license": {
"name": "license",
"type": "string"
},
"eula_accepted": {
"name": "eula_accepted",
"type": "boolean"
}
},
"required": [
"serialnumber",
"license",
"eula_accepted"
]
}
Properties
Name | Type | Required | Restrictions | Description |
---|---|---|---|---|
serialnumber | integer | true | none | none |
license | string | true | none | none |
eula_accepted | boolean | true | none | none |
LicenseUsage
{
"type": "object",
"properties": {
"num_users": "int",
"num_sessions": "int",
"num_execs": "int"
}
}
Properties
Name | Type | Required | Restrictions | Description |
---|---|---|---|---|
num_users | any | false | none | none |
num_sessions | any | false | none | none |
num_execs | any | false | none | none |
LicenseStatus
{
"type": "object",
"properties": {
"status": "str",
"version": "str",
"configured": "bool",
"has_valid_license": "bool",
"eula_accepted": "bool"
}
}
Properties
Name | Type | Required | Restrictions | Description |
---|---|---|---|---|
status | any | false | none | none |
version | any | false | none | none |
configured | any | false | none | none |
has_valid_license | any | false | none | none |
eula_accepted | any | false | none | none |
Coverage_Model
{
"type": "object",
"properties": {
"id": {
"name": "id",
"type": "integer"
},
"name": {
"name": "name",
"type": "string"
},
"variable_depth": {
"name": "variable_depth",
"type": "integer"
},
"path_depth": {
"name": "path_depth",
"type": "integer"
},
"active": {
"name": "active",
"type": "boolean"
},
"created": {
"name": "created",
"type": "string"
}
}
}
Properties
Name | Type | Required | Restrictions | Description |
---|---|---|---|---|
id | integer | false | none | none |
name | string | false | none | none |
variable_depth | integer | false | none | none |
path_depth | integer | false | none | none |
active | boolean | false | none | none |
created | string | false | none | none |
Create_test_case
{
"type": "object",
"properties": {
"testcaseName": {
"name": "testcaseName",
"type": "string"
},
"testcase": {
"name": "testcase",
"type": "string"
},
"id": {
"name": "id",
"type": "integer"
},
"tests": {
"name": "tests",
"type": "string"
},
"fails": {
"name": "fails",
"type": "string"
},
"testcaseTags": {
"name": "testcaseTags",
"type": "string"
},
"testcaseDescription": {
"name": "testcaseDescription",
"type": "string"
},
"testcaseOrigin": {
"name": "testcaseOrigin",
"type": "string"
},
"testcaseExternalID": {
"name": "testcaseExternalID",
"type": "string"
},
"testIds": {
"name": "testIds",
"type": "string"
},
"modelId": {
"name": "modelId",
"type": "string"
},
"modelName": {
"name": "modelName",
"type": "string"
}
},
"required": [
"testcaseName",
"testcase"
]
}
Properties
Name | Type | Required | Restrictions | Description |
---|---|---|---|---|
testcaseName | string | true | none | none |
testcase | string | true | none | none |
id | integer | false | none | none |
tests | string | false | none | none |
fails | string | false | none | none |
testcaseTags | string | false | none | none |
testcaseDescription | string | false | none | none |
testcaseOrigin | string | false | none | none |
testcaseExternalID | string | false | none | none |
testIds | string | false | none | none |
modelId | string | false | none | none |
modelName | string | false | none | none |
Update_test_case
{
"type": "object",
"properties": {
"testcaseName": {
"name": "testcaseName",
"type": "string"
},
"testcase": {
"name": "testcase",
"type": "string"
},
"id": {
"name": "id",
"type": "integer"
},
"tests": {
"name": "tests",
"type": "string"
},
"fails": {
"name": "fails",
"type": "string"
},
"testcaseTags": {
"name": "testcaseTags",
"type": "string"
},
"testcaseDescription": {
"name": "testcaseDescription",
"type": "string"
},
"testcaseOrigin": {
"name": "testcaseOrigin",
"type": "string"
},
"testcaseExternalID": {
"name": "testcaseExternalID",
"type": "string"
},
"testIds": {
"name": "testIds",
"type": "string"
},
"modelId": {
"name": "modelId",
"type": "string"
},
"modelName": {
"name": "modelName",
"type": "string"
}
},
"required": [
"testcaseName",
"testcase"
]
}
Properties
Name | Type | Required | Restrictions | Description |
---|---|---|---|---|
testcaseName | string | true | none | none |
testcase | string | true | none | none |
id | integer | false | none | none |
tests | string | false | none | none |
fails | string | false | none | none |
testcaseTags | string | false | none | none |
testcaseDescription | string | false | none | none |
testcaseOrigin | string | false | none | none |
testcaseExternalID | string | false | none | none |
testIds | string | false | none | none |
modelId | string | false | none | none |
modelName | string | false | none | none |
Update_model_tag
{
"type": "object",
"properties": {
"id": {
"name": "id",
"type": "integer"
},
"model": {
"name": "model",
"type": "string"
},
"tag": {
"name": "tag",
"type": "string"
},
"created": {
"name": "created",
"type": "string"
},
"author": {
"name": "author",
"type": "string"
}
},
"required": [
"model",
"tag",
"author"
]
}
Properties
Name | Type | Required | Restrictions | Description |
---|---|---|---|---|
id | integer | false | none | none |
model | string | true | none | none |
tag | string | true | none | none |
created | string | false | none | none |
author | string | true | none | none |
Create_new_Model_Asset
{
"type": "object",
"properties": {
"id": {
"name": "id",
"type": "integer"
},
"asset_id": {
"name": "asset_id",
"type": "string"
},
"model_id": {
"name": "model_id",
"type": "integer"
}
},
"required": [
"asset_id"
]
}
Properties
Name | Type | Required | Restrictions | Description |
---|---|---|---|---|
id | integer | false | none | none |
asset_id | string | true | none | none |
model_id | integer | false | none | none |
Generated at 14:47:42 GMT+0000 (Coordinated Universal Time) on Fri Apr 09 2021 from 5.2.0-5 (e6d396c0)