Skip to content

Rename, re-parent, reorder or re-kind a node

PATCH
/v1/suites/{id}
curl --request PATCH \
--url https://beta-api.plune.ai/v1/suites/2489E9AD-2EE2-8E00-8EC9-32D5F69181C0 \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--data '{ "name": "example", "parentId": "example", "kind": "folder", "position": 1, "description": "example" }'
id
required
string format: uuid
Media type application/json

Rename, re-parent, reorder, re-kind. A parent that would close a cycle, or that is a suite, is rejected with 400. A change of kind is refused with 409 while the node still holds what the new kind cannot: test cases (suite → folder — POST /v1/suites/{id}/convert-to-folder moves them into a child suite) or child suites (folder → suite — move or delete them first).

object
name
string
parentId

Three states: omit to keep the current parent, a folder id to move under it, or null to move this node back to the root. A move without position lands after the last sibling.

string
nullable
kind
string
Allowed values: folder suite
position

The new slot among the siblings; the others close ranks.

integer
description

null clears it.

string
nullable

Updated

Media type application/json

A node of the tree as stored: the authoring core plus server-owned scoping metadata. The tree is a filesystem (B-7): a folder holds folders and suites, a suite holds test cases.

object
schemaVersion
required
integer
Allowed values: 1
id
required
string format: uuid
name
required
string
parentId

Absent on a root node. Always a folder.

string
projectId
required
string
kind
required
string
Allowed values: folder suite
position
required

Order among siblings — dense and 0-based; every write that places a node renumbers them.

integer
description

Free text, up to 16 384 bytes of UTF-8. Absent when empty.

string
file

The spec path this suite was filed from (an automated case’s specRef, normalised). Set by filing alone and never by hand; absent on nodes a person made.

string
createdAt
required
string format: date-time
updatedAt
required
string format: date-time
Example
{
"schemaVersion": 1,
"name": "Checkout",
"kind": "folder",
"file": "apps/web/e2e/catalog/search.spec.ts"
}

Invalid body, unknown/foreign parent, a parent that would create a cycle, or a parent that is a suite

Media type application/json
object
error
required
string
Example generated
{
"error": "example"
}

No / invalid token or session

Not found or not yours

Media type application/json
object
error
required
string
Example generated
{
"error": "example"
}

The kind cannot change yet: a suite that still holds test cases, or a folder that still holds child suites

Media type application/json
object
error
required
string
Example generated
{
"error": "example"
}

Rate-limited: either the per-route throttle or a tenant quota. Retry-After carries the seconds until the window rolls over.

Media type application/json
object
error
required
string
Example generated
{
"error": "example"
}
Retry-After
integer

Seconds until the window rolls over