"""An attachment.""" type Attachment { """ID of the Attachment.""" id: ID! """The attachment's title.""" title: String! """The attachment's URL.""" url: String! } """The connection type for Attachment.""" type AttachmentConnection { """A list of edges.""" edges: [AttachmentEdge!]! """A list of nodes.""" nodes: [Attachment!]! """Information to aid in pagination.""" pageInfo: PageInfo! } """An edge in a Attachment.""" type AttachmentEdge { """A cursor for use in pagination.""" cursor: String! """The Attachment at the end of the edge.""" node: Attachment! } """A child topic task.""" type ChildTopicTask { """The child topic.""" childTopic: Topic! """For a deleted task, when it was deleted.""" deletedAt: DateTime """ID of the Task.""" id: ID! """The task's position in its tasklist.""" position: Float! } """Date as an ISO-8601 encoded string.""" scalar Date """UTC timestamp as an ISO-8601 string.""" scalar DateTime """A label.""" type Label { """The name of the color of the label.""" color: String! """The hex code of the color of the label.""" hex: String! """The text of the label.""" text: String! } """The connection type for Label.""" type LabelConnection { """A list of edges.""" edges: [LabelEdge!]! """A list of nodes.""" nodes: [Label!]! """Information to aid in pagination.""" pageInfo: PageInfo! } """An edge in a Label.""" type LabelEdge { """A cursor for use in pagination.""" cursor: String! """The Label at the end of the edge.""" node: Label! } """A label.""" input LabelInput { """The color of the label.""" color: String! """The text of the label.""" text: String! } """The mutation root of the API.""" type Mutation { """Create a topic.""" topicCreate( """The topic to create.""" input: TopicCreateInput! ): TopicOutput! """Update a topic.""" topicUpdate( """ID of the topic.""" id: ID! """Topic details to update.""" input: TopicUpdateInput! ): TopicOutput! """Update a topic's collaborators incrementally.""" topicUpdateCollaborators( """The users to add as collaborators on the topic.""" collaboratorIdsToAdd: [ID!] """The users to remove as collaborators from the topic.""" collaboratorIdsToRemove: [ID!] """ID of the topic.""" id: ID! ): TopicOutput! """Update a topic's labels incrementally.""" topicUpdateLabels( """ID of the topic.""" id: ID! """The labels to add on the topic.""" labelsToAdd: [LabelInput!] """The labels to remove from the topic.""" labelsToRemove: [LabelInput!] ): TopicOutput! } """Information about pagination in a connection.""" type PageInfo { """When paginating forwards, the cursor to continue.""" endCursor: String """When paginating forwards, are there more items?""" hasNextPage: Boolean! """When paginating backwards, are there more items?""" hasPreviousPage: Boolean! """When paginating backwards, the cursor to continue.""" startCursor: String } """The query root of the API.""" type Query { """Get a stage by ID.""" stage( """The stage ID.""" id: ID! ): Stage """Get many stages.""" stages( """Returns the items in the list that come after the specified cursor.""" after: String """Returns the items in the list that come before the specified cursor.""" before: String """ Stage filtering options. Fields are ANDed together. Values within a list field are ORed. """ filter: StageFilter = {states: [active]} """Returns the first n items from the list.""" first: Int """Returns the last n items from the list.""" last: Int ): StageConnection! """Get a topic by ID.""" topic( """The topic ID.""" id: ID! ): Topic """Get many topics.""" topics( """Returns the items in the list that come after the specified cursor.""" after: String """Returns the items in the list that come before the specified cursor.""" before: String """ Topic filtering options. Fields are ANDed together. Values within a list field are ORed. """ filter: TopicFilter = {states: [active]} """Returns the first n items from the list.""" first: Int """Returns the last n items from the list.""" last: Int ): TopicConnection! """Get a user by ID.""" user( """The user ID.""" id: ID! ): User """Get many users.""" users( """Returns the items in the list that come after the specified cursor.""" after: String """Returns the items in the list that come before the specified cursor.""" before: String """ User filtering options. Fields are ANDed together. Values within a list field are ORed. """ filter: UserFilter = {states: [active]} """Returns the first n items from the list.""" first: Int """Returns the last n items from the list.""" last: Int ): UserConnection! """Get a workspace by ID.""" workspace( """The workspace ID.""" id: ID! ): Workspace """Get many workspaces.""" workspaces( """Returns the items in the list that come after the specified cursor.""" after: String """Returns the items in the list that come before the specified cursor.""" before: String """ Workspace filtering options. Fields are ANDed together. Values within a list field are ORed. """ filter: WorkspaceFilter = {states: [active]} """Returns the first n items from the list.""" first: Int """Returns the last n items from the list.""" last: Int ): WorkspaceConnection! } """A size.""" type Size { """The size's unit.""" unit: String! """The size's value.""" value: String! } """A size.""" input SizeInput { """The size's unit.""" unit: String! """The size's value.""" value: String! } """A stage (column) within a workspace.""" type Stage { """For a deleted stage, when it was deleted.""" deletedAt: DateTime """The stage's display name.""" displayName: String! """ID of the Stage.""" id: ID! """The stage's position in its workspace.""" position: Float! """The stage's topics.""" topics( """Returns the items in the list that come after the specified cursor.""" after: String """Returns the items in the list that come before the specified cursor.""" before: String """ Topic filtering options. Fields are ANDed together. Values within a list field are ORed. """ filter: TopicFilter = {states: [active]} """Returns the first n items from the list.""" first: Int """Returns the last n items from the list.""" last: Int ): TopicConnection! """The stage's workspace.""" workspace: Workspace } """The connection type for Stage.""" type StageConnection { """A list of edges.""" edges: [StageEdge!]! """A list of nodes.""" nodes: [Stage!]! """Information to aid in pagination.""" pageInfo: PageInfo! } """An edge in a Stage.""" type StageEdge { """A cursor for use in pagination.""" cursor: String! """The Stage at the end of the edge.""" node: Stage! } """ Stage filtering options. Fields are ANDed together. Values within a list field are ORed. """ input StageFilter { """Only include stages with a matching state.""" states: [StageState!] = [active] } enum StageState { active deleted } """A task.""" union Task = ChildTopicTask | TextTask """The connection type for Task.""" type TaskConnection { """A list of edges.""" edges: [TaskEdge!]! """A list of nodes.""" nodes: [Task!]! """Information to aid in pagination.""" pageInfo: PageInfo! } """An edge in a Task.""" type TaskEdge { """A cursor for use in pagination.""" cursor: String! """The Task at the end of the edge.""" node: Task! } """ Task filtering options. Fields are ANDed together. Values within a list field are ORed. """ input TaskFilter { """Only include tasks with a matching state.""" states: [TaskState!] = [active] } enum TaskState { active deleted } """A tasklist.""" type Tasklist { """For a deleted tasklist, when it was deleted.""" deletedAt: DateTime """ID of the Tasklist.""" id: ID! """The tasklist's tasks.""" tasks( """Returns the items in the list that come after the specified cursor.""" after: String """Returns the items in the list that come before the specified cursor.""" before: String """ Task filtering options. Fields are ANDed together. Values within a list field are ORed. """ filter: TaskFilter = {states: [active]} """Returns the first n items from the list.""" first: Int """Returns the last n items from the list.""" last: Int ): TaskConnection! """The tasklist's title.""" title: String! } """The connection type for Tasklist.""" type TasklistConnection { """A list of edges.""" edges: [TasklistEdge!]! """A list of nodes.""" nodes: [Tasklist!]! """Information to aid in pagination.""" pageInfo: PageInfo! } """An edge in a Tasklist.""" type TasklistEdge { """A cursor for use in pagination.""" cursor: String! """The Tasklist at the end of the edge.""" node: Tasklist! } """ Tasklist filtering options. Fields are ANDed together. Values within a list field are ORed. """ input TasklistFilter { """Only include tasklists with a matching state.""" states: [TasklistState!] = [active] } enum TasklistState { active deleted } """A text task.""" type TextTask { """The task's assignee.""" assignee: User """For a deleted task, when it was deleted.""" deletedAt: DateTime """The task's due date.""" dueDate: Date """ID of the Task.""" id: ID! """If the task is complete.""" isComplete: Boolean! """The task's position in its tasklist.""" position: Float! """The task's title.""" title: String! } """A topic.""" type Topic { """For an archived topic, when it was archived.""" archivedAt: DateTime """The topic's attachments.""" attachments( """Returns the items in the list that come after the specified cursor.""" after: String """Returns the items in the list that come before the specified cursor.""" before: String """Returns the first n items from the list.""" first: Int """Returns the last n items from the list.""" last: Int ): AttachmentConnection! """The topics that are blocking the topic.""" blockedByTopics( """Returns the items in the list that come after the specified cursor.""" after: String """Returns the items in the list that come before the specified cursor.""" before: String """Returns the first n items from the list.""" first: Int """Returns the last n items from the list.""" last: Int ): TopicConnection! """The topics that the topic is blocking.""" blockerOfTopics( """Returns the items in the list that come after the specified cursor.""" after: String """Returns the items in the list that come before the specified cursor.""" before: String """Returns the first n items from the list.""" first: Int """Returns the last n items from the list.""" last: Int ): TopicConnection! """The topic's child topics.""" childTopics( """Returns the items in the list that come after the specified cursor.""" after: String """Returns the items in the list that come before the specified cursor.""" before: String """Returns the first n items from the list.""" first: Int """Returns the last n items from the list.""" last: Int ): TopicConnection! """The users designated as collaborators on the topic.""" collaborators( """Returns the items in the list that come after the specified cursor.""" after: String """Returns the items in the list that come before the specified cursor.""" before: String """Returns the first n items from the list.""" first: Int """Returns the last n items from the list.""" last: Int ): UserConnection! """The topic's description as Markdown.""" description: String """The topic's human-friendly display ID.""" displayId: String """The topic's due date.""" dueDate: Date """ID of the topic.""" id: ID! """The topic's labels.""" labels( """Returns the items in the list that come after the specified cursor.""" after: String """Returns the items in the list that come before the specified cursor.""" before: String """Returns the first n items from the list.""" first: Int """Returns the last n items from the list.""" last: Int ): LabelConnection! """The user designated as the owner of the topic.""" owner: User """The topic's parent topics.""" parentTopics( """Returns the items in the list that come after the specified cursor.""" after: String """Returns the items in the list that come before the specified cursor.""" before: String """Returns the first n items from the list.""" first: Int """Returns the last n items from the list.""" last: Int ): TopicConnection! """The topic's position in its stage.""" position: Float """The topic's size.""" size: Size """The topic's URL slug.""" slug: String! """The stage that the topic is in.""" stage: Stage! """The topic's tasklists.""" tasklists( """Returns the items in the list that come after the specified cursor.""" after: String """Returns the items in the list that come before the specified cursor.""" before: String """ Tasklist filtering options. Fields are ANDed together. Values within a list field are ORed. """ filter: TasklistFilter = {states: [active]} """Returns the first n items from the list.""" first: Int """Returns the last n items from the list.""" last: Int ): TasklistConnection! """The topic's title.""" title: String! """For a trashed topic, when it was trashed.""" trashedAt: DateTime """The topic's URL.""" url: String! """The workspace that the topic is currently in.""" workspace: Workspace! } """The connection type for Topic.""" type TopicConnection { """A list of edges.""" edges: [TopicEdge!]! """A list of nodes.""" nodes: [Topic!]! """Information to aid in pagination.""" pageInfo: PageInfo! } input TopicCreateInput { """The users designated as collaborators on the topic.""" collaboratorIds: [ID!] """The topic's description as Markdown.""" description: String """The topic's due date.""" dueDate: Date """The topic's labels.""" labels: [LabelInput!] """The user designated as the owner of the topic.""" ownerId: ID """ The topic's position in its stage. Omit to create the topic at the bottom of the stage, and set to zero to create the topic at the top of the stage. """ position: Float """The topic's size.""" size: SizeInput """ The stage, and thereby the workspace, that the topic will be created in. """ stageId: ID! """The topic's title.""" title: String! } """An edge in a Topic.""" type TopicEdge { """A cursor for use in pagination.""" cursor: String! """The Topic at the end of the edge.""" node: Topic! } """ Topic filtering options. Fields are ANDed together. Values within a list field are ORed. """ input TopicFilter { """Only include topics with a matching collaborator.""" collaboratorIds: [ID!] """Only include topics with a matching display ID.""" displayIds: [String!] """Only include topics with a matching label.""" labels: [String!] """Only include topics with a matching owner.""" ownerIds: [String!] """Only include topics with a matching stage.""" stageIds: [ID!] """Only include topics with a matching state.""" states: [TopicState!] = [active] """Only include topics with a matching owner or collaborator.""" userIds: [ID!] """Only include topics with a matching workspace.""" workspaceIds: [ID!] } type TopicOutput { topic: Topic } enum TopicState { active archived trashed } input TopicUpdateInput { """The topic's description as Markdown.""" description: String """The topic's due date.""" dueDate: Date """The user designated as the owner of the topic.""" ownerId: ID """The topic's size.""" size: SizeInput """The topic's title.""" title: String } """A user in an organization.""" type User { """For a disabled user, when they were disabled.""" disabledAt: DateTime """The user's display name.""" displayName: String! """The user's full name.""" fullName: String """ID of the User.""" id: ID! } """The connection type for User.""" type UserConnection { """A list of edges.""" edges: [UserEdge!]! """A list of nodes.""" nodes: [User!]! """Information to aid in pagination.""" pageInfo: PageInfo! } """An edge in a User.""" type UserEdge { """A cursor for use in pagination.""" cursor: String! """The User at the end of the edge.""" node: User! } """ User filtering options. Fields are ANDed together. Values within a list field are ORed. """ input UserFilter { """Only include users with a matching state.""" states: [UserState!] = [active] } enum UserState { active disabled } """A workspace.""" type Workspace { """For an archived workspace, when it was archived.""" archivedAt: DateTime """The workspace's display name.""" displayName: String! """ID of the Workspace.""" id: ID! """The workspace's URL slug.""" slug: String! """The workspaces's stages.""" stages( """Returns the items in the list that come after the specified cursor.""" after: String """Returns the items in the list that come before the specified cursor.""" before: String """ Stage filtering options. Fields are ANDed together. Values within a list field are ORed. """ filter: StageFilter = {states: [active]} """Returns the first n items from the list.""" first: Int """Returns the last n items from the list.""" last: Int ): StageConnection! """The workspaces's topics.""" topics( """Returns the items in the list that come after the specified cursor.""" after: String """Returns the items in the list that come before the specified cursor.""" before: String """ Topic filtering options. Fields are ANDed together. Values within a list field are ORed. """ filter: TopicFilter = {states: [active]} """Returns the first n items from the list.""" first: Int """Returns the last n items from the list.""" last: Int ): TopicConnection! """The workspace's visibility.""" visibility: String! } """The connection type for Workspace.""" type WorkspaceConnection { """A list of edges.""" edges: [WorkspaceEdge!]! """A list of nodes.""" nodes: [Workspace!]! """Information to aid in pagination.""" pageInfo: PageInfo! } """An edge in a Workspace.""" type WorkspaceEdge { """A cursor for use in pagination.""" cursor: String! """The Workspace at the end of the edge.""" node: Workspace! } """ Workspace filtering options. Fields are ANDed together. Values within a list field are ORed. """ input WorkspaceFilter { """Only include workspaces with a matching state.""" states: [WorkspaceState!] = [active] } enum WorkspaceState { active archived }