Domino Volumes API

Microservice responsible for managing Domino Volumes for NetApp ONTAP feature v1.0

API Information

General Info

Swagger Version: 2.0
Title: Domino Volumes for NetApp ONTAP Microservice API
Description: Microservice responsible for managing Domino Volumes for NetApp ONTAP feature
Version: 1.0

Contact Information

License

Server Details

Host: (none specified)
BasePath: /domino-netapp-volumes/v1

Endpoints

/filesystems

GET /filesystems

Description: List all filesystems with optional filters and pagination
Consumes: application/json
Produces: application/json
Tags: filesystems
Summary: List filesystems

Parameters
NameLocationTypeDescription

limit

query

integer

Maximum number of results to return

offset

query

integer

Starting index of the returned results

order

query

string

Sort direction (asc or desc)

search

query

string

Search term

sort_by

query

string

Field name to sort by

data_plane_id

query

array (string, multi)

Filter by one or more Data Plane IDs

Responses

200 - OK (Schema: #/definitions/server.PaginatedFilesystems)

400 - Bad Request (Schema: #/definitions/server.HTTPError)

403 - Forbidden (Schema: #/definitions/server.HTTPError)

404 - Not Found (Schema: #/definitions/server.HTTPError)

500 - Internal Server Error (Schema: #/definitions/server.HTTPError)

POST /filesystems

Description: Create a new filesystem
Consumes: application/json
Produces: application/json
Tags: filesystems
Summary: Create a new filesystem

Parameters
NameLocationTypeDescription

request

body (required)

object

Filesystem to create (Schema: #/definitions/server.Filesystem)

Responses

200 - OK (Schema: #/definitions/remotefs.Filesystem)

400 - Bad Request (Schema: #/definitions/server.HTTPError)

403 - Forbidden (Schema: #/definitions/server.HTTPError)

404 - Not Found (Schema: #/definitions/server.HTTPError)

500 - Internal Server Error (Schema: #/definitions/server.HTTPError)

GET /filesystems/{id}

Description: Retrieve a filesystem by its ID
Consumes: application/json
Produces: application/json
Tags: filesystems
Summary: Get a filesystem by ID

Parameters
NameLocationTypeDescription

id

path (required)

string

ID of the filesystem to retrieve

include_hostname

query

boolean

Whether to include the data plane host name in the response

Responses

200 - OK (Schema: #/definitions/remotefs.Filesystem)

400 - Bad Request (Schema: #/definitions/server.HTTPError)

403 - Forbidden (Schema: #/definitions/server.HTTPError)

404 - Not Found (Schema: #/definitions/server.HTTPError)

500 - Internal Server Error (Schema: #/definitions/server.HTTPError)

PUT /filesystems/{id}

Description: Update an existing filesystem
Consumes: application/json
Produces: application/json
Tags: filesystems
Summary: Update filesystem

Parameters
NameLocationTypeDescription

id

path (required)

string

ID of the filesystem to update

request

body (required)

object

Updated filesystem data (Schema: #/definitions/server.Filesystem)

Responses

200 - OK (Schema: #/definitions/remotefs.Filesystem)

400 - Bad Request (Schema: #/definitions/server.HTTPError)

403 - Forbidden (Schema: #/definitions/server.HTTPError)

404 - Not Found (Schema: #/definitions/server.HTTPError)

500 - Internal Server Error (Schema: #/definitions/server.HTTPError)

DELETE /filesystems/{id}

Description: Delete a filesystem by ID
Consumes: application/json
Produces: application/json
Tags: filesystems
Summary: Delete a filesystem

Parameters
NameLocationTypeDescription

id

path (required)

string

ID of the filesystem to delete

Responses

204 - No Content

400 - Bad Request (Schema: #/definitions/server.HTTPError)

403 - Forbidden (Schema: #/definitions/server.HTTPError)

404 - Not Found (Schema: #/definitions/server.HTTPError)

500 - Internal Server Error (Schema: #/definitions/server.HTTPError)

/volumes

GET /volumes

Description: List all volumes with optional filters and pagination
Consumes: application/json
Produces: application/json
Tags: volumes
Summary: List volumes

Parameters
NameLocationTypeDescription

limit

query

integer

Maximum number of items to return

offset

query

integer

Offset for pagination

order

query

string

Sort direction (asc or desc)

sort_by

query

string

Field to sort by

search

query

string

Search term for volume name or ID

data_plane_id

query

array (string, multi)

Filter by Data Plane ID(s)

filesystem_id

query

array (string, multi)

Filter by Filesystem ID(s)

project_id

query

array (string, multi)

Filter by Project ID(s)

show_deleted

query

boolean

Whether to include volumes marked as deleted

Responses

200 - OK (Schema: #/definitions/server.PaginatedVolumes)

400, 403, 404, 500 - Various errors (Schema: #/definitions/server.HTTPError)

POST /volumes

Description: Create a new volume
Consumes: application/json
Produces: application/json
Tags: volumes
Summary: Create a volume

Parameters
NameLocationTypeDescription

request

body (required)

object

Volume creation request (Schema: #/definitions/server.CreateVolumeRequest)

Responses

200 - OK (Schema: #/definitions/remotefs.Volume)

400, 403, 404, 500 - Various errors (Schema: #/definitions/server.HTTPError)

/volumes/{id}

GET /volumes/{id}

Description: Retrieve volume details by ID
Consumes: application/json
Produces: application/json
Tags: volumes
Summary: Get volume by ID

Parameters
NameLocationTypeDescription

id

path (required)

string

ID of the volume

Responses

200 - OK (Schema: #/definitions/remotefs.Volume)

400, 403, 404, 500 - Various errors (Schema: #/definitions/server.HTTPError)

PATCH /volumes/{id}

Description: Update specific fields of a volume
Consumes: application/json
Produces: application/json
Tags: volumes
Summary: Patch volume

Parameters
NameLocationTypeDescription

id

path (required)

string

ID of the volume

request

body (required)

object

Patch request (Schema: #/definitions/server.PatchVolumeRequest)

Responses

200 - OK (Schema: #/definitions/remotefs.Volume)

400, 403, 404, 500 - Various errors (Schema: #/definitions/server.HTTPError)

/volumes/{id}/grants

GET /volumes/{id}/grants

Description: Get user or project grants for a volume
Consumes: application/json
Produces: application/json
Tags: volumes
Summary: List grants for a volume

Parameters
NameLocationTypeDescription

id

path (required)

string

ID of the volume

Responses

200 - OK (Schema: #/definitions/server.Grants)

400, 403, 404, 500 - Various errors (Schema: #/definitions/server.HTTPError)

PUT /volumes/{id}/grants

Description: Replace grants for a volume
Consumes: application/json
Produces: application/json
Tags: volumes
Summary: Set grants for a volume

Parameters
NameLocationTypeDescription

id

path (required)

string

ID of the volume

request

body (required)

object

Grant request (Schema: #/definitions/server.SetGrantsRequest)

Responses

200 - OK (Schema: #/definitions/server.Grants)

400, 403, 404, 500 - Various errors (Schema: #/definitions/server.HTTPError)

/rpc/attach-volume-to-project

POST /rpc/attach-volume-to-project

Description: Attach a volume to a project
Consumes: application/json
Produces: application/json
Tags: volumes
Summary: Attach volume to project

Parameters
NameLocationTypeDescription

request

body (required)

object

Attach request (Schema: #/definitions/server.UpdateVolumeProject)

Responses

204 - No Content (Schema: #/definitions/remotefs.Volume)

400, 403, 404, 500 - Various errors (Schema: #/definitions/server.HTTPError)

/rpc/delete-volume

POST /rpc/delete-volume

Description: Delete a volume by ID
Consumes: application/json
Produces: application/json
Tags: volumes
Summary: Delete volume

Parameters
NameLocationTypeDescription

request

body (required)

object

Volume ID (Schema: #/definitions/server.VolumeIDRequest)

Responses

204 - No Content

400, 403, 404, 500 - Various errors (Schema: #/definitions/server.HTTPError)

/rpc/get-volume-mounts

POST /rpc/get-volume-mounts

Description: Retrieve mounts for volumes and snapshots by project
Consumes: application/json
Produces: application/json
Tags: volumes
Summary: Get volume mounts

Parameters
NameLocationTypeDescription

request

body (required)

object

Volume mount query (Schema: #/definitions/server.ListVolumeMountsRequest)

Responses

200 - OK (Schema: array of #/definitions/remotefs.VolumeMount)

400, 403, 404, 500 - Various errors (Schema: #/definitions/server.HTTPError)

/rpc/mark-volume-for-deletion

POST /rpc/mark-volume-for-deletion

Description: Mark a volume for deletion
Consumes: application/json
Produces: application/json
Tags: volumes
Summary: Mark volume for deletion

Parameters
NameLocationTypeDescription

request

body (required)

object

Volume ID (Schema: #/definitions/server.VolumeIDRequest)

Responses

204 - No Content (Schema: #/definitions/remotefs.Volume)

400, 403, 404, 500 - Various errors (Schema: #/definitions/server.HTTPError)

/rpc/detach-volume-from-project

POST /rpc/detach-volume-from-project

Description: Detach a volume from a project
Consumes: application/json
Produces: application/json
Tags: volumes
Summary: Detach volume from project

Parameters
NameLocationTypeDescription

request

body (required)

object

Detach request (Schema: #/definitions/server.UpdateVolumeProject)

Responses

204 - No Content (Schema: #/definitions/remotefs.Volume)

400, 403, 404, 500 - Various errors (Schema: #/definitions/server.HTTPError)

/rpc/restore-volume

POST /rpc/restore-volume

Description: Restore a volume to active state
Consumes: application/json
Produces: application/json
Tags: volumes
Summary: Restore volume

Parameters
NameLocationTypeDescription

request

body (required)

object

Volume ID (Schema: #/definitions/server.VolumeIDRequest)

Responses

204 - No Content (Schema: #/definitions/remotefs.Volume)

400, 403, 404, 500 - Various errors (Schema: #/definitions/server.HTTPError)

/rpc/check-is-over-limit

POST /rpc/check-is-over-limit

Description: Check whether requesting user is over their volume limit
Consumes: application/json
Produces: application/json
Tags: volumes
Summary: Check volume limit

Responses

200 - OK (Schema: boolean)

400, 403, 404, 500 - Various errors (Schema: #/definitions/server.HTTPError)

/snapshots

GET /snapshots

Description: List all snapshots with optional filters and pagination
Consumes: application/json
Produces: application/json
Tags: snapshots
Summary: List snapshots

Parameters
NameLocationTypeDescription

limit

query

integer

Maximum number of items to return

offset

query

integer

Offset for pagination

order

query

string

Sort direction (asc or desc)

sort_by

query

string

Field to sort by

search

query

string

Search term for snapshot name or ID

volume_id

query

array (string, multi)

Filter by Volume ID(s)

project_id

query

array (string, multi)

Filter by Project ID(s)

show_deleted

query

boolean

Whether to include snapshots marked as deleted

Responses

200 - OK (Schema: #/definitions/server.PaginatedSnapshots)

400, 403, 404, 500 - Various errors (Schema: #/definitions/server.HTTPError)

POST /snapshots

Description: Create a snapshot
Consumes: application/json
Produces: application/json
Tags: snapshots
Summary: Create snapshot

Parameters
NameLocationTypeDescription

request

body (required)

object

Snapshot creation request (Schema: #/definitions/server.CreateSnapshotRequest)

Responses

200 - OK (Schema: #/definitions/remotefs.Snapshot)

400, 403, 404, 500 - Various errors (Schema: #/definitions/server.HTTPError)

/snapshots/{id}

GET /snapshots/{id}

Description: Retrieve snapshot details by ID
Consumes: application/json
Produces: application/json
Tags: snapshots
Summary: Get snapshot by ID

Parameters
NameLocationTypeDescription

id

path (required)

string

Snapshot ID

Responses

200 - OK (Schema: #/definitions/remotefs.Snapshot)

400, 403, 404, 500 - Various errors (Schema: #/definitions/server.HTTPError)

PUT /snapshots/{id}

Description: Update a snapshot’s metadata
Consumes: application/json
Produces: application/json
Tags: snapshots
Summary: Update snapshot

Parameters
NameLocationTypeDescription

id

path (required)

string

Snapshot ID

request

body (required)

object

Patch request (Schema: #/definitions/server.PatchSnapshotRequest)

Responses

200 - OK (Schema: #/definitions/remotefs.Snapshot)

400, 403, 404, 500 - Various errors (Schema: #/definitions/server.HTTPError)

/rpc/delete-snapshot

POST /rpc/delete-snapshot

Description: Delete a snapshot by ID
Consumes: application/json
Produces: application/json
Tags: snapshots
Summary: Delete snapshot

Parameters
NameLocationTypeDescription

request

body (required)

object

Snapshot ID (Schema: #/definitions/server.SnapshotIDRequest)

Responses

204 - No Content

400, 403, 404, 500 - Various errors (Schema: #/definitions/server.HTTPError)

/rpc/restore-snapshot

POST /rpc/restore-snapshot

Description: Restore a snapshot to active state
Consumes: application/json
Produces: application/json
Tags: snapshots
Summary: Restore snapshot

Parameters
NameLocationTypeDescription

request

body (required)

object

Snapshot ID (Schema: #/definitions/server.SnapshotIDRequest)

Responses

204 - No Content (Schema: #/definitions/remotefs.Snapshot)

400, 403, 404, 500 - Various errors (Schema: #/definitions/server.HTTPError)

/account/authz/permissions/authorizedactions

POST /account/authz/permissions/authorizedactions

Description: Get all permissions for the requesting user with optional volume or project context
Consumes: application/json
Produces: application/json
Tags: authz
Summary: Get all authorized actions for the user

Parameters
NameLocationTypeDescription

request

body (required)

object

Permission check input (Schema: #/definitions/server.PermissionRequest)

Responses

200 - OK (Schema: #/definitions/server.PermissionResponse)

400, 403, 404, 500 - #/definitions/server.HTTPError

/account/authz/permissions/volume/{id}

POST /account/authz/permissions/volume/{id}

Description: Check if user has all provided permissions on a volume
Consumes: application/json
Produces: application/json
Tags: authz
Summary: Check volume permissions

Parameters
NameLocationTypeDescription

id

path (required)

string

Volume ID

request

body (required)

object

Permissions to check (Schema: #/definitions/server.VolumePermissionsRequest)

Responses

200 - OK (Schema: boolean)

400, 403, 404, 500 - #/definitions/server.HTTPError

/downloads

POST /downloads

Description: Create a download task that generates an archive from given volume paths
Consumes: application/json
Produces: application/json
Tags: downloads
Summary: Create download archive

Parameters
NameLocationTypeDescription

request

body (required)

object

Archive request (Schema: #/definitions/server.CreateDownloadArchiveRequest)

Responses

200 - OK (Schema: #/definitions/remotefs.FiletaskTask)

400, 403, 404, 500 - #/definitions/server.HTTPError

/downloads/{id}

GET /downloads/{id}

Description: Get status of a download archive task
Consumes: application/json
Produces: application/json
Tags: downloads
Summary: Check archive download status

Parameters
NameLocationTypeDescription

id

path (required)

string

Download task ID

volume_id

query (required)

string

Volume ID of the download

Responses

200 - OK (Schema: #/definitions/remotefs.FiletaskTask)

400, 403, 404, 500 - #/definitions/server.HTTPError

Definitions

remotefs.Volume

Type: object

Properties:
id: string
name: string
capacity: integer
dataPlaneId: string
filesystemId: string
projectId: string
status: remotefs.ResourceStatus
createdBy: remotefs.UserSummary
updatedBy: remotefs.UserSummary
createdAt: string
updatedAt: string
deletedAt: string (nullable)
grants: array of server.Grant

remotefs.Snapshot

Type: object

Properties:
id: string
name: string
volumeId: string
projectId: string
createdBy: remotefs.UserSummary
updatedBy: remotefs.UserSummary
createdAt: string
updatedAt: string
deletedAt: string (nullable)

remotefs.Filesystem

Type: object

Properties:
id: string
name: string
dataPlaneId: string
storageClass: string
rootPvc: string
hostname: string
isDataPlaneDefault: boolean
createdBy: remotefs.UserSummary
updatedBy: remotefs.UserSummary
createdAt: string
updatedAt: string

remotefs.FiletaskTask

Type: object

Properties:
id: string
status: string
archivePath: string
createdAt: string
volumeId: string
requestedBy: remotefs.UserSummary

remotefs.VolumeMount

Type: object

Properties:
projectId: string
volumeId: string
mountPath: string
readOnly: boolean

remotefs.UserSummary

Type: object

Properties:
id: string
username: string
fullName: string

remotefs.ResourceStatus

Type: string

Enum: Active, Deleted, Pending, Failed

server.HTTPError

Type: object

Properties:
message: string
status: integer
errorCode: string
details: object (optional)

server.PermissionRequest

Type: object

Properties:
actions: array of string
context: object
resource: string

server.PermissionResponse

Type: object

Properties:
granted: boolean
missingPermissions: array of string

server.CreateDownloadArchiveRequest

Type: object

Properties:
volumeId: string
paths: array of string

server.CreateVolumeRequest

Type: object

Properties:
name: string
capacity: integer
filesystemId: string
projectId: string

server.CreateSnapshotRequest

Type: object

Properties:
volumeId: string
name: string

server.PatchVolumeRequest

Type: object

Properties:
name: string (optional)
projectId: string (optional)

server.PatchSnapshotRequest

Type: object

Properties:
name: string (optional)

server.VolumeIDRequest

Type: object

Properties:
volumeId: string

server.SnapshotIDRequest

Type: object

Properties:
snapshotId: string

server.UpdateVolumeProject

Type: object

Properties:
volumeId: string
projectId: string

server.SetGrantsRequest

Type: object

Properties:
volumeId: string
grants: array of server.Grant

server.Grant

Type: object

Properties:
entityId: string
entityType: string (e.g. user, project)
accessLevel: string (e.g. read, write, admin)

server.ListVolumeMountsRequest

Type: object

Properties:
projectId: string

server.VolumePermissionsRequest

Type: object

Properties:
volumeId: string
permissions: array of string

server.PaginatedVolumes

Type: object

Properties:
items: array of remotefs.Volume
totalCount: integer

server.PaginatedSnapshots

Type: object

Properties:
items: array of remotefs.Snapshot
totalCount: integer

server.PaginatedFilesystems

Type: object

Properties:
items: array of remotefs.Filesystem
totalCount: integer

Security Definitions

BearerAuth

Type: apiKey
Name: Authorization
In: header