From eae1555721a002bf1017b06e0bed9c80b052fe4c Mon Sep 17 00:00:00 2001
From: Pascal Bleser
Date: Tue, 10 Nov 2026 13:06:37 +0100
Subject: [PATCH] feat(drives): add the v1beta1 endpoints for a single drive
Clients could only list drives under v1beta1. Getting, creating,
updating and deleting a single drive was only possible under v1.0,
which returns the permissions of a drive with the old role names
instead of the IDs of the unified roles.
Add CreateDriveBeta (POST /v1beta1/drives) and GetDriveBeta,
UpdateDriveBeta and DeleteDriveBeta (/v1beta1/drives/{drive-id}). They
take the same requests as their v1.0 counterparts, and return drives
in the v1beta1 format, like ListAllDrivesBeta. GetDriveBeta also
documents $expand, to get the permissions of the drive's root.
Assisted-by: Claude Code:claude-opus-5-5
---
api/openapi-spec/v1.0.yaml | 140 +++++++++++++++++++++++++++++++++++++
1 file changed, 140 insertions(+)
diff --git a/api/openapi-spec/v1.0.yaml b/api/openapi-spec/v1.0.yaml
index 14cecdd..a2ca127 100644
--- a/api/openapi-spec/v1.0.yaml
+++ b/api/openapi-spec/v1.0.yaml
@@ -737,6 +737,146 @@ paths:
default:
$ref: '#/components/responses/error'
x-ms-docs-operation-type: operation
+ post:
+ tags:
+ - drives
+ summary: Alias for creating a drive with '/v1.0/drives', but the new drive is returned in the v1beta1 format, with grantedToV2 and unified role IDs in its permissions
+ operationId: CreateDriveBeta
+ requestBody:
+ description: New space property values
+ content:
+ application/json:
+ schema:
+ $ref: '#/components/schemas/drive'
+ examples:
+ multiple values:
+ value:
+ name: Mars
+ quota:
+ total: 1000000000
+ description: Team space mars project
+ minimal:
+ value:
+ name: Venus
+ required: true
+ responses:
+ '201':
+ description: Created
+ content:
+ application/json:
+ schema:
+ $ref: '#/components/schemas/drive'
+ default:
+ $ref: '#/components/responses/error'
+ x-ms-docs-operation-type: operation
+ '/v1beta1/drives/{drive-id}':
+ get:
+ tags:
+ - drives
+ summary: Alias for '/v1.0/drives/{drive-id}', but the drive is returned in the v1beta1 format, with grantedToV2 and unified role IDs in its permissions
+ operationId: GetDriveBeta
+ parameters:
+ - name: drive-id
+ in: path
+ description: 'key: id of drive'
+ required: true
+ schema:
+ type: string
+ x-ms-docs-key-type: drive
+ - $ref: '#/components/parameters/drivesExpand'
+ - $ref: '#/components/parameters/drivesSelect'
+ responses:
+ '200':
+ description: Retrieved drive
+ content:
+ application/json:
+ schema:
+ $ref: '#/components/schemas/drive'
+ links:
+ root:
+ operationId: GetRoot
+ parameters:
+ drive-id: $request.path.drive-id
+ default:
+ $ref: '#/components/responses/error'
+ x-ms-docs-operation-type: operation
+ patch:
+ tags:
+ - drives
+ summary: Alias for updating a drive with '/v1.0/drives/{drive-id}', but the updated drive is returned in the v1beta1 format, with grantedToV2 and unified role IDs in its permissions
+ operationId: UpdateDriveBeta
+ parameters:
+ - name: drive-id
+ in: path
+ description: 'key: id of drive'
+ required: true
+ schema:
+ type: string
+ x-ms-docs-key-type: drive
+ requestBody:
+ description: New space values
+ content:
+ application/json:
+ schema:
+ $ref: '#/components/schemas/driveUpdate'
+ examples:
+ change quota:
+ value:
+ quota:
+ total: 1000000000
+ change name:
+ value:
+ name: Physics
+ change description:
+ value:
+ description: Marketing team collaboration area
+ change drive image:
+ value:
+ special:
+ id: 408f26e3-d6d8-4aa4-bd5c-3fd6f5032b51$aba2bafc-e1a0-421e-a37a-9acf5f655f83!14fd3432-e8d9-42a7-9446-2e3fd621afca
+ specialFolder:
+ name: image
+ change drive readme:
+ value:
+ special:
+ id: 408f26e3-d6d8-4aa4-bd5c-3fd6f5032b51$aba2bafc-e1a0-421e-a37a-9acf5f655f83!14fd3432-e8d9-42a7-9446-2e3fd621afca
+ specialFolder:
+ name: readme
+ required: true
+ responses:
+ '200':
+ description: Success
+ content:
+ application/json:
+ schema:
+ $ref: '#/components/schemas/drive'
+ default:
+ $ref: '#/components/responses/error'
+ x-ms-docs-operation-type: operation
+ delete:
+ tags:
+ - drives
+ summary: Alias for deleting a drive with '/v1.0/drives/{drive-id}'
+ operationId: DeleteDriveBeta
+ parameters:
+ - name: drive-id
+ in: path
+ description: 'key: id of drive'
+ required: true
+ schema:
+ type: string
+ x-ms-docs-key-type: drive
+ - name: If-Match
+ in: header
+ description: ETag
+ schema:
+ type: string
+ responses:
+ '204':
+ description: Success
+ default:
+ $ref: '#/components/responses/error'
+ x-ms-docs-operation-type: operation
'/v1.0/drives':
get:
tags: