Harness Chaos Engineering API Documentation

Harness Chaos Engineering empowers teams to deliver more resilient systems, helping organizations avoid downtime that can be costly, both financially and in lost reputation. It enables DevOps and SRE teams to purposely create failure scenarios (“chaos”) to identify potential resiliency and reliability issues in their deployments. These scenarios go beyond traditional unit, integration, and system tests, more closely representing what random failures in a production operating environment would look like.

Contact

API Support

contact@harness.io

API Endpoints
# Production:
https://app.harness.io/gateway/chaos/manager/api/query
Headers
# Use your API key token for authorization
X-API-KEY: <YOUR_API_KEY_TOKEN_HERE>
# Or use your JWT token for authorization
Authorization: <YOUR_JWT_TOKEN_HERE>

Your First Chaos Experiment

NOTE: These steps assumes you already have an account in Harness, if not, please create a new project or ask your administrator to add you to an existing project in Harness.

Please follow the below guidelines to run your first Chaos experiment Pod Delete:

Sequence in which the APIs should be executed to run a sample chaos experiment such as Pod Delete (all the APIs to do so are present in folder "Run Pod Delete Chaos Experiment" under Harness CE Postman Collection).

Listed below are the required inputs and how to access (or generate) them. We will refer these variables in the API requests explained in this tutorial -

url

This is the Harness CE server URL serving the Chaos API requests. You can find this URL in the Chaos API doc(top right). For instance, https://app.harness.io/gateway/chaos/manager/api/query is the Harness CE server URL for production environment. If you are using Chaos postman collection, this value will be pre-filled in 2 postman variables like below:

  • base_url - https://app.harness.io
  • chaos_url - $base_url/gateway/chaos/manager/api/query

account_id

This is your Harness account Id. Please use the account where you would like to run Chaos experiments.

You can retrieve your account Id by following the below steps:

  1. Go to ACCOUNT SETTINGS in Harness.
  2. Click on Overview.
  3. Copy the value of Account Id.

project_id

This is your Harness project Id. Please use the project where you would like to run Chaos experiments.

You can retrieve your project Id by following the below steps:

  1. Go to Projects in Harness.
  2. Select the project where you would like to run the Chaos experiments or create a new project.
  3. Click on Overview.
  4. Copy the value of Id.
  5. Please make sure to copy the value of Organization as well, this will be the value of next required variable org_id.

org_id

This is your Harness organization Id. Please use the organization where you would like to run Chaos experiments.

You can retrieve your organization Id by following the below steps: See above step to retrieve project_id - you would have copied the value of org_id as well in that step, if not please follow the same steps again to retrieve organization Id

API-KEY-TOKEN

You can use an existing Harness API key token of the same Harness account selected in above steps or you can create a new one by following the below steps:

  1. Click on MY PROFILE in Harness.
  2. Go to My API Keys section and click on + API Key button to create a new API Key.
  3. Enter a Name for the API Key(optional Description/Tags) and click on Save.
  4. Under the newly created API Key, click on + Token button to generate a new token for this API Key.
  5. Enter the Name and select the Expiration(time for which this token will be valid) and click on Generate Token.
  6. Please make sure to copy the value of the token generated and store somewhere safe, you may not be able to copy this later.

Variables In Harness CE Postman Collection

In order to work with Harness CE Postman Collection, please fork it under your own Postman account and update the above-mentioned variables in order to work with Harness CE Postman Collection.

Authorization Header For API Request

An authorization header with API-KEY-TOKEN value retrieved above is required to work with Chaos APIs i.e., x-api-key: $API-KEY-TOKEN

APIs to be executed in given sequence:

RegisterInfra

Now, we can create/register a chaos infrastructure. Here, we will add a Kubernetes infrastructure so that we can inject Kubernetes resource faults.

Add a name to your chaos infrastructure and optionally a description and tags. After that, choose the mode of installation for Harness delegate. As a quick primer, Harness delegate is a remote agent for accessing your Kubernetes cluster resources and injecting faults into them as part of a chaos experiment. The Cluster Wide installation mode allows you to target resources across all the namespaces in your cluster while Namespace Mode installation restricts chaos injection to only the namespace in which the delegate will be installed. In this tutorial, the delegate will be installed in the hce namespace with Cluster Wide mode, but you can change it.

NOTE: Above values are pre-filled in Harness CE Postman Collection.

Please make sure to note down the value of field token and infraID from response, these values will be used in subsequent API calls.

Once above request is executed, retrieve the infrastructure manifest by forming URL as shown below: $chaos_server_url/file/$token.yaml where $chaos_server_url would be https://app.harness.io/gateway/chaos/manager/api/ and $token is the token value retrieved in response of registerInfra API call as shown in sample response above. An example URL to retrieve infrastructure manifest could look like https://app.harness.io/gateway/chaos/manager/api/file/token-abc.yaml , copy and save the yaml in a machine where kubectl is installed and has access to your k8s cluster in some file named infra.yaml.

Lastly, provided that you have access to your Kubernetes cluster via kubectl, deploy your chaos infrastructure by executing the below commands - kubectl apply -f infra.yaml

It will take a while for the delegate to setup in the k8s cluster. Meanwhile, if you want to check the status of your infra, please use the API GetInfraDetails as explained below.

GetInfraDetails

Optional - If you want to get the details of your newly registered infra or to check if your infra is active or not before creating a Chaos workflow, you can use GetInfraDetails API - It will return the details of a given infra based on infra ID input. Please make sure to check the value of field isActive, it should be true i.e., the infrastructure should be in active state prior to moving forward.

NOTE: Above values are pre-filled in Harness CE Postman Collection.

ListPredefinedWorkflow

Optional - Required if and only if you want to run a different chaos experiment other than pod-delete, by default, pod delete experiment manifest is present in CreateChaosWorkFlow API call) - This will list down all the available predefined workflows/experiments that can be run on your infra, please select one of them and copy the manifest from there and make necessary changes such as namespace, etc.

CreateChaosWorkFlow

Please make sure to deploy some sample target application under hce namespace with label app=cartservice prior to running this API. With our target application deployed, we can now create a chaos experiment. We will be targeting the pods of the deployed app with the Pod Delete fault. To create the chaos experiment, Add the experiment name and optionally a description and tags. Then, Add the target infrastructure id, which we created previously.

This will allow us to create our chaos experiment with a pod-delete fault configured to target the Online Boutique application.

NOTE: In order to run this API using Harness CE Postman Collection, you just need to update the value of variable infraID retrieved during registerInfra API call. The value for workflowManifest field is pre-filled in the Harness CE postman collection, user does not need to update in case they want to target an application under hce namespace with label app=cartservice mentioned in this tutorial.

RunChaosExperiment

Once a workflow is created, you can now execute the experiment by providing the workflow id from CreateChaosWorkFlow API call. NOTE: Please note down the value of field notifyID.

ListWorkflowRun

Optional - Required only if you want to check the details of the workflow currently running - details can be validated by UI as well if user prefers to do so) - It will list down all the workflow runs with the required details for those workflows, this API call can be used to validate if the workflow created by RunChaosExperiment API call is running or not, completed, etc using the field phase.

Let's go to Harness CE Postman Collection to see this in action.

Queries

checkResourceID

Response

Returns a Boolean!

Arguments
Name Description
identifiers - IdentifiersRequest!
request - CheckResourceIDRequest!

Example

Query
query CheckResourceID(
  $identifiers: IdentifiersRequest!,
  $request: CheckResourceIDRequest!
) {
  checkResourceID(
    identifiers: $identifiers,
    request: $request
  )
}
Variables
{
  "identifiers": IdentifiersRequest,
  "request": CheckResourceIDRequest
}
Response
{"data": {"checkResourceID": {}}}

getChaosFault

Description

Get the fault details for a requested fault

Response

Returns a FaultDetails!

Arguments
Name Description
request - ExperimentRequest!
identifiers - IdentifiersRequest!

Example

Query
query GetChaosFault(
  $request: ExperimentRequest!,
  $identifiers: IdentifiersRequest!
) {
  getChaosFault(
    request: $request,
    identifiers: $identifiers
  ) {
    fault
    engine
    csv
  }
}
Variables
{
  "request": ExperimentRequest,
  "identifiers": IdentifiersRequest
}
Response
{
  "data": {
    "getChaosFault": {
      "fault": "abc123",
      "engine": "xyz789",
      "csv": "xyz789"
    }
  }
}

getChaosHub

Description

Get the details of a requested ChaosHub

Response

Returns a ChaosHubStatus!

Arguments
Name Description
identifiers - IdentifiersRequest!
chaosHubID - String!

Example

Query
query GetChaosHub(
  $identifiers: IdentifiersRequest!,
  $chaosHubID: String!
) {
  getChaosHub(
    identifiers: $identifiers,
    chaosHubID: $chaosHubID
  ) {
    id
    repoName
    repoURL
    repoBranch
    connectorId
    connectorScope
    AuthType
    isAvailable
    totalExp
    totalWorkflows
    name
    lastSyncedAt
    isDefault
    tags
    createdBy {
      userID
      username
      email
    }
    updatedBy {
      userID
      username
      email
    }
    createdAt
    updatedAt
    description
  }
}
Variables
{
  "identifiers": IdentifiersRequest,
  "chaosHubID": "abc123"
}
Response
{
  "data": {
    "getChaosHub": {
      "id": "4",
      "repoName": "xyz789",
      "repoURL": "xyz789",
      "repoBranch": "xyz789",
      "connectorId": "xyz789",
      "connectorScope": "ACCOUNT",
      "AuthType": "Ssh",
      "isAvailable": false,
      "totalExp": "xyz789",
      "totalWorkflows": "xyz789",
      "name": "abc123",
      "lastSyncedAt": "xyz789",
      "isDefault": true,
      "tags": ["xyz789"],
      "createdBy": UserDetails,
      "updatedBy": UserDetails,
      "createdAt": "abc123",
      "updatedAt": "abc123",
      "description": "xyz789"
    }
  }
}

getCondition

Response

Returns a ConditionResponse!

Arguments
Name Description
identifiers - IdentifiersRequest!
conditionId - String!

Example

Query
query GetCondition(
  $identifiers: IdentifiersRequest!,
  $conditionId: String!
) {
  getCondition(
    identifiers: $identifiers,
    conditionId: $conditionId
  ) {
    updatedAt
    createdAt
    updatedBy {
      userID
      username
      email
    }
    createdBy {
      userID
      username
      email
    }
    identifiers {
      orgIdentifier
      accountIdentifier
      projectIdentifier
    }
    condition {
      name
      description
      tags
      conditionId
      infraSpec {
        infraId
        infraType
        chaosServiceAccountSpecs {
          name
        }
        applicationSpecs {
          label
          namespace
        }
      }
      faultSpecs {
        faultType
        name
      }
      rules {
        ruleId
        name
      }
    }
  }
}
Variables
{
  "identifiers": IdentifiersRequest,
  "conditionId": "abc123"
}
Response
{
  "data": {
    "getCondition": {
      "updatedAt": 987,
      "createdAt": 123,
      "updatedBy": UserDetails,
      "createdBy": UserDetails,
      "identifiers": Identifiers,
      "condition": Condition
    }
  }
}

getExperiment

Description

Returns the experiment based on experiment ID

Response

Returns a GetExperimentResponse!

Arguments
Name Description
identifiers - IdentifiersRequest!
experimentID - String!

Example

Query
query GetExperiment(
  $identifiers: IdentifiersRequest!,
  $experimentID: String!
) {
  getExperiment(
    identifiers: $identifiers,
    experimentID: $experimentID
  ) {
    experimentDetails {
      identifiers {
        orgIdentifier
        accountIdentifier
        projectIdentifier
      }
      workflowID
      workflowType
      workflowManifest
      cronSyntax
      name
      description
      weightages {
        experimentName
        weightage
      }
      isCustomWorkflow
      updatedAt
      createdAt
      infra {
        infraID
        name
        description
        tags
        environmentID
        platformName
        isActive
        isInfraConfirmed
        isRemoved
        updatedAt
        createdAt
        noOfSchedules
        noOfWorkflows
        token
        infraNamespace
        serviceAccount
        infraScope
        infraNsExists
        infraSaExists
        installationType
        k8sConnectorID
        lastWorkflowTimestamp
        startTime
        version
        createdBy {
          userID
          username
          email
        }
        updatedBy {
          userID
          username
          email
        }
        lastHeartbeat
        infraType
        updateStatus
        isSecretEnabled
        runAsUser
        runAsGroup
        upgrade {
          status
          isAutoUpgradeEnabled
        }
      }
      isRemoved
      tags
      createdBy {
        userID
        username
        email
      }
      recentWorkflowRunDetails {
        workflowRunID
        notifyID
        phase
        resiliencyScore
        updatedAt
        createdAt
        createdBy {
          userID
          username
          email
        }
        updatedBy {
          userID
          username
          email
        }
        runSequence
      }
      eventsMetadata {
        faultName
        serviceIdentifier
        environmentIdentifier
      }
      updatedBy {
        userID
        username
        email
      }
    }
    averageResiliencyScore
  }
}
Variables
{
  "identifiers": IdentifiersRequest,
  "experimentID": "xyz789"
}
Response
{
  "data": {
    "getExperiment": {
      "experimentDetails": Workflow,
      "averageResiliencyScore": 123.45
    }
  }
}

getExperimentRun

Description

Returns experiment run based on experiment run ID

Response

Returns a WorkflowRun!

Arguments
Name Description
identifiers - IdentifiersRequest!
experimentRunID - String!

Example

Query
query GetExperimentRun(
  $identifiers: IdentifiersRequest!,
  $experimentRunID: String!
) {
  getExperimentRun(
    identifiers: $identifiers,
    experimentRunID: $experimentRunID
  ) {
    identifiers {
      orgIdentifier
      accountIdentifier
      projectIdentifier
    }
    workflowRunID
    workflowType
    workflowID
    weightages {
      experimentName
      weightage
    }
    updatedAt
    createdAt
    infra {
      infraID
      name
      description
      tags
      environmentID
      platformName
      isActive
      isInfraConfirmed
      isRemoved
      updatedAt
      createdAt
      noOfSchedules
      noOfWorkflows
      token
      infraNamespace
      serviceAccount
      infraScope
      infraNsExists
      infraSaExists
      installationType
      k8sConnectorID
      lastWorkflowTimestamp
      startTime
      version
      createdBy {
        userID
        username
        email
      }
      updatedBy {
        userID
        username
        email
      }
      lastHeartbeat
      infraType
      updateStatus
      isSecretEnabled
      runAsUser
      runAsGroup
      upgrade {
        status
        isAutoUpgradeEnabled
      }
    }
    workflowName
    workflowManifest
    probe {
      faultName
      probeName
    }
    phase
    resiliencyScore
    experimentsPassed
    experimentsFailed
    experimentsAwaited
    experimentsStopped
    experimentsNa
    totalExperiments
    executionData
    isRemoved
    updatedBy {
      userID
      username
      email
    }
    createdBy {
      userID
      username
      email
    }
    notifyID
    errorResponse
    securityGovernance {
      name
      type
      startedAt
      finishedAt
      message
      phase
      securityGovernanceNodeData {
        passedRules {
          ruleId
          ruleName
          message
          description
          userGroupIds
          timeWindow {
            duration
            endTime
            startTime
            timeZone
            recurrence {
              ...RecurrenceFragment
            }
          }
          conditions {
            conditionId
            conditionName
            message
            phase
          }
        }
        failedRules {
          ruleId
          ruleName
          message
          description
          userGroupIds
          timeWindow {
            duration
            endTime
            startTime
            timeZone
            recurrence {
              ...RecurrenceFragment
            }
          }
          conditions {
            conditionId
            conditionName
            message
            phase
          }
        }
        skippedRules {
          ruleId
          ruleName
          message
          description
          userGroupIds
          timeWindow {
            duration
            endTime
            startTime
            timeZone
            recurrence {
              ...RecurrenceFragment
            }
          }
          conditions {
            conditionId
            conditionName
            message
            phase
          }
        }
      }
    }
    runSequence
  }
}
Variables
{
  "identifiers": IdentifiersRequest,
  "experimentRunID": "abc123"
}
Response
{
  "data": {
    "getExperimentRun": {
      "identifiers": Identifiers,
      "workflowRunID": 4,
      "workflowType": "abc123",
      "workflowID": "4",
      "weightages": [Weightages],
      "updatedAt": "abc123",
      "createdAt": "abc123",
      "infra": Infra,
      "workflowName": "abc123",
      "workflowManifest": "abc123",
      "probe": [ProbeMap],
      "phase": "All",
      "resiliencyScore": 987.65,
      "experimentsPassed": 987,
      "experimentsFailed": 123,
      "experimentsAwaited": 123,
      "experimentsStopped": 987,
      "experimentsNa": 987,
      "totalExperiments": 987,
      "executionData": "abc123",
      "isRemoved": true,
      "updatedBy": UserDetails,
      "createdBy": UserDetails,
      "notifyID": "4",
      "errorResponse": "xyz789",
      "securityGovernance": SecurityGovernance,
      "runSequence": 987
    }
  }
}

getGameDay

Response

Returns a GetGameDayResponse!

Arguments
Name Description
identifiers - IdentifiersRequest!
gamedayID - String!

Example

Query
query GetGameDay(
  $identifiers: IdentifiersRequest!,
  $gamedayID: String!
) {
  getGameDay(
    identifiers: $identifiers,
    gamedayID: $gamedayID
  ) {
    gameDayID
    identifiers {
      orgIdentifier
      accountIdentifier
      projectIdentifier
    }
    name
    experiments {
      experimentID
      experimentTemplateName
      chaosInfra {
        ID
        type
        name
        environmentID
        namespace
        scope
        isActive
      }
      hubID
      experimentNotes
      experimentCSV
      experimentManifest
    }
    objective
    description
    createdBy {
      userID
      username
      email
    }
    createdAt
    updatedAt
    summary {
      notes
      qna {
        questionType
        optionsMCQ
        question
        answer
      }
      actionItem {
        item
        isDone
      }
    }
    isRemoved
    totalGamedayRuns
  }
}
Variables
{
  "identifiers": IdentifiersRequest,
  "gamedayID": "xyz789"
}
Response
{
  "data": {
    "getGameDay": {
      "gameDayID": "4",
      "identifiers": Identifiers,
      "name": "xyz789",
      "experiments": [GetGamedayExperimentResponse],
      "objective": "xyz789",
      "description": "xyz789",
      "createdBy": UserDetails,
      "createdAt": "abc123",
      "updatedAt": "abc123",
      "summary": GameDaySummary,
      "isRemoved": false,
      "totalGamedayRuns": 987
    }
  }
}

getGameDayRun

Response

Returns a GameDayRunResponse

Arguments
Name Description
identifiers - IdentifiersRequest!
gamedayRunID - String!

Example

Query
query GetGameDayRun(
  $identifiers: IdentifiersRequest!,
  $gamedayRunID: String!
) {
  getGameDayRun(
    identifiers: $identifiers,
    gamedayRunID: $gamedayRunID
  ) {
    gameDayRunID
    name
    gameDayID
    identifiers {
      orgIdentifier
      accountIdentifier
      projectIdentifier
    }
    experiments {
      experimentID
      experimentTemplateName
      chaosInfraID
      hubID
      experimentRunIDs
      experimentNotes
    }
    startTime
    endTime
    notes
    summary {
      notes
      qna {
        questionType
        optionsMCQ
        question
        answer
      }
      actionItem {
        item
        isDone
      }
    }
    createdBy {
      userID
      username
      email
    }
    updatedBy {
      userID
      username
      email
    }
    updatedAt
    createdAt
    completed
  }
}
Variables
{
  "identifiers": IdentifiersRequest,
  "gamedayRunID": "xyz789"
}
Response
{
  "data": {
    "getGameDayRun": {
      "gameDayRunID": "xyz789",
      "name": "xyz789",
      "gameDayID": "xyz789",
      "identifiers": Identifiers,
      "experiments": [GameDayRunExperiments],
      "startTime": "xyz789",
      "endTime": "abc123",
      "notes": "xyz789",
      "summary": GameDaySummary,
      "createdBy": UserDetails,
      "updatedBy": UserDetails,
      "updatedAt": "xyz789",
      "createdAt": "xyz789",
      "completed": true
    }
  }
}

getImageRegistry

Response

Returns an ImageRegistryResponse!

Arguments
Name Description
identifiers - IdentifiersRequest!

Example

Query
query GetImageRegistry($identifiers: IdentifiersRequest!) {
  getImageRegistry(identifiers: $identifiers) {
    identifier {
      orgIdentifier
      accountIdentifier
      projectIdentifier
    }
    registryServer
    registryAccount
    isPrivate
    secretName
    isDefault
    createdBy {
      userID
      username
      email
    }
    updatedBy {
      userID
      username
      email
    }
    createdAt
    updatedAt
  }
}
Variables
{"identifiers": IdentifiersRequest}
Response
{
  "data": {
    "getImageRegistry": {
      "identifier": Identifiers,
      "registryServer": "xyz789",
      "registryAccount": "abc123",
      "isPrivate": false,
      "secretName": "abc123",
      "isDefault": true,
      "createdBy": UserDetails,
      "updatedBy": UserDetails,
      "createdAt": "xyz789",
      "updatedAt": "xyz789"
    }
  }
}

getInfra

Description

Returns infra with a particular infraID in the project

Response

Returns an Infra!

Arguments
Name Description
identifiers - IdentifiersRequest!
infraID - String!

Example

Query
query GetInfra(
  $identifiers: IdentifiersRequest!,
  $infraID: String!
) {
  getInfra(
    identifiers: $identifiers,
    infraID: $infraID
  ) {
    infraID
    name
    description
    tags
    environmentID
    platformName
    isActive
    isInfraConfirmed
    isRemoved
    updatedAt
    createdAt
    noOfSchedules
    noOfWorkflows
    token
    infraNamespace
    serviceAccount
    infraScope
    infraNsExists
    infraSaExists
    installationType
    k8sConnectorID
    lastWorkflowTimestamp
    startTime
    version
    createdBy {
      userID
      username
      email
    }
    updatedBy {
      userID
      username
      email
    }
    lastHeartbeat
    infraType
    updateStatus
    isSecretEnabled
    runAsUser
    runAsGroup
    upgrade {
      status
      isAutoUpgradeEnabled
    }
  }
}
Variables
{
  "identifiers": IdentifiersRequest,
  "infraID": "abc123"
}
Response
{
  "data": {
    "getInfra": {
      "infraID": "4",
      "name": "abc123",
      "description": "abc123",
      "tags": ["abc123"],
      "environmentID": "abc123",
      "platformName": "abc123",
      "isActive": true,
      "isInfraConfirmed": true,
      "isRemoved": true,
      "updatedAt": "abc123",
      "createdAt": "xyz789",
      "noOfSchedules": 123,
      "noOfWorkflows": 987,
      "token": "abc123",
      "infraNamespace": "xyz789",
      "serviceAccount": "xyz789",
      "infraScope": "namespace",
      "infraNsExists": true,
      "infraSaExists": true,
      "installationType": "CONNECTOR",
      "k8sConnectorID": "xyz789",
      "lastWorkflowTimestamp": "abc123",
      "startTime": "abc123",
      "version": "xyz789",
      "createdBy": UserDetails,
      "updatedBy": UserDetails,
      "lastHeartbeat": "xyz789",
      "infraType": "Kubernetes",
      "updateStatus": "AVAILABLE",
      "isSecretEnabled": false,
      "runAsUser": 123,
      "runAsGroup": 987,
      "upgrade": Upgrade
    }
  }
}

getInfraManifest

Description

Returns the manifest for a given infraID

Response

Returns a String!

Arguments
Name Description
infraID - String!
identifiers - IdentifiersRequest!

Example

Query
query GetInfraManifest(
  $infraID: String!,
  $identifiers: IdentifiersRequest!
) {
  getInfraManifest(
    infraID: $infraID,
    identifiers: $identifiers
  )
}
Variables
{
  "infraID": "xyz789",
  "identifiers": IdentifiersRequest
}
Response
{"data": {"getInfraManifest": {}}}

getInfraStats

Description

Query to get experiment stats

Response

Returns a GetInfraStatsResponse!

Arguments
Name Description
identifiers - IdentifiersRequest!

Example

Query
query GetInfraStats($identifiers: IdentifiersRequest!) {
  getInfraStats(identifiers: $identifiers) {
    totalInfrastructures
    totalActiveInfrastructure
    totalInactiveInfrastructures
    totalConfirmedInfrastructure
    totalNonConfirmedInfrastructures
  }
}
Variables
{"identifiers": IdentifiersRequest}
Response
{
  "data": {
    "getInfraStats": {
      "totalInfrastructures": 987,
      "totalActiveInfrastructure": 987,
      "totalInactiveInfrastructures": 987,
      "totalConfirmedInfrastructure": 123,
      "totalNonConfirmedInfrastructures": 987
    }
  }
}

getLinuxInfraDetails

Description

Returns infra details based on identifiers

Response

Returns a LinuxInfra!

Arguments
Name Description
infraID - String!
identifiers - IdentifiersRequest!

Example

Query
query GetLinuxInfraDetails(
  $infraID: String!,
  $identifiers: IdentifiersRequest!
) {
  getLinuxInfraDetails(
    infraID: $infraID,
    identifiers: $identifiers
  ) {
    infraID
    name
    description
    tags
    environmentID
    isActive
    isInfraConfirmed
    isRemoved
    updatedAt
    createdAt
    noOfSchedules
    noOfWorkflows
    lastWorkflowTimestamp
    startTime
    version
    createdBy {
      userID
      username
      email
    }
    updatedBy {
      userID
      username
      email
    }
    lastHeartbeat
    hostname
  }
}
Variables
{
  "infraID": "abc123",
  "identifiers": IdentifiersRequest
}
Response
{
  "data": {
    "getLinuxInfraDetails": {
      "infraID": 4,
      "name": "xyz789",
      "description": "xyz789",
      "tags": ["xyz789"],
      "environmentID": "abc123",
      "isActive": false,
      "isInfraConfirmed": true,
      "isRemoved": false,
      "updatedAt": "abc123",
      "createdAt": "abc123",
      "noOfSchedules": 123,
      "noOfWorkflows": 123,
      "lastWorkflowTimestamp": "xyz789",
      "startTime": "abc123",
      "version": "abc123",
      "createdBy": UserDetails,
      "updatedBy": UserDetails,
      "lastHeartbeat": "abc123",
      "hostname": "xyz789"
    }
  }
}

getPredefinedWorkflow

Description

Returns predefined experiment details of selected experiments

Response

Returns [PredefinedWorkflowList!]!

Arguments
Name Description
hubID - String!
experimentName - [String!]!
identifiers - IdentifiersRequest!

Example

Query
query GetPredefinedWorkflow(
  $hubID: String!,
  $experimentName: [String!]!,
  $identifiers: IdentifiersRequest!
) {
  getPredefinedWorkflow(
    hubID: $hubID,
    experimentName: $experimentName,
    identifiers: $identifiers
  ) {
    workflowName
    workflowCSV
    workflowManifest
  }
}
Variables
{
  "hubID": "xyz789",
  "experimentName": ["abc123"],
  "identifiers": IdentifiersRequest
}
Response
{
  "data": {
    "getPredefinedWorkflow": [
      {
        "workflowName": "xyz789",
        "workflowCSV": "abc123",
        "workflowManifest": "abc123"
      }
    ]
  }
}

getProbe

Description

Returns a single Probe based on ProbeName and various filter parameters

Response

Returns a Probe!

Arguments
Name Description
identifiers - IdentifiersRequest!
probeName - ID!

Example

Query
query GetProbe(
  $identifiers: IdentifiersRequest!,
  $probeName: ID!
) {
  getProbe(
    identifiers: $identifiers,
    probeName: $probeName
  ) {
    identifiers {
      orgIdentifier
      accountIdentifier
      projectIdentifier
    }
    name
    description
    tags
    type
    infrastructureType
    kubernetesHTTPProperties {
      probeTimeout
      interval
      retry
      attempt
      probePollingInterval
      initialDelay
      evaluationTimeout
      stopOnFailure
      url
      method {
        get {
          criteria
          responseCode
        }
        post {
          contentType
          body
          bodyPath
          criteria
          responseCode
        }
      }
      insecureSkipVerify
    }
    linuxHTTPProperties {
      probeTimeout
      interval
      attempt
      probePollingInterval
      initialDelay
      stopOnFailure
      url
      method {
        get {
          criteria
          responseCode
        }
        post {
          contentType
          body
          bodyPath
          criteria
          responseCode
        }
      }
      insecureSkipVerify
    }
    kubernetesCMDProperties {
      probeTimeout
      interval
      retry
      attempt
      probePollingInterval
      initialDelay
      evaluationTimeout
      stopOnFailure
      command
      comparator {
        type
        value
        criteria
      }
      source
    }
    linuxCMDProperties {
      probeTimeout
      interval
      attempt
      probePollingInterval
      initialDelay
      stopOnFailure
      command
      comparator {
        type
        value
        criteria
      }
      source
    }
    k8sProperties {
      probeTimeout
      interval
      retry
      attempt
      probePollingInterval
      initialDelay
      evaluationTimeout
      stopOnFailure
      group
      version
      resource
      namespace
      fieldSelector
      labelSelector
      operation
    }
    promProperties {
      probeTimeout
      interval
      retry
      attempt
      probePollingInterval
      initialDelay
      evaluationTimeout
      stopOnFailure
      endpoint
      query
      queryPath
      comparator {
        type
        value
        criteria
      }
    }
    sloProperties {
      probeTimeout
      interval
      retry
      attempt
      probePollingInterval
      initialDelay
      evaluationTimeout
      stopOnFailure
      platformEndpoint
      sloIdentifier
      insecureSkipVerify
      evaluationWindow {
        evaluationStartTime
        evaluationEndTime
      }
      sloSourceMetadata {
        apiTokenSecret
        scope {
          orgIdentifier
          accountIdentifier
          projectIdentifier
        }
      }
      comparator {
        type
        value
        criteria
      }
    }
    recentExecutions {
      faultName
      status {
        verdict
        description
      }
      executedByExperiment {
        experimentID
        experimentName
        updatedAt
        updatedBy {
          userID
          username
          email
        }
      }
    }
    referencedBy
    updatedAt
    createdAt
    updatedBy {
      userID
      username
      email
    }
    createdBy {
      userID
      username
      email
    }
  }
}
Variables
{"identifiers": IdentifiersRequest, "probeName": 4}
Response
{
  "data": {
    "getProbe": {
      "identifiers": Identifiers,
      "name": "abc123",
      "description": "xyz789",
      "tags": ["abc123"],
      "type": "httpProbe",
      "infrastructureType": "Kubernetes",
      "kubernetesHTTPProperties": KubernetesHTTPProbe,
      "linuxHTTPProperties": LinuxHTTPProbe,
      "kubernetesCMDProperties": KubernetesCMDProbe,
      "linuxCMDProperties": LinuxCMDProbe,
      "k8sProperties": K8SProbe,
      "promProperties": PROMProbe,
      "sloProperties": SLOProbe,
      "recentExecutions": [ProbeRecentExecutions],
      "referencedBy": 987,
      "updatedAt": "abc123",
      "createdAt": "abc123",
      "updatedBy": UserDetails,
      "createdBy": UserDetails
    }
  }
}

getProbeReference

Description

Returns all the reference of the Probe based on ProbeName

Response

Returns a GetProbeReferenceResponse!

Arguments
Name Description
identifiers - IdentifiersRequest!
probeName - ID!

Example

Query
query GetProbeReference(
  $identifiers: IdentifiersRequest!,
  $probeName: ID!
) {
  getProbeReference(
    identifiers: $identifiers,
    probeName: $probeName
  ) {
    identifiers {
      orgIdentifier
      accountIdentifier
      projectIdentifier
    }
    name
    totalRuns
    recentExecutions {
      faultName
      mode
      executionHistory {
        status {
          verdict
          description
        }
        executedByExperiment {
          experimentID
          experimentName
          updatedAt
          updatedBy {
            userID
            username
            email
          }
        }
      }
    }
  }
}
Variables
{"identifiers": IdentifiersRequest, "probeName": 4}
Response
{
  "data": {
    "getProbeReference": {
      "identifiers": Identifiers,
      "name": "xyz789",
      "totalRuns": 987,
      "recentExecutions": [RecentExecutions]
    }
  }
}

getProbeYAML

Description

Returns the Probe YAML based on ProbeName which can be used in ChaosEngine manifest

Response

Returns a String!

Arguments
Name Description
identifiers - IdentifiersRequest!
request - GetProbeYAMLRequest!

Example

Query
query GetProbeYAML(
  $identifiers: IdentifiersRequest!,
  $request: GetProbeYAMLRequest!
) {
  getProbeYAML(
    identifiers: $identifiers,
    request: $request
  )
}
Variables
{
  "identifiers": IdentifiersRequest,
  "request": GetProbeYAMLRequest
}
Response
{"data": {"getProbeYAML": {}}}

getProbesInExperimentRun

Description

Returns all the Probes attached to the requested Experiment Run

Arguments
Name Description
identifiers - IdentifiersRequest!
experimentRunID - String!
faultName - String!

Example

Query
query GetProbesInExperimentRun(
  $identifiers: IdentifiersRequest!,
  $experimentRunID: String!,
  $faultName: String!
) {
  getProbesInExperimentRun(
    identifiers: $identifiers,
    experimentRunID: $experimentRunID,
    faultName: $faultName
  ) {
    probe {
      identifiers {
        orgIdentifier
        accountIdentifier
        projectIdentifier
      }
      name
      description
      tags
      type
      infrastructureType
      kubernetesHTTPProperties {
        probeTimeout
        interval
        retry
        attempt
        probePollingInterval
        initialDelay
        evaluationTimeout
        stopOnFailure
        url
        method {
          get {
            criteria
            responseCode
          }
          post {
            contentType
            body
            bodyPath
            criteria
            responseCode
          }
        }
        insecureSkipVerify
      }
      linuxHTTPProperties {
        probeTimeout
        interval
        attempt
        probePollingInterval
        initialDelay
        stopOnFailure
        url
        method {
          get {
            criteria
            responseCode
          }
          post {
            contentType
            body
            bodyPath
            criteria
            responseCode
          }
        }
        insecureSkipVerify
      }
      kubernetesCMDProperties {
        probeTimeout
        interval
        retry
        attempt
        probePollingInterval
        initialDelay
        evaluationTimeout
        stopOnFailure
        command
        comparator {
          type
          value
          criteria
        }
        source
      }
      linuxCMDProperties {
        probeTimeout
        interval
        attempt
        probePollingInterval
        initialDelay
        stopOnFailure
        command
        comparator {
          type
          value
          criteria
        }
        source
      }
      k8sProperties {
        probeTimeout
        interval
        retry
        attempt
        probePollingInterval
        initialDelay
        evaluationTimeout
        stopOnFailure
        group
        version
        resource
        namespace
        fieldSelector
        labelSelector
        operation
      }
      promProperties {
        probeTimeout
        interval
        retry
        attempt
        probePollingInterval
        initialDelay
        evaluationTimeout
        stopOnFailure
        endpoint
        query
        queryPath
        comparator {
          type
          value
          criteria
        }
      }
      sloProperties {
        probeTimeout
        interval
        retry
        attempt
        probePollingInterval
        initialDelay
        evaluationTimeout
        stopOnFailure
        platformEndpoint
        sloIdentifier
        insecureSkipVerify
        evaluationWindow {
          evaluationStartTime
          evaluationEndTime
        }
        sloSourceMetadata {
          apiTokenSecret
          scope {
            orgIdentifier
            accountIdentifier
            projectIdentifier
          }
        }
        comparator {
          type
          value
          criteria
        }
      }
      recentExecutions {
        faultName
        status {
          verdict
          description
        }
        executedByExperiment {
          experimentID
          experimentName
          updatedAt
          updatedBy {
            userID
            username
            email
          }
        }
      }
      referencedBy
      updatedAt
      createdAt
      updatedBy {
        userID
        username
        email
      }
      createdBy {
        userID
        username
        email
      }
    }
    mode
    status {
      verdict
      description
    }
  }
}
Variables
{
  "identifiers": IdentifiersRequest,
  "experimentRunID": "abc123",
  "faultName": "abc123"
}
Response
{
  "data": {
    "getProbesInExperimentRun": [
      {
        "probe": Probe,
        "mode": "SOT",
        "status": Status
      }
    ]
  }
}

getRule

Response

Returns a RuleResponse!

Arguments
Name Description
identifiers - IdentifiersRequest!
ruleId - String!

Example

Query
query GetRule(
  $identifiers: IdentifiersRequest!,
  $ruleId: String!
) {
  getRule(
    identifiers: $identifiers,
    ruleId: $ruleId
  ) {
    createdAt
    createdBy {
      userID
      username
      email
    }
    updatedAt
    updatedBy {
      userID
      username
      email
    }
    rule {
      description
      isEnabled
      name
      ruleId
      userGroupIds
      timeWindow {
        duration
        endTime
        startTime
        timeZone
        recurrence {
          type
          spec {
            until
            value
          }
        }
      }
      tags
      conditions {
        name
        description
        tags
        conditionId
        infraSpec {
          infraId
          infraType
          chaosServiceAccountSpecs {
            name
          }
          applicationSpecs {
            label
            namespace
          }
        }
        faultSpecs {
          faultType
          name
        }
        rules {
          ruleId
          name
        }
      }
    }
    identifiers {
      orgIdentifier
      accountIdentifier
      projectIdentifier
    }
  }
}
Variables
{
  "identifiers": IdentifiersRequest,
  "ruleId": "abc123"
}
Response
{
  "data": {
    "getRule": {
      "createdAt": 987,
      "createdBy": UserDetails,
      "updatedAt": 123,
      "updatedBy": UserDetails,
      "rule": Rule,
      "identifiers": Identifiers
    }
  }
}

getVersionDetails

Description

Query to get the latest version of infra available

Response

Returns an InfraVersionDetails!

Arguments
Name Description
identifiers - IdentifiersRequest!

Example

Query
query GetVersionDetails($identifiers: IdentifiersRequest!) {
  getVersionDetails(identifiers: $identifiers) {
    latestVersion
    compatibleVersions
  }
}
Variables
{"identifiers": IdentifiersRequest}
Response
{
  "data": {
    "getVersionDetails": {
      "latestVersion": "abc123",
      "compatibleVersions": ["xyz789"]
    }
  }
}

listChaosFaults

Description

List the Faults from a ChaosHub

Response

Returns [Chart!]!

Arguments
Name Description
hubID - String!
executionPlane - ExecutionPlane
identifiers - IdentifiersRequest!

Example

Query
query ListChaosFaults(
  $hubID: String!,
  $executionPlane: ExecutionPlane,
  $identifiers: IdentifiersRequest!
) {
  listChaosFaults(
    hubID: $hubID,
    executionPlane: $executionPlane,
    identifiers: $identifiers
  ) {
    apiVersion
    kind
    metadata {
      name
      version
      annotations {
        categories
        vendor
        createdAt
        repository
        support
        chartDescription
      }
    }
    spec {
      displayName
      categoryDescription
      keywords
      maturity
      maintainers {
        name
        email
      }
      minKubeVersion
      provider {
        name
      }
      links {
        name
        url
      }
      faults {
        name
        displayName
        description
        plan
      }
      experiments
      chaosExpCRDLink
      platforms
      chaosType
    }
    packageInfo {
      packageName
      experiments {
        name
        CSV
        desc
      }
    }
  }
}
Variables
{
  "hubID": "xyz789",
  "executionPlane": "LINUX",
  "identifiers": IdentifiersRequest
}
Response
{
  "data": {
    "listChaosFaults": [
      {
        "apiVersion": "xyz789",
        "kind": "xyz789",
        "metadata": Metadata,
        "spec": Spec,
        "packageInfo": PackageInformation
      }
    ]
  }
}

listChaosHub

Description

Get the status of all the connected ChaosHub

Response

Returns [ChaosHubStatus]!

Arguments
Name Description
identifiers - IdentifiersRequest!
request - ListChaosHubRequest

Example

Query
query ListChaosHub(
  $identifiers: IdentifiersRequest!,
  $request: ListChaosHubRequest
) {
  listChaosHub(
    identifiers: $identifiers,
    request: $request
  ) {
    id
    repoName
    repoURL
    repoBranch
    connectorId
    connectorScope
    AuthType
    isAvailable
    totalExp
    totalWorkflows
    name
    lastSyncedAt
    isDefault
    tags
    createdBy {
      userID
      username
      email
    }
    updatedBy {
      userID
      username
      email
    }
    createdAt
    updatedAt
    description
  }
}
Variables
{
  "identifiers": IdentifiersRequest,
  "request": ListChaosHubRequest
}
Response
{
  "data": {
    "listChaosHub": [
      {
        "id": "4",
        "repoName": "xyz789",
        "repoURL": "abc123",
        "repoBranch": "abc123",
        "connectorId": "xyz789",
        "connectorScope": "ACCOUNT",
        "AuthType": "Ssh",
        "isAvailable": true,
        "totalExp": "xyz789",
        "totalWorkflows": "xyz789",
        "name": "abc123",
        "lastSyncedAt": "xyz789",
        "isDefault": false,
        "tags": ["abc123"],
        "createdBy": UserDetails,
        "updatedBy": UserDetails,
        "createdAt": "abc123",
        "updatedAt": "xyz789",
        "description": "abc123"
      }
    ]
  }
}

listCondition

Response

Returns [ConditionResponse]!

Arguments
Name Description
identifiers - IdentifiersRequest!

Example

Query
query ListCondition($identifiers: IdentifiersRequest!) {
  listCondition(identifiers: $identifiers) {
    updatedAt
    createdAt
    updatedBy {
      userID
      username
      email
    }
    createdBy {
      userID
      username
      email
    }
    identifiers {
      orgIdentifier
      accountIdentifier
      projectIdentifier
    }
    condition {
      name
      description
      tags
      conditionId
      infraSpec {
        infraId
        infraType
        chaosServiceAccountSpecs {
          name
        }
        applicationSpecs {
          label
          namespace
        }
      }
      faultSpecs {
        faultType
        name
      }
      rules {
        ruleId
        name
      }
    }
  }
}
Variables
{"identifiers": IdentifiersRequest}
Response
{
  "data": {
    "listCondition": [
      {
        "updatedAt": 987,
        "createdAt": 123,
        "updatedBy": UserDetails,
        "createdBy": UserDetails,
        "identifiers": Identifiers,
        "condition": Condition
      }
    ]
  }
}

listGameDay

Response

Returns a ListGamedayResponse!

Arguments
Name Description
identifiers - IdentifiersRequest!
request - ListGameDayRequest

Example

Query
query ListGameDay(
  $identifiers: IdentifiersRequest!,
  $request: ListGameDayRequest
) {
  listGameDay(
    identifiers: $identifiers,
    request: $request
  ) {
    totalNoOfGamedays
    gamedays {
      gameDayID
      identifiers {
        orgIdentifier
        accountIdentifier
        projectIdentifier
      }
      name
      tags
      experiments {
        experimentID
        experimentTemplateName
        chaosInfraID
        hubID
      }
      objective
      description
      createdBy {
        userID
        username
        email
      }
      updatedBy {
        userID
        username
        email
      }
      createdAt
      updatedAt
      summary {
        notes
        qna {
          questionType
          optionsMCQ
          question
          answer
        }
        actionItem {
          item
          isDone
        }
      }
      isRemoved
    }
  }
}
Variables
{
  "identifiers": IdentifiersRequest,
  "request": ListGameDayRequest
}
Response
{
  "data": {
    "listGameDay": {
      "totalNoOfGamedays": 123,
      "gamedays": [GameDayResponse]
    }
  }
}

listGameDayRuns

Response

Returns [GameDayRunResponse]!

Arguments
Name Description
identifiers - IdentifiersRequest!
request - ListGameDayRunsRequest

Example

Query
query ListGameDayRuns(
  $identifiers: IdentifiersRequest!,
  $request: ListGameDayRunsRequest
) {
  listGameDayRuns(
    identifiers: $identifiers,
    request: $request
  ) {
    gameDayRunID
    name
    gameDayID
    identifiers {
      orgIdentifier
      accountIdentifier
      projectIdentifier
    }
    experiments {
      experimentID
      experimentTemplateName
      chaosInfraID
      hubID
      experimentRunIDs
      experimentNotes
    }
    startTime
    endTime
    notes
    summary {
      notes
      qna {
        questionType
        optionsMCQ
        question
        answer
      }
      actionItem {
        item
        isDone
      }
    }
    createdBy {
      userID
      username
      email
    }
    updatedBy {
      userID
      username
      email
    }
    updatedAt
    createdAt
    completed
  }
}
Variables
{
  "identifiers": IdentifiersRequest,
  "request": ListGameDayRunsRequest
}
Response
{
  "data": {
    "listGameDayRuns": [
      {
        "gameDayRunID": "xyz789",
        "name": "abc123",
        "gameDayID": "abc123",
        "identifiers": Identifiers,
        "experiments": [GameDayRunExperiments],
        "startTime": "abc123",
        "endTime": "xyz789",
        "notes": "xyz789",
        "summary": GameDaySummary,
        "createdBy": UserDetails,
        "updatedBy": UserDetails,
        "updatedAt": "xyz789",
        "createdAt": "abc123",
        "completed": true
      }
    ]
  }
}

listInfras

Description

Returns infras with a particular infra type in the project

Response

Returns a ListInfraResponse!

Arguments
Name Description
identifiers - IdentifiersRequest!
request - ListInfraRequest

Example

Query
query ListInfras(
  $identifiers: IdentifiersRequest!,
  $request: ListInfraRequest
) {
  listInfras(
    identifiers: $identifiers,
    request: $request
  ) {
    totalNoOfInfras
    infras {
      infraID
      name
      description
      tags
      environmentID
      platformName
      isActive
      isInfraConfirmed
      isRemoved
      updatedAt
      createdAt
      noOfSchedules
      noOfWorkflows
      token
      infraNamespace
      serviceAccount
      infraScope
      infraNsExists
      infraSaExists
      installationType
      k8sConnectorID
      lastWorkflowTimestamp
      startTime
      version
      createdBy {
        userID
        username
        email
      }
      updatedBy {
        userID
        username
        email
      }
      lastHeartbeat
      infraType
      updateStatus
      isSecretEnabled
      runAsUser
      runAsGroup
      upgrade {
        status
        isAutoUpgradeEnabled
      }
    }
  }
}
Variables
{
  "identifiers": IdentifiersRequest,
  "request": ListInfraRequest
}
Response
{
  "data": {
    "listInfras": {
      "totalNoOfInfras": 123,
      "infras": [Infra]
    }
  }
}

listLinuxInfras

Description

Returns infras with a particular infra type in the project

Response

Returns a ListLinuxInfraResponse!

Arguments
Name Description
identifiers - IdentifiersRequest!
request - ListLinuxInfraRequest

Example

Query
query ListLinuxInfras(
  $identifiers: IdentifiersRequest!,
  $request: ListLinuxInfraRequest
) {
  listLinuxInfras(
    identifiers: $identifiers,
    request: $request
  ) {
    totalNoOfInfras
    infras {
      infraID
      name
      description
      tags
      environmentID
      isActive
      isInfraConfirmed
      isRemoved
      updatedAt
      createdAt
      noOfSchedules
      noOfWorkflows
      lastWorkflowTimestamp
      startTime
      version
      createdBy {
        userID
        username
        email
      }
      updatedBy {
        userID
        username
        email
      }
      lastHeartbeat
      hostname
    }
  }
}
Variables
{
  "identifiers": IdentifiersRequest,
  "request": ListLinuxInfraRequest
}
Response
{
  "data": {
    "listLinuxInfras": {
      "totalNoOfInfras": 123,
      "infras": [LinuxInfra]
    }
  }
}

listPredefinedWorkflow

Description

Returns the list of predefined workflows in a project

Response

Returns [PredefinedWorkflowList!]!

Arguments
Name Description
hubID - String!
identifiers - IdentifiersRequest!

Example

Query
query ListPredefinedWorkflow(
  $hubID: String!,
  $identifiers: IdentifiersRequest!
) {
  listPredefinedWorkflow(
    hubID: $hubID,
    identifiers: $identifiers
  ) {
    workflowName
    workflowCSV
    workflowManifest
  }
}
Variables
{
  "hubID": "xyz789",
  "identifiers": IdentifiersRequest
}
Response
{
  "data": {
    "listPredefinedWorkflow": [
      {
        "workflowName": "abc123",
        "workflowCSV": "abc123",
        "workflowManifest": "xyz789"
      }
    ]
  }
}

listProbes

Description

Returns the list of Probes based on various filter parameters

Response

Returns [Probe]!

Arguments
Name Description
identifiers - IdentifiersRequest!
infrastructureType - InfrastructureType
probeNames - [ID!]
filter - ProbeFilterInput

Example

Query
query ListProbes(
  $identifiers: IdentifiersRequest!,
  $infrastructureType: InfrastructureType,
  $probeNames: [ID!],
  $filter: ProbeFilterInput
) {
  listProbes(
    identifiers: $identifiers,
    infrastructureType: $infrastructureType,
    probeNames: $probeNames,
    filter: $filter
  ) {
    identifiers {
      orgIdentifier
      accountIdentifier
      projectIdentifier
    }
    name
    description
    tags
    type
    infrastructureType
    kubernetesHTTPProperties {
      probeTimeout
      interval
      retry
      attempt
      probePollingInterval
      initialDelay
      evaluationTimeout
      stopOnFailure
      url
      method {
        get {
          criteria
          responseCode
        }
        post {
          contentType
          body
          bodyPath
          criteria
          responseCode
        }
      }
      insecureSkipVerify
    }
    linuxHTTPProperties {
      probeTimeout
      interval
      attempt
      probePollingInterval
      initialDelay
      stopOnFailure
      url
      method {
        get {
          criteria
          responseCode
        }
        post {
          contentType
          body
          bodyPath
          criteria
          responseCode
        }
      }
      insecureSkipVerify
    }
    kubernetesCMDProperties {
      probeTimeout
      interval
      retry
      attempt
      probePollingInterval
      initialDelay
      evaluationTimeout
      stopOnFailure
      command
      comparator {
        type
        value
        criteria
      }
      source
    }
    linuxCMDProperties {
      probeTimeout
      interval
      attempt
      probePollingInterval
      initialDelay
      stopOnFailure
      command
      comparator {
        type
        value
        criteria
      }
      source
    }
    k8sProperties {
      probeTimeout
      interval
      retry
      attempt
      probePollingInterval
      initialDelay
      evaluationTimeout
      stopOnFailure
      group
      version
      resource
      namespace
      fieldSelector
      labelSelector
      operation
    }
    promProperties {
      probeTimeout
      interval
      retry
      attempt
      probePollingInterval
      initialDelay
      evaluationTimeout
      stopOnFailure
      endpoint
      query
      queryPath
      comparator {
        type
        value
        criteria
      }
    }
    sloProperties {
      probeTimeout
      interval
      retry
      attempt
      probePollingInterval
      initialDelay
      evaluationTimeout
      stopOnFailure
      platformEndpoint
      sloIdentifier
      insecureSkipVerify
      evaluationWindow {
        evaluationStartTime
        evaluationEndTime
      }
      sloSourceMetadata {
        apiTokenSecret
        scope {
          orgIdentifier
          accountIdentifier
          projectIdentifier
        }
      }
      comparator {
        type
        value
        criteria
      }
    }
    recentExecutions {
      faultName
      status {
        verdict
        description
      }
      executedByExperiment {
        experimentID
        experimentName
        updatedAt
        updatedBy {
          userID
          username
          email
        }
      }
    }
    referencedBy
    updatedAt
    createdAt
    updatedBy {
      userID
      username
      email
    }
    createdBy {
      userID
      username
      email
    }
  }
}
Variables
{
  "identifiers": IdentifiersRequest,
  "infrastructureType": "Kubernetes",
  "probeNames": ["4"],
  "filter": ProbeFilterInput
}
Response
{
  "data": {
    "listProbes": [
      {
        "identifiers": Identifiers,
        "name": "xyz789",
        "description": "abc123",
        "tags": ["abc123"],
        "type": "httpProbe",
        "infrastructureType": "Kubernetes",
        "kubernetesHTTPProperties": KubernetesHTTPProbe,
        "linuxHTTPProperties": LinuxHTTPProbe,
        "kubernetesCMDProperties": KubernetesCMDProbe,
        "linuxCMDProperties": LinuxCMDProbe,
        "k8sProperties": K8SProbe,
        "promProperties": PROMProbe,
        "sloProperties": SLOProbe,
        "recentExecutions": [ProbeRecentExecutions],
        "referencedBy": 987,
        "updatedAt": "abc123",
        "createdAt": "xyz789",
        "updatedBy": UserDetails,
        "createdBy": UserDetails
      }
    ]
  }
}

listRule

Response

Returns [RuleResponse]!

Arguments
Name Description
identifiers - IdentifiersRequest!

Example

Query
query ListRule($identifiers: IdentifiersRequest!) {
  listRule(identifiers: $identifiers) {
    createdAt
    createdBy {
      userID
      username
      email
    }
    updatedAt
    updatedBy {
      userID
      username
      email
    }
    rule {
      description
      isEnabled
      name
      ruleId
      userGroupIds
      timeWindow {
        duration
        endTime
        startTime
        timeZone
        recurrence {
          type
          spec {
            until
            value
          }
        }
      }
      tags
      conditions {
        name
        description
        tags
        conditionId
        infraSpec {
          infraId
          infraType
          chaosServiceAccountSpecs {
            name
          }
          applicationSpecs {
            label
            namespace
          }
        }
        faultSpecs {
          faultType
          name
        }
        rules {
          ruleId
          name
        }
      }
    }
    identifiers {
      orgIdentifier
      accountIdentifier
      projectIdentifier
    }
  }
}
Variables
{"identifiers": IdentifiersRequest}
Response
{
  "data": {
    "listRule": [
      {
        "createdAt": 987,
        "createdBy": UserDetails,
        "updatedAt": 987,
        "updatedBy": UserDetails,
        "rule": Rule,
        "identifiers": Identifiers
      }
    ]
  }
}

listWorkflow

Description

Returns the list of workflows based on various filter parameters

Response

Returns a ListWorkflowResponse!

Arguments
Name Description
identifiers - IdentifiersRequest!
request - ListWorkflowRequest!

Example

Query
query ListWorkflow(
  $identifiers: IdentifiersRequest!,
  $request: ListWorkflowRequest!
) {
  listWorkflow(
    identifiers: $identifiers,
    request: $request
  ) {
    totalNoOfWorkflows
    workflows {
      identifiers {
        orgIdentifier
        accountIdentifier
        projectIdentifier
      }
      workflowID
      workflowType
      workflowManifest
      cronSyntax
      name
      description
      weightages {
        experimentName
        weightage
      }
      isCustomWorkflow
      updatedAt
      createdAt
      infra {
        infraID
        name
        description
        tags
        environmentID
        platformName
        isActive
        isInfraConfirmed
        isRemoved
        updatedAt
        createdAt
        noOfSchedules
        noOfWorkflows
        token
        infraNamespace
        serviceAccount
        infraScope
        infraNsExists
        infraSaExists
        installationType
        k8sConnectorID
        lastWorkflowTimestamp
        startTime
        version
        createdBy {
          userID
          username
          email
        }
        updatedBy {
          userID
          username
          email
        }
        lastHeartbeat
        infraType
        updateStatus
        isSecretEnabled
        runAsUser
        runAsGroup
        upgrade {
          status
          isAutoUpgradeEnabled
        }
      }
      isRemoved
      tags
      createdBy {
        userID
        username
        email
      }
      recentWorkflowRunDetails {
        workflowRunID
        notifyID
        phase
        resiliencyScore
        updatedAt
        createdAt
        createdBy {
          userID
          username
          email
        }
        updatedBy {
          userID
          username
          email
        }
        runSequence
      }
      eventsMetadata {
        faultName
        serviceIdentifier
        environmentIdentifier
      }
      updatedBy {
        userID
        username
        email
      }
    }
  }
}
Variables
{
  "identifiers": IdentifiersRequest,
  "request": ListWorkflowRequest
}
Response
{
  "data": {
    "listWorkflow": {
      "totalNoOfWorkflows": 987,
      "workflows": [Workflow]
    }
  }
}

listWorkflowRun

Description

Returns the list of experiment run based on various filter parameters

Response

Returns a ListWorkflowRunResponse!

Arguments
Name Description
identifiers - IdentifiersRequest!
request - ListWorkflowRunRequest!

Example

Query
query ListWorkflowRun(
  $identifiers: IdentifiersRequest!,
  $request: ListWorkflowRunRequest!
) {
  listWorkflowRun(
    identifiers: $identifiers,
    request: $request
  ) {
    totalNoOfWorkflowRuns
    workflowRuns {
      identifiers {
        orgIdentifier
        accountIdentifier
        projectIdentifier
      }
      workflowRunID
      workflowType
      workflowID
      weightages {
        experimentName
        weightage
      }
      updatedAt
      createdAt
      infra {
        infraID
        name
        description
        tags
        environmentID
        platformName
        isActive
        isInfraConfirmed
        isRemoved
        updatedAt
        createdAt
        noOfSchedules
        noOfWorkflows
        token
        infraNamespace
        serviceAccount
        infraScope
        infraNsExists
        infraSaExists
        installationType
        k8sConnectorID
        lastWorkflowTimestamp
        startTime
        version
        createdBy {
          userID
          username
          email
        }
        updatedBy {
          userID
          username
          email
        }
        lastHeartbeat
        infraType
        updateStatus
        isSecretEnabled
        runAsUser
        runAsGroup
        upgrade {
          status
          isAutoUpgradeEnabled
        }
      }
      workflowName
      workflowManifest
      probe {
        faultName
        probeName
      }
      phase
      resiliencyScore
      experimentsPassed
      experimentsFailed
      experimentsAwaited
      experimentsStopped
      experimentsNa
      totalExperiments
      executionData
      isRemoved
      updatedBy {
        userID
        username
        email
      }
      createdBy {
        userID
        username
        email
      }
      notifyID
      errorResponse
      securityGovernance {
        name
        type
        startedAt
        finishedAt
        message
        phase
        securityGovernanceNodeData {
          passedRules {
            ruleId
            ruleName
            message
            description
            userGroupIds
            timeWindow {
              ...TimeWindowFragment
            }
            conditions {
              ...ConditionDetailsFragment
            }
          }
          failedRules {
            ruleId
            ruleName
            message
            description
            userGroupIds
            timeWindow {
              ...TimeWindowFragment
            }
            conditions {
              ...ConditionDetailsFragment
            }
          }
          skippedRules {
            ruleId
            ruleName
            message
            description
            userGroupIds
            timeWindow {
              ...TimeWindowFragment
            }
            conditions {
              ...ConditionDetailsFragment
            }
          }
        }
      }
      runSequence
    }
  }
}
Variables
{
  "identifiers": IdentifiersRequest,
  "request": ListWorkflowRunRequest
}
Response
{
  "data": {
    "listWorkflowRun": {
      "totalNoOfWorkflowRuns": 123,
      "workflowRuns": [WorkflowRun]
    }
  }
}

validateUniqueProbe

Description

Validates if a probe is already present, returns true if unique

Response

Returns a Boolean!

Arguments
Name Description
identifiers - IdentifiersRequest!
probeName - ID!

Example

Query
query ValidateUniqueProbe(
  $identifiers: IdentifiersRequest!,
  $probeName: ID!
) {
  validateUniqueProbe(
    identifiers: $identifiers,
    probeName: $probeName
  )
}
Variables
{
  "identifiers": IdentifiersRequest,
  "probeName": "4"
}
Response
{"data": {"validateUniqueProbe": {}}}

Mutations

addChaosHub

Description

Add a ChaosHub (includes the git clone operation)

Response

Returns a ChaosHub!

Arguments
Name Description
request - ChaosHubRequest!
identifiers - IdentifiersRequest!

Example

Query
mutation AddChaosHub(
  $request: ChaosHubRequest!,
  $identifiers: IdentifiersRequest!
) {
  addChaosHub(
    request: $request,
    identifiers: $identifiers
  ) {
    id
    identifiers {
      orgIdentifier
      accountIdentifier
      projectIdentifier
    }
    repoName
    repoURL
    repoBranch
    AuthType
    connectorId
    connectorScope
    name
    createdAt
    updatedAt
    lastSyncedAt
    isDefault
    tags
    createdBy {
      userID
      username
      email
    }
    updatedBy {
      userID
      username
      email
    }
    description
  }
}
Variables
{
  "request": ChaosHubRequest,
  "identifiers": IdentifiersRequest
}
Response
{
  "data": {
    "addChaosHub": {
      "id": 4,
      "identifiers": Identifiers,
      "repoName": "xyz789",
      "repoURL": "xyz789",
      "repoBranch": "xyz789",
      "AuthType": "Ssh",
      "connectorId": "abc123",
      "connectorScope": "ACCOUNT",
      "name": "abc123",
      "createdAt": "abc123",
      "updatedAt": "abc123",
      "lastSyncedAt": "xyz789",
      "isDefault": true,
      "tags": ["xyz789"],
      "createdBy": UserDetails,
      "updatedBy": UserDetails,
      "description": "abc123"
    }
  }
}

addCondition

Response

Returns a StandardResponse!

Arguments
Name Description
identifiers - IdentifiersRequest!
request - ConditionRequest!

Example

Query
mutation AddCondition(
  $identifiers: IdentifiersRequest!,
  $request: ConditionRequest!
) {
  addCondition(
    identifiers: $identifiers,
    request: $request
  ) {
    message
    correlationId
    response
  }
}
Variables
{
  "identifiers": IdentifiersRequest,
  "request": ConditionRequest
}
Response
{
  "data": {
    "addCondition": {
      "message": "abc123",
      "correlationId": "xyz789",
      "response": {}
    }
  }
}

addProbe

Description

Creates a new Probe

Response

Returns a Probe!

Arguments
Name Description
request - ProbeRequest!
identifiers - IdentifiersRequest!

Example

Query
mutation AddProbe(
  $request: ProbeRequest!,
  $identifiers: IdentifiersRequest!
) {
  addProbe(
    request: $request,
    identifiers: $identifiers
  ) {
    identifiers {
      orgIdentifier
      accountIdentifier
      projectIdentifier
    }
    name
    description
    tags
    type
    infrastructureType
    kubernetesHTTPProperties {
      probeTimeout
      interval
      retry
      attempt
      probePollingInterval
      initialDelay
      evaluationTimeout
      stopOnFailure
      url
      method {
        get {
          criteria
          responseCode
        }
        post {
          contentType
          body
          bodyPath
          criteria
          responseCode
        }
      }
      insecureSkipVerify
    }
    linuxHTTPProperties {
      probeTimeout
      interval
      attempt
      probePollingInterval
      initialDelay
      stopOnFailure
      url
      method {
        get {
          criteria
          responseCode
        }
        post {
          contentType
          body
          bodyPath
          criteria
          responseCode
        }
      }
      insecureSkipVerify
    }
    kubernetesCMDProperties {
      probeTimeout
      interval
      retry
      attempt
      probePollingInterval
      initialDelay
      evaluationTimeout
      stopOnFailure
      command
      comparator {
        type
        value
        criteria
      }
      source
    }
    linuxCMDProperties {
      probeTimeout
      interval
      attempt
      probePollingInterval
      initialDelay
      stopOnFailure
      command
      comparator {
        type
        value
        criteria
      }
      source
    }
    k8sProperties {
      probeTimeout
      interval
      retry
      attempt
      probePollingInterval
      initialDelay
      evaluationTimeout
      stopOnFailure
      group
      version
      resource
      namespace
      fieldSelector
      labelSelector
      operation
    }
    promProperties {
      probeTimeout
      interval
      retry
      attempt
      probePollingInterval
      initialDelay
      evaluationTimeout
      stopOnFailure
      endpoint
      query
      queryPath
      comparator {
        type
        value
        criteria
      }
    }
    sloProperties {
      probeTimeout
      interval
      retry
      attempt
      probePollingInterval
      initialDelay
      evaluationTimeout
      stopOnFailure
      platformEndpoint
      sloIdentifier
      insecureSkipVerify
      evaluationWindow {
        evaluationStartTime
        evaluationEndTime
      }
      sloSourceMetadata {
        apiTokenSecret
        scope {
          orgIdentifier
          accountIdentifier
          projectIdentifier
        }
      }
      comparator {
        type
        value
        criteria
      }
    }
    recentExecutions {
      faultName
      status {
        verdict
        description
      }
      executedByExperiment {
        experimentID
        experimentName
        updatedAt
        updatedBy {
          userID
          username
          email
        }
      }
    }
    referencedBy
    updatedAt
    createdAt
    updatedBy {
      userID
      username
      email
    }
    createdBy {
      userID
      username
      email
    }
  }
}
Variables
{
  "request": ProbeRequest,
  "identifiers": IdentifiersRequest
}
Response
{
  "data": {
    "addProbe": {
      "identifiers": Identifiers,
      "name": "xyz789",
      "description": "xyz789",
      "tags": ["abc123"],
      "type": "httpProbe",
      "infrastructureType": "Kubernetes",
      "kubernetesHTTPProperties": KubernetesHTTPProbe,
      "linuxHTTPProperties": LinuxHTTPProbe,
      "kubernetesCMDProperties": KubernetesCMDProbe,
      "linuxCMDProperties": LinuxCMDProbe,
      "k8sProperties": K8SProbe,
      "promProperties": PROMProbe,
      "sloProperties": SLOProbe,
      "recentExecutions": [ProbeRecentExecutions],
      "referencedBy": 987,
      "updatedAt": "abc123",
      "createdAt": "xyz789",
      "updatedBy": UserDetails,
      "createdBy": UserDetails
    }
  }
}

addRule

Response

Returns a StandardResponse!

Arguments
Name Description
identifiers - IdentifiersRequest!
request - RuleInput!

Example

Query
mutation AddRule(
  $identifiers: IdentifiersRequest!,
  $request: RuleInput!
) {
  addRule(
    identifiers: $identifiers,
    request: $request
  ) {
    message
    correlationId
    response
  }
}
Variables
{
  "identifiers": IdentifiersRequest,
  "request": RuleInput
}
Response
{
  "data": {
    "addRule": {
      "message": "xyz789",
      "correlationId": "xyz789",
      "response": {}
    }
  }
}

createChaosWorkFlow

Description

Creates a new workflow and applies its manifest

Response

Returns a ChaosWorkFlowResponse!

Arguments
Name Description
request - ChaosWorkFlowRequest!
identifiers - IdentifiersRequest!

Example

Query
mutation CreateChaosWorkFlow(
  $request: ChaosWorkFlowRequest!,
  $identifiers: IdentifiersRequest!
) {
  createChaosWorkFlow(
    request: $request,
    identifiers: $identifiers
  ) {
    workflowID
    identifiers {
      orgIdentifier
      accountIdentifier
      projectIdentifier
    }
    cronSyntax
    workflowName
    workflowDescription
    isCustomWorkflow
    tags
  }
}
Variables
{
  "request": ChaosWorkFlowRequest,
  "identifiers": IdentifiersRequest
}
Response
{
  "data": {
    "createChaosWorkFlow": {
      "workflowID": "xyz789",
      "identifiers": Identifiers,
      "cronSyntax": "abc123",
      "workflowName": "abc123",
      "workflowDescription": "xyz789",
      "isCustomWorkflow": false,
      "tags": ["abc123"]
    }
  }
}

createGameDay

Response

Returns a GameDay!

Arguments
Name Description
identifiers - IdentifiersRequest!
request - CreateGameDayRequest!

Example

Query
mutation CreateGameDay(
  $identifiers: IdentifiersRequest!,
  $request: CreateGameDayRequest!
) {
  createGameDay(
    identifiers: $identifiers,
    request: $request
  ) {
    gameDayID
    identifiers {
      orgIdentifier
      accountIdentifier
      projectIdentifier
    }
    name
    experiments {
      experimentID
      experimentTemplateName
      chaosInfraID
      hubID
    }
    objective
    description
    createdBy
    createdAt
    updatedAt
    summary {
      notes
      qna {
        questionType
        optionsMCQ
        question
        answer
      }
      actionItem {
        item
        isDone
      }
    }
    isRemoved
  }
}
Variables
{
  "identifiers": IdentifiersRequest,
  "request": CreateGameDayRequest
}
Response
{
  "data": {
    "createGameDay": {
      "gameDayID": 4,
      "identifiers": Identifiers,
      "name": "xyz789",
      "experiments": [ExperimentResponse],
      "objective": "xyz789",
      "description": "abc123",
      "createdBy": "xyz789",
      "createdAt": "xyz789",
      "updatedAt": "xyz789",
      "summary": GameDaySummary,
      "isRemoved": false
    }
  }
}

createGameDayRun

Response

Returns a GameDayRunResponse!

Arguments
Name Description
identifiers - IdentifiersRequest!
request - CreateGameDayRunRequest!

Example

Query
mutation CreateGameDayRun(
  $identifiers: IdentifiersRequest!,
  $request: CreateGameDayRunRequest!
) {
  createGameDayRun(
    identifiers: $identifiers,
    request: $request
  ) {
    gameDayRunID
    name
    gameDayID
    identifiers {
      orgIdentifier
      accountIdentifier
      projectIdentifier
    }
    experiments {
      experimentID
      experimentTemplateName
      chaosInfraID
      hubID
      experimentRunIDs
      experimentNotes
    }
    startTime
    endTime
    notes
    summary {
      notes
      qna {
        questionType
        optionsMCQ
        question
        answer
      }
      actionItem {
        item
        isDone
      }
    }
    createdBy {
      userID
      username
      email
    }
    updatedBy {
      userID
      username
      email
    }
    updatedAt
    createdAt
    completed
  }
}
Variables
{
  "identifiers": IdentifiersRequest,
  "request": CreateGameDayRunRequest
}
Response
{
  "data": {
    "createGameDayRun": {
      "gameDayRunID": "xyz789",
      "name": "xyz789",
      "gameDayID": "xyz789",
      "identifiers": Identifiers,
      "experiments": [GameDayRunExperiments],
      "startTime": "xyz789",
      "endTime": "abc123",
      "notes": "xyz789",
      "summary": GameDaySummary,
      "createdBy": UserDetails,
      "updatedBy": UserDetails,
      "updatedAt": "xyz789",
      "createdAt": "xyz789",
      "completed": false
    }
  }
}

createImageRegistry

Response

Returns an ImageRegistryResponse!

Arguments
Name Description
identifiers - IdentifiersRequest!
request - ImageRegistryRequest!

Example

Query
mutation CreateImageRegistry(
  $identifiers: IdentifiersRequest!,
  $request: ImageRegistryRequest!
) {
  createImageRegistry(
    identifiers: $identifiers,
    request: $request
  ) {
    identifier {
      orgIdentifier
      accountIdentifier
      projectIdentifier
    }
    registryServer
    registryAccount
    isPrivate
    secretName
    isDefault
    createdBy {
      userID
      username
      email
    }
    updatedBy {
      userID
      username
      email
    }
    createdAt
    updatedAt
  }
}
Variables
{
  "identifiers": IdentifiersRequest,
  "request": ImageRegistryRequest
}
Response
{
  "data": {
    "createImageRegistry": {
      "identifier": Identifiers,
      "registryServer": "xyz789",
      "registryAccount": "xyz789",
      "isPrivate": false,
      "secretName": "xyz789",
      "isDefault": false,
      "createdBy": UserDetails,
      "updatedBy": UserDetails,
      "createdAt": "xyz789",
      "updatedAt": "xyz789"
    }
  }
}

deleteChaosHub

Description

Delete the ChaosHub

Response

Returns a Boolean!

Arguments
Name Description
id - ID!
identifiers - IdentifiersRequest!

Example

Query
mutation DeleteChaosHub(
  $id: ID!,
  $identifiers: IdentifiersRequest!
) {
  deleteChaosHub(
    id: $id,
    identifiers: $identifiers
  )
}
Variables
{"id": 4, "identifiers": IdentifiersRequest}
Response
{"data": {"deleteChaosHub": {}}}

deleteChaosWorkflow

Description

Removes a workflow from infra

Response

Returns a Boolean!

Arguments
Name Description
workflowID - String!
workflowRunID - String
identifiers - IdentifiersRequest!

Example

Query
mutation DeleteChaosWorkflow(
  $workflowID: String!,
  $workflowRunID: String,
  $identifiers: IdentifiersRequest!
) {
  deleteChaosWorkflow(
    workflowID: $workflowID,
    workflowRunID: $workflowRunID,
    identifiers: $identifiers
  )
}
Variables
{
  "workflowID": "abc123",
  "workflowRunID": "xyz789",
  "identifiers": IdentifiersRequest
}
Response
{"data": {"deleteChaosWorkflow": {}}}

deleteCondition

Response

Returns a StandardResponse!

Arguments
Name Description
identifiers - IdentifiersRequest!
conditionId - String!

Example

Query
mutation DeleteCondition(
  $identifiers: IdentifiersRequest!,
  $conditionId: String!
) {
  deleteCondition(
    identifiers: $identifiers,
    conditionId: $conditionId
  ) {
    message
    correlationId
    response
  }
}
Variables
{
  "identifiers": IdentifiersRequest,
  "conditionId": "xyz789"
}
Response
{
  "data": {
    "deleteCondition": {
      "message": "abc123",
      "correlationId": "xyz789",
      "response": {}
    }
  }
}

deleteGameDay

Response

Returns a String!

Arguments
Name Description
identifiers - IdentifiersRequest!
request - DeleteGameDayRequest!

Example

Query
mutation DeleteGameDay(
  $identifiers: IdentifiersRequest!,
  $request: DeleteGameDayRequest!
) {
  deleteGameDay(
    identifiers: $identifiers,
    request: $request
  )
}
Variables
{
  "identifiers": IdentifiersRequest,
  "request": DeleteGameDayRequest
}
Response
{"data": {"deleteGameDay": {}}}

deleteInfra

Description

Disconnects an infra and deletes its configuration from the control plane

Response

Returns a String!

Arguments
Name Description
identifiers - IdentifiersRequest!
infraID - String!
forceDelete - Boolean!

Example

Query
mutation DeleteInfra(
  $identifiers: IdentifiersRequest!,
  $infraID: String!,
  $forceDelete: Boolean!
) {
  deleteInfra(
    identifiers: $identifiers,
    infraID: $infraID,
    forceDelete: $forceDelete
  )
}
Variables
{
  "identifiers": IdentifiersRequest,
  "infraID": "xyz789",
  "forceDelete": true
}
Response
{"data": {"deleteInfra": {}}}

deleteLinuxInfras

Description

Disconnects an infra and deletes its configuration from the control plane

Response

Returns a String!

Arguments
Name Description
identifiers - IdentifiersRequest!
infraIDs - [String]!

Example

Query
mutation DeleteLinuxInfras(
  $identifiers: IdentifiersRequest!,
  $infraIDs: [String]!
) {
  deleteLinuxInfras(
    identifiers: $identifiers,
    infraIDs: $infraIDs
  )
}
Variables
{
  "identifiers": IdentifiersRequest,
  "infraIDs": ["xyz789"]
}
Response
{"data": {"deleteLinuxInfras": {}}}

deleteProbe

Description

Delete a Probe

Response

Returns a Boolean!

Arguments
Name Description
probeName - ID!
identifiers - IdentifiersRequest!

Example

Query
mutation DeleteProbe(
  $probeName: ID!,
  $identifiers: IdentifiersRequest!
) {
  deleteProbe(
    probeName: $probeName,
    identifiers: $identifiers
  )
}
Variables
{
  "probeName": "4",
  "identifiers": IdentifiersRequest
}
Response
{"data": {"deleteProbe": {}}}

deleteRule

Response

Returns a StandardResponse!

Arguments
Name Description
identifiers - IdentifiersRequest!
ruleId - String!

Example

Query
mutation DeleteRule(
  $identifiers: IdentifiersRequest!,
  $ruleId: String!
) {
  deleteRule(
    identifiers: $identifiers,
    ruleId: $ruleId
  ) {
    message
    correlationId
    response
  }
}
Variables
{
  "identifiers": IdentifiersRequest,
  "ruleId": "xyz789"
}
Response
{
  "data": {
    "deleteRule": {
      "message": "xyz789",
      "correlationId": "abc123",
      "response": {}
    }
  }
}

duplicateGameDay

Response

Returns a GameDay!

Arguments
Name Description
identifiers - IdentifiersRequest!
request - DuplicateGameDayRequest!

Example

Query
mutation DuplicateGameDay(
  $identifiers: IdentifiersRequest!,
  $request: DuplicateGameDayRequest!
) {
  duplicateGameDay(
    identifiers: $identifiers,
    request: $request
  ) {
    gameDayID
    identifiers {
      orgIdentifier
      accountIdentifier
      projectIdentifier
    }
    name
    experiments {
      experimentID
      experimentTemplateName
      chaosInfraID
      hubID
    }
    objective
    description
    createdBy
    createdAt
    updatedAt
    summary {
      notes
      qna {
        questionType
        optionsMCQ
        question
        answer
      }
      actionItem {
        item
        isDone
      }
    }
    isRemoved
  }
}
Variables
{
  "identifiers": IdentifiersRequest,
  "request": DuplicateGameDayRequest
}
Response
{
  "data": {
    "duplicateGameDay": {
      "gameDayID": "4",
      "identifiers": Identifiers,
      "name": "xyz789",
      "experiments": [ExperimentResponse],
      "objective": "xyz789",
      "description": "xyz789",
      "createdBy": "xyz789",
      "createdAt": "abc123",
      "updatedAt": "abc123",
      "summary": GameDaySummary,
      "isRemoved": false
    }
  }
}

pushWorkflowToChaosHub

Description

Push workflow to ChaosHub

Response

Returns a String!

Arguments
Name Description
request - PushWorkflowToChaosHubInput!
identifiers - IdentifiersRequest!

Example

Query
mutation PushWorkflowToChaosHub(
  $request: PushWorkflowToChaosHubInput!,
  $identifiers: IdentifiersRequest!
) {
  pushWorkflowToChaosHub(
    request: $request,
    identifiers: $identifiers
  )
}
Variables
{
  "request": PushWorkflowToChaosHubInput,
  "identifiers": IdentifiersRequest
}
Response
{"data": {"pushWorkflowToChaosHub": {}}}

registerInfra

Description

Connect a new infra for a user in a specified project

Response

Returns a RegisterInfraResponse!

Arguments
Name Description
identifiers - IdentifiersRequest!
request - RegisterInfraRequest!

Example

Query
mutation RegisterInfra(
  $identifiers: IdentifiersRequest!,
  $request: RegisterInfraRequest!
) {
  registerInfra(
    identifiers: $identifiers,
    request: $request
  ) {
    token
    infraID
    name
    manifest
    taskID
  }
}
Variables
{
  "identifiers": IdentifiersRequest,
  "request": RegisterInfraRequest
}
Response
{
  "data": {
    "registerInfra": {
      "token": "abc123",
      "infraID": "abc123",
      "name": "xyz789",
      "manifest": "xyz789",
      "taskID": "xyz789"
    }
  }
}

registerLinuxInfra

Description

Connect a new infra for a user in a specified project

Response

Returns a RegisterLinuxInfraResponse!

Arguments
Name Description
identifiers - IdentifiersRequest!
request - RegisterLinuxInfraRequest!

Example

Query
mutation RegisterLinuxInfra(
  $identifiers: IdentifiersRequest!,
  $request: RegisterLinuxInfraRequest!
) {
  registerLinuxInfra(
    identifiers: $identifiers,
    request: $request
  ) {
    infraID
    name
    accessKey
    serverURL
  }
}
Variables
{
  "identifiers": IdentifiersRequest,
  "request": RegisterLinuxInfraRequest
}
Response
{
  "data": {
    "registerLinuxInfra": {
      "infraID": "abc123",
      "name": "abc123",
      "accessKey": "abc123",
      "serverURL": "abc123"
    }
  }
}

runChaosExperiment

Description

Run the chaos experiment (used by frontend)

Response

Returns a RunChaosExperimentResponse!

Arguments
Name Description
workflowID - String!
identifiers - IdentifiersRequest!

Example

Query
mutation RunChaosExperiment(
  $workflowID: String!,
  $identifiers: IdentifiersRequest!
) {
  runChaosExperiment(
    workflowID: $workflowID,
    identifiers: $identifiers
  ) {
    notifyID
  }
}
Variables
{
  "workflowID": "xyz789",
  "identifiers": IdentifiersRequest
}
Response
{
  "data": {
    "runChaosExperiment": {"notifyID": "4"}
  }
}

saveChaosExperiment

Description

Saves a new experiment or updates if already exists

Response

Returns a String!

Arguments
Name Description
request - ChaosExperimentRequest!
identifiers - IdentifiersRequest!

Example

Query
mutation SaveChaosExperiment(
  $request: ChaosExperimentRequest!,
  $identifiers: IdentifiersRequest!
) {
  saveChaosExperiment(
    request: $request,
    identifiers: $identifiers
  )
}
Variables
{
  "request": ChaosExperimentRequest,
  "identifiers": IdentifiersRequest
}
Response
{"data": {"saveChaosExperiment": {}}}

stopGameDayRun

Response

Returns a String!

Arguments
Name Description
identifiers - IdentifiersRequest!
request - StopGameDayRunRequest

Example

Query
mutation StopGameDayRun(
  $identifiers: IdentifiersRequest!,
  $request: StopGameDayRunRequest
) {
  stopGameDayRun(
    identifiers: $identifiers,
    request: $request
  )
}
Variables
{
  "identifiers": IdentifiersRequest,
  "request": StopGameDayRunRequest
}
Response
{"data": {"stopGameDayRun": {}}}

stopWorkflowRuns

Description

stopWorkflow will halt all the running runs of a particular workflow

Response

Returns a Boolean!

Arguments
Name Description
identifiers - IdentifiersRequest!
workflowID - String!
workflowRunID - String
infraType - InfrastructureType

Example

Query
mutation StopWorkflowRuns(
  $identifiers: IdentifiersRequest!,
  $workflowID: String!,
  $workflowRunID: String,
  $infraType: InfrastructureType
) {
  stopWorkflowRuns(
    identifiers: $identifiers,
    workflowID: $workflowID,
    workflowRunID: $workflowRunID,
    infraType: $infraType
  )
}
Variables
{
  "identifiers": IdentifiersRequest,
  "workflowID": "xyz789",
  "workflowRunID": "abc123",
  "infraType": "Kubernetes"
}
Response
{"data": {"stopWorkflowRuns": {}}}

syncChaosHub

Description

Sync changes from the Git repository of a ChaosHub

Response

Returns a String!

Arguments
Name Description
id - ID!
identifiers - IdentifiersRequest!

Example

Query
mutation SyncChaosHub(
  $id: ID!,
  $identifiers: IdentifiersRequest!
) {
  syncChaosHub(
    id: $id,
    identifiers: $identifiers
  )
}
Variables
{"id": 4, "identifiers": IdentifiersRequest}
Response
{"data": {"syncChaosHub": {}}}

testKubernetesInfraConnection

Description

Send heartbeat task to the k8s infra subscriber

Response

Returns a Boolean!

Arguments
Name Description
identifiers - IdentifiersRequest!
infraId - String!

Example

Query
mutation TestKubernetesInfraConnection(
  $identifiers: IdentifiersRequest!,
  $infraId: String!
) {
  testKubernetesInfraConnection(
    identifiers: $identifiers,
    infraId: $infraId
  )
}
Variables
{
  "identifiers": IdentifiersRequest,
  "infraId": "abc123"
}
Response
{"data": {"testKubernetesInfraConnection": {}}}

tuneRule

Response

Returns a StandardResponse!

Arguments
Name Description
identifiers - IdentifiersRequest!
ruleId - String!
enable - Boolean!

Example

Query
mutation TuneRule(
  $identifiers: IdentifiersRequest!,
  $ruleId: String!,
  $enable: Boolean!
) {
  tuneRule(
    identifiers: $identifiers,
    ruleId: $ruleId,
    enable: $enable
  ) {
    message
    correlationId
    response
  }
}
Variables
{
  "identifiers": IdentifiersRequest,
  "ruleId": "xyz789",
  "enable": false
}
Response
{
  "data": {
    "tuneRule": {
      "message": "xyz789",
      "correlationId": "abc123",
      "response": {}
    }
  }
}

updateChaosHub

Description

Update the configuration of a ChaosHub

Response

Returns a ChaosHub!

Arguments
Name Description
id - ID!
request - ChaosHubRequest!
identifiers - IdentifiersRequest!

Example

Query
mutation UpdateChaosHub(
  $id: ID!,
  $request: ChaosHubRequest!,
  $identifiers: IdentifiersRequest!
) {
  updateChaosHub(
    id: $id,
    request: $request,
    identifiers: $identifiers
  ) {
    id
    identifiers {
      orgIdentifier
      accountIdentifier
      projectIdentifier
    }
    repoName
    repoURL
    repoBranch
    AuthType
    connectorId
    connectorScope
    name
    createdAt
    updatedAt
    lastSyncedAt
    isDefault
    tags
    createdBy {
      userID
      username
      email
    }
    updatedBy {
      userID
      username
      email
    }
    description
  }
}
Variables
{
  "id": 4,
  "request": ChaosHubRequest,
  "identifiers": IdentifiersRequest
}
Response
{
  "data": {
    "updateChaosHub": {
      "id": 4,
      "identifiers": Identifiers,
      "repoName": "xyz789",
      "repoURL": "xyz789",
      "repoBranch": "xyz789",
      "AuthType": "Ssh",
      "connectorId": "abc123",
      "connectorScope": "ACCOUNT",
      "name": "abc123",
      "createdAt": "xyz789",
      "updatedAt": "abc123",
      "lastSyncedAt": "abc123",
      "isDefault": true,
      "tags": ["abc123"],
      "createdBy": UserDetails,
      "updatedBy": UserDetails,
      "description": "xyz789"
    }
  }
}

updateChaosWorkflow

Description

Updates the workflow

Response

Returns a ChaosWorkFlowResponse!

Arguments
Name Description
request - ChaosWorkFlowRequest
identifiers - IdentifiersRequest!

Example

Query
mutation UpdateChaosWorkflow(
  $request: ChaosWorkFlowRequest,
  $identifiers: IdentifiersRequest!
) {
  updateChaosWorkflow(
    request: $request,
    identifiers: $identifiers
  ) {
    workflowID
    identifiers {
      orgIdentifier
      accountIdentifier
      projectIdentifier
    }
    cronSyntax
    workflowName
    workflowDescription
    isCustomWorkflow
    tags
  }
}
Variables
{
  "request": ChaosWorkFlowRequest,
  "identifiers": IdentifiersRequest
}
Response
{
  "data": {
    "updateChaosWorkflow": {
      "workflowID": "abc123",
      "identifiers": Identifiers,
      "cronSyntax": "xyz789",
      "workflowName": "xyz789",
      "workflowDescription": "abc123",
      "isCustomWorkflow": false,
      "tags": ["xyz789"]
    }
  }
}

updateCondition

Response

Returns a StandardResponse!

Arguments
Name Description
identifiers - IdentifiersRequest!
request - ConditionRequest!

Example

Query
mutation UpdateCondition(
  $identifiers: IdentifiersRequest!,
  $request: ConditionRequest!
) {
  updateCondition(
    identifiers: $identifiers,
    request: $request
  ) {
    message
    correlationId
    response
  }
}
Variables
{
  "identifiers": IdentifiersRequest,
  "request": ConditionRequest
}
Response
{
  "data": {
    "updateCondition": {
      "message": "xyz789",
      "correlationId": "xyz789",
      "response": {}
    }
  }
}

updateExperimentNotes

Response

Returns a String!

Arguments
Name Description
identifiers - IdentifiersRequest!
request - UpdateExperimentNotesRequest

Example

Query
mutation UpdateExperimentNotes(
  $identifiers: IdentifiersRequest!,
  $request: UpdateExperimentNotesRequest
) {
  updateExperimentNotes(
    identifiers: $identifiers,
    request: $request
  )
}
Variables
{
  "identifiers": IdentifiersRequest,
  "request": UpdateExperimentNotesRequest
}
Response
{"data": {"updateExperimentNotes": {}}}

updateGameDay

Response

Returns a String!

Arguments
Name Description
identifiers - IdentifiersRequest!
request - UpdateGameDayRequest!

Example

Query
mutation UpdateGameDay(
  $identifiers: IdentifiersRequest!,
  $request: UpdateGameDayRequest!
) {
  updateGameDay(
    identifiers: $identifiers,
    request: $request
  )
}
Variables
{
  "identifiers": IdentifiersRequest,
  "request": UpdateGameDayRequest
}
Response
{"data": {"updateGameDay": {}}}

updateGameDayExperiments

Response

Returns a String!

Arguments
Name Description
identifiers - IdentifiersRequest!
request - UpdateGameDayExperimentsRequest!

Example

Query
mutation UpdateGameDayExperiments(
  $identifiers: IdentifiersRequest!,
  $request: UpdateGameDayExperimentsRequest!
) {
  updateGameDayExperiments(
    identifiers: $identifiers,
    request: $request
  )
}
Variables
{
  "identifiers": IdentifiersRequest,
  "request": UpdateGameDayExperimentsRequest
}
Response
{"data": {"updateGameDayExperiments": {}}}

updateGameDayRun

Response

Returns a String!

Arguments
Name Description
identifiers - IdentifiersRequest!
request - UpdateGameDayRunRequest!

Example

Query
mutation UpdateGameDayRun(
  $identifiers: IdentifiersRequest!,
  $request: UpdateGameDayRunRequest!
) {
  updateGameDayRun(
    identifiers: $identifiers,
    request: $request
  )
}
Variables
{
  "identifiers": IdentifiersRequest,
  "request": UpdateGameDayRunRequest
}
Response
{"data": {"updateGameDayRun": {}}}

updateImageRegistry

Response

Returns a String!

Arguments
Name Description
identifiers - IdentifiersRequest!
request - ImageRegistryRequest!

Example

Query
mutation UpdateImageRegistry(
  $identifiers: IdentifiersRequest!,
  $request: ImageRegistryRequest!
) {
  updateImageRegistry(
    identifiers: $identifiers,
    request: $request
  )
}
Variables
{
  "identifiers": IdentifiersRequest,
  "request": ImageRegistryRequest
}
Response
{"data": {"updateImageRegistry": {}}}

updateProbe

Description

Update the configuration of a Probe

Response

Returns a String!

Arguments
Name Description
request - ProbeRequest!
identifiers - IdentifiersRequest!

Example

Query
mutation UpdateProbe(
  $request: ProbeRequest!,
  $identifiers: IdentifiersRequest!
) {
  updateProbe(
    request: $request,
    identifiers: $identifiers
  )
}
Variables
{
  "request": ProbeRequest,
  "identifiers": IdentifiersRequest
}
Response
{"data": {"updateProbe": {}}}

updateRule

Response

Returns a StandardResponse!

Arguments
Name Description
identifiers - IdentifiersRequest!
request - RuleInput!

Example

Query
mutation UpdateRule(
  $identifiers: IdentifiersRequest!,
  $request: RuleInput!
) {
  updateRule(
    identifiers: $identifiers,
    request: $request
  ) {
    message
    correlationId
    response
  }
}
Variables
{
  "identifiers": IdentifiersRequest,
  "request": RuleInput
}
Response
{
  "data": {
    "updateRule": {
      "message": "abc123",
      "correlationId": "xyz789",
      "response": {}
    }
  }
}

updateSummary

Response

Returns a String!

Arguments
Name Description
identifiers - IdentifiersRequest!
request - UpdateSummaryRequest!

Example

Query
mutation UpdateSummary(
  $identifiers: IdentifiersRequest!,
  $request: UpdateSummaryRequest!
) {
  updateSummary(
    identifiers: $identifiers,
    request: $request
  )
}
Variables
{
  "identifiers": IdentifiersRequest,
  "request": UpdateSummaryRequest
}
Response
{"data": {"updateSummary": {}}}

upgradeK8sInfra

Description

Launches an on-demand upgrade job to bring the infra up to the latest version

Response

Returns a String!

Arguments
Name Description
identifiers - IdentifiersRequest!
infraId - String!

Example

Query
mutation UpgradeK8sInfra(
  $identifiers: IdentifiersRequest!,
  $infraId: String!
) {
  upgradeK8sInfra(
    identifiers: $identifiers,
    infraId: $infraId
  )
}
Variables
{
  "identifiers": IdentifiersRequest,
  "infraId": "abc123"
}
Response
{"data": {"upgradeK8sInfra": {}}}

Types

ActionItemRequest

Fields
Input Field Description
item - String!
isDone - Boolean!
Example
{}

ActionItems

Fields
Field Name Description
item - String!
isDone - Boolean!
Example
{"item": "xyz789", "isDone": false}

Annotation

Fields
Field Name Description
categories - String!
vendor - String!
createdAt - String!
repository - String!
support - String!
chartDescription - String!
Example
{
  "categories": "xyz789",
  "vendor": "xyz789",
  "createdAt": "xyz789",
  "repository": "abc123",
  "support": "xyz789",
  "chartDescription": "abc123"
}

ApplicationSpecs

Fields
Field Name Description
label - String
namespace - String
Example
{
  "label": "abc123",
  "namespace": "xyz789"
}

ApplicationSpecsInput

Fields
Input Field Description
label - String!
namespace - String!
Example
{}

Audit

Fields
Field Name Description
updatedAt - String
createdAt - String
updatedBy - UserDetails
createdBy - UserDetails
Example
{
  "updatedAt": "xyz789",
  "createdAt": "xyz789",
  "updatedBy": UserDetails,
  "createdBy": UserDetails
}

AuditV2

Fields
Field Name Description
updatedAt - Int
createdAt - Int
updatedBy - UserDetails
createdBy - UserDetails
Possible Types
AuditV2 Types

ConditionResponse

RuleResponse

Example
{
  "updatedAt": 123,
  "createdAt": 123,
  "updatedBy": UserDetails,
  "createdBy": UserDetails
}

Boolean

Description

The Boolean scalar type represents true or false.

Example
{}

ChaosExperimentRequest

Description

Defines the details for a chaos experiment

Fields
Input Field Description
id - String! ID of the experiment
name - String! Name of the experiment
description - String Description of the experiment
manifest - String! Manifest of the experiment
eventsMetadata - [EventMetadataInput!] Array containing service identifier and environment identifier for SRM change source events
infraID - ID! ID of the target infrastructure in which the experiment will run
tags - [String!] Tags of the infrastructure
infraType - InfrastructureType Type of the infrastructure
Example
{}

ChaosHub

Fields
Field Name Description
id - ID! ID of the chaos hub
identifiers - Identifiers! Harness identifiers
repoName - String Name of the repository if connector is of Account type
repoURL - String! URL of the git repository
repoBranch - String! Branch of the git repository
AuthType - ChaosHubAuthType! AuthType
connectorId - String! Name of the GitConnectorId
connectorScope - ConnectorScope! Name of the ConnectorScope
name - String! Name of the chaos hub
createdAt - String! Timestamp when the chaos hub was created
updatedAt - String! Timestamp when the chaos hub was last updated
lastSyncedAt - String! Timestamp when the chaos hub was last synced
isDefault - Boolean! Default Hub Identifier
tags - [String!] Tags of the ChaosHub
createdBy - UserDetails User who created the ChaosHub
updatedBy - UserDetails User who has updated the ChaosHub
description - String Description of ChaosHub
Example
{
  "id": 4,
  "identifiers": Identifiers,
  "repoName": "abc123",
  "repoURL": "xyz789",
  "repoBranch": "abc123",
  "AuthType": "Ssh",
  "connectorId": "xyz789",
  "connectorScope": "ACCOUNT",
  "name": "abc123",
  "createdAt": "abc123",
  "updatedAt": "xyz789",
  "lastSyncedAt": "abc123",
  "isDefault": false,
  "tags": ["xyz789"],
  "createdBy": UserDetails,
  "updatedBy": UserDetails,
  "description": "abc123"
}

ChaosHubAuthType

Values
Enum Value Description

Ssh

UsernameToken

Example
{}

ChaosHubFilterInput

Description

Defines filter options for ChaosHub

Fields
Input Field Description
chaosHubName - String Name of the ChaosHub
tags - [String!] Tags of a chaos hub
description - String Description of a chaos hub
Example
{}

ChaosHubRequest

Description

Defines the details required for creating a chaos hub

Fields
Input Field Description
hubName - String! Name of the chaos hub
connectorId - String! Name of the GitConnectorId
connectorScope - ConnectorScope! Name of the ConnectorScope
repoName - String Repo name of the git repository
repoBranch - String! Branch of the git repository
tags - [String!] Tags of the ChaosHub
description - String Description of ChaosHub
Example
{}

ChaosHubStatus

Fields
Field Name Description
id - ID! ID of the hub
repoName - String Name of the repository if connector is of Account type
repoURL - String! URL of the git repository
repoBranch - String! Branch of the git repository
connectorId - String! Name of the GitConnectorId
connectorScope - ConnectorScope! Name of the ConnectorScope
AuthType - ChaosHubAuthType! AuthType
isAvailable - Boolean! Bool value indicating whether the hub is available or not.
totalExp - String! Total number of experiments in the hub
totalWorkflows - String! Total workflows
name - String! Name of the chaos hub
lastSyncedAt - String! Timestamp when the chaos hub was last synced
isDefault - Boolean! Default Hub Identifier
tags - [String!] Tags of the ChaosHub
createdBy - UserDetails User who created the ChaosHub
updatedBy - UserDetails User who has updated the ChaosHub
createdAt - String! Created at timestamp
updatedAt - String! Updated at timestamp
description - String Description of ChaosHub
Example
{
  "id": 4,
  "repoName": "xyz789",
  "repoURL": "abc123",
  "repoBranch": "xyz789",
  "connectorId": "xyz789",
  "connectorScope": "ACCOUNT",
  "AuthType": "Ssh",
  "isAvailable": true,
  "totalExp": "abc123",
  "totalWorkflows": "abc123",
  "name": "xyz789",
  "lastSyncedAt": "abc123",
  "isDefault": false,
  "tags": ["abc123"],
  "createdBy": UserDetails,
  "updatedBy": UserDetails,
  "createdAt": "xyz789",
  "updatedAt": "abc123",
  "description": "xyz789"
}

ChaosServiceAccountSpecs

Fields
Field Name Description
name - String
Example
{"name": "xyz789"}

ChaosServiceAccountSpecsInput

Fields
Input Field Description
name - String!
Example
{}

ChaosWorkFlowRequest

Description

Defines the details for a chaos workflow

Fields
Input Field Description
workflowID - String ID of the workflow
runExperiment - Boolean Boolean check indicating if the created scenario will be executed or not
workflowManifest - String! Manifest of the workflow
workflowType - WorkflowType Type of the workflow
cronSyntax - String! Cron syntax of the workflow schedule
workflowName - String! Name of the workflow
workflowDescription - String! Description of the workflow
weightages - [WeightagesInput!]! Array containing weightage and name of each chaos experiment in the workflow
eventsMetadata - [EventMetadataInput!] Array containing service identifier and environment identifier for SRM change source events
isCustomWorkflow - Boolean! Bool value indicating whether the workflow is a custom workflow or not
infraID - ID! ID of the target infra in which the workflow will run
tags - [String!] Tags of the infra
infraType - InfrastructureType Type of the infra
Example
{}

ChaosWorkFlowResponse

Description

Defines the response received for querying the details of chaos workflow

Fields
Field Name Description
workflowID - String! ID of the workflow
identifiers - Identifiers! Harness Identifiers
cronSyntax - String! Cron syntax of the workflow schedule
workflowName - String! Name of the workflow
workflowDescription - String! Description of the workflow
isCustomWorkflow - Boolean! Bool value indicating whether the workflow is a custom workflow or not
tags - [String!] Tags of the infra
Example
{
  "workflowID": "abc123",
  "identifiers": Identifiers,
  "cronSyntax": "abc123",
  "workflowName": "xyz789",
  "workflowDescription": "xyz789",
  "isCustomWorkflow": true,
  "tags": ["abc123"]
}

Chart

Fields
Field Name Description
apiVersion - String!
kind - String!
metadata - Metadata!
spec - Spec!
packageInfo - PackageInformation!
Example
{
  "apiVersion": "xyz789",
  "kind": "xyz789",
  "metadata": Metadata,
  "spec": Spec,
  "packageInfo": PackageInformation
}

CheckResourceIDRequest

Fields
Input Field Description
resourceName - ResourceType!
ID - ID!
Example
{}

CommonProbeProperties

Description

Defines the common probe properties shared across different ProbeTypes

Fields
Field Name Description
probeTimeout - String! Timeout of the Probe
interval - String! Interval of the Probe
retry - Int Retry interval of the Probe
attempt - Int Attempt contains the total attempt count for the probe
probePollingInterval - String Polling interval of the Probe
initialDelay - String Initial delay interval of the Probe in seconds
evaluationTimeout - String EvaluationTimeout is the timeout window in which the SLO metrics
stopOnFailure - Boolean Is stop on failure enabled in the Probe
Possible Types
CommonProbeProperties Types

SLOProbe

PROMProbe

KubernetesHTTPProbe

KubernetesCMDProbe

K8SProbe

Example
{
  "probeTimeout": "xyz789",
  "interval": "xyz789",
  "retry": 987,
  "attempt": 987,
  "probePollingInterval": "abc123",
  "initialDelay": "abc123",
  "evaluationTimeout": "xyz789",
  "stopOnFailure": false
}

Comparator

Description

Defines the properties of the comparator

Fields
Field Name Description
type - String! Type of the Comparator
value - String! Value of the Comparator
criteria - String! Operator of the Comparator
Example
{
  "type": "xyz789",
  "value": "abc123",
  "criteria": "abc123"
}

ComparatorInput

Description

Defines the input properties of the comparator

Fields
Input Field Description
type - String! Type of the Comparator
value - String! Value of the Comparator
criteria - String! Operator of the Comparator
Example
{}

Condition

Fields
Field Name Description
name - String!
description - String
tags - [String!]
conditionId - String
infraSpec - InfraSpec
faultSpecs - [FaultSpec]
rules - [ConditionRule]
Example
{
  "name": "xyz789",
  "description": "xyz789",
  "tags": ["xyz789"],
  "conditionId": "abc123",
  "infraSpec": InfraSpec,
  "faultSpecs": [FaultSpec],
  "rules": [ConditionRule]
}

ConditionDetails

Fields
Field Name Description
conditionId - String
conditionName - String
message - String
phase - SecurityGovernancePhase
Example
{
  "conditionId": "xyz789",
  "conditionName": "abc123",
  "message": "abc123",
  "phase": "Passed"
}

ConditionRequest

Fields
Input Field Description
conditionId - String!
description - String
name - String!
tags - [String]
infraSpec - InfraSpecInput!
faultSpecs - [FaultSpecInput!]!
Example
{}

ConditionResponse

Fields
Field Name Description
updatedAt - Int
createdAt - Int
updatedBy - UserDetails
createdBy - UserDetails
identifiers - Identifiers
condition - Condition
Example
{
  "updatedAt": 987,
  "createdAt": 123,
  "updatedBy": UserDetails,
  "createdBy": UserDetails,
  "identifiers": Identifiers,
  "condition": Condition
}

ConditionRule

Fields
Field Name Description
ruleId - String
name - String
Example
{
  "ruleId": "xyz789",
  "name": "abc123"
}

ConnectorScope

Values
Enum Value Description

ACCOUNT

PROJECT

ORGANISATION

Example
{}

CreateGameDayRequest

Fields
Input Field Description
ID - String!
name - String!
experiments - [NonCronExperiment!]!
objective - String
description - String
Example
{}

CreateGameDayRunRequest

Fields
Input Field Description
gamedayID - String!
Example
{}

DateRange

Description

Defines the start date and end date for the filtering the data

Fields
Input Field Description
startDate - String! Start date
endDate - String End date
Example
{}

DeleteGameDayRequest

Fields
Input Field Description
gamedayID - String!
Example
{}

DuplicateGameDayRequest

Fields
Input Field Description
gamedayID - String!
Example
{}

EvaluationWindow

Description

EvaluationWindow is the time period for which the SLO probe will work

Fields
Field Name Description
evaluationStartTime - Int Start time of evaluation
evaluationEndTime - Int End time of evaluation
Example
{"evaluationStartTime": 987, "evaluationEndTime": 123}

EvaluationWindowInput

Description

Defines the input properties of EvaluationWindow

Fields
Input Field Description
evaluationStartTime - Int Start time of evaluation
evaluationEndTime - Int End time of evaluation
Example
{}

EventMetadata

Fields
Field Name Description
faultName - String!
serviceIdentifier - [String!]!
environmentIdentifier - [String!]!
Example
{
  "faultName": "abc123",
  "serviceIdentifier": ["abc123"],
  "environmentIdentifier": ["abc123"]
}

EventMetadataInput

Fields
Input Field Description
faultName - String!
serviceIdentifier - [String!]!
environmentIdentifier - [String!]!
Example
{}

ExecutedByExperiment

Description

Defines the Executed by which experiment details for Probes

Fields
Field Name Description
experimentID - String! Experiment ID
experimentName - String! Experiment Name
updatedAt - Int! Timestamp at which the experiment was last updated
updatedBy - UserDetails User who has updated the experiment
Example
{
  "experimentID": "abc123",
  "experimentName": "xyz789",
  "updatedAt": 987,
  "updatedBy": UserDetails
}

ExecutionHistory

Description

Defines the Execution History of experiment referenced by the Probe

Fields
Field Name Description
status - Status! Fault Status
executedByExperiment - ExecutedByExperiment! Fault executed by which experiment
Example
{
  "status": Status,
  "executedByExperiment": ExecutedByExperiment
}

ExecutionPlane

Values
Enum Value Description

LINUX

KUBERNETES

Example
{}

ExperimentInfoInput

Fields
Input Field Description
name - String!
description - String!
Example
{}

ExperimentRequest

Fields
Input Field Description
category - String! Name of the chart being used
experimentName - String! Name of the experiment
hubID - String! Name of the hub
Example
{}

ExperimentResponse

Fields
Field Name Description
experimentID - String!
experimentTemplateName - String!
chaosInfraID - String!
hubID - String!
Example
{
  "experimentID": "abc123",
  "experimentTemplateName": "xyz789",
  "chaosInfraID": "xyz789",
  "hubID": "xyz789"
}

Experiments

Fields
Field Name Description
name - String!
CSV - String!
desc - String!
Example
{
  "name": "xyz789",
  "CSV": "abc123",
  "desc": "xyz789"
}

FaultDetails

Description

Fault Detail consists of all the fault related details

Fields
Field Name Description
fault - String! fault consists of fault.yaml
engine - String! engine consists engine.yaml
csv - String! csv consists chartserviceversion.yaml
Example
{
  "fault": "xyz789",
  "engine": "abc123",
  "csv": "xyz789"
}

FaultList

Fields
Field Name Description
name - String!
displayName - String!
description - String!
plan - [String!]
Example
{
  "name": "abc123",
  "displayName": "abc123",
  "description": "abc123",
  "plan": ["xyz789"]
}

FaultSpec

Fields
Field Name Description
faultType - FaultType
name - String
Example
{
  "faultType": "FAULT_GROUP",
  "name": "abc123"
}

FaultSpecInput

Fields
Input Field Description
faultType - FaultType!
name - String!
Example
{}

FaultType

Values
Enum Value Description

FAULT_GROUP

FAULT

Example
{}

Float

Description

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

Example
{}

GET

Description

Details of GET request

Fields
Field Name Description
criteria - String! Criteria of the request
responseCode - String! Response Code of the request
Example
{
  "criteria": "xyz789",
  "responseCode": "xyz789"
}

GETRequest

Description

Details for input of GET request

Fields
Input Field Description
criteria - String! Criteria of the request
responseCode - String! Response Code of the request
Example
{}

GameDay

Fields
Field Name Description
gameDayID - ID
identifiers - Identifiers! Harness identifiers
name - String!
experiments - [ExperimentResponse!]!
objective - String
description - String
createdBy - String!
createdAt - String!
updatedAt - String!
summary - GameDaySummary
isRemoved - Boolean!
Example
{
  "gameDayID": 4,
  "identifiers": Identifiers,
  "name": "xyz789",
  "experiments": [ExperimentResponse],
  "objective": "xyz789",
  "description": "xyz789",
  "createdBy": "xyz789",
  "createdAt": "abc123",
  "updatedAt": "xyz789",
  "summary": GameDaySummary,
  "isRemoved": true
}

GameDayResponse

Fields
Field Name Description
gameDayID - ID!
identifiers - Identifiers! Harness identifiers
name - String!
tags - [String!]
experiments - [ExperimentResponse!]!
objective - String
description - String
createdBy - UserDetails
updatedBy - UserDetails
createdAt - String!
updatedAt - String!
summary - GameDaySummary
isRemoved - Boolean!
Example
{
  "gameDayID": "4",
  "identifiers": Identifiers,
  "name": "xyz789",
  "tags": ["abc123"],
  "experiments": [ExperimentResponse],
  "objective": "abc123",
  "description": "abc123",
  "createdBy": UserDetails,
  "updatedBy": UserDetails,
  "createdAt": "abc123",
  "updatedAt": "xyz789",
  "summary": GameDaySummary,
  "isRemoved": false
}

GameDayRunExperiments

Fields
Field Name Description
experimentID - String!
experimentTemplateName - String!
chaosInfraID - String!
hubID - String!
experimentRunIDs - [String]
experimentNotes - String
Example
{
  "experimentID": "abc123",
  "experimentTemplateName": "xyz789",
  "chaosInfraID": "abc123",
  "hubID": "xyz789",
  "experimentRunIDs": ["abc123"],
  "experimentNotes": "abc123"
}

GameDayRunResponse

Fields
Field Name Description
gameDayRunID - String!
name - String!
gameDayID - String!
identifiers - Identifiers! Harness identifiers
experiments - [GameDayRunExperiments!]
startTime - String
endTime - String
notes - String
summary - GameDaySummary!
createdBy - UserDetails
updatedBy - UserDetails
updatedAt - String
createdAt - String
completed - Boolean
Example
{
  "gameDayRunID": "xyz789",
  "name": "xyz789",
  "gameDayID": "abc123",
  "identifiers": Identifiers,
  "experiments": [GameDayRunExperiments],
  "startTime": "abc123",
  "endTime": "abc123",
  "notes": "xyz789",
  "summary": GameDaySummary,
  "createdBy": UserDetails,
  "updatedBy": UserDetails,
  "updatedAt": "abc123",
  "createdAt": "abc123",
  "completed": false
}

GameDaySummary

Fields
Field Name Description
notes - String
qna - [QnAs!]
actionItem - [ActionItems!]
Example
{
  "notes": "abc123",
  "qna": [QnAs],
  "actionItem": [ActionItems]
}

GamedayFilterInput

Fields
Input Field Description
gamedayName - String
Example
{}

GamedayInfraDetails

Fields
Field Name Description
ID - ID!
type - String
name - String
environmentID - String
namespace - String
scope - INFRA_SCOPE
isActive - Boolean
Example
{
  "ID": 4,
  "type": "abc123",
  "name": "xyz789",
  "environmentID": "abc123",
  "namespace": "abc123",
  "scope": "namespace",
  "isActive": false
}

GamedaySortInput

Description

Defines sorting options for workflow runs

Fields
Input Field Description
field - GamedaySortingField! Field in which sorting will be done
ascending - Boolean Bool value indicating whether the sorting will be done in ascending order
Example
{}

GamedaySortingField

Values
Enum Value Description

NAME

TIME

Example
{}

GetExperimentResponse

Description

Defines the details for a given experiment with some additional data

Fields
Field Name Description
experimentDetails - Workflow! Details of experiment
averageResiliencyScore - Float Average resiliency score of the experiment
Example
{
  "experimentDetails": Workflow,
  "averageResiliencyScore": 123.45
}

GetGameDayResponse

Fields
Field Name Description
gameDayID - ID!
identifiers - Identifiers! Harness identifiers
name - String!
experiments - [GetGamedayExperimentResponse!]
objective - String
description - String
createdBy - UserDetails
createdAt - String
updatedAt - String
summary - GameDaySummary
isRemoved - Boolean
totalGamedayRuns - Int
Example
{
  "gameDayID": 4,
  "identifiers": Identifiers,
  "name": "abc123",
  "experiments": [GetGamedayExperimentResponse],
  "objective": "xyz789",
  "description": "abc123",
  "createdBy": UserDetails,
  "createdAt": "abc123",
  "updatedAt": "xyz789",
  "summary": GameDaySummary,
  "isRemoved": true,
  "totalGamedayRuns": 987
}

GetGamedayExperimentResponse

Fields
Field Name Description
experimentID - String!
experimentTemplateName - String!
chaosInfra - GamedayInfraDetails!
hubID - String!
experimentNotes - String
experimentCSV - String
experimentManifest - String
Example
{
  "experimentID": "xyz789",
  "experimentTemplateName": "xyz789",
  "chaosInfra": GamedayInfraDetails,
  "hubID": "abc123",
  "experimentNotes": "xyz789",
  "experimentCSV": "abc123",
  "experimentManifest": "xyz789"
}

GetInfraStatsResponse

Fields
Field Name Description
totalInfrastructures - Int! Total number of infrastructures
totalActiveInfrastructure - Int! Total number of active infrastructures
totalInactiveInfrastructures - Int! Total number of inactive infrastructures
totalConfirmedInfrastructure - Int! Total number of confirmed infrastructures
totalNonConfirmedInfrastructures - Int! Total number of non confirmed infrastructures
Example
{
  "totalInfrastructures": 987,
  "totalActiveInfrastructure": 987,
  "totalInactiveInfrastructures": 123,
  "totalConfirmedInfrastructure": 987,
  "totalNonConfirmedInfrastructures": 987
}

GetProbeReferenceResponse

Description

Defines the response of the Probe reference API

Fields
Field Name Description
identifiers - Identifiers! Harness identifiers
name - String! Name of the Probe
totalRuns - Int! Total Runs
recentExecutions - [RecentExecutions]! Recent Executions of the probe
Example
{
  "identifiers": Identifiers,
  "name": "abc123",
  "totalRuns": 123,
  "recentExecutions": [RecentExecutions]
}

GetProbeYAMLRequest

Description

Defines the input requests for GetProbeYAML query

Fields
Input Field Description
probeName - ID! Probe name of the probe
mode - Mode! Mode of the Probe (SoT, EoT, Edge, Continuous or OnChaos)
Example
{}

GetProbesInExperimentRunResponse

Description

Defines the response for Get Probe In Experiment Run Query

Fields
Field Name Description
probe - Probe! Probe Object
mode - Mode! Mode of the probe
status - Status! Status of the Probe
Example
{
  "probe": Probe,
  "mode": "SOT",
  "status": Status
}

ID

Description

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
{}

INFRA_SCOPE

Values
Enum Value Description

namespace

cluster

Example
{}

Identifiers

Description

Defines the common identifiers for API operations

Fields
Field Name Description
orgIdentifier - String! Harness OrgID
accountIdentifier - String! Harness AccountID
projectIdentifier - String! Harness projectID
Example
{
  "orgIdentifier": "xyz789",
  "accountIdentifier": "xyz789",
  "projectIdentifier": "abc123"
}

IdentifiersRequest

Fields
Input Field Description
orgIdentifier - String! Harness OrgID
accountIdentifier - String! Harness AccountID
projectIdentifier - String! Harness projectID
Example
{}

ImageRegistryRequest

Fields
Input Field Description
registryServer - String!
registryAccount - String!
isPrivate - Boolean!
secretName - String
isDefault - Boolean!
Example
{}

ImageRegistryResponse

Fields
Field Name Description
identifier - Identifiers!
registryServer - String!
registryAccount - String!
isPrivate - Boolean!
secretName - String
isDefault - Boolean!
createdBy - UserDetails
updatedBy - UserDetails
createdAt - String!
updatedAt - String!
Example
{
  "identifier": Identifiers,
  "registryServer": "xyz789",
  "registryAccount": "xyz789",
  "isPrivate": true,
  "secretName": "abc123",
  "isDefault": true,
  "createdBy": UserDetails,
  "updatedBy": UserDetails,
  "createdAt": "xyz789",
  "updatedAt": "xyz789"
}

Infra

Description

Defines the details for a infra

Fields
Field Name Description
infraID - ID! ID of the infra
name - String! Name of the infra
description - String Description of the infra
tags - [String!] Tags of the infra
environmentID - String! Environment ID for the infra
platformName - String! Infra Platform Name eg. GKE,AWS, Others
isActive - Boolean! Boolean value indicating if chaos infrastructure is active or not
isInfraConfirmed - Boolean! Boolean value indicating if chaos infrastructure is confirmed or not
isRemoved - Boolean! Boolean value indicating if chaos infrastructure is removed or not
updatedAt - String! Timestamp when the infra was last updated
createdAt - String! Timestamp when the infra was created
noOfSchedules - Int Number of schedules created in the infra
noOfWorkflows - Int Number of workflows run in the infra
token - String! Token used to verify and retrieve the infra manifest
infraNamespace - String Namespace where the infra is being installed
serviceAccount - String Name of service account used by infra
infraScope - INFRA_SCOPE! Scope of the infra : ns or cluster
infraNsExists - Boolean Bool value indicating whether infra ns used already exists on infra or not
infraSaExists - Boolean Bool value indicating whether service account used already exists on infra or not
installationType - InstallationType! InstallationType connector/manifest
k8sConnectorID - String K8sConnectorID
lastWorkflowTimestamp - String Timestamp of the last workflow run in the infra
startTime - String! Timestamp when the infra got connected
version - String! Version of the infra
createdBy - UserDetails User who created the infra
updatedBy - UserDetails User who has updated the infra
lastHeartbeat - String Last Heartbeat status sent by the infra
infraType - InfrastructureType Type of the infrastructure
updateStatus - UpdateStatus! update status of infra
isSecretEnabled - Boolean Tune secret for infra
runAsUser - Int set the user for security context in pod
runAsGroup - Int set the user group for security context in pod
upgrade - Upgrade! Upgrade struct for the chaos infrastructure
Example
{
  "infraID": "4",
  "name": "xyz789",
  "description": "abc123",
  "tags": ["xyz789"],
  "environmentID": "abc123",
  "platformName": "abc123",
  "isActive": false,
  "isInfraConfirmed": false,
  "isRemoved": false,
  "updatedAt": "xyz789",
  "createdAt": "abc123",
  "noOfSchedules": 987,
  "noOfWorkflows": 123,
  "token": "xyz789",
  "infraNamespace": "abc123",
  "serviceAccount": "abc123",
  "infraScope": "namespace",
  "infraNsExists": false,
  "infraSaExists": false,
  "installationType": "CONNECTOR",
  "k8sConnectorID": "xyz789",
  "lastWorkflowTimestamp": "abc123",
  "startTime": "xyz789",
  "version": "abc123",
  "createdBy": UserDetails,
  "updatedBy": UserDetails,
  "lastHeartbeat": "abc123",
  "infraType": "Kubernetes",
  "updateStatus": "AVAILABLE",
  "isSecretEnabled": false,
  "runAsUser": 123,
  "runAsGroup": 987,
  "upgrade": Upgrade
}

InfraFilterInput

Description

Defines filter options for infras

Fields
Input Field Description
name - String Name of the infra
infraID - String ID of the infra
description - String ID of the infra
platformName - String Platform name of infra
infraScope - INFRA_SCOPE Scope of infra
isActive - Boolean Status of infra
tags - [String] Tags of an infra
Example
{}

InfraSpec

Fields
Field Name Description
infraId - String
infraType - InfrastructureType
chaosServiceAccountSpecs - [ChaosServiceAccountSpecs]
applicationSpecs - [ApplicationSpecs]
Example
{
  "infraId": "abc123",
  "infraType": "Kubernetes",
  "chaosServiceAccountSpecs": [ChaosServiceAccountSpecs],
  "applicationSpecs": [ApplicationSpecs]
}

InfraSpecInput

Fields
Input Field Description
infraId - String!
infraType - InfrastructureType!
chaosServiceAccountSpecs - [ChaosServiceAccountSpecsInput!]!
applicationSpecs - [ApplicationSpecsInput!]!
Example
{}

InfraVersionDetails

Description

InfraVersionDetails returns the details of compatible infra versions and the latest infra version supported

Fields
Field Name Description
latestVersion - String! Latest infra version supported
compatibleVersions - [String!]! List of all infra versions supported
Example
{
  "latestVersion": "abc123",
  "compatibleVersions": ["abc123"]
}

InfrastructureType

Values
Enum Value Description

Kubernetes

Linux

All

Example
{}

InstallationType

Description

InstallationType defines the installation method used by the user

Values
Enum Value Description

CONNECTOR

MANIFEST

Example
{}

Int

Description

The Int scalar type represents non-fractional signed whole numeric values. Int can represent values between -(2^31) and 2^31 - 1.

Example
{}

JSON

Example
{}

K8SProbe

Description

Defines the K8S probe properties

Fields
Field Name Description
probeTimeout - String! Timeout of the Probe
interval - String! Interval of the Probe
retry - Int Retry interval of the Probe
attempt - Int Attempt contains the total attempt count for the probe
probePollingInterval - String Polling interval of the Probe
initialDelay - String Initial delay interval of the Probe in seconds
evaluationTimeout - String EvaluationTimeout is the timeout window in which the SLO metrics
stopOnFailure - Boolean Is stop on failure enabled in the Probe
group - String Group of the Probe
version - String! Version of the Probe
resource - String! Resource of the Probe
namespace - String Namespace of the Probe
fieldSelector - String Field Selector of the Probe
labelSelector - String Label Selector of the Probe
operation - String! Operation of the Probe
Example
{
  "probeTimeout": "xyz789",
  "interval": "abc123",
  "retry": 123,
  "attempt": 987,
  "probePollingInterval": "xyz789",
  "initialDelay": "abc123",
  "evaluationTimeout": "abc123",
  "stopOnFailure": true,
  "group": "abc123",
  "version": "abc123",
  "resource": "xyz789",
  "namespace": "xyz789",
  "fieldSelector": "xyz789",
  "labelSelector": "xyz789",
  "operation": "xyz789"
}

K8SProbeRequest

Description

Defines the input for K8S probe properties

Fields
Input Field Description
probeTimeout - String! Timeout of the Probe
interval - String! Interval of the Probe
retry - Int Retry interval of the Probe
attempt - Int Attempt contains the total attempt count for the probe
probePollingInterval - String Polling interval of the Probe
initialDelay - String Initial delay interval of the Probe in seconds
evaluationTimeout - String EvaluationTimeout is the timeout window in which the SLO metrics
stopOnFailure - Boolean Is stop on failure enabled in the Probe
group - String Group of the Probe
version - String! Version of the Probe
resource - String! Resource of the Probe
namespace - String Namespace of the Probe
fieldSelector - String Field Selector of the Probe
labelSelector - String Label Selector of the Probe
operation - String! Operation of the Probe
Example
{}

KubernetesCMDProbe

Description

Defines the Kubernetes CMD probe properties

Fields
Field Name Description
probeTimeout - String! Timeout of the Probe
interval - String! Interval of the Probe
retry - Int Retry interval of the Probe
attempt - Int Attempt contains the total attempt count for the probe
probePollingInterval - String Polling interval of the Probe
initialDelay - String Initial delay interval of the Probe in seconds
evaluationTimeout - String EvaluationTimeout is the timeout window in which the SLO metrics
stopOnFailure - Boolean Is stop on failure enabled in the Probe
command - String! Command of the Probe
comparator - Comparator! Comparator of the Probe
source - String Source of the Probe
Example
{
  "probeTimeout": "abc123",
  "interval": "abc123",
  "retry": 123,
  "attempt": 123,
  "probePollingInterval": "abc123",
  "initialDelay": "abc123",
  "evaluationTimeout": "xyz789",
  "stopOnFailure": true,
  "command": "abc123",
  "comparator": Comparator,
  "source": "abc123"
}

KubernetesCMDProbeRequest

Description

Defines the input for Kubernetes CMD probe properties

Fields
Input Field Description
probeTimeout - String! Timeout of the Probe
interval - String! Interval of the Probe
retry - Int Retry interval of the Probe
attempt - Int Attempt contains the total attempt count for the probe
probePollingInterval - String Polling interval of the Probe
initialDelay - String Initial delay interval of the Probe in seconds
evaluationTimeout - String EvaluationTimeout is the timeout window in which the SLO metrics
stopOnFailure - Boolean Is stop on failure enabled in the Probe
command - String! Command of the Probe
comparator - ComparatorInput! Comparator of the Probe
source - String Source of the Probe
Example
{}

KubernetesHTTPProbe

Description

Defines the Kubernetes HTTP probe properties

Fields
Field Name Description
probeTimeout - String! Timeout of the Probe
interval - String! Interval of the Probe
retry - Int Retry interval of the Probe
attempt - Int Attempt contains the total attempt count for the probe
probePollingInterval - String Polling interval of the Probe
initialDelay - String Initial delay interval of the Probe in seconds
evaluationTimeout - String EvaluationTimeout is the timeout window in which the SLO metrics
stopOnFailure - Boolean Is stop on failure enabled in the Probe
url - String! URL of the Probe
method - Method! HTTP method of the Probe
insecureSkipVerify - Boolean If Insecure HTTP verification should be skipped
Example
{
  "probeTimeout": "xyz789",
  "interval": "xyz789",
  "retry": 987,
  "attempt": 987,
  "probePollingInterval": "xyz789",
  "initialDelay": "xyz789",
  "evaluationTimeout": "xyz789",
  "stopOnFailure": false,
  "url": "xyz789",
  "method": Method,
  "insecureSkipVerify": true
}

KubernetesHTTPProbeRequest

Description

Defines the input for Kubernetes HTTP probe properties

Fields
Input Field Description
probeTimeout - String! Timeout of the Probe
interval - String! Interval of the Probe
retry - Int Retry interval of the Probe
attempt - Int Attempt contains the total attempt count for the probe
probePollingInterval - String Polling interval of the Probe
initialDelay - String Initial delay interval of the Probe in seconds
evaluationTimeout - String EvaluationTimeout is the timeout window in which the SLO metrics
stopOnFailure - Boolean Is stop on failure enabled in the Probe
url - String! URL of the Probe
method - MethodRequest! HTTP method of the Probe
insecureSkipVerify - Boolean If Insecure HTTP verification should be skipped
Example
{}

LinuxCMDProbe

Description

Defines the Linux CMD probe properties

Fields
Field Name Description
probeTimeout - String! Timeout of the Probe
interval - String! Interval of the Probe
attempt - Int Attempt contains the total attempt count for the probe
probePollingInterval - String Polling interval of the Probe
initialDelay - String Initial delay interval of the Probe in seconds
stopOnFailure - Boolean Is stop on failure enabled in the Probe
command - String! Command of the Probe
comparator - Comparator! Comparator of the Probe
source - String Source of the Probe
Example
{
  "probeTimeout": "abc123",
  "interval": "abc123",
  "attempt": 987,
  "probePollingInterval": "abc123",
  "initialDelay": "abc123",
  "stopOnFailure": false,
  "command": "abc123",
  "comparator": Comparator,
  "source": "abc123"
}

LinuxCMDProbeRequest

Description

Defines the input for Linux CMD probe properties

Fields
Input Field Description
probeTimeout - String! Timeout of the Probe
interval - String! Interval of the Probe
attempt - Int Attempt contains the total attempt count for the probe
probePollingInterval - String Polling interval of the Probe
initialDelay - String Initial delay interval of the Probe in seconds
stopOnFailure - Boolean Is stop on failure enabled in the Probe
command - String! Command of the Probe
comparator - ComparatorInput! Comparator of the Probe
source - String Source of the Probe
Example
{}

LinuxHTTPProbe

Description

Defines the Linux HTTP probe properties

Fields
Field Name Description
probeTimeout - String! Timeout of the Probe
interval - String! Interval of the Probe
attempt - Int Attempt contains the total attempt count for the probe
probePollingInterval - String Polling interval of the Probe
initialDelay - String Initial delay interval of the Probe in seconds
stopOnFailure - Boolean Is stop on failure enabled in the Probe
url - String! URL of the Probe
method - Method! HTTP method of the Probe
insecureSkipVerify - Boolean If Insecure HTTP verification should be skipped
Example
{
  "probeTimeout": "xyz789",
  "interval": "abc123",
  "attempt": 987,
  "probePollingInterval": "xyz789",
  "initialDelay": "abc123",
  "stopOnFailure": false,
  "url": "xyz789",
  "method": Method,
  "insecureSkipVerify": true
}

LinuxHTTPProbeRequest

Description

Defines the input for Linux HTTP probe properties

Fields
Input Field Description
probeTimeout - String! Timeout of the Probe
interval - String! Interval of the Probe
attempt - Int Attempt contains the total attempt count for the probe
probePollingInterval - String Polling interval of the Probe
initialDelay - String Initial delay interval of the Probe in seconds
stopOnFailure - Boolean Is stop on failure enabled in the Probe
url - String! URL of the Probe
method - MethodRequest! HTTP method of the Probe
insecureSkipVerify - Boolean If Insecure HTTP verification should be skipped
Example
{}

LinuxInfra

Description

Defines the details for a infra

Fields
Field Name Description
infraID - ID! ID of the infra
name - String! Name of the infra
description - String Description of the infra
tags - [String!] Tags of the infra
environmentID - String! Environment ID for the infra
isActive - Boolean! Boolean value indicating if chaos infrastructure is active or not
isInfraConfirmed - Boolean! Boolean value indicating if chaos infrastructure is confirmed or not
isRemoved - Boolean! Boolean value indicating if chaos infrastructure is removed or not
updatedAt - String! Timestamp when the infra was last updated
createdAt - String! Timestamp when the infra was created
noOfSchedules - Int Number of schedules created in the infra
noOfWorkflows - Int Number of workflows run in the infra
lastWorkflowTimestamp - String Timestamp of the last workflow run in the infra
startTime - String! Timestamp when the infra got connected
version - String! Version of the infra
createdBy - UserDetails User who created the infra
updatedBy - UserDetails User who has updated the infra
lastHeartbeat - String Last Heartbeat status sent by the infra
hostname - String hostname of the infra
Example
{
  "infraID": "4",
  "name": "abc123",
  "description": "abc123",
  "tags": ["abc123"],
  "environmentID": "abc123",
  "isActive": false,
  "isInfraConfirmed": true,
  "isRemoved": false,
  "updatedAt": "xyz789",
  "createdAt": "xyz789",
  "noOfSchedules": 123,
  "noOfWorkflows": 987,
  "lastWorkflowTimestamp": "xyz789",
  "startTime": "xyz789",
  "version": "xyz789",
  "createdBy": UserDetails,
  "updatedBy": UserDetails,
  "lastHeartbeat": "xyz789",
  "hostname": "abc123"
}

LinuxInfraFilterInput

Description

Defines filter options for infras

Fields
Input Field Description
name - String Name of the infra
infraID - String ID of the infra
description - String ID of the infra
isActive - Boolean Status of infra
tags - [String] Tags of an infra
Example
{}

ListChaosHubRequest

Fields
Input Field Description
chaosHubIDs - [ID!] Array of ChaosHub IDs for which details will be fetched
filter - ChaosHubFilterInput Details for fetching filtered data
Example
{}

ListGameDayRequest

Fields
Input Field Description
gameDayIDs - [String!]
pagination - Pagination Details for fetching paginated data
filter - GamedayFilterInput Details for fetching filtered data
sort - GamedaySortInput Details for fetching sorted data
Example
{}

ListGameDayRunsRequest

Fields
Input Field Description
gameDayRunIDs - [String!]
gameDayIDs - [String!]
Example
{}

ListGamedayResponse

Fields
Field Name Description
totalNoOfGamedays - Int! Total number of workflows
gamedays - [GameDayResponse]! Details related to the workflows
Example
{"totalNoOfGamedays": 123, "gamedays": [GameDayResponse]}

ListInfraRequest

Description

Defines the details for a workflow

Fields
Input Field Description
infraIDs - [ID!] Array of infra IDs for which details will be fetched
environmentIDs - [ID!] Environment ID
k8sConnectorIDs - [ID!] Connector ID
pagination - Pagination Details for fetching paginated data
filter - InfraFilterInput Details for fetching filtered data
Example
{}

ListInfraResponse

Description

Defines the details for a infras with total infras count

Fields
Field Name Description
totalNoOfInfras - Int! Total number of infras
infras - [Infra]! Details related to the infras
Example
{"totalNoOfInfras": 123, "infras": [Infra]}

ListLinuxInfraRequest

Description

Defines the details for a workflow

Fields
Input Field Description
infraIDs - [ID!] Array of infra IDs for which details will be fetched
environmentIDs - [ID!] Environment ID
pagination - Pagination Details for fetching paginated data
filter - LinuxInfraFilterInput Details for fetching filtered data
Example
{}

ListLinuxInfraResponse

Description

Defines the details for a infras with total infras count

Fields
Field Name Description
totalNoOfInfras - Int! Total number of infras
infras - [LinuxInfra]! Details related to the infras
Example
{"totalNoOfInfras": 987, "infras": [LinuxInfra]}

ListWorkflowRequest

Description

Defines the details for a workflow

Fields
Input Field Description
workflowIDs - [ID] Array of workflow IDs for which details will be fetched
pagination - Pagination Details for fetching paginated data
sort - WorkflowSortInput Details for fetching sorted data
filter - WorkflowFilterInput Details for fetching filtered data
Example
{}

ListWorkflowResponse

Description

Defines the details for a workflow with total workflow count

Fields
Field Name Description
totalNoOfWorkflows - Int! Total number of workflows
workflows - [Workflow]! Details related to the workflows
Example
{"totalNoOfWorkflows": 987, "workflows": [Workflow]}

ListWorkflowRunRequest

Description

Defines the details for workflow runs

Fields
Input Field Description
workflowRunIDs - [ID] Array of workflow run IDs for which details will be fetched
notifyIDs - [ID] Array of notify IDs for which details will be fetched
workflowIDs - [ID] Array of workflow IDs for which details will be fetched
pagination - Pagination Details for fetching paginated data
sort - WorkflowRunSortInput Details for fetching sorted data
filter - WorkflowRunFilterInput Details for fetching filtered data
Example
{}

ListWorkflowRunResponse

Description

Defines the details of a workflow to sent as response

Fields
Field Name Description
totalNoOfWorkflowRuns - Int! Total number of workflow runs
workflowRuns - [WorkflowRun]! Defines details of workflow runs
Example
{
  "totalNoOfWorkflowRuns": 123,
  "workflowRuns": [WorkflowRun]
}

Maintainer

Description

Defines the details of the maintainer

Fields
Field Name Description
name - String! Name of the maintainer
email - String! Email of the maintainer
Example
{
  "name": "xyz789",
  "email": "abc123"
}

Metadata

Fields
Field Name Description
name - String!
version - String!
annotations - Annotation!
Example
{
  "name": "xyz789",
  "version": "abc123",
  "annotations": Annotation
}

Method

Description

Defines the methods of the probe properties

Fields
Field Name Description
get - GET A GET request
post - POST A POST request
Example
{"get": GET, "post": POST}

MethodRequest

Description

Defines the input for methods of the probe properties

Fields
Input Field Description
get - GETRequest A GET request
post - POSTRequest A POST request
Example
{}

Mode

Description

Defines the different modes of Probes

Values
Enum Value Description

SOT

EOT

Edge

Continuous

OnChaos

Example
{}

NonCronExperiment

Fields
Input Field Description
experimentID - String
experimentTemplateName - String!
chaosInfraID - String!
hubID - String!
Example
{}

POST

Description

Details of POST request

Fields
Field Name Description
contentType - String Content Type of the request
body - String Body of the request
bodyPath - String Body Path of the HTTP body required for the http post request
criteria - String! Criteria of the request
responseCode - String! Response Code of the request
Example
{
  "contentType": "abc123",
  "body": "abc123",
  "bodyPath": "abc123",
  "criteria": "xyz789",
  "responseCode": "xyz789"
}

POSTRequest

Description

Details for input of the POST request

Fields
Input Field Description
contentType - String Content Type of the request
body - String Body of the request
bodyPath - String Body Path of the request for Body
criteria - String! Criteria of the request
responseCode - String! Response Code of the request
Example
{}

PROMProbe

Description

Defines the PROM probe properties

Fields
Field Name Description
probeTimeout - String! Timeout of the Probe
interval - String! Interval of the Probe
retry - Int Retry interval of the Probe
attempt - Int Attempt contains the total attempt count for the probe
probePollingInterval - String Polling interval of the Probe
initialDelay - String Initial delay interval of the Probe in seconds
evaluationTimeout - String EvaluationTimeout is the timeout window in which the SLO metrics
stopOnFailure - Boolean Is stop on failure enabled in the Probe
endpoint - String! Endpoint of the Probe
query - String Query of the Probe
queryPath - String Query path of the Probe
comparator - Comparator! Comparator of the Probe
Example
{
  "probeTimeout": "xyz789",
  "interval": "abc123",
  "retry": 123,
  "attempt": 123,
  "probePollingInterval": "xyz789",
  "initialDelay": "abc123",
  "evaluationTimeout": "abc123",
  "stopOnFailure": true,
  "endpoint": "abc123",
  "query": "abc123",
  "queryPath": "abc123",
  "comparator": Comparator
}

PROMProbeRequest

Description

Defines the input for PROM probe properties

Fields
Input Field Description
probeTimeout - String! Timeout of the Probe
interval - String! Interval of the Probe
retry - Int Retry interval of the Probe
attempt - Int Attempt contains the total attempt count for the probe
probePollingInterval - String Polling interval of the Probe
initialDelay - String Initial delay interval of the Probe in seconds
evaluationTimeout - String EvaluationTimeout is the timeout window in which the SLO metrics
stopOnFailure - Boolean Is stop on failure enabled in the Probe
endpoint - String! Endpoint of the Probe
query - String Query of the Probe
queryPath - String Query path of the Probe
comparator - ComparatorInput! Comparator of the Probe
Example
{}

PackageInformation

Fields
Field Name Description
packageName - String!
experiments - [Experiments!]!
Example
{
  "packageName": "xyz789",
  "experiments": [Experiments]
}

Pagination

Description

Defines data required to fetch paginated data

Fields
Input Field Description
page - Int! Page number for which data will be fetched
limit - Int! Number of data to be fetched
Example
{}

PredefinedWorkflowList

Fields
Field Name Description
workflowName - String!
workflowCSV - String!
workflowManifest - String!
Example
{
  "workflowName": "abc123",
  "workflowCSV": "abc123",
  "workflowManifest": "abc123"
}

Probe

Description

Defines the details of the Probe entity

Fields
Field Name Description
identifiers - Identifiers! Harness identifiers
name - String! Name of the Probe
description - String Description of the Probe
tags - [String!] Tags of the Probe
type - ProbeType! Type of the Probe [From list of ProbeType enum]
infrastructureType - InfrastructureType! Infrastructure type of the Probe
kubernetesHTTPProperties - KubernetesHTTPProbe Kubernetes HTTP Properties of the specific type of the Probe
linuxHTTPProperties - LinuxHTTPProbe Linux HTTP Properties of the specific type of the Probe
kubernetesCMDProperties - KubernetesCMDProbe Kubernetes CMD Properties of the specific type of the Probe
linuxCMDProperties - LinuxCMDProbe Linux CMD Properties of the specific type of the Probe
k8sProperties - K8SProbe K8S Properties of the specific type of the Probe
promProperties - PROMProbe PROM Properties of the specific type of the Probe
sloProperties - SLOProbe SLO Properties of the specific type of the Probe
recentExecutions - [ProbeRecentExecutions!] All execution histories of the probe
referencedBy - Int Referenced by how many faults
updatedAt - String! Timestamp at which the Probe was last updated
createdAt - String! Timestamp at which the Probe was created
updatedBy - UserDetails User who has updated the Probe
createdBy - UserDetails User who has created the Probe
Example
{
  "identifiers": Identifiers,
  "name": "xyz789",
  "description": "abc123",
  "tags": ["abc123"],
  "type": "httpProbe",
  "infrastructureType": "Kubernetes",
  "kubernetesHTTPProperties": KubernetesHTTPProbe,
  "linuxHTTPProperties": LinuxHTTPProbe,
  "kubernetesCMDProperties": KubernetesCMDProbe,
  "linuxCMDProperties": LinuxCMDProbe,
  "k8sProperties": K8SProbe,
  "promProperties": PROMProbe,
  "sloProperties": SLOProbe,
  "recentExecutions": [ProbeRecentExecutions],
  "referencedBy": 123,
  "updatedAt": "xyz789",
  "createdAt": "xyz789",
  "updatedBy": UserDetails,
  "createdBy": UserDetails
}

ProbeFilterInput

Description

Defines the input for Probe filter

Fields
Input Field Description
name - String Name of the Probe
dateRange - DateRange Date range for filtering purpose
type - [ProbeType] Type of the Probe [From list of ProbeType enum]
Example
{}

ProbeMap

Fields
Field Name Description
faultName - String!
probeName - [String]!
Example
{
  "faultName": "xyz789",
  "probeName": ["xyz789"]
}

ProbeRecentExecutions

Description

Defines the Recent Executions of global probe in ListProbe API with different fault and execution history each time

Fields
Field Name Description
faultName - String! Fault name
status - Status! Fault Status
executedByExperiment - ExecutedByExperiment! Fault executed by which experiment
Example
{
  "faultName": "xyz789",
  "status": Status,
  "executedByExperiment": ExecutedByExperiment
}

ProbeRequest