XSKY block-volumes API

BlockVolumeController Operations about Block

Operations 18

GET /block-volumes/ #
POST /block-volumes/ #
GET /block-volumes/samples #
GET /block-volumes/{block_volume_id} #
DELETE /block-volumes/{block_volume_id} #
PATCH /block-volumes/{block_volume_id} #
GET /block-volumes/{block_volume_id}/samples #
POST /block-volumes/{block_volume_id}:migrate #
POST /block-volumes/{block_volume_id}:rebuild-replication #
POST /block-volumes/{block_volume_id}:set-backup-protection #
POST /block-volumes/{block_volume_id}:set-crc #
POST /block-volumes/{block_volume_id}:set-replication #
POST /block-volumes/{block_volume_id}:set-snapshot-protection #
POST /block-volumes/{block_volume_id}:suspend-replication #
POST /block-volumes/{block_volume_id}:unset-backup-protection #
POST /block-volumes/{block_volume_id}:unset-crc #
POST /block-volumes/{block_volume_id}:unset-replication #
POST /block-volumes/{block_volume_id}:unset-snapshot-protection #

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-block-volumes-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-block-volumes-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 Block Volumes API
  contact: {}
  license:
    name: Commercial
servers:
- url: /v1
tags:
- name: block-volumes
  description: 'BlockVolumeController Operations about Block

    '
paths:
  /block-volumes/:
    get:
      tags:
      - block-volumes
      description: List block volumes
      operationId: ListBlockVolumes
      parameters:
      - name: limit
        in: query
        description: paging param
        required: false
        x-exportParamName: Limit
        schema:
          type: integer
          format: int64
      - name: offset
        in: query
        description: paging param
        required: false
        x-exportParamName: Offset
        schema:
          type: integer
          format: int64
      - name: pool_id
        in: query
        description: The id of the pool volumes belong to
        required: false
        x-exportParamName: PoolId
        schema:
          type: integer
          format: int64
      - name: block_snapshot_id
        in: query
        description: related snapshot id
        required: false
        x-exportParamName: BlockSnapshotId
        schema:
          type: integer
          format: int64
      - name: name
        in: query
        description: name of volume
        required: false
        x-exportParamName: Name
        schema:
          type: string
      - name: client_group_id
        in: query
        description: related client group id
        required: false
        x-exportParamName: ClientGroupId
        schema:
          type: integer
          format: int64
      - name: mapping_group_id
        in: query
        description: related mapping group id
        required: false
        x-exportParamName: MappingGroupId
        schema:
          type: integer
          format: int64
      - name: access_path_id
        in: query
        description: related access path id
        required: false
        x-exportParamName: AccessPathId
        schema:
          type: integer
          format: int64
      - name: passive
        in: query
        description: passive or not
        required: false
        x-exportParamName: Passive
        schema:
          type: boolean
      - name: recycled
        in: query
        description: recycled or not
        required: false
        x-exportParamName: Recycled
        schema:
          type: boolean
      - name: q
        in: query
        description: query param of search
        required: false
        x-exportParamName: Q
        schema:
          type: string
      - name: sort
        in: query
        description: sort param of search
        required: false
        x-exportParamName: Sort
        schema:
          type: string
      - name: all
        in: query
        description: show all volumes
        required: false
        x-exportParamName: All
        schema:
          type: boolean
      - name: dp_block_backup_policy_id
        in: query
        description: show volumes of specific dp block backup policy
        required: false
        x-exportParamName: DpBlockBackupPolicyId
        schema:
          type: integer
          format: int64
      responses:
        200:
          description: OK
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/VolumesResp'
        400:
          description: BadRequest
        500:
          description: InternalServerError
      security:
      - tokenInQuery: []
      - tokenInHeader: []
    post:
      tags:
      - block-volumes
      description: Create block volume
      operationId: CreateBlockVolume
      responses:
        202:
          description: Accepted
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/VolumeResp'
        400:
          description: BadRequest
        500:
          description: InternalServerError
      security:
      - tokenInQuery: []
      - tokenInHeader: []
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/VolumeCreateReq'
        description: volume info
        required: true
  /block-volumes/samples:
    get:
      tags:
      - block-volumes
      description: Get samples of multiple block volumes
      operationId: BatchGetBlockVolumeSamples
      responses:
        200:
          description: OK
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/MultiVolumesSamplesResp'
        400:
          description: BadRequest
        404:
          description: NotFound
        500:
          description: InternalServerError
      security:
      - tokenInQuery: []
      - tokenInHeader: []
  /block-volumes/{block_volume_id}:
    get:
      tags:
      - block-volumes
      description: get a block volume
      operationId: GetBlockVolume
      parameters:
      - name: block_volume_id
        in: path
        description: block volume id
        required: true
        x-exportParamName: BlockVolumeId
        schema:
          type: integer
          format: int64
      responses:
        200:
          description: OK
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/VolumeResp'
        404:
          description: NotFound
        500:
          description: InternalServerError
      security:
      - tokenInQuery: []
      - tokenInHeader: []
    delete:
      tags:
      - block-volumes
      description: Delete block volume
      operationId: DeleteBlockVolume
      parameters:
      - name: block_volume_id
        in: path
        description: volume id
        required: true
        x-exportParamName: BlockVolumeId
        schema:
          type: integer
          format: int64
      - name: bypass_trash
        in: query
        description: bypass trash or not
        required: false
        x-exportParamName: BypassTrash
        schema:
          type: boolean
      responses:
        202:
          description: Accepted
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/VolumeResp'
        400:
          description: BadRequest
        404:
          description: NotFound
        500:
          description: InternalServerError
      security:
      - tokenInHeader: []
      - tokenInQuery: []
    patch:
      tags:
      - block-volumes
      description: Update block volume info
      operationId: UpdateBlockVolume
      parameters:
      - name: block_volume_id
        in: path
        description: the block volume id
        required: true
        x-exportParamName: BlockVolumeId
        schema:
          type: integer
          format: int64
      responses:
        200:
          description: OK
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/VolumeResp'
        400:
          description: BadRequest
        404:
          description: NotFound
        500:
          description: InternalServerError
      security:
      - tokenInHeader: []
      - tokenInQuery: []
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/VolumeUpdateReq'
        description: volume info
        required: true
  /block-volumes/{block_volume_id}/samples:
    get:
      tags:
      - block-volumes
      description: get a block volume's Samples
      operationId: GetBlockVolumeSamples
      parameters:
      - name: block_volume_id
        in: path
        description: block volume id
        required: true
        x-exportParamName: BlockVolumeId
        schema:
          type: integer
          format: int64
      - name: duration_begin
        in: query
        description: duration begin timestamp
        required: false
        x-exportParamName: DurationBegin
        schema:
          type: string
      - name: duration_end
        in: query
        description: duration end timestamp
        required: false
        x-exportParamName: DurationEnd
        schema:
          type: string
      - name: period
        in: query
        description: samples period
        required: false
        x-exportParamName: Period
        schema:
          type: string
      responses:
        200:
          description: OK
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/VolumeSamplesResp'
        400:
          description: BadRequest
        404:
          description: NotFound
        500:
          description: InternalServerError
      security:
      - tokenInQuery: []
      - tokenInHeader: []
  /block-volumes/{block_volume_id}:migrate:
    post:
      tags:
      - block-volumes
      operationId: MigrateBlockVolume
      parameters:
      - name: block_volume_id
        in: path
        description: the block volume id
        required: true
        x-exportParamName: BlockVolumeId
        schema:
          type: integer
          format: int64
      responses:
        202:
          description: Accepted
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/VolumeResp'
        400:
          description: BadRequest
        404:
          description: NotFound
        409:
          description: Conflict
        500:
          description: InternalServerError
      security:
      - tokenInQuery: []
      - tokenInHeader: []
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/VolumeMigrateReq'
        description: volume migration info
        required: true
  /block-volumes/{block_volume_id}:rebuild-replication:
    post:
      tags:
      - block-volumes
      description: Rebuild block volume replication
      operationId: RebuildBlockVolumeReplication
      parameters:
      - name: block_volume_id
        in: path
        description: block volume id
        required: true
        x-exportParamName: BlockVolumeId
        schema:
          type: integer
          format: int64
      - name: force
        in: query
        description: force rebuild or not
        required: false
        x-exportParamName: Force
        schema:
          type: boolean
      responses:
        202:
          description: OK
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/VolumeResp'
        400:
          description: BadRequest
        404:
          description: NotFound
        409:
          description: Conflict
        500:
          description: InternalServerError
      security:
      - tokenInQuery: []
      - tokenInHeader: []
  /block-volumes/{block_volume_id}:set-backup-protection:
    post:
      tags:
      - block-volumes
      description: Set backup protection for a block volume
      operationId: SetBackupProtection
      parameters:
      - name: block_volume_id
        in: path
        description: the block volume id
        required: true
        x-exportParamName: BlockVolumeId
        schema:
          type: integer
          format: int64
      responses:
        202:
          description: Accepted
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/VolumeResp'
        400:
          description: BadRequest
        404:
          description: NotFound
        500:
          description: InternalServerError
      security:
      - tokenInQuery: []
      - tokenInHeader: []
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/VolumeBackupProtectionReq'
        description: request info
        required: true
  /block-volumes/{block_volume_id}:set-crc:
    post:
      tags:
      - block-volumes
      description: Set block volume crc
      operationId: SetBlockVolumeCrc
      parameters:
      - name: block_volume_id
        in: path
        description: block volume id
        required: true
        x-exportParamName: BlockVolumeId
        schema:
          type: integer
          format: int64
      responses:
        200:
          description: OK
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/VolumeResp'
        202:
          description: Accepted
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/VolumeResp'
        400:
          description: BadRequest
        404:
          description: NotFound
        500:
          description: InternalServerError
      security:
      - tokenInQuery: []
      - tokenInHeader: []
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/VolumeCrcSetReq'
        description: volume crc info
        required: true
  /block-volumes/{block_volume_id}:set-replication:
    post:
      tags:
      - block-volumes
      description: Set block volume replication
      operationId: SetBlockVolumeReplication
      parameters:
      - name: block_volume_id
        in: path
        description: block volume id
        required: true
        x-exportParamName: BlockVolumeId
        schema:
          type: integer
          format: int64
      responses:
        202:
          description: OK
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/VolumeResp'
        400:
          description: BadRequest
        404:
          description: NotFound
        409:
          description: Conflict
        500:
          description: InternalServerError
      security:
      - tokenInQuery: []
      - tokenInHeader: []
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/VolumeReplicationSetReq'
        description: volume replication info
        required: true
  /block-volumes/{block_volume_id}:set-snapshot-protection:
    post:
      tags:
      - block-volumes
      description: Set snapshot protection for a block volume
      operationId: SetSnapshotProtection
      parameters:
      - name: block_volume_id
        in: path
        description: the block volume id
        required: true
        x-exportParamName: BlockVolumeId
        schema:
          type: integer
          format: int64
      responses:
        202:
          description: Accepted
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/VolumeResp'
        400:
          description: BadRequest
        404:
          description: NotFound
        500:
          description: InternalServerError
      security:
      - tokenInQuery: []
      - tokenInHeader: []
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/VolumeSnapshotProtectionReq'
        description: request info
        required: true
  /block-volumes/{block_volume_id}:suspend-replication:
    post:
      tags:
      - block-volumes
      description: Suspend block volume replication
      operationId: SuspendBlockVolumeReplication
      parameters:
      - name: block_volume_id
        in: path
        description: block volume id
        required: true
        x-exportParamName: BlockVolumeId
        schema:
          type: integer
          format: int64
      responses:
        202:
          description: OK
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/VolumeResp'
        400:
          description: BadRequest
        404:
          description: NotFound
        409:
          description: Conflict
        500:
          description: InternalServerError
      security:
      - tokenInQuery: []
      - tokenInHeader: []
  /block-volumes/{block_volume_id}:unset-backup-protection:
    post:
      tags:
      - block-volumes
      description: Unset backup protection for a block volume
      operationId: UnsetBackupProtection
      parameters:
      - name: block_volume_id
        in: path
        description: the block volume id
        required: true
        x-exportParamName: BlockVolumeId
        schema:
          type: integer
          format: int64
      - name: force
        in: query
        description: force unset or not
        required: false
        x-exportParamName: Force
        schema:
          type: boolean
      responses:
        202:
          description: Accepted
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/VolumeResp'
        400:
          description: BadRequest
        404:
          description: NotFound
        500:
          description: InternalServerError
      security:
      - tokenInQuery: []
      - tokenInHeader: []
  /block-volumes/{block_volume_id}:unset-crc:
    post:
      tags:
      - block-volumes
      description: Unset block volume crc
      operationId: UnsetBlockVolumeCrc
      parameters:
      - name: block_volume_id
        in: path
        description: block volume id
        required: true
        x-exportParamName: BlockVolumeId
        schema:
          type: integer
          format: int64
      responses:
        200:
          description: OK
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/VolumeResp'
        202:
          description: Accepted
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/VolumeResp'
        400:
          description: BadRequest
        404:
          description: NotFound
        500:
          description: InternalServerError
      security:
      - tokenInQuery: []
      - tokenInHeader: []
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/VolumeCrcSetReq'
        description: volume crc info
        required: true
  /block-volumes/{block_volume_id}:unset-replication:
    post:
      tags:
      - block-volumes
      description: Unset block volume replication
      operationId: SetBlockVolumeReplication
      parameters:
      - name: block_volume_id
        in: path
        description: block volume id
        required: true
        x-exportParamName: BlockVolumeId
        schema:
          type: integer
          format: int64
      responses:
        202:
          description: OK
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/VolumeResp'
        400:
          description: BadRequest
        404:
          description: NotFound
        409:
          description: Conflict
        500:
          description: InternalServerError
      security:
      - tokenInQuery: []
      - tokenInHeader: []
  /block-volumes/{block_volume_id}:unset-snapshot-protection:
    post:
      tags:
      - block-volumes
      description: Unset snapshot protection for a block volume
      operationId: UnsetSnapshotProtection
      parameters:
      - name: block_volume_id
        in: path
        description: the block volume id
        required: true
        x-exportParamName: BlockVolumeId
        schema:
          type: integer
          format: int64
      - name: force
        in: query
        description: force unset or not
        required: false
        x-exportParamName: Force
        schema:
          type: boolean
      responses:
        202:
          description: Accepted
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/VolumeResp'
        400:
          description: BadRequest
        404:
          description: NotFound
        500:
          description: InternalServerError
      security:
      - tokenInHeader: []
      - tokenInQuery: []
components:
  schemas:
    VolumeReplicationSetReq_Volume:
      type: object
      required:
      - dest_pool_id
      - dest_volume_name
      - dp_block_replication_policy_id
      properties:
        dest_pool_id:
          type: integer
          format: int64
          description: destination pool id
        dest_volume_name:
          type: string
          description: destination volume name
        dp_block_replication_policy_id:
          type: integer
          format: int64
          description: block replication policy id
      title: VolumeReplicationSetReq_Volume
      example:
        dest_pool_id: 0
        dest_volume_name: dest_volume_name
        dp_block_replication_policy_id: 6
    Volume:
      type: object
      properties:
        access_path:
          $ref: '#/components/schemas/AccessPath_Nestview'
        action_status:
          type: string
        allocated_size:
          type: integer
          format: int64
        block_snapshot_num:
          type: integer
          format: int64
        block_volume_group:
          $ref: '#/components/schemas/VolumeGroup_Nestview'
        client_group_num:
          type: integer
          format: int64
        cloud_platform:
          $ref: '#/components/schemas/CloudPlatform_Nestview'
        crc_check:
          type: boolean
        create:
          type: string
          format: date-time
        description:
          type: string
        dp_block_backup_policy_num:
          type: integer
          format: int64
        dp_block_replication_policy:
          $ref: '#/components/schemas/DpBlockReplicationPolicy_Nestview'
        dp_block_snapshot_policy:
          $ref: '#/components/schemas/DpBlockSnapshotPolicy_Nestview'
        flattened:
          type: boolean
        format:
          type: integer
          format: int64
          description: 128 or 129 (advanced)
        hidden:
          type: boolean
        id:
          type: integer
          format: int64
        image_id:
          type: string
        latest_snapshot_time:
          type: string
          format: date-time
        migration_stripes:
          type: integer
          format: int64
        name:
          type: string
        original_name:
          type: string
        original_volume_name:
          type: string
        passive:
          type: boolean
        performance_priority:
          type: integer
          format: int64
          description: 0 or 1
        pool:
          $ref: '#/components/schemas/Pool_Nestview'
        progress:
          type: number
          format: double
        qos:
          $ref: '#/components/schemas/VolumeQosSpec'
        qos_enabled:
          type: boolean
        recycled:
          type: boolean
          description: trash
        remote_cluster:
          description: the volume is replicated from a remote cluster, via snapshot or IO
          $ref: '#/components/schemas/RemoteCluster_Nestview'
        replication_dest:
          type: string
        replication_pool:
          type: string
        replication_pool_id:
          type: integer
          format: int64
        replication_pool_name:
          type: string
        replication_role:
          type: string
        replication_status:
          type: string
        replication_version:
          type: integer
          format: int64
        replication_volume:
          type: string
        replication_volume_id:
          type: integer
          format: int64
        replication_volume_name:
          type: string
        size:
          type: integer
          format: int64
        sn:
          type: string
        snapshot:
          $ref: '#/components/schemas/Snapshot_Nestview'
        snapshot_replication_pool:
          type: string
        snapshot_replication_pool_id:
          type: integer
          format: int64
        snapshot_replication_role:
          type: string
        snapshot_replication_status:
          type: string
        snapshot_replication_volume:
          type: string
        snapshot_replication_volume_id:
          type: integer
          format: int64
        status:
          type: string
        trash_resource:
          $ref: '#/components/schemas/TrashResource_Nestview'
        update:
          type: string
          format: date-time
        volume_name:
          type: string
      title: Volume
      description: Volume is the corresponding rbd image @grpc-models-proto
    VolumeMigrateReq_Volume:
      type: object
      required:
      - dest_pool_id
      properties:
        dest_pool_id:
          type: integer
          format: int64
          description: migrate destination pool
        migration_stripes:
          type: integer
          format: int64
      title: VolumeMigrateReq_Volume
      example:
        dest_pool_id: 0
        migration_stripes: 6
    TrashResource_Nestview:
      type: object
      properties:
        create:
          type: string
          format: date-time
        expire_time:
          type: string
          format: date-time
        id:
          type: integer
          format: int64
        resource_id:
          type: integer
          format: int64
        resource_type:
          type: string
      title: TrashResource_Nestview
    DpBlockSnapshotPolicy_Nestview:
      type: object
      properties:
        id:
          type: integer
          format: int64
        name:
          type: string
      title: DpBlockSnapshotPolicy_Nestview
      example:
        name: name
        id: 6
    VolumeReplicationSetReq:
      type: object
      properties:
        block_volume:
          $ref: '#/components/schemas/VolumeReplicationSetReq_Volume'
      title: VolumeReplicationSetReq
      example:
        block_volume:
          dest_pool_id: 0
          dest_volume_name: dest_volume_name
          dp_block_replication_policy_id: 6
    VolumeUpdateReq:
      type: object
      required:
      - block_volume
      properties:
        block_volume:
          $ref: '#/components/schemas/VolumeUpdateReq_Volume'
      title: VolumeUpdateReq
      example:
        block_volume:
          flattened: true
          performance_priority: 6
          qos:
            burst_total_iops: 2
            max_total_iops: 9
            burst_total_bw: 5
            max_total_bw: 7
          size: 1
          block_snapshot_id: 0
          name: name
          action: action
          description: description
          qos_enabled: true
    VolumeGroup_Nestview:
      type: object
      properties:
        id:
          type: integer
          format: int64
        name:
          type: string
      title: VolumeGroup_Nestview
      example:
        name: name
        id: 6
    VolumesResp:
      type: object
      required:
      - block_volumes
      properties:
        block_volumes:
          type: array
          description: volumes
          items:
            $ref: '#/components/schemas/VolumeRecord'
      title: VolumesResp
      example:
        block_volumes:
        - ''
        - ''
    VolumeSnapshotProtectionReq:
      type: object
      properties:
        block_volume:
          $ref: '#/components/schemas/VolumeSnapshotProtectionReq_Volume'
      title: VolumeSnapshotProtectionReq
      example:
        block_volume:
          dest_pool_id: 0
          dest_volume_name: dest_volume_name
          dp_block_snapshot_policy_id: 6
    VolumeFailedTask:
      type: object
      properties:
        abort:
          type: number
          format: double
        busy:
          type: number
          format: double
        check_cond:
          type: number
          format: double
        resv_conflict:
          type: number
          format: double
      title: VolumeFailedTask
      example:
        abort: 7.061401241503109
        busy: 9.301444243932576
        check_cond: 3.616076749251911
        resv_conflict: 2.027123023002322
    Pool_Nestview:
      type: object
      properties:
        id:
          type: integer
          format: int64
        name:
          type: string
      title: Pool_Nestview
      example:
        name: name
        id: 5
    Snapshot_Nestview:
      type: object
      properties:
        id:
          type: integer
          format: int64
        name:
          type: string
      title: Snapshot_Nestview
      example:
        name: name
        id: 0
    RemoteCluster_Nestview:
      type: object
      properties:
        fs_id:
          type: string
        id:
          type: integer
          format: int64
        name:
          type: string
        url:
          type: string
      title: RemoteCluster_Nestview
      example:
        name: name
        id: 2
        fs_id: fs_id
        url: url
    VolumeBackupProtectionReq_Volume:
      type: object
      required:
      - dp_block_backup_policy_id
      properties:
        dp_block_backup_policy_id:
          type: integer
          format: int64
          description: policy
      title: VolumeBackupProtectionReq_Volume
      example:
        dp_block_backup_policy_id: 0
    VolumeIOSize:
      type: object
      properties:
        0_4kbyte:
          type: number
          format: double
        32_64kbyte:
          type: number
          format: double
        4_8kbyte:
          type: number
          format: double
        64_512kbyte:
          type: number
          format: double
        8_32kbyte:
          type: number
          format: double
        above_512kbyte:
          type: number
          format: double
      title: VolumeIOSize
      example:
        8_32kbyte: 1.4894159098541704
        0_4kbyte: 4.145608029883936
        32_64kbyte: 7.386281948385884
        4_8kbyte: 1.2315135367772556
        above_512kbyte: 6.84685269835264
        64_512kbyte: 1.0246457001441578
    VolumeCreateReq_Volume:
      type: object
      required:
      - name
      - pool_id
      properties:
        block_snapshot_id:
          type: integer
          format: int64
          description: id of related block volume snapshot
        crc_check:
          type: boolean
          description: crc check or not
        description:
          type: string
          description: description of volume
        flattened:
          type: boolean
          description: flatten or not flatten
        format:
          type: integer
          format: int64
          description: 'volume format: { 128 | 129 (advanced) }, default 128'
        name:
          type: string
          description: name of volume
        performance_priority:
          type: integer
          format: int64
          description: 'performance priority: { 0 | 1 }, default 0'
        pool_id:
          type: integer
          format: int64
          description: id of pool belonged to
        qos:
          description: qos of volume
          $ref: '#/components/schemas/VolumeQosSpec'
        qos_enabled:
          type: boolean
          description: enable or disable the qos
        remote_cluster_fs_id:
          type: string
          description: replication remote cluster fsid
        replication_pool:
          type: string
          description: replication peer pool
        replication_pool_id:
          type: integer
          format: int64
          description: replication peer pool id
        replication_pool_name:
          type: string
          description: replication peer pool name
        replication_version:
          type: integer
          format: int64
          description: replication version
        replication_volume:
          type: string
          description: replication peer volume
        replication_volume_id:
          type: integer
          format: int64
          description: replication peer volume id
        replication_volume_name:
          type: string
          description: replication peer volume name
        size:
          type: integer
          format: int64
          description: size of volume
        sn:
          type: string
          description: volume sn, used when creating replication volume
        snapshot_replication_pool:
          type: string
          description: snapshot replication peer pool
        snapshot_replication_pool_id:
          type: integer
          format: int64
          description: snapshot replication peer pool id
        snapshot_replication_volume:
          type: string
          description: snapshot replication peer volume
        snapshot_replication_

# --- truncated at 32 KB (55 KB total) ---
# Full source: https://raw.githubusercontent.com/api-evangelist/xsky/refs/heads/main/openapi/xsky-block-volumes-api-openapi.yml