Creates a volume with the specified payload
Required permission
Project > Volumes > General > Create
Path parameters
projectId
string requiredID of the project
Request body
- {object}
name
string requiredThe name of the volume.min length3max length39pattern^[a-zA-Z]((-|\s)?[a-zA-Z0-9]+((-|\s)[a-zA-Z0-9]+)*)?$stageId
stringmin length3max length100pattern^[a-zA-Z0-9]+(-[a-zA-Z0-9]+)*$mounts
[array] requiredArray of mounts, containerMountPaths must be unique- {object}
volumeMountPath
stringOptionally specify the path inside this volume that should be mountedpattern^((?!\.\.).)*$containerMountPath
string requiredSpecify the path into which the volume should be mountedpattern^((?!:).)*$spec
{object} requiredExample storage schemasource
{object}type
string requiredone ofvolume, backupsourceId
string requiredReference to the source object. For a volume source: "<volumeId>". For a backup source, prefer the backup UUID. Legacy "<volumeId>/<backupId>" and "<projectId>/<volumeId>/<backupId>" references remain supported.owningObject
{object}DEPRECATED: The object to attach this volume to.id
string requiredThe id of object to attach this volume to.pattern^[A-Za-z0-9-]+$type
string requiredThe type of the object to attach this volume to.one ofservice, jobattachedObjects
[array]Array of objects this volume is attached to.- {object}The object to attach this volume to.
id
string requiredThe id of object to attach this volume to.pattern^[A-Za-z0-9-]+$type
string requiredThe type of the object to attach this volume to.one ofservice, jobbackupSchedules
[array]Backup schedules for the volume. Snapshot-only.- {object}
scheduling
{object} requiredSchedule for the backup.interval
string requiredThe interval between backups. Each addon can only have one backup schedule of each interval for each backup type.one ofhourly, daily, weeklyminute
[array] requiredAn array of minutes when the backup should be performed.- integerA minute when the backup should be performed.min0max59
hour
[array]An array of hours in 24 hour format when the backup should be performed. At these hours, a backup will be performed at each of the minutes provided in the `minute` field. Required for `daily` and `weekly` intervals and unavailable for `hourly` intervals.- integerAn hour when the backup should be performed, in 24 hour format.min0max23
day
[array]An array of days of the week when the backup should be performed, where `0` represents Monday and `6` represents Sunday. On these days, a backup will be performed at each of the minutes provided in the `minute` field whenever it is an hour from the `hour` field. Required for `weekly` intervals and unavailable for `hourly` and `daily` intervals.- integerA day of the week when the backup should be performed, where `0` represents Monday and `6` represents Sunday.min0max6
retentionTime
integer requiredThe time the backup is retained for, in days.min1
Response body
- {object}Response object.
data
{object} requiredResult data.id
string requiredIdentifier for the volumename
string requiredVolume namespec
{object} requiredExample storage schemaattachedObjects
[array]List of objects this volume is attached to.- {object}The object to attach this volume to.
id
string requiredThe id of object to attach this volume to.pattern^[A-Za-z0-9-]+$type
string requiredThe type of the object to attach this volume to.one ofservice, jobbackupSchedules
[array]- {object}
scheduling
{object} requiredSchedule for the backup.interval
string requiredThe interval between backups. Each addon can only have one backup schedule of each interval for each backup type.one ofhourly, daily, weeklyminute
[array] requiredAn array of minutes when the backup should be performed.- integerA minute when the backup should be performed.min0max59
hour
[array]An array of hours in 24 hour format when the backup should be performed. At these hours, a backup will be performed at each of the minutes provided in the `minute` field. Required for `daily` and `weekly` intervals and unavailable for `hourly` intervals.- integerAn hour when the backup should be performed, in 24 hour format.min0max23
day
[array]An array of days of the week when the backup should be performed, where `0` represents Monday and `6` represents Sunday. On these days, a backup will be performed at each of the minutes provided in the `minute` field whenever it is an hour from the `hour` field. Required for `weekly` intervals and unavailable for `hourly` and `daily` intervals.- integerA day of the week when the backup should be performed, where `0` represents Monday and `6` represents Sunday.min0max6
retentionTime
integer requiredThe time the backup is retained for, in days.min1status
string requiredStatus the volume is in on the clustercreatedAt
string requiredThe timestamp the volume was created atupdatedAt
string requiredThe timestamp the volume was last updated at
API
CLI
JS Client
POST /v1/projects/{projectId}/volumes
POST /v1/teams/{teamId}/projects/{projectId}/volumes
Example request
Request body
curl --header "Content-Type: application/json" \
--header "Authorization: Bearer NORTHFLANK_API_TOKEN" \
--request POST \
--data '{"name":"Example Volume","mounts":[{"volumeMountPath":"","containerMountPath":"/container"}],"spec":{"storageClassName":"nvme","storageSize":6144,"accessMode":"ReadWriteOnce"},"source":{"sourceId":"6d542e24-5d9f-4ecf-80a5-e80724b9133e","type":"volume"},"attachedObjects":[{"id":"example-service","type":"service"}],"backupSchedules":[{"scheduling":{"interval":"weekly","minute":[30],"hour":[18],"day":[4]},"retentionTime":7}]}' \
https://api.northflank.com/v1/projects/{projectId}/volumesExample response
200 OK
Details about the newly created volume.
JSON
{
"data": {
"id": "example-volume",
"name": "Example Volume",
"spec": {
"storageClassName": "nvme",
"storageSize": 6144
},
"attachedObjects": [
{
"id": "example-service",
"type": "service"
}
],
"backupSchedules": [
{
"scheduling": {
"interval": "weekly",
"minute": [
30
],
"hour": [
18
],
"day": [
4
]
},
"retentionTime": 7
}
],
"status": "BOUND",
"createdAt": "2021-01-01 12:00:00.000Z",
"updatedAt": "2021-01-01 12:00:00.000Z"
}
}Example response
409 Conflict
There is already a volume with the same derived identifier