Bulk Detach Volumes

​

Detach multiple volumes from their attached virtual machines in a single request. Each volume detach is handled as its own async workflow job.

Every listed id is checked before any job is created — that it exists, is in your tenant and sits in a resource group you reach (404 otherwise), and that you hold the verb there (403 otherwise). The first refused id, in the order listed, answers for the whole request, records its denied row, and nothing is started. A failure starting a job after every id has passed still rejects the request while jobs already started keep running, so re-read the volumes before retrying.

  • Validates each volume exists, is in your tenant, and sits in a resource group you reach
  • Answers 404 for an id you do not reach, exactly as the single-volume route does, so the batch never confirms a volume you cannot see
  • Creates separate detach jobs for each volume
  • Returns job tracking information for all detach operations

Body·

required
application/json

Request body for bulk operations with UUID-based IDs

  • Array of resource UUIDs (1-50)

Responses

  • application/json
  • application/json
  • application/json
  • application/json
  • application/json
  • application/json
Request Example for post/resource/volumes/bulk/detach
curl https://api.gpcn.com/v1/resource/volumes/bulk/detach \
  --request POST \
  --header 'Content-Type: application/json' \
  --header 'X-API-Key: YOUR_SECRET_TOKEN' \
  --data '{
  "ids": [
    "550e8400-e29b-41d4-a716-446655440000",
    "660e8400-e29b-41d4-a716-446655440001"
  ]
}'
{
  "success": true,
  "message": "string",
  "data": {
    "jobs": [
      {
        "jobId": "123e4567-e89b-12d3-a456-426614174000",
        "resourceType": "virtual_machine",
        "resourceDisplayName": "string",
        "operation": "create",
        "stage": "initializing",
        "progressPercentage": 0,
        "message": "string",
        "errorMessage": "string",
        "estimatedCompletion": "2026-10-21T16:19:07.190Z",
        "timeRemaining": "string",
        "canRetry": true,
        "isCompleted": true,
        "isTerminal": true,
        "hasFailed": true,
        "resourceId": "123e4567-e89b-12d3-a456-426614174000",
        "resourceName": "string",
        "createdAt": "2026-10-21T16:19:07.190Z",
        "updatedAt": "2026-10-21T16:19:07.190Z"
      }
    ]
  },
  "meta": null
}