# Get fault from project

Get fault from project

Endpoint: GET /gateway/chaos/manager/api/rest/faults/{identity}
Version: 1.0
Security: x-api-key

## Query parameters:

  - `accountIdentifier` (string, required)
    account id to access the resource

  - `correlationID` (string)
    correlation id is used to debug micro svc communication

  - `isEnterprise` (boolean)
    if this fault is enterprise fault or not

  - `organizationIdentifier` (string)
    organization id to access the resource

  - `projectIdentifier` (string)
    project id to access the resource

## Path parameters:

  - `identity` (string, required)
    identity of the fault

## Response 200 fields (application/json):

  - `apiVersion` (string)

  - `category` (array)

  - `correlationID` (string)

  - `description` (string)

  - `identity` (string, required)

  - `importType` (string)
    Enum: "LOCAL", "REFERENCE"

  - `infraType` (string)

  - `infras` (array)

  - `inputs` (array)

  - `inputs.allowedValues` (array)

  - `inputs.category` (string)
    Enum: "FaultTarget", "FaultTunable", "TargetInfra", "ExperimentTunable", "ActionProperties", "ProbeProperties", "RunProperties", "FaultAuthentication"

  - `inputs.default` (any)

  - `inputs.description` (string)

  - `inputs.name` (string, required)

  - `inputs.path` (string)

  - `inputs.required` (boolean)

  - `inputs.stringify` (boolean)

  - `inputs.tags` (array)

  - `inputs.tooltipId` (string)

  - `inputs.type` (string)
    Enum: "String", "Integer", "Boolean", "Number", "SecretFile", "SecretText"

  - `inputs.validator` (string)

  - `inputs.value` (any, required)

  - `isEnterprise` (boolean)

  - `kind` (string)

  - `links` (array)

  - `links.name` (string)

  - `links.url` (string)

  - `managedBy` (string)
    Enum: "EXPERIMENT"

  - `name` (string, required)

  - `permissionsRequired` (string)

  - `spec` (object)

  - `spec.chaos` (object)

  - `spec.chaos.auth` (object)

  - `spec.chaos.auth.aws` (object)

  - `spec.chaos.auth.aws.identifier` (string)

  - `spec.chaos.auth.azure` (object)

  - `spec.chaos.auth.azure.identifier` (string)

  - `spec.chaos.auth.gcp` (object)

  - `spec.chaos.auth.gcp.identifier` (string)

  - `spec.chaos.auth.redis` (object)

  - `spec.chaos.auth.redis.password` (string)

  - `spec.chaos.auth.ssh` (object)

  - `spec.chaos.auth.ssh.key` (string)

  - `spec.chaos.auth.ssh.password` (string)

  - `spec.chaos.auth.vmware` (object)

  - `spec.chaos.auth.vmware.govcPassword` (string)

  - `spec.chaos.auth.vmware.govcUrl` (string)

  - `spec.chaos.auth.vmware.govcUsername` (string)

  - `spec.chaos.auth.vmware.vCenterPassword` (string)

  - `spec.chaos.auth.vmware.vCenterServer` (string)

  - `spec.chaos.auth.vmware.vCenterUsername` (string)

  - `spec.chaos.auth.vmware.vmPassword` (string)

  - `spec.chaos.faultName` (string)

  - `spec.chaos.kubernetes` (object)

  - `spec.chaos.kubernetes.annotations` (object)

  - `spec.chaos.kubernetes.args` (array)

  - `spec.chaos.kubernetes.command` (array)

  - `spec.chaos.kubernetes.configMapVolume` (array)

  - `spec.chaos.kubernetes.configMapVolume.mountMode` (integer)

  - `spec.chaos.kubernetes.configMapVolume.mountPath` (string)

  - `spec.chaos.kubernetes.configMapVolume.name` (string)

  - `spec.chaos.kubernetes.containerSecurityContext` (object)

  - `spec.chaos.kubernetes.containerSecurityContext.allowPrivilegeEscalation` (boolean)
    AllowPrivilegeEscalation controls whether a process can gain more
privileges than its parent process. This bool directly controls if
the no_new_privs flag will be set on the container process.
AllowPrivilegeEscalation is true always when the container is:
1) run as Privileged
2) has CAP_SYS_ADMIN
+optional

  - `spec.chaos.kubernetes.containerSecurityContext.capabilities` (object)
    The capabilities to add/drop when running containers.
Defaults to the default set of capabilities granted by the container runtime.
+optional

  - `spec.chaos.kubernetes.containerSecurityContext.capabilities.add` (array)
    Added capabilities
+optional

  - `spec.chaos.kubernetes.containerSecurityContext.capabilities.drop` (array)
    Removed capabilities
+optional

  - `spec.chaos.kubernetes.containerSecurityContext.privileged` (boolean)
    Run container in privileged mode.
Processes in privileged containers are essentially equivalent to root on the host.
Defaults to false.
+optional

  - `spec.chaos.kubernetes.containerSecurityContext.procMount` (string)
    procMount denotes the type of proc mount to use for the containers.
The default is DefaultProcMount which uses the container runtime defaults for
readonly paths and masked paths.
This requires the ProcMountType feature flag to be enabled.
+optional
    Enum: "Default", "Unmasked"

  - `spec.chaos.kubernetes.containerSecurityContext.readOnlyRootFilesystem` (boolean)
    Whether this container has a read-only root filesystem.
Default is false.
+optional

  - `spec.chaos.kubernetes.containerSecurityContext.runAsGroup` (integer)
    The GID to run the entrypoint of the container process.
Uses runtime default if unset.
May also be set in PodSecurityContext.  If set in both SecurityContext and
PodSecurityContext, the value specified in SecurityContext takes precedence.
+optional

  - `spec.chaos.kubernetes.containerSecurityContext.runAsNonRoot` (boolean)
    Indicates that the container must run as a non-root user.
If true, the Kubelet will validate the image at runtime to ensure that it
does not run as UID 0 (root) and fail to start the container if it does.
If unset or false, no such validation will be performed.
May also be set in PodSecurityContext.  If set in both SecurityContext and
PodSecurityContext, the value specified in SecurityContext takes precedence.
+optional

  - `spec.chaos.kubernetes.containerSecurityContext.runAsUser` (integer)
    The UID to run the entrypoint of the container process.
Defaults to user specified in image metadata if unspecified.
May also be set in PodSecurityContext.  If set in both SecurityContext and
PodSecurityContext, the value specified in SecurityContext takes precedence.
+optional

  - `spec.chaos.kubernetes.containerSecurityContext.seLinuxOptions` (object)
    The SELinux context to be applied to the container.
If unspecified, the container runtime will allocate a random SELinux context for each
container.  May also be set in PodSecurityContext.  If set in both SecurityContext and
PodSecurityContext, the value specified in SecurityContext takes precedence.
+optional

  - `spec.chaos.kubernetes.containerSecurityContext.seLinuxOptions.level` (string)
    Level is SELinux level label that applies to the container.
+optional

  - `spec.chaos.kubernetes.containerSecurityContext.seLinuxOptions.role` (string)
    Role is a SELinux role label that applies to the container.
+optional

  - `spec.chaos.kubernetes.containerSecurityContext.seLinuxOptions.type` (string)
    Type is a SELinux type label that applies to the container.
+optional

  - `spec.chaos.kubernetes.containerSecurityContext.seLinuxOptions.user` (string)
    User is a SELinux user label that applies to the container.
+optional

  - `spec.chaos.kubernetes.containerSecurityContext.seccompProfile` (object)
    The seccomp options to use by this container. If seccomp options are
provided at both the pod & container level, the container options
override the pod options.
+optional

  - `spec.chaos.kubernetes.containerSecurityContext.seccompProfile.localhostProfile` (string)
    localhostProfile indicates a profile defined in a file on the node should be used.
The profile must be preconfigured on the node to work.
Must be a descending path, relative to the kubelet's configured seccomp profile location.
Must only be set if type is "Localhost".
+optional

  - `spec.chaos.kubernetes.containerSecurityContext.seccompProfile.type` (string)
    type indicates which kind of seccomp profile will be applied.
Valid options are:

Localhost - a profile defined in a file on the node should be used.
RuntimeDefault - the container runtime default profile should be used.
Unconfined - no profile should be applied.
+unionDiscriminator
    Enum: "Unconfined", "RuntimeDefault", "Localhost"

  - `spec.chaos.kubernetes.containerSecurityContext.windowsOptions` (object)
    The Windows specific settings applied to all containers.
If unspecified, the options from the PodSecurityContext will be used.
If set in both SecurityContext and PodSecurityContext, the value specified in SecurityContext takes precedence.
+optional

  - `spec.chaos.kubernetes.containerSecurityContext.windowsOptions.gmsaCredentialSpec` (string)
    GMSACredentialSpec is where the GMSA admission webhook
(https://github.com/kubernetes-sigs/windows-gmsa) inlines the contents of the
GMSA credential spec named by the GMSACredentialSpecName field.
+optional

  - `spec.chaos.kubernetes.containerSecurityContext.windowsOptions.gmsaCredentialSpecName` (string)
    GMSACredentialSpecName is the name of the GMSA credential spec to use.
+optional

  - `spec.chaos.kubernetes.containerSecurityContext.windowsOptions.runAsUserName` (string)
    The UserName in Windows to run the entrypoint of the container process.
Defaults to the user specified in image metadata if unspecified.
May also be set in PodSecurityContext. If set in both SecurityContext and
PodSecurityContext, the value specified in SecurityContext takes precedence.
+optional

  - `spec.chaos.kubernetes.env` (array)

  - `spec.chaos.kubernetes.env.name` (string)
    Name of the environment variable. Must be a C_IDENTIFIER.

  - `spec.chaos.kubernetes.env.value` (string)
    Variable references $(VAR_NAME) are expanded
using the previous defined environment variables in the container and
any service environment variables. If a variable cannot be resolved,
the reference in the input string will be unchanged. The $(VAR_NAME)
syntax can be escaped with a double $$, ie: $$(VAR_NAME). Escaped
references will never be expanded, regardless of whether the variable
exists or not.
Defaults to "".
+optional

  - `spec.chaos.kubernetes.env.valueFrom` (object)
    Source for the environment variable's value. Cannot be used if value is not empty.
+optional

  - `spec.chaos.kubernetes.env.valueFrom.configMapKeyRef` (object)
    Selects a key of a ConfigMap.
+optional

  - `spec.chaos.kubernetes.env.valueFrom.configMapKeyRef.key` (string)
    The key to select.

  - `spec.chaos.kubernetes.env.valueFrom.configMapKeyRef.name` (string)
    Name of the referent.
More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names
TODO: Add other useful fields. apiVersion, kind, uid?
+optional

  - `spec.chaos.kubernetes.env.valueFrom.configMapKeyRef.optional` (boolean)
    Specify whether the ConfigMap or its key must be defined
+optional

  - `spec.chaos.kubernetes.env.valueFrom.fieldRef` (object)
    Selects a field of the pod: supports metadata.name, metadata.namespace, metadata.labels[''], metadata.annotations[''],
spec.nodeName, spec.serviceAccountName, status.hostIP, status.podIP, status.podIPs.
+optional

  - `spec.chaos.kubernetes.env.valueFrom.fieldRef.apiVersion` (string)
    Version of the schema the FieldPath is written in terms of, defaults to "v1".
+optional

  - `spec.chaos.kubernetes.env.valueFrom.fieldRef.fieldPath` (string)
    Path of the field to select in the specified API version.

  - `spec.chaos.kubernetes.env.valueFrom.resourceFieldRef` (object)
    Selects a resource of the container: only resources limits and requests
(limits.cpu, limits.memory, limits.ephemeral-storage, requests.cpu, requests.memory and requests.ephemeral-storage) are currently supported.
+optional

  - `spec.chaos.kubernetes.env.valueFrom.resourceFieldRef.containerName` (string)
    Container name: required for volumes, optional for env vars
+optional

  - `spec.chaos.kubernetes.env.valueFrom.resourceFieldRef.divisor` (object)
    Specifies the output format of the exposed resources, defaults to "1"
+optional

  - `spec.chaos.kubernetes.env.valueFrom.resourceFieldRef.divisor.Format` (string)
    Enum: "DecimalExponent", "BinarySI", "DecimalSI"

  - `spec.chaos.kubernetes.env.valueFrom.resourceFieldRef.resource` (string)
    Required: resource to select

  - `spec.chaos.kubernetes.env.valueFrom.secretKeyRef` (object)
    Selects a key of a secret in the pod's namespace
+optional

  - `spec.chaos.kubernetes.env.valueFrom.secretKeyRef.key` (string)
    The key of the secret to select from.  Must be a valid secret key.

  - `spec.chaos.kubernetes.env.valueFrom.secretKeyRef.name` (string)
    Name of the referent.
More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names
TODO: Add other useful fields. apiVersion, kind, uid?
+optional

  - `spec.chaos.kubernetes.env.valueFrom.secretKeyRef.optional` (boolean)
    Specify whether the Secret or its key must be defined
+optional

  - `spec.chaos.kubernetes.hostIPC` (boolean)

  - `spec.chaos.kubernetes.hostNetwork` (boolean)

  - `spec.chaos.kubernetes.hostPID` (boolean)

  - `spec.chaos.kubernetes.hostPathVolume` (array)

  - `spec.chaos.kubernetes.hostPathVolume.hostPath` (string)

  - `spec.chaos.kubernetes.hostPathVolume.mountPath` (string)

  - `spec.chaos.kubernetes.hostPathVolume.name` (string)

  - `spec.chaos.kubernetes.hostPathVolume.type` (string)
    Enum: "", "DirectoryOrCreate", "Directory", "FileOrCreate", "File", "Socket", "CharDevice", "BlockDevice"

  - `spec.chaos.kubernetes.image` (string)

  - `spec.chaos.kubernetes.imagePullPolicy` (string)
    Enum: "Always", "Never", "IfNotPresent"

  - `spec.chaos.kubernetes.imagePullSecrets` (array)

  - `spec.chaos.kubernetes.labels` (object)

  - `spec.chaos.kubernetes.nodeSelector` (object)

  - `spec.chaos.kubernetes.podSecurityContext` (object)

  - `spec.chaos.kubernetes.podSecurityContext.fsGroup` (integer)
    A special supplemental group that applies to all containers in a pod.
Some volume types allow the Kubelet to change the ownership of that volume
to be owned by the pod:

1. The owning GID will be the FSGroup
2. The setgid bit is set (new files created in the volume will be owned by FSGroup)
3. The permission bits are OR'd with rw-rw----

If unset, the Kubelet will not modify the ownership and permissions of any volume.
+optional

  - `spec.chaos.kubernetes.podSecurityContext.fsGroupChangePolicy` (string)
    fsGroupChangePolicy defines behavior of changing ownership and permission of the volume
before being exposed inside Pod. This field will only apply to
volume types which support fsGroup based ownership(and permissions).
It will have no effect on ephemeral volume types such as: secret, configmaps
and emptydir.
Valid values are "OnRootMismatch" and "Always". If not specified, "Always" is used.
+optional
    Enum: "OnRootMismatch", "Always"

  - `spec.chaos.kubernetes.podSecurityContext.runAsGroup` (integer)
    The GID to run the entrypoint of the container process.
Uses runtime default if unset.
May also be set in SecurityContext.  If set in both SecurityContext and
PodSecurityContext, the value specified in SecurityContext takes precedence
for that container.
+optional

  - `spec.chaos.kubernetes.podSecurityContext.runAsNonRoot` (boolean)
    Indicates that the container must run as a non-root user.
If true, the Kubelet will validate the image at runtime to ensure that it
does not run as UID 0 (root) and fail to start the container if it does.
If unset or false, no such validation will be performed.
May also be set in SecurityContext.  If set in both SecurityContext and
PodSecurityContext, the value specified in SecurityContext takes precedence.
+optional

  - `spec.chaos.kubernetes.podSecurityContext.runAsUser` (integer)
    The UID to run the entrypoint of the container process.
Defaults to user specified in image metadata if unspecified.
May also be set in SecurityContext.  If set in both SecurityContext and
PodSecurityContext, the value specified in SecurityContext takes precedence
for that container.
+optional

  - `spec.chaos.kubernetes.podSecurityContext.seLinuxOptions` (object)
    The SELinux context to be applied to all containers.
If unspecified, the container runtime will allocate a random SELinux context for each
container.  May also be set in SecurityContext.  If set in
both SecurityContext and PodSecurityContext, the value specified in SecurityContext
takes precedence for that container.
+optional

  - `spec.chaos.kubernetes.podSecurityContext.seLinuxOptions.level` (string)
    Level is SELinux level label that applies to the container.
+optional

  - `spec.chaos.kubernetes.podSecurityContext.seLinuxOptions.role` (string)
    Role is a SELinux role label that applies to the container.
+optional

  - `spec.chaos.kubernetes.podSecurityContext.seLinuxOptions.type` (string)
    Type is a SELinux type label that applies to the container.
+optional

  - `spec.chaos.kubernetes.podSecurityContext.seLinuxOptions.user` (string)
    User is a SELinux user label that applies to the container.
+optional

  - `spec.chaos.kubernetes.podSecurityContext.seccompProfile` (object)
    The seccomp options to use by the containers in this pod.
+optional

  - `spec.chaos.kubernetes.podSecurityContext.seccompProfile.localhostProfile` (string)
    localhostProfile indicates a profile defined in a file on the node should be used.
The profile must be preconfigured on the node to work.
Must be a descending path, relative to the kubelet's configured seccomp profile location.
Must only be set if type is "Localhost".
+optional

  - `spec.chaos.kubernetes.podSecurityContext.seccompProfile.type` (string)
    type indicates which kind of seccomp profile will be applied.
Valid options are:

Localhost - a profile defined in a file on the node should be used.
RuntimeDefault - the container runtime default profile should be used.
Unconfined - no profile should be applied.
+unionDiscriminator
    Enum: "Unconfined", "RuntimeDefault", "Localhost"

  - `spec.chaos.kubernetes.podSecurityContext.supplementalGroups` (array)
    A list of groups applied to the first process run in each container, in addition
to the container's primary GID.  If unspecified, no groups will be added to
any container.
+optional

  - `spec.chaos.kubernetes.podSecurityContext.sysctls` (array)
    Sysctls hold a list of namespaced sysctls used for the pod. Pods with unsupported
sysctls (by the container runtime) might fail to launch.
+optional

  - `spec.chaos.kubernetes.podSecurityContext.sysctls.name` (string)
    Name of a property to set

  - `spec.chaos.kubernetes.podSecurityContext.sysctls.value` (string)
    Value of a property to set

  - `spec.chaos.kubernetes.podSecurityContext.windowsOptions` (object)
    The Windows specific settings applied to all containers.
If unspecified, the options within a container's SecurityContext will be used.
If set in both SecurityContext and PodSecurityContext, the value specified in SecurityContext takes precedence.
+optional

  - `spec.chaos.kubernetes.podSecurityContext.windowsOptions.gmsaCredentialSpec` (string)
    GMSACredentialSpec is where the GMSA admission webhook
(https://github.com/kubernetes-sigs/windows-gmsa) inlines the contents of the
GMSA credential spec named by the GMSACredentialSpecName field.
+optional

  - `spec.chaos.kubernetes.podSecurityContext.windowsOptions.gmsaCredentialSpecName` (string)
    GMSACredentialSpecName is the name of the GMSA credential spec to use.
+optional

  - `spec.chaos.kubernetes.podSecurityContext.windowsOptions.runAsUserName` (string)
    The UserName in Windows to run the entrypoint of the container process.
Defaults to the user specified in image metadata if unspecified.
May also be set in PodSecurityContext. If set in both SecurityContext and
PodSecurityContext, the value specified in SecurityContext takes precedence.
+optional

  - `spec.chaos.kubernetes.resourceRequirements` (object)

  - `spec.chaos.kubernetes.resourceRequirements.limits` (object)

  - `spec.chaos.kubernetes.resourceRequirements.requests` (object)

  - `spec.chaos.kubernetes.secretVolume` (array)

  - `spec.chaos.kubernetes.secretVolume.mountMode` (integer)

  - `spec.chaos.kubernetes.secretVolume.mountPath` (string)

  - `spec.chaos.kubernetes.secretVolume.name` (string)

  - `spec.chaos.kubernetes.toleration` (array)

  - `spec.chaos.kubernetes.toleration.effect` (string)
    Effect indicates the taint effect to match. Empty means match all taint effects.
When specified, allowed values are NoSchedule, PreferNoSchedule and NoExecute.
+optional
    Enum: "NoSchedule", "PreferNoSchedule", "NoExecute"

  - `spec.chaos.kubernetes.toleration.key` (string)
    Key is the taint key that the toleration applies to. Empty means match all taint keys.
If the key is empty, operator must be Exists; this combination means to match all values and all keys.
+optional

  - `spec.chaos.kubernetes.toleration.operator` (string)
    Operator represents a key's relationship to the value.
Valid operators are Exists and Equal. Defaults to Equal.
Exists is equivalent to wildcard for value, so that a pod can
tolerate all taints of a particular category.
+optional
    Enum: "Exists", "Equal"

  - `spec.chaos.kubernetes.toleration.tolerationSeconds` (integer)
    TolerationSeconds represents the period of time the toleration (which must be
of effect NoExecute, otherwise this field is ignored) tolerates the taint. By default,
it is not set, which means tolerate the taint forever (do not evict). Zero and
negative values will be treated as 0 (evict immediately) by the system.
+optional

  - `spec.chaos.kubernetes.toleration.value` (string)
    Value is the taint value the toleration matches to.
If the operator is Exists, the value should be empty, otherwise just a regular string.
+optional

  - `spec.chaos.params` (array)

  - `spec.chaos.params.name` (string)

  - `spec.chaos.params.value` (string)

  - `spec.chaos.statusCheckTimeouts` (object)

  - `spec.chaos.statusCheckTimeouts.delay` (integer)

  - `spec.chaos.statusCheckTimeouts.timeout` (integer)

  - `spec.chaos.tls` (object)

  - `spec.chaos.tls.caFile` (string)

  - `spec.chaos.tls.certFile` (string)

  - `spec.chaos.tls.clientCertFile` (string)

  - `spec.chaos.tls.keyFile` (string)

  - `spec.target` (object)

  - `spec.target.application` (object)

  - `spec.target.application.application` (string)

  - `spec.target.application.entrypoint` (string)

  - `spec.target.kubernetes` (array)

  - `spec.target.kubernetes.kind` (string)

  - `spec.target.kubernetes.labels` (string)

  - `spec.target.kubernetes.names` (string)

  - `spec.target.kubernetes.namespace` (string)

  - `tags` (array)

  - `templateReference` (object)

  - `templateReference.hubIdentity` (string)

  - `templateReference.identity` (string)

  - `templateReference.organizationIdentifier` (string)

  - `templateReference.projectIdentifier` (string)

  - `templateReference.revision` (string)

  - `type` (string)

  - `updatedAt` (integer)

  - `values` (array)

  - `values.name` (string, required)

  - `values.value` (any, required)

  - `variables` (array)

## Response 400 fields (application/json):

  - `code` (string)
    Enum: "PIPELINE_NOT_FOUND"

  - `description` (string)

  - `message` (string)


