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

# Get firmware policy snapshot

> Return one immutable snapshot and its typed collection operations.



## OpenAPI

````yaml /openapi/fleet-manager-openapi.yaml get /api/v1/firmware-policy-snapshots/{workflow_run_id}/
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/firmware-policy-snapshots/{workflow_run_id}/:
    get:
      tags:
        - Firmware Verification
      summary: Get firmware policy snapshot
      description: Return one immutable snapshot and its typed collection operations.
      operationId: api_v1_firmware_policy_snapshots_retrieve
      parameters:
        - in: path
          name: workflow_run_id
          schema:
            type: string
          required: true
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/FirmwarePolicySnapshot'
          description: ''
        '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'
        '500':
          description: The stored policy snapshot failed integrity validation.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
      security:
        - oauth2:
            - firmware-policy-snapshot:read
        - cookieAuth: []
components:
  schemas:
    FirmwarePolicySnapshot:
      type: object
      properties:
        workflow_run_id:
          type: string
        device_id:
          type: string
          format: uuid
        components:
          type: array
          items:
            $ref: '#/components/schemas/ResolvedFirmwareComponentExpectation'
        snapshot_id:
          type: string
          format: uuid
        switch_admission:
          $ref: '#/components/schemas/SwitchAdmissionSnapshot'
      required:
        - components
        - device_id
        - workflow_run_id
    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'
    ResolvedFirmwareComponentExpectation:
      type: object
      properties:
        component_key:
          type: string
        component_class:
          allOf:
            - $ref: '#/components/schemas/FirmwarePolicyEvidenceComponentClassEnum'
          nullable: true
        expected_versions:
          type: array
          items:
            $ref: '#/components/schemas/ResolvedFirmwareExpectedVersion'
        members:
          type: array
          items:
            $ref: '#/components/schemas/ResolvedFirmwareMemberExpectation'
        collector_admission:
          $ref: '#/components/schemas/FrozenFirmwareCollectorAdmission'
      required:
        - component_key
        - expected_versions
        - members
    SwitchAdmissionSnapshot:
      additionalProperties: false
      description: >-
        Typed admission evidence in the existing immutable topology carrier.


        The immutable snapshot member retains the complete policy payload and
        cache

        observation. This carrier binds those values to the exact switch
        guard/rules.
      properties:
        schema_version:
          title: Schema Version
          allOf:
            - $ref: '#/components/schemas/SwitchAdmissionSchemaVersionEnum'
        applicability_name:
          title: Applicability Name
          allOf:
            - $ref: '#/components/schemas/SwitchApplicabilityNameEnum'
        applicability_version:
          title: Applicability Version
          allOf:
            - $ref: '#/components/schemas/SwitchApplicabilityVersionEnum'
        submission_mode:
          $ref: '#/components/schemas/SwitchSubmissionMode'
        guard:
          $ref: '#/components/schemas/SwitchDeviceGuard'
        cache_id:
          format: uuid
          title: Cache Id
          type: string
        cache_device_id:
          format: uuid
          title: Cache Device Id
          type: string
        cache_netbox_device_id:
          title: Cache Netbox Device Id
          type: integer
        cache_site_id:
          format: uuid
          title: Cache Site Id
          type: string
        fetched_at:
          format: date-time
          title: Fetched At
          type: string
        last_synced_at:
          format: date-time
          title: Last Synced At
          type: string
        freshness_deadline:
          format: date-time
          title: Freshness Deadline
          type: string
        source_updated_at:
          title: Source Updated At
          format: date-time
          type: string
          nullable: true
        source_generated_at:
          title: Source Generated At
          format: date-time
          type: string
          nullable: true
        source_marker:
          title: Source Marker
          type: string
        policy_payload_id:
          format: uuid
          title: Policy Payload Id
          type: string
        policy_id:
          title: Policy Id
          type: string
        digest_contract:
          title: Digest Contract
          type: string
        producer_digest:
          title: Producer Digest
          type: string
        raw_content_hash:
          title: Raw Content Hash
          type: string
        approval_status:
          title: Approval Status
          type: string
        approved_by:
          title: Approved By
          type: string
        approved_date:
          title: Approved Date
          type: string
        selected_role:
          title: Selected Role
          allOf:
            - $ref: '#/components/schemas/SwitchPolicyRoleEnum'
        selected_level:
          title: Selected Level
          type: string
        rules:
          items:
            $ref: '#/components/schemas/SwitchCollectionRule'
          title: Rules
          type: array
        binding_digest:
          title: Binding Digest
          type: string
      required:
        - schema_version
        - applicability_name
        - applicability_version
        - submission_mode
        - guard
        - cache_id
        - cache_device_id
        - cache_netbox_device_id
        - cache_site_id
        - fetched_at
        - last_synced_at
        - freshness_deadline
        - source_updated_at
        - source_generated_at
        - source_marker
        - policy_payload_id
        - policy_id
        - digest_contract
        - producer_digest
        - raw_content_hash
        - approval_status
        - approved_by
        - approved_date
        - selected_role
        - selected_level
        - rules
        - binding_digest
      title: SwitchAdmissionSnapshot
      type: object
    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
    FirmwarePolicyEvidenceComponentClassEnum:
      enum:
        - bmc
        - bios
        - cpu
        - gpu
        - inforom
        - cpld
        - erot
        - fpga
        - pcie_switch
        - retimer
        - nic
        - dpu
        - nvos
        - nvme
        - psu
      type: string
      description: |-
        * `bmc` - BMC
        * `bios` - BIOS
        * `cpu` - CPU
        * `gpu` - GPU
        * `inforom` - INFOROM
        * `cpld` - CPLD
        * `erot` - EROT
        * `fpga` - FPGA
        * `pcie_switch` - PCIE_SWITCH
        * `retimer` - RETIMER
        * `nic` - NIC
        * `dpu` - DPU
        * `nvos` - NVOS
        * `nvme` - NVME
        * `psu` - PSU
    ResolvedFirmwareExpectedVersion:
      type: object
      properties:
        version:
          type: string
        vendor:
          type: string
          nullable: true
        model_name:
          type: string
          nullable: true
      required:
        - model_name
        - vendor
        - version
    ResolvedFirmwareMemberExpectation:
      type: object
      properties:
        member_key:
          type: string
          nullable: true
        probe_path:
          type: string
          nullable: true
        endpoint:
          allOf:
            - $ref: '#/components/schemas/EndpointEnum'
          nullable: true
        field:
          type: string
        collection_method:
          $ref: '#/components/schemas/FirmwareCollectionMethodEnum'
        evidence_authority:
          $ref: '#/components/schemas/FirmwareEvidenceAuthorityEnum'
        collectable:
          type: boolean
        member_role:
          allOf:
            - $ref: '#/components/schemas/NvmeMemberRoleEnum'
          nullable: true
        profile_vendor:
          type: string
          nullable: true
        profile_model_name:
          type: string
          nullable: true
        expected_versions:
          type: array
          items:
            $ref: '#/components/schemas/ResolvedFirmwareExpectedVersion'
        uncollectable_detail:
          type: string
          nullable: true
        uncollectable_reason:
          allOf:
            - $ref: '#/components/schemas/KnownUncollectableReasonEnum'
          nullable: true
      required:
        - collectable
        - collection_method
        - endpoint
        - evidence_authority
        - field
        - member_key
        - probe_path
        - uncollectable_reason
    FrozenFirmwareCollectorAdmission:
      type: object
      properties:
        version:
          type: string
        platform_class:
          type: string
        component_key:
          type: string
        native_family:
          $ref: '#/components/schemas/FirmwareNativeFamilyEnum'
        method:
          $ref: '#/components/schemas/FirmwareCollectionMethodEnum'
        paths:
          type: array
          items:
            type: string
        field:
          type: string
        endpoint:
          type: string
          nullable: true
        evidence_authority:
          $ref: '#/components/schemas/FirmwareEvidenceAuthorityEnum'
        collection_source:
          $ref: '#/components/schemas/FirmwareEvidenceSourceEnum'
        collection_tool:
          type: string
        expected_count:
          type: integer
          minimum: 1
      required:
        - collection_source
        - collection_tool
        - component_key
        - endpoint
        - evidence_authority
        - expected_count
        - field
        - method
        - native_family
        - paths
        - platform_class
        - version
    SwitchAdmissionSchemaVersionEnum:
      type: string
      enum:
        - switch-admission-1.0
    SwitchApplicabilityNameEnum:
      type: string
      enum:
        - netbox_assigned_switch_policy
    SwitchApplicabilityVersionEnum:
      type: string
      enum:
        - v1
    SwitchSubmissionMode:
      enum:
        - DRY_RUN
      title: SwitchSubmissionMode
      type: string
    SwitchDeviceGuard:
      additionalProperties: false
      description: >-
        Identity and configuration facts; site/rack are context, not
        applicability.
      properties:
        device_id:
          format: uuid
          title: Device Id
          type: string
        netbox_device_id:
          title: Netbox Device Id
          type: integer
        organisation_id:
          format: uuid
          title: Organisation Id
          type: string
        role_id:
          format: uuid
          title: Role Id
          type: string
        role_organisation_id:
          format: uuid
          title: Role Organisation Id
          type: string
        role_slug:
          title: Role Slug
          type: string
        device_class:
          title: Device Class
          type: string
        device_type_id:
          format: uuid
          title: Device Type Id
          type: string
        type_organisation_id:
          format: uuid
          title: Type Organisation Id
          type: string
        type_kind:
          title: Type Kind
          type: string
        vendor:
          title: Vendor
          type: string
        model:
          title: Model
          type: string
        inventory_only:
          title: Inventory Only
          type: boolean
        platform_class:
          title: Platform Class
          type: string
        serial:
          title: Serial
          type: string
        site_id:
          format: uuid
          title: Site Id
          type: string
        rack_id:
          title: Rack Id
          format: uuid
          type: string
          nullable: true
      required:
        - device_id
        - netbox_device_id
        - organisation_id
        - role_id
        - role_organisation_id
        - role_slug
        - device_class
        - device_type_id
        - type_organisation_id
        - type_kind
        - vendor
        - model
        - inventory_only
        - platform_class
        - serial
        - site_id
        - rack_id
      title: SwitchDeviceGuard
      type: object
    SwitchPolicyRoleEnum:
      type: string
      enum:
        - nvswitch_tray
    SwitchCollectionRule:
      additionalProperties: false
      description: One required member and its exact producer declaration, frozen by value.
      properties:
        policy_component_key:
          title: Policy Component Key
          type: string
        member_key:
          title: Member Key
          type: string
        expected_versions:
          items:
            type: string
          title: Expected Versions
          type: array
        declaration:
          $ref: '#/components/schemas/SwitchPolicyDeclaration'
        expected_authority:
          $ref: '#/components/schemas/SwitchEvidenceAuthority'
        collection_source:
          title: Collection Source
          type: string
        collection_tool:
          title: Collection Tool
          type: string
        expected_count:
          default: 1
          title: Expected Count
          type: integer
        version:
          default: switch-plan-v1
          title: Version
          type: string
        scheduled:
          default: false
          title: Scheduled
          type: boolean
      required:
        - policy_component_key
        - member_key
        - expected_versions
        - declaration
        - expected_authority
        - collection_source
        - collection_tool
      title: SwitchCollectionRule
      type: object
    EndpointEnum:
      enum:
        - bmc
        - hmc
      type: string
      description: |-
        * `bmc` - BMC
        * `hmc` - HMC
    FirmwareCollectionMethodEnum:
      enum:
        - redfish
        - slurm
      type: string
      description: |-
        * `redfish` - REDFISH
        * `slurm` - SLURM
    FirmwareEvidenceAuthorityEnum:
      enum:
        - bmc_firmware_inventory
        - slurm_nvme_inventory
        - slurm_nic_dpu_running_v1
      type: string
      description: |-
        * `bmc_firmware_inventory` - BMC_FIRMWARE_INVENTORY
        * `slurm_nvme_inventory` - SLURM_NVME_INVENTORY
        * `slurm_nic_dpu_running_v1` - SLURM_NIC_DPU_RUNNING_V1
    NvmeMemberRoleEnum:
      enum:
        - boot
        - data
      type: string
      description: |-
        * `boot` - BOOT
        * `data` - DATA
    KnownUncollectableReasonEnum:
      enum:
        - not_in_firmware_inventory
        - hmc_endpoint_not_supported
        - slurm_identity_not_yet_bridged
        - slurm_nic_dpu_declaration_not_admitted
        - slurm_not_approved_for_device_class
        - target_selector_not_yet_bridged
        - slurm_nvme_member_count_mismatch
        - slurm_nic_dpu_member_layout_mismatch
        - nvme_member_profile_not_found
        - nvme_platform_target_not_declared
      type: string
      description: >-
        * `not_in_firmware_inventory` - NOT_IN_FIRMWARE_INVENTORY

        * `hmc_endpoint_not_supported` - HMC_ENDPOINT_NOT_SUPPORTED

        * `slurm_identity_not_yet_bridged` - SLURM_IDENTITY_NOT_YET_BRIDGED

        * `slurm_nic_dpu_declaration_not_admitted` -
        SLURM_NIC_DPU_DECLARATION_NOT_ADMITTED

        * `slurm_not_approved_for_device_class` -
        SLURM_NOT_APPROVED_FOR_DEVICE_CLASS

        * `target_selector_not_yet_bridged` - TARGET_SELECTOR_NOT_YET_BRIDGED

        * `slurm_nvme_member_count_mismatch` - SLURM_NVME_MEMBER_COUNT_MISMATCH

        * `slurm_nic_dpu_member_layout_mismatch` -
        SLURM_NIC_DPU_MEMBER_LAYOUT_MISMATCH

        * `nvme_member_profile_not_found` - NVME_MEMBER_PROFILE_NOT_FOUND

        * `nvme_platform_target_not_declared` -
        NVME_PLATFORM_TARGET_NOT_DECLARED
    FirmwareNativeFamilyEnum:
      enum:
        - cx7
        - cx8
        - bf3
      type: string
      description: |-
        * `cx7` - CX7
        * `cx8` - CX8
        * `bf3` - BF3
    FirmwareEvidenceSourceEnum:
      enum:
        - bmc_vendor_scan
        - ssh_nvos
        - slurm
        - ironic_cleaning
        - fm_execution_worker
        - observability
        - manual
      type: string
      description: |-
        * `bmc_vendor_scan` - BMC_VENDOR_SCAN
        * `ssh_nvos` - SSH_NVOS
        * `slurm` - SLURM
        * `ironic_cleaning` - IRONIC_CLEANING
        * `fm_execution_worker` - FM_EXECUTION_WORKER
        * `observability` - OBSERVABILITY
        * `manual` - MANUAL
    SwitchPolicyDeclaration:
      additionalProperties: false
      properties:
        method:
          $ref: '#/components/schemas/SwitchCollectionMethod'
        endpoint:
          default: null
          allOf:
            - $ref: '#/components/schemas/EndpointEnum'
          nullable: true
        paths:
          items:
            type: string
          title: Paths
          type: array
        field:
          title: Field
          type: string
        fabric_uniform_required:
          default: null
          title: Fabric Uniform Required
          type: boolean
          nullable: true
      required:
        - method
        - paths
        - field
      title: SwitchPolicyDeclaration
      type: object
    SwitchEvidenceAuthority:
      enum:
        - mgx_redfish_inventory_v1
        - nvos_ssh_json_v1
      title: SwitchEvidenceAuthority
      type: string
    SwitchCollectionMethod:
      enum:
        - redfish
        - ssh
      title: SwitchCollectionMethod
      type: string
  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.