Lenovo Inventory API

Query inventory of managed devices.

OpenAPI Specification

lenovo-inventory-api-openapi.yml Raw ↑
openapi: 3.1.0
info:
  title: Lenovo XClarity Administrator REST Inventory API
  description: 'Programmatic access to Lenovo XClarity Administrator (LXCA) for managing

    Lenovo servers, storage, and switches. The API surface includes session

    authentication, inventory of managed devices (servers, storage,

    switches, cabinets, canisters), and many other categories (firmware

    updates, OS deployment, events, jobs, configuration patterns).


    Only a representative subset of inventory and session endpoints is

    modeled here, drawn directly from the public XClarity Administrator

    REST API reference. See the documentation links for the full catalog.

    '
  version: 1.0.0
  contact:
    name: Lenovo XClarity Documentation
    url: https://pubs.lenovo.com/lxca_scripting/
  license:
    name: Lenovo Proprietary
servers:
- url: https://{xclarityHost}
  description: Lenovo XClarity Administrator management server
  variables:
    xclarityHost:
      default: lxca.example.com
      description: Hostname or IP address of the XClarity Administrator server
security:
- sessionCookie: []
tags:
- name: Inventory
  description: Query inventory of managed devices.
paths:
  /nodes:
    get:
      tags:
      - Inventory
      summary: List nodes
      description: Retrieve properties for all managed servers and Flex System storage devices.
      operationId: listNodes
      responses:
        '200':
          description: A list of nodes.
          content:
            application/json:
              schema:
                type: object
                properties:
                  nodeList:
                    type: array
                    items:
                      $ref: '#/components/schemas/Node'
  /nodes/{uuid}:
    get:
      tags:
      - Inventory
      summary: Get a node by UUID
      description: Retrieve properties for a specific server.
      operationId: getNode
      parameters:
      - name: uuid
        in: path
        required: true
        description: UUID of the managed node.
        schema:
          type: string
      responses:
        '200':
          description: Node properties.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Node'
        '404':
          description: Node not found.
    put:
      tags:
      - Inventory
      summary: Modify a node
      description: 'Modify properties of a specific server, including operations such as

        turning location LEDs on or off.

        '
      operationId: modifyNode
      parameters:
      - name: uuid
        in: path
        required: true
        description: UUID of the managed node.
        schema:
          type: string
      requestBody:
        required: true
        content:
          application/json:
            schema:
              type: object
              description: Properties to modify on the node.
              additionalProperties: true
      responses:
        '200':
          description: Node updated.
        '404':
          description: Node not found.
  /storage:
    get:
      tags:
      - Inventory
      summary: List storage devices
      description: Retrieve properties for all managed storage devices.
      operationId: listStorage
      responses:
        '200':
          description: A list of storage devices.
          content:
            application/json:
              schema:
                type: object
                properties:
                  storageList:
                    type: array
                    items:
                      type: object
                      additionalProperties: true
  /switches:
    get:
      tags:
      - Inventory
      summary: List switches
      description: Retrieve properties for all managed Flex System and RackSwitch switches.
      operationId: listSwitches
      responses:
        '200':
          description: A list of switches.
          content:
            application/json:
              schema:
                type: object
                properties:
                  switchList:
                    type: array
                    items:
                      type: object
                      additionalProperties: true
  /canisters:
    get:
      tags:
      - Inventory
      summary: List canisters
      description: Retrieve properties and metrics for all Flex System storage controllers (canisters).
      operationId: listCanisters
      responses:
        '200':
          description: A list of canisters.
          content:
            application/json:
              schema:
                type: object
                properties:
                  canisterList:
                    type: array
                    items:
                      type: object
                      additionalProperties: true
  /cabinet:
    get:
      tags:
      - Inventory
      summary: List cabinets
      description: Retrieve properties for all configured cabinets (racks) and the devices placed in them.
      operationId: listCabinets
      responses:
        '200':
          description: A list of cabinets and their device placements.
          content:
            application/json:
              schema:
                type: object
                additionalProperties: true
components:
  schemas:
    Node:
      type: object
      description: A managed server or Flex System storage node.
      properties:
        uuid:
          type: string
          description: Unique identifier of the node.
        name:
          type: string
        machineType:
          type: string
        model:
          type: string
        serialNumber:
          type: string
        status:
          type: object
          additionalProperties: true
      additionalProperties: true
  securitySchemes:
    sessionCookie:
      type: apiKey
      in: cookie
      name: JSESSIONID
      description: 'Session cookie issued by `POST /sessions`. Requests also require

        the `X-Csrf-Token` header populated from the session response.

        '
externalDocs:
  description: Lenovo XClarity Administrator REST API reference
  url: https://pubs.lenovo.com/lxca_scripting/rest_apis