Skip to content
Connect an agent

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

QuestionAnswer
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

FieldTypeRequiredDescription
orgstringyesThe organisation's id or its slug.
idstringyesThe destination.

Request body

The body has the type UpdateStorageBody.

FieldTypeRequiredDescription
targetStorageGoogleDriveTarget | StorageS3Target | StorageAzureBlobTarget | StorageGcsTargetno
createFolderstringnoGoogle 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.
sendStorageSendno
send.foldersarray | nullyesLibrary folders to send, each with the folders inside it; null for every folder that has no access rule.
send.formats("svg" | "source")[]yessvg sends the picture; source sends the .diagram text the picture carries, when it carries one.
send.scheme"published" | "light" | "dark"yesA picture that follows the reader’s color scheme is sent as it is, or pinned to light or dark.
send.mirrorDeletionsbooleanyesRemove a file when its diagram is deleted from the library or moved out of what is sent.
send.skipConfidentialbooleanyesLeave out diagrams labelled Confidential.
state"on" | "paused"noTurn sending on (the library is sent at once) or pause it.

Responses

StatusMeaningBody
200The destination now.StorageDestination
400A field is not in the form the destination needs (storage.invalid).ErrorResponse
401Not signed in.ErrorResponse
403Not 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
404No such organisation or destination, or the caller is not a member.ErrorResponse
409Google Drive is not connected or has no folder yet (storage.not_ready).ErrorResponse
429Too many requests.ErrorResponse
502Google refused to make the folder (storage.google_failed).ErrorResponse
503Sending to your storage is not available on this server (storage.unavailable).ErrorResponse

Response body

A 200 answer has the type StorageDestination.

FieldTypeRequiredDescription
idstringyes
type"google_drive" | "s3" | "azure_blob" | "gcs"yesgoogle_drive, s3, azure_blob or gcs.
state"setup" | "on" | "paused"yessetup while the steps are not done (nothing is sent), on, or paused.
connectedbooleanyesFalse for Google Drive until a Google account has granted access; true for a bucket.
targetStorageGoogleDriveTarget | StorageS3Target | StorageAzureBlobTarget | StorageGcsTargetyes
sendStorageSendyes
send.foldersarray | nullyesLibrary folders to send, each with the folders inside it; null for every folder that has no access rule.
send.formats("svg" | "source")[]yessvg sends the picture; source sends the .diagram text the picture carries, when it carries one.
send.scheme"published" | "light" | "dark"yesA picture that follows the reader’s color scheme is sent as it is, or pinned to light or dark.
send.mirrorDeletionsbooleanyesRemove a file when its diagram is deleted from the library or moved out of what is sent.
send.skipConfidentialbooleanyesLeave out diagrams labelled Confidential.
subjectstring | nullyesThe subject Plotwork’s issuer signs for this destination, which the bucket’s trust names. Null for Google Drive.
createdAtintegeryes
updatedAtintegeryes
statusStorageStatusyes
status.queuedintegeryes
status.deliveredintegeryes
status.droppedintegeryes
status.droppedLast24hintegeryes
status.filesintegeryesDiagrams the destination holds a copy of now.
status.lastSuccessAtinteger | nullyes
status.lastErrorAtinteger | nullyes
status.lastErrorstring | nullyesWhat failed last, in our words. Never what the destination answered.
status.nextAttemptAtinteger | nullyes
status.failingSinceinteger | nullyes

See also

DocWhy
API referenceEvery endpoint, and the error envelope
SchemasEvery request and response type
Tool referenceThe operations as callable tools