Organisations
Change a destination, turn it on, or pause it
Changes where it writes, what it sends, and whether it sends.
PUT
/orgs/{org}/storage/{id}TL;DR
| Question | Answer |
|---|---|
| What does it do? | Change a destination, turn it on, or pause it. |
| What does it take? | A JSON body of type UpdateStorageBody. |
| What does it return? | Status 200 with a body of type StorageDestination. |
| What can go wrong? | 400 a field is not in the form the destination needs (storage.invalid); 401 not signed in; 403 not the owner or an admin (orgs.forbidden), the plan does not include it (plan.storage_not_included), or the origin may not make changes; 404 no such organisation or destination, or the caller is not a member; 409 google Drive is not connected or has no folder yet (storage.not_ready); 429 too many requests; 502 google refused to make the folder (storage.google_failed); 503 sending to your storage is not available on this server (storage.unavailable). Every failure uses the one error envelope. |
What it does
Changes where it writes, what it sends, and whether it sends. Turning it on sends the whole library.
Path parameters
| Field | Type | Required | Description |
|---|---|---|---|
org | string | yes | The organisation's id or its slug. |
id | string | yes | The destination. |
Request body
The body has the type UpdateStorageBody.
| Field | Type | Required | Description |
|---|---|---|---|
target | StorageGoogleDriveTarget | StorageS3Target | StorageAzureBlobTarget | StorageGcsTarget | no | |
createFolder | string | no | Google Drive only: make a folder of this name at the top of My Drive and send there. at least 1 character; at most 200 characters. |
send | StorageSend | no | |
send.folders | array | null | yes | Library folders to send, each with the folders inside it; null for every folder that has no access rule. |
send.formats | ("svg" | "source")[] | yes | svg sends the picture; source sends the .diagram text the picture carries, when it carries one. |
send.scheme | "published" | "light" | "dark" | yes | A picture that follows the reader’s color scheme is sent as it is, or pinned to light or dark. |
send.mirrorDeletions | boolean | yes | Remove a file when its diagram is deleted from the library or moved out of what is sent. |
send.skipConfidential | boolean | yes | Leave out diagrams labelled Confidential. |
state | "on" | "paused" | no | Turn sending on (the library is sent at once) or pause it. |
Responses
| Status | Meaning | Body |
|---|---|---|
| 200 | The destination now. | StorageDestination |
| 400 | A field is not in the form the destination needs (storage.invalid). | ErrorResponse |
| 401 | Not signed in. | ErrorResponse |
| 403 | Not the owner or an admin (orgs.forbidden), the plan does not include it (plan.storage_not_included), or the origin may not make changes. | ErrorResponse |
| 404 | No such organisation or destination, or the caller is not a member. | ErrorResponse |
| 409 | Google Drive is not connected or has no folder yet (storage.not_ready). | ErrorResponse |
| 429 | Too many requests. | ErrorResponse |
| 502 | Google refused to make the folder (storage.google_failed). | ErrorResponse |
| 503 | Sending to your storage is not available on this server (storage.unavailable). | ErrorResponse |
Response body
A 200 answer has the type StorageDestination.
| Field | Type | Required | Description |
|---|---|---|---|
id | string | yes | |
type | "google_drive" | "s3" | "azure_blob" | "gcs" | yes | google_drive, s3, azure_blob or gcs. |
state | "setup" | "on" | "paused" | yes | setup while the steps are not done (nothing is sent), on, or paused. |
connected | boolean | yes | False for Google Drive until a Google account has granted access; true for a bucket. |
target | StorageGoogleDriveTarget | StorageS3Target | StorageAzureBlobTarget | StorageGcsTarget | yes | |
send | StorageSend | yes | |
send.folders | array | null | yes | Library folders to send, each with the folders inside it; null for every folder that has no access rule. |
send.formats | ("svg" | "source")[] | yes | svg sends the picture; source sends the .diagram text the picture carries, when it carries one. |
send.scheme | "published" | "light" | "dark" | yes | A picture that follows the reader’s color scheme is sent as it is, or pinned to light or dark. |
send.mirrorDeletions | boolean | yes | Remove a file when its diagram is deleted from the library or moved out of what is sent. |
send.skipConfidential | boolean | yes | Leave out diagrams labelled Confidential. |
subject | string | null | yes | The subject Plotwork’s issuer signs for this destination, which the bucket’s trust names. Null for Google Drive. |
createdAt | integer | yes | |
updatedAt | integer | yes | |
status | StorageStatus | yes | |
status.queued | integer | yes | |
status.delivered | integer | yes | |
status.dropped | integer | yes | |
status.droppedLast24h | integer | yes | |
status.files | integer | yes | Diagrams the destination holds a copy of now. |
status.lastSuccessAt | integer | null | yes | |
status.lastErrorAt | integer | null | yes | |
status.lastError | string | null | yes | What failed last, in our words. Never what the destination answered. |
status.nextAttemptAt | integer | null | yes | |
status.failingSince | integer | null | yes |
See also
| Doc | Why |
|---|---|
| API reference | Every endpoint, and the error envelope |
| Schemas | Every request and response type |
| Tool reference | The operations as callable tools |