extend type Query { findProject(input: FindProject!): Project! } input FindProject { projectID: UUID projectShortID: String } extend type Mutation { createProject(input: NewProject!): Project! @hasRole(roles: [ADMIN], level: TEAM, type: TEAM) deleteProject(input: DeleteProject!): DeleteProjectPayload! @hasRole(roles: [ADMIN], level: PROJECT, type: PROJECT) updateProjectName(input: UpdateProjectName): Project! @hasRole(roles: [ADMIN], level: PROJECT, type: PROJECT) toggleProjectVisibility(input: ToggleProjectVisibility!): ToggleProjectVisibilityPayload! @hasRole(roles: [ADMIN], level: PROJECT, type: PROJECT) } input ToggleProjectVisibility { projectID: UUID! isPublic: Boolean! } type ToggleProjectVisibilityPayload { project: Project! } input NewProject { teamID: UUID name: String! } input UpdateProjectName { projectID: UUID! name: String! } input DeleteProject { projectID: UUID! } type DeleteProjectPayload { ok: Boolean! project: Project! }