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
- message:
- 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!
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
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!
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!
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
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
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!
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
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!
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
Response
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
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!]!
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
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
Response
Returns a ConfirmInfraRegistrationResponse!
Arguments
Name | Description |
---|---|
request - InfraIdentity!
|
Example
Query
mutation ConfirmInfraRegistration($request: InfraIdentity!) {
confirmInfraRegistration(request: $request) {
isInfraConfirmed
newAccessKey
infraID
}
}
Variables
{"request": InfraIdentity}
Response
{
"data": {
"confirmInfraRegistration": {
"isInfraConfirmed": 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!
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
deleteEnvironment
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
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
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
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
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!
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
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!
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!
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
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!
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
Example
{
"requestID": "abc123",
"requestType": "xyz789",
"k8sManifest": "abc123",
"namespace": "xyz789",
"externalData": "xyz789",
"username": "abc123"
}
Annotation
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
|
Possible Types
Audit Types |
---|
Example
{
"updatedAt": "xyz789",
"createdAt": "xyz789",
"updatedBy": UserDetails,
"createdBy": UserDetails
}
AuthType
Values
Enum Value | Description |
---|---|
|
|
|
|
|
|
|
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
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 |
---|
Example
{
"probeTimeout": "abc123",
"interval": "xyz789",
"retry": 123,
"attempt": 123,
"probePollingInterval": "abc123",
"initialDelay": "xyz789",
"evaluationTimeout": "abc123",
"stopOnFailure": true
}
Comparator
ComparatorInput
ConfirmInfraRegistrationResponse
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
Example
{
"name": "abc123",
"tags": ["abc123"],
"description": "abc123",
"repoURL": "xyz789",
"remoteHub": "xyz789"
}
DateRange
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 |
---|---|
|
|
|
Example
"NAME"
EnvironmentType
Values
Enum Value | Description |
---|---|
|
|
|
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
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 |
---|---|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
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 |
---|---|
|
|
|
Example
"NAME"
ExperimentType
Values
Enum Value | Description |
---|---|
|
|
|
|
|
|
|
|
|
Example
"All"
Experiments
FaultDetails
Description
Fault Detail consists of all the fault related details
Example
{
"fault": "abc123",
"engine": "abc123",
"csv": "abc123"
}
FaultList
Float
Description
The Float
scalar type represents signed double-precision fractional values as specified by IEEE 754.
Example
123.45
GET
GETRequest
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
GetProbesInExperimentRunResponse
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 |
---|---|
|
|
|
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 |
---|---|
|
|
|
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
InfraFilterInput
Description
Defines filter options for infras
Example
{
"name": "abc123",
"infraID": "abc123",
"description": "xyz789",
"platformName": "abc123",
"infraScope": "namespace",
"isActive": false,
"tags": ["xyz789"]
}
InfraIdentity
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 |
---|---|
|
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
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
}
Link
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
Maintainer
Metadata
Fields
Field Name | Description |
---|---|
name - String!
|
|
version - String!
|
|
annotations - Annotation!
|
Example
{
"name": "xyz789",
"version": "xyz789",
"annotations": Annotation
}
Method
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 |
---|---|
|
|
|
|
|
|
|
|
|
Example
"SOT"
ObjectData
POST
Description
Details of POST request
Example
{
"contentType": "abc123",
"body": "xyz789",
"bodyPath": "abc123",
"criteria": "xyz789",
"responseCode": "xyz789"
}
POSTRequest
Description
Details for input of the POST 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
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
Example
{
"experimentRunID": "4",
"podName": "xyz789",
"podType": "abc123",
"log": "xyz789"
}
PredefinedExperimentList
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 |
---|---|
|
|
|
|
|
|
|
Example
"httpProbe"
ProbeVerdict
Description
Defines the older different statuses of Probes
Values
Enum Value | Description |
---|---|
|
|
|
|
|
|
|
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
Example
{
"token": "xyz789",
"infraID": "abc123",
"name": "xyz789",
"manifest": "abc123"
}
ResilienceScoreCategory
ResourceDetails
Possible Types
ResourceDetails Types |
---|
Example
{
"name": "abc123",
"description": "abc123",
"tags": ["xyz789"]
}
RunChaosExperimentResponse
Fields
Field Name | Description |
---|---|
notifyID - ID!
|
Example
{"notifyID": 4}
SSHKey
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 |
---|---|
|
|
|
|
|
Example
"CRON"
ServerVersionResponse
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
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 |
---|---|
|
|
|
|
|
Example
"AVAILABLE"