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