schema { query: Query mutation: Mutation subscription: Subscription } type Query { # Find character by either an ID or a nick. character(id: String, nick: String): Character! # Find characters characters(filter: CharactersFilter): [Character!]! # Find channel by name channel(name: String!): Channel! # Find channels channels(filter: ChannelsFilter): [Channel!]! # Find post by ID. post(id: String!): Post! # Find posts posts(filter: PostsFilter): [Post!]! "List unknown nicks" unknownNicks(filter: UnknownNicksFilter): [UnknownNick!]! # Find log by ID log(id: String!): Log! # Find logs logs(filter: LogsFilter): [Log!]! # Find story chapter by ID chapter(id: String!): Chapter! # Find comment by ID comment(id: String!): Comment! # Find all distinct tags used in stories tags(filter: TagFilter): [Tag!]! # Find story by ID story(id: String!): Story! # Find stories stories(filter: StoriesFilter): [Story!]! # Find file by ID file(id: String!): File! # Find files files(filter: FilesFilter): [File!]! # Find changes changes(filter: ChangesFilter): [Change!]! # Get information about the token, useful for debugging. token: Token! } type Mutation { # Add a story addStory(input: StoryAddInput!): Story! # Add a story tag addStoryTag(input: StoryTagAddInput!): Story! # Remove a story tag removeStoryTag(input: StoryTagRemoveInput!): Story! # Edit a story editStory(input: StoryEditInput!): Story! # Remove a story removeStory(input: StoryRemoveInput!): Story! # Add a chapter to a story addChapter(input: ChapterAddInput!): Chapter! # Edit a chapter editChapter(input: ChapterEditInput!): Chapter! # Move a chapter moveChapter(input: ChapterMoveInput!): Chapter! # Remove a chapter removeChapter(input: ChapterRemoveInput!): Chapter! "Add a comment to a chapter." addComment(input: CommentAddInput!): Comment! "Edit a comment in a chapter." editComment(input: CommentEditInput!): Comment! "Remove a comment in a chapter." removeComment(input: CommentRemoveInput!): Comment! # Add a new log addLog(input: LogAddInput!): Log! # Import a log importLog(input: LogImportInput!): [Log!]! # Split a log splitLog(input: LogSplitInput!): Log! # Merge a log mergeLog(input: LogMergeInput!): Log! # Edit a log editLog(input: LogEditInput!): Log! # Remove a log removeLog(input: LogRemoveInput!): Log! # Add a post addPost(input: PostAddInput!): Post! # Edit a post editPost(input: PostEditInput!): Post! # Move a post. All affected posts will be returned. movePost(input: PostMoveInput!): [Post!]! # Remove a post removePost(input: PostRemoveInput!): Post! # Add a new character addCharacter(input: CharacterAddInput!): Character! # Add nick to character addCharacterNick(input: CharacterNickInput!): Character! # Remove nick from character removeCharacterNick(input: CharacterNickInput!): Character! # Edit character editCharacter(input: CharacterEditInput!): Character! # Remove a character removeCharacter(input: CharacterRemoveInput!): Character! # Add a channel addChannel(input: ChannelAddInput!): Channel! # Edit a channel editChannel(input: ChannelEditInput!): Channel! "Upload a file" uploadFile(input: FileUploadInput): File! "Edit a file" editFile(input: FileEditInput): File! "Remove a file" removeFile(input: FileRemoveInput): File! } type Subscription { """ Changes subscribes to the changes matching the following keys. """ changes(filter: ChangesFilter): Change! } # A Time represents a RFC3339 encoded date with up to millisecond precision. scalar Time """A GraphQL file upload.""" scalar Upload