> ## Documentation Index
> Fetch the complete documentation index at: https://docs.internal.nscale.com/llms.txt
> Use this file to discover all available pages before exploring further.

# List site test executions

> Site-scoped read-only history endpoint for burn-in test executions.



## OpenAPI

````yaml /openapi/fleet-manager-openapi.yaml get /api/v1/burn-in/sites/{site_id}/test-executions/
openapi: 3.0.3
info:
  title: Fleet Manager API
  version: 1.0.0
  description: API for the Nscale Fleet Manager
servers: []
security: []
paths:
  /api/v1/burn-in/sites/{site_id}/test-executions/:
    get:
      tags:
        - Burn-in
      summary: List site test executions
      description: Site-scoped read-only history endpoint for burn-in test executions.
      operationId: api_v1_burn_in_sites_test_executions_list
      parameters:
        - in: query
          name: cohort_id
          schema:
            type: array
            items:
              type: string
              format: uuid
          description: Multiple values may be separated by commas.
          explode: false
          style: form
        - in: query
          name: created_at_after
          schema:
            type: string
            format: date-time
        - in: query
          name: created_at_before
          schema:
            type: string
            format: date-time
        - in: query
          name: device_id
          schema:
            type: array
            items:
              type: string
              format: uuid
          description: Multiple values may be separated by commas.
          explode: false
          style: form
        - in: query
          name: execution_mode
          schema:
            $ref: '#/components/schemas/TestExecutionModeEnum'
          description: Filter results by evidence execution mode.
        - in: query
          name: freshness
          schema:
            $ref: '#/components/schemas/TestExecutionFreshnessEnum'
          description: Filter results by evidence freshness.
        - in: query
          name: id
          schema:
            type: array
            items:
              type: string
              format: uuid
          description: Multiple values may be separated by commas.
          explode: false
          style: form
        - in: query
          name: job_id
          schema:
            type: array
            items:
              type: string
              format: uuid
          description: Multiple values may be separated by commas.
          explode: false
          style: form
        - name: limit
          required: false
          in: query
          description: Number of results to return per page.
          schema:
            type: integer
            maximum: 500
            minimum: 1
        - name: page
          required: false
          in: query
          description: A page number within the paginated result set.
          schema:
            type: integer
        - in: path
          name: site_id
          schema:
            type: string
            format: uuid
          description: Site identifier.
          required: true
        - in: query
          name: slurm_job_id
          schema:
            type: integer
        - in: query
          name: stage
          schema:
            type: array
            items:
              $ref: '#/components/schemas/StageEnum'
          description: >-
            Filter by one or more test stages. Accepts a comma-separated list
            (`stage=single_node,pairwise`) or a repeated parameter
            (`stage=single_node&stage=pairwise`).
          explode: false
          style: form
        - in: query
          name: status
          schema:
            $ref: '#/components/schemas/TestExecutionStatusEnum'
          description: Filter results by test execution status.
        - in: query
          name: test_slug
          schema:
            type: string
        - in: query
          name: topology_group_id
          schema:
            type: array
            items:
              type: string
              format: uuid
          description: Multiple values may be separated by commas.
          explode: false
          style: form
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PaginatedTestExecutionResponseList'
          description: ''
        '400':
          description: Validation error.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
        '401':
          description: Authentication credentials were not provided or are invalid.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
        '403':
          description: You do not have permission to perform this action.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
        '404':
          description: Not found.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
      security:
        - oauth2:
            - test-execution:read
        - cookieAuth: []
components:
  schemas:
    TestExecutionModeEnum:
      enum:
        - qualifying
        - debug
      type: string
      description: |-
        * `qualifying` - Qualifying
        * `debug` - Debug
    TestExecutionFreshnessEnum:
      enum:
        - current
        - stale
      type: string
      description: |-
        * `current` - Current
        * `stale` - Stale
    StageEnum:
      enum:
        - single_node
        - pairwise
        - collective
      type: string
      description: |-
        * `single_node` - Single Node
        * `pairwise` - Pairwise
        * `collective` - Collective
    TestExecutionStatusEnum:
      enum:
        - completed
        - passed
        - failed
        - error
      type: string
      description: |-
        * `completed` - Completed
        * `passed` - Passed
        * `failed` - Failed
        * `error` - Error
    PaginatedTestExecutionResponseList:
      type: object
      required:
        - count
        - results
      properties:
        count:
          type: integer
          example: 123
        next:
          type: string
          nullable: true
          format: uri
          example: http://api.example.org/accounts/?page=4
        previous:
          type: string
          nullable: true
          format: uri
          example: http://api.example.org/accounts/?page=2
        results:
          type: array
          items:
            $ref: '#/components/schemas/TestExecutionResponse'
    ErrorResponse:
      type: object
      description: >-
        Uniform error body for every 4xx/5xx response. `detail` is a
        human-readable message, always present, safe to display to end users.
        `code` is the machine-readable identifier. `field_errors` lists
        per-input-field validation messages and is empty for non-field errors
        (auth, permission, not-found, conflict, server).
      required:
        - detail
        - code
        - field_errors
      properties:
        detail:
          type: string
        code:
          $ref: '#/components/schemas/ErrorCodeEnum'
        field_errors:
          type: array
          items:
            $ref: '#/components/schemas/FieldError'
    TestExecutionResponse:
      type: object
      description: >-
        Read serializer for TestExecution responses.


        Overrides metrics to return EvaluatedMetric[] (consistent with

        summary/history endpoints) and adds evaluation from context.

        Exposes per-device diagnostics from JobDeviceStatus on
        `device_diagnostics`.
      properties:
        id:
          type: string
          format: uuid
          readOnly: true
        job:
          type: string
          format: uuid
          description: Denormalized from cohort for efficient job-level queries
        cohort:
          type: string
          format: uuid
          nullable: true
          description: Cohort UUID. Either cohort or device_ids must be provided.
        device_ids:
          type: array
          items:
            type: string
            format: uuid
          writeOnly: true
          description: >-
            List of device UUIDs. If provided instead of cohort, will
            automatically create/retrieve cohort (max 25000).
          maxItems: 25000
        parent_cohort:
          type: string
          format: uuid
          writeOnly: true
          nullable: true
          description: >-
            Optional parent cohort for hierarchical tracking (used with
            device_ids).
        source_device:
          type: string
          format: uuid
          writeOnly: true
          nullable: true
          description: >-
            Source device for pairwise tests (used when creating cohort with
            device_ids)
        dest_device:
          type: string
          format: uuid
          writeOnly: true
          nullable: true
          description: >-
            Destination device for pairwise tests (used when creating cohort
            with device_ids)
        test_slug:
          $ref: '#/components/schemas/TestSlugEnum'
        stage:
          allOf:
            - $ref: '#/components/schemas/StageEnum'
          description: |-
            Test stage (denormalized from test_slug for efficient filtering)

            * `single_node` - Single Node
            * `pairwise` - Pairwise
            * `collective` - Collective
        status:
          allOf:
            - $ref: '#/components/schemas/TestExecutionStatusEnum'
          description: |-
            Test execution status (must be set explicitly - no default)

            * `completed` - Completed
            * `passed` - Passed
            * `failed` - Failed
            * `error` - Error
        execution_mode:
          allOf:
            - $ref: '#/components/schemas/TestExecutionModeEnum'
          readOnly: true
          description: >-
            Evidence execution mode. Qualifying runs may count toward
            contractual acceptance; debug runs are diagnostic evidence only.


            * `qualifying` - Qualifying

            * `debug` - Debug
        freshness:
          allOf:
            - $ref: '#/components/schemas/TestExecutionFreshnessEnum'
          readOnly: true
          description: >-
            Evidence freshness for lifecycle-sensitive acceptance. Stale
            evidence remains queryable but cannot satisfy acceptance gates.


            * `current` - Current

            * `stale` - Stale
        resolved_params:
          type: object
          additionalProperties:
            $ref: '#/components/schemas/JsonValue'
          nullable: true
          description: >-
            Resolved test parameters that actually ran. The resolved params key
            is derived server-side from this JSON.
        metrics:
          type: array
          items:
            $ref: '#/components/schemas/EvaluatedMetric'
          readOnly: true
        iteration_summary:
          allOf:
            - $ref: '#/components/schemas/IterationSummary'
          nullable: true
        error_details:
          allOf:
            - $ref: '#/components/schemas/BurnInErrorDetails'
          nullable: true
          description: >-
            Structured error information for infrastructure failures
            (status=ERROR)
        nic_metrics:
          nullable: true
          description: Per-NIC metrics for pairwise tests (list of per-NIC result dicts)
        artifact_uri:
          type: string
          description: S3 URI to test artifacts (e.g., 's3://bucket/org/site/job/cohort/')
          maxLength: 1000
        started_at:
          type: string
          format: date-time
          nullable: true
        completed_at:
          type: string
          format: date-time
          nullable: true
        slurm_job_id:
          type: integer
          maximum: 2147483647
          minimum: 0
          nullable: true
          description: SLURM job ID for hardware test execution (burn-in workflows only)
        marked_stale_at:
          type: string
          format: date-time
          readOnly: true
          nullable: true
          description: >-
            Timestamp this record first went stale since it was last fully
            fresh. Not touched by later holds stacking on top of an
            already-stale record; cleared only once every active
            TestExecutionStaleHold referencing this record has been undone.
            Freshness, not this timestamp, is the authoritative current/stale
            state.
        active_stale_holds:
          type: array
          items:
            $ref: '#/components/schemas/ActiveStaleHold'
          readOnly: true
        created_at:
          type: string
          format: date-time
          readOnly: true
        updated_at:
          type: string
          format: date-time
          readOnly: true
        links:
          allOf:
            - $ref: '#/components/schemas/TestExecutionLinks'
          readOnly: true
        job_name:
          type: string
          readOnly: true
        cohort_device_names:
          type: array
          items:
            type: string
          readOnly: true
        cohort_hostlist:
          type: string
          readOnly: true
        cohort_size:
          type: integer
          readOnly: true
        evaluation:
          allOf:
            - $ref: '#/components/schemas/TestEvaluation'
          nullable: true
          readOnly: true
        device_diagnostics:
          type: array
          items:
            $ref: '#/components/schemas/DeviceDiagnostic'
          readOnly: true
      required:
        - active_stale_holds
        - cohort_device_names
        - cohort_hostlist
        - cohort_size
        - created_at
        - device_diagnostics
        - evaluation
        - execution_mode
        - freshness
        - id
        - job
        - job_name
        - links
        - marked_stale_at
        - metrics
        - stage
        - status
        - test_slug
        - updated_at
    ErrorCodeEnum:
      type: string
      description: >-
        Stable machine-readable error identifier. New members may be added
        within this API version; clients must tolerate unknown values.
      enum:
        - error
        - invalid
        - parse_error
        - authentication_failed
        - not_authenticated
        - permission_denied
        - not_found
        - method_not_allowed
        - not_acceptable
        - unsupported_media_type
        - conflict
        - enrollment_infrastructure_reference_pending
        - enrollment_infrastructure_reference_changed
        - unprocessable_entity
        - throttled
        - service_unavailable
    FieldError:
      type: object
      description: One input field's validation messages.
      required:
        - field
        - messages
      properties:
        field:
          type: string
          description: >-
            Dotted path to the offending input field, or to the collection row
            when the whole row is invalid (e.g. `filters.end_date`,
            `memberships.0.role`, `memberships.0`).
        messages:
          type: array
          minItems: 1
          items:
            type: string
    TestSlugEnum:
      enum:
        - multi-node.hello-world
        - multi-node.iperf-matrix
        - multi-node.nccl-all-gather
        - multi-node.nccl-all-reduce
        - multi-node.nccl-all-reduce-multi-rack
        - multi-node.nccl-all-to-all
        - multi-node.nvloom
        - multi-node.pairwise-net-gpu.bw
        - multi-node.pairwise-net-gpu.lat
        - multi-node.pairwise-net.bw
        - multi-node.pairwise-net.lat
        - multi-node.s3-elbencho
        - multi-node.storage-elbencho
        - multi-node.training-gpt-oss-120b
        - multi-node.training-llama3-1-405b
        - multi-node.training-llama3-70b
        - multi-node.training-nemotron-24x2h
        - multi-node.training-nemotron-checkpoint
        - multi-node.training-nemotron-h
        - multi-node.training-nemotron-h-multi-rack
        - multi-node.training-qwen3-235b
        - single-node.babelstream
        - single-node.dcgmi-diag
        - single-node.gpu-fryer
        - single-node.hello-world
        - single-node.hpl-cpu
        - single-node.hpl-gpu
        - single-node.lmbench-lat-mem-rd
        - single-node.memtester
        - single-node.nccl-all-gather
        - single-node.nccl-all-reduce
        - single-node.nccl-all-reduce-loopback
        - single-node.nccl-all-to-all
        - single-node.node-health-check
        - single-node.nvme-fio
        - single-node.nvme-self-test
        - single-node.storage-elbencho
        - single-node.stream
        - single-node.stress-ng-cpu
        - single-node.training-llama3-8b
        - single-node.training-nemotronh-8b
      type: string
      description: >-
        * `multi-node.hello-world` - multi-node.hello-world

        * `multi-node.iperf-matrix` - multi-node.iperf-matrix

        * `multi-node.nccl-all-gather` - multi-node.nccl-all-gather

        * `multi-node.nccl-all-reduce` - multi-node.nccl-all-reduce

        * `multi-node.nccl-all-reduce-multi-rack` -
        multi-node.nccl-all-reduce-multi-rack

        * `multi-node.nccl-all-to-all` - multi-node.nccl-all-to-all

        * `multi-node.nvloom` - multi-node.nvloom

        * `multi-node.pairwise-net-gpu.bw` - multi-node.pairwise-net-gpu.bw

        * `multi-node.pairwise-net-gpu.lat` - multi-node.pairwise-net-gpu.lat

        * `multi-node.pairwise-net.bw` - multi-node.pairwise-net.bw

        * `multi-node.pairwise-net.lat` - multi-node.pairwise-net.lat

        * `multi-node.s3-elbencho` - multi-node.s3-elbencho

        * `multi-node.storage-elbencho` - multi-node.storage-elbencho

        * `multi-node.training-gpt-oss-120b` - multi-node.training-gpt-oss-120b

        * `multi-node.training-llama3-1-405b` -
        multi-node.training-llama3-1-405b

        * `multi-node.training-llama3-70b` - multi-node.training-llama3-70b

        * `multi-node.training-nemotron-24x2h` -
        multi-node.training-nemotron-24x2h

        * `multi-node.training-nemotron-checkpoint` -
        multi-node.training-nemotron-checkpoint

        * `multi-node.training-nemotron-h` - multi-node.training-nemotron-h

        * `multi-node.training-nemotron-h-multi-rack` -
        multi-node.training-nemotron-h-multi-rack

        * `multi-node.training-qwen3-235b` - multi-node.training-qwen3-235b

        * `single-node.babelstream` - single-node.babelstream

        * `single-node.dcgmi-diag` - single-node.dcgmi-diag

        * `single-node.gpu-fryer` - single-node.gpu-fryer

        * `single-node.hello-world` - single-node.hello-world

        * `single-node.hpl-cpu` - single-node.hpl-cpu

        * `single-node.hpl-gpu` - single-node.hpl-gpu

        * `single-node.lmbench-lat-mem-rd` - single-node.lmbench-lat-mem-rd

        * `single-node.memtester` - single-node.memtester

        * `single-node.nccl-all-gather` - single-node.nccl-all-gather

        * `single-node.nccl-all-reduce` - single-node.nccl-all-reduce

        * `single-node.nccl-all-reduce-loopback` -
        single-node.nccl-all-reduce-loopback

        * `single-node.nccl-all-to-all` - single-node.nccl-all-to-all

        * `single-node.node-health-check` - single-node.node-health-check

        * `single-node.nvme-fio` - single-node.nvme-fio

        * `single-node.nvme-self-test` - single-node.nvme-self-test

        * `single-node.storage-elbencho` - single-node.storage-elbencho

        * `single-node.stream` - single-node.stream

        * `single-node.stress-ng-cpu` - single-node.stress-ng-cpu

        * `single-node.training-llama3-8b` - single-node.training-llama3-8b

        * `single-node.training-nemotronh-8b` -
        single-node.training-nemotronh-8b
    JsonValue:
      description: Any JSON value.
      nullable: true
      anyOf:
        - type: string
        - type: number
        - type: integer
        - type: boolean
        - type: array
          items:
            $ref: '#/components/schemas/JsonValue'
        - type: object
          additionalProperties:
            $ref: '#/components/schemas/JsonValue'
    EvaluatedMetric:
      type: object
      description: OpenAPI schema for a metric entry with optional evaluation.
      properties:
        name:
          type: string
        value:
          allOf:
            - $ref: '#/components/schemas/MetricDisplayValue'
          nullable: true
        unit:
          type: string
          nullable: true
        evaluation:
          allOf:
            - $ref: '#/components/schemas/ThresholdResult'
          nullable: true
        statistics:
          allOf:
            - $ref: '#/components/schemas/MetricStatistics'
          nullable: true
        detail:
          type: string
          nullable: true
        reason:
          type: string
          nullable: true
          description: >-
            Stable machine-readable sub-reason for this metric's outcome, when
            the producing check defines one. Lets a consumer branch on the cause
            without parsing prose.
      required:
        - detail
        - evaluation
        - name
        - statistics
        - unit
        - value
    IterationSummary:
      type: object
      description: OpenAPI schema for iteration execution summary.
      properties:
        requested:
          type: integer
        completed:
          type: integer
        failed:
          type: integer
        completed_iterations:
          type: array
          items:
            type: integer
      required:
        - completed
        - completed_iterations
        - failed
        - requested
    BurnInErrorDetails:
      type: object
      description: OpenAPI schema for burn-in infrastructure error details.
      properties:
        message:
          type: string
        debug_bundle_s3_uri:
          type: string
          nullable: true
        slurm_job_id:
          type: integer
          maximum: 2147483647
          minimum: 0
          nullable: true
      required:
        - debug_bundle_s3_uri
        - message
        - slurm_job_id
    ActiveStaleHold:
      type: object
      description: |-
        Read-only summary of one hold currently keeping a test execution stale.

        A test execution can have more than one of these active at once — each
        independent mark-stale call creates its own hold, and the execution only
        returns to fresh once every active hold referencing it has been undone.
      properties:
        id:
          type: string
          format: uuid
          readOnly: true
        source:
          allOf:
            - $ref: '#/components/schemas/TestExecutionStaleHoldSourceEnum'
          readOnly: true
        operation_slug:
          type: string
          nullable: true
          readOnly: true
        operation_label:
          type: string
          nullable: true
          readOnly: true
        note:
          type: string
          readOnly: true
        created_by_display_name:
          type: string
          readOnly: true
        created_at:
          type: string
          format: date-time
          readOnly: true
      required:
        - created_at
        - created_by_display_name
        - id
        - note
        - operation_label
        - operation_slug
        - source
    TestExecutionLinks:
      type: object
      description: Serializer for test execution links.
      properties:
        self:
          type: string
          format: uri
          readOnly: true
        collection:
          type: string
          format: uri
          readOnly: true
        job:
          type: string
          format: uri
          readOnly: true
        cohort:
          type: string
          format: uri
          readOnly: true
      required:
        - cohort
        - collection
        - job
        - self
    TestEvaluation:
      type: object
      description: OpenAPI schema for test-level evaluation (passed, reason).
      properties:
        passed:
          type: boolean
        reason:
          type: string
          nullable: true
      required:
        - passed
        - reason
    DeviceDiagnostic:
      type: object
      description: >-
        Per-device diagnostics projected from JobDeviceStatus.


        Attached to API responses that group by test execution / job so the UI
        can

        surface the failure_code / failure_message / ai_diagnosis for each
        device

        without a second fetch. Fields are null for uninstrumented devices and

        devices without an emitted JobDeviceStatus row.
      properties:
        device_id:
          type: string
          format: uuid
        device_name:
          type: string
        failure_code:
          allOf:
            - $ref: '#/components/schemas/FailureCodeEnum'
          nullable: true
        failure_message:
          type: string
          nullable: true
        ai_diagnosis:
          allOf:
            - $ref: '#/components/schemas/AIDeviceDiagnosis'
          nullable: true
      required:
        - ai_diagnosis
        - device_id
        - device_name
        - failure_code
        - failure_message
    MetricDisplayValue:
      anyOf:
        - type: number
        - type: string
      nullable: true
    ThresholdResult:
      type: object
      description: Atomic result of comparing a value against a threshold.
      properties:
        passed:
          type: boolean
        threshold:
          allOf:
            - $ref: '#/components/schemas/MetricDisplayValue'
          nullable: true
        comparator:
          allOf:
            - $ref: '#/components/schemas/ComparatorTypeEnum'
          nullable: true
      required:
        - comparator
        - passed
        - threshold
    MetricStatistics:
      type: object
      description: OpenAPI schema for per-metric statistics across multiple iterations.
      properties:
        mean:
          $ref: '#/components/schemas/StatisticEntry'
        min:
          $ref: '#/components/schemas/StatisticEntry'
        max:
          $ref: '#/components/schemas/StatisticEntry'
        median:
          $ref: '#/components/schemas/StatisticEntry'
        stdev:
          $ref: '#/components/schemas/StatisticEntry'
      required:
        - max
        - mean
        - median
        - min
        - stdev
    TestExecutionStaleHoldSourceEnum:
      enum:
        - manual
        - operation
      type: string
      description: |-
        * `manual` - Manual
        * `operation` - Operation
    FailureCodeEnum:
      enum:
        - UNMAPPED_APPLICATION_ERROR
        - ACTIVITY_EXECUTION_FAILURE
        - UNEXPECTED_WORKFLOW_EXCEPTION
        - WORKFLOW_TIMEOUT
        - WORKFLOW_CANCELLED
        - WORKFLOW_TERMINATED
        - UNKNOWN_WORKFLOW_FAILURE
        - JOB_PARAMETERS_INVALID
        - JOB_SUBMISSION_FAILED
        - IRONIC_NODE_CLEAN_FAILED
        - IRONIC_NODE_CLEAN_INVALID_ACTION
        - IRONIC_NODE_CLEAN_UNEXPECTED_PROVISION_STATE
        - QUARANTINE_TRAIT_REMOVAL_FAILED
        - RELEASE_TRAIT_ADDITION_FAILED
        - RELEASE_PARTITION_LATCH_REFUSED
        - RELEASE_BACKEND_VRF_LATCH_REFUSED
        - METAL_HANDOFF_FAILED
        - METAL_RECLAIM_FAILED
        - CUSTODY_STATUS_UPDATE_FAILED
        - SLURM_ADOPT_FAILED
        - SLURM_RELEASE_FAILED
        - SLURM_REGISTRATION_TIMEOUT
        - IMAGE_NODE_FAILED
        - UNIMAGE_NODE_FAILED
        - REPORT_SITE_NOT_FOUND
        - REPORT_NO_DATA_FOUND
        - REPORT_INVALID_BUNDLE_INPUT
        - REPORT_INVALID_SECTION
        - BURN_IN_DEVICE_STATUS_INVALID
        - BURN_IN_SLURM_NODE_VALIDATION_FAILED
        - BURN_IN_SLURM_RESERVATION_FAILED
        - BURN_IN_RESERVATION_WAIT_TIMEOUT
        - BURN_IN_RESERVATION_QUEUE_UNAVAILABLE
        - BURN_IN_TEST_PREPARATION_FAILED
        - BURN_IN_TEST_TIME_LIMIT_EXCEEDS_CEILING
        - HARDWARE_TEST_IMAGE_PREPARATION_FAILED
        - BURN_IN_TEST_EXECUTION_FAILED
        - BURN_IN_INSUFFICIENT_DEVICES
        - BURN_IN_UNKNOWN_TEST_SLUG
        - BURN_IN_INVALID_WORKFLOW_STAGE
        - BURN_IN_MISSING_RESOURCE_CLASS
        - BURN_IN_MIXED_RESOURCE_CLASS
        - BURN_IN_WORKFLOW_STATE_INVALID
        - BURN_IN_MISSING_PAIR_METRICS
        - BURN_IN_DUPLICATE_SLURM_SUBMISSION
        - BMC_HTTP_SERVICE_UNAVAILABLE
        - BMC_HTTP_BAD_REQUEST
        - BMC_HTTP_UNAUTHORIZED
        - BMC_HTTP_FORBIDDEN
        - BMC_REDFISH_DISCONNECT
        - BMC_REDFISH_FD_EXHAUSTION
        - BMC_HTTP_GENERIC_ERROR
        - BMC_COLD_RESET_TIMEOUT
        - BMC_IPMI_UNREACHABLE
        - BMC_IPMI_COMMAND_ERROR
        - NVSWITCH_CREDENTIAL_MISSING
        - NVSWITCH_CREDENTIAL_ERROR
        - NVSWITCH_ADDRESS_INVALID
        - NVSWITCH_ADDRESS_MISSING
        - NVSWITCH_PRECONDITION_FAILED
        - IRONIC_HTTP_INTERNAL_SERVER_ERROR
        - IRONIC_SSL_VERSION_ERROR
        - IRONIC_VIRTUAL_MEDIA_INSPECTION_ERROR
        - IRONIC_NODE_POWER_STATE_ERROR
        - IRONIC_DRIVER_MISMATCH
        - IRONIC_NODE_CUSTOMER_INSTANCE_ATTACHED
        - IRONIC_NODE_STUCK_IN_ENROLL
        - IRONIC_INSPECTFAIL
        - IRONIC_CLEANFAIL
        - IRONIC_NODE_LOCKED
        - IRONIC_UEFI_BOOT_MODE_TIMEOUT
        - IRONIC_ENROLLMENT_ACTIVITY_TIMEOUT
        - IRONIC_INSPECTION_HARDWARE_VALIDATION_FAILED
        - IRONIC_INSPECTION_TIMEOUT
        - IRONIC_INSPECTION_DID_NOT_RUN
        - IRONIC_INSPECTION_IPA_IMAGE_NOT_FOUND
        - IRONIC_NODE_POWER_ON_TIMEOUT
        - IRONIC_NODE_UNEXPECTED_PROVISION_STATE
        - IRONIC_ROUTING_UNRESOLVED
        - NETBOX_DEVICE_STATUS_INVALID
        - NETBOX_STATUS_UPDATE_FAILED
        - NETBOX_INSPECTION_VALIDATION_CONFIG_MALFORMED
        - NETBOX_LAG_PARENT_MISSING
        - NETBOX_CABLE_TOPOLOGY_INVALID
        - NETBOX_INTERFACE_CABLE_MISSING
        - NETBOX_INTERFACE_MAC_ADDRESS_MISSING
        - PLATFORM_CLASS_UNRESOLVABLE
        - PLATFORM_CLASS_RECORD_FAILED
        - DHCP_CONFIGURATION_FAILED
        - DHCP_TIMEOUT
        - DHCP_SERVICE_NOT_ACTIVE
        - CABLE_LLDP_VERIFICATION_FAILED
        - FRONTEND_LINK_DOWN
        - ONEPASSWORD_VAULT_DATA_CONFLICT
        - CONNECTIVITY_VERIFICATION_ACTIVITY_FAILED
        - ENROLLMENT_FINALIZATION_IDENTITY_UNAVAILABLE
        - ENROLLMENT_COMPLETION_PROOF_REJECTED
        - ENROLLMENT_PROOF_MISSING
        - ENROLLMENT_PROOF_UNAVAILABLE
        - UNENROLLMENT_RUNTIME_STATE_INVALID
        - UNENROLLMENT_NODE_DEPLOYED_IN_NOVA
        - UNENROLLMENT_IRONIC_TEARDOWN_FAILED
        - UNENROLLMENT_PLACEMENT_RP_DELETE_FAILED
        - UNENROLLMENT_NETBOX_STATUS_UPDATE_FAILED
        - UNENROLLMENT_BMC_FACTORY_RESET_FAILED
        - FIRMWARE_INVENTORY_INVALID_SCOPE
        - FIRMWARE_INVENTORY_COLLECTION_FAILED
        - FIRMWARE_VERIFICATION_INVALID_SCOPE
        - FIRMWARE_VERIFICATION_NON_COMPLIANT
        - FIRMWARE_VERIFICATION_EVIDENCE_UNAVAILABLE
        - FIRMWARE_VERIFICATION_REPORT_UPLOAD_FAILED
        - FIRMWARE_VERIFICATION_EVIDENCE_PERSISTENCE_CONFLICT
        - NODE_DIAGNOSTICS_UNEXPECTED_PROVISION_STATE
        - NODE_DIAGNOSTICS_STATE_CHANGED
        - NODE_DIAGNOSTICS_CLASSIFICATION_FAILED
        - NODE_DIAGNOSTICS_ARTIFACT_UPLOAD_FAILED
        - NODE_DIAGNOSTICS_SUMMARY_WRITE_FAILED
        - POWER_CYCLE_BMC_FAILED
        - MAINTENANCE_MODE_FAILED
        - SWITCH_VRF_FLIP_FAILED
        - SWITCH_VRF_LATCH_WRITE_FAILED
        - SWITCH_VRF_PREFLIGHT_REFUSED
        - NVLINK_PARTITION_FAILED
        - NVLINK_PARTITION_CONTRACT_FAILED
        - NVLINK_PARTITION_INVALID_REQUEST
        - NVLINK_PARTITION_PREFLIGHT_REFUSED
        - NVLINK_LATCH_WRITE_FAILED
        - BACKEND_VRF_PREFLIGHT_REFUSED
        - BACKEND_VRF_APPLY_REFUSED
        - BACKEND_VRF_FLIP_FAILED
        - BACKEND_VRF_LATCH_WRITE_FAILED
        - SWITCH_LOCK_TIMEOUT
        - SWITCH_LOCK_LOST
        - SWITCH_WRITE_UNCONFIRMED
        - SLURM_HTTP_BAD_REQUEST
        - SLURM_HTTP_UNAUTHORIZED
        - SLURM_HTTP_FORBIDDEN
        - SLURM_HTTP_SERVICE_UNAVAILABLE
        - SLURM_NODE_STATE_FAILED
        - NODE_SWAP_VALIDATION_FAILED
        - TOPOLOGY_SYNC_INTENT_FAILED
      type: string
      description: >-
        * `UNMAPPED_APPLICATION_ERROR` - UNMAPPED_APPLICATION_ERROR

        * `ACTIVITY_EXECUTION_FAILURE` - ACTIVITY_EXECUTION_FAILURE

        * `UNEXPECTED_WORKFLOW_EXCEPTION` - UNEXPECTED_WORKFLOW_EXCEPTION

        * `WORKFLOW_TIMEOUT` - WORKFLOW_TIMEOUT

        * `WORKFLOW_CANCELLED` - WORKFLOW_CANCELLED

        * `WORKFLOW_TERMINATED` - WORKFLOW_TERMINATED

        * `UNKNOWN_WORKFLOW_FAILURE` - UNKNOWN_WORKFLOW_FAILURE

        * `JOB_PARAMETERS_INVALID` - JOB_PARAMETERS_INVALID

        * `JOB_SUBMISSION_FAILED` - JOB_SUBMISSION_FAILED

        * `IRONIC_NODE_CLEAN_FAILED` - IRONIC_NODE_CLEAN_FAILED

        * `IRONIC_NODE_CLEAN_INVALID_ACTION` - IRONIC_NODE_CLEAN_INVALID_ACTION

        * `IRONIC_NODE_CLEAN_UNEXPECTED_PROVISION_STATE` -
        IRONIC_NODE_CLEAN_UNEXPECTED_PROVISION_STATE

        * `QUARANTINE_TRAIT_REMOVAL_FAILED` - QUARANTINE_TRAIT_REMOVAL_FAILED

        * `RELEASE_TRAIT_ADDITION_FAILED` - RELEASE_TRAIT_ADDITION_FAILED

        * `RELEASE_PARTITION_LATCH_REFUSED` - RELEASE_PARTITION_LATCH_REFUSED

        * `RELEASE_BACKEND_VRF_LATCH_REFUSED` -
        RELEASE_BACKEND_VRF_LATCH_REFUSED

        * `METAL_HANDOFF_FAILED` - METAL_HANDOFF_FAILED

        * `METAL_RECLAIM_FAILED` - METAL_RECLAIM_FAILED

        * `CUSTODY_STATUS_UPDATE_FAILED` - CUSTODY_STATUS_UPDATE_FAILED

        * `SLURM_ADOPT_FAILED` - SLURM_ADOPT_FAILED

        * `SLURM_RELEASE_FAILED` - SLURM_RELEASE_FAILED

        * `SLURM_REGISTRATION_TIMEOUT` - SLURM_REGISTRATION_TIMEOUT

        * `IMAGE_NODE_FAILED` - IMAGE_NODE_FAILED

        * `UNIMAGE_NODE_FAILED` - UNIMAGE_NODE_FAILED

        * `REPORT_SITE_NOT_FOUND` - REPORT_SITE_NOT_FOUND

        * `REPORT_NO_DATA_FOUND` - REPORT_NO_DATA_FOUND

        * `REPORT_INVALID_BUNDLE_INPUT` - REPORT_INVALID_BUNDLE_INPUT

        * `REPORT_INVALID_SECTION` - REPORT_INVALID_SECTION

        * `BURN_IN_DEVICE_STATUS_INVALID` - BURN_IN_DEVICE_STATUS_INVALID

        * `BURN_IN_SLURM_NODE_VALIDATION_FAILED` -
        BURN_IN_SLURM_NODE_VALIDATION_FAILED

        * `BURN_IN_SLURM_RESERVATION_FAILED` - BURN_IN_SLURM_RESERVATION_FAILED

        * `BURN_IN_RESERVATION_WAIT_TIMEOUT` - BURN_IN_RESERVATION_WAIT_TIMEOUT

        * `BURN_IN_RESERVATION_QUEUE_UNAVAILABLE` -
        BURN_IN_RESERVATION_QUEUE_UNAVAILABLE

        * `BURN_IN_TEST_PREPARATION_FAILED` - BURN_IN_TEST_PREPARATION_FAILED

        * `BURN_IN_TEST_TIME_LIMIT_EXCEEDS_CEILING` -
        BURN_IN_TEST_TIME_LIMIT_EXCEEDS_CEILING

        * `HARDWARE_TEST_IMAGE_PREPARATION_FAILED` -
        HARDWARE_TEST_IMAGE_PREPARATION_FAILED

        * `BURN_IN_TEST_EXECUTION_FAILED` - BURN_IN_TEST_EXECUTION_FAILED

        * `BURN_IN_INSUFFICIENT_DEVICES` - BURN_IN_INSUFFICIENT_DEVICES

        * `BURN_IN_UNKNOWN_TEST_SLUG` - BURN_IN_UNKNOWN_TEST_SLUG

        * `BURN_IN_INVALID_WORKFLOW_STAGE` - BURN_IN_INVALID_WORKFLOW_STAGE

        * `BURN_IN_MISSING_RESOURCE_CLASS` - BURN_IN_MISSING_RESOURCE_CLASS

        * `BURN_IN_MIXED_RESOURCE_CLASS` - BURN_IN_MIXED_RESOURCE_CLASS

        * `BURN_IN_WORKFLOW_STATE_INVALID` - BURN_IN_WORKFLOW_STATE_INVALID

        * `BURN_IN_MISSING_PAIR_METRICS` - BURN_IN_MISSING_PAIR_METRICS

        * `BURN_IN_DUPLICATE_SLURM_SUBMISSION` -
        BURN_IN_DUPLICATE_SLURM_SUBMISSION

        * `BMC_HTTP_SERVICE_UNAVAILABLE` - BMC_HTTP_SERVICE_UNAVAILABLE

        * `BMC_HTTP_BAD_REQUEST` - BMC_HTTP_BAD_REQUEST

        * `BMC_HTTP_UNAUTHORIZED` - BMC_HTTP_UNAUTHORIZED

        * `BMC_HTTP_FORBIDDEN` - BMC_HTTP_FORBIDDEN

        * `BMC_REDFISH_DISCONNECT` - BMC_REDFISH_DISCONNECT

        * `BMC_REDFISH_FD_EXHAUSTION` - BMC_REDFISH_FD_EXHAUSTION

        * `BMC_HTTP_GENERIC_ERROR` - BMC_HTTP_GENERIC_ERROR

        * `BMC_COLD_RESET_TIMEOUT` - BMC_COLD_RESET_TIMEOUT

        * `BMC_IPMI_UNREACHABLE` - BMC_IPMI_UNREACHABLE

        * `BMC_IPMI_COMMAND_ERROR` - BMC_IPMI_COMMAND_ERROR

        * `NVSWITCH_CREDENTIAL_MISSING` - NVSWITCH_CREDENTIAL_MISSING

        * `NVSWITCH_CREDENTIAL_ERROR` - NVSWITCH_CREDENTIAL_ERROR

        * `NVSWITCH_ADDRESS_INVALID` - NVSWITCH_ADDRESS_INVALID

        * `NVSWITCH_ADDRESS_MISSING` - NVSWITCH_ADDRESS_MISSING

        * `NVSWITCH_PRECONDITION_FAILED` - NVSWITCH_PRECONDITION_FAILED

        * `IRONIC_HTTP_INTERNAL_SERVER_ERROR` -
        IRONIC_HTTP_INTERNAL_SERVER_ERROR

        * `IRONIC_SSL_VERSION_ERROR` - IRONIC_SSL_VERSION_ERROR

        * `IRONIC_VIRTUAL_MEDIA_INSPECTION_ERROR` -
        IRONIC_VIRTUAL_MEDIA_INSPECTION_ERROR

        * `IRONIC_NODE_POWER_STATE_ERROR` - IRONIC_NODE_POWER_STATE_ERROR

        * `IRONIC_DRIVER_MISMATCH` - IRONIC_DRIVER_MISMATCH

        * `IRONIC_NODE_CUSTOMER_INSTANCE_ATTACHED` -
        IRONIC_NODE_CUSTOMER_INSTANCE_ATTACHED

        * `IRONIC_NODE_STUCK_IN_ENROLL` - IRONIC_NODE_STUCK_IN_ENROLL

        * `IRONIC_INSPECTFAIL` - IRONIC_INSPECTFAIL

        * `IRONIC_CLEANFAIL` - IRONIC_CLEANFAIL

        * `IRONIC_NODE_LOCKED` - IRONIC_NODE_LOCKED

        * `IRONIC_UEFI_BOOT_MODE_TIMEOUT` - IRONIC_UEFI_BOOT_MODE_TIMEOUT

        * `IRONIC_ENROLLMENT_ACTIVITY_TIMEOUT` -
        IRONIC_ENROLLMENT_ACTIVITY_TIMEOUT

        * `IRONIC_INSPECTION_HARDWARE_VALIDATION_FAILED` -
        IRONIC_INSPECTION_HARDWARE_VALIDATION_FAILED

        * `IRONIC_INSPECTION_TIMEOUT` - IRONIC_INSPECTION_TIMEOUT

        * `IRONIC_INSPECTION_DID_NOT_RUN` - IRONIC_INSPECTION_DID_NOT_RUN

        * `IRONIC_INSPECTION_IPA_IMAGE_NOT_FOUND` -
        IRONIC_INSPECTION_IPA_IMAGE_NOT_FOUND

        * `IRONIC_NODE_POWER_ON_TIMEOUT` - IRONIC_NODE_POWER_ON_TIMEOUT

        * `IRONIC_NODE_UNEXPECTED_PROVISION_STATE` -
        IRONIC_NODE_UNEXPECTED_PROVISION_STATE

        * `IRONIC_ROUTING_UNRESOLVED` - IRONIC_ROUTING_UNRESOLVED

        * `NETBOX_DEVICE_STATUS_INVALID` - NETBOX_DEVICE_STATUS_INVALID

        * `NETBOX_STATUS_UPDATE_FAILED` - NETBOX_STATUS_UPDATE_FAILED

        * `NETBOX_INSPECTION_VALIDATION_CONFIG_MALFORMED` -
        NETBOX_INSPECTION_VALIDATION_CONFIG_MALFORMED

        * `NETBOX_LAG_PARENT_MISSING` - NETBOX_LAG_PARENT_MISSING

        * `NETBOX_CABLE_TOPOLOGY_INVALID` - NETBOX_CABLE_TOPOLOGY_INVALID

        * `NETBOX_INTERFACE_CABLE_MISSING` - NETBOX_INTERFACE_CABLE_MISSING

        * `NETBOX_INTERFACE_MAC_ADDRESS_MISSING` -
        NETBOX_INTERFACE_MAC_ADDRESS_MISSING

        * `PLATFORM_CLASS_UNRESOLVABLE` - PLATFORM_CLASS_UNRESOLVABLE

        * `PLATFORM_CLASS_RECORD_FAILED` - PLATFORM_CLASS_RECORD_FAILED

        * `DHCP_CONFIGURATION_FAILED` - DHCP_CONFIGURATION_FAILED

        * `DHCP_TIMEOUT` - DHCP_TIMEOUT

        * `DHCP_SERVICE_NOT_ACTIVE` - DHCP_SERVICE_NOT_ACTIVE

        * `CABLE_LLDP_VERIFICATION_FAILED` - CABLE_LLDP_VERIFICATION_FAILED

        * `FRONTEND_LINK_DOWN` - FRONTEND_LINK_DOWN

        * `ONEPASSWORD_VAULT_DATA_CONFLICT` - ONEPASSWORD_VAULT_DATA_CONFLICT

        * `CONNECTIVITY_VERIFICATION_ACTIVITY_FAILED` -
        CONNECTIVITY_VERIFICATION_ACTIVITY_FAILED

        * `ENROLLMENT_FINALIZATION_IDENTITY_UNAVAILABLE` -
        ENROLLMENT_FINALIZATION_IDENTITY_UNAVAILABLE

        * `ENROLLMENT_COMPLETION_PROOF_REJECTED` -
        ENROLLMENT_COMPLETION_PROOF_REJECTED

        * `ENROLLMENT_PROOF_MISSING` - ENROLLMENT_PROOF_MISSING

        * `ENROLLMENT_PROOF_UNAVAILABLE` - ENROLLMENT_PROOF_UNAVAILABLE

        * `UNENROLLMENT_RUNTIME_STATE_INVALID` -
        UNENROLLMENT_RUNTIME_STATE_INVALID

        * `UNENROLLMENT_NODE_DEPLOYED_IN_NOVA` -
        UNENROLLMENT_NODE_DEPLOYED_IN_NOVA

        * `UNENROLLMENT_IRONIC_TEARDOWN_FAILED` -
        UNENROLLMENT_IRONIC_TEARDOWN_FAILED

        * `UNENROLLMENT_PLACEMENT_RP_DELETE_FAILED` -
        UNENROLLMENT_PLACEMENT_RP_DELETE_FAILED

        * `UNENROLLMENT_NETBOX_STATUS_UPDATE_FAILED` -
        UNENROLLMENT_NETBOX_STATUS_UPDATE_FAILED

        * `UNENROLLMENT_BMC_FACTORY_RESET_FAILED` -
        UNENROLLMENT_BMC_FACTORY_RESET_FAILED

        * `FIRMWARE_INVENTORY_INVALID_SCOPE` - FIRMWARE_INVENTORY_INVALID_SCOPE

        * `FIRMWARE_INVENTORY_COLLECTION_FAILED` -
        FIRMWARE_INVENTORY_COLLECTION_FAILED

        * `FIRMWARE_VERIFICATION_INVALID_SCOPE` -
        FIRMWARE_VERIFICATION_INVALID_SCOPE

        * `FIRMWARE_VERIFICATION_NON_COMPLIANT` -
        FIRMWARE_VERIFICATION_NON_COMPLIANT

        * `FIRMWARE_VERIFICATION_EVIDENCE_UNAVAILABLE` -
        FIRMWARE_VERIFICATION_EVIDENCE_UNAVAILABLE

        * `FIRMWARE_VERIFICATION_REPORT_UPLOAD_FAILED` -
        FIRMWARE_VERIFICATION_REPORT_UPLOAD_FAILED

        * `FIRMWARE_VERIFICATION_EVIDENCE_PERSISTENCE_CONFLICT` -
        FIRMWARE_VERIFICATION_EVIDENCE_PERSISTENCE_CONFLICT

        * `NODE_DIAGNOSTICS_UNEXPECTED_PROVISION_STATE` -
        NODE_DIAGNOSTICS_UNEXPECTED_PROVISION_STATE

        * `NODE_DIAGNOSTICS_STATE_CHANGED` - NODE_DIAGNOSTICS_STATE_CHANGED

        * `NODE_DIAGNOSTICS_CLASSIFICATION_FAILED` -
        NODE_DIAGNOSTICS_CLASSIFICATION_FAILED

        * `NODE_DIAGNOSTICS_ARTIFACT_UPLOAD_FAILED` -
        NODE_DIAGNOSTICS_ARTIFACT_UPLOAD_FAILED

        * `NODE_DIAGNOSTICS_SUMMARY_WRITE_FAILED` -
        NODE_DIAGNOSTICS_SUMMARY_WRITE_FAILED

        * `POWER_CYCLE_BMC_FAILED` - POWER_CYCLE_BMC_FAILED

        * `MAINTENANCE_MODE_FAILED` - MAINTENANCE_MODE_FAILED

        * `SWITCH_VRF_FLIP_FAILED` - SWITCH_VRF_FLIP_FAILED

        * `SWITCH_VRF_LATCH_WRITE_FAILED` - SWITCH_VRF_LATCH_WRITE_FAILED

        * `SWITCH_VRF_PREFLIGHT_REFUSED` - SWITCH_VRF_PREFLIGHT_REFUSED

        * `NVLINK_PARTITION_FAILED` - NVLINK_PARTITION_FAILED

        * `NVLINK_PARTITION_CONTRACT_FAILED` - NVLINK_PARTITION_CONTRACT_FAILED

        * `NVLINK_PARTITION_INVALID_REQUEST` - NVLINK_PARTITION_INVALID_REQUEST

        * `NVLINK_PARTITION_PREFLIGHT_REFUSED` -
        NVLINK_PARTITION_PREFLIGHT_REFUSED

        * `NVLINK_LATCH_WRITE_FAILED` - NVLINK_LATCH_WRITE_FAILED

        * `BACKEND_VRF_PREFLIGHT_REFUSED` - BACKEND_VRF_PREFLIGHT_REFUSED

        * `BACKEND_VRF_APPLY_REFUSED` - BACKEND_VRF_APPLY_REFUSED

        * `BACKEND_VRF_FLIP_FAILED` - BACKEND_VRF_FLIP_FAILED

        * `BACKEND_VRF_LATCH_WRITE_FAILED` - BACKEND_VRF_LATCH_WRITE_FAILED

        * `SWITCH_LOCK_TIMEOUT` - SWITCH_LOCK_TIMEOUT

        * `SWITCH_LOCK_LOST` - SWITCH_LOCK_LOST

        * `SWITCH_WRITE_UNCONFIRMED` - SWITCH_WRITE_UNCONFIRMED

        * `SLURM_HTTP_BAD_REQUEST` - SLURM_HTTP_BAD_REQUEST

        * `SLURM_HTTP_UNAUTHORIZED` - SLURM_HTTP_UNAUTHORIZED

        * `SLURM_HTTP_FORBIDDEN` - SLURM_HTTP_FORBIDDEN

        * `SLURM_HTTP_SERVICE_UNAVAILABLE` - SLURM_HTTP_SERVICE_UNAVAILABLE

        * `SLURM_NODE_STATE_FAILED` - SLURM_NODE_STATE_FAILED

        * `NODE_SWAP_VALIDATION_FAILED` - NODE_SWAP_VALIDATION_FAILED

        * `TOPOLOGY_SYNC_INTENT_FAILED` - TOPOLOGY_SYNC_INTENT_FAILED
    AIDeviceDiagnosis:
      type: object
      description: Serializer for AIDeviceDiagnosis.
      properties:
        headline:
          type: string
          description: Concise, information-dense summary (max ~80 chars)
        explanation:
          type: string
          description: >-
            Structured explanation with 'Evidence:' section (bulleted quotes
            with sources) and 'Interpretation:' section (1-2 sentences on
            workflow context)
      required:
        - explanation
        - headline
    ComparatorTypeEnum:
      enum:
        - gt
        - lt
        - eq
        - gte
        - lte
      type: string
      description: |-
        * `gt` - gt
        * `lt` - lt
        * `eq` - eq
        * `gte` - gte
        * `lte` - lte
    StatisticEntry:
      type: object
      description: A single statistic value with optional threshold evaluation.
      properties:
        value:
          type: number
          format: double
        evaluation:
          allOf:
            - $ref: '#/components/schemas/ThresholdResult'
          nullable: true
      required:
        - evaluation
        - value
  securitySchemes:
    oauth2:
      type: oauth2
      flows: {}
    cookieAuth:
      type: apiKey
      in: cookie
      name: sessionid

````

This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.