XSKY fs-folders API
FSFolderController provides API for file storage folder
FSFolderController provides API for file storage folder
swagger: '2.0'
info:
description: XMS is the controller of distributed storage system
version: SDS_4.2.000.0.200302
title: XMS access-paths fs-folders API
contact: {}
license:
name: Commercial
basePath: /v1
tags:
- name: fs-folders
description: 'FSFolderController provides API for file storage folder
'
paths:
/fs-folders/:
get:
tags:
- fs-folders
description: List file storage folders
operationId: ListFolders
consumes:
- application/json
produces:
- application/json
parameters:
- name: limit
in: query
description: paging param
required: false
type: integer
format: int64
x-exportParamName: Limit
- name: offset
in: query
description: paging param
required: false
type: integer
format: int64
x-exportParamName: Offset
- name: q
in: query
description: query param of search
required: false
type: string
x-exportParamName: Q
- name: sort
in: query
description: sort param of search
required: false
type: string
x-exportParamName: Sort
- name: fs_user_id
in: query
description: file storage user id
required: false
type: integer
format: int64
x-exportParamName: FsUserId
- name: fs_user_group_id
in: query
description: file storage user group id
required: false
type: integer
format: int64
x-exportParamName: FsUserGroupId
- name: fs_gateway_group_id
in: query
description: file storage gateway group id
required: false
type: integer
format: int64
x-exportParamName: FsGatewayGroupId
- name: fs_snapshot_id
in: query
description: file storage snapshot id
required: false
type: integer
format: int64
x-exportParamName: FsSnapshotId
- name: fs_client_id
in: query
description: file storage client id
required: false
type: integer
format: int64
x-exportParamName: FsClientId
- name: fs_client_group_id
in: query
description: file storage client group id
required: false
type: integer
format: int64
x-exportParamName: FsClientGroupId
- name: pool_id
in: query
description: pool id
required: false
type: integer
format: int64
x-exportParamName: PoolId
responses:
200:
description: OK
schema:
$ref: '#/definitions/FSFoldersResp'
500:
description: InternalServerError
security:
- tokenInQuery: []
- tokenInHeader: []
post:
tags:
- fs-folders
description: Create file storage folder
operationId: CreateFolder
consumes:
- application/json
produces:
- application/json
parameters:
- in: body
name: body
description: folder info
required: true
schema:
$ref: '#/definitions/FSFolderCreateReq'
x-exportParamName: Body
responses:
200:
description: OK
schema:
$ref: '#/definitions/FSFolderResp'
202:
description: Accepted
schema:
$ref: '#/definitions/FSFolderResp'
400:
description: BadRequest
409:
description: Conflict
500:
description: InternalServerError
security:
- tokenInQuery: []
- tokenInHeader: []
/fs-folders/{fs_folder_id}:
get:
tags:
- fs-folders
description: Get file storage folder
operationId: GetFolder
consumes:
- application/json
produces:
- application/json
parameters:
- name: fs_folder_id
in: path
description: folder id
required: true
type: integer
format: int64
x-exportParamName: FsFolderId
responses:
200:
description: OK
schema:
$ref: '#/definitions/FSFolderResp'
404:
description: NotFound
500:
description: InternalServerError
security:
- tokenInQuery: []
- tokenInHeader: []
delete:
tags:
- fs-folders
description: delete file storage folder
operationId: DeleteFolder
consumes:
- application/json
produces:
- application/json
parameters:
- name: force
in: query
description: force delete
required: false
type: boolean
x-exportParamName: Force
- name: fs_folder_id
in: path
description: folder id
required: true
type: integer
format: int64
x-exportParamName: FsFolderId
responses:
202:
description: Accepted
schema:
$ref: '#/definitions/FSFolderResp'
404:
description: NotFound
409:
description: Conflict
500:
description: InternalServerError
security:
- tokenInQuery: []
- tokenInHeader: []
patch:
tags:
- fs-folders
description: Update file storage folder
operationId: UpdateFolder
consumes:
- application/json
produces:
- application/json
parameters:
- name: fs_folder_id
in: path
description: folder id
required: true
type: integer
format: int64
x-exportParamName: FsFolderId
- in: body
name: body
description: folder info
required: true
schema:
$ref: '#/definitions/FSFolderUpdateReq'
x-exportParamName: Body
responses:
202:
description: Accepted
schema:
$ref: '#/definitions/FSFolderResp'
400:
description: BadRequest
404:
description: NotFound
409:
description: Conflict
500:
description: InternalServerError
security:
- tokenInQuery: []
- tokenInHeader: []
/fs-folders/{fs_folder_id}/fs-quota-trees:
put:
tags:
- fs-folders
description: add file storage quota trees
operationId: AddFSQuotaTrees
consumes:
- application/json
produces:
- application/json
parameters:
- name: fs_folder_id
in: path
description: fs folder id
required: true
type: integer
format: int64
x-exportParamName: FsFolderId
- in: body
name: body
description: quota trees info
required: true
schema:
$ref: '#/definitions/FSFolderAddQuotaTreesReq'
x-exportParamName: Body
responses:
202:
description: Accepted
schema:
$ref: '#/definitions/FSFolderResp'
400:
description: BadRequest
404:
description: NotFound
409:
description: Conflict
500:
description: InternalServerError
security:
- tokenInQuery: []
- tokenInHeader: []
delete:
tags:
- fs-folders
description: delete fs quota trees from fs folder
operationId: RemoveFSQuotaTrees
consumes:
- application/json
produces:
- application/json
parameters:
- name: fs_folder_id
in: path
description: fs folder id
required: true
type: integer
format: int64
x-exportParamName: FsFolderId
- in: body
name: body
description: quota trees info
required: true
schema:
$ref: '#/definitions/FSFolderRemoveQuotaTreesReq'
x-exportParamName: Body
responses:
202:
description: Accepted
schema:
$ref: '#/definitions/FSFolderResp'
400:
description: BadRequest
404:
description: NotFound
409:
description: Conflict
500:
description: InternalServerError
security:
- tokenInQuery: []
- tokenInHeader: []
/fs-folders/{fs_folder_id}/samples:
get:
tags:
- fs-folders
description: get a file storage folder's samples
operationId: GetFSFolderSamples
consumes:
- application/json
produces:
- application/json
parameters:
- name: fs_folder_id
in: path
description: file storage folder id
required: true
type: integer
format: int64
x-exportParamName: FsFolderId
- name: duration_begin
in: query
description: duration begin timestamp
required: false
type: string
x-exportParamName: DurationBegin
- name: duration_end
in: query
description: duration end timestamp
required: false
type: string
x-exportParamName: DurationEnd
- name: period
in: query
description: samples period
required: false
type: string
x-exportParamName: Period
responses:
200:
description: OK
schema:
$ref: '#/definitions/FSFolderSamplesResp'
400:
description: BadRequest
404:
description: NotFound
500:
description: InternalServerError
security:
- tokenInQuery: []
- tokenInHeader: []
/fs-folders/{fs_folder_id}:roll-back:
post:
tags:
- fs-folders
description: roll back file storage folder
operationId: RollBackFolder
consumes:
- application/json
produces:
- application/json
parameters:
- name: fs_folder_id
in: path
description: folder id
required: true
type: integer
format: int64
x-exportParamName: FsFolderId
- in: body
name: body
description: folder info
required: true
schema:
$ref: '#/definitions/FSFolderRollBackReq'
x-exportParamName: Body
responses:
202:
description: Accepted
schema:
$ref: '#/definitions/FSFolderResp'
404:
description: NotFound
409:
description: Conflict
500:
description: InternalServerError
security:
- tokenInQuery: []
- tokenInHeader: []
/fs-folders/{fs_folder_id}:set-snapshot-protection:
post:
tags:
- fs-folders
description: Set snapshot protection for a fs folder
operationId: SetFSSnapshotProtection
consumes:
- application/json
produces:
- application/json
parameters:
- name: fs_folder_id
in: path
description: fs folder id in db
required: true
type: integer
format: int64
x-exportParamName: FsFolderId
- in: body
name: body
description: request info
required: true
schema:
$ref: '#/definitions/FSFolderSnapshotProtectionReq'
x-exportParamName: Body
responses:
202:
description: Accepted
schema:
$ref: '#/definitions/FSFolderResp'
400:
description: BadRequest
404:
description: NotFound
409:
description: Conflict
500:
description: InternalServerError
security:
- tokenInQuery: []
- tokenInHeader: []
/fs-folders/{fs_folder_id}:unset-snapshot-protection:
post:
tags:
- fs-folders
description: Unset snapshot protection for a fs folder
operationId: UnsetFSSnapshotProtection
consumes:
- application/json
produces:
- application/json
parameters:
- name: fs_folder_id
in: path
description: fs_folder id in db
required: true
type: integer
format: int64
x-exportParamName: FsFolderId
- name: force
in: query
description: force unset or not
required: false
type: boolean
x-exportParamName: Force
responses:
202:
description: Accepted
schema:
$ref: '#/definitions/FSFolderResp'
400:
description: BadRequest
404:
description: NotFound
409:
description: Conflict
500:
description: InternalServerError
security:
- tokenInQuery: []
- tokenInHeader: []
definitions:
FSFolderUpdateReq:
type: object
required:
- fs_folder
properties:
fs_folder:
$ref: '#/definitions/FSFolderUpdateReq_Folder'
title: FSFolderUpdateReq
FSFolderCreateReq:
type: object
required:
- fs_folder
properties:
fs_folder:
$ref: '#/definitions/FSFolderCreateReq_Folder'
title: FSFolderCreateReq
FSFolderAddQuotaTreesReq:
type: object
required:
- fs_folder
properties:
fs_folder:
$ref: '#/definitions/FSFolderAddQuotaTreesReq_Folder'
title: FSFolderAddQuotaTreesReq
FSFolder:
type: object
properties:
access_path:
$ref: '#/definitions/AccessPath_Nestview'
action_status:
type: string
block_volume:
$ref: '#/definitions/Volume_Nestview'
block_volume_status:
type: string
create:
type: string
format: date-time
description:
type: string
dp_fs_snapshot_policy:
$ref: '#/definitions/DpFSSnapshotPolicy_Nestview'
flattened:
type: boolean
formatted:
type: boolean
fs_gateway_group:
$ref: '#/definitions/FSGatewayGroup'
fs_quota_tree_num:
type: integer
format: int64
fs_snapshot:
$ref: '#/definitions/FSSnapshot_Nestview'
fs_snapshot_num:
type: integer
format: int64
id:
type: integer
format: int64
latest_snapshot_time:
type: string
format: date-time
name:
type: string
pool:
$ref: '#/definitions/Pool_Nestview'
progress:
type: number
format: double
qos:
$ref: '#/definitions/VolumeQosSpec'
qos_enabled:
type: boolean
quota_tree_share_types:
type: array
items:
type: string
quota_tree_shared:
type: boolean
share_types:
type: array
items:
type: string
shared:
type: boolean
description: 'before version 3.2.14, these fields was calculated by wizard, but there is quota
trees in new verion, calculations is too complicated, so add the fields to
folder struct'
size:
type: integer
format: int64
status:
type: string
update:
type: string
format: date-time
title: FSFolder
description: FSFolder defines model of file storage folder
FSFolderRollBackReq_Folder:
type: object
properties:
fs_snapshot_id:
type: integer
format: int64
description: file storage snapshot id
title: FSFolderRollBackReq_Folder
FSFolderStat:
type: object
properties:
create:
type: string
format: date-time
read_bandwidth_kbyte:
type: number
format: double
read_iops:
type: number
format: double
read_latency_us:
type: number
format: double
total_bandwidth_kbyte:
type: number
format: double
total_iops:
type: number
format: double
used_kbyte:
type: number
format: double
write_bandwidth_kbyte:
type: number
format: double
write_iops:
type: number
format: double
write_latency_us:
type: number
format: double
title: FSFolderStat
description: FSFolderStat records file storage folder stat info
example:
used_kbyte: 2.3021358869347655
read_bandwidth_kbyte: 0.8008281904610115
write_bandwidth_kbyte: 7.061401241503109
create: '2000-01-23T04:56:07.000+00:00'
total_bandwidth_kbyte: 5.962133916683182
write_iops: 9.301444243932576
write_latency_us: 3.616076749251911
total_iops: 5.637376656633329
read_latency_us: 1.4658129805029452
read_iops: 6.027456183070403
FSFolderAddQuotaTreesReq_Folder_QuotaTrees_Elt:
type: object
required:
- name
properties:
name:
type: string
description: name of quota tree
size:
type: integer
format: int64
description: size of quota tree
soft_quota_size:
type: integer
format: int64
description: soft quota size of quota tree
title: FSFolderAddQuotaTreesReq_Folder_QuotaTrees_Elt
FSFolderUpdateReq_Folder:
type: object
properties:
description:
type: string
description: description of folder
name:
type: string
description: name of folder
qos:
description: qos of volume
$ref: '#/definitions/VolumeQosSpec'
qos_enabled:
type: boolean
description: enable or disable the qos
size:
type: integer
format: int64
description: size of folder
title: FSFolderUpdateReq_Folder
AccessPath_Nestview:
type: object
properties:
id:
type: integer
format: int64
name:
type: string
title: AccessPath_Nestview
example:
name: name
id: 0
FSFolderSamplesResp:
type: object
properties:
fs_folder_samples:
type: array
items:
$ref: '#/definitions/FSFolderStat'
title: FSFolderSamplesResp
example:
fs_folder_samples:
- used_kbyte: 2.3021358869347655
read_bandwidth_kbyte: 0.8008281904610115
write_bandwidth_kbyte: 7.061401241503109
create: '2000-01-23T04:56:07.000+00:00'
total_bandwidth_kbyte: 5.962133916683182
write_iops: 9.301444243932576
write_latency_us: 3.616076749251911
total_iops: 5.637376656633329
read_latency_us: 1.4658129805029452
read_iops: 6.027456183070403
- used_kbyte: 2.3021358869347655
read_bandwidth_kbyte: 0.8008281904610115
write_bandwidth_kbyte: 7.061401241503109
create: '2000-01-23T04:56:07.000+00:00'
total_bandwidth_kbyte: 5.962133916683182
write_iops: 9.301444243932576
write_latency_us: 3.616076749251911
total_iops: 5.637376656633329
read_latency_us: 1.4658129805029452
read_iops: 6.027456183070403
FSFolderRemoveQuotaTreesReq_Folder:
type: object
properties:
fs_quota_tree_ids:
type: array
description: id array of quota trees
items:
type: integer
format: int64
title: FSFolderRemoveQuotaTreesReq_Folder
FSSnapshot_Nestview:
type: object
properties:
id:
type: integer
format: int64
name:
type: string
title: FSSnapshot_Nestview
example:
name: name
id: 1
FSFolderCreateReq_Folder:
type: object
required:
- name
properties:
description:
type: string
description: description of folder
flattened:
type: boolean
description: flatten or not flatten
fs_snapshot_id:
type: integer
format: int64
description: file storage snapshot id
name:
type: string
description: name of folder
pool_id:
type: integer
format: int64
description: id of pool
qos:
description: qos of volume
$ref: '#/definitions/VolumeQosSpec'
qos_enabled:
type: boolean
description: enable or disable the qos
size:
type: integer
format: int64
description: size of folder
title: FSFolderCreateReq_Folder
FSFolderRemoveQuotaTreesReq:
type: object
required:
- fs_folder
properties:
fs_folder:
$ref: '#/definitions/FSFolderRemoveQuotaTreesReq_Folder'
title: FSFolderRemoveQuotaTreesReq
FSGatewayGroup:
type: object
properties:
action_status:
type: string
create:
type: string
format: date-time
description:
type: string
encoding:
type: string
folder_num:
type: integer
format: int64
id:
type: integer
format: int64
name:
type: string
nfs_versions:
type: array
description: NFS attributes
items:
type: string
port:
type: integer
format: int64
description: FTP attributes
security:
type: string
description: SMB attributes
smb1_enabled:
type: boolean
smb_ports:
type: array
items:
type: integer
format: int64
status:
type: string
types:
type: array
items:
type: string
update:
type: string
format: date-time
user_group_num:
type: integer
format: int64
vip:
type: string
vip_mask:
type: integer
format: int64
title: FSGatewayGroup
description: FSGatewayGroup defines model of file storage gateway group @grpc-models-proto
example:
smb_ports:
- 5
- 5
types:
- types
- types
smb1_enabled: true
description: description
update: '2000-01-23T04:56:07.000+00:00'
vip_mask: 2
encoding: encoding
security: security
port: 1
name: name
create: '2000-01-23T04:56:07.000+00:00'
nfs_versions:
- nfs_versions
- nfs_versions
user_group_num: 5
id: 6
vip: vip
action_status: action_status
folder_num: 0
status: status
FSFolderAddQuotaTreesReq_Folder:
type: object
required:
- fs_quota_trees
properties:
fs_quota_trees:
type: array
items:
$ref: '#/definitions/FSFolderAddQuotaTreesReq_Folder_QuotaTrees_Elt'
title: FSFolderAddQuotaTreesReq_Folder
FSFolderSnapshotProtectionReq_Folder:
type: object
required:
- dp_fs_snapshot_policy_id
properties:
dp_fs_snapshot_policy_id:
type: integer
format: int64
description: id of dp fs snapshot policy
title: FSFolderSnapshotProtectionReq_Folder
FSFolderRollBackReq:
type: object
required:
- fs_folder
properties:
fs_folder:
$ref: '#/definitions/FSFolderRollBackReq_Folder'
title: FSFolderRollBackReq
FSFolderSnapshotProtectionReq:
type: object
required:
- fs_folder
properties:
fs_folder:
$ref: '#/definitions/FSFolderSnapshotProtectionReq_Folder'
title: FSFolderSnapshotProtectionReq
VolumeQosSpec:
type: object
properties:
burst_total_bw:
type: integer
format: int64
burst_total_iops:
type: integer
format: int64
max_total_bw:
type: integer
format: int64
max_total_iops:
type: integer
format: int64
title: VolumeQosSpec
description: VolumeQosSpec is a collection of all qos field
example:
burst_total_iops: 2
max_total_iops: 9
burst_total_bw: 5
max_total_bw: 7
Pool_Nestview:
type: object
properties:
id:
type: integer
format: int64
name:
type: string
title: Pool_Nestview
example:
name: name
id: 5
FSFoldersResp:
type: object
required:
- fs_folders
properties:
fs_folders:
type: array
description: file storage folder records
items:
$ref: '#/definitions/FSFolderRecord'
title: FSFoldersResp
example:
fs_folders:
- ''
- ''
FSFolderResp:
type: object
required:
- fs_folder
properties:
fs_folder:
description: file storage folder records
$ref: '#/definitions/FSFolderRecord'
title: FSFolderResp
example:
fs_folder: ''
FSFolderRecord:
title: FSFolderRecord
allOf:
- $ref: '#/definitions/FSFolder'
- properties:
samples:
type: array
items:
$ref: '#/definitions/FSFolderStat'
description: FSFolderRecord combine FSFolder and FSFolderStat as API response
Volume_Nestview:
type: object
properties:
id:
type: integer
format: int64
name:
type: string
original_name:
type: string
title: Volume_Nestview
example:
original_name: original_name
name: name
id: 9
DpFSSnapshotPolicy_Nestview:
type: object
properties:
id:
type: integer
format: int64
name:
type: string
title: DpFSSnapshotPolicy_Nestview
example:
name: name
id: 0
securityDefinitions:
tokenInHeader:
description: auth by token
type: apiKey
name: Xms-Auth-Token
in: header
tokenInQuery:
description: auth by token
type: apiKey
name: token
in: query