XSKY block-volumes API
BlockVolumeController Operations about Block
BlockVolumeController Operations about Block
Every API here is available over the APIs.io API and to AI agents over MCP.
One button, every client — Claude, Cursor, VS Code and the rest.
https://apis.io/mcp
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.curl "https://apis.io/api/v1/apis/xsky-block-volumes-api"
curl "https://apis.io/api/v1/apis?limit=25"
Discovery needs no key. Ratings and market analysis are Pro.
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: 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