Litmus 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

Authentication

Litmus Portal API uses API keys to authenticate requests. API keys carry many privileges, so be sure to keep them secure! Do not share the API key in publicly accessible areas such as GitHub, client-side code and so forth.
Authentication to the API is performed via HTTP Basic Auth. Provide your username and password to generate a JWT token and set that token in the header of the API.

All API requests must be made over HTTP or HTTPS. API requests without authentication will also fail.

API KEYS

name
Authorization
in
header
Request to generate API KEYS
curl -H 'Content-Type: application/json' -X POST --data '{"username": "admin", "password": "litmus"}'  http://localhost:3000/login 

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 targets page of Litmus Portal.

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
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
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,

}
clusterInput:

(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"
  }
}
Try it now
Response Content-Types: application/json
Response Example (200 OK)
{
  "data": {
    "userClusterReg": {
      "token": "string",
      "cluster_id": "string",
      "cluster_name": "string"
    }
  }
}

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",

}
project_id:
string

(no description)

cluster_type:
string

(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
  }
}
Variables
{
  "project_id": "string",
  "cluster_type": "string"
}
Try it now
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"
      }
    ]
  }
}

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",

}
cluster_id:
string

(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
200 OK

Successful operation

type
string
Response Content-Types: application/json
Response Example (200 OK)
{
  "data": {
    "deleteClusterReg": "string"
  }
}

ChaosWorkflow

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 chaosworkflow easily via the workflow page of the Litmus Portal dashboard.

Field Possible values Mandatory/Optional
workflow_manifest - Mandatory
cronSyntax - Optional
workflow_name external/internal 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
Response Content-Types: application/json
Response Example (200 OK)
{
  "data": {
    "createChaosWorkFlow": {
      "workflow_id": "string",
      "cronSyntax": "string",
      "workflow_name": "string",
      "workflow_description": "string",
      "isCustomWorkflow": "boolean"
    }
  }
}

List ChaosWorkflow

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.
User can get a particular workflow by appending workflow_id inside an array of workflow_ids, if the array is empty it will return a list of chaos workflow.

Field Possible values Mandatory/Optional
project_id - Mandatory
workflow_ids [] Optional
Example Body:
{

"project_id": "5fd7d9212c9f32447e28317b",
"workflow_ids": ["3gr3f492146f53d4g3e283re"],

}
project_id:
string

(no description)

workflow_ids:
string[]

(no description)

Example

Request Content-Types: application/json
Query
query ListWorkflow($project_id: String!, $workflow_ids: [ID]){
  ListWorkflow(project_id: $project_id, workflow_ids: $workflow_ids){
    workflow_id
    workflow_manifest
    cronSyntax
    cluster_name
    workflow_name
    workflow_description
    isCustomWorkflow
    updated_at
    created_at
    project_id
    cluster_id
    cluster_type
    isRemoved
  }
}
Variables
{
  "project_id": "string",
  "workflow_ids": [
    "string"
  ]
}
Try it now
Response Content-Types: application/json
Response Example (200 OK)
{
  "data": {
    "ListWorkflow": [
      {
        "workflow_id": "string",
        "workflow_manifest": "string",
        "cronSyntax": "string",
        "cluster_name": "string",
        "workflow_name": "string",
        "workflow_description": "string",
        "isCustomWorkflow": "boolean",
        "updated_at": "string",
        "created_at": "string",
        "project_id": "string",
        "cluster_id": "string",
        "cluster_type": "string",
        "isRemoved": "boolean"
      }
    ]
  }
}

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
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",

}
workflowid:
string

(no description)

Example

Request Content-Types: application/json
Query
mutation deleteChaosWorkflow($workflowid: String!){
  deleteChaosWorkflow(workflowid: $workflowid)
}
Variables
{
  "workflowid": "string"
}
Try it now
200 OK

Successful operation

type
boolean
Response Content-Types: application/json
Response Example (200 OK)
{
  "data": {
    "deleteChaosWorkflow": "boolean"
  }
}

MyHub

MyHub 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 Myhub

User can add myhub easily via the myhub page of the Litmus Portal dashboard. After adding myhub, it will clone the git repository which has the chaos charts.

Field Possible values Mandatory/Optional
RepoURL - Mandatory
RepoBranch - Mandatory
HubName - Mandatory
Example Body:
{

"RepoURL": "https://github.com/litmuschaos/chaos-charts",
"RepoBranch": "master",
"HubName": "my-chaos-hub",

}
myhubInput:

(no description)

projectID:
string

(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
    CreatedAt
    UpdatedAt
  }
}
Variables
{
  "myhubInput": {
    "HubName": "string",
    "RepoURL": "string",
    "RepoBranch": "string"
  },
  "projectID": "string"
}
Try it now
Response Content-Types: application/json
Response Example (200 OK)
{
  "data": {
    "addMyHub": {
      "id": "string",
      "RepoURL": "string",
      "RepoBranch": "string",
      "ProjectID": "string",
      "HubName": "string",
      "CreatedAt": "string",
      "UpdatedAt": "string"
    }
  }
}

List MyHub

Returns a list of myhub connected with Litmus Portal

Field Possible values Mandatory/Optional
projectID - Mandatory
Example Body:
{

"projectID": "5fd7d9212c9f32447e28317b",

}
projectID:
string

(no description)

Example

Request Content-Types: application/json
Query
query getHubStatus($projectID: String!){
  getHubStatus(projectID: $projectID){
    id
    RepoURL
    RepoBranch
    IsAvailable
    TotalExp
    HubName
  }
}
Variables
{
  "projectID": "string"
}
Try it now
Response Content-Types: application/json
Response Example (200 OK)
{
  "data": {
    "getHubStatus": [
      {
        "id": "string",
        "RepoURL": "string",
        "RepoBranch": "string",
        "IsAvailable": "boolean",
        "TotalExp": "string",
        "HubName": "string"
      }
    ]
  }
}

Sync MyHub

Sync hub will pull the latest commits from the git repository.

Field Possible values Mandatory/Optional
projectID - Mandatory
HubName - Mandatory
Example Body:
{

"project_id": "5fd7d9212c9f32447e28317b",
"HubName": "my-chaos-hub",

}
projectID:
string

(no description)

HubName:
string

(no description)

Example

Request Content-Types: application/json
Query
mutation syncHub($projectID: String!, $HubName: String!){
  syncHub(projectID: $projectID, HubName: $HubName){
    id
    RepoURL
    RepoBranch
    IsAvailable
    TotalExp
    HubName
  }
}
Variables
{
  "projectID": "string",
  "HubName": "string"
}
Try it now
Response Content-Types: application/json
Response Example (200 OK)
{
  "data": {
    "syncHub": [
      {
        "id": "string",
        "RepoURL": "string",
        "RepoBranch": "string",
        "IsAvailable": "boolean",
        "TotalExp": "string",
        "HubName": "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
email - Mandatory
company_name - Mandatory
name - Mandatory
project_name - 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
    state
    created_at
    updated_at
    removed_at
  }
}
Variables
{
  "user": {
    "username": "string",
    "email": "string",
    "company_name": "string",
    "name": "string",
    "project_name": "string"
  }
}
Try it now
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",
      "state": "string",
      "created_at": "string",
      "updated_at": "string",
      "removed_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
    state
    created_at
    updated_at
    removed_at
  }
}
Try it now
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",
        "state": "string",
        "created_at": "string",
        "updated_at": "string",
        "removed_at": "string"
      }
    ]
  }
}

Get User

Returns a specified user within the Litmus Portal

Field Possible values Mandatory/Optional
username - Mandatory
Example Body:
{

"username": "litmus-user",

}
username:
string

(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
    state
    created_at
    updated_at
    removed_at
  }
}
Variables
{
  "username": "string"
}
Try it now
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",
      "state": "string",
      "created_at": "string",
      "updated_at": "string",
      "removed_at": "string"
    }
  }
}

Update User

User can update its details details by providing the following parameters:

Field Possible values Mandatory/Optional
id - Mandatory
name - Mandatory
email - 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
200 OK

Successful operation

type
string
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",

}
member:

(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
  }
}
Variables
{
  "member": {
    "project_id": "object",
    "user_name": "string",
    "role": "string"
  }
}
Try it now
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"
    }
  }
}

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",

}
member:

(no description)

Example

Request Content-Types: application/json
Query
mutation acceptInvitation($member: MemberInput!){
  acceptInvitation(member: $member)
}
Variables
{
  "member": {
    "project_id": "object",
    "user_name": "string",
    "role": "string"
  }
}
Try it now
200 OK

Successful operation

type
string
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",

}
member:

(no description)

Example

Request Content-Types: application/json
Query
mutation declineInvitation($member: MemberInput!){
  declineInvitation(member: $member)
}
Variables
{
  "member": {
    "project_id": "object",
    "user_name": "string",
    "role": "string"
  }
}
Try it now
200 OK

Successful operation

type
string
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",

}
member:

(no description)

Example

Request Content-Types: application/json
Query
mutation declineInvitation($member: MemberInput!){
  declineInvitation(member: $member)
}
Variables
{
  "member": {
    "project_id": "object",
    "user_name": "string",
    "role": "string"
  }
}
Try it now
200 OK

Successful operation

type
string
Response Content-Types: application/json
Response Example (200 OK)
{
  "data": {
    "declineInvitation": "string"
  }
}

Schema Definitions

ActionPayload: object

request_type:
k8s_manifest:
namespace:
external_data:
Example
{
  "request_type": "string",
  "k8s_manifest": "string",
  "namespace": "string",
  "external_data": "string"
}

Annotation: object

Categories:
Vendor:
CreatedAt:
Repository:
Support:
ChartDescription:
Example
{
  "Categories": "string",
  "Vendor": "string",
  "CreatedAt": "string",
  "Repository": "string",
  "Support": "string",
  "ChartDescription": "string"
}

Boolean: boolean

The Boolean scalar type represents true or false.

Example
boolean

ChaosWorkFlowInput: object

workflow_id:
workflow_manifest:
cronSyntax:
workflow_name:
workflow_description:
weightages:
isCustomWorkflow:
project_id:
ID
cluster_id:
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"
}

ChaosWorkFlowResponse: object

workflow_id:
cronSyntax:
workflow_name:
workflow_description:
isCustomWorkflow:
Example
{
  "workflow_id": "string",
  "cronSyntax": "string",
  "workflow_name": "string",
  "workflow_description": "string",
  "isCustomWorkflow": "boolean"
}

Chart: object

ApiVersion:
Kind:
Metadata:
Spec:
PackageInfo:
Experiments:
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"
      }
    ]
  },
  "Experiments": [
    {
      "ApiVersion": "string",
      "Kind": "string",
      "Metadata": {
        "Name": "string",
        "Version": "string",
        "Annotations": {
          "Categories": "string",
          "Vendor": "string",
          "CreatedAt": "string",
          "Repository": "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"
          }
        ]
      },
      "Experiments": [
        {
          "ApiVersion": "string",
          "Kind": "string",
          "Metadata": {
            "Name": "string",
            "Version": "string",
            "Annotations": {
              "Categories": "string",
              "Vendor": "string"
            }
          }
        }
      ]
    }
  ]
}

CloningInput: object

HubName:
ProjectID:
RepoBranch:
RepoURL:
Example
{
  "HubName": "string",
  "ProjectID": "string",
  "RepoBranch": "string",
  "RepoURL": "string"
}

Cluster: object

cluster_id:
ID
project_id:
ID
cluster_name:
description:
platform_name:
access_key:
is_registered:
is_cluster_confirmed:
is_active:
updated_at:
created_at:
cluster_type:
no_of_schedules:
Int
no_of_workflows:
Int
token:
agent_namespace:
serviceaccount:
agent_scope:
agent_ns_exists:
agent_sa_exists:
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"
}

ClusterAction: object

project_id:
ID
action:
Example
{
  "project_id": "object",
  "action": {
    "request_type": "string",
    "k8s_manifest": "string",
    "namespace": "string",
    "external_data": "string"
  }
}

ClusterActionInput: object

cluster_id:
ID
action:
Example
{
  "cluster_id": "object",
  "action": "string"
}

ClusterConfirmResponse: object

isClusterConfirmed:
newClusterKey:
cluster_id:
Example
{
  "isClusterConfirmed": "boolean",
  "newClusterKey": "string",
  "cluster_id": "string"
}

ClusterEvent: object

event_id:
ID
event_type:
event_name:
description:
cluster:
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"
  }
}

ClusterEventInput: object

event_name:
description:
cluster_id:
access_key:
Example
{
  "event_name": "string",
  "description": "string",
  "cluster_id": "string",
  "access_key": "string"
}

ClusterIdentity: object

cluster_id:
access_key:
Example
{
  "cluster_id": "string",
  "access_key": "string"
}

ClusterInput: object

cluster_name:
description:
platform_name:
project_id:
ID
cluster_type:
agent_namespace:
serviceaccount:
agent_scope:
agent_ns_exists:
agent_sa_exists:
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"
}

CreateMyHub: object

HubName:
RepoURL:
RepoBranch:
Example
{
  "HubName": "string",
  "RepoURL": "string",
  "RepoBranch": "string"
}

CreateUserInput: object

username:
email:
company_name:
name:
project_name:
Example
{
  "username": "string",
  "email": "string",
  "company_name": "string",
  "name": "string",
  "project_name": "string"
}

ExperimentInput: object

ProjectID:
ChartName:
ExperimentName:
HubName:
FileType:
Example
{
  "ProjectID": "string",
  "ChartName": "string",
  "ExperimentName": "string",
  "HubName": "string",
  "FileType": "string"
}

Experiments: object

Name:
CSV:
Desc:
Example
{
  "Name": "string",
  "CSV": "string",
  "Desc": "string"
}

Float: number

The Float scalar type represents signed double-precision fractional values as specified by IEEE 754.

Example
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

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

Maintainer: object

Name:
Email:
Example
{
  "Name": "string",
  "Email": "string"
}

Member: object

user_id:
ID
user_name:
name:
email:
role:
invitation:
joined_at:
Example
{
  "user_id": "object",
  "user_name": "string",
  "name": "string",
  "email": "string",
  "role": "string",
  "invitation": "string",
  "joined_at": "string"
}

MemberInput: object

project_id:
ID
user_name:
role:
Example
{
  "project_id": "object",
  "user_name": "string",
  "role": "string"
}

MemberRole: string

object
Owner
object
Editor
object
Viewer

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:
ID
RepoURL:
RepoBranch:
ProjectID:
HubName:
CreatedAt:
UpdatedAt:
Example
{
  "id": "object",
  "RepoURL": "string",
  "RepoBranch": "string",
  "ProjectID": "string",
  "HubName": "string",
  "CreatedAt": "string",
  "UpdatedAt": "string"
}

MyHubStatus: object

id:
ID
RepoURL:
RepoBranch:
IsAvailable:
TotalExp:
HubName:
Example
{
  "id": "object",
  "RepoURL": "string",
  "RepoBranch": "string",
  "IsAvailable": "boolean",
  "TotalExp": "string",
  "HubName": "string"
}

PackageInformation: object

PackageName:
Experiments:
Example
{
  "PackageName": "string",
  "Experiments": [
    {
      "Name": "string",
      "CSV": "string",
      "Desc": "string"
    }
  ]
}

PodLog: object

cluster_id:
request_id:
ID
workflow_run_id:
ID
pod_name:
pod_type:
log:
Example
{
  "cluster_id": {
    "cluster_id": "string",
    "access_key": "string"
  },
  "request_id": "object",
  "workflow_run_id": "object",
  "pod_name": "string",
  "pod_type": "string",
  "log": "string"
}

PodLogRequest: object

cluster_id:
ID
workflow_run_id:
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"
}

PodLogResponse: object

workflow_run_id:
ID
pod_name:
pod_type:
log:
Example
{
  "workflow_run_id": "object",
  "pod_name": "string",
  "pod_type": "string",
  "log": "string"
}

Project: object

id:
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"
    }
  ],
  "state": "string",
  "created_at": "string",
  "updated_at": "string",
  "removed_at": "string"
}

Provider: object

Name:
Example
{
  "Name": "string"
}

ScheduledWorkflows: object

workflow_id:
workflow_manifest:
cronSyntax:
cluster_name:
workflow_name:
workflow_description:
weightages:
isCustomWorkflow:
updated_at:
created_at:
project_id:
ID
cluster_id:
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"
}

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:
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"
    }
  },
  "workflowEventListener": {
    "workflow_run_id": "object",
    "workflow_id": "object",
    "cluster_name": "string",
    "last_updated": "string",
    "project_id": "object",
    "cluster_id": "object",
    "workflow_name": "string",
    "cluster_type": "string",
    "execution_data": "string"
  },
  "getPodLog": {
    "workflow_run_id": "object",
    "pod_name": "string",
    "pod_type": "string",
    "log": "string"
  },
  "clusterConnect": {
    "project_id": "object",
    "action": {
      "request_type": "string",
      "k8s_manifest": "string",
      "namespace": "string",
      "external_data": "string"
    }
  }
}

UpdateUserInput: object

id:
ID
name:
email:
company_name:
Example
{
  "id": "object",
  "name": "string",
  "email": "string",
  "company_name": "string"
}

User: object

id:
ID
username:
email:
is_email_verified:
company_name:
name:
projects:
role:
state:
created_at:
updated_at:
removed_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"
        }
      ],
      "state": "string",
      "created_at": "string",
      "updated_at": "string",
      "removed_at": "string"
    }
  ],
  "role": "string",
  "state": "string",
  "created_at": "string",
  "updated_at": "string",
  "removed_at": "string"
}

WeightagesInput: object

experiment_name:
weightage:
Int
Example
{
  "experiment_name": "string",
  "weightage": "number"
}

Workflow: object

workflow_id:
workflow_manifest:
cronSyntax:
cluster_name:
workflow_name:
workflow_description:
weightages:
isCustomWorkflow:
updated_at:
created_at:
project_id:
ID
cluster_id:
ID
cluster_type:
isRemoved:
workflow_runs:
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",
  "workflow_runs": [
    {
      "execution_data": "string",
      "workflow_run_id": "object",
      "last_updated": "string"
    }
  ]
}

WorkflowRun: object

workflow_run_id:
ID
workflow_id:
ID
cluster_name:
last_updated:
project_id:
ID
cluster_id:
ID
workflow_name:
cluster_type:
execution_data:
Example
{
  "workflow_run_id": "object",
  "workflow_id": "object",
  "cluster_name": "string",
  "last_updated": "string",
  "project_id": "object",
  "cluster_id": "object",
  "workflow_name": "string",
  "cluster_type": "string",
  "execution_data": "string"
}

WorkflowRunInput: object

workflow_id:
ID
workflow_run_id:
ID
workflow_name:
execution_data:
cluster_id:
completed:
Example
{
  "workflow_id": "object",
  "workflow_run_id": "object",
  "workflow_name": "string",
  "execution_data": "string",
  "cluster_id": {
    "cluster_id": "string",
    "access_key": "string"
  },
  "completed": "boolean"
}

WorkflowRuns: object

execution_data:
workflow_run_id:
ID
last_updated:
Example
{
  "execution_data": "string",
  "workflow_run_id": "object",
  "last_updated": "string"
}

clusterRegResponse: object

token:
cluster_id:
cluster_name:
Example
{
  "token": "string",
  "cluster_id": "string",
  "cluster_name": "string"
}

weightages: object

experiment_name:
weightage:
Int
Example
{
  "experiment_name": "string",
  "weightage": "number"
}