Skip to content

Place a workspace (a department) under another workspace of the same tenant, or make it a root with an empty parent_id; the subtree moves with it (owner, AAL3 step-up)

PUT
/v1/workspaces/{id}/parent
curl --request PUT \
--url https://example.com/v1/workspaces/2489E9AD-2EE2-8E00-8EC9-32D5F69181C0/parent \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--data '{ "parent_id": "example" }'

Places a workspace (a department) under another workspace of the same tenant, or with an empty parent_id makes it a root; the whole subtree moves with it. Requires the tenant owner and the administrative step-up, because a grant on a department reaches its sub-departments. A cycle is a 409 workspace_cycle and the default workspace stays a root. Business edition: a Community build answers 501 departments_unavailable.

id
required
string format: uuid

Resource identifier (UUIDv7).

X-Olivares-Tenant
string format: uuid

Target tenant id; required when the principal can act in more than one tenant.

Media type application/json
object
parent_id
required

The parent workspace of the same tenant; an empty string makes the workspace a root.

string
Example generated
{
"parent_id": "example"
}

OK

Media type application/json
object
created_at
required
string format: date-time
id
required
string format: uuid
is_default
required
boolean
name
required
string
parent_id

The parent workspace in the organization tree; absent on a root and for a workspace-confined caller.

string format: uuid
settings
object
key
additional properties
any
slug
required
string
/^[a-z0-9][a-z0-9-]{0,62}$/
status
required
string
Allowed values: active inactive
tenant_id
required
string format: uuid
updated_at
required
string format: date-time
version
required
integer format: int64
Example
{
"status": "active"
}

Bad request

Media type application/json
object
error
required
object
code
required
string
message
required
string
module

With code module_not_enabled: the namespace of the module this node does not run.

string
Example generated
{
"error": {
"code": "example",
"message": "example",
"module": "example"
}
}

Unauthenticated

Media type application/json
object
error
required
object
code
required
string
message
required
string
module

With code module_not_enabled: the namespace of the module this node does not run.

string
Example generated
{
"error": {
"code": "example",
"message": "example",
"module": "example"
}
}

Forbidden

Media type application/json
object
error
required
object
code
required
string
message
required
string
module

With code module_not_enabled: the namespace of the module this node does not run.

string
Example generated
{
"error": {
"code": "example",
"message": "example",
"module": "example"
}
}

Not found

Media type application/json
object
error
required
object
code
required
string
message
required
string
module

With code module_not_enabled: the namespace of the module this node does not run.

string
Example generated
{
"error": {
"code": "example",
"message": "example",
"module": "example"
}
}

Conflict / setup required

Media type application/json
object
error
required
object
code
required
string
message
required
string
module

With code module_not_enabled: the namespace of the module this node does not run.

string
Example generated
{
"error": {
"code": "example",
"message": "example",
"module": "example"
}
}

Rate limited

Media type application/json
object
error
required
object
code
required
string
message
required
string
module

With code module_not_enabled: the namespace of the module this node does not run.

string
Example generated
{
"error": {
"code": "example",
"message": "example",
"module": "example"
}
}