# ChaosCenter API Documentation

Litmus Portal provides console and UI experience for managing, monitoring, and events around chaos workflows. Chaos workflows consist of a sequence of experiments run together to achieve the objective of introducing some kind of fault into an application or the Kubernetes platform.

##### API Endpoints

    # Dev:
    http://localhost:8080
    # Prod:
    http://localhost:8080/query

## Common Error Response

All error responses follow the structure outlined below.

    {
      "errors": [
        {
          "message": "Error message",
          "path": [
            "Request path"
          ]
        }
      ],
      "data": {}
    }

### Field Descriptions:

- errors:
  An array of error objects. Multiple errors can occur, and each error contains a message and a path field.
  Type: `Array`
  - message:
    A description of the error.
    Type: `String`
  - path:
    Indicates the GraphQL or API operation path where the error occurred. It helps in identifying which operation or resolver triggered the error.
    Type: `Array of Strings`
- data:
  This field contains the data returned from the request. In the event of an error, the field corresponding to the failed operation will be null, while other successful operations (if any) will still return valid data.
  Type: `Object`

# Queries

## `getChaosFault`

##### Description

Get the fault list from a ChaosHub

##### Response

Returns a `FaultDetails!`

##### Arguments

Name | Description
--- | ---
`projectID` - `ID!` |
`request` - `ExperimentRequest!` |

#### Example

##### Query

    query GetChaosFault(
      $projectID: ID!,
      $request: ExperimentRequest!
    ) {
      getChaosFault(
        projectID: $projectID,
        request: $request
      ) {
        fault
        engine
        csv
      }
    }

##### Variables

    {"projectID": 4, "request": ExperimentRequest}

##### Response

    {
      "data": {
        "getChaosFault": {
          "fault": "abc123",
          "engine": "abc123",
          "csv": "abc123"
        }
      }
    }

Queries

## `getChaosHub`

##### Description

Get the details of a requested ChaosHub

##### Response

Returns a `ChaosHubStatus!`

##### Arguments

Name | Description
--- | ---
`projectID` - `ID!` |
`chaosHubID` - `ID!` |

#### Example

##### Query

    query GetChaosHub(
      $projectID: ID!,
      $chaosHubID: ID!
    ) {
      getChaosHub(
        projectID: $projectID,
        chaosHubID: $chaosHubID
      ) {
        id
        repoURL
        repoBranch
        isAvailable
        totalFaults
        totalExperiments
        name
        hubType
        isPrivate
        authType
        token
        userName
        password
        isRemoved
        sshPrivateKey
        sshPublicKey
        lastSyncedAt
        tags
        createdBy {
          userID
          username
          email
        }
        updatedBy {
          userID
          username
          email
        }
        createdAt
        updatedAt
        description
        isDefault
      }
    }

##### Variables

    {"projectID": "4", "chaosHubID": 4}

##### Response

    {
      "data": {
        "getChaosHub": {
          "id": 4,
          "repoURL": "xyz789",
          "repoBranch": "xyz789",
          "isAvailable": false,
          "totalFaults": "abc123",
          "totalExperiments": "xyz789",
          "name": "abc123",
          "hubType": "GIT",
          "isPrivate": false,
          "authType": "BASIC",
          "token": "abc123",
          "userName": "abc123",
          "password": "abc123",
          "isRemoved": false,
          "sshPrivateKey": "xyz789",
          "sshPublicKey": "abc123",
          "lastSyncedAt": "xyz789",
          "tags": ["xyz789"],
          "createdBy": UserDetails,
          "updatedBy": UserDetails,
          "createdAt": "xyz789",
          "updatedAt": "xyz789",
          "description": "xyz789",
          "isDefault": false
        }
      }
    }

Queries

## `getChaosHubStats`

##### Description

Query to get experiment stats

##### Response

Returns a `GetChaosHubStatsResponse!`

##### Arguments

Name | Description
--- | ---
`projectID` - `ID!` |

#### Example

##### Query

    query GetChaosHubStats($projectID: ID!) {
      getChaosHubStats(projectID: $projectID) {
        totalChaosHubs
      }
    }

##### Variables

    {"projectID": "4"}

##### Response

    {"data": {"getChaosHubStats": {"totalChaosHubs": 123}}}

Queries

## `getEnvironment`

##### Response

Returns an `Environment`

##### Arguments

Name | Description
--- | ---
`projectID` - `ID!` |
`environmentID` - `ID!` |

#### Example

##### Query

    query GetEnvironment(
      $projectID: ID!,
      $environmentID: ID!
    ) {
      getEnvironment(
        projectID: $projectID,
        environmentID: $environmentID
      ) {
        projectID
        environmentID
        name
        description
        tags
        type
        createdAt
        createdBy {
          userID
          username
          email
        }
        updatedBy {
          userID
          username
          email
        }
        updatedAt
        isRemoved
        infraIDs
      }
    }

##### Variables

    {"projectID": 4, "environmentID": "4"}

##### Response

    {
      "data": {
        "getEnvironment": {
          "projectID": "xyz789",
          "environmentID": "xyz789",
          "name": "abc123",
          "description": "xyz789",
          "tags": ["abc123"],
          "type": "PROD",
          "createdAt": "abc123",
          "createdBy": UserDetails,
          "updatedBy": UserDetails,
          "updatedAt": "abc123",
          "isRemoved": false,
          "infraIDs": ["xyz789"]
        }
      }
    }

Queries

## `getExperiment`

##### Description

Returns the experiment based on experiment ID

##### Response

Returns a `GetExperimentResponse!`

##### Arguments

Name | Description
--- | ---
`projectID` - `ID!` |
`experimentID` - `String!` |

#### Example

##### Query

    query GetExperiment(
      $projectID: ID!,
      $experimentID: String!
    ) {
      getExperiment(
        projectID: $projectID,
        experimentID: $experimentID
      ) {
        experimentDetails {
          projectID
          experimentID
          experimentType
          experimentManifest
          cronSyntax
          name
          description
          weightages {
            ...WeightagesFragment
          }
          isCustomExperiment
          updatedAt
          createdAt
          infra {
            ...InfraFragment
          }
          isRemoved
          tags
          createdBy {
            ...UserDetailsFragment
          }
          recentExperimentRunDetails {
            ...RecentExperimentRunFragment
          }
          updatedBy {
            ...UserDetailsFragment
          }
        }
        averageResiliencyScore
      }
    }

##### Variables

    {
      "projectID": "4",
      "experimentID": "xyz789"
    }

##### Response

    {
      "data": {
        "getExperiment": {
          "experimentDetails": Experiment,
          "averageResiliencyScore": 123.45
        }
      }
    }

Queries

## `getExperimentRun`

##### Description

Returns experiment run based on experiment run ID

##### Response

Returns an `ExperimentRun!`

##### Arguments

Name | Description
--- | ---
`projectID` - `ID!` |
`experimentRunID` - `ID` |
`notifyID` - `ID` |

#### Example

##### Query

    query GetExperimentRun(
      $projectID: ID!,
      $experimentRunID: ID,
      $notifyID: ID
    ) {
      getExperimentRun(
        projectID: $projectID,
        experimentRunID: $experimentRunID,
        notifyID: $notifyID
      ) {
        projectID
        experimentRunID
        experimentType
        experimentID
        weightages {
          faultName
          weightage
        }
        updatedAt
        createdAt
        infra {
          projectID
          infraID
          name
          description
          tags
          environmentID
          platformName
          isActive
          isInfraConfirmed
          isRemoved
          updatedAt
          createdAt
          noOfExperiments
          noOfExperimentRuns
          token
          infraNamespace
          serviceAccount
          infraScope
          infraNsExists
          infraSaExists
          lastExperimentTimestamp
          startTime
          version
          createdBy {
            ...UserDetailsFragment
          }
          updatedBy {
            ...UserDetailsFragment
          }
          infraType
          updateStatus
        }
        experimentName
        experimentManifest
        phase
        resiliencyScore
        faultsPassed
        faultsFailed
        faultsAwaited
        faultsStopped
        faultsNa
        totalFaults
        executionData
        isRemoved
        updatedBy {
          userID
          username
          email
        }
        createdBy {
          userID
          username
          email
        }
        notifyID
        runSequence
      }
    }

##### Variables

    {
      "projectID": "4",
      "experimentRunID": "4",
      "notifyID": "4"
    }

##### Response

    {
      "data": {
        "getExperimentRun": {
          "projectID": "4",
          "experimentRunID": "4",
          "experimentType": "abc123",
          "experimentID": 4,
          "weightages": [Weightages],
          "updatedAt": "xyz789",
          "createdAt": "abc123",
          "infra": Infra,
          "experimentName": "xyz789",
          "experimentManifest": "xyz789",
          "phase": "All",
          "resiliencyScore": 123.45,
          "faultsPassed": 987,
          "faultsFailed": 123,
          "faultsAwaited": 123,
          "faultsStopped": 987,
          "faultsNa": 987,
          "totalFaults": 123,
          "executionData": "xyz789",
          "isRemoved": true,
          "updatedBy": UserDetails,
          "createdBy": UserDetails,
          "notifyID": "4",
          "runSequence": 987
        }
      }
    }

Queries

## `getExperimentRunStats`

##### Description

Query to get experiment run stats

##### Response

Returns a `GetExperimentRunStatsResponse!`

##### Arguments

Name | Description
--- | ---
`projectID` - `ID!` |

#### Example

##### Query

    query GetExperimentRunStats($projectID: ID!) {
      getExperimentRunStats(projectID: $projectID) {
        totalExperimentRuns
        totalCompletedExperimentRuns
        totalTerminatedExperimentRuns
        totalRunningExperimentRuns
        totalStoppedExperimentRuns
        totalErroredExperimentRuns
      }
    }

##### Variables

    {"projectID": "4"}

##### Response

    {
      "data": {
        "getExperimentRunStats": {
          "totalExperimentRuns": 987,
          "totalCompletedExperimentRuns": 987,
          "totalTerminatedExperimentRuns": 123,
          "totalRunningExperimentRuns": 123,
          "totalStoppedExperimentRuns": 123,
          "totalErroredExperimentRuns": 987
        }
      }
    }

Queries

## `getExperimentStats`

##### Description

Query to get experiment stats

##### Response

Returns a `GetExperimentStatsResponse!`

##### Arguments

Name | Description
--- | ---
`projectID` - `ID!` |

#### Example

##### Query

    query GetExperimentStats($projectID: ID!) {
      getExperimentStats(projectID: $projectID) {
        totalExperiments
        totalExpCategorizedByResiliencyScore {
          id
          count
        }
      }
    }

##### Variables

    {"projectID": "4"}

##### Response

    {
      "data": {
        "getExperimentStats": {
          "totalExperiments": 987,
          "totalExpCategorizedByResiliencyScore": [
            ResilienceScoreCategory
          ]
        }
      }
    }

Queries

## `getGitOpsDetails`

##### Description

Returns the git configuration for gitops

##### Response

Returns a `GitConfigResponse!`

##### Arguments

Name | Description
--- | ---
`projectID` - `ID!` |

#### Example

##### Query

    query GetGitOpsDetails($projectID: ID!) {
      getGitOpsDetails(projectID: $projectID) {
        enabled
        projectID
        branch
        repoURL
        authType
        token
        userName
        password
        sshPrivateKey
      }
    }

##### Variables

    {"projectID": 4}

##### Response

    {
      "data": {
        "getGitOpsDetails": {
          "enabled": false,
          "projectID": "abc123",
          "branch": "abc123",
          "repoURL": "xyz789",
          "authType": "BASIC",
          "token": "abc123",
          "userName": "xyz789",
          "password": "abc123",
          "sshPrivateKey": "abc123"
        }
      }
    }

Queries

## `getImageRegistry`

##### Response

Returns an `ImageRegistryResponse!`

##### Arguments

Name | Description
--- | ---
`projectID` - `String!` |

#### Example

##### Query

    query GetImageRegistry($projectID: String!) {
      getImageRegistry(projectID: $projectID) {
        isDefault
        imageRegistryInfo {
          isDefault
          imageRegistryName
          imageRepoName
          imageRegistryType
          secretName
          secretNamespace
          enableRegistry
        }
        imageRegistryID
        projectID
        updatedAt
        createdAt
        createdBy {
          userID
          username
          email
        }
        updatedBy {
          userID
          username
          email
        }
        isRemoved
      }
    }

##### Variables

    {"projectID": "abc123"}

##### Response

    {
      "data": {
        "getImageRegistry": {
          "isDefault": false,
          "imageRegistryInfo": ImageRegistry,
          "imageRegistryID": "xyz789",
          "projectID": "abc123",
          "updatedAt": "xyz789",
          "createdAt": "xyz789",
          "createdBy": UserDetails,
          "updatedBy": UserDetails,
          "isRemoved": false
        }
      }
    }

Queries

## `getInfra`

##### Description

Returns infra with a particular infraID in the project

##### Response

Returns an `Infra!`

##### Arguments

Name | Description
--- | ---
`projectID` - `ID!` |
`infraID` - `String!` |

#### Example

##### Query

    query GetInfra(
      $projectID: ID!,
      $infraID: String!
    ) {
      getInfra(
        projectID: $projectID,
        infraID: $infraID
      ) {
        projectID
        infraID
        name
        description
        tags
        environmentID
        platformName
        isActive
        isInfraConfirmed
        isRemoved
        updatedAt
        createdAt
        noOfExperiments
        noOfExperimentRuns
        token
        infraNamespace
        serviceAccount
        infraScope
        infraNsExists
        infraSaExists
        lastExperimentTimestamp
        startTime
        version
        createdBy {
          userID
          username
          email
        }
        updatedBy {
          userID
          username
          email
        }
        infraType
        updateStatus
      }
    }

##### Variables

    {"projectID": 4, "infraID": "xyz789"}

##### Response

    {
      "data": {
        "getInfra": {
          "projectID": 4,
          "infraID": "4",
          "name": "xyz789",
          "description": "xyz789",
          "tags": ["abc123"],
          "environmentID": "abc123",
          "platformName": "abc123",
          "isActive": false,
          "isInfraConfirmed": true,
          "isRemoved": true,
          "updatedAt": "xyz789",
          "createdAt": "xyz789",
          "noOfExperiments": 123,
          "noOfExperimentRuns": 123,
          "token": "xyz789",
          "infraNamespace": "xyz789",
          "serviceAccount": "abc123",
          "infraScope": "xyz789",
          "infraNsExists": true,
          "infraSaExists": false,
          "lastExperimentTimestamp": "abc123",
          "startTime": "abc123",
          "version": "xyz789",
          "createdBy": UserDetails,
          "updatedBy": UserDetails,
          "infraType": "Kubernetes",
          "updateStatus": "AVAILABLE"
        }
      }
    }

Queries

## `getInfraDetails`

##### Description

Returns infra details based on identifiers

##### Response

Returns an `Infra!`

##### Arguments

Name | Description
--- | ---
`infraID` - `ID!` |
`projectID` - `ID!` |

#### Example

##### Query

    query GetInfraDetails(
      $infraID: ID!,
      $projectID: ID!
    ) {
      getInfraDetails(
        infraID: $infraID,
        projectID: $projectID
      ) {
        projectID
        infraID
        name
        description
        tags
        environmentID
        platformName
        isActive
        isInfraConfirmed
        isRemoved
        updatedAt
        createdAt
        noOfExperiments
        noOfExperimentRuns
        token
        infraNamespace
        serviceAccount
        infraScope
        infraNsExists
        infraSaExists
        lastExperimentTimestamp
        startTime
        version
        createdBy {
          userID
          username
          email
        }
        updatedBy {
          userID
          username
          email
        }
        infraType
        updateStatus
      }
    }

##### Variables

    {
      "infraID": "4",
      "projectID": "4"
    }

##### Response

    {
      "data": {
        "getInfraDetails": {
          "projectID": "4",
          "infraID": "4",
          "name": "abc123",
          "description": "abc123",
          "tags": ["xyz789"],
          "environmentID": "xyz789",
          "platformName": "xyz789",
          "isActive": true,
          "isInfraConfirmed": false,
          "isRemoved": false,
          "updatedAt": "xyz789",
          "createdAt": "abc123",
          "noOfExperiments": 987,
          "noOfExperimentRuns": 123,
          "token": "xyz789",
          "infraNamespace": "abc123",
          "serviceAccount": "abc123",
          "infraScope": "xyz789",
          "infraNsExists": false,
          "infraSaExists": false,
          "lastExperimentTimestamp": "xyz789",
          "startTime": "xyz789",
          "version": "xyz789",
          "createdBy": UserDetails,
          "updatedBy": UserDetails,
          "infraType": "Kubernetes",
          "updateStatus": "AVAILABLE"
        }
      }
    }

Queries

## `getInfraManifest`

##### Description

Returns the manifest for a given infraID

##### Response

Returns a `String!`

##### Arguments

Name | Description
--- | ---
`infraID` - `ID!` |
`upgrade` - `Boolean!` |
`projectID` - `ID!` |

#### Example

##### Query

    query GetInfraManifest(
      $infraID: ID!,
      $upgrade: Boolean!,
      $projectID: ID!
    ) {
      getInfraManifest(
        infraID: $infraID,
        upgrade: $upgrade,
        projectID: $projectID
      )
    }

##### Variables

    {
      "infraID": "4",
      "upgrade": true,
      "projectID": "4"
    }

##### Response

    {"data": {"getInfraManifest": "abc123"}}

Queries

## `getInfraStats`

##### Description

Query to get experiment stats

##### Response

Returns a `GetInfraStatsResponse!`

##### Arguments

Name | Description
--- | ---
`projectID` - `ID!` |

#### Example

##### Query

    query GetInfraStats($projectID: ID!) {
      getInfraStats(projectID: $projectID) {
        totalInfrastructures
        totalActiveInfrastructure
        totalInactiveInfrastructures
        totalConfirmedInfrastructure
        totalNonConfirmedInfrastructures
      }
    }

##### Variables

    {"projectID": "4"}

##### Response

    {
      "data": {
        "getInfraStats": {
          "totalInfrastructures": 987,
          "totalActiveInfrastructure": 987,
          "totalInactiveInfrastructures": 987,
          "totalConfirmedInfrastructure": 987,
          "totalNonConfirmedInfrastructures": 987
        }
      }
    }

Queries

## `getPredefinedExperiment`

##### Description

Returns predefined experiment details of selected experiments

##### Response

Returns `[PredefinedExperimentList!]!`

##### Arguments

Name | Description
--- | ---
`hubID` - `ID!` |
`experimentName` - `[String!]!` |
`projectID` - `ID!` |

#### Example

##### Query

    query GetPredefinedExperiment(
      $hubID: ID!,
      $experimentName: [String!]!,
      $projectID: ID!
    ) {
      getPredefinedExperiment(
        hubID: $hubID,
        experimentName: $experimentName,
        projectID: $projectID
      ) {
        experimentName
        experimentCSV
        experimentManifest
      }
    }

##### Variables

    {
      "hubID": "4",
      "experimentName": ["xyz789"],
      "projectID": "4"
    }

##### Response

    {
      "data": {
        "getPredefinedExperiment": [
          {
            "experimentName": "xyz789",
            "experimentCSV": "abc123",
            "experimentManifest": "abc123"
          }
        ]
      }
    }

Queries

## `getProbe`

##### Description

Returns a single Probe based on ProbeName and various filter parameters

##### Response

Returns a `Probe!`

##### Arguments

Name | Description
--- | ---
`projectID` - `ID!` |
`probeName` - `ID!` |

#### Example

##### Query

    query GetProbe(
      $projectID: ID!,
      $probeName: ID!
    ) {
      getProbe(
        projectID: $projectID,
        probeName: $probeName
      ) {
        projectID
        name
        description
        tags
        type
        infrastructureType
        kubernetesHTTPProperties {
          probeTimeout
          interval
          retry
          attempt
          probePollingInterval
          initialDelay
          evaluationTimeout
          stopOnFailure
          url
          method {
            ...MethodFragment
          }
          insecureSkipVerify
        }
        kubernetesCMDProperties {
          probeTimeout
          interval
          retry
          attempt
          probePollingInterval
          initialDelay
          evaluationTimeout
          stopOnFailure
          command
          comparator {
            ...ComparatorFragment
          }
          source
        }
        k8sProperties {
          probeTimeout
          interval
          retry
          attempt
          probePollingInterval
          initialDelay
          evaluationTimeout
          stopOnFailure
          group
          version
          resource
          namespace
          resourceNames
          fieldSelector
          labelSelector
          operation
        }
        promProperties {
          probeTimeout
          interval
          retry
          attempt
          probePollingInterval
          initialDelay
          evaluationTimeout
          stopOnFailure
          endpoint
          query
          queryPath
          comparator {
            ...ComparatorFragment
          }
        }
        recentExecutions {
          faultName
          status {
            ...StatusFragment
          }
          executedByExperiment {
            ...ExecutedByExperimentFragment
          }
        }
        referencedBy
        updatedAt
        createdAt
        updatedBy {
          userID
          username
          email
        }
        createdBy {
          userID
          username
          email
        }
      }
    }

##### Variables

    {
      "projectID": "4",
      "probeName": "4"
    }

##### Response

    {
      "data": {
        "getProbe": {
          "projectID": 4,
          "name": "abc123",
          "description": "xyz789",
          "tags": ["abc123"],
          "type": "httpProbe",
          "infrastructureType": "Kubernetes",
          "kubernetesHTTPProperties": KubernetesHTTPProbe,
          "kubernetesCMDProperties": KubernetesCMDProbe,
          "k8sProperties": K8SProbe,
          "promProperties": PROMProbe,
          "recentExecutions": [ProbeRecentExecutions],
          "referencedBy": 123,
          "updatedAt": "abc123",
          "createdAt": "abc123",
          "updatedBy": UserDetails,
          "createdBy": UserDetails
        }
      }
    }

Queries

## `getProbeReference`

##### Description

Returns all the reference of the Probe based on ProbeName

##### Response

Returns a `GetProbeReferenceResponse!`

##### Arguments

Name | Description
--- | ---
`projectID` - `ID!` |
`probeName` - `ID!` |

#### Example

##### Query

    query GetProbeReference(
      $projectID: ID!,
      $probeName: ID!
    ) {
      getProbeReference(
        projectID: $projectID,
        probeName: $probeName
      ) {
        projectID
        name
        totalRuns
        recentExecutions {
          faultName
          mode
          executionHistory {
            ...ExecutionHistoryFragment
          }
        }
      }
    }

##### Variables

    {"projectID": "4", "probeName": 4}

##### Response

    {
      "data": {
        "getProbeReference": {
          "projectID": 4,
          "name": "xyz789",
          "totalRuns": 123,
          "recentExecutions": [RecentExecutions]
        }
      }
    }

Queries

## `getProbeYAML`

##### Description

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

##### Response

Returns a `String!`

##### Arguments

Name | Description
--- | ---
`projectID` - `ID!` |
`request` - `GetProbeYAMLRequest!` |

#### Example

##### Query

    query GetProbeYAML(
      $projectID: ID!,
      $request: GetProbeYAMLRequest!
    ) {
      getProbeYAML(
        projectID: $projectID,
        request: $request
      )
    }

##### Variables

    {"projectID": 4, "request": GetProbeYAMLRequest}

##### Response

    {"data": {"getProbeYAML": "abc123"}}

Queries

## `getProbesInExperimentRun`

##### Description

Returns all the Probes attached to the requested Experiment Run

##### Response

Returns `[GetProbesInExperimentRunResponse]!`

##### Arguments

Name | Description
--- | ---
`projectID` - `ID!` |
`experimentRunID` - `String!` |
`faultName` - `String!` |

#### Example

##### Query

    query GetProbesInExperimentRun(
      $projectID: ID!,
      $experimentRunID: String!,
      $faultName: String!
    ) {
      getProbesInExperimentRun(
        projectID: $projectID,
        experimentRunID: $experimentRunID,
        faultName: $faultName
      ) {
        probe {
          projectID
          name
          description
          tags
          type
          infrastructureType
          kubernetesHTTPProperties {
            ...KubernetesHTTPProbeFragment
          }
          kubernetesCMDProperties {
            ...KubernetesCMDProbeFragment
          }
          k8sProperties {
            ...K8SProbeFragment
          }
          promProperties {
            ...PROMProbeFragment
          }
          recentExecutions {
            ...ProbeRecentExecutionsFragment
          }
          referencedBy
          updatedAt
          createdAt
          updatedBy {
            ...UserDetailsFragment
          }
          createdBy {
            ...UserDetailsFragment
          }
        }
        mode
        status {
          verdict
          description
        }
      }
    }

##### Variables

    {
      "projectID": "4",
      "experimentRunID": "abc123",
      "faultName": "xyz789"
    }

##### Response

    {
      "data": {
        "getProbesInExperimentRun": [
          {
            "probe": Probe,
            "mode": "SOT",
            "status": Status
          }
        ]
      }
    }

Queries

## `getServerVersion`

##### Description

Returns version of gql server

##### Response

Returns a `ServerVersionResponse!`

#### Example

##### Query

    query GetServerVersion {
      getServerVersion {
        key
        value
      }
    }

##### Response

    {
      "data": {
        "getServerVersion": {
          "key": "abc123",
          "value": "xyz789"
        }
      }
    }

Queries

## `getVersionDetails`

##### Description

Query to get the latest version of infra available

##### Response

Returns an `InfraVersionDetails!`

##### Arguments

Name | Description
--- | ---
`projectID` - `ID!` |

#### Example

##### Query

    query GetVersionDetails($projectID: ID!) {
      getVersionDetails(projectID: $projectID) {
        latestVersion
        compatibleVersions
      }
    }

##### Variables

    {"projectID": 4}

##### Response

    {
      "data": {
        "getVersionDetails": {
          "latestVersion": "abc123",
          "compatibleVersions": ["xyz789"]
        }
      }
    }

Queries

## `listChaosFaults`

##### Description

List the Charts details of a ChaosHub

##### Response

Returns `[Chart!]!`

##### Arguments

Name | Description
--- | ---
`hubID` - `ID!` |
`projectID` - `ID!` |

#### Example

##### Query

    query ListChaosFaults(
      $hubID: ID!,
      $projectID: ID!
    ) {
      listChaosFaults(
        hubID: $hubID,
        projectID: $projectID
      ) {
        apiVersion
        kind
        metadata {
          name
          version
          annotations {
            ...AnnotationFragment
          }
        }
        spec {
          displayName
          categoryDescription
          keywords
          maturity
          maintainers {
            ...MaintainerFragment
          }
          minKubeVersion
          provider {
            ...ProviderFragment
          }
          links {
            ...LinkFragment
          }
          faults {
            ...FaultListFragment
          }
          experiments
          chaosExpCRDLink
          platforms
          chaosType
        }
        packageInfo {
          packageName
          experiments {
            ...ExperimentsFragment
          }
        }
      }
    }

##### Variables

    {
      "hubID": "4",
      "projectID": "4"
    }

##### Response

    {
      "data": {
        "listChaosFaults": [
          {
            "apiVersion": "abc123",
            "kind": "abc123",
            "metadata": Metadata,
            "spec": Spec,
            "packageInfo": PackageInformation
          }
        ]
      }
    }

Queries

## `listChaosHub`

##### Description

Lists all the connected ChaosHub

##### Response

Returns `[ChaosHubStatus]!`

##### Arguments

Name | Description
--- | ---
`projectID` - `ID!` |
`request` - `ListChaosHubRequest` |

#### Example

##### Query

    query ListChaosHub(
      $projectID: ID!,
      $request: ListChaosHubRequest
    ) {
      listChaosHub(
        projectID: $projectID,
        request: $request
      ) {
        id
        repoURL
        repoBranch
        isAvailable
        totalFaults
        totalExperiments
        name
        hubType
        isPrivate
        authType
        token
        userName
        password
        isRemoved
        sshPrivateKey
        sshPublicKey
        lastSyncedAt
        tags
        createdBy {
          userID
          username
          email
        }
        updatedBy {
          userID
          username
          email
        }
        createdAt
        updatedAt
        description
        isDefault
      }
    }

##### Variables

    {
      "projectID": "4",
      "request": ListChaosHubRequest
    }

##### Response

    {
      "data": {
        "listChaosHub": [
          {
            "id": "4",
            "repoURL": "abc123",
            "repoBranch": "abc123",
            "isAvailable": true,
            "totalFaults": "xyz789",
            "totalExperiments": "xyz789",
            "name": "xyz789",
            "hubType": "GIT",
            "isPrivate": true,
            "authType": "BASIC",
            "token": "xyz789",
            "userName": "xyz789",
            "password": "xyz789",
            "isRemoved": false,
            "sshPrivateKey": "abc123",
            "sshPublicKey": "abc123",
            "lastSyncedAt": "abc123",
            "tags": ["abc123"],
            "createdBy": UserDetails,
            "updatedBy": UserDetails,
            "createdAt": "xyz789",
            "updatedAt": "xyz789",
            "description": "abc123",
            "isDefault": false
          }
        ]
      }
    }

Queries

## `listEnvironments`

##### Response

Returns a `ListEnvironmentResponse`

##### Arguments

Name | Description
--- | ---
`projectID` - `ID!` |
`request` - `ListEnvironmentRequest` |

#### Example

##### Query

    query ListEnvironments(
      $projectID: ID!,
      $request: ListEnvironmentRequest
    ) {
      listEnvironments(
        projectID: $projectID,
        request: $request
      ) {
        totalNoOfEnvironments
        environments {
          projectID
          environmentID
          name
          description
          tags
          type
          createdAt
          createdBy {
            ...UserDetailsFragment
          }
          updatedBy {
            ...UserDetailsFragment
          }
          updatedAt
          isRemoved
          infraIDs
        }
      }
    }

##### Variables

    {
      "projectID": "4",
      "request": ListEnvironmentRequest
    }

##### Response

    {
      "data": {
        "listEnvironments": {
          "totalNoOfEnvironments": 123,
          "environments": [Environment]
        }
      }
    }

Queries

## `listExperiment`

##### Description

Returns the list of experiments based on various filter parameters

##### Response

Returns a `ListExperimentResponse!`

##### Arguments

Name | Description
--- | ---
`projectID` - `ID!` |
`request` - `ListExperimentRequest!` |

#### Example

##### Query

    query ListExperiment(
      $projectID: ID!,
      $request: ListExperimentRequest!
    ) {
      listExperiment(
        projectID: $projectID,
        request: $request
      ) {
        totalNoOfExperiments
        experiments {
          projectID
          experimentID
          experimentType
          experimentManifest
          cronSyntax
          name
          description
          weightages {
            ...WeightagesFragment
          }
          isCustomExperiment
          updatedAt
          createdAt
          infra {
            ...InfraFragment
          }
          isRemoved
          tags
          createdBy {
            ...UserDetailsFragment
          }
          recentExperimentRunDetails {
            ...RecentExperimentRunFragment
          }
          updatedBy {
            ...UserDetailsFragment
          }
        }
      }
    }

##### Variables

    {
      "projectID": "4",
      "request": ListExperimentRequest
    }

##### Response

    {
      "data": {
        "listExperiment": {
          "totalNoOfExperiments": 987,
          "experiments": [Experiment]
        }
      }
    }

Queries

## `listExperimentRun`

##### Description

Returns the list of experiment run based on various filter parameters

##### Response

Returns a `ListExperimentRunResponse!`

##### Arguments

Name | Description
--- | ---
`projectID` - `ID!` |
`request` - `ListExperimentRunRequest!` |

#### Example

##### Query

    query ListExperimentRun(
      $projectID: ID!,
      $request: ListExperimentRunRequest!
    ) {
      listExperimentRun(
        projectID: $projectID,
        request: $request
      ) {
        totalNoOfExperimentRuns
        experimentRuns {
          projectID
          experimentRunID
          experimentType
          experimentID
          weightages {
            ...WeightagesFragment
          }
          updatedAt
          createdAt
          infra {
            ...InfraFragment
          }
          experimentName
          experimentManifest
          phase
          resiliencyScore
          faultsPassed
          faultsFailed
          faultsAwaited
          faultsStopped
          faultsNa
          totalFaults
          executionData
          isRemoved
          updatedBy {
            ...UserDetailsFragment
          }
          createdBy {
            ...UserDetailsFragment
          }
          notifyID
          runSequence
        }
      }
    }

##### Variables

    {
      "projectID": "4",
      "request": ListExperimentRunRequest
    }

##### Response

    {
      "data": {
        "listExperimentRun": {
          "totalNoOfExperimentRuns": 987,
          "experimentRuns": [ExperimentRun]
        }
      }
    }

Queries

## `listImageRegistry`

##### Response

Returns `[ImageRegistryResponse!]`

##### Arguments

Name | Description
--- | ---
`projectID` - `String!` |

#### Example

##### Query

    query ListImageRegistry($projectID: String!) {
      listImageRegistry(projectID: $projectID) {
        isDefault
        imageRegistryInfo {
          isDefault
          imageRegistryName
          imageRepoName
          imageRegistryType
          secretName
          secretNamespace
          enableRegistry
        }
        imageRegistryID
        projectID
        updatedAt
        createdAt
        createdBy {
          userID
          username
          email
        }
        updatedBy {
          userID
          username
          email
        }
        isRemoved
      }
    }

##### Variables

    {"projectID": "abc123"}

##### Response

    {
      "data": {
        "listImageRegistry": [
          {
            "isDefault": false,
            "imageRegistryInfo": ImageRegistry,
            "imageRegistryID": "xyz789",
            "projectID": "xyz789",
            "updatedAt": "abc123",
            "createdAt": "abc123",
            "createdBy": UserDetails,
            "updatedBy": UserDetails,
            "isRemoved": true
          }
        ]
      }
    }

Queries

## `listInfras`

##### Description

Returns infras with a particular infra type in the project

##### Response

Returns a `ListInfraResponse!`

##### Arguments

Name | Description
--- | ---
`projectID` - `ID!` |
`request` - `ListInfraRequest` |

#### Example

##### Query

    query ListInfras(
      $projectID: ID!,
      $request: ListInfraRequest
    ) {
      listInfras(
        projectID: $projectID,
        request: $request
      ) {
        totalNoOfInfras
        infras {
          projectID
          infraID
          name
          description
          tags
          environmentID
          platformName
          isActive
          isInfraConfirmed
          isRemoved
          updatedAt
          createdAt
          noOfExperiments
          noOfExperimentRuns
          token
          infraNamespace
          serviceAccount
          infraScope
          infraNsExists
          infraSaExists
          lastExperimentTimestamp
          startTime
          version
          createdBy {
            ...UserDetailsFragment
          }
          updatedBy {
            ...UserDetailsFragment
          }
          infraType
          updateStatus
        }
      }
    }

##### Variables

    {"projectID": 4, "request": ListInfraRequest}

##### Response

    {
      "data": {
        "listInfras": {
          "totalNoOfInfras": 123,
          "infras": [Infra]
        }
      }
    }

Queries

## `listPredefinedExperiments`

##### Description

List the PredefinedExperiments present in the hub

##### Response

Returns `[PredefinedExperimentList!]!`

##### Arguments

Name | Description
--- | ---
`hubID` - `ID!` |
`projectID` - `ID!` |

#### Example

##### Query

    query ListPredefinedExperiments(
      $hubID: ID!,
      $projectID: ID!
    ) {
      listPredefinedExperiments(
        hubID: $hubID,
        projectID: $projectID
      ) {
        experimentName
        experimentCSV
        experimentManifest
      }
    }

##### Variables

    {"hubID": 4, "projectID": 4}

##### Response

    {
      "data": {
        "listPredefinedExperiments": [
          {
            "experimentName": "abc123",
            "experimentCSV": "abc123",
            "experimentManifest": "xyz789"
          }
        ]
      }
    }

Queries

## `listProbes`

##### Description

Returns the list of Probes based on various filter parameters

##### Response

Returns `[Probe]!`

##### Arguments

Name | Description
--- | ---
`projectID` - `ID!` |
`infrastructureType` - `InfrastructureType` |
`probeNames` - `[ID!]` |
`filter` - `ProbeFilterInput` |

#### Example

##### Query

    query ListProbes(
      $projectID: ID!,
      $infrastructureType: InfrastructureType,
      $probeNames: [ID!],
      $filter: ProbeFilterInput
    ) {
      listProbes(
        projectID: $projectID,
        infrastructureType: $infrastructureType,
        probeNames: $probeNames,
        filter: $filter
      ) {
        projectID
        name
        description
        tags
        type
        infrastructureType
        kubernetesHTTPProperties {
          probeTimeout
          interval
          retry
          attempt
          probePollingInterval
          initialDelay
          evaluationTimeout
          stopOnFailure
          url
          method {
            ...MethodFragment
          }
          insecureSkipVerify
        }
        kubernetesCMDProperties {
          probeTimeout
          interval
          retry
          attempt
          probePollingInterval
          initialDelay
          evaluationTimeout
          stopOnFailure
          command
          comparator {
            ...ComparatorFragment
          }
          source
        }
        k8sProperties {
          probeTimeout
          interval
          retry
          attempt
          probePollingInterval
          initialDelay
          evaluationTimeout
          stopOnFailure
          group
          version
          resource
          namespace
          resourceNames
          fieldSelector
          labelSelector
          operation
        }
        promProperties {
          probeTimeout
          interval
          retry
          attempt
          probePollingInterval
          initialDelay
          evaluationTimeout
          stopOnFailure
          endpoint
          query
          queryPath
          comparator {
            ...ComparatorFragment
          }
        }
        recentExecutions {
          faultName
          status {
            ...StatusFragment
          }
          executedByExperiment {
            ...ExecutedByExperimentFragment
          }
        }
        referencedBy
        updatedAt
        createdAt
        updatedBy {
          userID
          username
          email
        }
        createdBy {
          userID
          username
          email
        }
      }
    }

##### Variables

    {
      "projectID": 4,
      "infrastructureType": "Kubernetes",
      "probeNames": [4],
      "filter": ProbeFilterInput
    }

##### Response

    {
      "data": {
        "listProbes": [
          {
            "projectID": 4,
            "name": "xyz789",
            "description": "xyz789",
            "tags": ["abc123"],
            "type": "httpProbe",
            "infrastructureType": "Kubernetes",
            "kubernetesHTTPProperties": KubernetesHTTPProbe,
            "kubernetesCMDProperties": KubernetesCMDProbe,
            "k8sProperties": K8SProbe,
            "promProperties": PROMProbe,
            "recentExecutions": [ProbeRecentExecutions],
            "referencedBy": 987,
            "updatedAt": "xyz789",
            "createdAt": "xyz789",
            "updatedBy": UserDetails,
            "createdBy": UserDetails
          }
        ]
      }
    }

Queries

## `validateUniqueProbe`

##### Description

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

##### Response

Returns a `Boolean!`

##### Arguments

Name | Description
--- | ---
`projectID` - `ID!` |
`probeName` - `ID!` |

#### Example

##### Query

    query ValidateUniqueProbe(
      $projectID: ID!,
      $probeName: ID!
    ) {
      validateUniqueProbe(
        projectID: $projectID,
        probeName: $probeName
      )
    }

##### Variables

    {
      "projectID": "4",
      "probeName": "4"
    }

##### Response

    {"data": {"validateUniqueProbe": true}}

# Mutations

## `addChaosHub`

##### Description

Add a ChaosHub (includes the git clone operation)

##### Response

Returns a `ChaosHub!`

##### Arguments

Name | Description
--- | ---
`projectID` - `ID!` |
`request` - `CreateChaosHubRequest!` |

#### Example

##### Query

    mutation AddChaosHub(
      $projectID: ID!,
      $request: CreateChaosHubRequest!
    ) {
      addChaosHub(
        projectID: $projectID,
        request: $request
      ) {
        id
        repoURL
        repoBranch
        projectID
        isDefault
        name
        tags
        createdBy {
          userID
          username
          email
        }
        updatedBy {
          userID
          username
          email
        }
        description
        hubType
        isPrivate
        authType
        token
        userName
        password
        sshPrivateKey
        isRemoved
        createdAt
        updatedAt
        lastSyncedAt
      }
    }

##### Variables

    {"projectID": 4, "request": CreateChaosHubRequest}

##### Response

    {
      "data": {
        "addChaosHub": {
          "id": 4,
          "repoURL": "xyz789",
          "repoBranch": "xyz789",
          "projectID": 4,
          "isDefault": true,
          "name": "xyz789",
          "tags": ["xyz789"],
          "createdBy": UserDetails,
          "updatedBy": UserDetails,
          "description": "abc123",
          "hubType": "GIT",
          "isPrivate": false,
          "authType": "BASIC",
          "token": "xyz789",
          "userName": "abc123",
          "password": "abc123",
          "sshPrivateKey": "abc123",
          "isRemoved": true,
          "createdAt": "xyz789",
          "updatedAt": "xyz789",
          "lastSyncedAt": "xyz789"
        }
      }
    }

Mutations

## `addProbe`

##### Description

Creates a new Probe

##### Response

Returns a `Probe!`

##### Arguments

Name | Description
--- | ---
`request` - `ProbeRequest!` |
`projectID` - `ID!` |

#### Example

##### Query

    mutation AddProbe(
      $request: ProbeRequest!,
      $projectID: ID!
    ) {
      addProbe(
        request: $request,
        projectID: $projectID
      ) {
        projectID
        name
        description
        tags
        type
        infrastructureType
        kubernetesHTTPProperties {
          probeTimeout
          interval
          retry
          attempt
          probePollingInterval
          initialDelay
          evaluationTimeout
          stopOnFailure
          url
          method {
            ...MethodFragment
          }
          insecureSkipVerify
        }
        kubernetesCMDProperties {
          probeTimeout
          interval
          retry
          attempt
          probePollingInterval
          initialDelay
          evaluationTimeout
          stopOnFailure
          command
          comparator {
            ...ComparatorFragment
          }
          source
        }
        k8sProperties {
          probeTimeout
          interval
          retry
          attempt
          probePollingInterval
          initialDelay
          evaluationTimeout
          stopOnFailure
          group
          version
          resource
          namespace
          resourceNames
          fieldSelector
          labelSelector
          operation
        }
        promProperties {
          probeTimeout
          interval
          retry
          attempt
          probePollingInterval
          initialDelay
          evaluationTimeout
          stopOnFailure
          endpoint
          query
          queryPath
          comparator {
            ...ComparatorFragment
          }
        }
        recentExecutions {
          faultName
          status {
            ...StatusFragment
          }
          executedByExperiment {
            ...ExecutedByExperimentFragment
          }
        }
        referencedBy
        updatedAt
        createdAt
        updatedBy {
          userID
          username
          email
        }
        createdBy {
          userID
          username
          email
        }
      }
    }

##### Variables

    {"request": ProbeRequest, "projectID": 4}

##### Response

    {
      "data": {
        "addProbe": {
          "projectID": "4",
          "name": "xyz789",
          "description": "xyz789",
          "tags": ["xyz789"],
          "type": "httpProbe",
          "infrastructureType": "Kubernetes",
          "kubernetesHTTPProperties": KubernetesHTTPProbe,
          "kubernetesCMDProperties": KubernetesCMDProbe,
          "k8sProperties": K8SProbe,
          "promProperties": PROMProbe,
          "recentExecutions": [ProbeRecentExecutions],
          "referencedBy": 123,
          "updatedAt": "xyz789",
          "createdAt": "abc123",
          "updatedBy": UserDetails,
          "createdBy": UserDetails
        }
      }
    }

Mutations

## `addRemoteChaosHub`

##### Description

Add a ChaosHub (remote hub download)

##### Response

Returns a `ChaosHub!`

##### Arguments

Name | Description
--- | ---
`projectID` - `ID!` |
`request` - `CreateRemoteChaosHub!` |

#### Example

##### Query

    mutation AddRemoteChaosHub(
      $projectID: ID!,
      $request: CreateRemoteChaosHub!
    ) {
      addRemoteChaosHub(
        projectID: $projectID,
        request: $request
      ) {
        id
        repoURL
        repoBranch
        projectID
        isDefault
        name
        tags
        createdBy {
          userID
          username
          email
        }
        updatedBy {
          userID
          username
          email
        }
        description
        hubType
        isPrivate
        authType
        token
        userName
        password
        sshPrivateKey
        isRemoved
        createdAt
        updatedAt
        lastSyncedAt
      }
    }

##### Variables

    {"projectID": 4, "request": CreateRemoteChaosHub}

##### Response

    {
      "data": {
        "addRemoteChaosHub": {
          "id": 4,
          "repoURL": "abc123",
          "repoBranch": "abc123",
          "projectID": 4,
          "isDefault": true,
          "name": "abc123",
          "tags": ["xyz789"],
          "createdBy": UserDetails,
          "updatedBy": UserDetails,
          "description": "xyz789",
          "hubType": "GIT",
          "isPrivate": false,
          "authType": "BASIC",
          "token": "xyz789",
          "userName": "xyz789",
          "password": "xyz789",
          "sshPrivateKey": "xyz789",
          "isRemoved": true,
          "createdAt": "xyz789",
          "updatedAt": "abc123",
          "lastSyncedAt": "xyz789"
        }
      }
    }

Mutations

## `chaosExperimentRun`

##### Description

Creates a new experiment run and sends it to subscriber

##### Response

Returns a `String!`

##### Arguments

Name | Description
--- | ---
`request` - `ExperimentRunRequest!` |

#### Example

##### Query

    mutation ChaosExperimentRun($request: ExperimentRunRequest!) {
      chaosExperimentRun(request: $request)
    }

##### Variables

    {"request": ExperimentRunRequest}

##### Response

    {"data": {"chaosExperimentRun": "abc123"}}

Mutations

## `confirmInfraRegistration`

##### Description

Confirms the subscriber's registration with the control plane

##### Response

Returns a `ConfirmInfraRegistrationResponse!`

##### Arguments

Name | Description
--- | ---
`request` - `InfraIdentity!` |

#### Example

##### Query

    mutation ConfirmInfraRegistration($request: InfraIdentity!) {
      confirmInfraRegistration(request: $request) {
        isInfraConfirmed
        newAccessKey
        infraID
      }
    }

##### Variables

    {"request": InfraIdentity}

##### Response

    {
      "data": {
        "confirmInfraRegistration": {
          "isInfraConfirmed": true,
          "newAccessKey": "xyz789",
          "infraID": "abc123"
        }
      }
    }

Mutations

## `createChaosExperiment`

##### Description

Creates a new experiment and applies its manifest

##### Response

Returns a `ChaosExperimentResponse!`

##### Arguments

Name | Description
--- | ---
`request` - `ChaosExperimentRequest!` |
`projectID` - `ID!` |

#### Example

##### Query

    mutation CreateChaosExperiment(
      $request: ChaosExperimentRequest!,
      $projectID: ID!
    ) {
      createChaosExperiment(
        request: $request,
        projectID: $projectID
      ) {
        experimentID
        projectID
        cronSyntax
        experimentName
        experimentDescription
        isCustomExperiment
        tags
      }
    }

##### Variables

    {
      "request": ChaosExperimentRequest,
      "projectID": "4"
    }

##### Response

    {
      "data": {
        "createChaosExperiment": {
          "experimentID": "abc123",
          "projectID": "4",
          "cronSyntax": "xyz789",
          "experimentName": "abc123",
          "experimentDescription": "abc123",
          "isCustomExperiment": false,
          "tags": ["xyz789"]
        }
      }
    }

Mutations

## `createEnvironment`

##### Response

Returns an `Environment`

##### Arguments

Name | Description
--- | ---
`projectID` - `ID!` |
`request` - `CreateEnvironmentRequest` |

#### Example

##### Query

    mutation CreateEnvironment(
      $projectID: ID!,
      $request: CreateEnvironmentRequest
    ) {
      createEnvironment(
        projectID: $projectID,
        request: $request
      ) {
        projectID
        environmentID
        name
        description
        tags
        type
        createdAt
        createdBy {
          userID
          username
          email
        }
        updatedBy {
          userID
          username
          email
        }
        updatedAt
        isRemoved
        infraIDs
      }
    }

##### Variables

    {"projectID": 4, "request": CreateEnvironmentRequest}

##### Response

    {
      "data": {
        "createEnvironment": {
          "projectID": "xyz789",
          "environmentID": "xyz789",
          "name": "xyz789",
          "description": "xyz789",
          "tags": ["abc123"],
          "type": "PROD",
          "createdAt": "abc123",
          "createdBy": UserDetails,
          "updatedBy": UserDetails,
          "updatedAt": "xyz789",
          "isRemoved": false,
          "infraIDs": ["xyz789"]
        }
      }
    }

Mutations

## `createImageRegistry`

##### Description

Create an Image Registry configuration

##### Response

Returns an `ImageRegistryResponse!`

##### Arguments

Name | Description
--- | ---
`projectID` - `String!` |
`imageRegistryInfo` - `ImageRegistryInput!` |

#### Example

##### Query

    mutation CreateImageRegistry(
      $projectID: String!,
      $imageRegistryInfo: ImageRegistryInput!
    ) {
      createImageRegistry(
        projectID: $projectID,
        imageRegistryInfo: $imageRegistryInfo
      ) {
        isDefault
        imageRegistryInfo {
          isDefault
          imageRegistryName
          imageRepoName
          imageRegistryType
          secretName
          secretNamespace
          enableRegistry
        }
        imageRegistryID
        projectID
        updatedAt
        createdAt
        createdBy {
          userID
          username
          email
        }
        updatedBy {
          userID
          username
          email
        }
        isRemoved
      }
    }

##### Variables

    {
      "projectID": "abc123",
      "imageRegistryInfo": ImageRegistryInput
    }

##### Response

    {
      "data": {
        "createImageRegistry": {
          "isDefault": true,
          "imageRegistryInfo": ImageRegistry,
          "imageRegistryID": "xyz789",
          "projectID": "xyz789",
          "updatedAt": "abc123",
          "createdAt": "abc123",
          "createdBy": UserDetails,
          "updatedBy": UserDetails,
          "isRemoved": false
        }
      }
    }

Mutations

## `deleteChaosExperiment`

##### Description

Removes a experiment from infra

##### Response

Returns a `Boolean!`

##### Arguments

Name | Description
--- | ---
`experimentID` - `String!` |
`experimentRunID` - `String` |
`projectID` - `ID!` |

#### Example

##### Query

    mutation DeleteChaosExperiment(
      $experimentID: String!,
      $experimentRunID: String,
      $projectID: ID!
    ) {
      deleteChaosExperiment(
        experimentID: $experimentID,
        experimentRunID: $experimentRunID,
        projectID: $projectID
      )
    }

##### Variables

    {
      "experimentID": "abc123",
      "experimentRunID": "xyz789",
      "projectID": "4"
    }

##### Response

    {"data": {"deleteChaosExperiment": true}}

Mutations

## `deleteChaosHub`

##### Description

Delete the ChaosHub

##### Response

Returns a `Boolean!`

##### Arguments

Name | Description
--- | ---
`projectID` - `ID!` |
`hubID` - `ID!` |

#### Example

##### Query

    mutation DeleteChaosHub(
      $projectID: ID!,
      $hubID: ID!
    ) {
      deleteChaosHub(
        projectID: $projectID,
        hubID: $hubID
      )
    }

##### Variables

    {
      "projectID": "4",
      "hubID": "4"
    }

##### Response

    {"data": {"deleteChaosHub": true}}

Mutations

## `deleteEnvironment`

##### Response

Returns a `String!`

##### Arguments

Name | Description
--- | ---
`projectID` - `ID!` |
`environmentID` - `ID!` |

#### Example

##### Query

    mutation DeleteEnvironment(
      $projectID: ID!,
      $environmentID: ID!
    ) {
      deleteEnvironment(
        projectID: $projectID,
        environmentID: $environmentID
      )
    }

##### Variables

    {
      "projectID": "4",
      "environmentID": "4"
    }

##### Response

    {"data": {"deleteEnvironment": "abc123"}}

Mutations

## `deleteImageRegistry`

##### Description

Delete the Image Registry

##### Response

Returns a `String!`

##### Arguments

Name | Description
--- | ---
`imageRegistryID` - `String!` |
`projectID` - `String!` |

#### Example

##### Query

    mutation DeleteImageRegistry(
      $imageRegistryID: String!,
      $projectID: String!
    ) {
      deleteImageRegistry(
        imageRegistryID: $imageRegistryID,
        projectID: $projectID
      )
    }

##### Variables

    {
      "imageRegistryID": "xyz789",
      "projectID": "xyz789"
    }

##### Response

    {"data": {"deleteImageRegistry": "abc123"}}

Mutations

## `deleteInfra`

##### Description

Disconnects an infra and deletes its configuration from the control plane

##### Response

Returns a `String!`

##### Arguments

Name | Description
--- | ---
`projectID` - `ID!` |
`infraID` - `String!` |

#### Example

##### Query

    mutation DeleteInfra(
      $projectID: ID!,
      $infraID: String!
    ) {
      deleteInfra(
        projectID: $projectID,
        infraID: $infraID
      )
    }

##### Variables

    {
      "projectID": "4",
      "infraID": "abc123"
    }

##### Response

    {"data": {"deleteInfra": "abc123"}}

Mutations

## `deleteProbe`

##### Description

Delete a Probe

##### Response

Returns a `Boolean!`

##### Arguments

Name | Description
--- | ---
`probeName` - `ID!` |
`projectID` - `ID!` |

#### Example

##### Query

    mutation DeleteProbe(
      $probeName: ID!,
      $projectID: ID!
    ) {
      deleteProbe(
        probeName: $probeName,
        projectID: $projectID
      )
    }

##### Variables

    {
      "probeName": "4",
      "projectID": "4"
    }

##### Response

    {"data": {"deleteProbe": false}}

Mutations

## `disableGitOps`

##### Description

Disables gitops settings in the project

##### Response

Returns a `Boolean!`

##### Arguments

Name | Description
--- | ---
`projectID` - `ID!` |

#### Example

##### Query

    mutation DisableGitOps($projectID: ID!) {
      disableGitOps(projectID: $projectID)
    }

##### Variables

    {"projectID": "4"}

##### Response

    {"data": {"disableGitOps": false}}

Mutations

## `enableGitOps`

##### Description

Enables gitops settings in the project

##### Response

Returns a `Boolean!`

##### Arguments

Name | Description
--- | ---
`projectID` - `ID!` |
`configurations` - `GitConfig!` |

#### Example

##### Query

    mutation EnableGitOps(
      $projectID: ID!,
      $configurations: GitConfig!
    ) {
      enableGitOps(
        projectID: $projectID,
        configurations: $configurations
      )
    }

##### Variables

    {"projectID": 4, "configurations": GitConfig}

##### Response

    {"data": {"enableGitOps": true}}

Mutations

## `generateSSHKey`

##### Description

Generates Private and Public key for SSH authentication

##### Response

Returns an `SSHKey!`

#### Example

##### Query

    mutation GenerateSSHKey {
      generateSSHKey {
        publicKey
        privateKey
      }
    }

##### Response

    {
      "data": {
        "generateSSHKey": {
          "publicKey": "xyz789",
          "privateKey": "abc123"
        }
      }
    }

Mutations

## `getManifestWithInfraID`

##### Description

Fetches manifest details

##### Response

Returns a `String!`

##### Arguments

Name | Description
--- | ---
`projectID` - `ID!` |
`infraID` - `String!` |
`accessKey` - `String!` |

#### Example

##### Query

    mutation GetManifestWithInfraID(
      $projectID: ID!,
      $infraID: String!,
      $accessKey: String!
    ) {
      getManifestWithInfraID(
        projectID: $projectID,
        infraID: $infraID,
        accessKey: $accessKey
      )
    }

##### Variables

    {
      "projectID": "4",
      "infraID": "xyz789",
      "accessKey": "xyz789"
    }

##### Response

    {
      "data": {
        "getManifestWithInfraID": "xyz789"
      }
    }

Mutations

## `gitopsNotifier`

##### Description

Sends workflow run request(single run workflow only) to agent on gitops notification

##### Response

Returns a `String!`

##### Arguments

Name | Description
--- | ---
`clusterInfo` - `InfraIdentity!` |
`experimentID` - `ID!` |

#### Example

##### Query

    mutation GitopsNotifier(
      $clusterInfo: InfraIdentity!,
      $experimentID: ID!
    ) {
      gitopsNotifier(
        clusterInfo: $clusterInfo,
        experimentID: $experimentID
      )
    }

##### Variables

    {"clusterInfo": InfraIdentity, "experimentID": 4}

##### Response

    {"data": {"gitopsNotifier": "abc123"}}

Mutations

## `kubeObj`

##### Description

Receives kubernetes object data from subscriber

##### Response

Returns a `String!`

##### Arguments

Name | Description
--- | ---
`request` - `KubeObjectData!` |

#### Example

##### Query

    mutation KubeObj($request: KubeObjectData!) {
      kubeObj(request: $request)
    }

##### Variables

    {"request": KubeObjectData}

##### Response

    {"data": {"kubeObj": "xyz789"}}

Mutations

## `podLog`

##### Description

Receives pod logs for experiments from infra

##### Response

Returns a `String!`

##### Arguments

Name | Description
--- | ---
`request` - `PodLog!` |

#### Example

##### Query

    mutation PodLog($request: PodLog!) {
      podLog(request: $request)
    }

##### Variables

    {"request": PodLog}

##### Response

    {"data": {"podLog": "xyz789"}}

Mutations

## `registerInfra`

##### Description

Connect a new infra for a user in a specified project

##### Response

Returns a `RegisterInfraResponse!`

##### Arguments

Name | Description
--- | ---
`projectID` - `ID!` |
`request` - `RegisterInfraRequest!` |

#### Example

##### Query

    mutation RegisterInfra(
      $projectID: ID!,
      $request: RegisterInfraRequest!
    ) {
      registerInfra(
        projectID: $projectID,
        request: $request
      ) {
        token
        infraID
        name
        manifest
      }
    }

##### Variables

    {"projectID": 4, "request": RegisterInfraRequest}

##### Response

    {
      "data": {
        "registerInfra": {
          "token": "abc123",
          "infraID": "xyz789",
          "name": "abc123",
          "manifest": "abc123"
        }
      }
    }

Mutations

## `runChaosExperiment`

##### Description

Run the chaos experiment (used by frontend)

##### Response

Returns a `RunChaosExperimentResponse!`

##### Arguments

Name | Description
--- | ---
`experimentID` - `String!` |
`projectID` - `ID!` |

#### Example

##### Query

    mutation RunChaosExperiment(
      $experimentID: String!,
      $projectID: ID!
    ) {
      runChaosExperiment(
        experimentID: $experimentID,
        projectID: $projectID
      ) {
        notifyID
      }
    }

##### Variables

    {
      "experimentID": "abc123",
      "projectID": "4"
    }

##### Response

    {"data": {"runChaosExperiment": {"notifyID": 4}}}

Mutations

## `saveChaosExperiment`

##### Description

Saves a new experiment or updates if already exists

##### Response

Returns a `String!`

##### Arguments

Name | Description
--- | ---
`request` - `SaveChaosExperimentRequest!` |
`projectID` - `ID!` |

#### Example

##### Query

    mutation SaveChaosExperiment(
      $request: SaveChaosExperimentRequest!,
      $projectID: ID!
    ) {
      saveChaosExperiment(
        request: $request,
        projectID: $projectID
      )
    }

##### Variables

    {
      "request": SaveChaosExperimentRequest,
      "projectID": "4"
    }

##### Response

    {"data": {"saveChaosExperiment": "abc123"}}

Mutations

## `saveChaosHub`

##### Description

Save a ChaosHub configuration without cloning it

##### Response

Returns a `ChaosHub!`

##### Arguments

Name | Description
--- | ---
`projectID` - `ID!` |
`request` - `CreateChaosHubRequest!` |

#### Example

##### Query

    mutation SaveChaosHub(
      $projectID: ID!,
      $request: CreateChaosHubRequest!
    ) {
      saveChaosHub(
        projectID: $projectID,
        request: $request
      ) {
        id
        repoURL
        repoBranch
        projectID
        isDefault
        name
        tags
        createdBy {
          userID
          username
          email
        }
        updatedBy {
          userID
          username
          email
        }
        description
        hubType
        isPrivate
        authType
        token
        userName
        password
        sshPrivateKey
        isRemoved
        createdAt
        updatedAt
        lastSyncedAt
      }
    }

##### Variables

    {"projectID": 4, "request": CreateChaosHubRequest}

##### Response

    {
      "data": {
        "saveChaosHub": {
          "id": "4",
          "repoURL": "abc123",
          "repoBranch": "xyz789",
          "projectID": "4",
          "isDefault": true,
          "name": "abc123",
          "tags": ["abc123"],
          "createdBy": UserDetails,
          "updatedBy": UserDetails,
          "description": "xyz789",
          "hubType": "GIT",
          "isPrivate": false,
          "authType": "BASIC",
          "token": "abc123",
          "userName": "abc123",
          "password": "xyz789",
          "sshPrivateKey": "xyz789",
          "isRemoved": false,
          "createdAt": "xyz789",
          "updatedAt": "xyz789",
          "lastSyncedAt": "abc123"
        }
      }
    }

Mutations

## `stopExperimentRuns`

##### Description

stopExperiment will halt all the ongoing runs of a particular experiment

##### Response

Returns a `Boolean!`

##### Arguments

Name | Description
--- | ---
`projectID` - `ID!` |
`experimentID` - `String!` |
`experimentRunID` - `String` |
`notifyID` - `String` |

#### Example

##### Query

    mutation StopExperimentRuns(
      $projectID: ID!,
      $experimentID: String!,
      $experimentRunID: String,
      $notifyID: String
    ) {
      stopExperimentRuns(
        projectID: $projectID,
        experimentID: $experimentID,
        experimentRunID: $experimentRunID,
        notifyID: $notifyID
      )
    }

##### Variables

    {
      "projectID": "4",
      "experimentID": "abc123",
      "experimentRunID": "abc123",
      "notifyID": "xyz789"
    }

##### Response

    {"data": {"stopExperimentRuns": true}}

Mutations

## `syncChaosHub`

##### Description

Sync changes from the Git repository of a ChaosHub

##### Response

Returns a `String!`

##### Arguments

Name | Description
--- | ---
`id` - `ID!` |
`projectID` - `ID!` |

#### Example

##### Query

    mutation SyncChaosHub(
      $id: ID!,
      $projectID: ID!
    ) {
      syncChaosHub(
        id: $id,
        projectID: $projectID
      )
    }

##### Variables

    {"id": "4", "projectID": 4}

##### Response

    {"data": {"syncChaosHub": "abc123"}}

Mutations

## `updateChaosExperiment`

##### Description

Updates the experiment

##### Response

Returns a `ChaosExperimentResponse!`

##### Arguments

Name | Description
--- | ---
`request` - `ChaosExperimentRequest!` |
`projectID` - `ID!` |

#### Example

##### Query

    mutation UpdateChaosExperiment(
      $request: ChaosExperimentRequest!,
      $projectID: ID!
    ) {
      updateChaosExperiment(
        request: $request,
        projectID: $projectID
      ) {
        experimentID
        projectID
        cronSyntax
        experimentName
        experimentDescription
        isCustomExperiment
        tags
      }
    }

##### Variables

    {
      "request": ChaosExperimentRequest,
      "projectID": "4"
    }

##### Response

    {
      "data": {
        "updateChaosExperiment": {
          "experimentID": "abc123",
          "projectID": 4,
          "cronSyntax": "abc123",
          "experimentName": "abc123",
          "experimentDescription": "xyz789",
          "isCustomExperiment": true,
          "tags": ["xyz789"]
        }
      }
    }

Mutations

## `updateChaosHub`

##### Description

Update the configuration of a ChaosHub

##### Response

Returns a `ChaosHub!`

##### Arguments

Name | Description
--- | ---
`projectID` - `ID!` |
`request` - `UpdateChaosHubRequest!` |

#### Example

##### Query

    mutation UpdateChaosHub(
      $projectID: ID!,
      $request: UpdateChaosHubRequest!
    ) {
      updateChaosHub(
        projectID: $projectID,
        request: $request
      ) {
        id
        repoURL
        repoBranch
        projectID
        isDefault
        name
        tags
        createdBy {
          userID
          username
          email
        }
        updatedBy {
          userID
          username
          email
        }
        description
        hubType
        isPrivate
        authType
        token
        userName
        password
        sshPrivateKey
        isRemoved
        createdAt
        updatedAt
        lastSyncedAt
      }
    }

##### Variables

    {"projectID": 4, "request": UpdateChaosHubRequest}

##### Response

    {
      "data": {
        "updateChaosHub": {
          "id": 4,
          "repoURL": "xyz789",
          "repoBranch": "xyz789",
          "projectID": "4",
          "isDefault": true,
          "name": "abc123",
          "tags": ["xyz789"],
          "createdBy": UserDetails,
          "updatedBy": UserDetails,
          "description": "xyz789",
          "hubType": "GIT",
          "isPrivate": false,
          "authType": "BASIC",
          "token": "abc123",
          "userName": "abc123",
          "password": "abc123",
          "sshPrivateKey": "xyz789",
          "isRemoved": false,
          "createdAt": "xyz789",
          "updatedAt": "abc123",
          "lastSyncedAt": "abc123"
        }
      }
    }

Mutations

## `updateCronExperimentState`

##### Description

Enable/Disable cron experiment state

##### Response

Returns a `Boolean!`

##### Arguments

Name | Description
--- | ---
`experimentID` - `String!` |
`disable` - `Boolean!` |
`projectID` - `ID!` |

#### Example

##### Query

    mutation UpdateCronExperimentState(
      $experimentID: String!,
      $disable: Boolean!,
      $projectID: ID!
    ) {
      updateCronExperimentState(
        experimentID: $experimentID,
        disable: $disable,
        projectID: $projectID
      )
    }

##### Variables

    {
      "experimentID": "abc123",
      "disable": false,
      "projectID": "4"
    }

##### Response

    {"data": {"updateCronExperimentState": false}}

Mutations

## `updateEnvironment`

##### Response

Returns a `String!`

##### Arguments

Name | Description
--- | ---
`projectID` - `ID!` |
`request` - `UpdateEnvironmentRequest` |

#### Example

##### Query

    mutation UpdateEnvironment(
      $projectID: ID!,
      $request: UpdateEnvironmentRequest
    ) {
      updateEnvironment(
        projectID: $projectID,
        request: $request
      )
    }

##### Variables

    {
      "projectID": "4",
      "request": UpdateEnvironmentRequest
    }

##### Response

    {"data": {"updateEnvironment": "abc123"}}

Mutations

## `updateGitOps`

##### Description

Updates gitops settings in the project

##### Response

Returns a `Boolean!`

##### Arguments

Name | Description
--- | ---
`projectID` - `ID!` |
`configurations` - `GitConfig!` |

#### Example

##### Query

    mutation UpdateGitOps(
      $projectID: ID!,
      $configurations: GitConfig!
    ) {
      updateGitOps(
        projectID: $projectID,
        configurations: $configurations
      )
    }

##### Variables

    {
      "projectID": "4",
      "configurations": GitConfig
    }

##### Response

    {"data": {"updateGitOps": true}}

Mutations

## `updateImageRegistry`

##### Description

Update the Image Registry configuration

##### Response

Returns an `ImageRegistryResponse!`

##### Arguments

Name | Description
--- | ---
`imageRegistryID` - `String!` |
`projectID` - `String!` |
`imageRegistryInfo` - `ImageRegistryInput!` |

#### Example

##### Query

    mutation UpdateImageRegistry(
      $imageRegistryID: String!,
      $projectID: String!,
      $imageRegistryInfo: ImageRegistryInput!
    ) {
      updateImageRegistry(
        imageRegistryID: $imageRegistryID,
        projectID: $projectID,
        imageRegistryInfo: $imageRegistryInfo
      ) {
        isDefault
        imageRegistryInfo {
          isDefault
          imageRegistryName
          imageRepoName
          imageRegistryType
          secretName
          secretNamespace
          enableRegistry
        }
        imageRegistryID
        projectID
        updatedAt
        createdAt
        createdBy {
          userID
          username
          email
        }
        updatedBy {
          userID
          username
          email
        }
        isRemoved
      }
    }

##### Variables

    {
      "imageRegistryID": "xyz789",
      "projectID": "xyz789",
      "imageRegistryInfo": ImageRegistryInput
    }

##### Response

    {
      "data": {
        "updateImageRegistry": {
          "isDefault": false,
          "imageRegistryInfo": ImageRegistry,
          "imageRegistryID": "abc123",
          "projectID": "abc123",
          "updatedAt": "xyz789",
          "createdAt": "xyz789",
          "createdBy": UserDetails,
          "updatedBy": UserDetails,
          "isRemoved": false
        }
      }
    }

Mutations

## `updateProbe`

##### Description

Update the configuration of a Probe

##### Response

Returns a `String!`

##### Arguments

Name | Description
--- | ---
`request` - `ProbeRequest!` |
`projectID` - `ID!` |

#### Example

##### Query

    mutation UpdateProbe(
      $request: ProbeRequest!,
      $projectID: ID!
    ) {
      updateProbe(
        request: $request,
        projectID: $projectID
      )
    }

##### Variables

    {
      "request": ProbeRequest,
      "projectID": "4"
    }

##### Response

    {"data": {"updateProbe": "xyz789"}}

# Subscriptions

## `getInfraEvents`

##### Description

Listens infra events from the graphql server

##### Response

Returns an `InfraEventResponse!`

##### Arguments

Name | Description
--- | ---
`projectID` - `String!` |

#### Example

##### Query

    subscription GetInfraEvents($projectID: String!) {
      getInfraEvents(projectID: $projectID) {
        eventID
        eventType
        eventName
        description
        infra {
          projectID
          infraID
          name
          description
          tags
          environmentID
          platformName
          isActive
          isInfraConfirmed
          isRemoved
          updatedAt
          createdAt
          noOfExperiments
          noOfExperimentRuns
          token
          infraNamespace
          serviceAccount
          infraScope
          infraNsExists
          infraSaExists
          lastExperimentTimestamp
          startTime
          version
          createdBy {
            ...UserDetailsFragment
          }
          updatedBy {
            ...UserDetailsFragment
          }
          infraType
          updateStatus
        }
      }
    }

##### Variables

    {"projectID": "xyz789"}

##### Response

    {
      "data": {
        "getInfraEvents": {
          "eventID": "4",
          "eventType": "abc123",
          "eventName": "xyz789",
          "description": "xyz789",
          "infra": Infra
        }
      }
    }

Subscriptions

## `getKubeObject`

##### Description

Returns a kubernetes object given an input

##### Response

Returns a `KubeObjectResponse!`

##### Arguments

Name | Description
--- | ---
`request` - `KubeObjectRequest!` |

#### Example

##### Query

    subscription GetKubeObject($request: KubeObjectRequest!) {
      getKubeObject(request: $request) {
        infraID
        kubeObj {
          namespace
          data {
            ...ObjectDataFragment
          }
        }
      }
    }

##### Variables

    {"request": KubeObjectRequest}

##### Response

    {
      "data": {
        "getKubeObject": {
          "infraID": "4",
          "kubeObj": [KubeObject]
        }
      }
    }

Subscriptions

## `getPodLog`

##### Description

Returns experiment logs from the pods

##### Response

Returns a `PodLogResponse!`

##### Arguments

Name | Description
--- | ---
`request` - `PodLogRequest!` |

#### Example

##### Query

    subscription GetPodLog($request: PodLogRequest!) {
      getPodLog(request: $request) {
        experimentRunID
        podName
        podType
        log
      }
    }

##### Variables

    {"request": PodLogRequest}

##### Response

    {
      "data": {
        "getPodLog": {
          "experimentRunID": "4",
          "podName": "xyz789",
          "podType": "xyz789",
          "log": "abc123"
        }
      }
    }

Subscriptions

## `infraConnect`

##### Description

Listens infra operation request from the graphql server

##### Response

Returns an `InfraActionResponse!`

##### Arguments

Name | Description
--- | ---
`request` - `InfraIdentity!` |

#### Example

##### Query

    subscription InfraConnect($request: InfraIdentity!) {
      infraConnect(request: $request) {
        projectID
        action {
          requestID
          requestType
          k8sManifest
          namespace
          externalData
          username
        }
      }
    }

##### Variables

    {"request": InfraIdentity}

##### Response

    {
      "data": {
        "infraConnect": {
          "projectID": "abc123",
          "action": ActionPayload
        }
      }
    }

# Types

## ActionPayload

##### Fields

Field Name | Description
--- | ---
`requestID` - `String!` |
`requestType` - `String!` |
`k8sManifest` - `String!` |
`namespace` - `String!` |
`externalData` - `String` |
`username` - `String` |

##### Example

    {
      "requestID": "abc123",
      "requestType": "xyz789",
      "k8sManifest": "xyz789",
      "namespace": "xyz789",
      "externalData": "abc123",
      "username": "xyz789"
    }

Types

## Annotation

##### Fields

Field Name | Description
--- | ---
`categories` - `String!` |
`vendor` - `String!` |
`createdAt` - `String!` |
`repository` - `String!` |
`support` - `String!` |
`chartDescription` - `String!` |

##### Example

    {
      "categories": "abc123",
      "vendor": "abc123",
      "createdAt": "xyz789",
      "repository": "xyz789",
      "support": "xyz789",
      "chartDescription": "abc123"
    }

Types

## Audit

##### Fields

Field Name | Description
--- | ---
`updatedAt` - `String` |
`createdAt` - `String` |
`updatedBy` - `UserDetails` |
`createdBy` - `UserDetails` |

##### Possible Types

Audit Types
`ExperimentRun`
`RecentExperimentRun`
`Experiment`
`Infra`
`ChaosHub`
`ChaosHubStatus`
`Environment`
`ImageRegistryResponse`
`Probe`

##### Example

    {
      "updatedAt": "abc123",
      "createdAt": "xyz789",
      "updatedBy": UserDetails,
      "createdBy": UserDetails
    }

Types

## AuthType

##### Values

Enum Value | Description
--- | ---
`BASIC` |
`NONE` |
`SSH` |
`TOKEN` |

##### Example

    "BASIC"

Types

## Boolean

##### Description

The `Boolean` scalar type represents `true` or `false`.

##### Example

    true

Types

## ChaosExperimentRequest

##### Description

Defines the details for a chaos experiment

##### Fields

Input Field | Description
--- | ---
`experimentID` - `String` | ID of the experiment
`runExperiment` - `Boolean` | Boolean check indicating if the created scenario will be executed or not
`experimentManifest` - `String!` | Manifest of the experiment
`experimentType` - `ExperimentType` | Type of the experiment
`cronSyntax` - `String!` | Cron syntax of the experiment schedule
`experimentName` - `String!` | Name of the experiment
`experimentDescription` - `String!` | Description of the experiment
`weightages` - `[WeightagesInput!]!` | Array containing weightage and name of each chaos experiment in the experiment
`isCustomExperiment` - `Boolean!` | Bool value indicating whether the experiment is a custom experiment or not
`infraID` - `ID!` | ID of the target infra in which the experiment will run
`tags` - `[String!]` | Tags of the infra

##### Example

    {
      "experimentID": "xyz789",
      "runExperiment": true,
      "experimentManifest": "xyz789",
      "experimentType": "All",
      "cronSyntax": "xyz789",
      "experimentName": "xyz789",
      "experimentDescription": "abc123",
      "weightages": [WeightagesInput],
      "isCustomExperiment": false,
      "infraID": "4",
      "tags": ["xyz789"]
    }

Types

## ChaosExperimentResponse

##### Description

Defines the response received for querying the details of chaos experiment

##### Fields

Field Name | Description
--- | ---
`experimentID` - `String!` | ID of the experiment
`projectID` - `ID!` |
`cronSyntax` - `String!` | Cron syntax of the experiment schedule
`experimentName` - `String!` | Name of the experiment
`experimentDescription` - `String!` | Description of the experiment
`isCustomExperiment` - `Boolean!` | Bool value indicating whether the experiment is a custom experiment or not
`tags` - `[String!]` | Tags of the infra

##### Example

    {
      "experimentID": "xyz789",
      "projectID": 4,
      "cronSyntax": "xyz789",
      "experimentName": "abc123",
      "experimentDescription": "xyz789",
      "isCustomExperiment": false,
      "tags": ["abc123"]
    }

Types

## ChaosHub

##### Fields

Field Name | Description
--- | ---
`id` - `ID!` | ID of the chaos hub
`repoURL` - `String!` | URL of the git repository
`repoBranch` - `String!` | Branch of the git repository
`projectID` - `ID!` | ID of the project in which the chaos hub is present
`isDefault` - `Boolean!` | Default Hub Identifier
`name` - `String!` | Name of the chaos hub
`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
`hubType` - `HubType!` | Type of ChaosHub
`isPrivate` - `Boolean!` | Bool value indicating whether the hub is private or not.
`authType` - `AuthType!` | Type of authentication used: BASIC, SSH, TOKEN
`token` - `String` | Token for authentication of private chaos hub
`userName` - `String` | Git username
`password` - `String` | Git password
`sshPrivateKey` - `String` | Private SSH key for authenticating into private chaos hub
`isRemoved` - `Boolean!` | Bool value indicating if the chaos hub is removed
`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

##### Example

    {
      "id": 4,
      "repoURL": "abc123",
      "repoBranch": "xyz789",
      "projectID": "4",
      "isDefault": true,
      "name": "abc123",
      "tags": ["abc123"],
      "createdBy": UserDetails,
      "updatedBy": UserDetails,
      "description": "abc123",
      "hubType": "GIT",
      "isPrivate": false,
      "authType": "BASIC",
      "token": "xyz789",
      "userName": "abc123",
      "password": "abc123",
      "sshPrivateKey": "xyz789",
      "isRemoved": true,
      "createdAt": "xyz789",
      "updatedAt": "abc123",
      "lastSyncedAt": "xyz789"
    }

Types

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

    {
      "chaosHubName": "abc123",
      "tags": ["abc123"],
      "description": "xyz789"
    }

Types

## ChaosHubStatus

##### Fields

Field Name | Description
--- | ---
`id` - `ID!` | ID of the hub
`repoURL` - `String!` | URL of the git repository
`repoBranch` - `String!` | Branch of the git repository
`isAvailable` - `Boolean!` | Bool value indicating whether the hub is available or not.
`totalFaults` - `String!` | Total number of experiments in the hub
`totalExperiments` - `String!` | Total experiments
`name` - `String!` | Name of the chaos hub
`hubType` - `HubType!` | Type of ChaosHub
`isPrivate` - `Boolean!` | Bool value indicating whether the hub is private or not.
`authType` - `AuthType!` | Type of authentication used: BASIC, SSH, TOKEN
`token` - `String` | Token for authentication of private chaos hub
`userName` - `String` | Git username
`password` - `String` | Git password
`isRemoved` - `Boolean!` | Bool value indicating whether the hub is private or not.
`sshPrivateKey` - `String` | Private SSH key for authenticating into private chaos hub
`sshPublicKey` - `String` | Public SSH key for authenticating into private chaos hub
`lastSyncedAt` - `String!` | Timestamp when the chaos hub was last synced
`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
`isDefault` - `Boolean!` | Default Hub Identifier

##### Example

    {
      "id": 4,
      "repoURL": "xyz789",
      "repoBranch": "xyz789",
      "isAvailable": true,
      "totalFaults": "xyz789",
      "totalExperiments": "abc123",
      "name": "abc123",
      "hubType": "GIT",
      "isPrivate": false,
      "authType": "BASIC",
      "token": "xyz789",
      "userName": "abc123",
      "password": "abc123",
      "isRemoved": true,
      "sshPrivateKey": "xyz789",
      "sshPublicKey": "abc123",
      "lastSyncedAt": "abc123",
      "tags": ["xyz789"],
      "createdBy": UserDetails,
      "updatedBy": UserDetails,
      "createdAt": "xyz789",
      "updatedAt": "xyz789",
      "description": "abc123",
      "isDefault": false
    }

Types

## Chart

##### Fields

Field Name | Description
--- | ---
`apiVersion` - `String!` |
`kind` - `String!` |
`metadata` - `Metadata!` |
`spec` - `Spec!` |
`packageInfo` - `PackageInformation!` |

##### Example

    {
      "apiVersion": "xyz789",
      "kind": "abc123",
      "metadata": Metadata,
      "spec": Spec,
      "packageInfo": PackageInformation
    }

Types

## 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
`KubernetesCMDProbe`
`PROMProbe`
`KubernetesHTTPProbe`
`K8SProbe`

##### Example

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

Types

## 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": "abc123",
      "value": "abc123",
      "criteria": "abc123"
    }

Types

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

    {
      "type": "xyz789",
      "value": "xyz789",
      "criteria": "xyz789"
    }

Types

## ConfirmInfraRegistrationResponse

##### Fields

Field Name | Description
--- | ---
`isInfraConfirmed` - `Boolean!` |
`newAccessKey` - `String` |
`infraID` - `String` |

##### Example

    {
      "isInfraConfirmed": false,
      "newAccessKey": "xyz789",
      "infraID": "abc123"
    }

Types

## CreateChaosHubRequest

##### Description

Defines the details required for creating a chaos hub

##### Fields

Input Field | Description
--- | ---
`name` - `String!` | Name of the chaos hub
`tags` - `[String!]` | Tags of the ChaosHub
`description` - `String` | Description of ChaosHub
`repoURL` - `String!` | URL of the git repository
`repoBranch` - `String!` | Branch of the git repository
`isPrivate` - `Boolean!` | Bool value indicating whether the hub is private or not.
`authType` - `AuthType!` | Type of authentication used: BASIC, SSH, TOKEN
`token` - `String` | Token for authentication of private chaos hub
`userName` - `String` | Git username
`password` - `String` | Git password
`sshPrivateKey` - `String` | Private SSH key for authenticating into private chaos hub
`sshPublicKey` - `String` | Public SSH key for authenticating into private chaos hub

##### Example

    {
      "name": "xyz789",
      "tags": ["xyz789"],
      "description": "abc123",
      "repoURL": "xyz789",
      "repoBranch": "xyz789",
      "isPrivate": false,
      "authType": "BASIC",
      "token": "abc123",
      "userName": "xyz789",
      "password": "abc123",
      "sshPrivateKey": "abc123",
      "sshPublicKey": "abc123"
    }

Types

## CreateEnvironmentRequest

##### Fields

Input Field | Description
--- | ---
`environmentID` - `String!` |
`name` - `String!` |
`type` - `EnvironmentType!` |
`description` - `String` |
`tags` - `[String!]` |

##### Example

    {
      "environmentID": "xyz789",
      "name": "abc123",
      "type": "PROD",
      "description": "abc123",
      "tags": ["xyz789"]
    }

Types

## CreateRemoteChaosHub

##### Fields

Input Field | Description
--- | ---
`name` - `String!` | Name of the chaos hub
`tags` - `[String!]` | Tags of the ChaosHub
`description` - `String` | Description of ChaosHub
`repoURL` - `String!` | URL of the git repository

##### Example

    {
      "name": "xyz789",
      "tags": ["abc123"],
      "description": "abc123",
      "repoURL": "xyz789"
    }

Types

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

    {
      "startDate": "abc123",
      "endDate": "abc123"
    }

Types

## Environment

##### Fields

Field Name | Description
--- | ---
`projectID` - `String!` |
`environmentID` - `String!` |
`name` - `String!` |
`description` - `String` |
`tags` - `[String!]` |
`type` - `EnvironmentType!` |
`createdAt` - `String!` |
`createdBy` - `UserDetails` |
`updatedBy` - `UserDetails` |
`updatedAt` - `String!` |
`isRemoved` - `Boolean` |
`infraIDs` - `[String!]` |

##### Example

    {
      "projectID": "xyz789",
      "environmentID": "abc123",
      "name": "xyz789",
      "description": "xyz789",
      "tags": ["abc123"],
      "type": "PROD",
      "createdAt": "abc123",
      "createdBy": UserDetails,
      "updatedBy": UserDetails,
      "updatedAt": "xyz789",
      "isRemoved": false,
      "infraIDs": ["abc123"]
    }

Types

## EnvironmentFilterInput

##### Description

Defines filter options for infras

##### Fields

Input Field | Description
--- | ---
`name` - `String` | Name of the environment
`description` - `String` | ID of the environment
`type` - `EnvironmentType` | Type name of environment
`tags` - `[String!]` | Tags of an environment

##### Example

    {
      "name": "abc123",
      "description": "xyz789",
      "type": "PROD",
      "tags": ["abc123"]
    }

Types

## EnvironmentSortInput

##### Description

Defines sorting options for experiment

##### Fields

Input Field | Description
--- | ---
`field` - `EnvironmentSortingField!` | Field in which sorting will be done
`ascending` - `Boolean` | Bool value indicating whether the sorting will be done in ascending order

##### Example

    {"field": "NAME", "ascending": true}

Types

## EnvironmentSortingField

##### Values

Enum Value | Description
--- | ---
`NAME` |
`TIME` |

##### Example

    "NAME"

Types

## EnvironmentType

##### Values

Enum Value | Description
--- | ---
`PROD` |
`NON_PROD` |

##### Example

    "PROD"

Types

## 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": "xyz789",
      "experimentName": "xyz789",
      "updatedAt": 123,
      "updatedBy": UserDetails
    }

Types

## ExecutionHistory

##### Description

Defines the Execution History of experiment referenced by the Probe

##### Fields

Field Name | Description
--- | ---
`mode` - `Mode!` | Probe Mode
`faultName` - `String!` | Fault Name
`status` - `Status!` | Fault Status
`executedByExperiment` - `ExecutedByExperiment!` | Fault executed by which experiment

##### Example

    {
      "mode": "SOT",
      "faultName": "abc123",
      "status": Status,
      "executedByExperiment": ExecutedByExperiment
    }

Types

## Experiment

##### Description

Defines the details for a experiment

##### Fields

Field Name | Description
--- | ---
`projectID` - `ID!` |
`experimentID` - `String!` | ID of the experiment
`experimentType` - `String` | Type of the experiment
`experimentManifest` - `String!` | Manifest of the experiment
`cronSyntax` - `String!` | Cron syntax of the experiment schedule
`name` - `String!` | Name of the experiment
`description` - `String!` | Description of the experiment
`weightages` - `[Weightages!]!` | Array containing weightage and name of each chaos fault in the experiment
`isCustomExperiment` - `Boolean!` | Bool value indicating whether the experiment is a custom experiment or not
`updatedAt` - `String!` | Timestamp when the experiment was last updated
`createdAt` - `String!` | Timestamp when the experiment was created
`infra` - `Infra` | Target infra in which the experiment will run
`isRemoved` - `Boolean!` | Bool value indicating if the experiment has removed
`tags` - `[String!]` | Tags of the experiment
`createdBy` - `UserDetails` | User who created the experiment
`recentExperimentRunDetails` - `[RecentExperimentRun]` | Array of object containing details of recent experiment runs
`updatedBy` - `UserDetails` | Details of the user who updated the experiment

##### Example

    {
      "projectID": 4,
      "experimentID": "xyz789",
      "experimentType": "abc123",
      "experimentManifest": "abc123",
      "cronSyntax": "abc123",
      "name": "xyz789",
      "description": "abc123",
      "weightages": [Weightages],
      "isCustomExperiment": true,
      "updatedAt": "abc123",
      "createdAt": "abc123",
      "infra": Infra,
      "isRemoved": false,
      "tags": ["xyz789"],
      "createdBy": UserDetails,
      "recentExperimentRunDetails": [RecentExperimentRun],
      "updatedBy": UserDetails
    }

Types

## ExperimentFilterInput

##### Description

Defines filter options for experiments

##### Fields

Input Field | Description
--- | ---
`experimentName` - `String` | Name of the experiment
`infraName` - `String` | Name of the infra in which the experiment is running
`infraID` - `String` | ID of the infra in which the experiment is running
`infraActive` - `Boolean` | Bool value indicating if Chaos Infrastructure is active
`scheduleType` - `ScheduleType` | Scenario type of the experiment i.e. CRON or NON_CRON
`status` - `String` | Status of the latest experiment run
`dateRange` - `DateRange` | Date range for filtering purpose
`infraTypes` - `[InfrastructureType]` | Type of infras

##### Example

    {
      "experimentName": "xyz789",
      "infraName": "abc123",
      "infraID": "abc123",
      "infraActive": true,
      "scheduleType": "CRON",
      "status": "abc123",
      "dateRange": DateRange,
      "infraTypes": ["Kubernetes"]
    }

Types

## ExperimentRequest

##### Fields

Input Field | Description
--- | ---
`category` - `String!` | Name of the chart being used
`experimentName` - `String!` | Name of the experiment
`hubID` - `String!` | ID of the hub

##### Example

    {
      "category": "xyz789",
      "experimentName": "abc123",
      "hubID": "abc123"
    }

Types

## ExperimentRun

##### Description

Defines the details of a experiment run

##### Fields

Field Name | Description
--- | ---
`projectID` - `ID!` |
`experimentRunID` - `ID!` | ID of the experiment run which is to be queried
`experimentType` - `String` | Type of the experiment
`experimentID` - `ID!` | ID of the experiment
`weightages` - `[Weightages!]!` | Array containing weightage and name of each chaos fault in the experiment
`updatedAt` - `String!` | Timestamp at which experiment run was last updated
`createdAt` - `String!` | Timestamp at which experiment run was created
`infra` - `Infra!` | Target infra in which the experiment will run
`experimentName` - `String!` | Name of the experiment
`experimentManifest` - `String!` | Manifest of the experiment run
`phase` - `ExperimentRunStatus!` | Phase of the experiment run
`resiliencyScore` - `Float` | Resiliency score of the experiment
`faultsPassed` - `Int` | Number of faults passed
`faultsFailed` - `Int` | Number of faults failed
`faultsAwaited` - `Int` | Number of faults awaited
`faultsStopped` - `Int` | Number of faults stopped
`faultsNa` - `Int` | Number of faults which are not available
`totalFaults` - `Int` | Total number of faults
`executionData` - `String!` | Stores all the experiment run details related to the nodes of DAG graph and chaos results of the faults
`isRemoved` - `Boolean` | Bool value indicating if the experiment run has removed
`updatedBy` - `UserDetails` | User who has updated the experiment
`createdBy` - `UserDetails` | User who has created the experiment run
`notifyID` - `ID` | Notify ID of the experiment run
`runSequence` - `Int!` | runSequence is the sequence number of experiment run

##### Example

    {
      "projectID": "4",
      "experimentRunID": 4,
      "experimentType": "xyz789",
      "experimentID": 4,
      "weightages": [Weightages],
      "updatedAt": "abc123",
      "createdAt": "abc123",
      "infra": Infra,
      "experimentName": "xyz789",
      "experimentManifest": "xyz789",
      "phase": "All",
      "resiliencyScore": 123.45,
      "faultsPassed": 987,
      "faultsFailed": 987,
      "faultsAwaited": 123,
      "faultsStopped": 123,
      "faultsNa": 987,
      "totalFaults": 123,
      "executionData": "abc123",
      "isRemoved": false,
      "updatedBy": UserDetails,
      "createdBy": UserDetails,
      "notifyID": 4,
      "runSequence": 987
    }

Types

## ExperimentRunFilterInput

##### Description

Defines input type for experiment run filter

##### Fields

Input Field | Description
--- | ---
`experimentName` - `String` | Name of the experiment
`infraID` - `String` | Name of the infra infra
`experimentType` - `ScheduleType` | Type of the experiment
`experimentStatus` - `ExperimentRunStatus` | Status of the experiment run
`dateRange` - `DateRange` | Date range for filtering purpose
`experimentRunID` - `String` | ID of experiment run
`experimentRunStatus` - `[String]` | Array of experiment run status
`infraTypes` - `[InfrastructureType]` | Type of infras

##### Example

    {
      "experimentName": "xyz789",
      "infraID": "abc123",
      "experimentType": "CRON",
      "experimentStatus": "All",
      "dateRange": DateRange,
      "experimentRunID": "abc123",
      "experimentRunStatus": ["abc123"],
      "infraTypes": ["Kubernetes"]
    }

Types

## ExperimentRunRequest

##### Description

Defines the details for a experiment run

##### Fields

Input Field | Description
--- | ---
`experimentID` - `String!` | ID of the experiment
`notifyID` - `String` | notifyID is required to give an ack for non cron experiment execution
`experimentRunID` - `String!` | ID of the experiment run which is to be queried
`experimentName` - `String!` | Name of the experiment
`executionData` - `String!` | Stores all the experiment run details related to the nodes of DAG graph and chaos results of the experiments
`infraID` - `InfraIdentity!` | ID of the infra infra in which the experiment is running
`revisionID` - `String!` | ID of the revision which consists manifest details
`completed` - `Boolean!` | Bool value indicating if the experiment run has completed
`isRemoved` - `Boolean` | Bool value indicating if the experiment run has removed
`updatedBy` - `String!` | User who has updated the experiment

##### Example

    {
      "experimentID": "xyz789",
      "notifyID": "abc123",
      "experimentRunID": "xyz789",
      "experimentName": "abc123",
      "executionData": "abc123",
      "infraID": InfraIdentity,
      "revisionID": "abc123",
      "completed": false,
      "isRemoved": false,
      "updatedBy": "xyz789"
    }

Types

## ExperimentRunSortInput

##### Description

Defines sorting options for experiment runs

##### Fields

Input Field | Description
--- | ---
`field` - `ExperimentSortingField!` | Field in which sorting will be done
`ascending` - `Boolean` | Bool value indicating whether the sorting will be done in ascending order

##### Example

    {"field": "NAME", "ascending": true}

Types

## ExperimentRunStatus

##### Values

Enum Value | Description
--- | ---
`All` |
`Running` |
`Completed` |
`Completed_With_Error` |
`Stopped` |
`Skipped` |
`Error` |
`Timeout` |
`Terminated` |
`Queued` |
`NA` |

##### Example

    "All"

Types

## ExperimentSortInput

##### Description

Defines sorting options for experiment

##### Fields

Input Field | Description
--- | ---
`field` - `ExperimentSortingField!` | Field in which sorting will be done
`ascending` - `Boolean` | Bool value indicating whether the sorting will be done in ascending order

##### Example

    {"field": "NAME", "ascending": false}

Types

## ExperimentSortingField

##### Values

Enum Value | Description
--- | ---
`NAME` |
`TIME` |

##### Example

    "NAME"

Types

## ExperimentType

##### Values

Enum Value | Description
--- | ---
`All` |
`Experiment` |
`CronExperiment` |
`ChaosEngine` |
`ChaosSchedule` |

##### Example

    "All"

Types

## Experiments

##### Fields

Field Name | Description
--- | ---
`name` - `String!` |
`CSV` - `String!` |
`desc` - `String!` |

##### Example

    {
      "name": "abc123",
      "CSV": "xyz789",
      "desc": "abc123"
    }

Types

## 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": "abc123",
      "engine": "xyz789",
      "csv": "abc123"
    }

Types

## FaultList

##### Fields

Field Name | Description
--- | ---
`name` - `String!` |
`displayName` - `String!` |
`description` - `String!` |
`plan` - `[String!]` |

##### Example

    {
      "name": "abc123",
      "displayName": "abc123",
      "description": "abc123",
      "plan": ["abc123"]
    }

Types

## Float

##### Description

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

##### Example

    123.45

Types

## 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"
    }

Types

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

    {
      "criteria": "xyz789",
      "responseCode": "abc123"
    }

Types

## GetChaosHubStatsResponse

##### Fields

Field Name | Description
--- | ---
`totalChaosHubs` - `Int!` | Total number of chaoshubs

##### Example

    {"totalChaosHubs": 987}

Types

## GetExperimentResponse

##### Description

Defines the details for a given experiment with some additional data

##### Fields

Field Name | Description
--- | ---
`experimentDetails` - `Experiment!` | Details of experiment
`averageResiliencyScore` - `Float` | Average resiliency score of the experiment

##### Example

    {
      "experimentDetails": Experiment,
      "averageResiliencyScore": 987.65
    }

Types

## GetExperimentRunStatsResponse

##### Fields

Field Name | Description
--- | ---
`totalExperimentRuns` - `Int!` | Total number of experiment runs
`totalCompletedExperimentRuns` - `Int!` | Total number of completed experiments runs
`totalTerminatedExperimentRuns` - `Int!` | Total number of stopped experiment runs
`totalRunningExperimentRuns` - `Int!` | Total number of running experiment runs
`totalStoppedExperimentRuns` - `Int!` | Total number of stopped experiment runs
`totalErroredExperimentRuns` - `Int!` | Total number of errored experiment runs

##### Example

    {
      "totalExperimentRuns": 123,
      "totalCompletedExperimentRuns": 987,
      "totalTerminatedExperimentRuns": 123,
      "totalRunningExperimentRuns": 123,
      "totalStoppedExperimentRuns": 987,
      "totalErroredExperimentRuns": 987
    }

Types

## GetExperimentStatsResponse

##### Fields

Field Name | Description
--- | ---
`totalExperiments` - `Int!` | Total number of experiments
`totalExpCategorizedByResiliencyScore` - `[ResilienceScoreCategory]!` | Total number of cron experiments

##### Example

    {
      "totalExperiments": 987,
      "totalExpCategorizedByResiliencyScore": [
        ResilienceScoreCategory
      ]
    }

Types

## 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": 123,
      "totalInactiveInfrastructures": 123,
      "totalConfirmedInfrastructure": 987,
      "totalNonConfirmedInfrastructures": 987
    }

Types

## GetProbeReferenceResponse

##### Description

Defines the response of the Probe reference API

##### Fields

Field Name | Description
--- | ---
`projectID` - `ID!` | Harness identifiers
`name` - `String!` | Name of the Probe
`totalRuns` - `Int!` | Total Runs
`recentExecutions` - `[RecentExecutions]!` | Recent Executions of the probe

##### Example

    {
      "projectID": 4,
      "name": "abc123",
      "totalRuns": 987,
      "recentExecutions": [RecentExecutions]
    }

Types

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

    {"probeName": 4, "mode": "SOT"}

Types

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

Types

## GitConfig

##### Description

Details of setting a Git repository

##### Fields

Input Field | Description
--- | ---
`branch` - `String!` | Git branch where the chaos charts will be pushed and synced
`repoURL` - `String!` | URL of the Git repository
`authType` - `AuthType!` | Type of authentication used: BASIC, SSH, TOKEN
`token` - `String` | Token used for private repository
`userName` - `String` | Git username
`password` - `String` | Git password
`sshPrivateKey` - `String` | Private SSH key authenticating into git repository

##### Example

    {
      "branch": "abc123",
      "repoURL": "abc123",
      "authType": "BASIC",
      "token": "xyz789",
      "userName": "xyz789",
      "password": "xyz789",
      "sshPrivateKey": "abc123"
    }

Types

## GitConfigResponse

##### Description

Response received after configuring GitOps

##### Fields

Field Name | Description
--- | ---
`enabled` - `Boolean!` | Bool value indicating whether GitOps is enabled or not
`projectID` - `String!` | ID of the project where GitOps is configured
`branch` - `String` | Git branch where the chaos charts will be pushed and synced
`repoURL` - `String` | URL of the Git repository
`authType` - `AuthType` | Type of authentication used: BASIC, SSH, TOKEN
`token` - `String` | Token used for private repository
`userName` - `String` | Git username
`password` - `String` | Git password
`sshPrivateKey` - `String` | Private SSH key authenticating into git repository

##### Example

    {
      "enabled": true,
      "projectID": "abc123",
      "branch": "abc123",
      "repoURL": "xyz789",
      "authType": "BASIC",
      "token": "abc123",
      "userName": "xyz789",
      "password": "xyz789",
      "sshPrivateKey": "abc123"
    }

Types

## HubType

##### Values

Enum Value | Description
--- | ---
`GIT` |
`REMOTE` |

##### Example

    "GIT"

Types

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

    4

Types

## INFRA_SCOPE

##### Values

Enum Value | Description
--- | ---
`namespace` |
`cluster` |

##### Example

    "namespace"

Types

## ImageRegistry

##### Description

Defines details for image registry

##### Fields

Field Name | Description
--- | ---
`isDefault` - `Boolean` | Bool value indicating if the image registry is default or not; by default workflow uses LitmusChaos registry
`imageRegistryName` - `String!` | Name of Image Registry
`imageRepoName` - `String!` | Name of image repository
`imageRegistryType` - `String!` | Type of the image registry: public/private
`secretName` - `String` | Secret which is used for private registry
`secretNamespace` - `String` | Namespace where the secret is available
`enableRegistry` - `Boolean` | Bool value indicating if image registry is enabled or not

##### Example

    {
      "isDefault": true,
      "imageRegistryName": "abc123",
      "imageRepoName": "xyz789",
      "imageRegistryType": "xyz789",
      "secretName": "abc123",
      "secretNamespace": "xyz789",
      "enableRegistry": true
    }

Types

## ImageRegistryInput

##### Description

Defines input data for querying the details of an image registry

##### Fields

Input Field | Description
--- | ---
`isDefault` - `Boolean!` | Bool value indicating if the image registry is default or not; by default workflow uses LitmusChaos registry
`imageRegistryName` - `String!` | Name of Image Registry
`imageRepoName` - `String!` | Name of image repository
`imageRegistryType` - `String!` | Type of the image registry: public/private
`secretName` - `String` | Secret which is used for private registry
`secretNamespace` - `String` | Namespace where the secret is available
`enableRegistry` - `Boolean` | Bool value indicating if image registry is enabled or not

##### Example

    {
      "isDefault": true,
      "imageRegistryName": "xyz789",
      "imageRepoName": "abc123",
      "imageRegistryType": "xyz789",
      "secretName": "abc123",
      "secretNamespace": "xyz789",
      "enableRegistry": true
    }

Types

## ImageRegistryResponse

##### Description

Defines response data for image registry

##### Fields

Field Name | Description
--- | ---
`isDefault` - `Boolean!` | Bool value indicating if the image registry is default or not; by default workflow uses LitmusChaos registry
`imageRegistryInfo` - `ImageRegistry` | Information Image Registry
`imageRegistryID` - `String!` | ID of the image registry
`projectID` - `String!` | ID of the project in which image registry is created
`updatedAt` - `String` | Timestamp when the image registry was last updated
`createdAt` - `String` | Timestamp when the image registry was created
`createdBy` - `UserDetails` | User who created the infra
`updatedBy` - `UserDetails` | User who has updated the infra
`isRemoved` - `Boolean` | Bool value indicating if the image registry has been removed

##### Example

    {
      "isDefault": true,
      "imageRegistryInfo": ImageRegistry,
      "imageRegistryID": "abc123",
      "projectID": "abc123",
      "updatedAt": "xyz789",
      "createdAt": "xyz789",
      "createdBy": UserDetails,
      "updatedBy": UserDetails,
      "isRemoved": false
    }

Types

## Infra

##### Description

Defines the details for a infra

##### Fields

Field Name | Description
--- | ---
`projectID` - `ID!` |
`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
`noOfExperiments` - `Int` | Number of schedules created in the infra
`noOfExperimentRuns` - `Int` | Number of experiments 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` - `String!` | 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
`lastExperimentTimestamp` - `String` | Timestamp of the last experiment 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
`infraType` - `InfrastructureType` | Type of the infrastructure
`updateStatus` - `UpdateStatus!` | update status of infra

##### Example

    {
      "projectID": 4,
      "infraID": "4",
      "name": "abc123",
      "description": "xyz789",
      "tags": ["xyz789"],
      "environmentID": "abc123",
      "platformName": "abc123",
      "isActive": true,
      "isInfraConfirmed": true,
      "isRemoved": false,
      "updatedAt": "abc123",
      "createdAt": "xyz789",
      "noOfExperiments": 123,
      "noOfExperimentRuns": 123,
      "token": "xyz789",
      "infraNamespace": "xyz789",
      "serviceAccount": "xyz789",
      "infraScope": "abc123",
      "infraNsExists": false,
      "infraSaExists": true,
      "lastExperimentTimestamp": "xyz789",
      "startTime": "xyz789",
      "version": "xyz789",
      "createdBy": UserDetails,
      "updatedBy": UserDetails,
      "infraType": "Kubernetes",
      "updateStatus": "AVAILABLE"
    }

Types

## InfraActionResponse

##### Fields

Field Name | Description
--- | ---
`projectID` - `String!` |
`action` - `ActionPayload!` |

##### Example

    {
      "projectID": "abc123",
      "action": ActionPayload
    }

Types

## InfraEventResponse

##### Fields

Field Name | Description
--- | ---
`eventID` - `ID!` |
`eventType` - `String!` |
`eventName` - `String!` |
`description` - `String!` |
`infra` - `Infra!` |

##### Example

    {
      "eventID": 4,
      "eventType": "xyz789",
      "eventName": "xyz789",
      "description": "abc123",
      "infra": Infra
    }

Types

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

    {
      "name": "xyz789",
      "infraID": "abc123",
      "description": "xyz789",
      "platformName": "xyz789",
      "infraScope": "namespace",
      "isActive": true,
      "tags": ["abc123"]
    }

Types

## InfraIdentity

##### Fields

Input Field | Description
--- | ---
`infraID` - `String!` |
`accessKey` - `String!` |
`version` - `String!` |

##### Example

    {
      "infraID": "abc123",
      "accessKey": "xyz789",
      "version": "abc123"
    }

Types

## 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": ["xyz789"]
    }

Types

## InfrastructureType

##### Values

Enum Value | Description
--- | ---
`Kubernetes` |

##### Example

    "Kubernetes"

Types

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

    123

Types

## 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
`resourceNames` - `String` | Resource Names 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": "abc123",
      "interval": "abc123",
      "retry": 123,
      "attempt": 123,
      "probePollingInterval": "xyz789",
      "initialDelay": "xyz789",
      "evaluationTimeout": "abc123",
      "stopOnFailure": false,
      "group": "xyz789",
      "version": "xyz789",
      "resource": "abc123",
      "namespace": "xyz789",
      "resourceNames": "xyz789",
      "fieldSelector": "abc123",
      "labelSelector": "xyz789",
      "operation": "abc123"
    }

Types

## 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
`resourceNames` - `String` | Resource Names 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": "xyz789",
      "retry": 123,
      "attempt": 123,
      "probePollingInterval": "abc123",
      "initialDelay": "abc123",
      "evaluationTimeout": "abc123",
      "stopOnFailure": false,
      "group": "abc123",
      "version": "abc123",
      "resource": "xyz789",
      "namespace": "xyz789",
      "resourceNames": "xyz789",
      "fieldSelector": "abc123",
      "labelSelector": "xyz789",
      "operation": "xyz789"
    }

Types

## KubeGVRRequest

##### Fields

Input Field | Description
--- | ---
`group` - `String!` |
`version` - `String!` |
`resource` - `String!` |

##### Example

    {
      "group": "xyz789",
      "version": "abc123",
      "resource": "xyz789"
    }

Types

## KubeObject

##### Description

KubeObject consists of the namespace and the available resources in the same

##### Fields

Field Name | Description
--- | ---
`namespace` - `String!` | Namespace of the resource
`data` - `[ObjectData]!` | Details of the resource

##### Example

    {
      "namespace": "xyz789",
      "data": [ObjectData]
    }

Types

## KubeObjectData

##### Description

Defines the details of Kubernetes object

##### Fields

Input Field | Description
--- | ---
`requestID` - `ID!` | Unique request ID for fetching Kubernetes object details
`infraID` - `InfraIdentity!` | ID of the infra in which the Kubernetes object is present
`kubeObj` - `String!` | Type of the Kubernetes object

##### Example

    {
      "requestID": 4,
      "infraID": InfraIdentity,
      "kubeObj": "xyz789"
    }

Types

## KubeObjectRequest

##### Description

Defines details for fetching Kubernetes object data

##### Fields

Input Field | Description
--- | ---
`infraID` - `ID!` | ID of the infra in which the Kubernetes object is present
`kubeObjRequest` - `KubeGVRRequest` | GVR Request
`objectType` - `String!` |
`workloads` - `[Workload]` |

##### Example

    {
      "infraID": 4,
      "kubeObjRequest": KubeGVRRequest,
      "objectType": "abc123",
      "workloads": [Workload]
    }

Types

## KubeObjectResponse

##### Description

Response received for querying Kubernetes Object

##### Fields

Field Name | Description
--- | ---
`infraID` - `ID!` | ID of the infra in which the Kubernetes object is present
`kubeObj` - `[KubeObject]!` | Type of the Kubernetes object

##### Example

    {"infraID": 4, "kubeObj": [KubeObject]}

Types

## KubernetesCMDProbe

##### Description

Defines the 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": "xyz789",
      "interval": "xyz789",
      "retry": 123,
      "attempt": 987,
      "probePollingInterval": "xyz789",
      "initialDelay": "xyz789",
      "evaluationTimeout": "xyz789",
      "stopOnFailure": true,
      "command": "abc123",
      "comparator": Comparator,
      "source": "abc123"
    }

Types

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

    {
      "probeTimeout": "abc123",
      "interval": "xyz789",
      "retry": 987,
      "attempt": 987,
      "probePollingInterval": "xyz789",
      "initialDelay": "xyz789",
      "evaluationTimeout": "xyz789",
      "stopOnFailure": false,
      "command": "xyz789",
      "comparator": ComparatorInput,
      "source": "abc123"
    }

Types

## 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": "abc123",
      "interval": "xyz789",
      "retry": 987,
      "attempt": 987,
      "probePollingInterval": "abc123",
      "initialDelay": "abc123",
      "evaluationTimeout": "xyz789",
      "stopOnFailure": false,
      "url": "abc123",
      "method": Method,
      "insecureSkipVerify": true
    }

Types

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

    {
      "probeTimeout": "abc123",
      "interval": "xyz789",
      "retry": 987,
      "attempt": 987,
      "probePollingInterval": "xyz789",
      "initialDelay": "abc123",
      "evaluationTimeout": "xyz789",
      "stopOnFailure": true,
      "url": "xyz789",
      "method": MethodRequest,
      "insecureSkipVerify": true
    }

Types

## Link

##### Fields

Field Name | Description
--- | ---
`name` - `String!` |
`url` - `String!` |

##### Example

    {
      "name": "xyz789",
      "url": "xyz789"
    }

Types

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

    {"chaosHubIDs": [4], "filter": ChaosHubFilterInput}

Types

## ListEnvironmentRequest

##### Fields

Input Field | Description
--- | ---
`environmentIDs` - `[ID!]` | Environment ID
`pagination` - `Pagination` | Details for fetching paginated data
`filter` - `EnvironmentFilterInput` | Details for fetching filtered data
`sort` - `EnvironmentSortInput` | Details for fetching sorted data

##### Example

    {
      "environmentIDs": [4],
      "pagination": Pagination,
      "filter": EnvironmentFilterInput,
      "sort": EnvironmentSortInput
    }

Types

## ListEnvironmentResponse

##### Fields

Field Name | Description
--- | ---
`totalNoOfEnvironments` - `Int!` | Total number of environment
`environments` - `[Environment]` |

##### Example

    {
      "totalNoOfEnvironments": 123,
      "environments": [Environment]
    }

Types

## ListExperimentRequest

##### Description

Defines the details for a experiment

##### Fields

Input Field | Description
--- | ---
`experimentIDs` - `[ID]` | Array of experiment IDs for which details will be fetched
`pagination` - `Pagination` | Details for fetching paginated data
`sort` - `ExperimentSortInput` | Details for fetching sorted data
`filter` - `ExperimentFilterInput` | Details for fetching filtered data

##### Example

    {
      "experimentIDs": ["4"],
      "pagination": Pagination,
      "sort": ExperimentSortInput,
      "filter": ExperimentFilterInput
    }

Types

## ListExperimentResponse

##### Description

Defines the details for a experiment with total experiment count

##### Fields

Field Name | Description
--- | ---
`totalNoOfExperiments` - `Int!` | Total number of experiments
`experiments` - `[Experiment]!` | Details related to the experiments

##### Example

    {"totalNoOfExperiments": 123, "experiments": [Experiment]}

Types

## ListExperimentRunRequest

##### Description

Defines the details for experiment runs

##### Fields

Input Field | Description
--- | ---
`experimentRunIDs` - `[ID]` | Array of experiment run IDs for which details will be fetched
`experimentIDs` - `[ID]` | Array of experiment IDs for which details will be fetched
`pagination` - `Pagination` | Details for fetching paginated data
`sort` - `ExperimentRunSortInput` | Details for fetching sorted data
`filter` - `ExperimentRunFilterInput` | Details for fetching filtered data

##### Example

    {
      "experimentRunIDs": [4],
      "experimentIDs": ["4"],
      "pagination": Pagination,
      "sort": ExperimentRunSortInput,
      "filter": ExperimentRunFilterInput
    }

Types

## ListExperimentRunResponse

##### Description

Defines the details of a experiment to sent as response

##### Fields

Field Name | Description
--- | ---
`totalNoOfExperimentRuns` - `Int!` | Total number of experiment runs
`experimentRuns` - `[ExperimentRun]!` | Defines details of experiment runs

##### Example

    {
      "totalNoOfExperimentRuns": 123,
      "experimentRuns": [ExperimentRun]
    }

Types

## ListInfraRequest

##### Description

Defines the details for a infra

##### 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` - `InfraFilterInput` | Details for fetching filtered data

##### Example

    {
      "infraIDs": ["4"],
      "environmentIDs": [4],
      "pagination": Pagination,
      "filter": InfraFilterInput
    }

Types

## 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": 987, "infras": [Infra]}

Types

## 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"
    }

Types

## Metadata

##### Fields

Field Name | Description
--- | ---
`name` - `String!` |
`version` - `String!` |
`annotations` - `Annotation!` |

##### Example

    {
      "name": "abc123",
      "version": "xyz789",
      "annotations": Annotation
    }

Types

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

Types

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

    {
      "get": GETRequest,
      "post": POSTRequest
    }

Types

## Mode

##### Description

Defines the different modes of Probes

##### Values

Enum Value | Description
--- | ---
`SOT` |
`EOT` |
`Edge` |
`Continuous` |
`OnChaos` |

##### Example

    "SOT"

Types

## ObjectData

##### Fields

Field Name | Description
--- | ---
`labels` - `[String!]` | Labels present in the resource
`name` - `String!` | Name of the resource

##### Example

    {
      "labels": ["abc123"],
      "name": "xyz789"
    }

Types

## 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": "xyz789",
      "body": "xyz789",
      "bodyPath": "abc123",
      "criteria": "abc123",
      "responseCode": "xyz789"
    }

Types

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

    {
      "contentType": "abc123",
      "body": "abc123",
      "bodyPath": "abc123",
      "criteria": "xyz789",
      "responseCode": "abc123"
    }

Types

## 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": "abc123",
      "interval": "abc123",
      "retry": 123,
      "attempt": 123,
      "probePollingInterval": "abc123",
      "initialDelay": "xyz789",
      "evaluationTimeout": "xyz789",
      "stopOnFailure": false,
      "endpoint": "abc123",
      "query": "abc123",
      "queryPath": "abc123",
      "comparator": Comparator
    }

Types

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

    {
      "probeTimeout": "xyz789",
      "interval": "xyz789",
      "retry": 987,
      "attempt": 123,
      "probePollingInterval": "xyz789",
      "initialDelay": "abc123",
      "evaluationTimeout": "abc123",
      "stopOnFailure": false,
      "endpoint": "abc123",
      "query": "abc123",
      "queryPath": "xyz789",
      "comparator": ComparatorInput
    }

Types

## PackageInformation

##### Fields

Field Name | Description
--- | ---
`packageName` - `String!` |
`experiments` - `[Experiments!]!` |

##### Example

    {
      "packageName": "xyz789",
      "experiments": [Experiments]
    }

Types

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

    {"page": 987, "limit": 987}

Types

## PodLog

##### Description

Response received for querying pod logs

##### Fields

Input Field | Description
--- | ---
`infraID` - `InfraIdentity!` | ID of the cluster
`requestID` - `ID!` | Unique request ID of a particular node which is being queried
`experimentRunID` - `ID!` | ID of a experiment run
`podName` - `String!` | Name of the pod for which logs are required
`podType` - `String!` | Type of the pod: chaosengine
`log` - `String!` | Logs for the pod

##### Example

    {
      "infraID": InfraIdentity,
      "requestID": "4",
      "experimentRunID": 4,
      "podName": "xyz789",
      "podType": "abc123",
      "log": "xyz789"
    }

Types

## PodLogRequest

##### Description

Defines the details for fetching the pod logs

##### Fields

Input Field | Description
--- | ---
`infraID` - `ID!` | ID of the cluster
`experimentRunID` - `ID!` | ID of a experiment run
`podName` - `String!` | Name of the pod for which logs are required
`podNamespace` - `String!` | Namespace where the pod is running
`podType` - `String!` | Type of the pod: chaosEngine or not pod
`expPod` - `String` | Name of the experiment pod fetched from execution data
`runnerPod` - `String` | Name of the runner pod fetched from execution data
`chaosNamespace` - `String` | Namespace where the experiment is executing

##### Example

    {
      "infraID": "4",
      "experimentRunID": "4",
      "podName": "abc123",
      "podNamespace": "abc123",
      "podType": "abc123",
      "expPod": "xyz789",
      "runnerPod": "abc123",
      "chaosNamespace": "xyz789"
    }

Types

## PodLogResponse

##### Description

Defines the response received for querying querying the pod logs

##### Fields

Field Name | Description
--- | ---
`experimentRunID` - `ID!` | ID of the experiment run which is to be queried
`podName` - `String!` | Name of the pod for which logs are queried
`podType` - `String!` | Type of the pod: chaosengine
`log` - `String!` | Logs for the pod

##### Example

    {
      "experimentRunID": "4",
      "podName": "abc123",
      "podType": "abc123",
      "log": "xyz789"
    }

Types

## PredefinedExperimentList

##### Fields

Field Name | Description
--- | ---
`experimentName` - `String!` | Name of the experiment
`experimentCSV` - `String!` | Experiment CSV
`experimentManifest` - `String!` | Experiment Manifest

##### Example

    {
      "experimentName": "xyz789",
      "experimentCSV": "xyz789",
      "experimentManifest": "abc123"
    }

Types

## Probe

##### Description

Defines the details of the Probe entity

##### Fields

Field Name | Description
--- | ---
`projectID` - `ID!` | 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
`kubernetesCMDProperties` - `KubernetesCMDProbe` | Kubernetes 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
`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

    {
      "projectID": "4",
      "name": "xyz789",
      "description": "abc123",
      "tags": ["abc123"],
      "type": "httpProbe",
      "infrastructureType": "Kubernetes",
      "kubernetesHTTPProperties": KubernetesHTTPProbe,
      "kubernetesCMDProperties": KubernetesCMDProbe,
      "k8sProperties": K8SProbe,
      "promProperties": PROMProbe,
      "recentExecutions": [ProbeRecentExecutions],
      "referencedBy": 123,
      "updatedAt": "abc123",
      "createdAt": "abc123",
      "updatedBy": UserDetails,
      "createdBy": UserDetails
    }

Types

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

    {
      "name": "abc123",
      "dateRange": DateRange,
      "type": ["httpProbe"]
    }

Types

## 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": "abc123",
      "status": Status,
      "executedByExperiment": ExecutedByExperiment
    }

Types

## ProbeRequest

##### Description

Defines the details required for creating a Chaos Probe

##### Fields

Input Field | Description
--- | ---
`name` - `ID!` | 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` - `KubernetesHTTPProbeRequest` | HTTP Properties of the specific type of the Probe
`kubernetesCMDProperties` - `KubernetesCMDProbeRequest` | CMD Properties of the specific type of the Probe
`k8sProperties` - `K8SProbeRequest` | K8S Properties of the specific type of the Probe
`promProperties` - `PROMProbeRequest` | PROM Properties of the specific type of the Probe

##### Example

    {
      "name": 4,
      "description": "xyz789",
      "tags": ["xyz789"],
      "type": "httpProbe",
      "infrastructureType": "Kubernetes",
      "kubernetesHTTPProperties": KubernetesHTTPProbeRequest,
      "kubernetesCMDProperties": KubernetesCMDProbeRequest,
      "k8sProperties": K8SProbeRequest,
      "promProperties": PROMProbeRequest
    }

Types

## ProbeType

##### Description

Defines the different types of Probes

##### Values

Enum Value | Description
--- | ---
`httpProbe` |
`cmdProbe` |
`promProbe` |
`k8sProbe` |

##### Example

    "httpProbe"

Types

## ProbeVerdict

##### Description

Defines the older different statuses of Probes

##### Values

Enum Value | Description
--- | ---
`Passed` |
`Failed` |
`NA` |
`Awaited` |

##### Example

    "Passed"

Types

## Provider

##### Fields

Field Name | Description
--- | ---
`name` - `String!` |

##### Example

    {"name": "xyz789"}

Types

## RecentExecutions

##### Description

Defines the Recent Executions of experiment referenced by the Probe

##### Fields

Field Name | Description
--- | ---
`faultName` - `String!` | Fault name
`mode` - `Mode!` | Probe mode
`executionHistory` - `[ExecutionHistory!]!` | Execution History

##### Example

    {
      "faultName": "xyz789",
      "mode": "SOT",
      "executionHistory": [ExecutionHistory]
    }

Types

## RecentExperimentRun

##### Fields

Field Name | Description
--- | ---
`experimentRunID` - `ID!` | ID of the experiment run which is to be queried
`phase` - `String!` | Phase of the experiment run
`resiliencyScore` - `Float` | Resiliency score of the experiment
`updatedAt` - `String!` | Timestamp when the experiment was last updated
`createdAt` - `String!` | Timestamp when the experiment was created
`createdBy` - `UserDetails` | User who created the experiment run
`updatedBy` - `UserDetails` | User who updated the experiment run
`runSequence` - `Int!` | runSequence is the sequence number of experiment run

##### Example

    {
      "experimentRunID": "4",
      "phase": "xyz789",
      "resiliencyScore": 123.45,
      "updatedAt": "xyz789",
      "createdAt": "abc123",
      "createdBy": UserDetails,
      "updatedBy": UserDetails,
      "runSequence": 123
    }

Types

## RegisterInfraRequest

##### Description

Defines the details for the new infra being connected

##### Fields

Input Field | Description
--- | ---
`name` - `String!` | Name of the infra
`environmentID` - `String!` | Environment ID for the infra
`infrastructureType` - `InfrastructureType!` | Type of Infra : internal/external
`description` - `String` | Description of the infra
`platformName` - `String!` | Infra Platform Name eg. GKE,AWS, Others
`infraNamespace` - `String` | Namespace where the infra is being installed
`serviceAccount` - `String` | Name of service account used by infra
`infraScope` - `String!` | Scope of the infra : ns or infra
`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
`skipSsl` - `Boolean` | Bool value indicating whether infra will skip ssl checks or not
`nodeSelector` - `String` | Node selectors used by infra
`tolerations` - `[Toleration]` | Node tolerations used by infra
`tags` - `[String!]` | Tags of the infra

##### Example

    {
      "name": "xyz789",
      "environmentID": "xyz789",
      "infrastructureType": "Kubernetes",
      "description": "xyz789",
      "platformName": "xyz789",
      "infraNamespace": "xyz789",
      "serviceAccount": "xyz789",
      "infraScope": "abc123",
      "infraNsExists": false,
      "infraSaExists": false,
      "skipSsl": false,
      "nodeSelector": "xyz789",
      "tolerations": [Toleration],
      "tags": ["abc123"]
    }

Types

## RegisterInfraResponse

##### Description

Response received for registering a new infra

##### Fields

Field Name | Description
--- | ---
`token` - `String!` | Token used to verify and retrieve the infra manifest
`infraID` - `String!` | Unique ID for the newly registered infra
`name` - `String!` | Infra name as sent in request
`manifest` - `String!` | Infra Manifest

##### Example

    {
      "token": "xyz789",
      "infraID": "abc123",
      "name": "xyz789",
      "manifest": "xyz789"
    }

Types

## ResilienceScoreCategory

##### Fields

Field Name | Description
--- | ---
`id` - `Int!` | Lower bound of the range(inclusive)
`count` - `Int!` | total experiments with avg resilience score between lower bound and upper bound(exclusive)

##### Example

    {"id": 987, "count": 987}

Types

## ResourceDetails

##### Fields

Field Name | Description
--- | ---
`name` - `String!` |
`description` - `String` |
`tags` - `[String!]` |

##### Possible Types

ResourceDetails Types
`Experiment`
`Infra`
`ChaosHub`
`ChaosHubStatus`
`Environment`
`Probe`

##### Example

    {
      "name": "abc123",
      "description": "abc123",
      "tags": ["abc123"]
    }

Types

## RunChaosExperimentResponse

##### Fields

Field Name | Description
--- | ---
`notifyID` - `ID!` |

##### Example

    {"notifyID": 4}

Types

## SSHKey

##### Description

Defines the SSHKey details

##### Fields

Field Name | Description
--- | ---
`publicKey` - `String!` | Public SSH key authenticating into git repository
`privateKey` - `String!` | Private SSH key authenticating into git repository

##### Example

    {
      "publicKey": "abc123",
      "privateKey": "abc123"
    }

Types

## SaveChaosExperimentRequest

##### Description

Defines the details for a chaos experiment

##### Fields

Input Field | Description
--- | ---
`id` - `String!` | ID of the experiment
`type` - `ExperimentType` | Type of the experiment
`name` - `String!` | Name of the experiment
`description` - `String!` | Description of the experiment
`manifest` - `String!` | Manifest of the experiment
`infraID` - `ID!` | ID of the target infrastructure in which the experiment will run
`tags` - `[String!]` | Tags of the infrastructure

##### Example

    {
      "id": "xyz789",
      "type": "All",
      "name": "xyz789",
      "description": "abc123",
      "manifest": "abc123",
      "infraID": 4,
      "tags": ["xyz789"]
    }

Types

## ScheduleType

##### Values

Enum Value | Description
--- | ---
`CRON` |
`NON_CRON` |
`ALL` |

##### Example

    "CRON"

Types

## ServerVersionResponse

##### Description

Response received for fetching GQL server version

##### Fields

Field Name | Description
--- | ---
`key` - `String!` | Returns server version key
`value` - `String!` | Returns server version value

##### Example

    {
      "key": "abc123",
      "value": "abc123"
    }

Types

## Spec

##### Fields

Field Name | Description
--- | ---
`displayName` - `String!` |
`categoryDescription` - `String!` |
`keywords` - `[String!]!` |
`maturity` - `String!` |
`maintainers` - `[Maintainer!]!` |
`minKubeVersion` - `String!` |
`provider` - `Provider!` |
`links` - `[Link!]!` |
`faults` - `[FaultList!]!` |
`experiments` - `[String!]` |
`chaosExpCRDLink` - `String!` |
`platforms` - `[String!]!` |
`chaosType` - `String` |

##### Example

    {
      "displayName": "xyz789",
      "categoryDescription": "abc123",
      "keywords": ["abc123"],
      "maturity": "xyz789",
      "maintainers": [Maintainer],
      "minKubeVersion": "abc123",
      "provider": Provider,
      "links": [Link],
      "faults": [FaultList],
      "experiments": ["xyz789"],
      "chaosExpCRDLink": "abc123",
      "platforms": ["abc123"],
      "chaosType": "abc123"
    }

Types

## Status

##### Description

Status defines whether a probe is pass or fail

##### Fields

Field Name | Description
--- | ---
`verdict` - `ProbeVerdict!` | Verdict defines the verdict of the probe, range: Passed, Failed, N/A
`description` - `String` | Description defines the description of probe status

##### Example

    {
      "verdict": "Passed",
      "description": "xyz789"
    }

Types

## String

##### Description

The `String` scalar type represents textual data, represented as UTF-8 character sequences. The String type is most often used by GraphQL to represent free-form human-readable text.

##### Example

    "xyz789"

Types

## Toleration

##### Fields

Input Field | Description
--- | ---
`tolerationSeconds` - `Int` |
`key` - `String` |
`operator` - `String` |
`effect` - `String` |
`value` - `String` |

##### Example

    {
      "tolerationSeconds": 987,
      "key": "abc123",
      "operator": "xyz789",
      "effect": "abc123",
      "value": "xyz789"
    }

Types

## UpdateChaosHubRequest

##### Fields

Input Field | Description
--- | ---
`id` - `String!` | ID of the chaos hub
`name` - `String!` | Name of the chaos hub
`description` - `String` | Description of the infra
`tags` - `[String!]` | Tags of the infra
`repoURL` - `String!` | URL of the git repository
`repoBranch` - `String!` | Branch of the git repository
`isPrivate` - `Boolean!` | Bool value indicating whether the hub is private or not.
`authType` - `AuthType!` | Type of authentication used: BASIC, SSH, TOKEN
`token` - `String` | Token for authentication of private chaos hub
`userName` - `String` | Git username
`password` - `String` | Git password
`sshPrivateKey` - `String` | Private SSH key for authenticating into private chaos hub
`sshPublicKey` - `String` | Public SSH key for authenticating into private chaos hub

##### Example

    {
      "id": "abc123",
      "name": "xyz789",
      "description": "xyz789",
      "tags": ["xyz789"],
      "repoURL": "abc123",
      "repoBranch": "abc123",
      "isPrivate": true,
      "authType": "BASIC",
      "token": "abc123",
      "userName": "xyz789",
      "password": "xyz789",
      "sshPrivateKey": "xyz789",
      "sshPublicKey": "xyz789"
    }

Types

## UpdateEnvironmentRequest

##### Fields

Input Field | Description
--- | ---
`environmentID` - `String!` |
`name` - `String` |
`description` - `String` |
`tags` - `[String]` |
`type` - `EnvironmentType` |

##### Example

    {
      "environmentID": "xyz789",
      "name": "abc123",
      "description": "xyz789",
      "tags": ["xyz789"],
      "type": "PROD"
    }

Types

## UpdateStatus

##### Description

UpdateStatus represents if infra needs to be updated

##### Values

Enum Value | Description
--- | ---
`AVAILABLE` |
`MANDATORY` |
`NOT_REQUIRED` |

##### Example

    "AVAILABLE"

Types

## UserDetails

##### Fields

Field Name | Description
--- | ---
`userID` - `String!` |
`username` - `String!` |
`email` - `String!` |

##### Example

    {
      "userID": "abc123",
      "username": "xyz789",
      "email": "abc123"
    }

Types

## Weightages

##### Description

Defines the details of the weightages of each chaos fault in the experiment

##### Fields

Field Name | Description
--- | ---
`faultName` - `String!` | Name of the fault
`weightage` - `Int!` | Weightage of the experiment

##### Example

    {"faultName": "xyz789", "weightage": 123}

Types

## WeightagesInput

##### Description

Defines the details of the weightages of each chaos fault in the experiment

##### Fields

Input Field | Description
--- | ---
`faultName` - `String!` | Name of the fault
`weightage` - `Int!` | Weightage of the fault

##### Example

    {"faultName": "xyz789", "weightage": 123}

Types

## Workload

##### Fields

Input Field | Description
--- | ---
`name` - `String!` |
`kind` - `String!` |
`namespace` - `String!` |

##### Example

    {
      "name": "xyz789",
      "kind": "abc123",
      "namespace": "abc123"
    }

Documentation by Anvil SpectaQL