# This file was generated based on ".graphqlconfig.yaml". Do not edit manually. schema { query: RootQueryType mutation: RootMutationType } "An ActivityPub actor" interface Actor { "The actor's avatar picture" avatar: Picture "The actor's banner picture" banner: Picture "The actor's domain if (null if it's this instance)" domain: String "List of followers" followers: [Follower] "Number of followers for this actor" followersCount: Int "List of followings" following: [Follower] "Number of actors following this actor" followingCount: Int "Internal ID for this actor" id: Int "The actors RSA Keys" keys: String "If the actor is from this instance" local: Boolean "Whether the actors manually approves followers" manuallyApprovesFollowers: Boolean "The actor's displayed name" name: String "A list of the events this actor has organized" organizedEvents: [Event] "The actor's preferred username" preferredUsername: String "The actor's summary" summary: String "If the actor is suspended" suspended: Boolean "The type of Actor (Person, Group,…)" type: ActorType "The ActivityPub actor's URL" url: String } type Address { country: String description: String "The floor this event is at" floor: String "The geocoordinates for the point where this address is" geom: Point "The address's locality" locality: String postalCode: String region: String "The address's street name (with number)" street: String } "A comment" type Comment { "Internal ID for this comment" id: ID local: Boolean primaryLanguage: String replies: [Comment] text: String threadLanguages: [String]! url: String uuid: UUID visibility: CommentVisibility } "A config object" type Config { description: String name: String registrationsOpen: Boolean } "Represents a deleted feed_token" type DeletedFeedToken { actor: DeletedObject user: DeletedObject } "Represents a deleted member" type DeletedMember { actor: DeletedObject parent: DeletedObject } "A struct containing the id of the deleted object" type DeletedObject { id: Int } "Represents a deleted participant" type DeletedParticipant { actor: DeletedObject event: DeletedObject } "An event" type Event { "Who the event is attributed to (often a group)" attributedTo: Actor "Datetime for when the event begins" beginsOn: DateTime "The event's category" category: String "When the event was created" createdAt: DateTime "The event's description" description: String "Datetime for when the event ends" endsOn: DateTime "Internal ID for this event" id: Int "Whether the event is local or not" local: Boolean "Online address of the event" onlineAddress: OnlineAddress "The event's organizer (as a person)" organizerActor: Actor "The event's participants" participants: [Participant] "Phone address for the event" phoneAddress: PhoneAddress "The type of the event's address" physicalAddress: Address "The event's picture" picture: Picture "When the event was published" publishAt: DateTime "Events related to this one" relatedEvents: [Event] "The event's description's slug" slug: String "Status of the event" status: EventStatus "The event's tags" tags: [Tag] "The event's title" title: String "When the event was last updated" updatedAt: DateTime "The ActivityPub Event URL" url: String "The Event UUID" uuid: UUID "The event's visibility" visibility: EventVisibility } "Search events result" type Events { "Event elements" elements: [Event]! "Total elements" total: Int! } "Represents a participant to an event" type FeedToken { "The event which the actor participates in" actor: Actor "The role of this actor at this event" token: String "The actor that participates to the event" user: User } """ Represents an actor's follower """ type Follower { "Which profile follows" actor: Actor "Whether the follow has been approved by the target actor" approved: Boolean "What or who the profile follows" targetActor: Actor } """ Represents a group of actors """ type Group implements Actor { "The actor's avatar picture" avatar: Picture "The actor's banner picture" banner: Picture "The actor's domain if (null if it's this instance)" domain: String "List of followers" followers: [Follower] "Number of followers for this actor" followersCount: Int "List of followings" following: [Follower] "Number of actors following this actor" followingCount: Int "Internal ID for this group" id: Int "The actors RSA Keys" keys: String "If the actor is from this instance" local: Boolean "Whether the actors manually approves followers" manuallyApprovesFollowers: Boolean "List of group members" members: [Member]! "The actor's displayed name" name: String "Whether the group is opened to all or has restricted access" openness: Openness "A list of the events this actor has organized" organizedEvents: [Event] "The actor's preferred username" preferredUsername: String "The actor's summary" summary: String "If the actor is suspended" suspended: Boolean "The type of Actor (Person, Group,…)" type: ActorType "The type of group : Group, Community,…" types: GroupType "The ActivityPub actor's URL" url: String } "Search groups result" type Groups { "Group elements" elements: [Group]! "Total elements" total: Int! } "A JWT and the associated user ID" type Login { "A JWT Token for this session" token: String! "The user associated to this session" user: User! } """ Represents a member of a group """ type Member { "Which profile is member of" actor: Person "Of which the profile is member" parent: Group "The role of this membership" role: Int } type OnlineAddress { info: String url: String } "Represents a participant to an event" type Participant { "The actor that participates to the event" actor: Actor "The event which the actor participates in" event: Event "The role of this actor at this event" role: Int } """ Represents a person identity """ type Person implements Actor { "The actor's avatar picture" avatar: Picture "The actor's banner picture" banner: Picture "The actor's domain if (null if it's this instance)" domain: String "A list of the feed tokens for this person" feedTokens: [FeedToken] "List of followers" followers: [Follower] "Number of followers for this actor" followersCount: Int "List of followings" following: [Follower] "Number of actors following this actor" followingCount: Int "The list of events this person goes to" goingToEvents: [Event] "Internal ID for this person" id: Int "The actors RSA Keys" keys: String "If the actor is from this instance" local: Boolean "Whether the actors manually approves followers" manuallyApprovesFollowers: Boolean "The list of groups this person is member of" memberOf: [Member] "The actor's displayed name" name: String "A list of the events this actor has organized" organizedEvents: [Event] "The actor's preferred username" preferredUsername: String "The actor's summary" summary: String "If the actor is suspended" suspended: Boolean "The type of Actor (Person, Group,…)" type: ActorType "The ActivityPub actor's URL" url: String "The user this actor is associated to" user: User } "Search persons result" type Persons { "Person elements" elements: [Person]! "Total elements" total: Int! } type PhoneAddress { info: String phone: String } "A picture" type Picture { "The picture's alternative text" alt: String "The picture's ID" id: ID "The picture's name" name: String "The picture's full URL" url: String } type RootMutationType { "Change default actor for user" changeDefaultActor(preferredUsername: String!): User "Create a comment" createComment(actorUsername: String!, text: String!): Comment "Create an event" createEvent( beginsOn: DateTime!, category: String!, description: String!, endsOn: DateTime, onlineAddress: String, organizerActorId: ID!, phoneAddress: String, #The picture for the event, either as an object or directly the ID of an existing Picture picture: PictureInput, public: Boolean, publishAt: DateTime, state: Int, status: Int, title: String!, visibility: EventVisibility = PRIVATE ): Event "Create a Feed Token" createFeedToken(actorId: Int): FeedToken "Create a group" createGroup( #The actor's username which will be the admin (otherwise user's default one) adminActorUsername: String, #The avatar for the group, either as an object or directly the ID of an existing Picture avatar: PictureInput, #The banner for the group, either as an object or directly the ID of an existing Picture banner: PictureInput, #The summary for the group description: String = "", #The displayed name for the group name: String, #The name for the group preferredUsername: String! ): Group "Create a new person for user" createPerson( #The avatar for the profile, either as an object or directly the ID of an existing Picture avatar: PictureInput, #The banner for the profile, either as an object or directly the ID of an existing Picture banner: PictureInput, #The displayed name for the new profile name: String = "", preferredUsername: String!, #The summary for the new profile summary: String = "" ): Person "Create an user" createUser(email: String!, password: String!): User "Delete an event" deleteEvent(actorId: Int!, eventId: Int!): DeletedObject "Delete a feed token" deleteFeedToken(token: String!): DeletedFeedToken "Delete a group" deleteGroup(actorId: Int!, groupId: Int!): DeletedObject "Join an event" joinEvent(actorId: Int!, eventId: Int!): Participant "Join a group" joinGroup(actorId: Int!, groupId: Int!): Member "Leave an event" leaveEvent(actorId: Int!, eventId: Int!): DeletedParticipant "Leave an event" leaveGroup(actorId: Int!, groupId: Int!): DeletedMember "Login an user" login(email: String!, password: String!): Login "Register a first profile on registration" registerPerson( #The avatar for the profile, either as an object or directly the ID of an existing Picture avatar: PictureInput, #The banner for the profile, either as an object or directly the ID of an existing Picture banner: PictureInput, #The email from the user previously created email: String!, #The displayed name for the new profile name: String = "", preferredUsername: String!, #The summary for the new profile summary: String = "" ): Person "Resend registration confirmation token" resendConfirmationEmail(email: String!, locale: String = "en"): String "Reset user password" resetPassword(locale: String = "en", password: String!, token: String!): Login "Send a link through email to reset user password" sendResetPassword(email: String!, locale: String = "en"): String "Upload a picture" uploadPicture(actorId: ID!, alt: String, file: Upload!, name: String!): Picture "Validate an user after registration" validateUser(token: String!): Login } """ Root Query """ type RootQueryType { "Get the instance config" config: Config "Get an event by uuid" event(uuid: UUID!): Event "Get all events" events(limit: Int = 10, page: Int = 1): [Event] "Get a group by it's preferred username" group(preferredUsername: String!): Group "Get all groups" groups(limit: Int = 10, page: Int = 1): [Group] "Get the persons for an user" identities: [Person] "Get the current actor for the logged-in user" loggedPerson: Person "Get the current user" loggedUser: User "Get all participants for an event uuid" participants(limit: Int = 10, page: Int = 1, uuid: UUID!): [Participant] "Get a person by it's preferred username" person(preferredUsername: String!): Person "Get a picture" picture(id: String!): Picture "Reverse geocode coordinates" reverseGeocode(latitude: Float!, longitude: Float!): [Address] "Search for an address" searchAddress(query: String!): [Address] "Search events" searchEvents(limit: Int = 10, page: Int = 1, search: String!): Events "Search groups" searchGroups(limit: Int = 10, page: Int = 1, search: String!): Groups "Search persons" searchPersons(limit: Int = 10, page: Int = 1, search: String!): Persons "Get the list of tags" tags(limit: Int = 10, page: Int = 1): [Tag]! "Get an user" user(id: ID!): User "List instance users" users(direction: SortDirection = DESC, limit: Int = 10, page: Int = 1, sort: SortableUserField = ID): Users } "A tag" type Tag { "The tag's ID" id: ID "Related tags to this tag" related: [Tag] "The tags's slug" slug: String "The tag's title" title: String } "A local user of Mobilizon" type User { "The datetime the last activation/confirmation token was sent" confirmationSentAt: DateTime "The account activation/confirmation token" confirmationToken: String "The datetime when the user was confirmed/activated" confirmedAt: DateTime "The user's default actor" defaultActor: Person "The user's email" email: String! "A list of the feed tokens for this user" feedTokens: [FeedToken] "The user's ID" id: ID! "The user's list of profiles (identities)" profiles: [Person]! "The datetime last reset password email was sent" resetPasswordSentAt: DateTime "The token sent when requesting password token" resetPasswordToken: String } "Users list" type Users { "User elements" elements: [User]! "Total elements" total: Int! } "The list of types an actor can be" enum ActorType { #An ActivityPub Application APPLICATION #An ActivityPub Group GROUP #An ActivityPub Organization ORGANIZATION #An ActivityPub Person PERSON #An ActivityPub Service SERVICE } "The list of visibility options for a comment" enum CommentVisibility { #visible only to people invited INVITE #Visible only after a moderator accepted MODERATED #Visible only to people members of the group or followers of the person PRIVATE #Publically listed and federated. Can be shared. PUBLIC #Visible only to people with the link - or invited UNLISTED } "The list of possible options for the event's status" enum EventStatus { #The event is cancelled CANCELLED #The event is confirmed CONFIRMED #The event is tentative TENTATIVE } "The list of visibility options for an event" enum EventVisibility { #visible only to people invited INVITE #Visible only after a moderator accepted MODERATED #Visible only to people members of the group or followers of the person PRIVATE #Publically listed and federated. Can be shared. PUBLIC #Visible only to people with the link - or invited UNLISTED } """ The types of Group that exist """ enum GroupType { #A public group of many actors COMMUNITY #A private group of persons GROUP } """ Describes how an actor is opened to follows """ enum Openness { #The actor can only be followed by invitation INVITE_ONLY #The actor needs to accept the following before it's effective MODERATED #The actor is open to followings OPEN } "Available sort directions" enum SortDirection { ASC DESC } "The list of possible options for the event's status" enum SortableUserField { ID } "An attached picture or a link to a picture" input PictureInput { picture: PictureInputObject pictureId: String } "An attached picture" input PictureInputObject { actorId: ID alt: String file: Upload! name: String! } """ The `Point` scalar type represents Point geographic information compliant string data, represented as floats separated by a semi-colon. The geodetic system is WGS 84 """ scalar Point """ The `DateTime` scalar type represents a date and time in the UTC timezone. The DateTime appears in a JSON response as an ISO8601 formatted string, including UTC timezone (\"Z\"). The parsed date and time string will be converted to UTC and any UTC offset other than 0 will be rejected. """ scalar DateTime """ The `UUID` scalar type represents UUID4 compliant string data, represented as UTF-8 character sequences. The UUID4 type is most often used to represent unique human-readable ID strings. """ scalar UUID """ Represents an uploaded file. """ scalar Upload