Litmus Portal API Documentation API Reference
Litmus Portal provides console and UI experience for managing, monitoring, and events around chaos workflows. Chaos workflows consist of a sequence of experiments run together to achieve the objective of introducing some kind of fault into an application or the Kubernetes platform.
API Endpoints
Dev:
http://localhost:8080
Prod:
http://localhost:8080/query
Cluster
Litmus Portal gives the ability to run chaos on remote Kubernetes cluster. Self cluster is automatically getting connected after submitting the welcome model. To connect an external cluster, use the following APIs for cluster operations.
User can access connected clusters via
agents page of Litmus Portal.
List Cluster
Returns a list of cluster with Litmus Portal. It includes pending, active and inactive clusters.
| Field | Possible values | Mandatory/Optional |
|---|---|---|
| project_id | - | Mandatory |
| cluster_type | external/internal | Mandatory |
Example Body:
{
"project_id": "5fd7d9212c9f32447e28317b",
"cluster_type": "external",
(no description)
(no description)
Example
Request Content-Types:
application/json
Query
query getCluster($project_id: String!, $cluster_type: String){
getCluster(project_id: $project_id, cluster_type: $cluster_type){
cluster_id
project_id
cluster_name
description
platform_name
access_key
is_registered
is_cluster_confirmed
is_active
updated_at
created_at
cluster_type
no_of_schedules
no_of_workflows
token
agent_namespace
serviceaccount
agent_scope
agent_ns_exists
agent_sa_exists
last_workflow_timestamp
}
}
Variables
{
"project_id": "string",
"cluster_type": "string"
}
Try it now
query getCluster($project_id: String!, $cluster_type: String){
getCluster(project_id: $project_id, cluster_type: $cluster_type){
cluster_id
project_id
cluster_name
description
platform_name
access_key
is_registered
is_cluster_confirmed
is_active
updated_at
created_at
cluster_type
no_of_schedules
no_of_workflows
token
agent_namespace
serviceaccount
agent_scope
agent_ns_exists
agent_sa_exists
last_workflow_timestamp
}
}
{
"project_id": "string",
"cluster_type": "string"
}
Successful operation
Response Content-Types: application/json
Response Example (200 OK)
{
"data": {
"getCluster": [
{
"cluster_id": "string",
"project_id": "string",
"cluster_name": "string",
"description": "string",
"platform_name": "string",
"access_key": "string",
"is_registered": "boolean",
"is_cluster_confirmed": "boolean",
"is_active": "boolean",
"updated_at": "string",
"created_at": "string",
"cluster_type": "string",
"no_of_schedules": "integer",
"no_of_workflows": "integer",
"token": "string",
"agent_namespace": "string",
"serviceaccount": "string",
"agent_scope": "string",
"agent_ns_exists": "boolean",
"agent_sa_exists": "boolean",
"last_workflow_timestamp": "string"
}
]
}
}
Register Cluster
User can make requests to connect their kubernetes cluster and get a token as response, that token can be used to get the subscriber manifest which needs to apply in their cluster.
| Field | Possible values | Mandatory/Optional |
|---|---|---|
| cluster_name | - | Mandatory |
| description | - | Optional |
| project_id | - | Mandatory |
| platform_name | - | Optional |
| cluster_type | external/internal | Mandatory |
| agent_namespace | - | Optional |
| serviceaccount | - | Optional |
| agent_scope | cluster/namespace | Mandatory |
| agent_ns_exists | true/false | Mandatory |
| agent_sa_exists | true/false | Mandatory |
| node_selector | - | Mandatory |
Example Body:
{
"cluster_name": "Litmus-cluster",
"description": "New Litmus Portal Cluster",
"platform_name": "AWS",
"project_id": "5fd7d9212c9f32447e28317b",
"cluster_type": "external",
"agent_namespace": "",
"agent_namespace": "",
"agent_scope": cluster,
"agent_ns_exists": false,
"agent_sa_exists": false,
(no description)
Example
Request Content-Types:
application/json
Query
mutation userClusterReg($clusterInput: ClusterInput!){
userClusterReg(clusterInput: $clusterInput){
token
cluster_id
cluster_name
}
}
Variables
{
"clusterInput": {
"cluster_name": "string",
"description": "string",
"platform_name": "string",
"project_id": "object",
"cluster_type": "string",
"agent_namespace": "string",
"serviceaccount": "string",
"agent_scope": "string",
"agent_ns_exists": "boolean",
"agent_sa_exists": "boolean",
"node_selector": "string"
}
}
Try it now
mutation userClusterReg($clusterInput: ClusterInput!){
userClusterReg(clusterInput: $clusterInput){
token
cluster_id
cluster_name
}
}
{
"clusterInput": {
"cluster_name": "string",
"description": "string",
"platform_name": "string",
"project_id": "object",
"cluster_type": "string",
"agent_namespace": "string",
"serviceaccount": "string",
"agent_scope": "string",
"agent_ns_exists": "boolean",
"agent_sa_exists": "boolean",
"node_selector": "string"
}
}
Successful operation
Response Content-Types: application/json
Response Example (200 OK)
{
"data": {
"userClusterReg": {
"token": "string",
"cluster_id": "string",
"cluster_name": "string"
}
}
}
Delete Cluster
This query can be used to delete a cluster from litmus portal. It cannot be undone.
Note: User can access the details of deleted cluster inside MongoDB, which are being marked as removed.
| Field | Possible values | Mandatory/Optional |
|---|---|---|
| cluster_id | - | Mandatory |
Example Body:
{
"cluster_id": "2df3212c9f32447e28317b",
(no description)
Example
Request Content-Types:
application/json
Query
mutation deleteClusterReg($cluster_id: String!){
deleteClusterReg(cluster_id: $cluster_id)
}
Variables
{
"cluster_id": "string"
}
Try it now
mutation deleteClusterReg($cluster_id: String!){
deleteClusterReg(cluster_id: $cluster_id)
}
{
"cluster_id": "string"
}
Successful operation
Response Content-Types: application/json
Response Example (200 OK)
{
"data": {
"deleteClusterReg": "string"
}
}
Chaos Workflow
Chaos workflows consist of a sequence of experiments run together to introduce chaos in the Kubernetes platform.
Note: Target cluster should be in active state before scheduling the workflow
Create ChaosWorkflow
User can create Chaos Workflow easily via the workflow page of the Litmus Portal dashboard.
| Field | Possible values | Mandatory/Optional |
|---|---|---|
| workflow_id | - | Optional |
| workflow_manifest | - | Mandatory |
| workflow_manifest | - | Mandatory |
| cronSyntax | - | Optional |
| workflow_name | external/internal | Mandatory |
| weightages | - | Mandatory |
| workflow_description | - | Optional |
| isCustomWorkflow | true/false | Madatory |
| project_id | Mandatory | |
| cluster_id | Mandatory |
Example Body:
{
"workflow_name": "Pod-networkloss-chaos",
"workflow_manifest": "{ apiVersion: v1 ......}",
"cronSyntax": "***/2",
"project_id": "5fd7d9212c9f32447e28317b",
"cluster_id": "3gr3f492146f53d4g3e283re",
"workflow_description": "Pod networkloss-experiment",
"isCustomWorkflow": false,
(no description)
Example
Request Content-Types:
application/json
Query
mutation createChaosWorkFlow($input: ChaosWorkFlowInput!){
createChaosWorkFlow(input: $input){
workflow_id
cronSyntax
workflow_name
workflow_description
isCustomWorkflow
}
}
Variables
{
"input": {
"workflow_id": "string",
"workflow_manifest": "string",
"cronSyntax": "string",
"workflow_name": "string",
"workflow_description": "string",
"weightages": [
{
"experiment_name": "string",
"weightage": "number"
}
],
"isCustomWorkflow": "boolean",
"project_id": "object",
"cluster_id": "object"
}
}
Try it now
mutation createChaosWorkFlow($input: ChaosWorkFlowInput!){
createChaosWorkFlow(input: $input){
workflow_id
cronSyntax
workflow_name
workflow_description
isCustomWorkflow
}
}
{
"input": {
"workflow_id": "string",
"workflow_manifest": "string",
"cronSyntax": "string",
"workflow_name": "string",
"workflow_description": "string",
"weightages": [
{
"experiment_name": "string",
"weightage": "number"
}
],
"isCustomWorkflow": "boolean",
"project_id": "object",
"cluster_id": "object"
}
}
Successful operation
Response Content-Types: application/json
Response Example (200 OK)
{
"data": {
"createChaosWorkFlow": {
"workflow_id": "string",
"cronSyntax": "string",
"workflow_name": "string",
"workflow_description": "string",
"isCustomWorkflow": "boolean"
}
}
}
Get ChaosWorkflow Runs
Returns a list of chaos workflow and details of particular using a same endpoint. It can fetch both cron and non-cron workflow present in the Litmus Portal. false
This query also supports pagination, filtering and sorting of data according to different parameters.
| Field | Possible values | Mandatory/Optional |
|---|---|---|
| project_id | - | Mandatory |
| workflow_ids | [] | Optional |
| workflow_run_ids | [] | Optional |
| pagination | {page: "integer", limit:"integer"} | Optional |
| sort | - | Optional |
| filter | - | Optional |
Example Body:
{
"project_id": "5fd7d9212c9f32447e28317b",
"workflow_ids": ["3gr3f492146f53d4g3e283re"],
"workflow_run_ids":["32433d454ft452421dff55"],
"pagination":{
"page":"1"
"limit":"10"
},
"sort":{
"field":"name"
"descending":true
},
"filter":{
"workflow_name":"name",
"cluster_name":"Self-Cluster",
"workflow_status": "Running"
"date_range": {
"start_date": 191323221,
"end_date": 189890087,
}
},
(no description)
Example
Request Content-Types:
application/json
Query
query getWorkflowRuns($workflowRunsInput: GetWorkflowRunsInput!){
getWorkflowRuns(workflowRunsInput: $workflowRunsInput){
total_no_of_workflow_runs
}
}
Variables
{
"workflowRunsInput": {
"project_id": "object",
"workflow_run_ids": [
"object"
],
"workflow_ids": [
"object"
],
"pagination": {
"page": "number",
"limit": "number"
},
"sort": {
"field": "string",
"descending": "boolean"
},
"filter": {
"workflow_name": "string",
"cluster_name": "string",
"workflow_status": "string",
"date_range": {
"start_date": "string",
"end_date": "string"
}
}
}
}
Try it now
query getWorkflowRuns($workflowRunsInput: GetWorkflowRunsInput!){
getWorkflowRuns(workflowRunsInput: $workflowRunsInput){
total_no_of_workflow_runs
}
}
{
"workflowRunsInput": {
"project_id": "object",
"workflow_run_ids": [
"object"
],
"workflow_ids": [
"object"
],
"pagination": {
"page": "number",
"limit": "number"
},
"sort": {
"field": "string",
"descending": "boolean"
},
"filter": {
"workflow_name": "string",
"cluster_name": "string",
"workflow_status": "string",
"date_range": {
"start_date": "string",
"end_date": "string"
}
}
}
}
Successful operation
Response Content-Types: application/json
Response Example (200 OK)
{
"data": {
"getWorkflowRuns": {
"total_no_of_workflow_runs": "integer"
}
}
}
List Chaos Workflow
This query is used to get the list of all the scheduled workflows. Individual schedules can also be extracted by providing the workflow_ids
| Field | Possible values | Mandatory/Optional |
|---|---|---|
| project_id | - | Mandatory |
| workflow_ids | [] | Optional |
| pagination | {page: "integer", limit:"integer"} | Optional |
| sort | - | Optional |
| filter | - | Optional |
(no description)
Example
Request Content-Types:
application/json
Query
query ListWorkflow($workflowInput: ListWorkflowsInput!){
ListWorkflow(workflowInput: $workflowInput){
total_no_of_workflows
}
}
Variables
{
"workflowInput": {
"project_id": "object",
"workflow_ids": [
"object"
],
"pagination": {
"page": "number",
"limit": "number"
},
"sort": {
"field": "string",
"descending": "boolean"
},
"filter": {
"workflow_name": "string",
"cluster_name": "string"
}
}
}
Try it now
query ListWorkflow($workflowInput: ListWorkflowsInput!){
ListWorkflow(workflowInput: $workflowInput){
total_no_of_workflows
}
}
{
"workflowInput": {
"project_id": "object",
"workflow_ids": [
"object"
],
"pagination": {
"page": "number",
"limit": "number"
},
"sort": {
"field": "string",
"descending": "boolean"
},
"filter": {
"workflow_name": "string",
"cluster_name": "string"
}
}
}
Successful operation
Response Content-Types: application/json
Response Example (200 OK)
{
"data": {
"ListWorkflow": {
"total_no_of_workflows": "integer"
}
}
}
Re Run Chaos Workflow
This API is used to re-run a particular chaos workflow on the basis of workflow_id
| Field | Possible values | Mandatory/Optional |
|---|---|---|
| workflow_id | string | Mandatory |
(no description)
Example
Request Content-Types:
application/json
Query
mutation reRunChaosWorkFlow($workflowID: String!){
reRunChaosWorkFlow(workflowID: $workflowID)
}
Variables
{
"workflowID": "string"
}
Try it now
mutation reRunChaosWorkFlow($workflowID: String!){
reRunChaosWorkFlow(workflowID: $workflowID)
}
{
"workflowID": "string"
}
Successful operation
Response Content-Types: application/json
Response Example (200 OK)
{
"data": {
"reRunChaosWorkFlow": "string"
}
}
Update ChaosWorkflow
Update the specified chaos workflow by setting the values of the parameters passed. Any parameters not provided will change with its empty value.
| Field | Possible values | Mandatory/Optional |
|---|---|---|
| workflow_id | - | Mandatory |
| cronSyntax | - | Mandatory |
| workflow_name | - | Mandatory |
| workflow_description | - | Mandatory |
| isCustomWorkflow | true/false | Mandatory |
Example Body:
{
"workflow_id": "5fd7d9212c9f32447e28317b",
"cronSyntax": "****",
"workflow_name": "New-network-chaos",
"workflow_description": "Update Chaos workflow",
"isCustomWorkflow": false
(no description)
Example
Request Content-Types:
application/json
Query
mutation updateChaosWorkflow($input: ChaosWorkFlowInput){
updateChaosWorkflow(input: $input){
workflow_id
cronSyntax
workflow_name
workflow_description
isCustomWorkflow
}
}
Variables
{
"input": {
"workflow_id": "string",
"workflow_manifest": "string",
"cronSyntax": "string",
"workflow_name": "string",
"workflow_description": "string",
"weightages": [
{
"experiment_name": "string",
"weightage": "number"
}
],
"isCustomWorkflow": "boolean",
"project_id": "object",
"cluster_id": "object"
}
}
Try it now
mutation updateChaosWorkflow($input: ChaosWorkFlowInput){
updateChaosWorkflow(input: $input){
workflow_id
cronSyntax
workflow_name
workflow_description
isCustomWorkflow
}
}
{
"input": {
"workflow_id": "string",
"workflow_manifest": "string",
"cronSyntax": "string",
"workflow_name": "string",
"workflow_description": "string",
"weightages": [
{
"experiment_name": "string",
"weightage": "number"
}
],
"isCustomWorkflow": "boolean",
"project_id": "object",
"cluster_id": "object"
}
}
Successful operation
Response Content-Types: application/json
Response Example (200 OK)
{
"data": {
"updateChaosWorkflow": {
"workflow_id": "string",
"cronSyntax": "string",
"workflow_name": "string",
"workflow_description": "string",
"isCustomWorkflow": "boolean"
}
}
}
Delete ChaosWorkflow
Delete chaos workflow will permanently delete schedule workflow from the cluster. It cannot be undone. Note: User can access the details of deleted workflow inside MongoDB, which are being marked as removed.
| Field | Possible values | Mandatory/Optional |
|---|---|---|
| workflowid | - | Mandatory |
Example Body:
{
"workflowid": "2df3212c9f32447e28317b",
(no description)
(no description)
Example
Request Content-Types:
application/json
Query
mutation deleteChaosWorkflow($workflowid: String, $workflow_run_id: String){
deleteChaosWorkflow(workflowid: $workflowid, workflow_run_id: $workflow_run_id)
}
Variables
{
"workflowid": "string",
"workflow_run_id": "string"
}
Try it now
mutation deleteChaosWorkflow($workflowid: String, $workflow_run_id: String){
deleteChaosWorkflow(workflowid: $workflowid, workflow_run_id: $workflow_run_id)
}
{
"workflowid": "string",
"workflow_run_id": "string"
}
Successful operation
Response Content-Types: application/json
Response Example (200 OK)
{
"data": {
"deleteChaosWorkflow": "boolean"
}
}
Save Template
Save a scheduled workflow as a template. Provide a workflow name and description, and use the scheduled manifest as a template.
| Field | Possible values | Mandatory/Optional |
|---|---|---|
| isCustomWorkflow | true/false/td> | Optional |
| manifest | "kind: CronWorkflow\napiVersion: argoproj.io/v1alpha1\nmetadata:\n name: bank-of-anthos-1626851266\n namespace: litmus\n .... | Mandatory |
| project_id | - | Mandatory |
| template_name | new-saved-template | Mandatory |
| template_description | Demo Description | Mandatory |
(no description)
Example
Request Content-Types:
application/json
Query
mutation createManifestTemplate($templateInput: TemplateInput){
createManifestTemplate(templateInput: $templateInput){
template_id
manifest
template_name
template_description
project_id
project_name
created_at
is_removed
isCustomWorkflow
}
}
Variables
{
"templateInput": {
"manifest": "string",
"template_name": "string",
"template_description": "string",
"project_id": "string",
"isCustomWorkflow": "boolean"
}
}
Try it now
mutation createManifestTemplate($templateInput: TemplateInput){
createManifestTemplate(templateInput: $templateInput){
template_id
manifest
template_name
template_description
project_id
project_name
created_at
is_removed
isCustomWorkflow
}
}
{
"templateInput": {
"manifest": "string",
"template_name": "string",
"template_description": "string",
"project_id": "string",
"isCustomWorkflow": "boolean"
}
}
Successful operation
Response Content-Types: application/json
Response Example (200 OK)
{
"data": {
"createManifestTemplate": {
"template_id": "string",
"manifest": "string",
"template_name": "string",
"template_description": "string",
"project_id": "string",
"project_name": "string",
"created_at": "string",
"is_removed": "boolean",
"isCustomWorkflow": "boolean"
}
}
}
List Manifest Template
This query lists all the available Templates present in a particular project.
| Field | Possible values | Mandatory/Optional |
|---|---|---|
| project_id | - | Mandatory |
(no description)
Example
Request Content-Types:
application/json
Query
query ListManifestTemplate($project_id: String!){
ListManifestTemplate(project_id: $project_id){
template_id
manifest
template_name
template_description
project_id
project_name
created_at
is_removed
isCustomWorkflow
}
}
Variables
{
"project_id": "string"
}
Try it now
query ListManifestTemplate($project_id: String!){
ListManifestTemplate(project_id: $project_id){
template_id
manifest
template_name
template_description
project_id
project_name
created_at
is_removed
isCustomWorkflow
}
}
{
"project_id": "string"
}
Successful operation
Response Content-Types: application/json
Response Example (200 OK)
{
"data": {
"ListManifestTemplate": [
{
"template_id": "string",
"manifest": "string",
"template_name": "string",
"template_description": "string",
"project_id": "string",
"project_name": "string",
"created_at": "string",
"is_removed": "boolean",
"isCustomWorkflow": "boolean"
}
]
}
}
Get Template Manifest
This query fetches the manifest from a selected template. It takes the template_id as an input.
| Field | Possible values | Mandatory/Optional |
|---|---|---|
| template_id | - | Mandatory |
(no description)
Example
Request Content-Types:
application/json
Query
query GetTemplateManifestByID($template_id: String!){
GetTemplateManifestByID(template_id: $template_id){
template_id
manifest
template_name
template_description
project_id
project_name
created_at
is_removed
isCustomWorkflow
}
}
Variables
{
"template_id": "string"
}
Try it now
query GetTemplateManifestByID($template_id: String!){
GetTemplateManifestByID(template_id: $template_id){
template_id
manifest
template_name
template_description
project_id
project_name
created_at
is_removed
isCustomWorkflow
}
}
{
"template_id": "string"
}
Successful operation
Response Content-Types: application/json
Response Example (200 OK)
{
"data": {
"GetTemplateManifestByID": {
"template_id": "string",
"manifest": "string",
"template_name": "string",
"template_description": "string",
"project_id": "string",
"project_name": "string",
"created_at": "string",
"is_removed": "boolean",
"isCustomWorkflow": "boolean"
}
}
}
ChaosHub
ChaosHub constructs workflow from a set of experiments from Chaos Hub or the Git Repo. There is a public hub which get cloned during the installation by default.
Add ChaosHub
User can add chaoshub easily via the myhub page of the Litmus Portal dashboard. After adding chaoshub, it will clone the git repository which has the chaos charts. You can connect both Public and Private Repositories. For Private Repositories, user can authenticate using Access Token or SSH for cloning the repository.
| Field | Possible values | Mandatory/Optional |
|---|---|---|
| RepoURL | - | Mandatory |
| RepoBranch | - | Mandatory |
| HubName | - | Mandatory |
| IsPrivate | - | Mandatory |
| AuthType | - | Mandatory |
| Token | - | Optional |
| UserName | - | Optional |
| Password | - | Optional |
| SSHPublicKey | - | Optional |
| SSHPrivateKey | - | Optional |
| ProjectID | - | Mandatory |
Example Body:
{
"RepoURL": "https://github.com/litmuschaos/chaos-charts",
"RepoBranch": "master",
"HubName": "my-chaos-hub",
(no description)
(no description)
Example
Request Content-Types:
application/json
Query
mutation addMyHub($myhubInput: CreateMyHub!, $projectID: String!){
addMyHub(myhubInput: $myhubInput, projectID: $projectID){
id
RepoURL
RepoBranch
ProjectID
HubName
IsPrivate
AuthType
Token
UserName
Password
SSHPrivateKey
IsRemoved
CreatedAt
UpdatedAt
LastSyncedAt
}
}
Variables
{
"myhubInput": {
"HubName": "string",
"RepoURL": "string",
"RepoBranch": "string",
"IsPrivate": "boolean",
"AuthType": "string",
"Token": "string",
"UserName": "string",
"Password": "string",
"SSHPrivateKey": "string",
"SSHPublicKey": "string"
},
"projectID": "string"
}
Try it now
mutation addMyHub($myhubInput: CreateMyHub!, $projectID: String!){
addMyHub(myhubInput: $myhubInput, projectID: $projectID){
id
RepoURL
RepoBranch
ProjectID
HubName
IsPrivate
AuthType
Token
UserName
Password
SSHPrivateKey
IsRemoved
CreatedAt
UpdatedAt
LastSyncedAt
}
}
{
"myhubInput": {
"HubName": "string",
"RepoURL": "string",
"RepoBranch": "string",
"IsPrivate": "boolean",
"AuthType": "string",
"Token": "string",
"UserName": "string",
"Password": "string",
"SSHPrivateKey": "string",
"SSHPublicKey": "string"
},
"projectID": "string"
}
Successful operation
Response Content-Types: application/json
Response Example (200 OK)
{
"data": {
"addMyHub": {
"id": "string",
"RepoURL": "string",
"RepoBranch": "string",
"ProjectID": "string",
"HubName": "string",
"IsPrivate": "boolean",
"Token": "string",
"UserName": "string",
"Password": "string",
"SSHPrivateKey": "string",
"IsRemoved": "boolean",
"CreatedAt": "string",
"UpdatedAt": "string",
"LastSyncedAt": "string"
}
}
}
List ChaosHub
Returns a list of ChaosHub connected with Litmus Portal along with the status and the total number of experiments.
| Field | Possible values | Mandatory/Optional |
|---|---|---|
| projectID | - | Mandatory |
Example Body:
{
"projectID": "5fd7d9212c9f32447e28317b",
(no description)
Example
Request Content-Types:
application/json
Query
query getHubStatus($projectID: String!){
getHubStatus(projectID: $projectID){
id
RepoURL
RepoBranch
IsAvailable
TotalExp
HubName
IsPrivate
AuthType
Token
UserName
Password
IsRemoved
SSHPrivateKey
SSHPublicKey
LastSyncedAt
}
}
Variables
{
"projectID": "string"
}
Try it now
query getHubStatus($projectID: String!){
getHubStatus(projectID: $projectID){
id
RepoURL
RepoBranch
IsAvailable
TotalExp
HubName
IsPrivate
AuthType
Token
UserName
Password
IsRemoved
SSHPrivateKey
SSHPublicKey
LastSyncedAt
}
}
{
"projectID": "string"
}
Successful operation
Response Content-Types: application/json
Response Example (200 OK)
{
"data": {
"getHubStatus": [
{
"id": "string",
"RepoURL": "string",
"RepoBranch": "string",
"IsAvailable": "boolean",
"TotalExp": "string",
"HubName": "string",
"IsPrivate": "boolean",
"Token": "string",
"UserName": "string",
"Password": "string",
"IsRemoved": "boolean",
"SSHPrivateKey": "string",
"SSHPublicKey": "string",
"LastSyncedAt": "string"
}
]
}
}
Sync ChaosHub
Sync hub will pull the latest commits from the git repository.
| Field | Possible values | Mandatory/Optional |
|---|---|---|
| id | - | Mandatory |
Example Body:
{
"id": "5fd7d9212c9f32447e28317b",
(no description)
Example
Request Content-Types:
application/json
Query
mutation syncHub($id: ID!){
syncHub(id: $id){
id
RepoURL
RepoBranch
IsAvailable
TotalExp
HubName
IsPrivate
AuthType
Token
UserName
Password
IsRemoved
SSHPrivateKey
SSHPublicKey
LastSyncedAt
}
}
Variables
{
"id": "string"
}
Try it now
mutation syncHub($id: ID!){
syncHub(id: $id){
id
RepoURL
RepoBranch
IsAvailable
TotalExp
HubName
IsPrivate
AuthType
Token
UserName
Password
IsRemoved
SSHPrivateKey
SSHPublicKey
LastSyncedAt
}
}
{
"id": "string"
}
Successful operation
Response Content-Types: application/json
Response Example (200 OK)
{
"data": {
"syncHub": [
{
"id": "string",
"RepoURL": "string",
"RepoBranch": "string",
"IsAvailable": "boolean",
"TotalExp": "string",
"HubName": "string",
"IsPrivate": "boolean",
"Token": "string",
"UserName": "string",
"Password": "string",
"IsRemoved": "boolean",
"SSHPrivateKey": "string",
"SSHPublicKey": "string",
"LastSyncedAt": "string"
}
]
}
}
Update Hub
Update the hub configuration of a ChaosHub
| Field | Possible values | Mandatory/Optional |
|---|---|---|
| id | - | Mandatory |
| RepoURL | - | Mandatory |
| RepoBranch | - | Mandatory |
| HubName | - | Mandatory |
| IsPrivate | - | Mandatory |
| AuthType | - | Mandatory |
| Token | - | Optional |
| UserName | - | Optional |
| Password | - | Optional |
| SSHPublicKey | - | Optional |
| SSHPrivateKey | - | Optional |
| ProjectID | - | Mandatory |
(no description)
(no description)
Example
Request Content-Types:
application/json
Query
mutation updateMyHub($myhubInput: UpdateMyHub!, $projectID: String!){
updateMyHub(myhubInput: $myhubInput, projectID: $projectID){
id
RepoURL
RepoBranch
ProjectID
HubName
IsPrivate
AuthType
Token
UserName
Password
SSHPrivateKey
IsRemoved
CreatedAt
UpdatedAt
LastSyncedAt
}
}
Variables
{
"myhubInput": {
"id": "string",
"HubName": "string",
"RepoURL": "string",
"RepoBranch": "string",
"IsPrivate": "boolean",
"AuthType": "string",
"Token": "string",
"UserName": "string",
"Password": "string",
"SSHPrivateKey": "string",
"SSHPublicKey": "string"
},
"projectID": "string"
}
Try it now
mutation updateMyHub($myhubInput: UpdateMyHub!, $projectID: String!){
updateMyHub(myhubInput: $myhubInput, projectID: $projectID){
id
RepoURL
RepoBranch
ProjectID
HubName
IsPrivate
AuthType
Token
UserName
Password
SSHPrivateKey
IsRemoved
CreatedAt
UpdatedAt
LastSyncedAt
}
}
{
"myhubInput": {
"id": "string",
"HubName": "string",
"RepoURL": "string",
"RepoBranch": "string",
"IsPrivate": "boolean",
"AuthType": "string",
"Token": "string",
"UserName": "string",
"Password": "string",
"SSHPrivateKey": "string",
"SSHPublicKey": "string"
},
"projectID": "string"
}
Successful operation
Response Content-Types: application/json
Response Example (200 OK)
{
"data": {
"updateMyHub": {
"id": "string",
"RepoURL": "string",
"RepoBranch": "string",
"ProjectID": "string",
"HubName": "string",
"IsPrivate": "boolean",
"Token": "string",
"UserName": "string",
"Password": "string",
"SSHPrivateKey": "string",
"IsRemoved": "boolean",
"CreatedAt": "string",
"UpdatedAt": "string",
"LastSyncedAt": "string"
}
}
}
Delete Hub
Delete a ChaosHub from the project
| Field | Possible values | Mandatory/Optional |
|---|---|---|
| hub_id | - | Mandatory |
(no description)
Example
Request Content-Types:
application/json
Query
mutation deleteMyHub($hub_id: String!){
deleteMyHub(hub_id: $hub_id)
}
Variables
{
"hub_id": "string"
}
Try it now
mutation deleteMyHub($hub_id: String!){
deleteMyHub(hub_id: $hub_id)
}
{
"hub_id": "string"
}
Successful operation
Response Content-Types: application/json
Response Example (200 OK)
{
"data": {
"deleteMyHub": "boolean"
}
}
Get Charts
Get all the charts from a hub
| Field | Possible values | Mandatory/Optional |
|---|---|---|
| HubName | - | Mandatory |
| projectID | - | Mandatory |
(no description)
(no description)
Example
Request Content-Types:
application/json
Query
query getCharts($HubName: String!, $projectID: String!){
getCharts(HubName: $HubName, projectID: $projectID){
ApiVersion
Kind
}
}
Variables
{
"HubName": "string",
"projectID": "string"
}
Try it now
query getCharts($HubName: String!, $projectID: String!){
getCharts(HubName: $HubName, projectID: $projectID){
ApiVersion
Kind
}
}
{
"HubName": "string",
"projectID": "string"
}
Successful operation
Response Content-Types: application/json
Response Example (200 OK)
{
"data": {
"getCharts": [
{
"ApiVersion": "string",
"Kind": "string"
}
]
}
}
Get Hub Experiments
Get the experiment details from a selected chart
| Field | Possible values | Mandatory/Optional |
|---|---|---|
| ProjectID | - | Mandatory |
| ChartName | - | Mandatory |
| ExperimentName | - | Mandatory |
| HubName | - | Mandatory |
| FileType | - | Mandatory |
(no description)
Example
Request Content-Types:
application/json
Query
query getHubExperiment($experimentInput: ExperimentInput!){
getHubExperiment(experimentInput: $experimentInput){
ApiVersion
Kind
}
}
Variables
{
"experimentInput": {
"ProjectID": "string",
"ChartName": "string",
"ExperimentName": "string",
"HubName": "string",
"FileType": "string"
}
}
Try it now
query getHubExperiment($experimentInput: ExperimentInput!){
getHubExperiment(experimentInput: $experimentInput){
ApiVersion
Kind
}
}
{
"experimentInput": {
"ProjectID": "string",
"ChartName": "string",
"ExperimentName": "string",
"HubName": "string",
"FileType": "string"
}
}
Successful operation
Response Content-Types: application/json
Response Example (200 OK)
{
"data": {
"getHubExperiment": {
"ApiVersion": "string",
"Kind": "string"
}
}
}
Get Experiment YAML
With this query, user can fetch engine or experiment manifest from a hub.
| Field | Possible values | Mandatory/Optional |
|---|---|---|
| ProjectID | - | Mandatory |
| ChartName | - | Mandatory |
| ExperimentName | - | Mandatory |
| HubName | - | Mandatory |
| FileType | - | Mandatory |
(no description)
Example
Request Content-Types:
application/json
Query
query getYAMLData($experimentInput: ExperimentInput!){
getYAMLData(experimentInput: $experimentInput)
}
Variables
{
"experimentInput": {
"ProjectID": "string",
"ChartName": "string",
"ExperimentName": "string",
"HubName": "string",
"FileType": "string"
}
}
Try it now
query getYAMLData($experimentInput: ExperimentInput!){
getYAMLData(experimentInput: $experimentInput)
}
{
"experimentInput": {
"ProjectID": "string",
"ChartName": "string",
"ExperimentName": "string",
"HubName": "string",
"FileType": "string"
}
}
Successful operation
Response Content-Types: application/json
Response Example (200 OK)
{
"data": {
"getYAMLData": "string"
}
}
Get Pre-defined workflow
List of all the pre-defined workflows present in a ChaosHub
| Field | Possible values | Mandatory/Optional |
|---|---|---|
| projectID | - | Mandatory |
| HubName | - | Mandatory |
(no description)
(no description)
Example
Request Content-Types:
application/json
Query
query GetPredefinedWorkflowList($HubName: String!, $projectID: String!){
GetPredefinedWorkflowList(HubName: $HubName, projectID: $projectID)
}
Variables
{
"HubName": "string",
"projectID": "string"
}
Try it now
query GetPredefinedWorkflowList($HubName: String!, $projectID: String!){
GetPredefinedWorkflowList(HubName: $HubName, projectID: $projectID)
}
{
"HubName": "string",
"projectID": "string"
}
Successful operation
Response Content-Types: application/json
Response Example (200 OK)
{
"data": {
"GetPredefinedWorkflowList": [
"string"
]
}
}
Get Pre-defined Workflow Manifest
With this query, user can fetch engine or experiment manifest from a hub.
| Field | Possible values | Mandatory/Optional |
|---|---|---|
| ProjectID | - | Mandatory |
| ChartName | - | Mandatory |
| ExperimentName | - | Mandatory |
| HubName | - | Mandatory |
| FileType | - | Mandatory |
(no description)
Example
Request Content-Types:
application/json
Query
query GetPredefinedExperimentYAML($experimentInput: ExperimentInput!){
GetPredefinedExperimentYAML(experimentInput: $experimentInput)
}
Variables
{
"experimentInput": {
"ProjectID": "string",
"ChartName": "string",
"ExperimentName": "string",
"HubName": "string",
"FileType": "string"
}
}
Try it now
query GetPredefinedExperimentYAML($experimentInput: ExperimentInput!){
GetPredefinedExperimentYAML(experimentInput: $experimentInput)
}
{
"experimentInput": {
"ProjectID": "string",
"ChartName": "string",
"ExperimentName": "string",
"HubName": "string",
"FileType": "string"
}
}
Successful operation
Response Content-Types: application/json
Response Example (200 OK)
{
"data": {
"GetPredefinedExperimentYAML": "string"
}
}
User Management
User Management APIs manages user accessibility with Litmus Portal
Add User
Admin can add their team members via the user management panel of settings page. After that, user can login with their credentials to litmus portal.
| Field | Possible values | Mandatory/Optional |
|---|---|---|
| username | - | Mandatory |
| - | Mandatory | |
| company_name | - | Mandatory |
| name | - | Mandatory |
| project_name | - | Mandatory |
| userID | - | Mandatory |
Example Body:
{
"username": "litmus-user",
"email": "litmuschaos@gmail.com",
"company_name": "CNCF",
"name": "Litmus User",
"project_name": "my-project",
(no description)
Example
Request Content-Types:
application/json
Query
mutation createUser($user: CreateUserInput!){
createUser(user: $user){
id
username
email
is_email_verified
company_name
name
role
created_at
updated_at
deactivated_at
}
}
Variables
{
"user": {
"username": "string",
"email": "string",
"company_name": "string",
"name": "string",
"userID": "string",
"role": "string"
}
}
Try it now
mutation createUser($user: CreateUserInput!){
createUser(user: $user){
id
username
email
is_email_verified
company_name
name
role
created_at
updated_at
deactivated_at
}
}
{
"user": {
"username": "string",
"email": "string",
"company_name": "string",
"name": "string",
"userID": "string",
"role": "string"
}
}
Successful operation
Response Content-Types: application/json
Response Example (200 OK)
{
"data": {
"createUser": {
"id": "string",
"username": "string",
"email": "string",
"is_email_verified": "boolean",
"company_name": "string",
"name": "string",
"role": "string",
"created_at": "string",
"updated_at": "string",
"deactivated_at": "string"
}
}
}
List User
Returns a list of user within the Litmus Portal
Example
Request Content-Types:
application/json
Query
query users{
users{
id
username
email
is_email_verified
company_name
name
role
created_at
updated_at
deactivated_at
}
}
Try it now
query users{
users{
id
username
email
is_email_verified
company_name
name
role
created_at
updated_at
deactivated_at
}
}
Successful operation
Response Content-Types: application/json
Response Example (200 OK)
{
"data": {
"users": [
{
"id": "string",
"username": "string",
"email": "string",
"is_email_verified": "boolean",
"company_name": "string",
"name": "string",
"role": "string",
"created_at": "string",
"updated_at": "string",
"deactivated_at": "string"
}
]
}
}
Get User
Returns a specified user within the Litmus Portal
| Field | Possible values | Mandatory/Optional |
|---|---|---|
| username | - | Mandatory |
Example Body:
{
"username": "litmus-user",
(no description)
Example
Request Content-Types:
application/json
Query
query getUser($username: String!){
getUser(username: $username){
id
username
email
is_email_verified
company_name
name
role
created_at
updated_at
deactivated_at
}
}
Variables
{
"username": "string"
}
Try it now
query getUser($username: String!){
getUser(username: $username){
id
username
email
is_email_verified
company_name
name
role
created_at
updated_at
deactivated_at
}
}
{
"username": "string"
}
Successful operation
Response Content-Types: application/json
Response Example (200 OK)
{
"data": {
"getUser": {
"id": "string",
"username": "string",
"email": "string",
"is_email_verified": "boolean",
"company_name": "string",
"name": "string",
"role": "string",
"created_at": "string",
"updated_at": "string",
"deactivated_at": "string"
}
}
}
Update User
User can update its details details by providing the following parameters:
| Field | Possible values | Mandatory/Optional |
|---|---|---|
| id | - | Mandatory |
| name | - | Mandatory |
| - | Mandatory | |
| company_name | - | Mandatory |
Example Body:
{
"id": "5fd7d9212c9f32447e28317b",
"name": "litmus-user",
"email": "litmususer@yahoo.com",
"company_name": "CNCF",
(no description)
Example
Request Content-Types:
application/json
Query
muatation updateUser($user: UpdateUserInput!){
updateUser(user: $user)
}
Variables
{
"user": {
"id": "object",
"name": "string",
"email": "string",
"company_name": "string"
}
}
Try it now
muatation updateUser($user: UpdateUserInput!){
updateUser(user: $user)
}
{
"user": {
"id": "object",
"name": "string",
"email": "string",
"company_name": "string"
}
}
Successful operation
Response Content-Types: application/json
Response Example (200 OK)
{
"data": {
"updateUser": "string"
}
}
Send Invitation
Admin can invite registered user to their project and assign them with viewer or editor access. Following are the parameters for this mutation:
| Field | Possible values | Mandatory/Optional |
|---|---|---|
| project_id | - | Mandatory |
| user_name | - | Mandatory |
| role | Viewer/Editor | Mandatory |
Example Body:
{
"project_id": "5fd7d9212c9f32447e28317b",
"username": "litmus-user",
"role": "Editor",
(no description)
Example
Request Content-Types:
application/json
Query
mutation sendInvitation($member: MemberInput!){
sendInvitation(member: $member){
user_id
user_name
name
email
role
invitation
joined_at
deactivated_at
}
}
Variables
{
"member": {
"project_id": "object",
"user_id": "string",
"role": "string"
}
}
Try it now
mutation sendInvitation($member: MemberInput!){
sendInvitation(member: $member){
user_id
user_name
name
email
role
invitation
joined_at
deactivated_at
}
}
{
"member": {
"project_id": "object",
"user_id": "string",
"role": "string"
}
}
Successful operation
Response Content-Types: application/json
Response Example (200 OK)
{
"data": {
"sendInvitation": {
"user_id": "string",
"user_name": "string",
"name": "string",
"email": "string",
"invitation": "string",
"joined_at": "string",
"deactivated_at": "string"
}
}
}
Accept Invitation
User can accept the invitation by invoking this endpoint.
| Field | Possible values | Mandatory/Optional |
|---|---|---|
| project_id | - | Mandatory |
| user_name | - | Mandatory |
| role | Viewer/Editor | Mandatory |
Example Body:
{
"project_id": "5fd7d9212c9f32447e28317b",
"username": "litmus-user",
"role": "Viewer",
(no description)
Example
Request Content-Types:
application/json
Query
mutation acceptInvitation($member: MemberInput!){
acceptInvitation(member: $member)
}
Variables
{
"member": {
"project_id": "object",
"user_id": "string",
"role": "string"
}
}
Try it now
mutation acceptInvitation($member: MemberInput!){
acceptInvitation(member: $member)
}
{
"member": {
"project_id": "object",
"user_id": "string",
"role": "string"
}
}
Successful operation
Response Content-Types: application/json
Response Example (200 OK)
{
"data": {
"acceptInvitation": "string"
}
}
Decline Invitation
User can decline the invitation by invoking this endpoint.
| Field | Possible values | Mandatory/Optional |
|---|---|---|
| project_id | - | Mandatory |
| user_name | - | Mandatory |
| role | Viewer/Editor | Mandatory |
Example Body:
{
"project_id": "5fd7d9212c9f32447e28317b",
"username": "litmus-user",
"role": "Viewer",
(no description)
Example
Request Content-Types:
application/json
Query
mutation declineInvitation($member: MemberInput!){
declineInvitation(member: $member)
}
Variables
{
"member": {
"project_id": "object",
"user_id": "string",
"role": "string"
}
}
Try it now
mutation declineInvitation($member: MemberInput!){
declineInvitation(member: $member)
}
{
"member": {
"project_id": "object",
"user_id": "string",
"role": "string"
}
}
Successful operation
Response Content-Types: application/json
Response Example (200 OK)
{
"data": {
"declineInvitation": "string"
}
}
Remove Invitation
User can remove the invitation by invoking this endpoint.
| Field | Possible values | Mandatory/Optional |
|---|---|---|
| project_id | - | Mandatory |
| user_name | - | Mandatory |
| role | Viewer/Editor | Mandatory |
Example Body:
{
"project_id": "5fd7d9212c9f32447e28317b",
"username": "litmus-user",
"role": "Viewer",
(no description)
Example
Request Content-Types:
application/json
Query
mutation declineInvitation($member: MemberInput!){
declineInvitation(member: $member)
}
Variables
{
"member": {
"project_id": "object",
"user_id": "string",
"role": "string"
}
}
Try it now
mutation declineInvitation($member: MemberInput!){
declineInvitation(member: $member)
}
{
"member": {
"project_id": "object",
"user_id": "string",
"role": "string"
}
}
Successful operation
Response Content-Types: application/json
Response Example (200 OK)
{
"data": {
"declineInvitation": "string"
}
}
Update User State
This api is used to update user state to deactivated or activated.
| Field | Possible values | Mandatory/Optional |
|---|---|---|
| uid | - | Mandatory |
| isDeactivate | - | Mandatory |
(no description)
(no description)
Example
Request Content-Types:
application/json
Query
mutation updateUserState($uid: String!, $isDeactivate: Boolean!){
updateUserState(uid: $uid, isDeactivate: $isDeactivate)
}
Variables
{
"uid": "string",
"isDeactivate": "boolean"
}
Try it now
mutation updateUserState($uid: String!, $isDeactivate: Boolean!){
updateUserState(uid: $uid, isDeactivate: $isDeactivate)
}
{
"uid": "string",
"isDeactivate": "boolean"
}
Successful operation
Response Content-Types: application/json
Response Example (200 OK)
{
"data": {
"updateUserState": "string"
}
}
List Projects
This query returns the list of projects for the logged in user.
Example
Request Content-Types:
application/json
Query
query listProjects{
listProjects{
id
name
state
created_at
updated_at
removed_at
}
}
Try it now
query listProjects{
listProjects{
id
name
state
created_at
updated_at
removed_at
}
}
Successful operation
Response Content-Types: application/json
Response Example (200 OK)
{
"data": {
"listProjects": [
{
"id": "string",
"name": "string",
"state": "string",
"created_at": "string",
"updated_at": "string",
"removed_at": "string"
}
]
}
}
Get Projects
This query returns project details based on project ID.
| Field | Possible values | Mandatory/Optional |
|---|---|---|
| projectID | - | Mandatory |
(no description)
Example
Request Content-Types:
application/json
Query
query getProject($projectID: String!){
getProject(projectID: $projectID){
id
name
state
created_at
updated_at
removed_at
}
}
Variables
{
"projectID": "string"
}
Try it now
query getProject($projectID: String!){
getProject(projectID: $projectID){
id
name
state
created_at
updated_at
removed_at
}
}
{
"projectID": "string"
}
Successful operation
Response Content-Types: application/json
Response Example (200 OK)
{
"data": {
"getProject": {
"id": "string",
"name": "string",
"state": "string",
"created_at": "string",
"updated_at": "string",
"removed_at": "string"
}
}
}
Create Project
This api is used to create a new project.
| Field | Possible values | Mandatory/Optional |
|---|---|---|
| projectName | - | Mandatory |
(no description)
Example
Request Content-Types:
application/json
Query
mutation createProject($projectName: String!){
createProject(projectName: $projectName){
id
name
state
created_at
updated_at
removed_at
}
}
Variables
{
"projectName": "string"
}
Try it now
mutation createProject($projectName: String!){
createProject(projectName: $projectName){
id
name
state
created_at
updated_at
removed_at
}
}
{
"projectName": "string"
}
Successful operation
Response Content-Types: application/json
Response Example (200 OK)
{
"data": {
"createProject": {
"id": "string",
"name": "string",
"state": "string",
"created_at": "string",
"updated_at": "string",
"removed_at": "string"
}
}
}
Update Project Name
This api is used to update the project name.
| Field | Possible values | Mandatory/Optional |
|---|---|---|
| projectID | - | Mandatory |
| projectName | - | Mandatory |
(no description)
(no description)
Example
Request Content-Types:
application/json
Query
mutation updateProjectName($projectID: String!, $projectName: String!){
updateProjectName(projectID: $projectID, projectName: $projectName)
}
Variables
{
"projectID": "string",
"projectName": "string"
}
Try it now
mutation updateProjectName($projectID: String!, $projectName: String!){
updateProjectName(projectID: $projectID, projectName: $projectName)
}
{
"projectID": "string",
"projectName": "string"
}
Successful operation
Response Content-Types: application/json
Response Example (200 OK)
{
"data": {
"updateProjectName": "string"
}
}
Leave Project
This api is used to leave a project.
| Field | Possible values | Mandatory/Optional |
|---|---|---|
| project_id | - | Mandatory |
| user_id | - | Mandatory |
| role | - | Mandatory |
(no description)
Example
Request Content-Types:
application/json
Query
mutation leaveProject($member: MemberInput!){
leaveProject(member: $member)
}
Variables
{
"member": {
"project_id": "object",
"user_id": "string",
"role": "string"
}
}
Try it now
mutation leaveProject($member: MemberInput!){
leaveProject(member: $member)
}
{
"member": {
"project_id": "object",
"user_id": "string",
"role": "string"
}
}
Successful operation
Response Content-Types: application/json
Response Example (200 OK)
{
"data": {
"leaveProject": "string"
}
}
Workflow Management
Workflow Management APIs are used to manage the workflows with GitOPs. These also allow the user to use custom image registries for the chaos workflows.
Enable GitOps
This query is used to enable gitops functionality
| Field | Possible values | Mandatory/Optional |
|---|---|---|
| ProjectID | - | Mandatory |
| Branch | - | Mandatory |
| RepoURL | - | Mandatory |
| AuthType | - | Mandatory |
| Token | - | Mandatory |
| UserName | - | Optional |
| Password | - | Optional |
| SSHPrivateKey | - | Mandatory |
(no description)
Example
Request Content-Types:
application/json
Query
mutation enableGitOps($config: GitConfig!){
enableGitOps(config: $config)
}
Variables
{
"config": {
"ProjectID": "string",
"Branch": "string",
"RepoURL": "string",
"AuthType": "string",
"Token": "string",
"UserName": "string",
"Password": "string",
"SSHPrivateKey": "string"
}
}
Try it now
mutation enableGitOps($config: GitConfig!){
enableGitOps(config: $config)
}
{
"config": {
"ProjectID": "string",
"Branch": "string",
"RepoURL": "string",
"AuthType": "string",
"Token": "string",
"UserName": "string",
"Password": "string",
"SSHPrivateKey": "string"
}
}
Successful operation
Response Content-Types: application/json
Response Example (200 OK)
{
"data": {
"enableGitOps": "boolean"
}
}
Disable GitOps
This query is used to disable gitops functionality
| Field | Possible values | Mandatory/Optional |
|---|---|---|
| project_id | - | Mandatory |
(no description)
Example
Request Content-Types:
application/json
Query
mutation disableGitOps($project_id: String!){
disableGitOps(project_id: $project_id)
}
Variables
{
"project_id": "string"
}
Try it now
mutation disableGitOps($project_id: String!){
disableGitOps(project_id: $project_id)
}
{
"project_id": "string"
}
Successful operation
Response Content-Types: application/json
Response Example (200 OK)
{
"data": {
"disableGitOps": "boolean"
}
}
Get GitOPs Details
This query is used to get the gitops details and configurations
| Field | Possible values | Mandatory/Optional |
|---|---|---|
| project_id | - | Mandatory |
(no description)
Example
Request Content-Types:
application/json
Query
query getGitOpsDetails($project_id: String!){
getGitOpsDetails(project_id: $project_id){
Enabled
ProjectID
Branch
RepoURL
AuthType
Token
UserName
Password
SSHPrivateKey
}
}
Variables
{
"project_id": "string"
}
Try it now
query getGitOpsDetails($project_id: String!){
getGitOpsDetails(project_id: $project_id){
Enabled
ProjectID
Branch
RepoURL
AuthType
Token
UserName
Password
SSHPrivateKey
}
}
{
"project_id": "string"
}
Successful operation
Response Content-Types: application/json
Response Example (200 OK)
{
"data": {
"getGitOpsDetails": {
"Enabled": "boolean",
"ProjectID": "string",
"Branch": "string",
"RepoURL": "string",
"Token": "string",
"UserName": "string",
"Password": "string",
"SSHPrivateKey": "string"
}
}
}
Update GitOps
This query is used to update the gitops details and configurations
| Field | Possible values | Mandatory/Optional |
|---|---|---|
| ProjectID | - | Mandatory |
| Branch | - | Mandatory |
| RepoURL | - | Mandatory |
| AuthType | - | Mandatory |
| Token | - | Mandatory |
| UserName | - | Optional |
| Password | - | Optional |
| SSHPrivateKey | - | Mandatory |
(no description)
Example
Request Content-Types:
application/json
Query
mutation updateGitOps($config: GitConfig!){
updateGitOps(config: $config)
}
Variables
{
"config": {
"ProjectID": "string",
"Branch": "string",
"RepoURL": "string",
"AuthType": "string",
"Token": "string",
"UserName": "string",
"Password": "string",
"SSHPrivateKey": "string"
}
}
Try it now
mutation updateGitOps($config: GitConfig!){
updateGitOps(config: $config)
}
{
"config": {
"ProjectID": "string",
"Branch": "string",
"RepoURL": "string",
"AuthType": "string",
"Token": "string",
"UserName": "string",
"Password": "string",
"SSHPrivateKey": "string"
}
}
Successful operation
Response Content-Types: application/json
Response Example (200 OK)
{
"data": {
"updateGitOps": "boolean"
}
}
List Image Regisry
This query is used to list all the image registries.
| Field | Possible values | Mandatory/Optional |
|---|---|---|
| project_id | - | Mandatory |
(no description)
Example
Request Content-Types:
application/json
Query
query ListImageRegistry($project_id: String!){
ListImageRegistry(project_id: $project_id){
is_default
image_registry_id
project_id
updated_at
created_at
is_removed
}
}
Variables
{
"project_id": "string"
}
Try it now
query ListImageRegistry($project_id: String!){
ListImageRegistry(project_id: $project_id){
is_default
image_registry_id
project_id
updated_at
created_at
is_removed
}
}
{
"project_id": "string"
}
Successful operation
Response Content-Types: application/json
Response Example (200 OK)
{
"data": {
"ListImageRegistry": [
{
"is_default": "boolean",
"image_registry_id": "string",
"project_id": "string",
"updated_at": "string",
"created_at": "string",
"is_removed": "boolean"
}
]
}
}
Create Image Registry
This query is used to create a new image registry.
| Field | Possible values | Mandatory/Optional |
|---|---|---|
| project_id | - | Mandatory |
| is_default | true/false | Mandatory |
| image_registry_name | - | Mandatory |
| image_repo_name | - | Mandatory |
| image_registry_type | - | Mandatory |
| secret_name | - | Optional |
| secret_namespace | - | Optional |
| enable_registry | - | Optional |
(no description)
(no description)
Example
Request Content-Types:
application/json
Query
mutation createImageRegistry($project_id: String!, $imageRegistryInfo: imageRegistryInput!){
createImageRegistry(project_id: $project_id, imageRegistryInfo: $imageRegistryInfo){
is_default
image_registry_id
project_id
updated_at
created_at
is_removed
}
}
Variables
{
"project_id": "string",
"imageRegistryInfo": {
"is_default": "boolean",
"image_registry_name": "string",
"image_repo_name": "string",
"image_registry_type": "string",
"secret_name": "string",
"secret_namespace": "string",
"enable_registry": "boolean"
}
}
Try it now
mutation createImageRegistry($project_id: String!, $imageRegistryInfo: imageRegistryInput!){
createImageRegistry(project_id: $project_id, imageRegistryInfo: $imageRegistryInfo){
is_default
image_registry_id
project_id
updated_at
created_at
is_removed
}
}
{
"project_id": "string",
"imageRegistryInfo": {
"is_default": "boolean",
"image_registry_name": "string",
"image_repo_name": "string",
"image_registry_type": "string",
"secret_name": "string",
"secret_namespace": "string",
"enable_registry": "boolean"
}
}
Successful operation
Response Content-Types: application/json
Response Example (200 OK)
{
"data": {
"createImageRegistry": {
"is_default": "boolean",
"image_registry_id": "string",
"project_id": "string",
"updated_at": "string",
"created_at": "string",
"is_removed": "boolean"
}
}
}
Get Image Registry
This query is used to get the the image registry from the project_id and image_registry_id
| Field | Possible values | Mandatory/Optional |
|---|---|---|
| project_id | - | Mandatory |
| image_registry_id | - | Mandatory |
(no description)
(no description)
Example
Request Content-Types:
application/json
Query
query GetImageRegistry($image_registry_id: String!, $project_id: String!){
GetImageRegistry(image_registry_id: $image_registry_id, project_id: $project_id){
is_default
image_registry_id
project_id
updated_at
created_at
is_removed
}
}
Variables
{
"image_registry_id": "string",
"project_id": "string"
}
Try it now
query GetImageRegistry($image_registry_id: String!, $project_id: String!){
GetImageRegistry(image_registry_id: $image_registry_id, project_id: $project_id){
is_default
image_registry_id
project_id
updated_at
created_at
is_removed
}
}
{
"image_registry_id": "string",
"project_id": "string"
}
Successful operation
Response Content-Types: application/json
Response Example (200 OK)
{
"data": {
"GetImageRegistry": {
"is_default": "boolean",
"image_registry_id": "string",
"project_id": "string",
"updated_at": "string",
"created_at": "string",
"is_removed": "boolean"
}
}
}
Update Image Registry
This query is used to update the image registry.
| Field | Possible values | Mandatory/Optional |
|---|---|---|
| image_registry_id | - | Mandatory |
| project_id | - | Mandatory |
| is_default | true/false | Mandatory |
| image_registry_name | - | Mandatory |
| image_repo_name | - | Mandatory |
| image_registry_type | - | Mandatory |
| secret_name | - | Optional |
| secret_namespace | - | Optional |
| enable_registry | - | Optional |
(no description)
(no description)
(no description)
Example
Request Content-Types:
application/json
Query
mutation updateImageRegistry($image_registry_id: String!, $project_id: String!, $imageRegistryInfo: imageRegistryInput!){
updateImageRegistry(image_registry_id: $image_registry_id, project_id: $project_id, imageRegistryInfo: $imageRegistryInfo){
is_default
image_registry_id
project_id
updated_at
created_at
is_removed
}
}
Variables
{
"image_registry_id": "string",
"project_id": "string",
"imageRegistryInfo": {
"is_default": "boolean",
"image_registry_name": "string",
"image_repo_name": "string",
"image_registry_type": "string",
"secret_name": "string",
"secret_namespace": "string",
"enable_registry": "boolean"
}
}
Try it now
mutation updateImageRegistry($image_registry_id: String!, $project_id: String!, $imageRegistryInfo: imageRegistryInput!){
updateImageRegistry(image_registry_id: $image_registry_id, project_id: $project_id, imageRegistryInfo: $imageRegistryInfo){
is_default
image_registry_id
project_id
updated_at
created_at
is_removed
}
}
{
"image_registry_id": "string",
"project_id": "string",
"imageRegistryInfo": {
"is_default": "boolean",
"image_registry_name": "string",
"image_repo_name": "string",
"image_registry_type": "string",
"secret_name": "string",
"secret_namespace": "string",
"enable_registry": "boolean"
}
}
Successful operation
Response Content-Types: application/json
Response Example (200 OK)
{
"data": {
"updateImageRegistry": {
"is_default": "boolean",
"image_registry_id": "string",
"project_id": "string",
"updated_at": "string",
"created_at": "string",
"is_removed": "boolean"
}
}
}
Delete Image Registry
This query is used to delete the image registry
| Field | Possible values | Mandatory/Optional |
|---|---|---|
| project_id | - | Mandatory |
| image_registry_id | - | Mandatory |
(no description)
(no description)
Example
Request Content-Types:
application/json
Query
mutation deleteImageRegistry($image_registry_id: String!, $project_id: String!){
deleteImageRegistry(image_registry_id: $image_registry_id, project_id: $project_id)
}
Variables
{
"image_registry_id": "string",
"project_id": "string"
}
Try it now
mutation deleteImageRegistry($image_registry_id: String!, $project_id: String!){
deleteImageRegistry(image_registry_id: $image_registry_id, project_id: $project_id)
}
{
"image_registry_id": "string",
"project_id": "string"
}
Successful operation
Response Content-Types: application/json
Response Example (200 OK)
{
"data": {
"deleteImageRegistry": "string"
}
}
Schema Definitions
ChaosWorkFlowInput: object
- workflow_id:
- workflow_manifest:
- cronSyntax:
- workflow_name:
- workflow_description:
- weightages:
- isCustomWorkflow:
- project_id:
- cluster_id:
Example
{
"workflow_id": "string",
"workflow_manifest": "string",
"cronSyntax": "string",
"workflow_name": "string",
"workflow_description": "string",
"weightages": [
{
"experiment_name": "string",
"weightage": "number"
}
],
"isCustomWorkflow": "boolean",
"project_id": "object",
"cluster_id": "object"
}
Chart: object
- ApiVersion:
- Kind:
- Metadata:
- Spec:
- PackageInfo:
Example
{
"ApiVersion": "string",
"Kind": "string",
"Metadata": {
"Name": "string",
"Version": "string",
"Annotations": {
"Categories": "string",
"Vendor": "string",
"CreatedAt": "string",
"Repository": "string",
"Support": "string",
"ChartDescription": "string"
}
},
"Spec": {
"DisplayName": "string",
"CategoryDescription": "string",
"Keywords": [
"string"
],
"Maturity": "string",
"Maintainers": [
{
"Name": "string",
"Email": "string"
}
],
"MinKubeVersion": "string",
"Provider": "string",
"Links": [
{
"Name": "string",
"Url": "string"
}
],
"Experiments": [
"string"
],
"ChaosExpCRDLink": "string",
"Platforms": [
"string"
],
"ChaosType": "string"
},
"PackageInfo": {
"PackageName": "string",
"Experiments": [
{
"Name": "string",
"CSV": "string",
"Desc": "string"
}
]
}
}
Charts: object
- Charts:
Example
{
"Charts": [
{
"ApiVersion": "string",
"Kind": "string",
"Metadata": {
"Name": "string",
"Version": "string",
"Annotations": {
"Categories": "string",
"Vendor": "string",
"CreatedAt": "string",
"Repository": "string",
"Support": "string",
"ChartDescription": "string"
}
},
"Spec": {
"DisplayName": "string",
"CategoryDescription": "string",
"Keywords": [
"string"
],
"Maturity": "string",
"Maintainers": [
{
"Name": "string",
"Email": "string"
}
],
"MinKubeVersion": "string",
"Provider": "string",
"Links": [
{
"Name": "string",
"Url": "string"
}
],
"Experiments": [
"string"
],
"ChaosExpCRDLink": "string",
"Platforms": [
"string"
],
"ChaosType": "string"
},
"PackageInfo": {
"PackageName": "string",
"Experiments": [
{
"Name": "string",
"CSV": "string",
"Desc": "string"
}
]
}
}
]
}
CloningInput: object
- HubName:
- ProjectID:
- RepoBranch:
- RepoURL:
- IsPrivate:
- AuthType:
- Token:
- UserName:
- Password:
- SSHPrivateKey:
Example
{
"HubName": "string",
"ProjectID": "string",
"RepoBranch": "string",
"RepoURL": "string",
"IsPrivate": "boolean",
"AuthType": "string",
"Token": "string",
"UserName": "string",
"Password": "string",
"SSHPrivateKey": "string"
}
Cluster: object
- cluster_id:
- project_id:
- cluster_name:
- description:
- platform_name:
- access_key:
- is_registered:
- is_cluster_confirmed:
- is_active:
- updated_at:
- created_at:
- cluster_type:
- no_of_schedules:
- no_of_workflows:
- token:
- agent_namespace:
- serviceaccount:
- agent_scope:
- agent_ns_exists:
- agent_sa_exists:
- last_workflow_timestamp:
Example
{
"cluster_id": "object",
"project_id": "object",
"cluster_name": "string",
"description": "string",
"platform_name": "string",
"access_key": "string",
"is_registered": "boolean",
"is_cluster_confirmed": "boolean",
"is_active": "boolean",
"updated_at": "string",
"created_at": "string",
"cluster_type": "string",
"no_of_schedules": "number",
"no_of_workflows": "number",
"token": "string",
"agent_namespace": "string",
"serviceaccount": "string",
"agent_scope": "string",
"agent_ns_exists": "boolean",
"agent_sa_exists": "boolean",
"last_workflow_timestamp": "string"
}
ClusterAction: object
- project_id:
- action:
Example
{
"project_id": "object",
"action": {
"request_type": "string",
"k8s_manifest": "string",
"namespace": "string",
"external_data": "string"
}
}
ClusterEvent: object
Example
{
"event_id": "object",
"event_type": "string",
"event_name": "string",
"description": "string",
"cluster": {
"cluster_id": "object",
"project_id": "object",
"cluster_name": "string",
"description": "string",
"platform_name": "string",
"access_key": "string",
"is_registered": "boolean",
"is_cluster_confirmed": "boolean",
"is_active": "boolean",
"updated_at": "string",
"created_at": "string",
"cluster_type": "string",
"no_of_schedules": "number",
"no_of_workflows": "number",
"token": "string",
"agent_namespace": "string",
"serviceaccount": "string",
"agent_scope": "string",
"agent_ns_exists": "boolean",
"agent_sa_exists": "boolean",
"last_workflow_timestamp": "string"
}
}
ClusterInput: object
- cluster_name:
- description:
- platform_name:
- project_id:
- cluster_type:
- agent_namespace:
- serviceaccount:
- agent_scope:
- agent_ns_exists:
- agent_sa_exists:
- node_selector:
Example
{
"cluster_name": "string",
"description": "string",
"platform_name": "string",
"project_id": "object",
"cluster_type": "string",
"agent_namespace": "string",
"serviceaccount": "string",
"agent_scope": "string",
"agent_ns_exists": "boolean",
"agent_sa_exists": "boolean",
"node_selector": "string"
}
CreateMyHub: object
- HubName:
- RepoURL:
- RepoBranch:
- IsPrivate:
- AuthType:
- Token:
- UserName:
- Password:
- SSHPrivateKey:
- SSHPublicKey:
Example
{
"HubName": "string",
"RepoURL": "string",
"RepoBranch": "string",
"IsPrivate": "boolean",
"AuthType": "string",
"Token": "string",
"UserName": "string",
"Password": "string",
"SSHPrivateKey": "string",
"SSHPublicKey": "string"
}
DSInput: object
- ds_id:
- ds_name:
- ds_type:
- ds_url:
- access_type:
- auth_type:
- basic_auth_username:
- basic_auth_password:
- scrape_interval:
- query_timeout:
- http_method:
- project_id:
Example
{
"ds_id": "string",
"ds_name": "string",
"ds_type": "string",
"ds_url": "string",
"access_type": "string",
"auth_type": "string",
"basic_auth_username": "string",
"basic_auth_password": "string",
"scrape_interval": "number",
"query_timeout": "number",
"http_method": "string",
"project_id": "string"
}
DSResponse: object
- ds_id:
- ds_name:
- ds_type:
- ds_url:
- access_type:
- auth_type:
- basic_auth_username:
- basic_auth_password:
- scrape_interval:
- query_timeout:
- http_method:
- project_id:
- health_status:
- created_at:
- updated_at:
Example
{
"ds_id": "string",
"ds_name": "string",
"ds_type": "string",
"ds_url": "string",
"access_type": "string",
"auth_type": "string",
"basic_auth_username": "string",
"basic_auth_password": "string",
"scrape_interval": "number",
"query_timeout": "number",
"http_method": "string",
"project_id": "object",
"health_status": "string",
"created_at": "string",
"updated_at": "string"
}
Float: number
The Float scalar type represents signed double-precision fractional values as specified by
IEEE 754.
Example
number
GetWorkflowRunsInput: object
- project_id:
- workflow_run_ids:
- workflow_ids:
- pagination:
- sort:
- filter:
Example
{
"project_id": "object",
"workflow_run_ids": [
"object"
],
"workflow_ids": [
"object"
],
"pagination": {
"page": "number",
"limit": "number"
},
"sort": {
"field": "string",
"descending": "boolean"
},
"filter": {
"workflow_name": "string",
"cluster_name": "string",
"workflow_status": "string",
"date_range": {
"start_date": "string",
"end_date": "string"
}
}
}
GetWorkflowsOutput: object
- total_no_of_workflow_runs:
- workflow_runs:
Example
{
"total_no_of_workflow_runs": "number",
"workflow_runs": [
{
"workflow_run_id": "object",
"workflow_id": "object",
"cluster_name": "string",
"weightages": [
{
"experiment_name": "string",
"weightage": "number"
}
],
"last_updated": "string",
"project_id": "object",
"cluster_id": "object",
"workflow_name": "string",
"cluster_type": "string",
"phase": "string",
"resiliency_score": "number",
"experiments_passed": "number",
"experiments_failed": "number",
"experiments_awaited": "number",
"experiments_stopped": "number",
"experiments_na": "number",
"total_experiments": "number",
"execution_data": "string",
"isRemoved": "boolean"
}
]
}
GitConfig: object
- ProjectID:
- Branch:
- RepoURL:
- AuthType:
- Token:
- UserName:
- Password:
- SSHPrivateKey:
Example
{
"ProjectID": "string",
"Branch": "string",
"RepoURL": "string",
"AuthType": "string",
"Token": "string",
"UserName": "string",
"Password": "string",
"SSHPrivateKey": "string"
}
GitConfigResponse: object
- Enabled:
- ProjectID:
- Branch:
- RepoURL:
- AuthType:
- Token:
- UserName:
- Password:
- SSHPrivateKey:
Example
{
"Enabled": "boolean",
"ProjectID": "string",
"Branch": "string",
"RepoURL": "string",
"AuthType": "string",
"Token": "string",
"UserName": "string",
"Password": "string",
"SSHPrivateKey": "string"
}
HeatmapData: object
- bins:
Example
{
"bins": [
{
"value": "number",
"workflowRunDetail": {
"no_of_runs": "number",
"date_stamp": "number"
}
}
]
}
ID: object
The ID scalar type represents a unique identifier, often used to refetch an object or as key for a cache. The ID type appears in a JSON response as a String; however, it is not intended to be human-readable. When expected as an input type, any string (such as "4") or integer (such as 4) input value will be accepted as an ID.
Example
object
ImageRegistryResponse: object
- is_default:
- image_registry_info:
- image_registry_id:
- project_id:
- updated_at:
- created_at:
- is_removed:
Example
{
"is_default": "boolean",
"image_registry_info": {
"is_default": "boolean",
"image_registry_name": "string",
"image_repo_name": "string",
"image_registry_type": "string",
"secret_name": "string",
"secret_namespace": "string",
"enable_registry": "boolean"
},
"image_registry_id": "string",
"project_id": "string",
"updated_at": "string",
"created_at": "string",
"is_removed": "boolean"
}
Int: number
The Int scalar type represents non-fractional signed whole numeric values. Int can represent values between -(2^31) and 2^31 - 1.
Example
number
KubeObjectData: object
- request_id:
- cluster_id:
- kube_obj:
Example
{
"request_id": "object",
"cluster_id": {
"cluster_id": "string",
"access_key": "string"
},
"kube_obj": "string"
}
KubeObjectRequest: object
- cluster_id:
- object_type:
- kube_obj_request:
Example
{
"cluster_id": "object",
"object_type": "string",
"kube_obj_request": {
"group": "string",
"version": "string",
"resource": "string"
}
}
ListWorkflowsInput: object
- project_id:
- workflow_ids:
- pagination:
- sort:
- filter:
Example
{
"project_id": "object",
"workflow_ids": [
"object"
],
"pagination": {
"page": "number",
"limit": "number"
},
"sort": {
"field": "string",
"descending": "boolean"
},
"filter": {
"workflow_name": "string",
"cluster_name": "string"
}
}
ListWorkflowsOutput: object
Example
{
"total_no_of_workflows": "number",
"workflows": [
{
"workflow_id": "string",
"workflow_manifest": "string",
"cronSyntax": "string",
"cluster_name": "string",
"workflow_name": "string",
"workflow_description": "string",
"weightages": [
{
"experiment_name": "string",
"weightage": "number"
}
],
"isCustomWorkflow": "boolean",
"updated_at": "string",
"created_at": "string",
"project_id": "object",
"cluster_id": "object",
"cluster_type": "string",
"isRemoved": "boolean"
}
]
}
ManifestTemplate: object
- template_id:
- manifest:
- template_name:
- template_description:
- project_id:
- project_name:
- created_at:
- is_removed:
- isCustomWorkflow:
Example
{
"template_id": "object",
"manifest": "string",
"template_name": "string",
"template_description": "string",
"project_id": "string",
"project_name": "string",
"created_at": "string",
"is_removed": "boolean",
"isCustomWorkflow": "boolean"
}
Member: object
- user_id:
- user_name:
- name:
- email:
- role:
- invitation:
- joined_at:
- deactivated_at:
Example
{
"user_id": "object",
"user_name": "string",
"name": "string",
"email": "string",
"role": "string",
"invitation": "string",
"joined_at": "string",
"deactivated_at": "string"
}
MemberInput: object
- project_id:
- user_id:
- role:
Example
{
"project_id": "object",
"user_id": "string",
"role": "string"
}
Metadata: object
- Name:
- Version:
- Annotations:
Example
{
"Name": "string",
"Version": "string",
"Annotations": {
"Categories": "string",
"Vendor": "string",
"CreatedAt": "string",
"Repository": "string",
"Support": "string",
"ChartDescription": "string"
}
}
MyHub: object
- id:
- RepoURL:
- RepoBranch:
- ProjectID:
- HubName:
- IsPrivate:
- AuthType:
- Token:
- UserName:
- Password:
- SSHPrivateKey:
- IsRemoved:
- CreatedAt:
- UpdatedAt:
- LastSyncedAt:
Example
{
"id": "object",
"RepoURL": "string",
"RepoBranch": "string",
"ProjectID": "string",
"HubName": "string",
"IsPrivate": "boolean",
"AuthType": "string",
"Token": "string",
"UserName": "string",
"Password": "string",
"SSHPrivateKey": "string",
"IsRemoved": "boolean",
"CreatedAt": "string",
"UpdatedAt": "string",
"LastSyncedAt": "string"
}
MyHubStatus: object
- id:
- RepoURL:
- RepoBranch:
- IsAvailable:
- TotalExp:
- HubName:
- IsPrivate:
- AuthType:
- Token:
- UserName:
- Password:
- IsRemoved:
- SSHPrivateKey:
- SSHPublicKey:
- LastSyncedAt:
Example
{
"id": "object",
"RepoURL": "string",
"RepoBranch": "string",
"IsAvailable": "boolean",
"TotalExp": "string",
"HubName": "string",
"IsPrivate": "boolean",
"AuthType": "string",
"Token": "string",
"UserName": "string",
"Password": "string",
"IsRemoved": "boolean",
"SSHPrivateKey": "string",
"SSHPublicKey": "string",
"LastSyncedAt": "string"
}
PackageInformation: object
- PackageName:
- Experiments:
Example
{
"PackageName": "string",
"Experiments": [
{
"Name": "string",
"CSV": "string",
"Desc": "string"
}
]
}
PodLogRequest: object
- cluster_id:
- workflow_run_id:
- pod_name:
- pod_namespace:
- pod_type:
- exp_pod:
- runner_pod:
- chaos_namespace:
Example
{
"cluster_id": "object",
"workflow_run_id": "object",
"pod_name": "string",
"pod_namespace": "string",
"pod_type": "string",
"exp_pod": "string",
"runner_pod": "string",
"chaos_namespace": "string"
}
Project: object
- id:
- name:
- members:
- state:
- created_at:
- updated_at:
- removed_at:
Example
{
"id": "object",
"name": "string",
"members": [
{
"user_id": "object",
"user_name": "string",
"name": "string",
"email": "string",
"role": "string",
"invitation": "string",
"joined_at": "string",
"deactivated_at": "string"
}
],
"state": "string",
"created_at": "string",
"updated_at": "string",
"removed_at": "string"
}
ProjectData: object
- Name:
- Workflows:
- Agents:
- ProjectId:
- Members:
Example
{
"Name": "string",
"Workflows": {
"Schedules": "number",
"Runs": "number",
"ExpRuns": "number"
},
"Agents": {
"Ns": "number",
"Cluster": "number",
"Total": "number",
"Active": "number"
},
"ProjectId": "string",
"Members": {
"Owner": {
"UserId": "object",
"Username": "string",
"Name": "string"
},
"Total": "number"
}
}
Spec: object
- DisplayName:
- CategoryDescription:
- Keywords:
- Maturity:
- Maintainers:
- MinKubeVersion:
- Provider:
- Links:
- Experiments:
- ChaosExpCRDLink:
- Platforms:
- ChaosType:
Example
{
"DisplayName": "string",
"CategoryDescription": "string",
"Keywords": [
"string"
],
"Maturity": "string",
"Maintainers": [
{
"Name": "string",
"Email": "string"
}
],
"MinKubeVersion": "string",
"Provider": "string",
"Links": [
{
"Name": "string",
"Url": "string"
}
],
"Experiments": [
"string"
],
"ChaosExpCRDLink": "string",
"Platforms": [
"string"
],
"ChaosType": "string"
}
String: string
The Stringscalar type represents textual data, represented as UTF-8 character sequences. The String type is most often used by GraphQL to represent free-form human-readable text.
Subscription: object
- clusterEventListener:
- workflowEventListener:
- getPodLog:
- clusterConnect:
- getKubeObject:
- viewDashboard:
Example
{
"clusterEventListener": {
"event_id": "object",
"event_type": "string",
"event_name": "string",
"description": "string",
"cluster": {
"cluster_id": "object",
"project_id": "object",
"cluster_name": "string",
"description": "string",
"platform_name": "string",
"access_key": "string",
"is_registered": "boolean",
"is_cluster_confirmed": "boolean",
"is_active": "boolean",
"updated_at": "string",
"created_at": "string",
"cluster_type": "string",
"no_of_schedules": "number",
"no_of_workflows": "number",
"token": "string",
"agent_namespace": "string",
"serviceaccount": "string",
"agent_scope": "string",
"agent_ns_exists": "boolean",
"agent_sa_exists": "boolean",
"last_workflow_timestamp": "string"
}
},
"workflowEventListener": {
"workflow_run_id": "object",
"workflow_id": "object",
"cluster_name": "string",
"weightages": [
{
"experiment_name": "string",
"weightage": "number"
}
],
"last_updated": "string",
"project_id": "object",
"cluster_id": "object",
"workflow_name": "string",
"cluster_type": "string",
"phase": "string",
"resiliency_score": "number",
"experiments_passed": "number",
"experiments_failed": "number",
"experiments_awaited": "number",
"experiments_stopped": "number",
"experiments_na": "number",
"total_experiments": "number",
"execution_data": "string",
"isRemoved": "boolean"
}
}
TotalCount: object
- Projects:
- Users:
- Agents:
- Workflows:
Example
{
"Projects": "number",
"Users": "number",
"Agents": {
"Ns": "number",
"Cluster": "number",
"Total": "number",
"Active": "number"
},
"Workflows": {
"Schedules": "number",
"Runs": "number",
"ExpRuns": "number"
}
}
UpdateMyHub: object
- id:
- HubName:
- RepoURL:
- RepoBranch:
- IsPrivate:
- AuthType:
- Token:
- UserName:
- Password:
- SSHPrivateKey:
- SSHPublicKey:
Example
{
"id": "string",
"HubName": "string",
"RepoURL": "string",
"RepoBranch": "string",
"IsPrivate": "boolean",
"AuthType": "string",
"Token": "string",
"UserName": "string",
"Password": "string",
"SSHPrivateKey": "string",
"SSHPublicKey": "string"
}
UsageData: object
- Projects:
- TotalEntries:
- TotalCount:
Example
{
"Projects": [
{
"Name": "string",
"Workflows": {
"Schedules": "number",
"Runs": "number",
"ExpRuns": "number"
},
"Agents": {
"Ns": "number",
"Cluster": "number",
"Total": "number",
"Active": "number"
},
"ProjectId": "string",
"Members": {
"Owner": {
"UserId": "object",
"Username": "string",
"Name": "string"
},
"Total": "number"
}
}
],
"TotalEntries": "number",
"TotalCount": {
"Projects": "number",
"Users": "number",
"Agents": {
"Ns": "number",
"Cluster": "number",
"Total": "number",
"Active": "number"
},
"Workflows": {
"Schedules": "number",
"Runs": "number",
"ExpRuns": "number"
}
}
}
UsageQuery: object
- Pagination:
- DateRange:
- Sort:
- SearchProject:
Example
{
"Pagination": {
"page": "number",
"limit": "number"
},
"DateRange": {
"start_date": "string",
"end_date": "string"
},
"Sort": {
"Field": "string",
"Descending": "boolean"
},
"SearchProject": "string"
}
UsageSort: string
-
objectProject
-
objectOwner
-
objectAgents
-
objectSchedules
-
objectWorkflowRuns
-
objectExperimentRuns
-
objectTeamMembers
User: object
- id:
- username:
- email:
- is_email_verified:
- company_name:
- name:
- projects:
- role:
- created_at:
- updated_at:
- deactivated_at:
Example
{
"id": "object",
"username": "string",
"email": "string",
"is_email_verified": "boolean",
"company_name": "string",
"name": "string",
"projects": [
{
"id": "object",
"name": "string",
"members": [
{
"user_id": "object",
"user_name": "string",
"name": "string",
"email": "string",
"role": "string",
"invitation": "string",
"joined_at": "string",
"deactivated_at": "string"
}
],
"state": "string",
"created_at": "string",
"updated_at": "string",
"removed_at": "string"
}
],
"role": "string",
"created_at": "string",
"updated_at": "string",
"deactivated_at": "string"
}
Workflow: object
- workflow_id:
- workflow_manifest:
- cronSyntax:
- cluster_name:
- workflow_name:
- workflow_description:
- weightages:
- isCustomWorkflow:
- updated_at:
- created_at:
- project_id:
- cluster_id:
- cluster_type:
- isRemoved:
Example
{
"workflow_id": "string",
"workflow_manifest": "string",
"cronSyntax": "string",
"cluster_name": "string",
"workflow_name": "string",
"workflow_description": "string",
"weightages": [
{
"experiment_name": "string",
"weightage": "number"
}
],
"isCustomWorkflow": "boolean",
"updated_at": "string",
"created_at": "string",
"project_id": "object",
"cluster_id": "object",
"cluster_type": "string",
"isRemoved": "boolean"
}
WorkflowRun: object
- workflow_run_id:
- workflow_id:
- cluster_name:
- weightages:
- last_updated:
- project_id:
- cluster_id:
- workflow_name:
- cluster_type:
- phase:
- resiliency_score:
- experiments_passed:
- experiments_failed:
- experiments_awaited:
- experiments_stopped:
- experiments_na:
- total_experiments:
- execution_data:
- isRemoved:
Example
{
"workflow_run_id": "object",
"workflow_id": "object",
"cluster_name": "string",
"weightages": [
{
"experiment_name": "string",
"weightage": "number"
}
],
"last_updated": "string",
"project_id": "object",
"cluster_id": "object",
"workflow_name": "string",
"cluster_type": "string",
"phase": "string",
"resiliency_score": "number",
"experiments_passed": "number",
"experiments_failed": "number",
"experiments_awaited": "number",
"experiments_stopped": "number",
"experiments_na": "number",
"total_experiments": "number",
"execution_data": "string",
"isRemoved": "boolean"
}
WorkflowRunFilterInput: object
- workflow_name:
- cluster_name:
- workflow_status:
- date_range:
Example
{
"workflow_name": "string",
"cluster_name": "string",
"workflow_status": "string",
"date_range": {
"start_date": "string",
"end_date": "string"
}
}
WorkflowRunInput: object
- workflow_id:
- workflow_run_id:
- workflow_name:
- execution_data:
- cluster_id:
- completed:
- isRemoved:
Example
{
"workflow_id": "object",
"workflow_run_id": "object",
"workflow_name": "string",
"execution_data": "string",
"cluster_id": {
"cluster_id": "string",
"access_key": "string"
},
"completed": "boolean",
"isRemoved": "boolean"
}
WorkflowRunSortInput: object
- field:
- descending:
Example
{
"field": "string",
"descending": "boolean"
}
WorkflowRunStatsResponse: object
- total_workflow_runs:
- succeeded_workflow_runs:
- failed_workflow_runs:
- running_workflow_runs:
- average_resiliency_score:
- total_experiments:
- experiments_passed:
- experiments_failed:
- experiments_awaited:
- experiments_stopped:
- experiments_na:
- passed_percentage:
- failed_percentage:
- workflow_run_succeeded_percentage:
- workflow_run_failed_percentage:
Example
{
"total_workflow_runs": "number",
"succeeded_workflow_runs": "number",
"failed_workflow_runs": "number",
"running_workflow_runs": "number",
"average_resiliency_score": "number",
"total_experiments": "number",
"experiments_passed": "number",
"experiments_failed": "number",
"experiments_awaited": "number",
"experiments_stopped": "number",
"experiments_na": "number",
"passed_percentage": "number",
"failed_percentage": "number",
"workflow_run_succeeded_percentage": "number",
"workflow_run_failed_percentage": "number"
}
WorkflowRunsData: object
- value:
- workflowRunDetail:
Example
{
"value": "number",
"workflowRunDetail": {
"no_of_runs": "number",
"date_stamp": "number"
}
}
applicationMetadataResponse: object
- namespace:
- applications:
Example
{
"namespace": "string",
"applications": [
{
"kind": "string",
"names": [
"string"
]
}
]
}
createDBInput: object
- ds_id:
- db_name:
- db_type_name:
- db_type_id:
- db_information:
- chaos_event_query_template:
- chaos_verdict_query_template:
- application_metadata_map:
- panel_groups:
- end_time:
- start_time:
- project_id:
- cluster_id:
- refresh_rate:
Example
{
"ds_id": "string",
"db_name": "string",
"db_type_name": "string",
"db_type_id": "string",
"db_information": "string",
"chaos_event_query_template": "string",
"chaos_verdict_query_template": "string",
"application_metadata_map": [
{
"namespace": "string",
"applications": [
{
"kind": "string",
"names": [
"string"
]
}
]
}
],
"panel_groups": [
{
"panels": [
{
"panel_id": "string",
"db_id": "string",
"y_axis_left": "string",
"y_axis_right": "string",
"x_axis_down": "string",
"unit": "string",
"panel_group_id": "string",
"created_at": "string",
"prom_queries": [
{
"queryid": "string",
"prom_query_name": "string",
"legend": "string",
"resolution": "string",
"minstep": "string",
"line": "boolean",
"close_area": "boolean"
}
],
"panel_options": {
"points": "boolean",
"grids": "boolean",
"left_axis": "boolean"
},
"panel_name": "string"
}
],
"panel_group_name": "string"
}
],
"end_time": "string",
"start_time": "string",
"project_id": "object",
"cluster_id": "object",
"refresh_rate": "string"
}
dashboardPromResponse: object
- dashboardMetricsResponse:
- annotationsResponse:
Example
{
"dashboardMetricsResponse": [
{
"panelGroupID": "string",
"panelGroupMetricsResponse": [
{
"panelID": "string",
"PanelMetricsResponse": [
{
"queryid": "string",
"legends": [
"string"
],
"tsvs": [
[
{
"date": "number",
"value": "number"
}
]
]
}
]
}
]
}
],
"annotationsResponse": [
{
"queryid": "string",
"legends": [
"string"
],
"tsvs": [
[
{
"date": "number",
"value": "number"
}
]
],
"subDataArray": [
[
{
"date": "number",
"value": "string",
"subDataName": "string"
}
]
]
}
]
}
imageRegistry: object
- is_default:
- image_registry_name:
- image_repo_name:
- image_registry_type:
- secret_name:
- secret_namespace:
- enable_registry:
Example
{
"is_default": "boolean",
"image_registry_name": "string",
"image_repo_name": "string",
"image_registry_type": "string",
"secret_name": "string",
"secret_namespace": "string",
"enable_registry": "boolean"
}
imageRegistryInput: object
- is_default:
- image_registry_name:
- image_repo_name:
- image_registry_type:
- secret_name:
- secret_namespace:
- enable_registry:
Example
{
"is_default": "boolean",
"image_registry_name": "string",
"image_repo_name": "string",
"image_registry_type": "string",
"secret_name": "string",
"secret_namespace": "string",
"enable_registry": "boolean"
}
listDashboardResponse: object
- ds_id:
- db_id:
- db_name:
- db_type_id:
- db_type_name:
- db_information:
- chaos_event_query_template:
- chaos_verdict_query_template:
- application_metadata_map:
- cluster_name:
- ds_name:
- ds_type:
- ds_url:
- ds_health_status:
- panel_groups:
- end_time:
- start_time:
- refresh_rate:
- project_id:
- cluster_id:
- created_at:
- updated_at:
- viewed_at:
Example
{
"ds_id": "string",
"db_id": "string",
"db_name": "string",
"db_type_id": "string",
"db_type_name": "string",
"db_information": "string",
"chaos_event_query_template": "string",
"chaos_verdict_query_template": "string",
"application_metadata_map": [
{
"namespace": "string",
"applications": [
{
"kind": "string",
"names": [
"string"
]
}
]
}
],
"cluster_name": "string",
"ds_name": "string",
"ds_type": "string",
"ds_url": "string",
"ds_health_status": "string",
"panel_groups": [
{
"panels": [
{
"panel_id": "string",
"y_axis_left": "string",
"y_axis_right": "string",
"x_axis_down": "string",
"unit": "string",
"prom_queries": [
{
"queryid": "object",
"prom_query_name": "string",
"legend": "string",
"resolution": "string",
"minstep": "string",
"line": "boolean",
"close_area": "boolean"
}
],
"panel_options": {
"points": "boolean",
"grids": "boolean",
"left_axis": "boolean"
},
"panel_name": "string",
"created_at": "string"
}
],
"panel_group_name": "string",
"panel_group_id": "string"
}
],
"end_time": "string",
"start_time": "string",
"refresh_rate": "string",
"project_id": "object",
"cluster_id": "object"
}
metricDataForPanel: object
- panelID:
- PanelMetricsResponse:
Example
{
"panelID": "string",
"PanelMetricsResponse": [
{
"queryid": "string",
"legends": [
"string"
],
"tsvs": [
[
{
"date": "number",
"value": "number"
}
]
]
}
]
}
metricDataForPanelGroup: object
- panelGroupID:
- panelGroupMetricsResponse:
Example
{
"panelGroupID": "string",
"panelGroupMetricsResponse": [
{
"panelID": "string",
"PanelMetricsResponse": [
{
"queryid": "string",
"legends": [
"string"
],
"tsvs": [
[
{
"date": "number",
"value": "number"
}
]
]
}
]
}
]
}
panel: object
- panel_id:
- db_id:
- y_axis_left:
- y_axis_right:
- x_axis_down:
- unit:
- panel_group_id:
- created_at:
- prom_queries:
- panel_options:
- panel_name:
Example
{
"panel_id": "string",
"db_id": "string",
"y_axis_left": "string",
"y_axis_right": "string",
"x_axis_down": "string",
"unit": "string",
"panel_group_id": "string",
"created_at": "string",
"prom_queries": [
{
"queryid": "string",
"prom_query_name": "string",
"legend": "string",
"resolution": "string",
"minstep": "string",
"line": "boolean",
"close_area": "boolean"
}
],
"panel_options": {
"points": "boolean",
"grids": "boolean",
"left_axis": "boolean"
},
"panel_name": "string"
}
panelGroup: object
Example
{
"panels": [
{
"panel_id": "string",
"db_id": "string",
"y_axis_left": "string",
"y_axis_right": "string",
"x_axis_down": "string",
"unit": "string",
"panel_group_id": "string",
"created_at": "string",
"prom_queries": [
{
"queryid": "string",
"prom_query_name": "string",
"legend": "string",
"resolution": "string",
"minstep": "string",
"line": "boolean",
"close_area": "boolean"
}
],
"panel_options": {
"points": "boolean",
"grids": "boolean",
"left_axis": "boolean"
},
"panel_name": "string"
}
],
"panel_group_name": "string"
}
panelGroupResponse: object
- panels:
- panel_group_name:
- panel_group_id:
Example
{
"panels": [
{
"panel_id": "string",
"y_axis_left": "string",
"y_axis_right": "string",
"x_axis_down": "string",
"unit": "string",
"prom_queries": [
{
"queryid": "object",
"prom_query_name": "string",
"legend": "string",
"resolution": "string",
"minstep": "string",
"line": "boolean",
"close_area": "boolean"
}
],
"panel_options": {
"points": "boolean",
"grids": "boolean",
"left_axis": "boolean"
},
"panel_name": "string",
"created_at": "string"
}
],
"panel_group_name": "string",
"panel_group_id": "string"
}
panelResponse: object
- panel_id:
- y_axis_left:
- y_axis_right:
- x_axis_down:
- unit:
- prom_queries:
- panel_options:
- panel_name:
- created_at:
Example
{
"panel_id": "string",
"y_axis_left": "string",
"y_axis_right": "string",
"x_axis_down": "string",
"unit": "string",
"prom_queries": [
{
"queryid": "object",
"prom_query_name": "string",
"legend": "string",
"resolution": "string",
"minstep": "string",
"line": "boolean",
"close_area": "boolean"
}
],
"panel_options": {
"points": "boolean",
"grids": "boolean",
"left_axis": "boolean"
},
"panel_name": "string",
"created_at": "string"
}
promInput: object
- queries:
- ds_details:
Example
{
"queries": [
{
"queryid": "string",
"query": "string",
"legend": "string",
"resolution": "string",
"minstep": "number"
}
],
"ds_details": {
"url": "string",
"start": "string",
"end": "string"
}
}
promResponse: object
- metricsResponse:
- annotationsResponse:
Example
{
"metricsResponse": [
{
"queryid": "string",
"legends": [
"string"
],
"tsvs": [
[
{
"date": "number",
"value": "number"
}
]
]
}
],
"annotationsResponse": [
{
"queryid": "string",
"legends": [
"string"
],
"tsvs": [
[
{
"date": "number",
"value": "number"
}
]
],
"subDataArray": [
[
{
"date": "number",
"value": "string",
"subDataName": "string"
}
]
]
}
]
}
promSeriesResponse: object
- series:
- labelValues:
Example
{
"series": "string",
"labelValues": [
{
"label": "string",
"values": [
{
"name": "string"
}
]
}
]
}
queryMapForPanelGroup: object
- panelGroupID:
- panelQueryMap:
Example
{
"panelGroupID": "string",
"panelQueryMap": [
{
"panelID": "string",
"queryIDs": [
"string"
]
}
]
}
updateDBInput: object
- db_id:
- ds_id:
- db_name:
- db_type_name:
- db_type_id:
- db_information:
- chaos_event_query_template:
- chaos_verdict_query_template:
- application_metadata_map:
- panel_groups:
- end_time:
- start_time:
- cluster_id:
- refresh_rate:
Example
{
"db_id": "string",
"ds_id": "string",
"db_name": "string",
"db_type_name": "string",
"db_type_id": "string",
"db_information": "string",
"chaos_event_query_template": "string",
"chaos_verdict_query_template": "string",
"application_metadata_map": [
{
"namespace": "string",
"applications": [
{
"kind": "string",
"names": [
"string"
]
}
]
}
],
"panel_groups": [
{
"panel_group_name": "string",
"panel_group_id": "string",
"panels": [
{
"panel_id": "string",
"db_id": "string",
"y_axis_left": "string",
"y_axis_right": "string",
"x_axis_down": "string",
"unit": "string",
"panel_group_id": "string",
"created_at": "string",
"prom_queries": [
{
"queryid": "string",
"prom_query_name": "string",
"legend": "string",
"resolution": "string",
"minstep": "string",
"line": "boolean",
"close_area": "boolean"
}
],
"panel_options": {
"points": "boolean",
"grids": "boolean",
"left_axis": "boolean"
},
"panel_name": "string"
}
]
}
],
"end_time": "string",
"start_time": "string",
"cluster_id": "object",
"refresh_rate": "string"
}
updatePanelGroupInput: object
Example
{
"panel_group_name": "string",
"panel_group_id": "string",
"panels": [
{
"panel_id": "string",
"db_id": "string",
"y_axis_left": "string",
"y_axis_right": "string",
"x_axis_down": "string",
"unit": "string",
"panel_group_id": "string",
"created_at": "string",
"prom_queries": [
{
"queryid": "string",
"prom_query_name": "string",
"legend": "string",
"resolution": "string",
"minstep": "string",
"line": "boolean",
"close_area": "boolean"
}
],
"panel_options": {
"points": "boolean",
"grids": "boolean",
"left_axis": "boolean"
},
"panel_name": "string"
}
]
}