A native .NET C# library for developing Matrix clients.
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.

781 lines
22 KiB

using System;
using System.Collections.Generic;
using System.Text;
namespace MatrixDotNetLib
{
public class MatrixApi
{
public static class Server
{
/// <summary>
/// Gets discovery information about the domain.
/// </summary>
/// <remarks>
/// https://matrix.org/docs/api/client-server/#!/Server32administration/getWellknown
/// </remarks>
public static string Discovery = "/.well-known/matrix/client";
/// <summary>
/// Gets the versions of the specifications supported by the server.
/// </summary>
/// <remarks>
/// https://matrix.org/docs/api/client-server/#!/Server32administration/getVersions
/// </remarks>
public static string Versions = "/_matrix/client/versions";
/// <summary>
/// Gets information about the server's supported feature set and other relevant capabilities.
/// </summary>
/// <remarks>
/// https://matrix.org/docs/api/client-server/#!/Capabilities/getCapabilities
/// </remarks>
public static string Capabilities = "/_matrix/client/r0/capabilities";
/// <summary>
/// Gets information about a particular user.
/// </summary>
/// <remarks>
/// https://matrix.org/docs/api/client-server/#!/Server32administration/getWhoIs
/// </remarks>
public static string Whois = "/_matrix/client/r0/admin/whois/{UserId}";
/// <summary>
/// Performs a full text search across different categories. Posts with a search object.
/// </summary>
/// <remarks>
/// https://matrix.org/docs/api/client-server/#!/Search/search
/// </remarks>
public static string Search = "/_matrix/client/r0/search";
/// <summary>
/// Performs a user search. Posts with a user search object.
/// </summary>
/// <remarks>
/// https://matrix.org/docs/api/client-server/#!/User32data/searchUserDirectory
/// </remarks>
public static string UserSearch = "/_matrix/client/r0/user_directory/search";
/// <summary>
/// Lists the public rooms on the server. Posts with a filter object.
/// </summary>
/// <remarks>
/// https://matrix.org/docs/api/client-server/#!/Room32discovery/getPublicRooms
/// </remarks>
public static string RoomList = "/_matrix/client/r0/publicRooms";
/// <summary>
/// Updates the visibility of a given room in the directory. Puts a visibility object.
/// </summary>
/// <remarks>
/// https://matrix.org/docs/api/client-server/#!/Application32service32room32directory32management/updateAppserviceRoomDirectoryVsibility
/// </remarks>
public static string ManageRooms = "/_matrix/client/r0/directory/list/appservice/{NetworkId}/{RoomId}";
/// <summary>
/// Upgrades the given room to a particular room version. Posts with a room upgrade object.
/// </summary>
/// <remarks>
/// https://matrix.org/docs/api/client-server/#!/Room32upgrades/upgradeRoom
/// </remarks>
public static string UpgradeRoom = "/_matrix/client/r0/rooms/{RoomId}/upgrade";
/// <summary>
/// Gets an OpenID token object for use with another service. Posts with a userId parameter.
/// </summary>
/// <remarks>
/// https://matrix.org/docs/api/client-server/#!/OpenID/requestOpenIdToken
/// </remarks>
public static string Openid = "/_matrix/client/r0/user/{UserId}/openid/request_token";
/// <summary>
/// Gets client credentials for use when initiating a call.
/// </summary>
/// <remarks>
/// https://matrix.org/docs/api/client-server/#!/VOIP/getTurnServer
/// </remarks>
public static string Voip = "/_matrix/client/r0/voip/turnServer";
}
public static class Key
{
/// <summary>
/// Gets a list of users who have updated their device identity keys.
/// </summary>
/// <remarks>
/// https://matrix.org/docs/api/client-server/#!/End45to45end32encryption/getKeysChanges
/// </remarks>
public static string Latest = "/_matrix/client/r0/keys/changes";
/// <summary>
/// Claims one-time keys for use in pre-key messages. Posts with a key object.
/// </summary>
/// <remarks>
/// https://matrix.org/docs/api/client-server/#!/End45to45end32encryption/claimKeys
/// </remarks>
public static string Claim = "/_matrix/client/r0/keys/claim";
/// <summary>
/// Returns the current devices and identity keys for the given users. Posts with a key object.
/// </summary>
/// <remarks>
/// https://matrix.org/docs/api/client-server/#!/End45to45end32encryption/queryKeys
/// </remarks>
public static string Download = "/_matrix/client/r0/keys/query";
/// <summary>
/// Publishes end-to-end encryption keys for the device. Posts with a key object.
/// </summary>
/// <remarks>
/// https://matrix.org/docs/api/client-server/#!/End45to45end32encryption/uploadKeys
/// </remarks>
public static string Upload = "/_matrix/client/r0/keys/upload";
}
public static class Device
{
/// <summary>
/// Private string for device URL
/// </summary>
private static string _deviceIdUrl = "/_matrix/client/r0/devices/{DeviceId}";
/// <summary>
/// Gets information about all devices for the current user.
/// </summary>
/// <remarks>
/// https://matrix.org/docs/api/client-server/#!/Device32management/getDevices
/// </remarks>
public static string Manage = "/_matrix/client/r0/devices";
/// <summary>
/// Deletes the given device, and invalidates any access token associated with it. Deletes with interactive auth object and deviceId parameter.
/// </summary>
/// <remarks>
/// https://matrix.org/docs/api/client-server/#!/Device32management/deleteDevice
/// </remarks>
public static string Delete = _deviceIdUrl;
/// <summary>
/// Gets information on a single device, by device id. Gets with deviceId parameter.
/// </summary>
/// <remarks>
/// https://matrix.org/docs/api/client-server/#!/Device32management/getDevice
/// </remarks>
public static string Info = _deviceIdUrl;
/// <summary>
/// Updates the metadata (display name) on the given device. Puts a device metadata object with deviceId parameter.
/// </summary>
/// <remarks>
/// https://matrix.org/docs/api/client-server/#!/Device32management/updateDevice
/// </remarks>
public static string Update = _deviceIdUrl;
/// <summary>
/// Deletes the given devices, and invalidates any access token associated with them. Posts with an interactive auth + device list object.
/// </summary>
/// <remarks>
/// https://matrix.org/docs/api/client-server/#!/Device32management/deleteDevices
/// </remarks>
public static string MultiDelete = "/_matrix/client/r0/delete_devices";
/// <summary>
/// Sends send-to-device events to the given devices. Puts a device message object with eventType and txnId parameters.
/// </summary>
/// <remarks>
/// https://matrix.org/docs/api/client-server/#!/Send45to45Device32messaging/sendToDevice
/// </remarks>
public static string Send = "/_matrix/client/r0/sendtodevice/{EventType}/{TxnId}";
}
public static class Media
{
/// <summary>
///
/// </summary>
/// <remarks>
///
/// </remarks>
public static string Config = "/_matrix/media/r0/config";
/// <summary>
///
/// </summary>
/// <remarks>
///
/// </remarks>
public static string Save = "/_matrix/media/r0/download/{ServerName}/{MediaId}";
/// <summary>
///
/// </summary>
/// <remarks>
///
/// </remarks>
public static string Saveas = "/_matrix/media/r0/download/{ServerName}/{MediaId}/{Filename}";
/// <summary>
///
/// </summary>
/// <remarks>
///
/// </remarks>
public static string Preview = "/_matrix/media/r0/preview_url";
/// <summary>
///
/// </summary>
/// <remarks>
///
/// </remarks>
public static string Thumb = "/_matrix/media/r0/thumbnail/{ServerName}/{MediaId}";
/// <summary>
///
/// </summary>
/// <remarks>
///
/// </remarks>
public static string Upload = "/_matrix/media/r0/upload";
}
public static class Notifier
{
/// <summary>
///
/// </summary>
/// <remarks>
///
/// </remarks>
public static string Notifiers = "/_matrix/client/r0/notifications";
/// <summary>
///
/// </summary>
/// <remarks>
///
/// </remarks>
public static string Pushers = "/_matrix/client/r0/pushers";
/// <summary>
///
/// </summary>
/// <remarks>
///
/// </remarks>
public static string Set = "/_matrix/client/r0/pushers/set";
/// <summary>
///
/// </summary>
/// <remarks>
///
/// </remarks>
public static string Rules = "/_matrix/client/r0/pushrules/";
}
public static class NotifierRule
{
/// <summary>
///
/// </summary>
/// <remarks>
///
/// </remarks>
public static string Manage = "/_matrix/client/r0/pushrules/{scope}/{Kind}/{RuleId}";
/// <summary>
///
/// </summary>
/// <remarks>
///
/// </remarks>
public static string Actions = "/_matrix/client/r0/pushrules/{scope}/{Kind}/{RuleId}/actions";
/// <summary>
///
/// </summary>
/// <remarks>
///
/// </remarks>
public static string Toggle = "/_matrix/client/r0/pushrules/{scope}/{Kind}/{RuleId}/enabled";
}
public static class User
{
/// <summary>
///
/// </summary>
/// <remarks>
///
/// </remarks>
public static string Thirdparty = "/_matrix/client/r0/account/3pid";
/// <summary>
///
/// </summary>
/// <remarks>
///
/// </remarks>
public static string Deactivate = "/_matrix/client/r0/account/deactivate";
/// <summary>
///
/// </summary>
/// <remarks>
///
/// </remarks>
public static string Password = "/_matrix/client/r0/account/password";
/// <summary>
///
/// </summary>
/// <remarks>
///
/// </remarks>
public static string Register = "/_matrix/client/r0/register";
/// <summary>
///
/// </summary>
/// <remarks>
///
/// </remarks>
public static string WhoAmI = "/_matrix/client/r0/account/whoami";
/// <summary>
///
/// </summary>
/// <remarks>
///
/// </remarks>
public static string Profile = "/_matrix/client/r0/profile/{UserId}";
/// <summary>
///
/// </summary>
/// <remarks>
///
/// </remarks>
public static string Avatar = "/_matrix/client/r0/profile/{UserId}/avtatar_url";
/// <summary>
///
/// </summary>
/// <remarks>
///
/// </remarks>
public static string DisplayName = "/_matrix/client/r0/profile/{UserId}/displayname";
/// <summary>
///
/// </summary>
/// <remarks>
///
/// </remarks>
public static string ExtraInfo = "/_matrix/client/r0/user/{UserId}/account_data/{type}";
/// <summary>
///
/// </summary>
/// <remarks>
///
/// </remarks>
public static string EventFilter = "/_matrix/client/r0/user/{UserId}/filter";
/// <summary>
/// Gets a list of the user's current rooms.
/// </summary>
/// <remarks>
/// https://matrix.org/docs/api/client-server/#!/Room32membership/getJoinedRooms
/// </remarks>
public static string Rooms = "/_matrix/client/r0/joined_rooms";
/// <summary>
///
/// </summary>
/// <remarks>
///
/// </remarks>
public static string Login = "/_matrix/client/r0/login";
/// <summary>
///
/// </summary>
/// <remarks>
///
/// </remarks>
public static string Logout = "/_matrix/client/r0/logout";
/// <summary>
///
/// </summary>
/// <remarks>
///
/// </remarks>
public static string Status = "/_matrix/client/r0/presence/{UserId}/status";
}
public static class UserRoom
{
/// <summary>
///
/// </summary>
/// <remarks>
///
/// </remarks>
public static string Extrainfo = "/_matrix/client/r0/user/{UserId}/rooms/{RoomId}/account_data/{type}";
/// <summary>
///
/// </summary>
/// <remarks>
///
/// </remarks>
public static string Tags = "/_matrix/client/r0/user/{UserId}/rooms/{RoomId}/tags";
}
public static class Room
{
/// <summary>
/// Private string for room URL
/// </summary>
private static string roomBase = "/_matrix/client/r0/rooms/{RoomId}";
/// <summary>
///
/// </summary>
/// <remarks>
///
/// </remarks>
public static string Create = "/_matrix/client/r0/createRoom";
/// <summary>
///
/// </summary>
/// <remarks>
///
/// </remarks>
public static string Aliases = "/_matrix/client/unstable/org.matrix.msc2432/rooms/{RoomId}/aliases";
/// <summary>
///
/// </summary>
/// <remarks>
///
/// </remarks>
public static string Active = roomBase + "/joined_members";
/// <summary>
///
/// </summary>
/// <remarks>
///
/// </remarks>
public static string Members = roomBase + "/members";
/// <summary>
///
/// </summary>
/// <remarks>
///
/// </remarks>
public static string Messages = roomBase + "/messages";
/// <summary>
///
/// </summary>
/// <remarks>
///
/// </remarks>
public static string Join = "/_matrix/client/r0/join/{RoomIdOrAlias}";
/// <summary>
///
/// </summary>
/// <remarks>
///
/// </remarks>
public static string Ban = roomBase + "/ban";
/// <summary>
///
/// </summary>
/// <remarks>
///
/// </remarks>
public static string Forget = roomBase + "/forget";
/// <summary>
///
/// </summary>
/// <remarks>
///
/// </remarks>
public static string Invite = roomBase + "/invite";
/// <summary>
/// Starts the user participating in the given room. Posts RoomId (not alias).
/// </summary>
/// <remarks>
/// https://matrix.org/docs/api/client-server/#!/Room32membership/joinRoomById
/// </remarks>
public static string IdJoin = roomBase + "/join";
/// <summary>
///
/// </summary>
/// <remarks>
///
/// </remarks>
public static string Kick = roomBase + "/kick";
/// <summary>
///
/// </summary>
/// <remarks>
///
/// </remarks>
public static string Leave = roomBase + "/leave";
/// <summary>
///
/// </summary>
/// <remarks>
///
/// </remarks>
public static string Unban = roomBase + "/unban";
/// <summary>
///
/// </summary>
/// <remarks>
///
/// </remarks>
public static string Marker = roomBase + "/read_markers";
}
public static class RoomEvent
{
/// <summary>
///
/// </summary>
/// <remarks>
///
/// </remarks>
public static string Context = "/_matrix/client/r0/rooms/{RoomId}/context/{EventId}";
/// <summary>
///
/// </summary>
/// <remarks>
///
/// </remarks>
public static string Event = "/_matrix/client/r0/rooms/{RoomId}/event/{EventId}";
/// <summary>
///
/// </summary>
/// <remarks>
///
/// </remarks>
public static string Receipt = "/_matrix/client/r0/rooms/{RoomId}/receipt/{ReceiptType}/{EventId}";
/// <summary>
///
/// </summary>
/// <remarks>
///
/// </remarks>
public static string Redact = "/_matrix/client/r0/rooms/{RoomId}/redact/{EventId}/{TxnId}";
/// <summary>
///
/// </summary>
/// <remarks>
///
/// </remarks>
public static string Send = "/_matrix/client/r0/rooms/{RoomId}/send/{EventType}/{TxnId}";
/// <summary>
///
/// </summary>
/// <remarks>
///
/// </remarks>
public static string Typing = "/_matrix/client/r0/rooms/{RoomId}/typing/{UserId}";
/// <summary>
///
/// </summary>
/// <remarks>
///
/// </remarks>
public static string Flag = "/_matrix/client/r0/rooms/{RoomId}/report/{EventId}";
}
public static class RoomState
{
/// <summary>
///
/// </summary>
/// <remarks>
///
/// </remarks>
public static string List = "/_matrix/client/r0/rooms/{RoomId}/state";
/// <summary>
///
/// </summary>
/// <remarks>
///
/// </remarks>
public static string State = "/_matrix/client/r0/rooms/{RoomId}/state/{EventType}/{StateKey}";
}
}
//public static Dictionary<string, string> Server = new Dictionary<string, string>()
//{
// { "discovery", "/.well-known/matrix/client" },
// { "versions", "/_matrix/client/versions" },
// { "capabilities", "/_matrix/client/r0/capabilities" },
// { "whois", "/_matrix/client/r0/admin/whois/{userId}" },
// { "search", "/_matrix/client/r0/search" },
// { "usersearch", "/_matrix/client/r0/user_directory/search" },
// { "roomlist", "/_matrix/client/r0/publicRooms" },
// { "managerooms", "/_matrix/client/r0/directory/list/appservice/{networkId}/{roomId}" },
// { "upgraderoom", "/_matrix/client/r0/rooms/{roomId}/upgrade" },
// { "openid", "/_matrix/client/r0/user/{userId}/openid/request_token" },
// { "voip", "/_matrix/client/r0/voip/turnServer" }
//};
//public static Dictionary<string, string> Key = new Dictionary<string, string>()
//{
// { "latest", "/_matrix/client/r0/keys/changes" },
// { "claim", "/_matrix/client/r0/keys/claim" },
// { "download", "/_matrix/client/r0/keys/query" },
// { "upload", "/_matrix/client/r0/keys/upload" }
//};
//public static Dictionary<string, string> Device = new Dictionary<string, string>()
//{
// { "manage", "/_matrix/client/r0/devices" },
// { "multidelete", "/_matrix/client/r0/delete_devices" },
// { "send", "/_matrix/client/r0/sendToDevice/{eventType}/{txnId}" }
//};
//public static Dictionary<string, string> Media = new Dictionary<string, string>()
//{
// { "config", "/_matrix/media/r0/config" },
// { "save", "/_matrix/media/r0/download/{serverName}/{mediaId}" },
// { "saveas", "/_matrix/media/r0/download/{serverName}/{mediaId}/{fileName}" },
// { "preview", "/_matrix/media/r0/preview_url" },
// { "thumb", "/_matrix/media/r0/thumbnail/{serverName}/{mediaId}" },
// { "upload", "/_matrix/media/r0/upload" }
//};
//public static Dictionary<string, string> Notifier = new Dictionary<string, string>()
//{
// { "notifiers", "/_matrix/client/r0/notifications" },
// { "pushers", "/_matrix/client/r0/pushers" },
// { "set", "/_matrix/client/r0/pushers/set" },
// { "rules", "/_matrix/client/r0/pushrules/" }
//};
//public static Dictionary<string, string> NotifierRule = new Dictionary<string, string>()
//{
// { "manage", "/_matrix/client/r0/pushrules/{scope}/{kind}/{ruleId}" },
// { "actions", "/_matrix/client/r0/pushrules/{scope}/{kind}/{ruleId}/actions" },
// { "toggle", "/_matrix/client/r0/pushrules/{scope}/{kind}/{ruleId}/enabled" }
//};
//public static Dictionary<string, string> User = new Dictionary<string, string>()
//{
// { "thirdparty", "/_matrix/client/r0/account/3pid" },
// { "deactivate", "/_matrix/client/r0/account/deactivate" },
// { "password", "/_matrix/client/r0/account/password" },
// { "register", "/_matrix/client/r0/register" },
// { "whoami", "/_matrix/client/r0/account/whoami" },
// { "profile", "/_matrix/client/r0/profile/{userId}" },
// { "avatar", "/_matrix/client/r0/profile/{userId}/avtatar_url" },
// { "displayname", "/_matrix/client/r0/profile/{userId}/displayname" },
// { "extrainfo", "/_matrix/client/r0/user/{userId}/account_data/{type}" },
// { "eventfilter", "/_matrix/client/r0/user/{userId}/filter" },
// { "rooms", "/_matrix/client/r0/joined_rooms" },
// { "login", "/_matrix/client/r0/login" },
// { "logout", "/_matrix/client/r0/logout" },
// { "status", "/_matrix/client/r0/presence/{userId}/status" }
//};
//public static Dictionary<string, string> UserRoom = new Dictionary<string, string>()
//{
// { "extrainfo", "/_matrix/client/r0/user/{userId}/rooms/{roomId}/account_data/{type}" },
// { "tags", "/_matrix/client/r0/user/{userId}/rooms/{roomId}/tags" }
//};
//public static Dictionary<string, string> Room = new Dictionary<string, string>()
//{
// { "create", "/_matrix/client/r0/createRoom" },
// { "aliases", "/_matrix/client/unstable/org.matrix.msc2432/rooms/{roomId}/aliases" },
// { "active", "/_matrix/client/r0/rooms/{roomId}/joined_members" },
// { "members", "/_matrix/client/r0/rooms/{roomId}/members" },
// { "messages", "/_matrix/client/r0/rooms/{roomId}/messages" },
// { "join", "/_matrix/client/r0/join/{roomIdOrAlias}" },
// { "ban", "/_matrix/client/r0/rooms/{roomId}/ban" },
// { "forget", "/_matrix/client/r0/rooms/{roomId}/forget" },
// { "invite", "/_matrix/client/r0/rooms/{roomId}/invite" },
// { "idjoin", "/_matrix/client/r0/rooms/{roomId}/join" },
// { "kick", "/_matrix/client/r0/rooms/{roomId}/kick" },
// { "leave", "/_matrix/client/r0/rooms/{roomId}/leave" },
// { "unban", "/_matrix/client/r0/rooms/{roomId}/unban" },
// { "marker", "/_matrix/client/r0/rooms/{roomId}/read_markers" }
//};
//public static Dictionary<string, string> RoomEvent = new Dictionary<string, string>()
//{
// { "context", "/_matrix/client/r0/rooms/{roomId}/context/{eventId}" },
// { "event", "/_matrix/client/r0/rooms/{roomId}/event/{eventId}" },
// { "receipt", "/_matrix/client/r0/rooms/{roomId}/receipt/{receiptType}/{eventId}" },
// { "redact", "/_matrix/client/r0/rooms/{roomId}/redact/{eventId}/{txnId}" },
// { "send", "/_matrix/client/r0/rooms/{roomId}/send/{eventType}/{txnId}" },
// { "typing", "/_matrix/client/r0/rooms/{roomId}/typing/{userId}" },
// { "flag", "/_matrix/client/r0/rooms/{roomId}/report/{eventId}" }
//};
//public static Dictionary<string, string> RoomState = new Dictionary<string, string>()
//{
// { "list", "/_matrix/client/r0/rooms/{roomId}/state" },
// { "state", "/_matrix/client/r0/rooms/{roomId}/state/{eventType}/{stateKey}" }
//};
//public Dictionary<string, string> Entities = new Dictionary<string, string>()
//{
// { "deviceId", "" },
// { "eventId", "" },
// { "eventType", "" },
// { "fileName", "" },
// { "filterId", "" },
// { "kind", "" },
// { "mediaId", "" },
// { "networkId", "" },
// { "receiptType", "" },
// { "roomAlias", "" },
// { "roomId", "" },
// { "roomIdOrAlias", "" },
// { "ruleId", "" },
// { "scope", "" },
// { "serverName", "" },
// { "stateKey", "" },
// { "tags", "" },
// { "txnId", "" },
// { "type", "" },
// { "userId", "" }
//};
}