Attach a detached volume to a service on its cluster, mounted at mountPath from the service's next deploy.
A service of another project (or any project, for a volume whose project was deleted) gets the volume moved into its project first, data, id and backups kept: the volume shows moving until its cluster has moved it, then it's attached (or moveError says why not). A volume can't move to another cluster.
A volume on a one-server storage class keeps its data on that server, so the service must be able to run there.
API key access: full.
apiKeyAuthorizationBearer <pyo_…>An API key from the dashboard's API keys page: Authorization: Bearer pyo_…. Keys can expire, and an expired one gets a 401.
application/jsonAttach a detached volume to a service on its cluster, mounted at mountPath from the service's next deploy.
A service of another project (or any project, for a volume whose project was deleted) gets the volume moved into its project first, data, id and backups kept: the volume shows moving until its cluster has moved it, then it's attached (or moveError says why not). A volume can't move to another cluster.
A volume on a one-server storage class keeps its data on that server, so the service must be able to run there.
API key access: full.
op*"attachVolume""attachVolume"id*stringserviceId*stringmountPath*stringDone. Always ok: true, and some operations add more, such as a new API key or a join command. A warning comes with a change that went through but won't fully take effect yet, such as more replicas than the servers have room for.
application/jsoncurl -X POST 'https://your-pyo.example.com/api/v1/ops' \
-H 'Content-Type: application/json' \
-d '{
"id": "vol_8kq2x7ad",
"mountPath": "/data",
"op": "attachVolume",
"serviceId": "svc_8kq2x7ad"
}'{}