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

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
    remoteHub
    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": "abc123",
      "repoBranch": "abc123",
      "remoteHub": "abc123",
      "isAvailable": false,
      "totalFaults": "xyz789",
      "totalExperiments": "abc123",
      "name": "abc123",
      "hubType": "GIT",
      "isPrivate": true,
      "authType": "BASIC",
      "token": "xyz789",
      "userName": "abc123",
      "password": "xyz789",
      "isRemoved": false,
      "sshPrivateKey": "abc123",
      "sshPublicKey": "abc123",
      "lastSyncedAt": "xyz789",
      "tags": ["abc123"],
      "createdBy": UserDetails,
      "updatedBy": UserDetails,
      "createdAt": "xyz789",
      "updatedAt": "abc123",
      "description": "abc123",
      "isDefault": true
    }
  }
}

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

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": "xyz789",
      "description": "abc123",
      "tags": ["abc123"],
      "type": "PROD",
      "createdAt": "abc123",
      "createdBy": UserDetails,
      "updatedBy": UserDetails,
      "updatedAt": "abc123",
      "isRemoved": false,
      "infraIDs": ["xyz789"]
    }
  }
}

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": 987.65
    }
  }
}

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": "abc123",
      "createdAt": "abc123",
      "infra": Infra,
      "experimentName": "xyz789",
      "experimentManifest": "xyz789",
      "phase": "All",
      "resiliencyScore": 123.45,
      "faultsPassed": 987,
      "faultsFailed": 123,
      "faultsAwaited": 987,
      "faultsStopped": 987,
      "faultsNa": 123,
      "totalFaults": 987,
      "executionData": "xyz789",
      "isRemoved": false,
      "updatedBy": UserDetails,
      "createdBy": UserDetails,
      "notifyID": 4,
      "runSequence": 987
    }
  }
}

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": 123,
      "totalCompletedExperimentRuns": 987,
      "totalTerminatedExperimentRuns": 123,
      "totalRunningExperimentRuns": 123,
      "totalStoppedExperimentRuns": 987,
      "totalErroredExperimentRuns": 987
    }
  }
}

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

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": "abc123",
      "authType": "BASIC",
      "token": "xyz789",
      "userName": "xyz789",
      "password": "abc123",
      "sshPrivateKey": "abc123"
    }
  }
}

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": true,
      "imageRegistryInfo": ImageRegistry,
      "imageRegistryID": "xyz789",
      "projectID": "xyz789",
      "updatedAt": "xyz789",
      "createdAt": "abc123",
      "createdBy": UserDetails,
      "updatedBy": UserDetails,
      "isRemoved": false
    }
  }
}

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

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": ["abc123"],
      "environmentID": "xyz789",
      "platformName": "abc123",
      "isActive": false,
      "isInfraConfirmed": true,
      "isRemoved": false,
      "updatedAt": "xyz789",
      "createdAt": "abc123",
      "noOfExperiments": 123,
      "noOfExperimentRuns": 987,
      "token": "abc123",
      "infraNamespace": "abc123",
      "serviceAccount": "abc123",
      "infraScope": "abc123",
      "infraNsExists": true,
      "infraSaExists": true,
      "lastExperimentTimestamp": "abc123",
      "startTime": "xyz789",
      "version": "xyz789",
      "createdBy": UserDetails,
      "updatedBy": UserDetails,
      "infraType": "Kubernetes",
      "updateStatus": "AVAILABLE"
    }
  }
}

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": false,
  "projectID": 4
}
Response
{"data": {"getInfraManifest": "abc123"}}

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

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": "abc123",
        "experimentCSV": "xyz789",
        "experimentManifest": "xyz789"
      }
    ]
  }
}

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": "xyz789",
      "description": "xyz789",
      "tags": ["abc123"],
      "type": "httpProbe",
      "infrastructureType": "Kubernetes",
      "kubernetesHTTPProperties": KubernetesHTTPProbe,
      "kubernetesCMDProperties": KubernetesCMDProbe,
      "k8sProperties": K8SProbe,
      "promProperties": PROMProbe,
      "recentExecutions": [ProbeRecentExecutions],
      "referencedBy": 987,
      "updatedAt": "xyz789",
      "createdAt": "abc123",
      "updatedBy": UserDetails,
      "createdBy": UserDetails
    }
  }
}

getProbeReference

Description

Returns all the reference of the Probe based on ProbeName

Response

Returns a GetProbeReferenceResponse!

Arguments
Name Description
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": "abc123",
      "totalRuns": 123,
      "recentExecutions": [RecentExecutions]
    }
  }
}

getProbeYAML

Description

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

Response

Returns a String!

Arguments
Name Description
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"}}

getProbesInExperimentRun

Description

Returns all the Probes attached to the requested Experiment Run

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

getServerVersion

Description

Returns version of gql server

Response

Returns a ServerVersionResponse!

Example

Query
query GetServerVersion {
  getServerVersion {
    key
    value
  }
}
Response
{
  "data": {
    "getServerVersion": {
      "key": "abc123",
      "value": "abc123"
    }
  }
}

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": "xyz789",
      "compatibleVersions": ["abc123"]
    }
  }
}

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

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
    remoteHub
    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": "xyz789",
        "repoBranch": "xyz789",
        "remoteHub": "xyz789",
        "isAvailable": true,
        "totalFaults": "xyz789",
        "totalExperiments": "abc123",
        "name": "abc123",
        "hubType": "GIT",
        "isPrivate": false,
        "authType": "BASIC",
        "token": "abc123",
        "userName": "xyz789",
        "password": "abc123",
        "isRemoved": false,
        "sshPrivateKey": "abc123",
        "sshPublicKey": "xyz789",
        "lastSyncedAt": "xyz789",
        "tags": ["abc123"],
        "createdBy": UserDetails,
        "updatedBy": UserDetails,
        "createdAt": "abc123",
        "updatedAt": "xyz789",
        "description": "xyz789",
        "isDefault": false
      }
    ]
  }
}

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": 987,
      "environments": [Environment]
    }
  }
}

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": 123,
      "experiments": [Experiment]
    }
  }
}

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": 123,
      "experimentRuns": [ExperimentRun]
    }
  }
}

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": "abc123",
        "projectID": "xyz789",
        "updatedAt": "abc123",
        "createdAt": "xyz789",
        "createdBy": UserDetails,
        "updatedBy": UserDetails,
        "isRemoved": true
      }
    ]
  }
}

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

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": "xyz789",
        "experimentCSV": "xyz789",
        "experimentManifest": "abc123"
      }
    ]
  }
}

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": ["xyz789"],
        "type": "httpProbe",
        "infrastructureType": "Kubernetes",
        "kubernetesHTTPProperties": KubernetesHTTPProbe,
        "kubernetesCMDProperties": KubernetesCMDProbe,
        "k8sProperties": K8SProbe,
        "promProperties": PROMProbe,
        "recentExecutions": [ProbeRecentExecutions],
        "referencedBy": 987,
        "updatedAt": "abc123",
        "createdAt": "abc123",
        "updatedBy": UserDetails,
        "createdBy": UserDetails
      }
    ]
  }
}

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": false}}

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
    remoteHub
    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",
      "remoteHub": "abc123",
      "projectID": "4",
      "isDefault": true,
      "name": "abc123",
      "tags": ["xyz789"],
      "createdBy": UserDetails,
      "updatedBy": UserDetails,
      "description": "abc123",
      "hubType": "GIT",
      "isPrivate": true,
      "authType": "BASIC",
      "token": "xyz789",
      "userName": "abc123",
      "password": "abc123",
      "sshPrivateKey": "abc123",
      "isRemoved": false,
      "createdAt": "xyz789",
      "updatedAt": "abc123",
      "lastSyncedAt": "abc123"
    }
  }
}

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

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
    remoteHub
    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": "xyz789",
      "repoBranch": "xyz789",
      "remoteHub": "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": "xyz789",
      "isRemoved": false,
      "createdAt": "abc123",
      "updatedAt": "abc123",
      "lastSyncedAt": "xyz789"
    }
  }
}

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

confirmInfraRegistration

Description

Confirms the subscriber's registration with the control plane

Arguments
Name Description
request - InfraIdentity!

Example

Query
mutation ConfirmInfraRegistration($request: InfraIdentity!) {
  confirmInfraRegistration(request: $request) {
    isInfraConfirmed
    newAccessKey
    infraID
  }
}
Variables
{"request": InfraIdentity}
Response
{
  "data": {
    "confirmInfraRegistration": {
      "isInfraConfirmed": false,
      "newAccessKey": "xyz789",
      "infraID": "xyz789"
    }
  }
}

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": "abc123",
      "experimentName": "xyz789",
      "experimentDescription": "abc123",
      "isCustomExperiment": false,
      "tags": ["xyz789"]
    }
  }
}

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": "abc123",
      "environmentID": "abc123",
      "name": "abc123",
      "description": "xyz789",
      "tags": ["xyz789"],
      "type": "PROD",
      "createdAt": "xyz789",
      "createdBy": UserDetails,
      "updatedBy": UserDetails,
      "updatedAt": "abc123",
      "isRemoved": true,
      "infraIDs": ["xyz789"]
    }
  }
}

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": "xyz789",
  "imageRegistryInfo": ImageRegistryInput
}
Response
{
  "data": {
    "createImageRegistry": {
      "isDefault": true,
      "imageRegistryInfo": ImageRegistry,
      "imageRegistryID": "abc123",
      "projectID": "abc123",
      "updatedAt": "xyz789",
      "createdAt": "abc123",
      "createdBy": UserDetails,
      "updatedBy": UserDetails,
      "isRemoved": false
    }
  }
}

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

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

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

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": "abc123"
}
Response
{"data": {"deleteImageRegistry": "abc123"}}

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

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

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

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

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": "abc123",
      "privateKey": "xyz789"
    }
  }
}

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": "abc123",
  "accessKey": "xyz789"
}
Response
{
  "data": {
    "getManifestWithInfraID": "abc123"
  }
}

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

kubeNamespace

Description

Receives kubernetes namespace data from subscriber

Response

Returns a String!

Arguments
Name Description
request - KubeNamespaceData!

Example

Query
mutation KubeNamespace($request: KubeNamespaceData!) {
  kubeNamespace(request: $request)
}
Variables
{"request": KubeNamespaceData}
Response
{"data": {"kubeNamespace": "xyz789"}}

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

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

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": "abc123",
      "name": "xyz789",
      "manifest": "abc123"
    }
  }
}

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": "xyz789", "projectID": 4}
Response
{"data": {"runChaosExperiment": {"notifyID": 4}}}

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

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
    remoteHub
    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",
      "remoteHub": "abc123",
      "projectID": 4,
      "isDefault": true,
      "name": "abc123",
      "tags": ["abc123"],
      "createdBy": UserDetails,
      "updatedBy": UserDetails,
      "description": "abc123",
      "hubType": "GIT",
      "isPrivate": true,
      "authType": "BASIC",
      "token": "xyz789",
      "userName": "abc123",
      "password": "xyz789",
      "sshPrivateKey": "abc123",
      "isRemoved": false,
      "createdAt": "xyz789",
      "updatedAt": "abc123",
      "lastSyncedAt": "abc123"
    }
  }
}

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

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

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": "xyz789",
      "projectID": "4",
      "cronSyntax": "abc123",
      "experimentName": "xyz789",
      "experimentDescription": "xyz789",
      "isCustomExperiment": false,
      "tags": ["abc123"]
    }
  }
}

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
    remoteHub
    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": "abc123",
      "remoteHub": "abc123",
      "projectID": "4",
      "isDefault": true,
      "name": "xyz789",
      "tags": ["xyz789"],
      "createdBy": UserDetails,
      "updatedBy": UserDetails,
      "description": "xyz789",
      "hubType": "GIT",
      "isPrivate": true,
      "authType": "BASIC",
      "token": "abc123",
      "userName": "abc123",
      "password": "xyz789",
      "sshPrivateKey": "abc123",
      "isRemoved": true,
      "createdAt": "abc123",
      "updatedAt": "abc123",
      "lastSyncedAt": "xyz789"
    }
  }
}

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": "xyz789",
  "disable": true,
  "projectID": "4"
}
Response
{"data": {"updateCronExperimentState": false}}

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

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

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": "abc123",
  "projectID": "xyz789",
  "imageRegistryInfo": ImageRegistryInput
}
Response
{
  "data": {
    "updateImageRegistry": {
      "isDefault": false,
      "imageRegistryInfo": ImageRegistry,
      "imageRegistryID": "xyz789",
      "projectID": "xyz789",
      "updatedAt": "xyz789",
      "createdAt": "xyz789",
      "createdBy": UserDetails,
      "updatedBy": UserDetails,
      "isRemoved": true
    }
  }
}

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": "abc123"}}

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": "abc123",
      "description": "xyz789",
      "infra": Infra
    }
  }
}

getKubeNamespace

Description

Returns a kubernetes namespaces given an input

Response

Returns a KubeNamespaceResponse!

Arguments
Name Description
request - KubeNamespaceRequest!

Example

Query
subscription GetKubeNamespace($request: KubeNamespaceRequest!) {
  getKubeNamespace(request: $request) {
    infraID
    kubeNamespace {
      name
    }
  }
}
Variables
{"request": KubeNamespaceRequest}
Response
{
  "data": {
    "getKubeNamespace": {
      "infraID": 4,
      "kubeNamespace": [KubeNamespace]
    }
  }
}

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

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": "abc123",
      "podType": "xyz789",
      "log": "xyz789"
    }
  }
}

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": "xyz789",
      "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": "abc123",
  "namespace": "xyz789",
  "externalData": "xyz789",
  "username": "abc123"
}

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

Audit

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

AuthType

Values
Enum Value Description

BASIC

NONE

SSH

TOKEN

Example
"BASIC"

Boolean

Description

The Boolean scalar type represents true or false.

Example
true

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": "abc123",
  "runExperiment": false,
  "experimentManifest": "xyz789",
  "experimentType": "All",
  "cronSyntax": "xyz789",
  "experimentName": "xyz789",
  "experimentDescription": "xyz789",
  "weightages": [WeightagesInput],
  "isCustomExperiment": true,
  "infraID": 4,
  "tags": ["abc123"]
}

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": "abc123",
  "experimentName": "abc123",
  "experimentDescription": "abc123",
  "isCustomExperiment": true,
  "tags": ["abc123"]
}

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
remoteHub - String! Connected Hub of remote 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": "xyz789",
  "repoBranch": "abc123",
  "remoteHub": "xyz789",
  "projectID": 4,
  "isDefault": true,
  "name": "xyz789",
  "tags": ["xyz789"],
  "createdBy": UserDetails,
  "updatedBy": UserDetails,
  "description": "abc123",
  "hubType": "GIT",
  "isPrivate": false,
  "authType": "BASIC",
  "token": "xyz789",
  "userName": "xyz789",
  "password": "abc123",
  "sshPrivateKey": "abc123",
  "isRemoved": true,
  "createdAt": "abc123",
  "updatedAt": "abc123",
  "lastSyncedAt": "abc123"
}

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

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
remoteHub - String! Connected Hub of remote 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": "abc123",
  "repoBranch": "abc123",
  "remoteHub": "abc123",
  "isAvailable": true,
  "totalFaults": "abc123",
  "totalExperiments": "abc123",
  "name": "xyz789",
  "hubType": "GIT",
  "isPrivate": false,
  "authType": "BASIC",
  "token": "xyz789",
  "userName": "xyz789",
  "password": "abc123",
  "isRemoved": false,
  "sshPrivateKey": "abc123",
  "sshPublicKey": "xyz789",
  "lastSyncedAt": "abc123",
  "tags": ["xyz789"],
  "createdBy": UserDetails,
  "updatedBy": UserDetails,
  "createdAt": "abc123",
  "updatedAt": "xyz789",
  "description": "xyz789",
  "isDefault": false
}

Chart

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

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": "xyz789",
  "retry": 123,
  "attempt": 123,
  "probePollingInterval": "abc123",
  "initialDelay": "xyz789",
  "evaluationTimeout": "abc123",
  "stopOnFailure": true
}

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

ComparatorInput

Description

Defines the input properties of the comparator

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

ConfirmInfraRegistrationResponse

Fields
Field Name Description
isInfraConfirmed - Boolean!
newAccessKey - String
infraID - String
Example
{
  "isInfraConfirmed": true,
  "newAccessKey": "abc123",
  "infraID": "abc123"
}

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
remoteHub - String! Connected Hub of remote 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": "abc123",
  "tags": ["xyz789"],
  "description": "abc123",
  "repoURL": "xyz789",
  "repoBranch": "abc123",
  "remoteHub": "xyz789",
  "isPrivate": true,
  "authType": "BASIC",
  "token": "xyz789",
  "userName": "abc123",
  "password": "xyz789",
  "sshPrivateKey": "xyz789",
  "sshPublicKey": "abc123"
}

CreateEnvironmentRequest

Fields
Input Field Description
environmentID - String!
name - String!
type - EnvironmentType!
description - String
tags - [String!]
Example
{
  "environmentID": "xyz789",
  "name": "abc123",
  "type": "PROD",
  "description": "xyz789",
  "tags": ["xyz789"]
}

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
remoteHub - String! Connected Hub of remote repository
Example
{
  "name": "abc123",
  "tags": ["abc123"],
  "description": "abc123",
  "repoURL": "xyz789",
  "remoteHub": "xyz789"
}

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": "xyz789",
  "endDate": "abc123"
}

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": "abc123",
  "environmentID": "abc123",
  "name": "abc123",
  "description": "xyz789",
  "tags": ["abc123"],
  "type": "PROD",
  "createdAt": "xyz789",
  "createdBy": UserDetails,
  "updatedBy": UserDetails,
  "updatedAt": "abc123",
  "isRemoved": true,
  "infraIDs": ["xyz789"]
}

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": "xyz789",
  "description": "xyz789",
  "type": "PROD",
  "tags": ["xyz789"]
}

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}

EnvironmentSortingField

Values
Enum Value Description

NAME

TIME

Example
"NAME"

EnvironmentType

Values
Enum Value Description

PROD

NON_PROD

Example
"PROD"

ExecutedByExperiment

Description

Defines the Executed by which experiment details for Probes

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

ExecutionHistory

Description

Defines the Execution History of experiment referenced by the Probe

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

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": "xyz789",
  "experimentManifest": "xyz789",
  "cronSyntax": "abc123",
  "name": "xyz789",
  "description": "xyz789",
  "weightages": [Weightages],
  "isCustomExperiment": false,
  "updatedAt": "abc123",
  "createdAt": "xyz789",
  "infra": Infra,
  "isRemoved": false,
  "tags": ["abc123"],
  "createdBy": UserDetails,
  "recentExperimentRunDetails": [RecentExperimentRun],
  "updatedBy": UserDetails
}

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": false,
  "scheduleType": "CRON",
  "status": "abc123",
  "dateRange": DateRange,
  "infraTypes": ["Kubernetes"]
}

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": "abc123",
  "experimentName": "abc123",
  "hubID": "xyz789"
}

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": "abc123",
  "experimentManifest": "xyz789",
  "phase": "All",
  "resiliencyScore": 123.45,
  "faultsPassed": 123,
  "faultsFailed": 123,
  "faultsAwaited": 987,
  "faultsStopped": 123,
  "faultsNa": 123,
  "totalFaults": 987,
  "executionData": "abc123",
  "isRemoved": false,
  "updatedBy": UserDetails,
  "createdBy": UserDetails,
  "notifyID": "4",
  "runSequence": 123
}

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": "xyz789",
  "experimentRunStatus": ["xyz789"],
  "infraTypes": ["Kubernetes"]
}

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": "abc123",
  "notifyID": "abc123",
  "experimentRunID": "xyz789",
  "experimentName": "xyz789",
  "executionData": "abc123",
  "infraID": InfraIdentity,
  "revisionID": "abc123",
  "completed": false,
  "isRemoved": false,
  "updatedBy": "xyz789"
}

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}

ExperimentRunStatus

Values
Enum Value Description

All

Running

Completed

Completed_With_Error

Stopped

Skipped

Error

Timeout

Terminated

Queued

NA

Example
"All"

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": true}

ExperimentSortingField

Values
Enum Value Description

NAME

TIME

Example
"NAME"

ExperimentType

Values
Enum Value Description

All

Experiment

CronExperiment

ChaosEngine

ChaosSchedule

Example
"All"

Experiments

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

FaultDetails

Description

Fault Detail consists of all the fault related details

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

FaultList

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

Float

Description

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

Example
123.45

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": "abc123"
}

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": "abc123",
  "responseCode": "xyz789"
}

GetChaosHubStatsResponse

Fields
Field Name Description
totalChaosHubs - Int! Total number of chaoshubs
Example
{"totalChaosHubs": 123}

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
}

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": 987,
  "totalStoppedExperimentRuns": 123,
  "totalErroredExperimentRuns": 123
}

GetExperimentStatsResponse

Fields
Field Name Description
totalExperiments - Int! Total number of experiments
totalExpCategorizedByResiliencyScore - [ResilienceScoreCategory]! Total number of cron experiments
Example
{
  "totalExperiments": 123,
  "totalExpCategorizedByResiliencyScore": [
    ResilienceScoreCategory
  ]
}

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

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": "xyz789",
  "totalRuns": 987,
  "recentExecutions": [RecentExecutions]
}

GetProbeYAMLRequest

Description

Defines the input requests for GetProbeYAML query

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

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
}

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": "abc123",
  "userName": "xyz789",
  "password": "xyz789",
  "sshPrivateKey": "abc123"
}

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": false,
  "projectID": "xyz789",
  "branch": "xyz789",
  "repoURL": "xyz789",
  "authType": "BASIC",
  "token": "abc123",
  "userName": "xyz789",
  "password": "abc123",
  "sshPrivateKey": "xyz789"
}

HubType

Values
Enum Value Description

GIT

REMOTE

Example
"GIT"

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"

INFRA_SCOPE

Values
Enum Value Description

namespace

cluster

Example
"namespace"

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": false,
  "imageRegistryName": "abc123",
  "imageRepoName": "abc123",
  "imageRegistryType": "xyz789",
  "secretName": "xyz789",
  "secretNamespace": "xyz789",
  "enableRegistry": true
}

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": false,
  "imageRegistryName": "abc123",
  "imageRepoName": "abc123",
  "imageRegistryType": "xyz789",
  "secretName": "xyz789",
  "secretNamespace": "abc123",
  "enableRegistry": false
}

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": "xyz789",
  "projectID": "xyz789",
  "updatedAt": "xyz789",
  "createdAt": "abc123",
  "createdBy": UserDetails,
  "updatedBy": UserDetails,
  "isRemoved": false
}

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": "abc123",
  "tags": ["abc123"],
  "environmentID": "abc123",
  "platformName": "xyz789",
  "isActive": false,
  "isInfraConfirmed": true,
  "isRemoved": false,
  "updatedAt": "xyz789",
  "createdAt": "abc123",
  "noOfExperiments": 987,
  "noOfExperimentRuns": 987,
  "token": "xyz789",
  "infraNamespace": "abc123",
  "serviceAccount": "xyz789",
  "infraScope": "abc123",
  "infraNsExists": true,
  "infraSaExists": true,
  "lastExperimentTimestamp": "xyz789",
  "startTime": "xyz789",
  "version": "abc123",
  "createdBy": UserDetails,
  "updatedBy": UserDetails,
  "infraType": "Kubernetes",
  "updateStatus": "AVAILABLE"
}

InfraActionResponse

Fields
Field Name Description
projectID - String!
action - ActionPayload!
Example
{
  "projectID": "abc123",
  "action": ActionPayload
}

InfraEventResponse

Fields
Field Name Description
eventID - ID!
eventType - String!
eventName - String!
description - String!
infra - Infra!
Example
{
  "eventID": "4",
  "eventType": "abc123",
  "eventName": "xyz789",
  "description": "xyz789",
  "infra": Infra
}

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": "abc123",
  "infraID": "abc123",
  "description": "xyz789",
  "platformName": "abc123",
  "infraScope": "namespace",
  "isActive": false,
  "tags": ["xyz789"]
}

InfraIdentity

Fields
Input Field Description
infraID - String!
accessKey - String!
version - String!
Example
{
  "infraID": "xyz789",
  "accessKey": "abc123",
  "version": "abc123"
}

InfraVersionDetails

Description

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

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

InfrastructureType

Values
Enum Value Description

Kubernetes

Example
"Kubernetes"

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

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

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

KubeGVRRequest

Fields
Input Field Description
group - String!
version - String!
resource - String!
Example
{
  "group": "xyz789",
  "version": "abc123",
  "resource": "xyz789"
}

KubeNamespace

Description

Define name in the infra (not really useful at the moment but maybe we will need other field later)

Fields
Field Name Description
name - String! Name of the namespace
Example
{"name": "xyz789"}

KubeNamespaceData

Description

Defines the details of Kubernetes namespace

Fields
Input Field Description
requestID - ID! Unique request ID for fetching Kubernetes namespace details
infraID - InfraIdentity! ID of the infra in which the Kubernetes namespace is present
kubeNamespace - String! List of KubeNamespace return by subscriber
Example
{
  "requestID": "4",
  "infraID": InfraIdentity,
  "kubeNamespace": "abc123"
}

KubeNamespaceRequest

Description

Defines details for fetching Kubernetes namespace data

Fields
Input Field Description
infraID - ID! ID of the infra
Example
{"infraID": "4"}

KubeNamespaceResponse

Description

Response received for querying Kubernetes Namespaces

Fields
Field Name Description
infraID - ID! ID of the infra in which the Kubernetes namespace is present
kubeNamespace - [KubeNamespace]! List of the Kubernetes namespace
Example
{
  "infraID": "4",
  "kubeNamespace": [KubeNamespace]
}

KubeObject

Description

KubeObject consists of the available resources in a namespace

Fields
Field Name Description
namespace - String! Namespace of the resource
data - [ObjectData]! Details of the resource
Example
{
  "namespace": "abc123",
  "data": [ObjectData]
}

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": "abc123"
}

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
namespace - String! Namespace in which the Kubernetes object is present
objectType - String!
workloads - [Workload]
Example
{
  "infraID": "4",
  "kubeObjRequest": KubeGVRRequest,
  "namespace": "abc123",
  "objectType": "abc123",
  "workloads": [Workload]
}

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}

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": "abc123",
  "initialDelay": "xyz789",
  "evaluationTimeout": "abc123",
  "stopOnFailure": false,
  "command": "xyz789",
  "comparator": Comparator,
  "source": "xyz789"
}

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

KubernetesHTTPProbe

Description

Defines the Kubernetes HTTP probe properties

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

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

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}

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
}

ListEnvironmentResponse

Fields
Field Name Description
totalNoOfEnvironments - Int! Total number of environment
environments - [Environment]
Example
{
  "totalNoOfEnvironments": 987,
  "environments": [Environment]
}

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
}

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

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
}

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

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
}

ListInfraResponse

Description

Defines the details for a infras with total infras count

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

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

Metadata

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

Method

Description

Defines the methods of the probe properties

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

MethodRequest

Description

Defines the input for methods of the probe properties

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

Mode

Description

Defines the different modes of Probes

Values
Enum Value Description

SOT

EOT

Edge

Continuous

OnChaos

Example
"SOT"

ObjectData

Fields
Field Name Description
labels - [String!] Labels present in the resource
name - String! Name of the resource
Example
{
  "labels": ["abc123"],
  "name": "xyz789"
}

POST

Description

Details of POST request

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

POSTRequest

Description

Details for input of the POST request

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

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

PROMProbeRequest

Description

Defines the input for PROM probe properties

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

PackageInformation

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

Pagination

Description

Defines data required to fetch paginated data

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

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": "abc123",
  "podType": "xyz789",
  "log": "xyz789"
}

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": "xyz789",
  "podNamespace": "xyz789",
  "podType": "abc123",
  "expPod": "xyz789",
  "runnerPod": "abc123",
  "chaosNamespace": "abc123"
}

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": "xyz789",
  "podType": "abc123",
  "log": "xyz789"
}

PredefinedExperimentList

Fields
Field Name Description
experimentName - String! Name of the experiment
experimentCSV - String! Experiment CSV
experimentManifest - String! Experiment Manifest
Example
{
  "experimentName": "abc123",
  "experimentCSV": "abc123",
  "experimentManifest": "abc123"
}

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": "abc123",
  "description": "abc123",
  "tags": ["abc123"],
  "type": "httpProbe",
  "infrastructureType": "Kubernetes",
  "kubernetesHTTPProperties": KubernetesHTTPProbe,
  "kubernetesCMDProperties": KubernetesCMDProbe,
  "k8sProperties": K8SProbe,
  "promProperties": PROMProbe,
  "recentExecutions": [ProbeRecentExecutions],
  "referencedBy": 987,
  "updatedAt": "xyz789",
  "createdAt": "abc123",
  "updatedBy": UserDetails,
  "createdBy": UserDetails
}

ProbeFilterInput

Description

Defines the input for Probe filter

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

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
}

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": "abc123",
  "tags": ["xyz789"],
  "type": "httpProbe",
  "infrastructureType": "Kubernetes",
  "kubernetesHTTPProperties": KubernetesHTTPProbeRequest,
  "kubernetesCMDProperties": KubernetesCMDProbeRequest,
  "k8sProperties": K8SProbeRequest,
  "promProperties": PROMProbeRequest
}

ProbeType

Description

Defines the different types of Probes

Values
Enum Value Description

httpProbe

cmdProbe

promProbe

k8sProbe

Example
"httpProbe"

ProbeVerdict

Description

Defines the older different statuses of Probes

Values
Enum Value Description

Passed

Failed

NA

Awaited

Example
"Passed"

Provider

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

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

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": "abc123",
  "createdAt": "xyz789",
  "createdBy": UserDetails,
  "updatedBy": UserDetails,
  "runSequence": 987
}

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": "abc123",
  "environmentID": "xyz789",
  "infrastructureType": "Kubernetes",
  "description": "abc123",
  "platformName": "xyz789",
  "infraNamespace": "xyz789",
  "serviceAccount": "xyz789",
  "infraScope": "abc123",
  "infraNsExists": true,
  "infraSaExists": true,
  "skipSsl": false,
  "nodeSelector": "xyz789",
  "tolerations": [Toleration],
  "tags": ["abc123"]
}

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": "abc123"
}

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": 123}

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

RunChaosExperimentResponse

Fields
Field Name Description
notifyID - ID!
Example
{"notifyID": 4}

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": "xyz789",
  "privateKey": "xyz789"
}

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": "xyz789",
  "infraID": 4,
  "tags": ["abc123"]
}

ScheduleType

Values
Enum Value Description

CRON

NON_CRON

ALL

Example
"CRON"

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

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": "abc123",
  "maintainers": [Maintainer],
  "minKubeVersion": "abc123",
  "provider": Provider,
  "links": [Link],
  "faults": [FaultList],
  "experiments": ["abc123"],
  "chaosExpCRDLink": "abc123",
  "platforms": ["xyz789"],
  "chaosType": "xyz789"
}

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": "abc123"
}

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

Toleration

Fields
Input Field Description
tolerationSeconds - Int
key - String
operator - String
effect - String
value - String
Example
{
  "tolerationSeconds": 123,
  "key": "xyz789",
  "operator": "abc123",
  "effect": "xyz789",
  "value": "xyz789"
}

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
remoteHub - String! Connected Hub of remote 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": "xyz789",
  "name": "abc123",
  "description": "xyz789",
  "tags": ["abc123"],
  "repoURL": "xyz789",
  "repoBranch": "abc123",
  "remoteHub": "xyz789",
  "isPrivate": false,
  "authType": "BASIC",
  "token": "abc123",
  "userName": "abc123",
  "password": "xyz789",
  "sshPrivateKey": "xyz789",
  "sshPublicKey": "abc123"
}

UpdateEnvironmentRequest

Fields
Input Field Description
environmentID - String!
name - String
description - String
tags - [String]
type - EnvironmentType
Example
{
  "environmentID": "xyz789",
  "name": "abc123",
  "description": "abc123",
  "tags": ["abc123"],
  "type": "PROD"
}

UpdateStatus

Description

UpdateStatus represents if infra needs to be updated

Values
Enum Value Description

AVAILABLE

MANDATORY

NOT_REQUIRED

Example
"AVAILABLE"

UserDetails

Fields
Field Name Description
userID - String!
username - String!
email - String!
Example
{
  "userID": "xyz789",
  "username": "xyz789",
  "email": "xyz789"
}

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": "abc123", "weightage": 123}

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": 987}

Workload

Fields
Input Field Description
name - String!
kind - String!
namespace - String!
Example
{
  "name": "abc123",
  "kind": "abc123",
  "namespace": "abc123"
}