Skip to content
Get started

Update a workspace

workspace_admin.update(workspace_id, **kwargs) -> Workspace { metadata, spec, status }
PATCH/v1/account/workspaces/{workspaceId}

Updates a workspace’s metadata (e.g. name) and spec. Admin only.

ParametersExpand Collapse
workspace_id: String
metadata: Metadata{ name, external_id, labels}

UpdateAccountResourceMetadata contains the user-provided fields for updating an account-scoped resource. Read-only fields (id, account_id, profile_id) are excluded since they are set by the server.

name: String

Human-readable name for the resource (e.g., “Production API Key”, “Staging Workspace”)

external_id: String

External ID for the resource (e.g., a workflow ID from an external system)

labels: Hash[Symbol, String]

Arbitrary key-value pairs for categorization and filtering Examples: {“environment”: “production”, “team”: “platform”, “version”: “v2”}

spec: WorkspaceSpec { description }
description: String
update_mask: String

Fields to update.

formatfield-mask
ReturnsExpand Collapse
class Workspace { metadata, spec, status }
metadata: AccountResourceMetadata { id, account_id, name, 3 more }

AccountResourceMetadata is used to represent a resource that is associated to an account but not to a workspace.

id: String

Unique identifier for the resource (prefixed ULID, e.g., “apikey_01HXK…”)

account_id: String

Account this resource belongs to for multi-tenant isolation (prefixed ULID)

name: String

Human-readable name for the resource (e.g., “Customer Support Agent”, “Email Tool”) Required for resources that users interact with directly

profile_id: String
external_id: String

External ID for the resource (e.g., a workflow ID from an external system)

labels: Hash[Symbol, String]

Arbitrary key-value pairs for categorization and filtering Examples: {“environment”: “production”, “team”: “platform”, “version”: “v2”}

spec: WorkspaceSpec { description }
description: String
status: :STATUS_ENABLED | :STATUS_DISABLED | :STATUS_ARCHIVED

Lifecycle status of the workspace. Archived workspaces reject all requests scoped to them. Server-populated.

formatenum
One of the following:
:STATUS_ENABLED
:STATUS_DISABLED
:STATUS_ARCHIVED

Update a workspace

require "cadenya"

cadenya = Cadenya::Client.new(api_key: "My API Key")

workspace = cadenya.workspace_admin.update("workspaceId")

puts(workspace)
{
  "metadata": {
    "id": "id",
    "accountId": "accountId",
    "name": "name",
    "profileId": "profileId",
    "externalId": "externalId",
    "labels": {
      "foo": "string"
    }
  },
  "spec": {
    "description": "description"
  },
  "status": "STATUS_ENABLED"
}
Returns Examples
{
  "metadata": {
    "id": "id",
    "accountId": "accountId",
    "name": "name",
    "profileId": "profileId",
    "externalId": "externalId",
    "labels": {
      "foo": "string"
    }
  },
  "spec": {
    "description": "description"
  },
  "status": "STATUS_ENABLED"
}