UpsertWorkspaceInput
Input for upsertWorkspace: create a workspace or overwrite its open draft, keyed on the workspace id inside sourceXML.
expectedRevisionStringOptional 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.