diff --git a/openapi.yaml b/openapi.yaml new file mode 100644 index 0000000..3cc5f5b --- /dev/null +++ b/openapi.yaml @@ -0,0 +1,372 @@ +openapi: 3.1.0 +info: + title: LuckPerms metadata-api + description: |- + A HTTP API which collects and serves various information about the LuckPerms project. + version: 1.0.0 +externalDocs: + description: LuckPerms metadata-api on GitHub + url: https://github.com/LuckPerms/metadata-api/ +servers: + - url: https://metadata.luckperms.net/ +tags: + - name: data + description: Everything related to data + - name: translation + description: Everything related to translations +paths: + /data/all: + get: + tags: + - data + operationId: getAll + responses: + '200': + $ref: '#/components/responses/All' + '500': + description: Unexpected error + content: + text/plain: + schema: + type: string + description: Error message + /data/version: + get: + tags: + - data + operationId: getVersion + responses: + '200': + description: successful operation + content: + application/json: + schema: + $ref: '#/components/schemas/Version' + '500': + $ref: '#/components/responses/ServerError' + /data/changelog: + get: + tags: + - data + operationId: getChangelog + responses: + '200': + description: successful operation + content: + application/json: + schema: + $ref: '#/components/schemas/Changelog' + '500': + $ref: '#/components/responses/ServerError' + /data/downloads: + get: + tags: + - data + operationId: getDownloads + responses: + '200': + description: successful operation + content: + application/json: + schema: + $ref: '#/components/schemas/Downloads' + '500': + $ref: '#/components/responses/ServerError' + /data/extensions: + get: + tags: + - data + operationId: getExtensions + responses: + '200': + description: successful operation + content: + application/json: + schema: + $ref: '#/components/schemas/Extensions' + '500': + $ref: '#/components/responses/ServerError' + /data/additional-plugins: + get: + tags: + - data + operationId: getAdditionalPlugins + responses: + '200': + description: successful operation + content: + application/json: + schema: + $ref: '#/components/schemas/AdditionalPlugins' + '500': + $ref: '#/components/responses/ServerError' + /data/placeholder-expansions: + get: + tags: + - data + operationId: getPlaceholderExpansions + responses: + '200': + description: successful operation + content: + application/json: + schema: + $ref: '#/components/schemas/PlaceholderExpansions' + '500': + $ref: '#/components/responses/ServerError' + /data/discord-count: + get: + tags: + - data + operationId: getDiscordCount + responses: + '200': + description: successful operation + content: + application/json: + schema: + $ref: '#/components/schemas/DiscordCount' + '500': + $ref: '#/components/responses/ServerError' + /data/patreon-count: + get: + tags: + - data + operationId: getPatreonCount + responses: + '200': + description: successful operation + content: + application/json: + schema: + $ref: '#/components/schemas/PatreonCount' + '500': + $ref: '#/components/responses/ServerError' + /data/donors: + get: + tags: + - data + operationId: getDonors + responses: + '200': + description: successful operation + content: + application/json: + schema: + $ref: '#/components/schemas/Donors' + '500': + $ref: '#/components/responses/ServerError' +components: + schemas: + Version: + type: object + properties: + version: + type: string + description: Version string of the latest LuckPerms release. + example: 5.5.17 + versionTimestamp: + type: integer + description: Unix timestamp in milliseconds of when the latest LuckPerms release was published. + example: 1760177931107 + Changelog: + type: object + properties: + changeLog: + $ref: "#/components/schemas/ChangelogArray" + ChangelogArray: + type: array + items: + $ref: "#/components/schemas/ChangelogEntry" + ChangelogEntry: + type: object + properties: + version: + type: string + description: Version string of the release. + example: 5.5.17 + timestamp: + type: integer + description: Unix timestamp in milliseconds of when the release was published. + example: 1760177931107 + title: + type: string + description: Title of the release. + example: Update to Minecraft 1.21.10 + commit: + type: string + description: Git commit hash of the release. + example: 40a39c9381c5c2a4675d533223c987c0f70ccdb4 + Downloads: + type: object + properties: + downloads: + $ref: "#/components/schemas/DownloadsList" + DownloadsList: + type: object + properties: + bukkit: + type: string + format: uri + description: Download URL for the latest version of LuckPerms for Bukkit. + example: https://download.luckperms.net/1606/bukkit/loader/LuckPerms-Bukkit-5.5.17.jar + bukkit-legacy: + type: string + format: uri + description: Download URL for the latest version of LuckPerms for Legacy Bukkit. + example: https://download.luckperms.net/1606/bukkit-legacy/loader/LuckPerms-Bukkit-Legacy-5.5.17.jar + bungee: + type: string + format: uri + description: Download URL for the latest version of LuckPerms for BungeeCord. + example: https://download.luckperms.net/1606/bungee/loader/LuckPerms-Bungee-5.5.17.jar + fabric: + type: string + format: uri + description: Download URL for the latest version of LuckPerms for Fabric. + example: https://download.luckperms.net/1606/fabric/LuckPerms-Fabric-5.5.17.jar + forge: + type: string + format: uri + description: Download URL for the latest version of LuckPerms for Forge. + example: https://download.luckperms.net/1606/forge/loader/LuckPerms-Forge-5.5.17.jar + neoforge: + type: string + format: uri + description: Download URL for the latest version of LuckPerms for NeoForge. + example: https://download.luckperms.net/1606/neoforge/loader/LuckPerms-NeoForge-5.5.17.jar + nukkit: + type: string + format: uri + description: Download URL for the latest version of LuckPerms for Nukkit. + example: https://download.luckperms.net/1606/nukkit/loader/LuckPerms-Nukkit-5.5.17.jar + sponge: + type: string + format: uri + description: Download URL for the latest version of LuckPerms for Sponge. + example: https://download.luckperms.net/1606/sponge/loader/LuckPerms-Sponge-5.5.17.jar + velocity: + type: string + format: uri + description: Download URL for the latest version of LuckPerms for Velocity. + example: https://download.luckperms.net/1606/velocity/LuckPerms-Velocity-5.5.17.jar + Extensions: + type: object + properties: + extensions: + $ref: "#/components/schemas/ExtensionsList" + ExtensionsList: + type: object + properties: + extensions-legacy-api: + type: string + format: uri + description: Download URL for the latest version of the extension for the lagacy API. + example: https://ci.lucko.me/job/extension-legacy-api/10/artifact/build/libs/extension-legacy-api-1.0.0.jar + extension-default-assignments: + type: string + format: uri + description: Download URL for the latest version of the extension for default assignments. + example: https://ci.lucko.me/job/extension-default-assignments/5/artifact/build/libs/extension-default-assignments-1.1.0.jar + AdditionalPlugins: + type: object + properties: + additionalPlugins: + $ref: "#/components/schemas/AdditionalPluginsList" + AdditionalPluginsList: + type: object + properties: + extracontexts: + type: string + format: uri + description: Download URL for the latest version of ExtraContexts plugin. + example: https://ci.lucko.me/job/extracontexts/21/artifact/target/ExtraContexts.jar + PlaceholderExpansions: + type: object + properties: + placeholderExpansions: + $ref: "#/components/schemas/PlaceholderExpansionsList" + PlaceholderExpansionsList: + type: object + properties: + bukkit-mvdw: + type: string + format: uri + description: Download URL for the latest version of the MVdW PlaceholderAPI expansion. + example: https://ci.lucko.me/job/LuckPermsPlaceholders/12/artifact/bukkit-mvdw/build/libs/LuckPerms-MVdWPlaceholderAPI-Hook.jar + bukkit-placeholderapi: + type: string + format: uri + description: Download URL for the latest version of the PlaceholderAPI expansion for Bukkit. + example: https://ci.lucko.me/job/LuckPermsPlaceholders/12/artifact/bukkit-placeholderapi/build/libs/Expansion-LuckPerms.jar + fabric-placeholderapi: + type: string + format: uri + description: Download URL for the latest version of the PlaceholderAPI expansion for Fabric. + example: https://ci.lucko.me/job/LuckPermsPlaceholders/12/artifact/fabric-placeholderapi/build/libs/LuckPerms-Fabric-PlaceholderAPI-Hook.jar + DiscordCount: + type: object + properties: + discordUserCount: + type: integer + description: How many users are in the official LuckPerms Discord server. + example: 20735 + PatreonCount: + type: object + properties: + patreonCount: + type: integer + description: How many patrons are supporting LuckPerms on Patreon. + example: 83 + Donors: + type: array + items: + $ref: "#/components/schemas/Donor" + Donor: + type: object + properties: + name: + type: string + description: Name of the donor + discord: + type: string + default: null + description: Discord ID of the donor, if provided + tiers: + type: array + items: + type: string + default: [ ] + example: [ "Supporter" ] + Error: + type: object + properties: + code: + type: string + message: + type: string + required: + - code + - message + responses: + ServerError: + description: Unexpected error + content: + text/plain: + schema: + type: string + description: Error message + All: + description: Returns all available data in a single response + content: + application/json: + schema: + allOf: + - $ref: "#/components/schemas/DiscordCount" + - $ref: "#/components/schemas/Version" + - $ref: "#/components/schemas/Downloads" + - $ref: "#/components/schemas/Changelog" + - $ref: "#/components/schemas/PlaceholderExpansions" + - $ref: "#/components/schemas/Extensions" + - $ref: "#/components/schemas/AdditionalPlugins" + - $ref: "#/components/schemas/PatreonCount"