← API reference
CANONICAL TYPE REFERENCE

UpsertWorkspaceInput

Input for upsertWorkspace: create a workspace or overwrite its open draft, keyed on the workspace id inside sourceXML.

Optional observed authoring revision; rejects stale updates and recreation after deletion.

sourceString!

Author-owned cococo-workspace-source/1 JSON envelope containing sourceXML and serverLua. Compilation and AST are server-owned; read back source for IaC comparison.

Distribution scope to apply. Defaults to INSTANCE on create when omitted; keeps the existing scope on update. TEAM/INSTANCE require workspace:write; PERSONAL (owned by the caller) is self-service.

TypeIDs (prefix tea) of the teams to assign; ignored unless scope is TEAM. Replaces the current assignments, so omitting it clears them — and a TEAM-scoped workspace must end up with at least one existing team.

View exact SDL
"""
Input for `upsertWorkspace`: create a workspace or overwrite its open draft, keyed on the workspace id inside sourceXML.
"""
input UpsertWorkspaceInput {
  """
  Optional observed authoring revision; rejects stale updates and recreation after deletion.
  """
  expectedRevision: String
  """
  Author-owned cococo-workspace-source/1 JSON envelope containing sourceXML and serverLua. Compilation and AST are server-owned; read back source for IaC comparison.
  """
  source: String!
  """
  Distribution scope to apply. Defaults to INSTANCE on create when omitted; keeps the existing scope on update. TEAM/INSTANCE require workspace:write; PERSONAL (owned by the caller) is self-service.
  """
  scope: WorkspaceScope
  """
  TypeIDs (prefix `tea`) of the teams to assign; ignored unless `scope` is TEAM. Replaces the current assignments, so omitting it clears them — and a TEAM-scoped workspace must end up with at least one existing team.
  """
  teamIds: [TeamID!]
}

One stable address across all schema views. Follow a field’s type to explore connections between domains.