version chapril de mobilizon
https://mobilizon.chapril.org/
You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
4175 lines
80 KiB
4175 lines
80 KiB
"Represents a schema" |
|
schema { |
|
query: RootQueryType |
|
mutation: RootMutationType |
|
subscription: RootSubscriptionType |
|
} |
|
|
|
"A JWT and the associated user ID" |
|
type Login { |
|
"A JWT Token for this session" |
|
accessToken: String! |
|
|
|
"A JWT Token to refresh the access token" |
|
refreshToken: String! |
|
|
|
"The user associated to this session" |
|
user: User! |
|
} |
|
|
|
"Instance anonymous participation configuration" |
|
type AnonymousParticipation { |
|
"Whether anonymous participations are allowed" |
|
allowed: Boolean |
|
|
|
"The ways to validate anonymous participations" |
|
validation: AnonymousParticipationValidation |
|
} |
|
|
|
"Available sort directions" |
|
enum SortDirection { |
|
"Ascending order" |
|
ASC |
|
|
|
"Descending order" |
|
DESC |
|
} |
|
|
|
"Token" |
|
type RefreshedToken { |
|
"Generated access token" |
|
accessToken: String! |
|
|
|
"Generated refreshed token" |
|
refreshToken: String! |
|
} |
|
|
|
"Represents an application" |
|
type Application implements Actor { |
|
"Internal ID for this application" |
|
id: ID |
|
|
|
"The ActivityPub actor's URL" |
|
url: String |
|
|
|
"The type of Actor (Person, Group,…)" |
|
type: ActorType |
|
|
|
"The actor's displayed name" |
|
name: String |
|
|
|
"The actor's domain if (null if it's this instance)" |
|
domain: String |
|
|
|
"If the actor is from this instance" |
|
local: Boolean |
|
|
|
"The actor's summary" |
|
summary: String |
|
|
|
"The actor's preferred username" |
|
preferredUsername: String |
|
|
|
"Whether the actors manually approves followers" |
|
manuallyApprovesFollowers: Boolean |
|
|
|
"If the actor is suspended" |
|
suspended: Boolean |
|
|
|
"The actor's avatar media" |
|
avatar: Media |
|
|
|
"The actor's banner media" |
|
banner: Media |
|
|
|
"Number of followers for this actor" |
|
followersCount: Int |
|
|
|
"Number of actors following this actor" |
|
followingCount: Int |
|
|
|
"The total size of the media from this actor" |
|
mediaSize: Int |
|
} |
|
|
|
"Instance anonymous event creation configuration" |
|
type AnonymousEventCreation { |
|
"Whether anonymous event creation is enabled" |
|
allowed: Boolean |
|
|
|
"The methods to validate events created anonymously" |
|
validation: AnonymousEventCreationValidation |
|
} |
|
|
|
"The list of values the for pending notification settings" |
|
enum NotificationPendingEnum { |
|
"None. The notification won't be sent." |
|
NONE |
|
|
|
"Direct. The notification will be sent right away each time." |
|
DIRECT |
|
|
|
"One hour. Notifications will be sent at most each hour" |
|
ONE_HOUR |
|
|
|
"One day. Notifications will be sent at most each day" |
|
ONE_DAY |
|
|
|
"One Week. Notifications will be sent at most each week" |
|
ONE_WEEK |
|
} |
|
|
|
"The possible values for a participant role" |
|
enum ParticipantRoleEnum { |
|
"The participant has not been approved" |
|
NOT_APPROVED |
|
|
|
"The participant has not confirmed their participation" |
|
NOT_CONFIRMED |
|
|
|
"The participant is a regular participant" |
|
PARTICIPANT |
|
|
|
"The participant is an event moderator" |
|
MODERATOR |
|
|
|
"The participant is an event administrator" |
|
ADMINISTRATOR |
|
|
|
"The participant is an event creator" |
|
CREATOR |
|
|
|
"The participant has been rejected from this event" |
|
REJECTED |
|
} |
|
|
|
"Available event sort fields" |
|
enum EventOrderBy { |
|
"Sort by the date the event starts" |
|
BEGINS_ON |
|
|
|
"Sort by the date the event was created" |
|
INSERTED_AT |
|
|
|
"Sort by the date the event was updated" |
|
UPDATED_AT |
|
} |
|
|
|
"A config object" |
|
type Config { |
|
"The instance's name" |
|
name: String |
|
|
|
"The instance's short description" |
|
description: String |
|
|
|
"The instance's long description" |
|
longDescription: String |
|
|
|
"The instance's slogan" |
|
slogan: String |
|
|
|
"The instance's contact details" |
|
contact: String |
|
|
|
"The instance's admins languages" |
|
languages: [String] |
|
|
|
"The instance list of event categories possibilities" |
|
eventCategories: [EventCategoryOption] |
|
|
|
"Whether the registrations are opened" |
|
registrationsOpen: Boolean |
|
|
|
"Whether the registration are on an allowlist" |
|
registrationsAllowlist: Boolean |
|
|
|
"Whether the demo mode is enabled" |
|
demoMode: Boolean |
|
|
|
"The country code from the IP" |
|
countryCode: String |
|
|
|
"The IP's location" |
|
location: Lonlat |
|
|
|
"The instance's geocoding settings" |
|
geocoding: Geocoding |
|
|
|
"The instance's maps settings" |
|
maps: Maps |
|
|
|
"The instance's anonymous action settings" |
|
anonymous: Anonymous |
|
|
|
"The instance's enabled resource providers" |
|
resourceProviders: [ResourceProvider] |
|
|
|
"The configuration for upload limits" |
|
uploadLimits: UploadLimits |
|
|
|
"The instance's available timezones" |
|
timezones: [String] |
|
|
|
"The instance's features" |
|
features: Features |
|
|
|
"The instance's restrictions" |
|
restrictions: Restrictions |
|
|
|
"The instance's version" |
|
version: String |
|
|
|
"Whether this instance is federation" |
|
federating: Boolean |
|
|
|
"The instance's terms" |
|
terms( |
|
"The user's locale. The terms will be translated in their language, if available." |
|
locale: String |
|
): Terms |
|
|
|
"The instance's privacy policy" |
|
privacy( |
|
"The user's locale. The privacy policy will be translated in their language, if available." |
|
locale: String |
|
): Privacy |
|
|
|
"The instance's rules" |
|
rules: String |
|
|
|
"The instance auth methods" |
|
auth: Auth |
|
|
|
"The instance's feed settings" |
|
instanceFeeds: InstanceFeeds |
|
|
|
"Web Push settings for the instance" |
|
webPush: WebPush |
|
|
|
"The instance list of export formats" |
|
exportFormats: ExportFormats |
|
|
|
"Configuration for diverse analytics services" |
|
analytics: [Analytics] |
|
} |
|
|
|
"A tag" |
|
type Tag { |
|
"The tag's ID" |
|
id: ID |
|
|
|
"The tags's slug" |
|
slug: String |
|
|
|
"The tag's title" |
|
title: String |
|
|
|
"Related tags to this tag" |
|
related: [Tag] |
|
} |
|
|
|
"Instance map routing configuration" |
|
type Routing { |
|
"The instance's routing type" |
|
type: RoutingType |
|
} |
|
|
|
"Language information" |
|
type Language { |
|
"The iso-639-3 language code" |
|
code: String |
|
|
|
"The language name" |
|
name: String |
|
} |
|
|
|
"The list of roles an user can have" |
|
enum UserRole { |
|
"Administrator role" |
|
ADMINISTRATOR |
|
|
|
"Moderator role" |
|
MODERATOR |
|
|
|
"User role" |
|
USER |
|
} |
|
|
|
""" |
|
A list of possible values for the type option to search an address. |
|
|
|
Results may vary depending on the geocoding provider. |
|
""" |
|
enum AddressSearchType { |
|
"Administrative results (cities, regions,...)" |
|
ADMINISTRATIVE |
|
} |
|
|
|
"A todo list" |
|
type TodoList { |
|
"The todo list's ID" |
|
id: ID |
|
|
|
"The todo list's title" |
|
title: String |
|
|
|
"The actor that owns this todo list" |
|
actor: Actor |
|
|
|
"The todo-list's todos" |
|
todos( |
|
"The page in the paginated todos list" |
|
page: Int |
|
|
|
"The limit of todos per page" |
|
limit: Int |
|
): PaginatedTodoList |
|
} |
|
|
|
"Represents a participant to an event" |
|
type Participant { |
|
"The participation ID" |
|
id: ID |
|
|
|
"The event which the actor participates in" |
|
event: Event |
|
|
|
"The actor that participates to the event" |
|
actor: Actor |
|
|
|
"The role of this actor at this event" |
|
role: ParticipantRoleEnum |
|
|
|
"The metadata associated to this participant" |
|
metadata: ParticipantMetadata |
|
|
|
"The datetime this participant was created" |
|
insertedAt: DateTime |
|
} |
|
|
|
"The list of sortable fields for an user list" |
|
enum SortableUserField { |
|
"The user's ID" |
|
ID |
|
} |
|
|
|
interface ActivityObject { |
|
id: ID |
|
} |
|
|
|
"A paginated list of activity items" |
|
type PaginatedActivityList { |
|
"A list of activities" |
|
elements: [Activity] |
|
|
|
"The total number of elements in the list" |
|
total: Int |
|
} |
|
|
|
""" |
|
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 |
|
|
|
"A paginated list of instances" |
|
type PaginatedInstanceList { |
|
"A list of instances" |
|
elements: [Instance] |
|
|
|
"The total number of instances in the list" |
|
total: Int |
|
} |
|
|
|
"A paginated list of discussions" |
|
type PaginatedDiscussionList { |
|
"A list of discussion" |
|
elements: [Discussion] |
|
|
|
"The total number of discussions in the list" |
|
total: Int |
|
} |
|
|
|
"The set of parameters needed to input a location" |
|
input LocationInput { |
|
"The range in kilometers the user wants to see events" |
|
range: Int |
|
|
|
"A geohash representing the user's preferred location" |
|
geohash: String |
|
|
|
"A string describing the user's preferred location" |
|
name: String |
|
} |
|
|
|
"The objects that can be in an action log" |
|
interface ActionLogObject { |
|
"Internal ID for this object" |
|
id: ID |
|
} |
|
|
|
"Represents an uploaded file." |
|
scalar Upload |
|
|
|
"A paginated list of posts" |
|
type PaginatedPostList { |
|
"A list of posts" |
|
elements: [Post] |
|
|
|
"The total number of posts in the list" |
|
total: Int |
|
} |
|
|
|
"A comment" |
|
type Comment implements ActivityObject & ActionLogObject { |
|
"Internal ID for this comment" |
|
id: ID |
|
|
|
"An UUID for this comment" |
|
uuid: UUID |
|
|
|
"Comment URL" |
|
url: String |
|
|
|
"Whether this comment is local or not" |
|
local: Boolean |
|
|
|
"The visibility for the comment" |
|
visibility: CommentVisibility |
|
|
|
"The comment body" |
|
text: String |
|
|
|
"The comment's primary language" |
|
primaryLanguage: String |
|
|
|
"A list of replies to the comment" |
|
replies: [Comment] |
|
|
|
"The number of total known replies to this comment" |
|
totalReplies: Int |
|
|
|
"The comment this comment directly replies to" |
|
inReplyToComment: Comment |
|
|
|
"The eventual event this comment is under" |
|
event: Event |
|
|
|
"The original comment that started the thread this comment is in" |
|
originComment: Comment |
|
|
|
"The thread languages" |
|
threadLanguages: [String]! |
|
|
|
"The comment's author" |
|
actor: Person |
|
|
|
"When was the comment inserted in database" |
|
insertedAt: DateTime |
|
|
|
"When was the comment updated" |
|
updatedAt: DateTime |
|
|
|
"When was the comment deleted" |
|
deletedAt: DateTime |
|
|
|
"When was the comment published" |
|
publishedAt: DateTime |
|
|
|
"Whether this comment needs to be announced to participants" |
|
isAnnouncement: Boolean! |
|
|
|
"The comment language" |
|
language: String |
|
} |
|
|
|
"An attached media or a link to a media" |
|
input MediaInput { |
|
"A full media attached" |
|
media: MediaInputObject |
|
|
|
"The ID of an existing media" |
|
mediaId: ID |
|
} |
|
|
|
"Instance anonymous reports" |
|
type AnonymousReports { |
|
"Whether anonymous reports are allowed" |
|
allowed: Boolean |
|
} |
|
|
|
"Search events result" |
|
type Events { |
|
"Total elements" |
|
total: Int! |
|
|
|
"Event elements" |
|
elements: [Event]! |
|
} |
|
|
|
"Instance maps configuration" |
|
type Maps { |
|
"The instance's maps tiles configuration" |
|
tiles: Tiles |
|
|
|
"The instance's maps routing configuration" |
|
routing: Routing |
|
} |
|
|
|
"Search groups result" |
|
type Groups { |
|
"Total elements" |
|
total: Int! |
|
|
|
"Group elements" |
|
elements: [Group]! |
|
} |
|
|
|
"The list of possible statuses for a report object" |
|
enum ReportStatus { |
|
"The report has been opened" |
|
OPEN |
|
|
|
"The report has been closed" |
|
CLOSED |
|
|
|
"The report has been marked as resolved" |
|
RESOLVED |
|
} |
|
|
|
enum ActivityAuthor { |
|
"Activities created by the current actor" |
|
SELF |
|
|
|
"Activities created by others" |
|
BY |
|
} |
|
|
|
"The metadata associated to the resource" |
|
type ResourceMetadata { |
|
"The type of the resource" |
|
type: String |
|
|
|
"The resource's metadata title" |
|
title: String |
|
|
|
"The resource's metadata description" |
|
description: String |
|
|
|
"The resource's metadata image" |
|
imageRemoteUrl: String |
|
|
|
"The resource's metadata image width" |
|
width: Int |
|
|
|
"The resource's metadata image height" |
|
height: Int |
|
|
|
"The resource's author name" |
|
authorName: String |
|
|
|
"The resource's author URL" |
|
authorUrl: String |
|
|
|
"The resource's provider name" |
|
providerName: String |
|
|
|
"The resource's provider URL" |
|
providerUrl: String |
|
|
|
"The resource's author name" |
|
html: String |
|
|
|
"The resource's favicon URL" |
|
faviconUrl: String |
|
} |
|
|
|
"Metadata about a participant" |
|
type ParticipantMetadata { |
|
"The eventual token to leave an event when user is anonymous" |
|
cancellationToken: String |
|
|
|
"The eventual message the participant left" |
|
message: String |
|
|
|
"The participant's locale" |
|
locale: String |
|
} |
|
|
|
"A media" |
|
type Media { |
|
"The media's ID" |
|
id: ID |
|
|
|
"The media's alternative text" |
|
alt: String |
|
|
|
"The media's name" |
|
name: String |
|
|
|
"The media's full URL" |
|
url: String |
|
|
|
"The media's detected content type" |
|
contentType: String |
|
|
|
"The media's size" |
|
size: Int |
|
|
|
"The media's metadata" |
|
metadata: MediaMetadata |
|
} |
|
|
|
"Instance anonymous participation with validation by captcha configuration" |
|
type AnonymousParticipationValidationCaptcha { |
|
"Whether anonymous participation validation by captcha is enabled" |
|
enabled: Boolean |
|
} |
|
|
|
"Instance anonymous event creation captcha validation configuration" |
|
type AnonymousEventCreationValidationCaptcha { |
|
"Whether anonymous event creation with validation by captcha is enabled" |
|
enabled: Boolean |
|
} |
|
|
|
"A todo" |
|
type Todo { |
|
"The todo's ID" |
|
id: ID |
|
|
|
"The todo's title" |
|
title: String |
|
|
|
"The todo's status" |
|
status: Boolean |
|
|
|
"The todo's due date" |
|
dueDate: DateTime |
|
|
|
"The todo's creator" |
|
creator: Actor |
|
|
|
"The todo list this todo is attached to" |
|
todoList: TodoList |
|
|
|
"The todos's assigned person" |
|
assignedTo: Actor |
|
} |
|
|
|
"Root subscription" |
|
type RootSubscriptionType { |
|
"Notify when a person's participation's status changed for an event" |
|
eventPersonParticipationChanged( |
|
"The person's ID" |
|
personId: ID! |
|
): Person |
|
|
|
"Notify when a person's membership's status changed for a group" |
|
groupMembershipChanged( |
|
"The person's ID" |
|
personId: ID! |
|
|
|
"The group's federated username" |
|
group: String! |
|
): Person |
|
|
|
"Notify when a discussion changed" |
|
discussionCommentChanged( |
|
"The discussion's slug" |
|
slug: String! |
|
): Discussion |
|
} |
|
|
|
"Event categories list configuration" |
|
type EventCategoryOption { |
|
"The ID of the event category" |
|
id: String |
|
|
|
"The translated name of the event category" |
|
label: String |
|
} |
|
|
|
type AnalyticsConfiguration { |
|
"The key for the analytics configuration element" |
|
key: String |
|
|
|
"The value for the analytics configuration element" |
|
value: String |
|
|
|
"The analytics configuration type" |
|
type: AnalyticsConfigurationType |
|
} |
|
|
|
"Represents a deleted feed_token" |
|
type DeletedFeedToken { |
|
"The user that owned the deleted feed token" |
|
user: DeletedObject |
|
|
|
"The actor that owned the deleted feed token" |
|
actor: DeletedObject |
|
} |
|
|
|
"Instance anonymous participation validation configuration" |
|
type AnonymousParticipationValidation { |
|
"The policy to validate anonymous participations by email" |
|
email: AnonymousParticipationValidationEmail |
|
|
|
"The policy to validate anonymous participations by captcha" |
|
captcha: AnonymousParticipationValidationCaptcha |
|
} |
|
|
|
type Location { |
|
"The range in kilometers the user wants to see events" |
|
range: Int |
|
|
|
"A geohash representing the user's preferred location" |
|
geohash: String |
|
|
|
"A string describing the user's preferred location" |
|
name: String |
|
} |
|
|
|
enum ExportFormatEnum { |
|
"CSV format" |
|
CSV |
|
|
|
"PDF format" |
|
PDF |
|
|
|
"ODS format" |
|
ODS |
|
} |
|
|
|
"The list of visibility options for a comment" |
|
enum CommentVisibility { |
|
"Publicly listed and federated. Can be shared." |
|
PUBLIC |
|
|
|
"Visible only to people with the link - or invited" |
|
UNLISTED |
|
|
|
"Visible only to people members of the group or followers of the person" |
|
PRIVATE |
|
|
|
"Visible only after a moderator accepted" |
|
MODERATED |
|
|
|
"visible only to people invited" |
|
INVITE |
|
} |
|
|
|
"The list of visibility options for an event" |
|
enum EventVisibility { |
|
"Publicly listed and federated. Can be shared." |
|
PUBLIC |
|
|
|
"Visible only to people with the link - or invited" |
|
UNLISTED |
|
|
|
"Visible only after a moderator accepted" |
|
RESTRICTED |
|
|
|
"Visible only to people members of the group or followers of the person" |
|
PRIVATE |
|
} |
|
|
|
"The instance's auth configuration" |
|
type Auth { |
|
"Whether or not LDAP auth is enabled" |
|
ldap: Boolean |
|
|
|
"List of oauth providers" |
|
oauthProviders: [OauthProvider] |
|
} |
|
|
|
"An action log" |
|
type ActionLog { |
|
"Internal ID for this comment" |
|
id: ID |
|
|
|
"The actor that acted" |
|
actor: Actor |
|
|
|
"The object that was acted upon" |
|
object: ActionLogObject |
|
|
|
"The action that was done" |
|
action: ActionLogAction |
|
|
|
"The time when the action was performed" |
|
insertedAt: DateTime |
|
} |
|
|
|
"The acceptable values for the instance's terms type" |
|
enum InstanceTermsType { |
|
"An URL. Users will be redirected to this URL." |
|
URL |
|
|
|
"Terms will be set to Mobilizon's default terms" |
|
DEFAULT |
|
|
|
"Custom terms text" |
|
CUSTOM |
|
} |
|
|
|
"A entity that can be interacted with from a remote instance" |
|
interface Interactable { |
|
"A public URL for the entity" |
|
url: String |
|
} |
|
|
|
enum EventType { |
|
"The event will happen in person. It can also be livestreamed, but has a physical address" |
|
IN_PERSON |
|
|
|
"The event will only happen online. It has no physical address" |
|
ONLINE |
|
} |
|
|
|
enum EventMetadataType { |
|
"A string" |
|
STRING |
|
|
|
"An integer" |
|
INTEGER |
|
|
|
"A boolean" |
|
BOOLEAN |
|
} |
|
|
|
enum RoutingType { |
|
"Redirect to openstreetmap.org's direction endpoint" |
|
OPENSTREETMAP |
|
|
|
"Redirect to Google Maps's direction endpoint" |
|
GOOGLE_MAPS |
|
} |
|
|
|
"A struct containing the id of the deleted object" |
|
type DeletedObject { |
|
id: ID |
|
} |
|
|
|
"A follow group event" |
|
type FollowedGroupEvent { |
|
user: User |
|
profile: Person |
|
group: Group |
|
event: Event |
|
} |
|
|
|
"A paginated list of comments" |
|
type PaginatedCommentList { |
|
"A list of comments" |
|
elements: [Comment] |
|
|
|
"The total number of comments in the list" |
|
total: Int |
|
} |
|
|
|
"A paginated list of members" |
|
type PaginatedMemberList { |
|
"A list of members" |
|
elements: [Member] |
|
|
|
"The total number of elements in the list" |
|
total: Int |
|
} |
|
|
|
"A post" |
|
type Post implements ActivityObject { |
|
"The post's ID" |
|
id: ID |
|
|
|
"The post's title" |
|
title: String |
|
|
|
"The post's slug" |
|
slug: String |
|
|
|
"The post's body, as HTML" |
|
body: String |
|
|
|
"The post's URL" |
|
url: String |
|
|
|
"Whether the post is a draft" |
|
draft: Boolean |
|
|
|
"The post's author" |
|
author: Actor |
|
|
|
"The post's group" |
|
attributedTo: Actor |
|
|
|
"The post's visibility" |
|
visibility: PostVisibility |
|
|
|
"When the post was published" |
|
publishAt: DateTime |
|
|
|
"The post's creation date" |
|
insertedAt: DateTime |
|
|
|
"The post's last update date" |
|
updatedAt: DateTime |
|
|
|
"The post language" |
|
language: String |
|
|
|
"The post's tags" |
|
tags: [Tag] |
|
|
|
"The posts's media" |
|
picture: Media |
|
} |
|
|
|
"A paginated list of action logs" |
|
type PaginatedActionLogList { |
|
"A list of action logs" |
|
elements: [ActionLog] |
|
|
|
"The total number of action logs in the list" |
|
total: Int |
|
} |
|
|
|
"A paginated list of events" |
|
type PaginatedEventList { |
|
"A list of events" |
|
elements: [Event] |
|
|
|
"The total number of events in the list" |
|
total: Int |
|
} |
|
|
|
"Represents a deleted participant" |
|
type DeletedParticipant { |
|
"The participant ID" |
|
id: ID |
|
|
|
"The participant's event" |
|
event: DeletedObject |
|
|
|
"The participant's actor" |
|
actor: DeletedObject |
|
} |
|
|
|
"A paginated list of follower objects" |
|
type PaginatedFollowerList { |
|
"A list of followers" |
|
elements: [Follower] |
|
|
|
"The total number of elements in the list" |
|
total: Int |
|
} |
|
|
|
type Analytics { |
|
"ID of the analytics service" |
|
id: String |
|
|
|
"Whether the service is activated or not" |
|
enabled: Boolean |
|
|
|
"A list of key-values configuration" |
|
configuration: [AnalyticsConfiguration] |
|
} |
|
|
|
enum InstancesSortFields { |
|
EVENT_COUNT |
|
PERSON_COUNT |
|
GROUP_COUNT |
|
FOLLOWERS_COUNT |
|
FOLLOWINGS_COUNT |
|
REPORTS_COUNT |
|
MEDIA_SIZE |
|
} |
|
|
|
"The list of possible options for the event's status" |
|
enum EventStatus { |
|
"The event is tentative" |
|
TENTATIVE |
|
|
|
"The event is confirmed" |
|
CONFIRMED |
|
|
|
"The event is cancelled" |
|
CANCELLED |
|
} |
|
|
|
"A statistics object" |
|
type Statistics { |
|
"The number of local users" |
|
numberOfUsers: Int |
|
|
|
"The total number of events" |
|
numberOfEvents: Int |
|
|
|
"The number of local events" |
|
numberOfLocalEvents: Int |
|
|
|
"The total number of comments" |
|
numberOfComments: Int |
|
|
|
"The number of local events" |
|
numberOfLocalComments: Int |
|
|
|
"The total number of groups" |
|
numberOfGroups: Int |
|
|
|
"The number of local groups" |
|
numberOfLocalGroups: Int |
|
|
|
"The number of this instance's followers" |
|
numberOfInstanceFollowers: Int |
|
|
|
"The number of instances this instance follows" |
|
numberOfInstanceFollowings: Int |
|
} |
|
|
|
"Export formats configuration" |
|
type ExportFormats { |
|
"The list of formats the event participants can be exported to" |
|
eventParticipants: [String] |
|
} |
|
|
|
"Search persons result" |
|
type Persons { |
|
"Total elements" |
|
total: Int! |
|
|
|
"Person elements" |
|
elements: [Person]! |
|
} |
|
|
|
"An oAuth Provider" |
|
type OauthProvider { |
|
"The provider ID" |
|
id: String |
|
|
|
"The label for the auth provider" |
|
label: String |
|
} |
|
|
|
"An ActivityPub actor" |
|
interface Actor { |
|
"Internal ID for this actor" |
|
id: ID |
|
|
|
"The ActivityPub actor's URL" |
|
url: String |
|
|
|
"The type of Actor (Person, Group,…)" |
|
type: ActorType |
|
|
|
"The actor's displayed name" |
|
name: String |
|
|
|
"The actor's domain if (null if it's this instance)" |
|
domain: String |
|
|
|
"If the actor is from this instance" |
|
local: Boolean |
|
|
|
"The actor's summary" |
|
summary: String |
|
|
|
"The actor's preferred username" |
|
preferredUsername: String |
|
|
|
"Whether the actors manually approves followers" |
|
manuallyApprovesFollowers: Boolean |
|
|
|
"If the actor is suspended" |
|
suspended: Boolean |
|
|
|
"The actor's avatar media" |
|
avatar: Media |
|
|
|
"The actor's banner media" |
|
banner: Media |
|
|
|
"Number of followers for this actor" |
|
followersCount: Int |
|
|
|
"Number of actors following this actor" |
|
followingCount: Int |
|
|
|
"The total size of the media from this actor" |
|
mediaSize: Int |
|
} |
|
|
|
"Some metadata associated with a media" |
|
type MediaMetadata { |
|
"The media width (if a picture)" |
|
width: Int |
|
|
|
"The media width (if a height)" |
|
height: Int |
|
|
|
"The media blurhash (if a picture" |
|
blurhash: String |
|
} |
|
|
|
"Instance anonymous event creation validation configuration" |
|
type AnonymousEventCreationValidation { |
|
"The policy to validate anonymous event creations by email" |
|
email: AnonymousEventCreationValidationEmail |
|
|
|
"The policy to validate anonymous event creations by captcha" |
|
captcha: AnonymousEventCreationValidationCaptcha |
|
} |
|
|
|
"The list of possible options for the event's status" |
|
enum EventCommentModeration { |
|
"Anyone can comment under the event" |
|
ALLOW_ALL |
|
|
|
"Every comment has to be moderated by the admin" |
|
MODERATED |
|
|
|
"No one can comment except for the admin" |
|
CLOSED |
|
} |
|
|
|
"Represents a person identity" |
|
type Person implements ActionLogObject & Actor { |
|
"Internal ID for this person" |
|
id: ID |
|
|
|
"The user this actor is associated to" |
|
user: User |
|
|
|
"The list of groups this person is member of" |
|
memberOf: [Member] |
|
|
|
"The ActivityPub actor's URL" |
|
url: String |
|
|
|
"The type of Actor (Person, Group,…)" |
|
type: ActorType |
|
|
|
"The actor's displayed name" |
|
name: String |
|
|
|
"The actor's domain if (null if it's this instance)" |
|
domain: String |
|
|
|
"If the actor is from this instance" |
|
local: Boolean |
|
|
|
"The actor's summary" |
|
summary: String |
|
|
|
"The actor's preferred username" |
|
preferredUsername: String |
|
|
|
"Whether the actors manually approves followers" |
|
manuallyApprovesFollowers: Boolean |
|
|
|
"If the actor is suspended" |
|
suspended: Boolean |
|
|
|
"The actor's avatar media" |
|
avatar: Media |
|
|
|
"The actor's banner media" |
|
banner: Media |
|
|
|
"Number of followers for this actor" |
|
followersCount: Int |
|
|
|
"Number of actors following this actor" |
|
followingCount: Int |
|
|
|
"The total size of the media from this actor" |
|
mediaSize: Int |
|
|
|
"A list of the feed tokens for this person" |
|
feedTokens: [FeedToken] |
|
|
|
"A list of the events this actor has organized" |
|
organizedEvents( |
|
"The page in the paginated event list" |
|
page: Int |
|
|
|
"The limit of events per page" |
|
limit: Int |
|
): PaginatedEventList |
|
|
|
"The list of events this person goes to" |
|
participations( |
|
"Filter by event ID" |
|
eventId: ID |
|
|
|
"The page in the paginated participation list" |
|
page: Int |
|
|
|
"The limit of participations per page" |
|
limit: Int |
|
): PaginatedParticipantList |
|
|
|
"The list of groups this person is member of" |
|
memberships( |
|
"Filter by group federated username" |
|
group: String |
|
|
|
"Filter by group ID" |
|
groupId: ID |
|
|
|
"The page in the paginated memberships list" |
|
page: Int |
|
|
|
"The limit of memberships per page" |
|
limit: Int |
|
): PaginatedMemberList |
|
|
|
"The list of groups this person follows" |
|
follows( |
|
"Filter by group federated username" |
|
group: String |
|
|
|
"The page in the follows list" |
|
page: Int |
|
|
|
"The limit of follows per page" |
|
limit: Int |
|
): PaginatedFollowerList |
|
} |
|
|
|
"Root Mutation" |
|
type RootMutationType { |
|
"Create an user" |
|
createUser( |
|
"The new user's email" |
|
email: String! |
|
|
|
"The new user's password" |
|
password: String! |
|
|
|
"The new user's locale" |
|
locale: String |
|
): User |
|
|
|
"Validate an user after registration" |
|
validateUser( |
|
"The token that will be used to validate the user" |
|
token: String! |
|
): Login |
|
|
|
"Resend registration confirmation token" |
|
resendConfirmationEmail( |
|
"The email used to register" |
|
email: String! |
|
|
|
"The user's locale" |
|
locale: String |
|
): String |
|
|
|
"Send a link through email to reset user password" |
|
sendResetPassword( |
|
"The user's email" |
|
email: String! |
|
|
|
"The user's locale" |
|
locale: String |
|
): String |
|
|
|
"Reset user password" |
|
resetPassword( |
|
"The user's token that will be used to reset the password" |
|
token: String! |
|
|
|
"The new password" |
|
password: String! |
|
|
|
"The user's locale" |
|
locale: String |
|
): Login |
|
|
|
"Login an user" |
|
login( |
|
"The user's email" |
|
email: String! |
|
|
|
"The user's password" |
|
password: String! |
|
): Login |
|
|
|
"Refresh a token" |
|
refreshToken( |
|
"A refresh token" |
|
refreshToken: String! |
|
): RefreshedToken |
|
|
|
"Logout an user, deleting a refresh token" |
|
logout(refreshToken: String!): String |
|
|
|
"Change default actor for user" |
|
changeDefaultActor( |
|
"The actor preferred_username" |
|
preferredUsername: String! |
|
): User |
|
|
|
"Change an user password" |
|
changePassword( |
|
"The user's current password" |
|
oldPassword: String! |
|
|
|
"The user's new password" |
|
newPassword: String! |
|
): User |
|
|
|
"Change an user email" |
|
changeEmail( |
|
"The user's new email" |
|
email: String! |
|
|
|
"The user's current password" |
|
password: String! |
|
): User |
|
|
|
"Validate an user email" |
|
validateEmail( |
|
"The token that will be used to validate the email change" |
|
token: String! |
|
): User |
|
|
|
"Delete an account" |
|
deleteAccount( |
|
"The user's password" |
|
password: String |
|
|
|
"The user's ID" |
|
userId: ID |
|
): DeletedObject |
|
|
|
"Set user settings" |
|
setUserSettings( |
|
"The timezone for this user" |
|
timezone: String |
|
|
|
"Whether this user will receive an email at the start of the day of an event." |
|
notificationOnDay: Boolean |
|
|
|
"Whether this user will receive an weekly event recap" |
|
notificationEachWeek: Boolean |
|
|
|
"Whether this user will receive a notification right before event" |
|
notificationBeforeEvent: Boolean |
|
|
|
"When does the user receives a notification about new pending participations" |
|
notificationPendingParticipation: NotificationPendingEnum |
|
|
|
"When does the user receives a notification about a new pending membership in one of the group they're admin for" |
|
notificationPendingMembership: NotificationPendingEnum |
|
|
|
"When does the user receives a notification about new activity" |
|
groupNotifications: NotificationPendingEnum |
|
|
|
"A geohash of the user's preferred location, where they want to see events" |
|
location: LocationInput |
|
): UserSettings |
|
|
|
"Update the user's locale" |
|
updateLocale( |
|
"The user's new locale" |
|
locale: String |
|
): User |
|
|
|
"Create a new person for user" |
|
createPerson( |
|
"The username for the profile" |
|
preferredUsername: String! |
|
|
|
"The displayed name for the new profile" |
|
name: String |
|
|
|
"The summary for the new profile" |
|
summary: String |
|
|
|
"The avatar for the profile, either as an object or directly the ID of an existing media" |
|
avatar: MediaInput |
|
|
|
"The banner for the profile, either as an object or directly the ID of an existing media" |
|
banner: MediaInput |
|
): Person |
|
|
|
"Update an identity" |
|
updatePerson( |
|
"The person's ID" |
|
id: ID! |
|
|
|
"The displayed name for this profile" |
|
name: String |
|
|
|
"The summary for this profile" |
|
summary: String |
|
|
|
"The avatar for the profile, either as an object or directly the ID of an existing media" |
|
avatar: MediaInput |
|
|
|
"The banner for the profile, either as an object or directly the ID of an existing media" |
|
banner: MediaInput |
|
): Person |
|
|
|
"Delete an identity" |
|
deletePerson( |
|
"The person's ID" |
|
id: ID! |
|
): Person |
|
|
|
"Register a first profile on registration" |
|
registerPerson( |
|
"The username for the profile" |
|
preferredUsername: String! |
|
|
|
"The displayed name for the new profile" |
|
name: String |
|
|
|
"The summary for the new profile" |
|
summary: String |
|
|
|
"The email from the user previously created" |
|
email: String! |
|
|
|
"The avatar for the profile, either as an object or directly the ID of an existing media" |
|
avatar: MediaInput |
|
|
|
"The banner for the profile, either as an object or directly the ID of an existing media" |
|
banner: MediaInput |
|
): Person |
|
|
|
"Create a group" |
|
createGroup( |
|
"The name for the group" |
|
preferredUsername: String! |
|
|
|
"The displayed name for the group" |
|
name: String |
|
|
|
"The summary for the group" |
|
summary: String |
|
|
|
"The visibility for the group" |
|
visibility: GroupVisibility |
|
|
|
"Whether the group can be join freely, with approval or is invite-only." |
|
openness: Openness |
|
|
|
"The avatar for the group, either as an object or directly the ID of an existing media" |
|
avatar: MediaInput |
|
|
|
"The banner for the group, either as an object or directly the ID of an existing media" |
|
banner: MediaInput |
|
|
|
"The physical address for the group" |
|
physicalAddress: AddressInput |
|
): Group |
|
|
|
"Update a group" |
|
updateGroup( |
|
"The group ID" |
|
id: ID! |
|
|
|
"The displayed name for the group" |
|
name: String |
|
|
|
"The summary for the group" |
|
summary: String |
|
|
|
"The visibility for the group" |
|
visibility: GroupVisibility |
|
|
|
"Whether the group can be join freely, with approval or is invite-only." |
|
openness: Openness |
|
|
|
"Whether this group approves new followers manually" |
|
manuallyApprovesFollowers: Boolean |
|
|
|
"The avatar for the group, either as an object or directly the ID of an existing media" |
|
avatar: MediaInput |
|
|
|
"The banner for the group, either as an object or directly the ID of an existing media" |
|
banner: MediaInput |
|
|
|
"The physical address for the group" |
|
physicalAddress: AddressInput |
|
): Group |
|
|
|
"Delete a group" |
|
deleteGroup( |
|
"The group ID" |
|
groupId: ID! |
|
): DeletedObject |
|
|
|
"Follow a group" |
|
followGroup( |
|
"The group ID" |
|
groupId: ID! |
|
|
|
"Whether to notify profile from group activity" |
|
notify: Boolean |
|
): Follower |
|
|
|
"Update a group follow" |
|
updateGroupFollow( |
|
"The follow ID" |
|
followId: ID! |
|
|
|
"Whether to notify profile from group activity" |
|
notify: Boolean |
|
): Follower |
|
|
|
"Unfollow a group" |
|
unfollowGroup( |
|
"The group ID" |
|
groupId: ID! |
|
): Follower |
|
|
|
"Create an event" |
|
createEvent( |
|
"The event's title" |
|
title: String! |
|
|
|
"The event's description" |
|
description: String! |
|
|
|
"Datetime for when the event begins" |
|
beginsOn: DateTime! |
|
|
|
"Datetime for when the event ends" |
|
endsOn: DateTime |
|
|
|
"Status of the event" |
|
status: EventStatus |
|
|
|
"The event's visibility" |
|
visibility: EventVisibility |
|
|
|
"The event's options to join" |
|
joinOptions: EventJoinOptions |
|
|
|
"The list of tags associated to the event" |
|
tags: [String] |
|
|
|
"The picture for the event, either as an object or directly the ID of an existing media" |
|
picture: MediaInput |
|
|
|
"Datetime when the event was published" |
|
publishAt: DateTime |
|
|
|
"Online address of the event" |
|
onlineAddress: String |
|
|
|
"Phone address for the event" |
|
phoneAddress: String |
|
|
|
"The event's organizer ID (as a person)" |
|
organizerActorId: ID! |
|
|
|
"Who the event is attributed to ID (often a group)" |
|
attributedToId: ID |
|
|
|
"The event's category" |
|
category: EventCategory |
|
|
|
"The event's physical address" |
|
physicalAddress: AddressInput |
|
|
|
"The event options" |
|
options: EventOptionsInput |
|
|
|
"The event metadata" |
|
metadata: [EventMetadataInput] |
|
|
|
"Whether or not the event is a draft" |
|
draft: Boolean |
|
|
|
"The events contacts" |
|
contacts: [Contact] |
|
|
|
"The event language" |
|
language: String |
|
): Event |
|
|
|
"Update an event" |
|
updateEvent( |
|
"The event's ID" |
|
eventId: ID! |
|
|
|
"The event's title" |
|
title: String |
|
|
|
"The event's description" |
|
description: String |
|
|
|
"Datetime for when the event begins" |
|
beginsOn: DateTime |
|
|
|
"Datetime for when the event ends" |
|
endsOn: DateTime |
|
|
|
"Status of the event" |
|
status: EventStatus |
|
|
|
"The event's visibility" |
|
visibility: EventVisibility |
|
|
|
"The event's options to join" |
|
joinOptions: EventJoinOptions |
|
|
|
"The list of tags associated to the event" |
|
tags: [String] |
|
|
|
"The picture for the event, either as an object or directly the ID of an existing media" |
|
picture: MediaInput |
|
|
|
"Online address of the event" |
|
onlineAddress: String |
|
|
|
"Phone address for the event" |
|
phoneAddress: String |
|
|
|
"The event's organizer ID (as a person)" |
|
organizerActorId: ID |
|
|
|
"Who the event is attributed to ID (often a group)" |
|
attributedToId: ID |
|
|
|
"The event's category" |
|
category: EventCategory |
|
|
|
"The event's physical address" |
|
physicalAddress: AddressInput |
|
|
|
"The event options" |
|
options: EventOptionsInput |
|
|
|
"The event metadata" |
|
metadata: [EventMetadataInput] |
|
|
|
"Whether or not the event is a draft" |
|
draft: Boolean |
|
|
|
"The events contacts" |
|
contacts: [Contact] |
|
|
|
"The event language" |
|
language: String |
|
): Event |
|
|
|
"Delete an event" |
|
deleteEvent( |
|
"The event ID to delete" |
|
eventId: ID! |
|
): DeletedObject |
|
|
|
"Create a comment" |
|
createComment( |
|
"The comment's body" |
|
text: String! |
|
|
|
"The event under which this comment is" |
|
eventId: ID! |
|
|
|
"The comment ID this one replies to" |
|
inReplyToCommentId: ID |
|
|
|
"The comment language" |
|
language: String |
|
|
|
"Should this comment be announced to everyone?" |
|
isAnnouncement: Boolean |
|
): Comment |
|
|
|
"Update a comment" |
|
updateComment( |
|
"The comment updated body" |
|
text: String! |
|
|
|
"The comment ID" |
|
commentId: ID! |
|
|
|
"The comment language" |
|
language: String |
|
|
|
"Should this comment be announced to everyone?" |
|
isAnnouncement: Boolean |
|
): Comment |
|
|
|
"Delete a single comment" |
|
deleteComment( |
|
"The comment ID" |
|
commentId: ID! |
|
): Comment |
|
|
|
"Join an event" |
|
joinEvent( |
|
"The event ID that is joined" |
|
eventId: ID! |
|
|
|
"The actor ID for the participant" |
|
actorId: ID! |
|
|
|
"The anonymous participant's email" |
|
email: String |
|
|
|
"The anonymous participant's message" |
|
message: String |
|
|
|
"The anonymous participant's locale" |
|
locale: String |
|
|
|
"The anonymous participant's timezone" |
|
timezone: String |
|
): Participant |
|
|
|
"Leave an event" |
|
leaveEvent( |
|
"The event ID the participant left" |
|
eventId: ID! |
|
|
|
"The actor ID for the participant" |
|
actorId: ID! |
|
|
|
"The anonymous participant participation token" |
|
token: String |
|
): DeletedParticipant |
|
|
|
"Update a participation" |
|
updateParticipation( |
|
"The participant ID" |
|
id: ID! |
|
|
|
"The participant new role" |
|
role: ParticipantRoleEnum! |
|
): Participant |
|
|
|
"Confirm a participation" |
|
confirmParticipation( |
|
"The participation token" |
|
confirmationToken: String! |
|
): Participant |
|
|
|
"Export the event participants as a file" |
|
exportEventParticipants( |
|
"The ID from the event for which to export participants" |
|
eventId: ID! |
|
|
|
"The participant roles to include" |
|
roles: [ParticipantRoleEnum] |
|
|
|
"The format in which to return the file" |
|
format: ExportFormatEnum |
|
): String |
|
|
|
"Join a group" |
|
joinGroup( |
|
"The group ID" |
|
groupId: ID! |
|
): Member |
|
|
|
"Leave a group" |
|
leaveGroup( |
|
"The group ID" |
|
groupId: ID! |
|
): DeletedObject |
|
|
|
"Invite an actor to join the group" |
|
inviteMember( |
|
"The group ID" |
|
groupId: ID! |
|
|
|
"The targeted person's federated username" |
|
targetActorUsername: String! |
|
): Member |
|
|
|
"Accept an invitation to a group" |
|
acceptInvitation( |
|
"The member ID" |
|
id: ID! |
|
): Member |
|
|
|
"Reject an invitation to a group" |
|
rejectInvitation( |
|
"The member ID" |
|
id: ID! |
|
): Member |
|
|
|
"Approve a membership request" |
|
approveMember( |
|
"The member ID" |
|
memberId: ID! |
|
): Member |
|
|
|
"Reject a membership request" |
|
rejectMember( |
|
"The member ID" |
|
memberId: ID! |
|
): Member |
|
|
|
"Update a member's role" |
|
updateMember( |
|
"The member ID" |
|
memberId: ID! |
|
|
|
"The new member role" |
|
role: MemberRoleEnum! |
|
): Member |
|
|
|
"Remove a member from a group" |
|
removeMember( |
|
"The member ID" |
|
memberId: ID! |
|
|
|
"Whether the member should be excluded from the group" |
|
exclude: Boolean |
|
): Member |
|
|
|
"Create a Feed Token" |
|
createFeedToken( |
|
"The actor ID for the feed token" |
|
actorId: ID |
|
): FeedToken |
|
|
|
"Delete a feed token" |
|
deleteFeedToken( |
|
"The token to delete" |
|
token: String! |
|
): DeletedFeedToken |
|
|
|
"Upload a media" |
|
uploadMedia( |
|
"The media's name" |
|
name: String! |
|
|
|
"The media's alternative text" |
|
alt: String |
|
|
|
"The media file" |
|
file: Upload! |
|
): Media |
|
|
|
"Remove a media" |
|
removeMedia( |
|
"The media's ID" |
|
id: ID! |
|
): DeletedObject |
|
|
|
"Create a report" |
|
createReport( |
|
"The message sent with the report" |
|
content: String |
|
|
|
"The actor's ID that is being reported" |
|
reportedId: ID! |
|
|
|
"The event ID that is being reported" |
|
eventId: ID |
|
|
|
"The comment ID that is being reported" |
|
commentsIds: [ID] |
|
|
|
"Whether to forward the report to the original instance if the content is remote" |
|
forward: Boolean |
|
): Report |
|
|
|
"Update a report" |
|
updateReportStatus( |
|
"The report's ID" |
|
reportId: ID! |
|
|
|
"The report's new status" |
|
status: ReportStatus! |
|
): Report |
|
|
|
"Create a note on a report" |
|
createReportNote( |
|
"The note's content" |
|
content: String |
|
|
|
"The report's ID" |
|
reportId: ID! |
|
): ReportNote |
|
|
|
"Delete a note on a report" |
|
deleteReportNote( |
|
"The note's ID" |
|
noteId: ID! |
|
): DeletedObject |
|
|
|
"Add an instance subscription" |
|
addInstance( |
|
"The instance domain to add" |
|
domain: String! |
|
): Instance |
|
|
|
"Delete a relay subscription" |
|
removeRelay( |
|
"The relay hostname to delete" |
|
address: String! |
|
): Follower |
|
|
|
"Accept a relay subscription" |
|
acceptRelay( |
|
"The accepted relay hostname" |
|
address: String! |
|
): Follower |
|
|
|
"Reject a relay subscription" |
|
rejectRelay( |
|
"The rejected relay hostname" |
|
address: String! |
|
): Follower |
|
|
|
"Save admin settings" |
|
saveAdminSettings( |
|
"The instance's name" |
|
instanceName: String |
|
|
|
"The instance's description" |
|
instanceDescription: String |
|
|
|
"The instance's long description" |
|
instanceLongDescription: String |
|
|
|
"The instance's slogan" |
|
instanceSlogan: String |
|
|
|
"The instance's contact details" |
|
contact: String |
|
|
|
"The instance's terms body text" |
|
instanceTerms: String |
|
|
|
"The instance's terms type" |
|
instanceTermsType: InstanceTermsType |
|
|
|
"The instance's terms URL" |
|
instanceTermsUrl: String |
|
|
|
"The instance's privacy policy body text" |
|
instancePrivacyPolicy: String |
|
|
|
"The instance's privacy policy type" |
|
instancePrivacyPolicyType: InstancePrivacyType |
|
|
|
"The instance's privacy policy URL" |
|
instancePrivacyPolicyUrl: String |
|
|
|
"The instance's rules" |
|
instanceRules: String |
|
|
|
"Whether the registrations are opened" |
|
registrationsOpen: Boolean |
|
|
|
"The instance's languages" |
|
instanceLanguages: [String] |
|
): AdminSettings |
|
|
|
"For an admin to update an user" |
|
adminUpdateUser( |
|
"The user's ID" |
|
id: ID! |
|
|
|
"The user's new email" |
|
email: String |
|
|
|
"Manually confirm the user's account" |
|
confirmed: Boolean |
|
|
|
"Set user's new role" |
|
role: UserRole |
|
|
|
"Whether or not to notify the user of the change" |
|
notify: Boolean |
|
): User |
|
|
|
"Create a todo list" |
|
createTodoList( |
|
"The todo list title" |
|
title: String! |
|
|
|
"The group ID" |
|
groupId: ID! |
|
): TodoList |
|
|
|
"Create a todo" |
|
createTodo( |
|
"The todo-list ID this todo is in" |
|
todoListId: ID! |
|
|
|
"The todo title" |
|
title: String! |
|
|
|
"The todo status" |
|
status: Boolean |
|
|
|
"The todo due date" |
|
dueDate: DateTime |
|
|
|
"The actor this todo is assigned to" |
|
assignedToId: ID |
|
): Todo |
|
|
|
"Update a todo" |
|
updateTodo( |
|
"The todo ID" |
|
id: ID! |
|
|
|
"The new todo-list ID" |
|
todoListId: ID |
|
|
|
"The new todo title" |
|
title: String |
|
|
|
"The new todo status" |
|
status: Boolean |
|
|
|
"The new todo due date" |
|
dueDate: DateTime |
|
|
|
"The new id of the actor this todo is assigned to" |
|
assignedToId: ID |
|
): Todo |
|
|
|
"Create a discussion" |
|
createDiscussion( |
|
"The discussion's title" |
|
title: String! |
|
|
|
"The discussion's first comment body" |
|
text: String! |
|
|
|
"The discussion's group ID" |
|
actorId: ID! |
|
): Discussion |
|
|
|
"Reply to a discussion" |
|
replyToDiscussion( |
|
"The discussion's ID" |
|
discussionId: ID! |
|
|
|
"The discussion's reply body" |
|
text: String! |
|
): Discussion |
|
|
|
"Update a discussion" |
|
updateDiscussion( |
|
"The updated discussion's title" |
|
title: String! |
|
|
|
"The discussion's ID" |
|
discussionId: ID! |
|
): Discussion |
|
|
|
"Delete a discussion" |
|
deleteDiscussion( |
|
"The discussion's ID" |
|
discussionId: ID! |
|
): Discussion |
|
|
|
"Create a resource" |
|
createResource( |
|
"The ID from the parent resource (folder) this resource is in" |
|
parentId: ID |
|
|
|
"The group this resource belongs to" |
|
actorId: ID! |
|
|
|
"This resource's title" |
|
title: String! |
|
|
|
"This resource summary" |
|
summary: String |
|
|
|
"This resource's own original URL" |
|
resourceUrl: String |
|
|
|
"The type for this resource" |
|
type: String |
|
): Resource |
|
|
|
"Update a resource" |
|
updateResource( |
|
"The resource ID" |
|
id: ID! |
|
|
|
"The new resource title" |
|
title: String |
|
|
|
"The new resource summary" |
|
summary: String |
|
|
|
"The new resource parent ID (if the resource is moved)" |
|
parentId: ID |
|
|
|
"The new resource URL" |
|
resourceUrl: String |
|
): Resource |
|
|
|
"Delete a resource" |
|
deleteResource( |
|
"The resource ID" |
|
id: ID! |
|
): DeletedObject |
|
|
|
"Get a preview for a resource link" |
|
previewResourceLink( |
|
"The link to crawl to get of preview of" |
|
resourceUrl: String! |
|
): ResourceMetadata |
|
|
|
"Create a post" |
|
createPost( |
|
"The ID from the group whose post is attributed to" |
|
attributedToId: ID! |
|
|
|
"The post's title" |
|
title: String! |
|
|
|
"The post's body" |
|
body: String! |
|
|
|
"Whether the post is a draft" |
|
draft: Boolean |
|
|
|
"The post's visibility" |
|
visibility: PostVisibility |
|
|
|
"The post's publish date" |
|
publishAt: DateTime |
|
|
|
"The post language" |
|
language: String |
|
|
|
"The list of tags associated to the post" |
|
tags: [String] |
|
|
|
"The banner for the post, either as an object or directly the ID of an existing media" |
|
picture: MediaInput |
|
): Post |
|
|
|
"Update a post" |
|
updatePost( |
|
"The post's ID" |
|
id: ID! |
|
|
|
"The post's new title" |
|
title: String |
|
|
|
"The post's new body" |
|
body: String |
|
|
|
"The group the post is attributed to" |
|
attributedToId: ID |
|
|
|
"Whether the post is a draft" |
|
draft: Boolean |
|
|
|
"The post's visibility" |
|
visibility: PostVisibility |
|
|
|
"The post language" |
|
language: String |
|
|
|
"The time when the posts is going to be or has been published" |
|
publishAt: DateTime |
|
|
|
"The list of tags associated to the post" |
|
tags: [String] |
|
|
|
"The banner for the post, either as an object or directly the ID of an existing media" |
|
picture: MediaInput |
|
): Post |
|
|
|
"Delete a post" |
|
deletePost( |
|
"The post's ID" |
|
id: ID! |
|
): DeletedObject |
|
|
|
"Suspend an actor" |
|
suspendProfile( |
|
"The remote profile ID to suspend" |
|
id: ID! |
|
): DeletedObject |
|
|
|
"Unsuspend an actor" |
|
unsuspendProfile( |
|
"The remote profile ID to unsuspend" |
|
id: ID! |
|
): Actor |
|
|
|
"Refresh a profile" |
|
refreshProfile( |
|
"The remote profile ID to refresh" |
|
id: ID! |
|
): Actor |
|
|
|
"Update follower" |
|
updateFollower( |
|
"The follower ID" |
|
id: ID! |
|
|
|
"Whether the follower has been approved by the target actor or not" |
|
approved: Boolean! |
|
): Follower |
|
|
|
registerPush(endpoint: String!, auth: String!, p256dh: String!): String |
|
|
|
unregisterPush(endpoint: String!): String |
|
|
|
updateActivitySetting(key: String!, method: String!, enabled: Boolean!): ActivitySetting |
|
} |
|
|
|
type ActivityParamItem { |
|
key: String |
|
value: String |
|
} |
|
|
|
"Instance anonymous event creation email validation configuration" |
|
type AnonymousEventCreationValidationEmail { |
|
"Whether anonymous event creation with email validation is enabled" |
|
enabled: Boolean |
|
|
|
"Whether anonymous event creation with email validation is required" |
|
confirmationRequired: Boolean |
|
} |
|
|
|
"The instance's privacy policy configuration" |
|
type Privacy { |
|
"The instance's privacy policy URL" |
|
url: String |
|
|
|
"The instance's privacy policy type" |
|
type: InstancePrivacyType |
|
|
|
"The instance's privacy policy body text" |
|
bodyHtml: String |
|
} |
|
|
|
"Root Query" |
|
type RootQueryType { |
|
"Search persons" |
|
searchPersons( |
|
"Search term" |
|
term: String |
|
|
|
"Result page" |
|
page: Int |
|
|
|
"Results limit per page" |
|
limit: Int |
|
): Persons |
|
|
|
"Search groups" |
|
searchGroups( |
|
"Search term" |
|
term: String |
|
|
|
"A geohash for coordinates" |
|
location: String |
|
|
|
"Whether to include the groups the current actor is member or follower" |
|
excludeMyGroups: Boolean |
|
|
|
"The minimum visibility the group must have" |
|
minimumVisibility: GroupVisibility |
|
|
|
"Radius around the location to search in" |
|
radius: Float |
|
|
|
"Result page" |
|
page: Int |
|
|
|
"Results limit per page" |
|
limit: Int |
|
): Groups |
|
|
|
"Search events" |
|
searchEvents( |
|
term: String |
|
|
|
"A comma-separated string listing the tags" |
|
tags: String |
|
|
|
"A geohash for coordinates" |
|
location: String |
|
|
|
"Whether the event is online or in person" |
|
type: EventType |
|
|
|
"The category for the event" |
|
category: String |
|
|
|
"Radius around the location to search in" |
|
radius: Float |
|
|
|
"Result page" |
|
page: Int |
|
|
|
"Results limit per page" |
|
limit: Int |
|
|
|
"Filter events by their start date" |
|
beginsOn: DateTime |
|
|
|
"Filter events by their end date" |
|
endsOn: DateTime |
|
): Events |
|
|
|
"Interact with an URI" |
|
interact( |
|
"The URI for to interact with" |
|
uri: String! |
|
): Interactable |
|
|
|
"Get an user" |
|
user(id: ID!): User |
|
|
|
"Get the current user" |
|
loggedUser: User |
|
|
|
"List instance users" |
|
users( |
|
"Filter users by email" |
|
email: String |
|
|
|
"Filter users by current signed-in IP address" |
|
currentSignInIp: String |
|
|
|
"The page in the paginated users list" |
|
page: Int |
|
|
|
"The limit of users per page" |
|
limit: Int |
|
|
|
"Sort column" |
|
sort: SortableUserField |
|
|
|
"Sort direction" |
|
direction: SortDirection |
|
): Users |
|
|
|
"Get the current actor for the logged-in user" |
|
loggedPerson: Person |
|
|
|
"Get a person by its (federated) username" |
|
fetchPerson( |
|
"The person's federated username" |
|
preferredUsername: String! |
|
): Person |
|
|
|
"Get a person by its ID" |
|
person( |
|
"The person ID" |
|
id: ID! |
|
): Person |
|
|
|
"Get the persons for an user" |
|
identities: [Person] |
|
|
|
"List the profiles" |
|
persons( |
|
"Filter by username" |
|
preferredUsername: String |
|
|
|
"Filter by name" |
|
name: String |
|
|
|
"Filter by domain" |
|
domain: String |
|
|
|
"Filter by profile being local or not" |
|
local: Boolean |
|
|
|
"Filter by suspended status" |
|
suspended: Boolean |
|
|
|
"The page in the paginated person list" |
|
page: Int |
|
|
|
"The limit of persons per page" |
|
limit: Int |
|
): PaginatedPersonList |
|
|
|
"Get all groups" |
|
groups( |
|
"Filter by username" |
|
preferredUsername: String |
|
|
|
"Filter by name" |
|
name: String |
|
|
|
"Filter by domain" |
|
domain: String |
|
|
|
"Filter whether group is local or not" |
|
local: Boolean |
|
|
|
"Filter by suspended status" |
|
suspended: Boolean |
|
|
|
"The page in the paginated group list" |
|
page: Int |
|
|
|
"The limit of groups per page" |
|
limit: Int |
|
): PaginatedGroupList |
|
|
|
"Get a group by its ID" |
|
getGroup( |
|
"The group ID" |
|
id: ID! |
|
): Group |
|
|
|
"Get a group by its preferred username" |
|
group( |
|
"The group preferred_username, eventually containing their domain if remote" |
|
preferredUsername: String! |
|
): Group |
|
|
|
"Get a group by its preferred username" |
|
groupById( |
|
"The group local ID" |
|
id: ID! |
|
): Group |
|
|
|
"Get all events" |
|
events( |
|
"The page in the paginated event list" |
|
page: Int |
|
|
|
"The limit of events per page" |
|
limit: Int |
|
|
|
"Order the list of events by field" |
|
orderBy: EventOrderBy |
|
|
|
"Direction for the sort" |
|
direction: SortDirection |
|
): PaginatedEventList |
|
|
|
"Get an event by uuid" |
|
event( |
|
"The event's UUID" |
|
uuid: UUID! |
|
): Event |
|
|
|
"Get replies for thread" |
|
thread( |
|
"The comment ID" |
|
id: ID! |
|
): [Comment] |
|
|
|
"Get the list of tags" |
|
tags( |
|
"The filter to apply to the search" |
|
filter: String |
|
|
|
"The page in the paginated tags list" |
|
page: Int |
|
|
|
"The limit of tags per page" |
|
limit: Int |
|
): [Tag]! |
|
|
|
"Search for an address" |
|
searchAddress( |
|
query: String! |
|
|
|
"The user's locale. Geocoding backends will make use of this value." |
|
locale: String |
|
|
|
"The page in the paginated search results list" |
|
page: Int |
|
|
|
"The limit of search results per page" |
|
limit: Int |
|
|
|
"Filter by type of results" |
|
type: AddressSearchType |
|
): [Address] |
|
|
|
"Reverse geocode coordinates" |
|
reverseGeocode( |
|
"Geographical longitude (using WGS 84)" |
|
longitude: Float! |
|
|
|
"Geographical latitude (using WGS 84)" |
|
latitude: Float! |
|
|
|
"Zoom level" |
|
zoom: Int |
|
|
|
"The user's locale. Geocoding backends will make use of this value." |
|
locale: String |
|
): [Address] |
|
|
|
"Get the instance config" |
|
config: Config |
|
|
|
"Get a media" |
|
media( |
|
"The media ID" |
|
id: ID! |
|
): Media |
|
|
|
"Get all reports" |
|
reports( |
|
"The page in the report list" |
|
page: Int |
|
|
|
"The limit of reports per page" |
|
limit: Int |
|
|
|
"Filter reports by status" |
|
status: ReportStatus |
|
|
|
"Filter reports by domain name" |
|
domain: String |
|
): PaginatedReportList |
|
|
|
"Get a report by id" |
|
report( |
|
"The report ID" |
|
id: ID! |
|
): Report |
|
|
|
"Get the list of action logs" |
|
actionLogs(page: Int, limit: Int): PaginatedActionLogList |
|
|
|
"List the instance's supported languages" |
|
languages( |
|
"The user's locale. The list of languages will be translated with this locale" |
|
codes: [String] |
|
): [Language] |
|
|
|
"Get dashboard information" |
|
dashboard: Dashboard |
|
|
|
"Get admin settings" |
|
adminSettings: AdminSettings |
|
|
|
"List the relay followers" |
|
relayFollowers( |
|
"The page in the paginated relay followers list" |
|
page: Int |
|
|
|
"The limit of relay followers per page" |
|
limit: Int |
|
): PaginatedFollowerList |
|
|
|
"List the relay followings" |
|
relayFollowings( |
|
"The page in the paginated relay followings list" |
|
page: Int |
|
|
|
"The limit of relay followings per page" |
|
limit: Int |
|
|
|
"The field to order by the list" |
|
orderBy: String |
|
|
|
"The sorting direction" |
|
direction: String |
|
): PaginatedFollowerList |
|
|
|
"List instances" |
|
instances( |
|
"The page in the paginated relay followings list" |
|
page: Int |
|
|
|
"The limit of relay followings per page" |
|
limit: Int |
|
|
|
"The field to order by the list" |
|
orderBy: InstancesSortFields |
|
|
|
"Filter by domain" |
|
filterDomain: String |
|
|
|
"Whether or not to filter instances by the follow status" |
|
filterFollowStatus: InstanceFilterFollowStatus |
|
|
|
"Whether or not to filter instances by the suspended status" |
|
filterSuspendStatus: InstanceFilterSuspendStatus |
|
|
|
"The sorting direction" |
|
direction: String |
|
): PaginatedInstanceList |
|
|
|
"Get an instance's details" |
|
instance( |
|
"The instance domain" |
|
domain: ID! |
|
): Instance |
|
|
|
"Get a todo list" |
|
todoList( |
|
"The todo-list ID" |
|
id: ID! |
|
): TodoList |
|
|
|
"Get a todo" |
|
todo( |
|
"The todo ID" |
|
id: ID! |
|
): Todo |
|
|
|
"Get a discussion" |
|
discussion( |
|
"The discussion's ID" |
|
id: ID |
|
|
|
"The discussion's slug" |
|
slug: String |
|
): Discussion |
|
|
|
"Get a resource" |
|
resource( |
|
"The path for the resource" |
|
path: String! |
|
|
|
"The federated username for the group resource" |
|
username: String! |
|
): Resource |
|
|
|
"Get a post" |
|
post( |
|
"The post's slug" |
|
slug: String! |
|
): Post |
|
|
|
"Get the instance statistics" |
|
statistics: Statistics |
|
} |
|
|
|
type ActivitySetting { |
|
key: String |
|
method: String |
|
enabled: Boolean |
|
user: User |
|
} |
|
|
|
"The list of types an actor can be" |
|
enum ActorType { |
|
"An ActivityPub Person" |
|
PERSON |
|
|
|
"An ActivityPub Application" |
|
APPLICATION |
|
|
|
"An ActivityPub Group" |
|
GROUP |
|
|
|
"An ActivityPub Organization" |
|
ORGANIZATION |
|
|
|
"An ActivityPub Service" |
|
SERVICE |
|
} |
|
|
|
""" |
|
The `Naive DateTime` scalar type represents a naive date and time without |
|
timezone. The DateTime appears in a JSON response as an ISO8601 formatted |
|
string. |
|
""" |
|
scalar NaiveDateTime |
|
|
|
"An instance representation" |
|
type Instance { |
|
"The domain name of the instance" |
|
domain: ID |
|
|
|
"Do we follow this instance" |
|
followerStatus: InstanceFollowStatus |
|
|
|
"Does this instance follow us?" |
|
followedStatus: InstanceFollowStatus |
|
|
|
"The number of events on this instance we know of" |
|
eventCount: Int |
|
|
|
"The number of profiles on this instance we know of" |
|
personCount: Int |
|
|
|
"The number of grouo on this instance we know of" |
|
groupCount: Int |
|
|
|
"The number of their profiles who follow our groups" |
|
followersCount: Int |
|
|
|
"The number of our profiles who follow their groups" |
|
followingsCount: Int |
|
|
|
"The number of reports made against profiles from this instance" |
|
reportsCount: Int |
|
|
|
"The size of all the media files sent by actors from this instance" |
|
mediaSize: Int |
|
|
|
"Whether this instance has a relay, meaning that it's a Mobilizon instance that we can follow" |
|
hasRelay: Boolean |
|
} |
|
|
|
""" |
|
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 if there is an offset. |
|
""" |
|
scalar DateTime |
|
|
|
"The acceptable values for the instance privacy policy type" |
|
enum InstancePrivacyType { |
|
"An URL. Users will be redirected to this URL." |
|
URL |
|
|
|
"Privacy policy will be set to Mobilizon's default privacy policy" |
|
DEFAULT |
|
|
|
"Custom privacy policy text" |
|
CUSTOM |
|
} |
|
|
|
"A resource" |
|
type Resource implements ActivityObject { |
|
"The resource's ID" |
|
id: ID |
|
|
|
"The resource's title" |
|
title: String |
|
|
|
"The resource's summary" |
|
summary: String |
|
|
|
"The resource's URL" |
|
url: String |
|
|
|
"The resource's URL" |
|
resourceUrl: String |
|
|
|
"The resource's metadata" |
|
metadata: ResourceMetadata |
|
|
|
"The resource's creator" |
|
creator: Actor |
|
|
|
"The resource's owner" |
|
actor: Actor |
|
|
|
"The resource's creation date" |
|
insertedAt: NaiveDateTime |
|
|
|
"The resource's last update date" |
|
updatedAt: NaiveDateTime |
|
|
|
"The resource's publication date" |
|
publishedAt: NaiveDateTime |
|
|
|
"The resource's type (if it's a folder)" |
|
type: String |
|
|
|
"The resource's path" |
|
path: String |
|
|
|
"The resource's parent" |
|
parent: Resource |
|
|
|
"Children resources in folder" |
|
children( |
|
"The page in the paginated resource list" |
|
page: Int |
|
|
|
"The limit of resources per page" |
|
limit: Int |
|
): PaginatedResourceList |
|
} |
|
|
|
"Event options" |
|
input EventOptionsInput { |
|
"The maximum attendee capacity for this event" |
|
maximumAttendeeCapacity: Int |
|
|
|
"The number of remaining seats for this event" |
|
remainingAttendeeCapacity: Int |
|
|
|
"Whether or not to show the number of remaining seats for this event" |
|
showRemainingAttendeeCapacity: Boolean |
|
|
|
"Whether or not to allow anonymous participation (if the server allows it)" |
|
anonymousParticipation: Boolean |
|
|
|
"The list of offers to show for this event" |
|
offers: [EventOfferInput] |
|
|
|
"The list of participation conditions to accept to join this event" |
|
participationConditions: [EventParticipationConditionInput] |
|
|
|
"The list of special attendees" |
|
attendees: [String] |
|
|
|
"The list of the event" |
|
program: String |
|
|
|
"The policy on public comment moderation under the event" |
|
commentModeration: EventCommentModeration |
|
|
|
"Whether or not to show the participation price" |
|
showParticipationPrice: Boolean |
|
|
|
"Show event start time" |
|
showStartTime: Boolean |
|
|
|
"Show event end time" |
|
showEndTime: Boolean |
|
|
|
"The event's timezone" |
|
timezone: String |
|
|
|
"Whether to show or hide the person organizer when event is organized by a group" |
|
hideOrganizerWhenGroupEvent: Boolean |
|
|
|
"Whether the event is fully online" |
|
isOnline: Boolean |
|
} |
|
|
|
|