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: