XSKY placement-nodes API

PlacementNodeController provides API for placement node

Operations 5

POST /placement-nodes/ #
GET /placement-nodes/{placement_node_id} #
DELETE /placement-nodes/{placement_node_id} #
PATCH /placement-nodes/{placement_node_id} #
GET /placement-nodes/{placement_node_id}/topology #

Work with this as data

Every API here is available over the APIs.io API and to AI agents over MCP.

MCP server

One button, every client — Claude, Cursor, VS Code and the rest.

https://apis.io/mcp

Tools for apis

7 MCP tools reach this
  • find_apisBrowse and filter every API in the catalog.
  • get_api_artifactsOne API's artifacts, grouped by type.
  • get_openapiThe primary OpenAPI for this API.
  • find_similar_apisAPIs that look like this one.
  • apis_io_searchSTART HERE — APIs, providers and tags for one query, each with its total.
  • resolveTurn a domain, URL or GitHub org into the provider it belongs to.
  • find_cohortsEvery scored population of providers in the catalog.
All 92 tools →

Call it yourself

curl for this page
This API
curl "https://apis.io/api/v1/apis/xsky-placement-nodes-api"
All apis
curl "https://apis.io/api/v1/apis?limit=25"

Discovery needs no key. Ratings and market analysis are Pro.

Get an API key

Free tier, no form to fill in. Signing in shares your email address with us — we store it to create your key and to recognise you if you sign in with another provider. See our Privacy Policy and Terms.

A second provider on the same verified email joins the account you already have.

OpenAPI Specification

xsky-placement-nodes-api-openapi.yml Raw ↑
openapi: 3.2.0
info:
  description: XMS is the controller of distributed storage system
  version: SDS_4.2.000.0.200302
  title: XMS access-paths Placement Nodes API
  contact: {}
  license:
    name: Commercial
servers:
- url: /v1
tags:
- name: placement-nodes
  description: 'PlacementNodeController provides API for placement node

    '
paths:
  /placement-nodes/:
    post:
      tags:
      - placement-nodes
      description: Create placement node
      operationId: CreatePlacementNode
      responses:
        201:
          description: Created
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PlacementNodeResp'
        400:
          description: BadRequest
        500:
          description: InternalServerError
      security:
      - tokenInQuery: []
      - tokenInHeader: []
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/PlacementNodeCreateReq'
        description: placement node info
        required: true
  /placement-nodes/{placement_node_id}:
    get:
      tags:
      - placement-nodes
      description: Get placement node
      operationId: GetPlacementNode
      parameters:
      - name: placement_node_id
        in: path
        description: placement node id
        required: true
        x-exportParamName: PlacementNodeId
        schema:
          type: integer
          format: int64
      responses:
        200:
          description: OK
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PlacementNodeResp'
        404:
          description: NotFound
        500:
          description: InternalServerError
      security:
      - tokenInQuery: []
      - tokenInHeader: []
    delete:
      tags:
      - placement-nodes
      description: delete placement node
      operationId: DeletePlacementNode
      parameters:
      - name: placement_node_id
        in: path
        description: placement node id
        required: true
        x-exportParamName: PlacementNodeId
        schema:
          type: integer
          format: int64
      responses:
        204:
          description: No Content
        404:
          description: NotFound
        409:
          description: Conflict
        500:
          description: InternalServerError
      security:
      - tokenInQuery: []
      - tokenInHeader: []
    patch:
      tags:
      - placement-nodes
      description: update placement node
      operationId: UpdatePlacementNode
      parameters:
      - name: placement_node_id
        in: path
        description: the placement node id
        required: true
        x-exportParamName: PlacementNodeId
        schema:
          type: integer
          format: int64
      responses:
        200:
          description: OK
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PlacementNodeResp'
        400:
          description: BadRequest
        404:
          description: NotFound
        500:
          description: InternalServerError
      security:
      - tokenInQuery: []
      - tokenInHeader: []
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/PlacementNodeUpdateReq'
        description: the placement node info
        required: true
  /placement-nodes/{placement_node_id}/topology:
    get:
      tags:
      - placement-nodes
      description: Get subtree topology of placement node
      operationId: GetPlacementNodeTopology
      parameters:
      - name: placement_node_id
        in: path
        description: placement node id
        required: true
        x-exportParamName: PlacementNodeId
        schema:
          type: integer
          format: int64
      - name: osd_type
        in: query
        description: osd type
        required: false
        x-exportParamName: OsdType
        schema:
          type: string
      - name: osd_role
        in: query
        description: osd role
        required: false
        x-exportParamName: OsdRole
        schema:
          type: string
      - name: with_compound
        in: query
        description: with compound osd
        required: false
        x-exportParamName: WithCompound
        schema:
          type: boolean
      - name: with_hybrid
        in: query
        description: with hybrid osd
        required: false
        x-exportParamName: WithHybrid
        schema:
          type: boolean
      responses:
        200:
          description: OK
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PlacementNodeTopologyResp'
        404:
          description: NotFound
        500:
          description: InternalServerError
      security:
      - tokenInQuery: []
      - tokenInHeader: []
components:
  schemas:
    PlacementNodeProperties:
      type: object
      properties:
        is_witness:
          type: boolean
          description: whether this is a witness node
      title: PlacementNodeProperties
      description: PlacementNodeProperties contains properties for a placement node.
      example:
        is_witness: true
    PlacementNode:
      type: object
      properties:
        create:
          type: string
          format: date-time
          description: time of creating placement node
        id:
          type: integer
          format: int64
          description: id of placement node
        name:
          type: string
          description: name of placement node
        parent:
          description: parent of placement node
          $ref: '#/components/schemas/PlacementNode'
        properties:
          description: properties for this placement node like is_witness
          $ref: '#/components/schemas/PlacementNodeProperties'
        type:
          type: string
          description: type of placement node
        update:
          type: string
          format: date-time
          description: time of updating placement node
      title: PlacementNode
      description: PlacementNode defines a placement node managing a range of hosts
      example:
        parent: null
        name: name
        create: '2000-01-23T04:56:07.000+00:00'
        update: '2000-01-23T04:56:07.000+00:00'
        id: 6
        type: type
        properties:
          is_witness: true
    PlacementNodeCreateReq_PlacementNode:
      type: object
      required:
      - name
      - parent_id
      - type
      properties:
        is_witness:
          type: boolean
        name:
          type: string
        parent_id:
          type: integer
          format: int64
        type:
          type: string
      title: PlacementNodeCreateReq_PlacementNode
      example:
        is_witness: true
        parent_id: 0
        name: name
        type: type
    PlacementNodeUpdateReq_PlacementNode:
      type: object
      required:
      - name
      - parent_id
      properties:
        name:
          type: string
        parent_id:
          type: integer
          format: int64
      title: PlacementNodeUpdateReq_PlacementNode
      example:
        parent_id: 0
        name: name
    PlacementNodeResp:
      type: object
      required:
      - placement_node
      properties:
        placement_node:
          description: placement node
          $ref: '#/components/schemas/PlacementNodeRecord'
      title: PlacementNodeResp
      example:
        placement_node: ''
    PlacementNodeTopology:
      title: PlacementNodeTopology
      allOf:
      - $ref: '#/components/schemas/PlacementNode'
      - properties:
          available_osd_num:
            type: integer
            format: int64
          children:
            type: array
            items:
              $ref: '#/components/schemas/PlacementNodeTopology'
      description: PlacementNodeTopology defines the response content of placement node topology
    PlacementNodeRecord:
      title: PlacementNodeRecord
      allOf:
      - $ref: '#/components/schemas/PlacementNode'
      - {}
    PlacementNodeCreateReq:
      type: object
      properties:
        placement_node:
          $ref: '#/components/schemas/PlacementNodeCreateReq_PlacementNode'
      title: PlacementNodeCreateReq
      example:
        placement_node:
          is_witness: true
          parent_id: 0
          name: name
          type: type
    PlacementNodeUpdateReq:
      type: object
      properties:
        placement_node:
          $ref: '#/components/schemas/PlacementNodeUpdateReq_PlacementNode'
      title: PlacementNodeUpdateReq
      example:
        placement_node:
          parent_id: 0
          name: name
    PlacementNodeTopologyResp:
      type: object
      required:
      - topology
      properties:
        topology:
          description: topology of placement nodes
          $ref: '#/components/schemas/PlacementNodeTopology'
      title: PlacementNodeTopologyResp
      example:
        topology: ''
  securitySchemes:
    tokenInHeader:
      description: auth by token
      type: apiKey
      name: Xms-Auth-Token
      in: header
    tokenInQuery:
      description: auth by token
      type: apiKey
      name: token
      in: query