intermediary commit
This commit is contained in:
563
mumble/Mumble.proto
Normal file
563
mumble/Mumble.proto
Normal file
@@ -0,0 +1,563 @@
|
||||
// Copyright 2005-2017 The Mumble Developers. All rights reserved.
|
||||
// Use of this source code is governed by a BSD-style license
|
||||
// that can be found in the LICENSE file at the root of the
|
||||
// Mumble source tree or at <https://www.mumble.info/LICENSE>.
|
||||
|
||||
syntax = "proto2";
|
||||
|
||||
package MumbleProto;
|
||||
|
||||
option optimize_for = SPEED;
|
||||
|
||||
message Version {
|
||||
// 2-byte Major, 1-byte Minor and 1-byte Patch version number.
|
||||
optional uint32 version = 1;
|
||||
// Client release name.
|
||||
optional string release = 2;
|
||||
// Client OS name.
|
||||
optional string os = 3;
|
||||
// Client OS version.
|
||||
optional string os_version = 4;
|
||||
}
|
||||
|
||||
// Not used. Not even for tunneling UDP through TCP.
|
||||
message UDPTunnel {
|
||||
// Not used.
|
||||
required bytes packet = 1;
|
||||
}
|
||||
|
||||
// Used by the client to send the authentication credentials to the server.
|
||||
message Authenticate {
|
||||
// UTF-8 encoded username.
|
||||
optional string username = 1;
|
||||
// Server or user password.
|
||||
optional string password = 2;
|
||||
// Additional access tokens for server ACL groups.
|
||||
repeated string tokens = 3;
|
||||
// A list of CELT bitstream version constants supported by the client.
|
||||
repeated int32 celt_versions = 4;
|
||||
optional bool opus = 5 [default = false];
|
||||
}
|
||||
|
||||
// Sent by the client to notify the server that the client is still alive.
|
||||
// Server must reply to the packet with the same timestamp and its own
|
||||
// good/late/lost/resync numbers. None of the fields is strictly required.
|
||||
message Ping {
|
||||
// Client timestamp. Server should not attempt to decode.
|
||||
optional uint64 timestamp = 1;
|
||||
// The amount of good packets received.
|
||||
optional uint32 good = 2;
|
||||
// The amount of late packets received.
|
||||
optional uint32 late = 3;
|
||||
// The amount of packets never received.
|
||||
optional uint32 lost = 4;
|
||||
// The amount of nonce resyncs.
|
||||
optional uint32 resync = 5;
|
||||
// The total amount of UDP packets received.
|
||||
optional uint32 udp_packets = 6;
|
||||
// The total amount of TCP packets received.
|
||||
optional uint32 tcp_packets = 7;
|
||||
// UDP ping average.
|
||||
optional float udp_ping_avg = 8;
|
||||
// UDP ping variance.
|
||||
optional float udp_ping_var = 9;
|
||||
// TCP ping average.
|
||||
optional float tcp_ping_avg = 10;
|
||||
// TCP ping variance.
|
||||
optional float tcp_ping_var = 11;
|
||||
}
|
||||
|
||||
// Sent by the server when it rejects the user connection.
|
||||
message Reject {
|
||||
enum RejectType {
|
||||
// The rejection reason is unknown (details should be available
|
||||
// in Reject.reason).
|
||||
None = 0;
|
||||
// The client attempted to connect with an incompatible version.
|
||||
WrongVersion = 1;
|
||||
// The user name supplied by the client was invalid.
|
||||
InvalidUsername = 2;
|
||||
// The client attempted to authenticate as a user with a password but it
|
||||
// was wrong.
|
||||
WrongUserPW = 3;
|
||||
// The client attempted to connect to a passworded server but the password
|
||||
// was wrong.
|
||||
WrongServerPW = 4;
|
||||
// Supplied username is already in use.
|
||||
UsernameInUse = 5;
|
||||
// Server is currently full and cannot accept more users.
|
||||
ServerFull = 6;
|
||||
// The user did not provide a certificate but one is required.
|
||||
NoCertificate = 7;
|
||||
AuthenticatorFail = 8;
|
||||
}
|
||||
// Rejection type.
|
||||
optional RejectType type = 1;
|
||||
// Human readable rejection reason.
|
||||
optional string reason = 2;
|
||||
}
|
||||
|
||||
// ServerSync message is sent by the server when it has authenticated the user
|
||||
// and finished synchronizing the server state.
|
||||
message ServerSync {
|
||||
// The session of the current user.
|
||||
optional uint32 session = 1;
|
||||
// Maximum bandwidth that the user should use.
|
||||
optional uint32 max_bandwidth = 2;
|
||||
// Server welcome text.
|
||||
optional string welcome_text = 3;
|
||||
// Current user permissions in the root channel.
|
||||
optional uint64 permissions = 4;
|
||||
}
|
||||
|
||||
// Sent by the client when it wants a channel removed. Sent by the server when
|
||||
// a channel has been removed and clients should be notified.
|
||||
message ChannelRemove {
|
||||
required uint32 channel_id = 1;
|
||||
}
|
||||
|
||||
// Used to communicate channel properties between the client and the server.
|
||||
// Sent by the server during the login process or when channel properties are
|
||||
// updated. Client may use this message to update said channel properties.
|
||||
message ChannelState {
|
||||
// Unique ID for the channel within the server.
|
||||
optional uint32 channel_id = 1;
|
||||
// channel_id of the parent channel.
|
||||
optional uint32 parent = 2;
|
||||
// UTF-8 encoded channel name.
|
||||
optional string name = 3;
|
||||
// A collection of channel id values of the linked channels. Absent during
|
||||
// the first channel listing.
|
||||
repeated uint32 links = 4;
|
||||
// UTF-8 encoded channel description. Only if the description is less than
|
||||
// 128 bytes
|
||||
optional string description = 5;
|
||||
// A collection of channel_id values that should be added to links.
|
||||
repeated uint32 links_add = 6;
|
||||
// A collection of channel_id values that should be removed from links.
|
||||
repeated uint32 links_remove = 7;
|
||||
// True if the channel is temporary.
|
||||
optional bool temporary = 8 [default = false];
|
||||
// Position weight to tweak the channel position in the channel list.
|
||||
optional int32 position = 9 [default = 0];
|
||||
// SHA1 hash of the description if the description is 128 bytes or more.
|
||||
optional bytes description_hash = 10;
|
||||
// Maximum number of users allowed in the channel. If this value is zero,
|
||||
// the maximum number of users allowed in the channel is given by the
|
||||
// server's "usersperchannel" setting.
|
||||
optional uint32 max_users = 11;
|
||||
}
|
||||
|
||||
// Used to communicate user leaving or being kicked. May be sent by the client
|
||||
// when it attempts to kick a user. Sent by the server when it informs the
|
||||
// clients that a user is not present anymore.
|
||||
message UserRemove {
|
||||
// The user who is being kicked, identified by their session, not present
|
||||
// when no one is being kicked.
|
||||
required uint32 session = 1;
|
||||
// The user who initiated the removal. Either the user who performs the kick
|
||||
// or the user who is currently leaving.
|
||||
optional uint32 actor = 2;
|
||||
// Reason for the kick, stored as the ban reason if the user is banned.
|
||||
optional string reason = 3;
|
||||
// True if the kick should result in a ban.
|
||||
optional bool ban = 4;
|
||||
}
|
||||
|
||||
// Sent by the server when it communicates new and changed users to client.
|
||||
// First seen during login procedure. May be sent by the client when it wishes
|
||||
// to alter its state.
|
||||
message UserState {
|
||||
// Unique user session ID of the user whose state this is, may change on
|
||||
// reconnect.
|
||||
optional uint32 session = 1;
|
||||
// The session of the user who is updating this user.
|
||||
optional uint32 actor = 2;
|
||||
// User name, UTF-8 encoded.
|
||||
optional string name = 3;
|
||||
// Registered user ID if the user is registered.
|
||||
optional uint32 user_id = 4;
|
||||
// Channel on which the user is.
|
||||
optional uint32 channel_id = 5;
|
||||
// True if the user is muted by admin.
|
||||
optional bool mute = 6;
|
||||
// True if the user is deafened by admin.
|
||||
optional bool deaf = 7;
|
||||
// True if the user has been suppressed from talking by a reason other than
|
||||
// being muted.
|
||||
optional bool suppress = 8;
|
||||
// True if the user has muted self.
|
||||
optional bool self_mute = 9;
|
||||
// True if the user has deafened self.
|
||||
optional bool self_deaf = 10;
|
||||
// User image if it is less than 128 bytes.
|
||||
optional bytes texture = 11;
|
||||
// The positional audio plugin identifier.
|
||||
// Positional audio information is only sent to users who share
|
||||
// identical plugin contexts.
|
||||
//
|
||||
// This value is not trasmitted to clients.
|
||||
optional bytes plugin_context = 12;
|
||||
// The user's plugin-specific identity.
|
||||
// This value is not transmitted to clients.
|
||||
optional string plugin_identity = 13;
|
||||
// User comment if it is less than 128 bytes.
|
||||
optional string comment = 14;
|
||||
// The hash of the user certificate.
|
||||
optional string hash = 15;
|
||||
// SHA1 hash of the user comment if it 128 bytes or more.
|
||||
optional bytes comment_hash = 16;
|
||||
// SHA1 hash of the user picture if it 128 bytes or more.
|
||||
optional bytes texture_hash = 17;
|
||||
// True if the user is a priority speaker.
|
||||
optional bool priority_speaker = 18;
|
||||
// True if the user is currently recording.
|
||||
optional bool recording = 19;
|
||||
}
|
||||
|
||||
// Relays information on the bans. The client may send the BanList message to
|
||||
// either modify the list of bans or query them from the server. The server
|
||||
// sends this list only after a client queries for it.
|
||||
message BanList {
|
||||
message BanEntry {
|
||||
// Banned IP address.
|
||||
required bytes address = 1;
|
||||
// The length of the subnet mask for the ban.
|
||||
required uint32 mask = 2;
|
||||
// User name for identification purposes (does not affect the ban).
|
||||
optional string name = 3;
|
||||
// The certificate hash of the banned user.
|
||||
optional string hash = 4;
|
||||
// Reason for the ban (does not affect the ban).
|
||||
optional string reason = 5;
|
||||
// Ban start time.
|
||||
optional string start = 6;
|
||||
// Ban duration in seconds.
|
||||
optional uint32 duration = 7;
|
||||
}
|
||||
// List of ban entries currently in place.
|
||||
repeated BanEntry bans = 1;
|
||||
// True if the server should return the list, false if it should replace old
|
||||
// ban list with the one provided.
|
||||
optional bool query = 2 [default = false];
|
||||
}
|
||||
|
||||
// Used to send and broadcast text messages.
|
||||
message TextMessage {
|
||||
// The message sender, identified by its session.
|
||||
optional uint32 actor = 1;
|
||||
// Target users for the message, identified by their session.
|
||||
repeated uint32 session = 2;
|
||||
// The channels to which the message is sent, identified by their
|
||||
// channel_ids.
|
||||
repeated uint32 channel_id = 3;
|
||||
// The root channels when sending message recursively to several channels,
|
||||
// identified by their channel_ids.
|
||||
repeated uint32 tree_id = 4;
|
||||
// The UTF-8 encoded message. May be HTML if the server allows.
|
||||
required string message = 5;
|
||||
}
|
||||
|
||||
message PermissionDenied {
|
||||
enum DenyType {
|
||||
// Operation denied for other reason, see reason field.
|
||||
Text = 0;
|
||||
// Permissions were denied.
|
||||
Permission = 1;
|
||||
// Cannot modify SuperUser.
|
||||
SuperUser = 2;
|
||||
// Invalid channel name.
|
||||
ChannelName = 3;
|
||||
// Text message too long.
|
||||
TextTooLong = 4;
|
||||
// The flux capacitor was spelled wrong.
|
||||
H9K = 5;
|
||||
// Operation not permitted in temporary channel.
|
||||
TemporaryChannel = 6;
|
||||
// Operation requires certificate.
|
||||
MissingCertificate = 7;
|
||||
// Invalid username.
|
||||
UserName = 8;
|
||||
// Channel is full.
|
||||
ChannelFull = 9;
|
||||
NestingLimit = 10;
|
||||
}
|
||||
// The denied permission when type is Permission.
|
||||
optional uint32 permission = 1;
|
||||
// channel_id for the channel where the permission was denied when type is
|
||||
// Permission.
|
||||
optional uint32 channel_id = 2;
|
||||
// The user who was denied permissions, identified by session.
|
||||
optional uint32 session = 3;
|
||||
// Textual reason for the denial.
|
||||
optional string reason = 4;
|
||||
// Type of the denial.
|
||||
optional DenyType type = 5;
|
||||
// The name that is invalid when type is UserName.
|
||||
optional string name = 6;
|
||||
}
|
||||
|
||||
message ACL {
|
||||
message ChanGroup {
|
||||
// Name of the channel group, UTF-8 encoded.
|
||||
required string name = 1;
|
||||
// True if the group has been inherited from the parent (Read only).
|
||||
optional bool inherited = 2 [default = true];
|
||||
// True if the group members are inherited.
|
||||
optional bool inherit = 3 [default = true];
|
||||
// True if the group can be inherited by sub channels.
|
||||
optional bool inheritable = 4 [default = true];
|
||||
// Users explicitly included in this group, identified by user_id.
|
||||
repeated uint32 add = 5;
|
||||
// Users explicitly removed from this group in this channel if the group
|
||||
// has been inherited, identified by user_id.
|
||||
repeated uint32 remove = 6;
|
||||
// Users inherited, identified by user_id.
|
||||
repeated uint32 inherited_members = 7;
|
||||
}
|
||||
message ChanACL {
|
||||
// True if this ACL applies to the current channel.
|
||||
optional bool apply_here = 1 [default = true];
|
||||
// True if this ACL applies to the sub channels.
|
||||
optional bool apply_subs = 2 [default = true];
|
||||
// True if the ACL has been inherited from the parent.
|
||||
optional bool inherited = 3 [default = true];
|
||||
// ID of the user that is affected by this ACL.
|
||||
optional uint32 user_id = 4;
|
||||
// ID of the group that is affected by this ACL.
|
||||
optional string group = 5;
|
||||
// Bit flag field of the permissions granted by this ACL.
|
||||
optional uint32 grant = 6;
|
||||
// Bit flag field of the permissions denied by this ACL.
|
||||
optional uint32 deny = 7;
|
||||
}
|
||||
// Channel ID of the channel this message affects.
|
||||
required uint32 channel_id = 1;
|
||||
// True if the channel inherits its parent's ACLs.
|
||||
optional bool inherit_acls = 2 [default = true];
|
||||
// User group specifications.
|
||||
repeated ChanGroup groups = 3;
|
||||
// ACL specifications.
|
||||
repeated ChanACL acls = 4;
|
||||
// True if the message is a query for ACLs instead of setting them.
|
||||
optional bool query = 5 [default = false];
|
||||
}
|
||||
|
||||
// Client may use this message to refresh its registered user information. The
|
||||
// client should fill the IDs or Names of the users it wants to refresh. The
|
||||
// server fills the missing parts and sends the message back.
|
||||
message QueryUsers {
|
||||
// user_ids.
|
||||
repeated uint32 ids = 1;
|
||||
// User names in the same order as ids.
|
||||
repeated string names = 2;
|
||||
}
|
||||
|
||||
// Used to initialize and resync the UDP encryption. Either side may request a
|
||||
// resync by sending the message without any values filled. The resync is
|
||||
// performed by sending the message with only the client or server nonce
|
||||
// filled.
|
||||
message CryptSetup {
|
||||
// Encryption key.
|
||||
optional bytes key = 1;
|
||||
// Client nonce.
|
||||
optional bytes client_nonce = 2;
|
||||
// Server nonce.
|
||||
optional bytes server_nonce = 3;
|
||||
}
|
||||
|
||||
message ContextActionModify {
|
||||
enum Context {
|
||||
// Action is applicable to the server.
|
||||
Server = 0x01;
|
||||
// Action can target a Channel.
|
||||
Channel = 0x02;
|
||||
// Action can target a User.
|
||||
User = 0x04;
|
||||
}
|
||||
enum Operation {
|
||||
Add = 0;
|
||||
Remove = 1;
|
||||
}
|
||||
// The action name.
|
||||
required string action = 1;
|
||||
// The display name of the action.
|
||||
optional string text = 2;
|
||||
// Context bit flags defining where the action should be displayed.
|
||||
optional uint32 context = 3;
|
||||
optional Operation operation = 4;
|
||||
}
|
||||
|
||||
// Sent by the client when it wants to initiate a Context action.
|
||||
message ContextAction {
|
||||
// The target User for the action, identified by session.
|
||||
optional uint32 session = 1;
|
||||
// The target Channel for the action, identified by channel_id.
|
||||
optional uint32 channel_id = 2;
|
||||
// The action that should be executed.
|
||||
required string action = 3;
|
||||
}
|
||||
|
||||
// Lists the registered users.
|
||||
message UserList {
|
||||
message User {
|
||||
// Registered user ID.
|
||||
required uint32 user_id = 1;
|
||||
// Registered user name.
|
||||
optional string name = 2;
|
||||
optional string last_seen = 3;
|
||||
optional uint32 last_channel = 4;
|
||||
}
|
||||
// A list of registered users.
|
||||
repeated User users = 1;
|
||||
}
|
||||
|
||||
// Sent by the client when it wants to register or clear whisper targets.
|
||||
//
|
||||
// Note: The first available target ID is 1 as 0 is reserved for normal
|
||||
// talking. Maximum target ID is 30.
|
||||
message VoiceTarget {
|
||||
message Target {
|
||||
// Users that are included as targets.
|
||||
repeated uint32 session = 1;
|
||||
// Channel that is included as a target.
|
||||
optional uint32 channel_id = 2;
|
||||
// ACL group that is included as a target.
|
||||
optional string group = 3;
|
||||
// True if the voice should follow links from the specified channel.
|
||||
optional bool links = 4 [default = false];
|
||||
// True if the voice should also be sent to children of the specific
|
||||
// channel.
|
||||
optional bool children = 5 [default = false];
|
||||
}
|
||||
// Voice target ID.
|
||||
optional uint32 id = 1;
|
||||
// The receivers that this voice target includes.
|
||||
repeated Target targets = 2;
|
||||
}
|
||||
|
||||
// Sent by the client when it wants permissions for a certain channel. Sent by
|
||||
// the server when it replies to the query or wants the user to resync all
|
||||
// channel permissions.
|
||||
message PermissionQuery {
|
||||
// channel_id of the channel for which the permissions are queried.
|
||||
optional uint32 channel_id = 1;
|
||||
// Channel permissions.
|
||||
optional uint32 permissions = 2;
|
||||
// True if the client should drop its current permission information for all
|
||||
// channels.
|
||||
optional bool flush = 3 [default = false];
|
||||
}
|
||||
|
||||
// Sent by the server to notify the users of the version of the CELT codec they
|
||||
// should use. This may change during the connection when new users join.
|
||||
message CodecVersion {
|
||||
// The version of the CELT Alpha codec.
|
||||
required int32 alpha = 1;
|
||||
// The version of the CELT Beta codec.
|
||||
required int32 beta = 2;
|
||||
// True if the user should prefer Alpha over Beta.
|
||||
required bool prefer_alpha = 3 [default = true];
|
||||
optional bool opus = 4 [default = false];
|
||||
}
|
||||
|
||||
// Used to communicate user stats between the server and clients.
|
||||
message UserStats {
|
||||
message Stats {
|
||||
// The amount of good packets received.
|
||||
optional uint32 good = 1;
|
||||
// The amount of late packets received.
|
||||
optional uint32 late = 2;
|
||||
// The amount of packets never received.
|
||||
optional uint32 lost = 3;
|
||||
// The amount of nonce resyncs.
|
||||
optional uint32 resync = 4;
|
||||
}
|
||||
|
||||
// User whose stats these are.
|
||||
optional uint32 session = 1;
|
||||
// True if the message contains only mutable stats (packets, ping).
|
||||
optional bool stats_only = 2 [default = false];
|
||||
// Full user certificate chain of the user certificate in DER format.
|
||||
repeated bytes certificates = 3;
|
||||
// Packet statistics for packets received from the client.
|
||||
optional Stats from_client = 4;
|
||||
// Packet statistics for packets sent by the server.
|
||||
optional Stats from_server = 5;
|
||||
|
||||
// Amount of UDP packets sent.
|
||||
optional uint32 udp_packets = 6;
|
||||
// Amount of TCP packets sent.
|
||||
optional uint32 tcp_packets = 7;
|
||||
// UDP ping average.
|
||||
optional float udp_ping_avg = 8;
|
||||
// UDP ping variance.
|
||||
optional float udp_ping_var = 9;
|
||||
// TCP ping average.
|
||||
optional float tcp_ping_avg = 10;
|
||||
// TCP ping variance.
|
||||
optional float tcp_ping_var = 11;
|
||||
|
||||
// Client version.
|
||||
optional Version version = 12;
|
||||
// A list of CELT bitstream version constants supported by the client of this
|
||||
// user.
|
||||
repeated int32 celt_versions = 13;
|
||||
// Client IP address.
|
||||
optional bytes address = 14;
|
||||
// Bandwith used by this client.
|
||||
optional uint32 bandwidth = 15;
|
||||
// Connection duration.
|
||||
optional uint32 onlinesecs = 16;
|
||||
// Duration since last activity.
|
||||
optional uint32 idlesecs = 17;
|
||||
// True if the user has a strong certificate.
|
||||
optional bool strong_certificate = 18 [default = false];
|
||||
optional bool opus = 19 [default = false];
|
||||
}
|
||||
|
||||
// Used by the client to request binary data from the server. By default large
|
||||
// comments or textures are not sent within standard messages but instead the
|
||||
// hash is. If the client does not recognize the hash it may request the
|
||||
// resource when it needs it. The client does so by sending a RequestBlob
|
||||
// message with the correct fields filled with the user sessions or channel_ids
|
||||
// it wants to receive. The server replies to this by sending a new
|
||||
// UserState/ChannelState message with the resources filled even if they would
|
||||
// normally be transmitted as hashes.
|
||||
message RequestBlob {
|
||||
// sessions of the requested UserState textures.
|
||||
repeated uint32 session_texture = 1;
|
||||
// sessions of the requested UserState comments.
|
||||
repeated uint32 session_comment = 2;
|
||||
// channel_ids of the requested ChannelState descriptions.
|
||||
repeated uint32 channel_description = 3;
|
||||
}
|
||||
|
||||
// Sent by the server when it informs the clients on server configuration
|
||||
// details.
|
||||
message ServerConfig {
|
||||
// The maximum bandwidth the clients should use.
|
||||
optional uint32 max_bandwidth = 1;
|
||||
// Server welcome text.
|
||||
optional string welcome_text = 2;
|
||||
// True if the server allows HTML.
|
||||
optional bool allow_html = 3;
|
||||
// Maximum text message length.
|
||||
optional uint32 message_length = 4;
|
||||
// Maximum image message length.
|
||||
optional uint32 image_message_length = 5;
|
||||
// The maximum number of users allowed on the server.
|
||||
optional uint32 max_users = 6;
|
||||
}
|
||||
|
||||
// Sent by the server to inform the clients of suggested client configuration
|
||||
// specified by the server administrator.
|
||||
message SuggestConfig {
|
||||
// Suggested client version.
|
||||
optional uint32 version = 1;
|
||||
// True if the administrator suggests positional audio to be used on this
|
||||
// server.
|
||||
optional bool positional = 2;
|
||||
// True if the administrator suggests push to talk to be used on this server.
|
||||
optional bool push_to_talk = 3;
|
||||
}
|
||||
823
mumble/MurmurRPC.proto
Normal file
823
mumble/MurmurRPC.proto
Normal file
@@ -0,0 +1,823 @@
|
||||
// Copyright 2005-2017 The Mumble Developers. All rights reserved.
|
||||
// Use of this source code is governed by a BSD-style license
|
||||
// that can be found in the LICENSE file at the root of the
|
||||
// Mumble source tree or at <https://www.mumble.info/LICENSE>.
|
||||
|
||||
syntax = "proto2";
|
||||
|
||||
package MurmurRPC;
|
||||
|
||||
// Note about embedded messages:
|
||||
//
|
||||
// To help save bandwidth, the protocol does not always send complete embedded
|
||||
// messages (i.e. an embeddded message with all of the fields filled in). These
|
||||
// incomplete messages only contain enough identifying information to get more
|
||||
// information from the message's corresponding "Get" method. For example:
|
||||
//
|
||||
// User.server only ever contains the server ID. Calling ServerGet(User.server)
|
||||
// will return a Server message with the server's status and uptime.
|
||||
|
||||
message Void {
|
||||
}
|
||||
|
||||
message Version {
|
||||
// 2-byte Major, 1-byte Minor and 1-byte Patch version number.
|
||||
optional uint32 version = 1;
|
||||
// Client release name.
|
||||
optional string release = 2;
|
||||
// Client OS name.
|
||||
optional string os = 3;
|
||||
// Client OS version.
|
||||
optional string os_version = 4;
|
||||
}
|
||||
|
||||
message Uptime {
|
||||
// The number of seconds from the starting time.
|
||||
optional uint64 secs = 1;
|
||||
}
|
||||
|
||||
message Server {
|
||||
// The unique server ID.
|
||||
required uint32 id = 1;
|
||||
// Is the server currently running?
|
||||
optional bool running = 2;
|
||||
// The update of the server.
|
||||
optional Uptime uptime = 3;
|
||||
|
||||
message Event {
|
||||
enum Type {
|
||||
UserConnected = 0;
|
||||
UserDisconnected = 1;
|
||||
UserStateChanged = 2;
|
||||
UserTextMessage = 3;
|
||||
ChannelCreated = 4;
|
||||
ChannelRemoved = 5;
|
||||
ChannelStateChanged = 6;
|
||||
};
|
||||
// The server on which the event happened.
|
||||
optional Server server = 1;
|
||||
// The type of event that happened.
|
||||
optional Type type = 2;
|
||||
// The user tied to the event (if applicable).
|
||||
optional User user = 3;
|
||||
// The text message tied to the event (if applicable).
|
||||
optional TextMessage message = 4;
|
||||
// The channel tied to the event (if applicable).
|
||||
optional Channel channel = 5;
|
||||
}
|
||||
|
||||
message Query {
|
||||
}
|
||||
|
||||
message List {
|
||||
// The servers.
|
||||
repeated Server servers = 1;
|
||||
}
|
||||
}
|
||||
|
||||
message Event {
|
||||
enum Type {
|
||||
ServerStopped = 0;
|
||||
ServerStarted = 1;
|
||||
};
|
||||
// The server for which the event happened.
|
||||
optional Server server = 1;
|
||||
// The type of event that happened.
|
||||
optional Type type = 2;
|
||||
}
|
||||
|
||||
message ContextAction {
|
||||
enum Context {
|
||||
Server = 0x01;
|
||||
Channel = 0x02;
|
||||
User = 0x04;
|
||||
};
|
||||
// The server on which the action is.
|
||||
optional Server server = 1;
|
||||
// The context in which the action is.
|
||||
optional uint32 context = 2;
|
||||
// The action name.
|
||||
optional string action = 3;
|
||||
// The user-visible descriptive name of the action.
|
||||
optional string text = 4;
|
||||
// The user that triggered the ContextAction.
|
||||
optional User actor = 5;
|
||||
// The user on which the ContextAction was triggered.
|
||||
optional User user = 6;
|
||||
// The channel on which the ContextAction was triggered.
|
||||
optional Channel channel = 7;
|
||||
}
|
||||
|
||||
message TextMessage {
|
||||
// The server on which the TextMessage originates.
|
||||
optional Server server = 1;
|
||||
// The user who sent the message.
|
||||
optional User actor = 2;
|
||||
// The users to whom the message is sent.
|
||||
repeated User users = 3;
|
||||
// The channels to which the message is sent.
|
||||
repeated Channel channels = 4;
|
||||
// The channels to which the message is sent, including the channels'
|
||||
// ancestors.
|
||||
repeated Channel trees = 5;
|
||||
// The message body that is sent.
|
||||
optional string text = 6;
|
||||
|
||||
message Filter {
|
||||
enum Action {
|
||||
// Accept the message.
|
||||
Accept = 0;
|
||||
// Reject the message with a permission error.
|
||||
Reject = 1;
|
||||
// Silently drop the message.
|
||||
Drop = 2;
|
||||
}
|
||||
// The server on which the message originated.
|
||||
optional Server server = 1;
|
||||
// The action to perform for the message.
|
||||
optional Action action = 2;
|
||||
// The text message.
|
||||
optional TextMessage message = 3;
|
||||
}
|
||||
}
|
||||
|
||||
message Log {
|
||||
// The server on which the log message was generated.
|
||||
optional Server server = 1;
|
||||
// The unix timestamp of when the message was generated.
|
||||
optional int64 timestamp = 2;
|
||||
// The log message.
|
||||
optional string text = 3;
|
||||
|
||||
message Query {
|
||||
// The server whose logs will be queried.
|
||||
optional Server server = 1;
|
||||
// The minimum log index to receive.
|
||||
optional uint32 min = 2;
|
||||
// The maximum log index to receive.
|
||||
optional uint32 max = 3;
|
||||
}
|
||||
|
||||
message List {
|
||||
// The server where the log entries are from.
|
||||
optional Server server = 1;
|
||||
// The total number of logs entries on the server.
|
||||
optional uint32 total = 2;
|
||||
// The minimum log index that was sent.
|
||||
optional uint32 min = 3;
|
||||
// The maximum log index that was sent.
|
||||
optional uint32 max = 4;
|
||||
// The log entries.
|
||||
repeated Log entries = 5;
|
||||
}
|
||||
}
|
||||
|
||||
message Config {
|
||||
// The server for which the configuration is for.
|
||||
optional Server server = 1;
|
||||
// The configuration keys and values.
|
||||
map<string, string> fields = 2;
|
||||
|
||||
message Field {
|
||||
// The server for which the configuration field is for.
|
||||
optional Server server = 1;
|
||||
// The field key.
|
||||
optional string key = 2;
|
||||
// The field value.
|
||||
optional string value = 3;
|
||||
}
|
||||
}
|
||||
|
||||
message Channel {
|
||||
// The server on which the channel exists.
|
||||
optional Server server = 1;
|
||||
// The unique channel identifier.
|
||||
optional uint32 id = 2;
|
||||
// The channel name.
|
||||
optional string name = 3;
|
||||
// The channel's parent.
|
||||
optional Channel parent = 4;
|
||||
// Linked channels.
|
||||
repeated Channel links = 5;
|
||||
// The channel's description.
|
||||
optional string description = 6;
|
||||
// Is the channel temporary?
|
||||
optional bool temporary = 7;
|
||||
// The position in which the channel should appear in a sorted list.
|
||||
optional int32 position = 8;
|
||||
|
||||
message Query {
|
||||
// The server on which the channels are.
|
||||
optional Server server = 1;
|
||||
}
|
||||
|
||||
message List {
|
||||
// The server on which the channels are.
|
||||
optional Server server = 1;
|
||||
// The channels.
|
||||
repeated Channel channels = 2;
|
||||
}
|
||||
}
|
||||
|
||||
message User {
|
||||
// The server to which the user is connected.
|
||||
optional Server server = 1;
|
||||
// The user's session ID.
|
||||
optional uint32 session = 2;
|
||||
// The user's registered ID.
|
||||
optional uint32 id = 3;
|
||||
// The user's name.
|
||||
optional string name = 4;
|
||||
// Is the user muted?
|
||||
optional bool mute = 5;
|
||||
// Is the user deafened?
|
||||
optional bool deaf = 6;
|
||||
// Is the user suppressed?
|
||||
optional bool suppress = 7;
|
||||
// Is the user a priority speaker?
|
||||
optional bool priority_speaker = 8;
|
||||
// Has the user muted him/herself?
|
||||
optional bool self_mute = 9;
|
||||
// Has the user muted him/herself?
|
||||
optional bool self_deaf = 10;
|
||||
// Is the user recording?
|
||||
optional bool recording = 11;
|
||||
// The channel the user is in.
|
||||
optional Channel channel = 12;
|
||||
// How long the user has been connected to the server.
|
||||
optional uint32 online_secs = 13;
|
||||
// How long the user has been idle on the server.
|
||||
optional uint32 idle_secs = 14;
|
||||
// How many bytes per second is the user transmitting to the server.
|
||||
optional uint32 bytes_per_sec = 15;
|
||||
// The user's client version.
|
||||
optional Version version = 16;
|
||||
// The user's plugin context.
|
||||
optional bytes plugin_context = 17;
|
||||
// The user's plugin identity.
|
||||
optional string plugin_identity = 18;
|
||||
// The user's comment.
|
||||
optional string comment = 19;
|
||||
// The user's texture.
|
||||
optional bytes texture = 20;
|
||||
// The user's IP address.
|
||||
optional bytes address = 21;
|
||||
// Is the user in TCP-only mode?
|
||||
optional bool tcp_only = 22;
|
||||
// The user's UDP ping in milliseconds.
|
||||
optional float udp_ping_msecs = 23;
|
||||
// The user's TCP ping in milliseconds.
|
||||
optional float tcp_ping_msecs = 24;
|
||||
|
||||
message Query {
|
||||
// The server whose users will be queried.
|
||||
optional Server server = 1;
|
||||
}
|
||||
|
||||
message List {
|
||||
// The server to which the users are connected.
|
||||
optional Server server = 1;
|
||||
// The users.
|
||||
repeated User users = 2;
|
||||
}
|
||||
|
||||
message Kick {
|
||||
// The server to which the user is connected.
|
||||
optional Server server = 1;
|
||||
// The user to kick.
|
||||
optional User user = 2;
|
||||
// The user who performed the kick.
|
||||
optional User actor = 3;
|
||||
// The reason for why the user is being kicked.
|
||||
optional string reason = 4;
|
||||
}
|
||||
}
|
||||
|
||||
message Tree {
|
||||
// The server which the tree represents.
|
||||
optional Server server = 1;
|
||||
// The current channel.
|
||||
optional Channel channel = 2;
|
||||
// Channels below the current channel.
|
||||
repeated Tree children = 3;
|
||||
// The users in the current channel.
|
||||
repeated User users = 4;
|
||||
|
||||
message Query {
|
||||
// The server to query.
|
||||
optional Server server = 1;
|
||||
}
|
||||
}
|
||||
|
||||
message Ban {
|
||||
// The server on which the ban is applied.
|
||||
optional Server server = 1;
|
||||
// The banned IP address.
|
||||
optional bytes address = 2;
|
||||
// The number of leading bits in the address to which the ban applies.
|
||||
optional uint32 bits = 3;
|
||||
// The name of the banned user.
|
||||
optional string name = 4;
|
||||
// The certificate hash of the banned user.
|
||||
optional string hash = 5;
|
||||
// The reason for the ban.
|
||||
optional string reason = 6;
|
||||
// The ban start time (in epoch form).
|
||||
optional int64 start = 7;
|
||||
// The ban duration.
|
||||
optional int64 duration_secs = 8;
|
||||
|
||||
message Query {
|
||||
// The server whose bans to query.
|
||||
optional Server server = 1;
|
||||
}
|
||||
|
||||
message List {
|
||||
// The server for which the bans apply.
|
||||
optional Server server = 1;
|
||||
// The bans.
|
||||
repeated Ban bans = 2;
|
||||
}
|
||||
}
|
||||
|
||||
message ACL {
|
||||
enum Permission {
|
||||
None = 0x00;
|
||||
Write = 0x01;
|
||||
Traverse = 0x02;
|
||||
Enter = 0x04;
|
||||
Speak = 0x08;
|
||||
Whisper = 0x100;
|
||||
MuteDeafen = 0x10;
|
||||
Move = 0x20;
|
||||
MakeChannel = 0x40;
|
||||
MakeTemporaryChannel = 0x400;
|
||||
LinkChannel = 0x80;
|
||||
TextMessage = 0x200;
|
||||
|
||||
Kick = 0x10000;
|
||||
Ban = 0x20000;
|
||||
Register = 0x40000;
|
||||
RegisterSelf = 0x80000;
|
||||
}
|
||||
|
||||
message Group {
|
||||
// The ACL group name.
|
||||
optional string name = 1;
|
||||
// Is the group inherited?
|
||||
optional bool inherited = 2;
|
||||
// Does the group inherit members?
|
||||
optional bool inherit = 3;
|
||||
// Can this group be inherited by its children?
|
||||
optional bool inheritable = 4;
|
||||
|
||||
// The users explicitly added by this group.
|
||||
repeated DatabaseUser users_add = 5;
|
||||
// The users explicitly removed by this group.
|
||||
repeated DatabaseUser users_remove = 6;
|
||||
// All of the users who are part of this group.
|
||||
repeated DatabaseUser users = 7;
|
||||
}
|
||||
|
||||
// Does the ACL apply to the current channel?
|
||||
optional bool apply_here = 3;
|
||||
// Does the ACL apply to the current channel's sub-channels?
|
||||
optional bool apply_subs = 4;
|
||||
// Was the ACL inherited?
|
||||
optional bool inherited = 5;
|
||||
|
||||
// The user to whom the ACL applies.
|
||||
optional DatabaseUser user = 6;
|
||||
// The group to whom the ACL applies.
|
||||
optional ACL.Group group = 7;
|
||||
|
||||
// The permissions granted by the ACL (bitmask of ACL.Permission).
|
||||
optional uint32 allow = 8;
|
||||
// The permissions denied by the ACL (bitmask of ACL.Permission).
|
||||
optional uint32 deny = 9;
|
||||
|
||||
message Query {
|
||||
// The server where the user and channel exist.
|
||||
optional Server server = 1;
|
||||
// The user to query.
|
||||
optional User user = 2;
|
||||
// The channel to query.
|
||||
optional Channel channel = 3;
|
||||
}
|
||||
|
||||
message List {
|
||||
// The server on which the ACLs exist.
|
||||
optional Server server = 1;
|
||||
// The channel to which the ACL refers.
|
||||
optional Channel channel = 2;
|
||||
// The ACLs part of the given channel.
|
||||
repeated ACL acls = 3;
|
||||
// The groups part of the given channel.
|
||||
repeated ACL.Group groups = 4;
|
||||
// Should ACLs be inherited from the parent channel.
|
||||
optional bool inherit = 5;
|
||||
}
|
||||
|
||||
message TemporaryGroup {
|
||||
// The server where the temporary group exists.
|
||||
optional Server server = 1;
|
||||
// The channel to which the temporary user group is added.
|
||||
optional Channel channel = 2;
|
||||
// The user who is added to the group.
|
||||
optional User user = 3;
|
||||
// The name of the temporary group.
|
||||
optional string name = 4;
|
||||
}
|
||||
}
|
||||
|
||||
message Authenticator {
|
||||
message Request {
|
||||
// An authentication request for a connecting user.
|
||||
message Authenticate {
|
||||
// The user's name.
|
||||
optional string name = 1;
|
||||
// The user's password.
|
||||
optional string password = 2;
|
||||
// The user's certificate chain in DER format.
|
||||
repeated bytes certificates = 3;
|
||||
// The hexadecimal hash of the user's certificate.
|
||||
optional string certificate_hash = 4;
|
||||
// If the user is connecting with a strong certificate.
|
||||
optional bool strong_certificate = 5;
|
||||
}
|
||||
|
||||
// A request for information about a user, given by either the user's ID
|
||||
// or name.
|
||||
message Find {
|
||||
// The user's ID used for lookup.
|
||||
optional uint32 id = 1;
|
||||
// The user's name used for lookup.
|
||||
optional string name = 2;
|
||||
}
|
||||
|
||||
// A query of all the registered users, optionally filtered by the given
|
||||
// filter string.
|
||||
message Query {
|
||||
// A user name filter (% is often used as a wildcard)
|
||||
optional string filter = 1;
|
||||
}
|
||||
|
||||
// A request for a new user registration.
|
||||
message Register {
|
||||
// The database user to register.
|
||||
optional DatabaseUser user = 1;
|
||||
}
|
||||
|
||||
// A request for deregistering a registered user.
|
||||
message Deregister {
|
||||
// The database user to deregister.
|
||||
optional DatabaseUser user = 1;
|
||||
}
|
||||
|
||||
// A request to update a registered user's information. The information
|
||||
// provided should be merged with existing data.
|
||||
message Update {
|
||||
// The database user to update.
|
||||
optional DatabaseUser user = 1;
|
||||
}
|
||||
|
||||
optional Authenticate authenticate = 1;
|
||||
optional Find find = 2;
|
||||
optional Query query = 3;
|
||||
optional Register register = 4;
|
||||
optional Deregister deregister = 5;
|
||||
optional Update update = 6;
|
||||
}
|
||||
|
||||
message Response {
|
||||
// The initialization for the authenticator stream. This message must be
|
||||
// sent before authentication requests will start streaming.
|
||||
message Initialize {
|
||||
optional Server server = 1;
|
||||
}
|
||||
|
||||
enum Status {
|
||||
// The request should fallthrough to murmur's default action.
|
||||
Fallthrough = 0;
|
||||
// The request was successful.
|
||||
Success = 1;
|
||||
// The request failed; there was some error.
|
||||
Failure = 2;
|
||||
// A temporary failure prevented the request from succeeding (e.g. a
|
||||
// database was unavailable).
|
||||
TemporaryFailure = 3;
|
||||
}
|
||||
|
||||
message Authenticate {
|
||||
// The status of the request.
|
||||
optional Status status = 1;
|
||||
// The user's registered ID.
|
||||
optional uint32 id = 2;
|
||||
// The corrected user's name;
|
||||
optional string name = 3;
|
||||
// Additional ACL groups that the user belongs too.
|
||||
repeated ACL.Group groups = 4;
|
||||
}
|
||||
|
||||
message Find {
|
||||
// The database user (if found).
|
||||
optional DatabaseUser user = 1;
|
||||
}
|
||||
|
||||
message Query {
|
||||
// The matched database users.
|
||||
repeated DatabaseUser users = 1;
|
||||
}
|
||||
|
||||
message Register {
|
||||
// The status of the request.
|
||||
optional Status status = 1;
|
||||
// The registered database user (must contain the registered user's ID).
|
||||
optional DatabaseUser user = 2;
|
||||
}
|
||||
|
||||
message Deregister {
|
||||
// The status of the request.
|
||||
optional Status status = 1;
|
||||
}
|
||||
|
||||
message Update {
|
||||
// The status of the request.
|
||||
optional Status status = 1;
|
||||
}
|
||||
|
||||
optional Initialize initialize = 1;
|
||||
optional Authenticate authenticate = 2;
|
||||
optional Find find = 3;
|
||||
optional Query query = 4;
|
||||
optional Register register = 5;
|
||||
optional Deregister deregister = 6;
|
||||
optional Update update = 7;
|
||||
}
|
||||
}
|
||||
|
||||
message DatabaseUser {
|
||||
// The server on which the user is registered.
|
||||
optional Server server = 1;
|
||||
// The unique user ID.
|
||||
optional uint32 id = 2;
|
||||
// The user's name.
|
||||
optional string name = 3;
|
||||
// The user's email address.
|
||||
optional string email = 4;
|
||||
// The user's comment.
|
||||
optional string comment = 5;
|
||||
// The user's certificate hash.
|
||||
optional string hash = 6;
|
||||
// The user's password (never sent; used only when updating).
|
||||
optional string password = 7;
|
||||
// When the user was last on the server.
|
||||
optional string last_active = 8;
|
||||
// The user's texture.
|
||||
optional bytes texture = 9;
|
||||
|
||||
message Query {
|
||||
// The server whose users will be queried.
|
||||
optional Server server = 1;
|
||||
// A string to filter the users by.
|
||||
optional string filter = 2;
|
||||
}
|
||||
|
||||
message List {
|
||||
// The server on which the users are registered.
|
||||
optional Server server = 1;
|
||||
// The users.
|
||||
repeated DatabaseUser users = 2;
|
||||
}
|
||||
|
||||
message Verify {
|
||||
// The server on which the user-password pair will be authenticated.
|
||||
optional Server server = 1;
|
||||
// The user's name.
|
||||
optional string name = 2;
|
||||
// The user's password.
|
||||
optional string password = 3;
|
||||
}
|
||||
}
|
||||
|
||||
message RedirectWhisperGroup {
|
||||
// The server on which the whisper redirection will take place.
|
||||
optional Server server = 1;
|
||||
// The user to whom the redirection will be applied.
|
||||
optional User user = 2;
|
||||
// The source group.
|
||||
optional ACL.Group source = 3;
|
||||
// The target group.
|
||||
optional ACL.Group target = 4;
|
||||
}
|
||||
|
||||
service V1 {
|
||||
//
|
||||
// Meta
|
||||
//
|
||||
|
||||
// GetUptime returns murmur's uptime.
|
||||
rpc GetUptime(Void) returns(Uptime);
|
||||
// GetVersion returns murmur's version.
|
||||
rpc GetVersion(Void) returns(Version);
|
||||
// Events returns a stream of murmur events.
|
||||
rpc Events(Void) returns(stream Event);
|
||||
|
||||
//
|
||||
// Servers
|
||||
//
|
||||
|
||||
// ServerCreate creates a new virtual server. The returned server object
|
||||
// contains the newly created server's ID.
|
||||
rpc ServerCreate(Void) returns(Server);
|
||||
// ServerQuery returns a list of servers that match the given query.
|
||||
rpc ServerQuery(Server.Query) returns(Server.List);
|
||||
// ServerGet returns information about the given server.
|
||||
rpc ServerGet(Server) returns(Server);
|
||||
// ServerStart starts the given stopped server.
|
||||
rpc ServerStart(Server) returns(Void);
|
||||
// ServerStop stops the given virtual server.
|
||||
rpc ServerStop(Server) returns(Void);
|
||||
// ServerRemove removes the given virtual server and its configuration.
|
||||
rpc ServerRemove(Server) returns(Void);
|
||||
// ServerEvents returns a stream of events that happen on the given server.
|
||||
rpc ServerEvents(Server) returns(stream Server.Event);
|
||||
|
||||
//
|
||||
// ContextActions
|
||||
//
|
||||
|
||||
// ContextActionAdd adds a context action to the given user's client. The
|
||||
// following ContextAction fields must be set:
|
||||
// context, action, text, and user.
|
||||
//
|
||||
// Added context actions are valid until:
|
||||
// - The context action is removed with ContextActionRemove, or
|
||||
// - The user disconnects from the server, or
|
||||
// - The server stops.
|
||||
rpc ContextActionAdd(ContextAction) returns(Void);
|
||||
// ContextActionRemove removes a context action from the given user's client.
|
||||
// The following ContextAction must be set:
|
||||
// action
|
||||
// If no user is given, the context action is removed from all users.
|
||||
rpc ContextActionRemove(ContextAction) returns(Void);
|
||||
// ContextActionEvents returns a stream of context action events that are
|
||||
// triggered by users.
|
||||
rpc ContextActionEvents(ContextAction) returns(stream ContextAction);
|
||||
|
||||
//
|
||||
// TextMessage
|
||||
//
|
||||
|
||||
// TextMessageSend sends the given TextMessage to the server.
|
||||
//
|
||||
// If no users, channels, or trees are added to the TextMessage, the message
|
||||
// will be broadcast the entire server. Otherwise, the message will be
|
||||
// targeted to the specified users, channels, and trees.
|
||||
rpc TextMessageSend(TextMessage) returns(Void);
|
||||
// TextMessageFilter filters text messages on a given server.
|
||||
|
||||
// TextMessageFilter filters text messages for a given server.
|
||||
//
|
||||
// When a filter stream is active, text messages sent from users to the
|
||||
// server are sent over the stream. The RPC client then sends a message back
|
||||
// on the same stream, containing an action: whether the message should be
|
||||
// accepted, rejected, or dropped.
|
||||
//
|
||||
// To activate the filter stream, an initial TextMessage.Filter message must
|
||||
// be sent that contains the server on which the filter will be active.
|
||||
rpc TextMessageFilter(stream TextMessage.Filter) returns(stream TextMessage.Filter);
|
||||
|
||||
//
|
||||
// Logs
|
||||
//
|
||||
|
||||
// LogQuery returns a list of log entries from the given server.
|
||||
//
|
||||
// To get the total number of log entries, omit min and/or max from the
|
||||
// query.
|
||||
rpc LogQuery(Log.Query) returns(Log.List);
|
||||
|
||||
//
|
||||
// Config
|
||||
//
|
||||
|
||||
// ConfigGet returns the explicitly set configuration for the given server.
|
||||
rpc ConfigGet(Server) returns(Config);
|
||||
// ConfigGetField returns the configuration value for the given key.
|
||||
rpc ConfigGetField(Config.Field) returns(Config.Field);
|
||||
// ConfigSetField sets the configuration value to the given value.
|
||||
rpc ConfigSetField(Config.Field) returns(Void);
|
||||
// ConfigGetDefault returns the default server configuration.
|
||||
rpc ConfigGetDefault(Void) returns(Config);
|
||||
|
||||
//
|
||||
// Channels
|
||||
//
|
||||
|
||||
// ChannelQuery returns a list of channels that match the given query.
|
||||
rpc ChannelQuery(Channel.Query) returns(Channel.List);
|
||||
// ChannelGet returns the channel with the given ID.
|
||||
rpc ChannelGet(Channel) returns(Channel);
|
||||
// ChannelAdd adds the channel to the given server. The parent and name of
|
||||
// the channel must be set.
|
||||
rpc ChannelAdd(Channel) returns(Channel);
|
||||
// ChannelRemove removes the given channel from the server.
|
||||
rpc ChannelRemove(Channel) returns(Void);
|
||||
// ChannelUpdate updates the given channel's attributes. Only the fields that
|
||||
// are set will be updated.
|
||||
rpc ChannelUpdate(Channel) returns(Channel);
|
||||
|
||||
//
|
||||
// Users
|
||||
//
|
||||
|
||||
// UserQuery returns a list of connected users who match the given query.
|
||||
rpc UserQuery(User.Query) returns(User.List);
|
||||
// UserGet returns information on the connected user, given by the user's
|
||||
// session or name.
|
||||
rpc UserGet(User) returns(User);
|
||||
// UserUpdate changes the given user's state. Only the following fields can
|
||||
// be changed:
|
||||
// name, mute, deaf, suppress, priority_speaker, channel, comment.
|
||||
rpc UserUpdate(User) returns(User);
|
||||
// UserKick kicks the user from the server.
|
||||
rpc UserKick(User.Kick) returns(Void);
|
||||
|
||||
//
|
||||
// Tree
|
||||
//
|
||||
|
||||
// TreeQuery returns a representation of the given server's channel/user
|
||||
// tree.
|
||||
rpc TreeQuery(Tree.Query) returns(Tree);
|
||||
|
||||
//
|
||||
// Bans
|
||||
//
|
||||
|
||||
// BansGet returns a list of bans for the given server.
|
||||
rpc BansGet(Ban.Query) returns(Ban.List);
|
||||
// BansSet replaces the server's ban list with the given list.
|
||||
rpc BansSet(Ban.List) returns(Void);
|
||||
|
||||
//
|
||||
// ACL
|
||||
//
|
||||
|
||||
// ACLGet returns the ACL for the given channel.
|
||||
rpc ACLGet(Channel) returns(ACL.List);
|
||||
// ACLSet overrides the ACL of the given channel to what is provided.
|
||||
rpc ACLSet(ACL.List) returns(Void);
|
||||
// ACLGetEffectivePermissions returns the effective permissions for the given
|
||||
// user in the given channel.
|
||||
rpc ACLGetEffectivePermissions(ACL.Query) returns(ACL);
|
||||
// ACLAddTemporaryGroup adds a user to a temporary group.
|
||||
rpc ACLAddTemporaryGroup(ACL.TemporaryGroup) returns(Void);
|
||||
// ACLRemoveTemporaryGroup removes a user from a temporary group.
|
||||
rpc ACLRemoveTemporaryGroup(ACL.TemporaryGroup) returns(Void);
|
||||
|
||||
//
|
||||
// Authenticator
|
||||
//
|
||||
|
||||
// AuthenticatorStream opens an authentication stream to the server.
|
||||
//
|
||||
// There can only be one RPC client with an open Stream. If a new
|
||||
// authenticator connects, the open connected will be closed.
|
||||
rpc AuthenticatorStream(stream Authenticator.Response) returns(stream Authenticator.Request);
|
||||
|
||||
//
|
||||
// Database
|
||||
//
|
||||
|
||||
// DatabaseUserQuery returns a list of registered users who match given
|
||||
// query.
|
||||
rpc DatabaseUserQuery(DatabaseUser.Query) returns(DatabaseUser.List);
|
||||
// DatabaseUserGet returns the database user with the given ID.
|
||||
rpc DatabaseUserGet(DatabaseUser) returns(DatabaseUser);
|
||||
// DatabaseUserUpdate updates the given database user.
|
||||
rpc DatabaseUserUpdate(DatabaseUser) returns(Void);
|
||||
// DatabaseUserRegister registers a user with the given information on the
|
||||
// server. The returned DatabaseUser will contain the newly registered user's
|
||||
// ID.
|
||||
rpc DatabaseUserRegister(DatabaseUser) returns(DatabaseUser);
|
||||
// DatabaseUserDeregister deregisters the given user.
|
||||
rpc DatabaseUserDeregister(DatabaseUser) returns(Void);
|
||||
// DatabaseUserVerify verifies the that the given user-password pair is
|
||||
// correct.
|
||||
rpc DatabaseUserVerify(DatabaseUser.Verify) returns(DatabaseUser);
|
||||
|
||||
//
|
||||
// Audio
|
||||
//
|
||||
|
||||
// AddRedirectWhisperGroup add a whisper targets redirection for the given
|
||||
// user. Whenever a user whispers to group "source", the whisper will be
|
||||
// redirected to group "target".
|
||||
rpc RedirectWhisperGroupAdd(RedirectWhisperGroup) returns(Void);
|
||||
|
||||
// RemoveRedirectWhisperGroup removes a whisper target redirection for
|
||||
// the the given user.
|
||||
rpc RedirectWhisperGroupRemove(RedirectWhisperGroup) returns(Void);
|
||||
}
|
||||
3881
mumble/MurmurRPC_pb2.py
Normal file
3881
mumble/MurmurRPC_pb2.py
Normal file
File diff suppressed because one or more lines are too long
912
mumble/MurmurRPC_pb2_grpc.py
Normal file
912
mumble/MurmurRPC_pb2_grpc.py
Normal file
@@ -0,0 +1,912 @@
|
||||
# Generated by the gRPC Python protocol compiler plugin. DO NOT EDIT!
|
||||
import grpc
|
||||
|
||||
import MurmurRPC_pb2 as MurmurRPC__pb2
|
||||
|
||||
|
||||
class V1Stub(object):
|
||||
"""
|
||||
Meta
|
||||
|
||||
"""
|
||||
|
||||
def __init__(self, channel):
|
||||
"""Constructor.
|
||||
|
||||
Args:
|
||||
channel: A grpc.Channel.
|
||||
"""
|
||||
self.GetUptime = channel.unary_unary(
|
||||
'/MurmurRPC.V1/GetUptime',
|
||||
request_serializer=MurmurRPC__pb2.Void.SerializeToString,
|
||||
response_deserializer=MurmurRPC__pb2.Uptime.FromString,
|
||||
)
|
||||
self.GetVersion = channel.unary_unary(
|
||||
'/MurmurRPC.V1/GetVersion',
|
||||
request_serializer=MurmurRPC__pb2.Void.SerializeToString,
|
||||
response_deserializer=MurmurRPC__pb2.Version.FromString,
|
||||
)
|
||||
self.Events = channel.unary_stream(
|
||||
'/MurmurRPC.V1/Events',
|
||||
request_serializer=MurmurRPC__pb2.Void.SerializeToString,
|
||||
response_deserializer=MurmurRPC__pb2.Event.FromString,
|
||||
)
|
||||
self.ServerCreate = channel.unary_unary(
|
||||
'/MurmurRPC.V1/ServerCreate',
|
||||
request_serializer=MurmurRPC__pb2.Void.SerializeToString,
|
||||
response_deserializer=MurmurRPC__pb2.Server.FromString,
|
||||
)
|
||||
self.ServerQuery = channel.unary_unary(
|
||||
'/MurmurRPC.V1/ServerQuery',
|
||||
request_serializer=MurmurRPC__pb2.Server.Query.SerializeToString,
|
||||
response_deserializer=MurmurRPC__pb2.Server.List.FromString,
|
||||
)
|
||||
self.ServerGet = channel.unary_unary(
|
||||
'/MurmurRPC.V1/ServerGet',
|
||||
request_serializer=MurmurRPC__pb2.Server.SerializeToString,
|
||||
response_deserializer=MurmurRPC__pb2.Server.FromString,
|
||||
)
|
||||
self.ServerStart = channel.unary_unary(
|
||||
'/MurmurRPC.V1/ServerStart',
|
||||
request_serializer=MurmurRPC__pb2.Server.SerializeToString,
|
||||
response_deserializer=MurmurRPC__pb2.Void.FromString,
|
||||
)
|
||||
self.ServerStop = channel.unary_unary(
|
||||
'/MurmurRPC.V1/ServerStop',
|
||||
request_serializer=MurmurRPC__pb2.Server.SerializeToString,
|
||||
response_deserializer=MurmurRPC__pb2.Void.FromString,
|
||||
)
|
||||
self.ServerRemove = channel.unary_unary(
|
||||
'/MurmurRPC.V1/ServerRemove',
|
||||
request_serializer=MurmurRPC__pb2.Server.SerializeToString,
|
||||
response_deserializer=MurmurRPC__pb2.Void.FromString,
|
||||
)
|
||||
self.ServerEvents = channel.unary_stream(
|
||||
'/MurmurRPC.V1/ServerEvents',
|
||||
request_serializer=MurmurRPC__pb2.Server.SerializeToString,
|
||||
response_deserializer=MurmurRPC__pb2.Server.Event.FromString,
|
||||
)
|
||||
self.ContextActionAdd = channel.unary_unary(
|
||||
'/MurmurRPC.V1/ContextActionAdd',
|
||||
request_serializer=MurmurRPC__pb2.ContextAction.SerializeToString,
|
||||
response_deserializer=MurmurRPC__pb2.Void.FromString,
|
||||
)
|
||||
self.ContextActionRemove = channel.unary_unary(
|
||||
'/MurmurRPC.V1/ContextActionRemove',
|
||||
request_serializer=MurmurRPC__pb2.ContextAction.SerializeToString,
|
||||
response_deserializer=MurmurRPC__pb2.Void.FromString,
|
||||
)
|
||||
self.ContextActionEvents = channel.unary_stream(
|
||||
'/MurmurRPC.V1/ContextActionEvents',
|
||||
request_serializer=MurmurRPC__pb2.ContextAction.SerializeToString,
|
||||
response_deserializer=MurmurRPC__pb2.ContextAction.FromString,
|
||||
)
|
||||
self.TextMessageSend = channel.unary_unary(
|
||||
'/MurmurRPC.V1/TextMessageSend',
|
||||
request_serializer=MurmurRPC__pb2.TextMessage.SerializeToString,
|
||||
response_deserializer=MurmurRPC__pb2.Void.FromString,
|
||||
)
|
||||
self.TextMessageFilter = channel.stream_stream(
|
||||
'/MurmurRPC.V1/TextMessageFilter',
|
||||
request_serializer=MurmurRPC__pb2.TextMessage.Filter.SerializeToString,
|
||||
response_deserializer=MurmurRPC__pb2.TextMessage.Filter.FromString,
|
||||
)
|
||||
self.LogQuery = channel.unary_unary(
|
||||
'/MurmurRPC.V1/LogQuery',
|
||||
request_serializer=MurmurRPC__pb2.Log.Query.SerializeToString,
|
||||
response_deserializer=MurmurRPC__pb2.Log.List.FromString,
|
||||
)
|
||||
self.ConfigGet = channel.unary_unary(
|
||||
'/MurmurRPC.V1/ConfigGet',
|
||||
request_serializer=MurmurRPC__pb2.Server.SerializeToString,
|
||||
response_deserializer=MurmurRPC__pb2.Config.FromString,
|
||||
)
|
||||
self.ConfigGetField = channel.unary_unary(
|
||||
'/MurmurRPC.V1/ConfigGetField',
|
||||
request_serializer=MurmurRPC__pb2.Config.Field.SerializeToString,
|
||||
response_deserializer=MurmurRPC__pb2.Config.Field.FromString,
|
||||
)
|
||||
self.ConfigSetField = channel.unary_unary(
|
||||
'/MurmurRPC.V1/ConfigSetField',
|
||||
request_serializer=MurmurRPC__pb2.Config.Field.SerializeToString,
|
||||
response_deserializer=MurmurRPC__pb2.Void.FromString,
|
||||
)
|
||||
self.ConfigGetDefault = channel.unary_unary(
|
||||
'/MurmurRPC.V1/ConfigGetDefault',
|
||||
request_serializer=MurmurRPC__pb2.Void.SerializeToString,
|
||||
response_deserializer=MurmurRPC__pb2.Config.FromString,
|
||||
)
|
||||
self.ChannelQuery = channel.unary_unary(
|
||||
'/MurmurRPC.V1/ChannelQuery',
|
||||
request_serializer=MurmurRPC__pb2.Channel.Query.SerializeToString,
|
||||
response_deserializer=MurmurRPC__pb2.Channel.List.FromString,
|
||||
)
|
||||
self.ChannelGet = channel.unary_unary(
|
||||
'/MurmurRPC.V1/ChannelGet',
|
||||
request_serializer=MurmurRPC__pb2.Channel.SerializeToString,
|
||||
response_deserializer=MurmurRPC__pb2.Channel.FromString,
|
||||
)
|
||||
self.ChannelAdd = channel.unary_unary(
|
||||
'/MurmurRPC.V1/ChannelAdd',
|
||||
request_serializer=MurmurRPC__pb2.Channel.SerializeToString,
|
||||
response_deserializer=MurmurRPC__pb2.Channel.FromString,
|
||||
)
|
||||
self.ChannelRemove = channel.unary_unary(
|
||||
'/MurmurRPC.V1/ChannelRemove',
|
||||
request_serializer=MurmurRPC__pb2.Channel.SerializeToString,
|
||||
response_deserializer=MurmurRPC__pb2.Void.FromString,
|
||||
)
|
||||
self.ChannelUpdate = channel.unary_unary(
|
||||
'/MurmurRPC.V1/ChannelUpdate',
|
||||
request_serializer=MurmurRPC__pb2.Channel.SerializeToString,
|
||||
response_deserializer=MurmurRPC__pb2.Channel.FromString,
|
||||
)
|
||||
self.UserQuery = channel.unary_unary(
|
||||
'/MurmurRPC.V1/UserQuery',
|
||||
request_serializer=MurmurRPC__pb2.User.Query.SerializeToString,
|
||||
response_deserializer=MurmurRPC__pb2.User.List.FromString,
|
||||
)
|
||||
self.UserGet = channel.unary_unary(
|
||||
'/MurmurRPC.V1/UserGet',
|
||||
request_serializer=MurmurRPC__pb2.User.SerializeToString,
|
||||
response_deserializer=MurmurRPC__pb2.User.FromString,
|
||||
)
|
||||
self.UserUpdate = channel.unary_unary(
|
||||
'/MurmurRPC.V1/UserUpdate',
|
||||
request_serializer=MurmurRPC__pb2.User.SerializeToString,
|
||||
response_deserializer=MurmurRPC__pb2.User.FromString,
|
||||
)
|
||||
self.UserKick = channel.unary_unary(
|
||||
'/MurmurRPC.V1/UserKick',
|
||||
request_serializer=MurmurRPC__pb2.User.Kick.SerializeToString,
|
||||
response_deserializer=MurmurRPC__pb2.Void.FromString,
|
||||
)
|
||||
self.TreeQuery = channel.unary_unary(
|
||||
'/MurmurRPC.V1/TreeQuery',
|
||||
request_serializer=MurmurRPC__pb2.Tree.Query.SerializeToString,
|
||||
response_deserializer=MurmurRPC__pb2.Tree.FromString,
|
||||
)
|
||||
self.BansGet = channel.unary_unary(
|
||||
'/MurmurRPC.V1/BansGet',
|
||||
request_serializer=MurmurRPC__pb2.Ban.Query.SerializeToString,
|
||||
response_deserializer=MurmurRPC__pb2.Ban.List.FromString,
|
||||
)
|
||||
self.BansSet = channel.unary_unary(
|
||||
'/MurmurRPC.V1/BansSet',
|
||||
request_serializer=MurmurRPC__pb2.Ban.List.SerializeToString,
|
||||
response_deserializer=MurmurRPC__pb2.Void.FromString,
|
||||
)
|
||||
self.ACLGet = channel.unary_unary(
|
||||
'/MurmurRPC.V1/ACLGet',
|
||||
request_serializer=MurmurRPC__pb2.Channel.SerializeToString,
|
||||
response_deserializer=MurmurRPC__pb2.ACL.List.FromString,
|
||||
)
|
||||
self.ACLSet = channel.unary_unary(
|
||||
'/MurmurRPC.V1/ACLSet',
|
||||
request_serializer=MurmurRPC__pb2.ACL.List.SerializeToString,
|
||||
response_deserializer=MurmurRPC__pb2.Void.FromString,
|
||||
)
|
||||
self.ACLGetEffectivePermissions = channel.unary_unary(
|
||||
'/MurmurRPC.V1/ACLGetEffectivePermissions',
|
||||
request_serializer=MurmurRPC__pb2.ACL.Query.SerializeToString,
|
||||
response_deserializer=MurmurRPC__pb2.ACL.FromString,
|
||||
)
|
||||
self.ACLAddTemporaryGroup = channel.unary_unary(
|
||||
'/MurmurRPC.V1/ACLAddTemporaryGroup',
|
||||
request_serializer=MurmurRPC__pb2.ACL.TemporaryGroup.SerializeToString,
|
||||
response_deserializer=MurmurRPC__pb2.Void.FromString,
|
||||
)
|
||||
self.ACLRemoveTemporaryGroup = channel.unary_unary(
|
||||
'/MurmurRPC.V1/ACLRemoveTemporaryGroup',
|
||||
request_serializer=MurmurRPC__pb2.ACL.TemporaryGroup.SerializeToString,
|
||||
response_deserializer=MurmurRPC__pb2.Void.FromString,
|
||||
)
|
||||
self.AuthenticatorStream = channel.stream_stream(
|
||||
'/MurmurRPC.V1/AuthenticatorStream',
|
||||
request_serializer=MurmurRPC__pb2.Authenticator.Response.SerializeToString,
|
||||
response_deserializer=MurmurRPC__pb2.Authenticator.Request.FromString,
|
||||
)
|
||||
self.DatabaseUserQuery = channel.unary_unary(
|
||||
'/MurmurRPC.V1/DatabaseUserQuery',
|
||||
request_serializer=MurmurRPC__pb2.DatabaseUser.Query.SerializeToString,
|
||||
response_deserializer=MurmurRPC__pb2.DatabaseUser.List.FromString,
|
||||
)
|
||||
self.DatabaseUserGet = channel.unary_unary(
|
||||
'/MurmurRPC.V1/DatabaseUserGet',
|
||||
request_serializer=MurmurRPC__pb2.DatabaseUser.SerializeToString,
|
||||
response_deserializer=MurmurRPC__pb2.DatabaseUser.FromString,
|
||||
)
|
||||
self.DatabaseUserUpdate = channel.unary_unary(
|
||||
'/MurmurRPC.V1/DatabaseUserUpdate',
|
||||
request_serializer=MurmurRPC__pb2.DatabaseUser.SerializeToString,
|
||||
response_deserializer=MurmurRPC__pb2.Void.FromString,
|
||||
)
|
||||
self.DatabaseUserRegister = channel.unary_unary(
|
||||
'/MurmurRPC.V1/DatabaseUserRegister',
|
||||
request_serializer=MurmurRPC__pb2.DatabaseUser.SerializeToString,
|
||||
response_deserializer=MurmurRPC__pb2.DatabaseUser.FromString,
|
||||
)
|
||||
self.DatabaseUserDeregister = channel.unary_unary(
|
||||
'/MurmurRPC.V1/DatabaseUserDeregister',
|
||||
request_serializer=MurmurRPC__pb2.DatabaseUser.SerializeToString,
|
||||
response_deserializer=MurmurRPC__pb2.Void.FromString,
|
||||
)
|
||||
self.DatabaseUserVerify = channel.unary_unary(
|
||||
'/MurmurRPC.V1/DatabaseUserVerify',
|
||||
request_serializer=MurmurRPC__pb2.DatabaseUser.Verify.SerializeToString,
|
||||
response_deserializer=MurmurRPC__pb2.DatabaseUser.FromString,
|
||||
)
|
||||
self.RedirectWhisperGroupAdd = channel.unary_unary(
|
||||
'/MurmurRPC.V1/RedirectWhisperGroupAdd',
|
||||
request_serializer=MurmurRPC__pb2.RedirectWhisperGroup.SerializeToString,
|
||||
response_deserializer=MurmurRPC__pb2.Void.FromString,
|
||||
)
|
||||
self.RedirectWhisperGroupRemove = channel.unary_unary(
|
||||
'/MurmurRPC.V1/RedirectWhisperGroupRemove',
|
||||
request_serializer=MurmurRPC__pb2.RedirectWhisperGroup.SerializeToString,
|
||||
response_deserializer=MurmurRPC__pb2.Void.FromString,
|
||||
)
|
||||
|
||||
|
||||
class V1Servicer(object):
|
||||
"""
|
||||
Meta
|
||||
|
||||
"""
|
||||
|
||||
def GetUptime(self, request, context):
|
||||
"""GetUptime returns murmur's uptime.
|
||||
"""
|
||||
context.set_code(grpc.StatusCode.UNIMPLEMENTED)
|
||||
context.set_details('Method not implemented!')
|
||||
raise NotImplementedError('Method not implemented!')
|
||||
|
||||
def GetVersion(self, request, context):
|
||||
"""GetVersion returns murmur's version.
|
||||
"""
|
||||
context.set_code(grpc.StatusCode.UNIMPLEMENTED)
|
||||
context.set_details('Method not implemented!')
|
||||
raise NotImplementedError('Method not implemented!')
|
||||
|
||||
def Events(self, request, context):
|
||||
"""Events returns a stream of murmur events.
|
||||
"""
|
||||
context.set_code(grpc.StatusCode.UNIMPLEMENTED)
|
||||
context.set_details('Method not implemented!')
|
||||
raise NotImplementedError('Method not implemented!')
|
||||
|
||||
def ServerCreate(self, request, context):
|
||||
"""
|
||||
Servers
|
||||
|
||||
|
||||
ServerCreate creates a new virtual server. The returned server object
|
||||
contains the newly created server's ID.
|
||||
"""
|
||||
context.set_code(grpc.StatusCode.UNIMPLEMENTED)
|
||||
context.set_details('Method not implemented!')
|
||||
raise NotImplementedError('Method not implemented!')
|
||||
|
||||
def ServerQuery(self, request, context):
|
||||
"""ServerQuery returns a list of servers that match the given query.
|
||||
"""
|
||||
context.set_code(grpc.StatusCode.UNIMPLEMENTED)
|
||||
context.set_details('Method not implemented!')
|
||||
raise NotImplementedError('Method not implemented!')
|
||||
|
||||
def ServerGet(self, request, context):
|
||||
"""ServerGet returns information about the given server.
|
||||
"""
|
||||
context.set_code(grpc.StatusCode.UNIMPLEMENTED)
|
||||
context.set_details('Method not implemented!')
|
||||
raise NotImplementedError('Method not implemented!')
|
||||
|
||||
def ServerStart(self, request, context):
|
||||
"""ServerStart starts the given stopped server.
|
||||
"""
|
||||
context.set_code(grpc.StatusCode.UNIMPLEMENTED)
|
||||
context.set_details('Method not implemented!')
|
||||
raise NotImplementedError('Method not implemented!')
|
||||
|
||||
def ServerStop(self, request, context):
|
||||
"""ServerStop stops the given virtual server.
|
||||
"""
|
||||
context.set_code(grpc.StatusCode.UNIMPLEMENTED)
|
||||
context.set_details('Method not implemented!')
|
||||
raise NotImplementedError('Method not implemented!')
|
||||
|
||||
def ServerRemove(self, request, context):
|
||||
"""ServerRemove removes the given virtual server and its configuration.
|
||||
"""
|
||||
context.set_code(grpc.StatusCode.UNIMPLEMENTED)
|
||||
context.set_details('Method not implemented!')
|
||||
raise NotImplementedError('Method not implemented!')
|
||||
|
||||
def ServerEvents(self, request, context):
|
||||
"""ServerEvents returns a stream of events that happen on the given server.
|
||||
"""
|
||||
context.set_code(grpc.StatusCode.UNIMPLEMENTED)
|
||||
context.set_details('Method not implemented!')
|
||||
raise NotImplementedError('Method not implemented!')
|
||||
|
||||
def ContextActionAdd(self, request, context):
|
||||
"""
|
||||
ContextActions
|
||||
|
||||
|
||||
ContextActionAdd adds a context action to the given user's client. The
|
||||
following ContextAction fields must be set:
|
||||
context, action, text, and user.
|
||||
|
||||
Added context actions are valid until:
|
||||
- The context action is removed with ContextActionRemove, or
|
||||
- The user disconnects from the server, or
|
||||
- The server stops.
|
||||
"""
|
||||
context.set_code(grpc.StatusCode.UNIMPLEMENTED)
|
||||
context.set_details('Method not implemented!')
|
||||
raise NotImplementedError('Method not implemented!')
|
||||
|
||||
def ContextActionRemove(self, request, context):
|
||||
"""ContextActionRemove removes a context action from the given user's client.
|
||||
The following ContextAction must be set:
|
||||
action
|
||||
If no user is given, the context action is removed from all users.
|
||||
"""
|
||||
context.set_code(grpc.StatusCode.UNIMPLEMENTED)
|
||||
context.set_details('Method not implemented!')
|
||||
raise NotImplementedError('Method not implemented!')
|
||||
|
||||
def ContextActionEvents(self, request, context):
|
||||
"""ContextActionEvents returns a stream of context action events that are
|
||||
triggered by users.
|
||||
"""
|
||||
context.set_code(grpc.StatusCode.UNIMPLEMENTED)
|
||||
context.set_details('Method not implemented!')
|
||||
raise NotImplementedError('Method not implemented!')
|
||||
|
||||
def TextMessageSend(self, request, context):
|
||||
"""
|
||||
TextMessage
|
||||
|
||||
|
||||
TextMessageSend sends the given TextMessage to the server.
|
||||
|
||||
If no users, channels, or trees are added to the TextMessage, the message
|
||||
will be broadcast the entire server. Otherwise, the message will be
|
||||
targeted to the specified users, channels, and trees.
|
||||
TextMessageFilter filters text messages on a given server.
|
||||
"""
|
||||
context.set_code(grpc.StatusCode.UNIMPLEMENTED)
|
||||
context.set_details('Method not implemented!')
|
||||
raise NotImplementedError('Method not implemented!')
|
||||
|
||||
def TextMessageFilter(self, request_iterator, context):
|
||||
"""TextMessageFilter filters text messages for a given server.
|
||||
|
||||
When a filter stream is active, text messages sent from users to the
|
||||
server are sent over the stream. The RPC client then sends a message back
|
||||
on the same stream, containing an action: whether the message should be
|
||||
accepted, rejected, or dropped.
|
||||
|
||||
To activate the filter stream, an initial TextMessage.Filter message must
|
||||
be sent that contains the server on which the filter will be active.
|
||||
"""
|
||||
context.set_code(grpc.StatusCode.UNIMPLEMENTED)
|
||||
context.set_details('Method not implemented!')
|
||||
raise NotImplementedError('Method not implemented!')
|
||||
|
||||
def LogQuery(self, request, context):
|
||||
"""
|
||||
Logs
|
||||
|
||||
|
||||
LogQuery returns a list of log entries from the given server.
|
||||
|
||||
To get the total number of log entries, omit min and/or max from the
|
||||
query.
|
||||
"""
|
||||
context.set_code(grpc.StatusCode.UNIMPLEMENTED)
|
||||
context.set_details('Method not implemented!')
|
||||
raise NotImplementedError('Method not implemented!')
|
||||
|
||||
def ConfigGet(self, request, context):
|
||||
"""
|
||||
Config
|
||||
|
||||
|
||||
ConfigGet returns the explicitly set configuration for the given server.
|
||||
"""
|
||||
context.set_code(grpc.StatusCode.UNIMPLEMENTED)
|
||||
context.set_details('Method not implemented!')
|
||||
raise NotImplementedError('Method not implemented!')
|
||||
|
||||
def ConfigGetField(self, request, context):
|
||||
"""ConfigGetField returns the configuration value for the given key.
|
||||
"""
|
||||
context.set_code(grpc.StatusCode.UNIMPLEMENTED)
|
||||
context.set_details('Method not implemented!')
|
||||
raise NotImplementedError('Method not implemented!')
|
||||
|
||||
def ConfigSetField(self, request, context):
|
||||
"""ConfigSetField sets the configuration value to the given value.
|
||||
"""
|
||||
context.set_code(grpc.StatusCode.UNIMPLEMENTED)
|
||||
context.set_details('Method not implemented!')
|
||||
raise NotImplementedError('Method not implemented!')
|
||||
|
||||
def ConfigGetDefault(self, request, context):
|
||||
"""ConfigGetDefault returns the default server configuration.
|
||||
"""
|
||||
context.set_code(grpc.StatusCode.UNIMPLEMENTED)
|
||||
context.set_details('Method not implemented!')
|
||||
raise NotImplementedError('Method not implemented!')
|
||||
|
||||
def ChannelQuery(self, request, context):
|
||||
"""
|
||||
Channels
|
||||
|
||||
|
||||
ChannelQuery returns a list of channels that match the given query.
|
||||
"""
|
||||
context.set_code(grpc.StatusCode.UNIMPLEMENTED)
|
||||
context.set_details('Method not implemented!')
|
||||
raise NotImplementedError('Method not implemented!')
|
||||
|
||||
def ChannelGet(self, request, context):
|
||||
"""ChannelGet returns the channel with the given ID.
|
||||
"""
|
||||
context.set_code(grpc.StatusCode.UNIMPLEMENTED)
|
||||
context.set_details('Method not implemented!')
|
||||
raise NotImplementedError('Method not implemented!')
|
||||
|
||||
def ChannelAdd(self, request, context):
|
||||
"""ChannelAdd adds the channel to the given server. The parent and name of
|
||||
the channel must be set.
|
||||
"""
|
||||
context.set_code(grpc.StatusCode.UNIMPLEMENTED)
|
||||
context.set_details('Method not implemented!')
|
||||
raise NotImplementedError('Method not implemented!')
|
||||
|
||||
def ChannelRemove(self, request, context):
|
||||
"""ChannelRemove removes the given channel from the server.
|
||||
"""
|
||||
context.set_code(grpc.StatusCode.UNIMPLEMENTED)
|
||||
context.set_details('Method not implemented!')
|
||||
raise NotImplementedError('Method not implemented!')
|
||||
|
||||
def ChannelUpdate(self, request, context):
|
||||
"""ChannelUpdate updates the given channel's attributes. Only the fields that
|
||||
are set will be updated.
|
||||
"""
|
||||
context.set_code(grpc.StatusCode.UNIMPLEMENTED)
|
||||
context.set_details('Method not implemented!')
|
||||
raise NotImplementedError('Method not implemented!')
|
||||
|
||||
def UserQuery(self, request, context):
|
||||
"""
|
||||
Users
|
||||
|
||||
|
||||
UserQuery returns a list of connected users who match the given query.
|
||||
"""
|
||||
context.set_code(grpc.StatusCode.UNIMPLEMENTED)
|
||||
context.set_details('Method not implemented!')
|
||||
raise NotImplementedError('Method not implemented!')
|
||||
|
||||
def UserGet(self, request, context):
|
||||
"""UserGet returns information on the connected user, given by the user's
|
||||
session or name.
|
||||
"""
|
||||
context.set_code(grpc.StatusCode.UNIMPLEMENTED)
|
||||
context.set_details('Method not implemented!')
|
||||
raise NotImplementedError('Method not implemented!')
|
||||
|
||||
def UserUpdate(self, request, context):
|
||||
"""UserUpdate changes the given user's state. Only the following fields can
|
||||
be changed:
|
||||
name, mute, deaf, suppress, priority_speaker, channel, comment.
|
||||
"""
|
||||
context.set_code(grpc.StatusCode.UNIMPLEMENTED)
|
||||
context.set_details('Method not implemented!')
|
||||
raise NotImplementedError('Method not implemented!')
|
||||
|
||||
def UserKick(self, request, context):
|
||||
"""UserKick kicks the user from the server.
|
||||
"""
|
||||
context.set_code(grpc.StatusCode.UNIMPLEMENTED)
|
||||
context.set_details('Method not implemented!')
|
||||
raise NotImplementedError('Method not implemented!')
|
||||
|
||||
def TreeQuery(self, request, context):
|
||||
"""
|
||||
Tree
|
||||
|
||||
|
||||
TreeQuery returns a representation of the given server's channel/user
|
||||
tree.
|
||||
"""
|
||||
context.set_code(grpc.StatusCode.UNIMPLEMENTED)
|
||||
context.set_details('Method not implemented!')
|
||||
raise NotImplementedError('Method not implemented!')
|
||||
|
||||
def BansGet(self, request, context):
|
||||
"""
|
||||
Bans
|
||||
|
||||
|
||||
BansGet returns a list of bans for the given server.
|
||||
"""
|
||||
context.set_code(grpc.StatusCode.UNIMPLEMENTED)
|
||||
context.set_details('Method not implemented!')
|
||||
raise NotImplementedError('Method not implemented!')
|
||||
|
||||
def BansSet(self, request, context):
|
||||
"""BansSet replaces the server's ban list with the given list.
|
||||
"""
|
||||
context.set_code(grpc.StatusCode.UNIMPLEMENTED)
|
||||
context.set_details('Method not implemented!')
|
||||
raise NotImplementedError('Method not implemented!')
|
||||
|
||||
def ACLGet(self, request, context):
|
||||
"""
|
||||
ACL
|
||||
|
||||
|
||||
ACLGet returns the ACL for the given channel.
|
||||
"""
|
||||
context.set_code(grpc.StatusCode.UNIMPLEMENTED)
|
||||
context.set_details('Method not implemented!')
|
||||
raise NotImplementedError('Method not implemented!')
|
||||
|
||||
def ACLSet(self, request, context):
|
||||
"""ACLSet overrides the ACL of the given channel to what is provided.
|
||||
"""
|
||||
context.set_code(grpc.StatusCode.UNIMPLEMENTED)
|
||||
context.set_details('Method not implemented!')
|
||||
raise NotImplementedError('Method not implemented!')
|
||||
|
||||
def ACLGetEffectivePermissions(self, request, context):
|
||||
"""ACLGetEffectivePermissions returns the effective permissions for the given
|
||||
user in the given channel.
|
||||
"""
|
||||
context.set_code(grpc.StatusCode.UNIMPLEMENTED)
|
||||
context.set_details('Method not implemented!')
|
||||
raise NotImplementedError('Method not implemented!')
|
||||
|
||||
def ACLAddTemporaryGroup(self, request, context):
|
||||
"""ACLAddTemporaryGroup adds a user to a temporary group.
|
||||
"""
|
||||
context.set_code(grpc.StatusCode.UNIMPLEMENTED)
|
||||
context.set_details('Method not implemented!')
|
||||
raise NotImplementedError('Method not implemented!')
|
||||
|
||||
def ACLRemoveTemporaryGroup(self, request, context):
|
||||
"""ACLRemoveTemporaryGroup removes a user from a temporary group.
|
||||
"""
|
||||
context.set_code(grpc.StatusCode.UNIMPLEMENTED)
|
||||
context.set_details('Method not implemented!')
|
||||
raise NotImplementedError('Method not implemented!')
|
||||
|
||||
def AuthenticatorStream(self, request_iterator, context):
|
||||
"""
|
||||
Authenticator
|
||||
|
||||
|
||||
AuthenticatorStream opens an authentication stream to the server.
|
||||
|
||||
There can only be one RPC client with an open Stream. If a new
|
||||
authenticator connects, the open connected will be closed.
|
||||
"""
|
||||
context.set_code(grpc.StatusCode.UNIMPLEMENTED)
|
||||
context.set_details('Method not implemented!')
|
||||
raise NotImplementedError('Method not implemented!')
|
||||
|
||||
def DatabaseUserQuery(self, request, context):
|
||||
"""
|
||||
Database
|
||||
|
||||
|
||||
DatabaseUserQuery returns a list of registered users who match given
|
||||
query.
|
||||
"""
|
||||
context.set_code(grpc.StatusCode.UNIMPLEMENTED)
|
||||
context.set_details('Method not implemented!')
|
||||
raise NotImplementedError('Method not implemented!')
|
||||
|
||||
def DatabaseUserGet(self, request, context):
|
||||
"""DatabaseUserGet returns the database user with the given ID.
|
||||
"""
|
||||
context.set_code(grpc.StatusCode.UNIMPLEMENTED)
|
||||
context.set_details('Method not implemented!')
|
||||
raise NotImplementedError('Method not implemented!')
|
||||
|
||||
def DatabaseUserUpdate(self, request, context):
|
||||
"""DatabaseUserUpdate updates the given database user.
|
||||
"""
|
||||
context.set_code(grpc.StatusCode.UNIMPLEMENTED)
|
||||
context.set_details('Method not implemented!')
|
||||
raise NotImplementedError('Method not implemented!')
|
||||
|
||||
def DatabaseUserRegister(self, request, context):
|
||||
"""DatabaseUserRegister registers a user with the given information on the
|
||||
server. The returned DatabaseUser will contain the newly registered user's
|
||||
ID.
|
||||
"""
|
||||
context.set_code(grpc.StatusCode.UNIMPLEMENTED)
|
||||
context.set_details('Method not implemented!')
|
||||
raise NotImplementedError('Method not implemented!')
|
||||
|
||||
def DatabaseUserDeregister(self, request, context):
|
||||
"""DatabaseUserDeregister deregisters the given user.
|
||||
"""
|
||||
context.set_code(grpc.StatusCode.UNIMPLEMENTED)
|
||||
context.set_details('Method not implemented!')
|
||||
raise NotImplementedError('Method not implemented!')
|
||||
|
||||
def DatabaseUserVerify(self, request, context):
|
||||
"""DatabaseUserVerify verifies the that the given user-password pair is
|
||||
correct.
|
||||
"""
|
||||
context.set_code(grpc.StatusCode.UNIMPLEMENTED)
|
||||
context.set_details('Method not implemented!')
|
||||
raise NotImplementedError('Method not implemented!')
|
||||
|
||||
def RedirectWhisperGroupAdd(self, request, context):
|
||||
"""
|
||||
Audio
|
||||
|
||||
|
||||
AddRedirectWhisperGroup add a whisper targets redirection for the given
|
||||
user. Whenever a user whispers to group "source", the whisper will be
|
||||
redirected to group "target".
|
||||
"""
|
||||
context.set_code(grpc.StatusCode.UNIMPLEMENTED)
|
||||
context.set_details('Method not implemented!')
|
||||
raise NotImplementedError('Method not implemented!')
|
||||
|
||||
def RedirectWhisperGroupRemove(self, request, context):
|
||||
"""RemoveRedirectWhisperGroup removes a whisper target redirection for
|
||||
the the given user.
|
||||
"""
|
||||
context.set_code(grpc.StatusCode.UNIMPLEMENTED)
|
||||
context.set_details('Method not implemented!')
|
||||
raise NotImplementedError('Method not implemented!')
|
||||
|
||||
|
||||
def add_V1Servicer_to_server(servicer, server):
|
||||
rpc_method_handlers = {
|
||||
'GetUptime': grpc.unary_unary_rpc_method_handler(
|
||||
servicer.GetUptime,
|
||||
request_deserializer=MurmurRPC__pb2.Void.FromString,
|
||||
response_serializer=MurmurRPC__pb2.Uptime.SerializeToString,
|
||||
),
|
||||
'GetVersion': grpc.unary_unary_rpc_method_handler(
|
||||
servicer.GetVersion,
|
||||
request_deserializer=MurmurRPC__pb2.Void.FromString,
|
||||
response_serializer=MurmurRPC__pb2.Version.SerializeToString,
|
||||
),
|
||||
'Events': grpc.unary_stream_rpc_method_handler(
|
||||
servicer.Events,
|
||||
request_deserializer=MurmurRPC__pb2.Void.FromString,
|
||||
response_serializer=MurmurRPC__pb2.Event.SerializeToString,
|
||||
),
|
||||
'ServerCreate': grpc.unary_unary_rpc_method_handler(
|
||||
servicer.ServerCreate,
|
||||
request_deserializer=MurmurRPC__pb2.Void.FromString,
|
||||
response_serializer=MurmurRPC__pb2.Server.SerializeToString,
|
||||
),
|
||||
'ServerQuery': grpc.unary_unary_rpc_method_handler(
|
||||
servicer.ServerQuery,
|
||||
request_deserializer=MurmurRPC__pb2.Server.Query.FromString,
|
||||
response_serializer=MurmurRPC__pb2.Server.List.SerializeToString,
|
||||
),
|
||||
'ServerGet': grpc.unary_unary_rpc_method_handler(
|
||||
servicer.ServerGet,
|
||||
request_deserializer=MurmurRPC__pb2.Server.FromString,
|
||||
response_serializer=MurmurRPC__pb2.Server.SerializeToString,
|
||||
),
|
||||
'ServerStart': grpc.unary_unary_rpc_method_handler(
|
||||
servicer.ServerStart,
|
||||
request_deserializer=MurmurRPC__pb2.Server.FromString,
|
||||
response_serializer=MurmurRPC__pb2.Void.SerializeToString,
|
||||
),
|
||||
'ServerStop': grpc.unary_unary_rpc_method_handler(
|
||||
servicer.ServerStop,
|
||||
request_deserializer=MurmurRPC__pb2.Server.FromString,
|
||||
response_serializer=MurmurRPC__pb2.Void.SerializeToString,
|
||||
),
|
||||
'ServerRemove': grpc.unary_unary_rpc_method_handler(
|
||||
servicer.ServerRemove,
|
||||
request_deserializer=MurmurRPC__pb2.Server.FromString,
|
||||
response_serializer=MurmurRPC__pb2.Void.SerializeToString,
|
||||
),
|
||||
'ServerEvents': grpc.unary_stream_rpc_method_handler(
|
||||
servicer.ServerEvents,
|
||||
request_deserializer=MurmurRPC__pb2.Server.FromString,
|
||||
response_serializer=MurmurRPC__pb2.Server.Event.SerializeToString,
|
||||
),
|
||||
'ContextActionAdd': grpc.unary_unary_rpc_method_handler(
|
||||
servicer.ContextActionAdd,
|
||||
request_deserializer=MurmurRPC__pb2.ContextAction.FromString,
|
||||
response_serializer=MurmurRPC__pb2.Void.SerializeToString,
|
||||
),
|
||||
'ContextActionRemove': grpc.unary_unary_rpc_method_handler(
|
||||
servicer.ContextActionRemove,
|
||||
request_deserializer=MurmurRPC__pb2.ContextAction.FromString,
|
||||
response_serializer=MurmurRPC__pb2.Void.SerializeToString,
|
||||
),
|
||||
'ContextActionEvents': grpc.unary_stream_rpc_method_handler(
|
||||
servicer.ContextActionEvents,
|
||||
request_deserializer=MurmurRPC__pb2.ContextAction.FromString,
|
||||
response_serializer=MurmurRPC__pb2.ContextAction.SerializeToString,
|
||||
),
|
||||
'TextMessageSend': grpc.unary_unary_rpc_method_handler(
|
||||
servicer.TextMessageSend,
|
||||
request_deserializer=MurmurRPC__pb2.TextMessage.FromString,
|
||||
response_serializer=MurmurRPC__pb2.Void.SerializeToString,
|
||||
),
|
||||
'TextMessageFilter': grpc.stream_stream_rpc_method_handler(
|
||||
servicer.TextMessageFilter,
|
||||
request_deserializer=MurmurRPC__pb2.TextMessage.Filter.FromString,
|
||||
response_serializer=MurmurRPC__pb2.TextMessage.Filter.SerializeToString,
|
||||
),
|
||||
'LogQuery': grpc.unary_unary_rpc_method_handler(
|
||||
servicer.LogQuery,
|
||||
request_deserializer=MurmurRPC__pb2.Log.Query.FromString,
|
||||
response_serializer=MurmurRPC__pb2.Log.List.SerializeToString,
|
||||
),
|
||||
'ConfigGet': grpc.unary_unary_rpc_method_handler(
|
||||
servicer.ConfigGet,
|
||||
request_deserializer=MurmurRPC__pb2.Server.FromString,
|
||||
response_serializer=MurmurRPC__pb2.Config.SerializeToString,
|
||||
),
|
||||
'ConfigGetField': grpc.unary_unary_rpc_method_handler(
|
||||
servicer.ConfigGetField,
|
||||
request_deserializer=MurmurRPC__pb2.Config.Field.FromString,
|
||||
response_serializer=MurmurRPC__pb2.Config.Field.SerializeToString,
|
||||
),
|
||||
'ConfigSetField': grpc.unary_unary_rpc_method_handler(
|
||||
servicer.ConfigSetField,
|
||||
request_deserializer=MurmurRPC__pb2.Config.Field.FromString,
|
||||
response_serializer=MurmurRPC__pb2.Void.SerializeToString,
|
||||
),
|
||||
'ConfigGetDefault': grpc.unary_unary_rpc_method_handler(
|
||||
servicer.ConfigGetDefault,
|
||||
request_deserializer=MurmurRPC__pb2.Void.FromString,
|
||||
response_serializer=MurmurRPC__pb2.Config.SerializeToString,
|
||||
),
|
||||
'ChannelQuery': grpc.unary_unary_rpc_method_handler(
|
||||
servicer.ChannelQuery,
|
||||
request_deserializer=MurmurRPC__pb2.Channel.Query.FromString,
|
||||
response_serializer=MurmurRPC__pb2.Channel.List.SerializeToString,
|
||||
),
|
||||
'ChannelGet': grpc.unary_unary_rpc_method_handler(
|
||||
servicer.ChannelGet,
|
||||
request_deserializer=MurmurRPC__pb2.Channel.FromString,
|
||||
response_serializer=MurmurRPC__pb2.Channel.SerializeToString,
|
||||
),
|
||||
'ChannelAdd': grpc.unary_unary_rpc_method_handler(
|
||||
servicer.ChannelAdd,
|
||||
request_deserializer=MurmurRPC__pb2.Channel.FromString,
|
||||
response_serializer=MurmurRPC__pb2.Channel.SerializeToString,
|
||||
),
|
||||
'ChannelRemove': grpc.unary_unary_rpc_method_handler(
|
||||
servicer.ChannelRemove,
|
||||
request_deserializer=MurmurRPC__pb2.Channel.FromString,
|
||||
response_serializer=MurmurRPC__pb2.Void.SerializeToString,
|
||||
),
|
||||
'ChannelUpdate': grpc.unary_unary_rpc_method_handler(
|
||||
servicer.ChannelUpdate,
|
||||
request_deserializer=MurmurRPC__pb2.Channel.FromString,
|
||||
response_serializer=MurmurRPC__pb2.Channel.SerializeToString,
|
||||
),
|
||||
'UserQuery': grpc.unary_unary_rpc_method_handler(
|
||||
servicer.UserQuery,
|
||||
request_deserializer=MurmurRPC__pb2.User.Query.FromString,
|
||||
response_serializer=MurmurRPC__pb2.User.List.SerializeToString,
|
||||
),
|
||||
'UserGet': grpc.unary_unary_rpc_method_handler(
|
||||
servicer.UserGet,
|
||||
request_deserializer=MurmurRPC__pb2.User.FromString,
|
||||
response_serializer=MurmurRPC__pb2.User.SerializeToString,
|
||||
),
|
||||
'UserUpdate': grpc.unary_unary_rpc_method_handler(
|
||||
servicer.UserUpdate,
|
||||
request_deserializer=MurmurRPC__pb2.User.FromString,
|
||||
response_serializer=MurmurRPC__pb2.User.SerializeToString,
|
||||
),
|
||||
'UserKick': grpc.unary_unary_rpc_method_handler(
|
||||
servicer.UserKick,
|
||||
request_deserializer=MurmurRPC__pb2.User.Kick.FromString,
|
||||
response_serializer=MurmurRPC__pb2.Void.SerializeToString,
|
||||
),
|
||||
'TreeQuery': grpc.unary_unary_rpc_method_handler(
|
||||
servicer.TreeQuery,
|
||||
request_deserializer=MurmurRPC__pb2.Tree.Query.FromString,
|
||||
response_serializer=MurmurRPC__pb2.Tree.SerializeToString,
|
||||
),
|
||||
'BansGet': grpc.unary_unary_rpc_method_handler(
|
||||
servicer.BansGet,
|
||||
request_deserializer=MurmurRPC__pb2.Ban.Query.FromString,
|
||||
response_serializer=MurmurRPC__pb2.Ban.List.SerializeToString,
|
||||
),
|
||||
'BansSet': grpc.unary_unary_rpc_method_handler(
|
||||
servicer.BansSet,
|
||||
request_deserializer=MurmurRPC__pb2.Ban.List.FromString,
|
||||
response_serializer=MurmurRPC__pb2.Void.SerializeToString,
|
||||
),
|
||||
'ACLGet': grpc.unary_unary_rpc_method_handler(
|
||||
servicer.ACLGet,
|
||||
request_deserializer=MurmurRPC__pb2.Channel.FromString,
|
||||
response_serializer=MurmurRPC__pb2.ACL.List.SerializeToString,
|
||||
),
|
||||
'ACLSet': grpc.unary_unary_rpc_method_handler(
|
||||
servicer.ACLSet,
|
||||
request_deserializer=MurmurRPC__pb2.ACL.List.FromString,
|
||||
response_serializer=MurmurRPC__pb2.Void.SerializeToString,
|
||||
),
|
||||
'ACLGetEffectivePermissions': grpc.unary_unary_rpc_method_handler(
|
||||
servicer.ACLGetEffectivePermissions,
|
||||
request_deserializer=MurmurRPC__pb2.ACL.Query.FromString,
|
||||
response_serializer=MurmurRPC__pb2.ACL.SerializeToString,
|
||||
),
|
||||
'ACLAddTemporaryGroup': grpc.unary_unary_rpc_method_handler(
|
||||
servicer.ACLAddTemporaryGroup,
|
||||
request_deserializer=MurmurRPC__pb2.ACL.TemporaryGroup.FromString,
|
||||
response_serializer=MurmurRPC__pb2.Void.SerializeToString,
|
||||
),
|
||||
'ACLRemoveTemporaryGroup': grpc.unary_unary_rpc_method_handler(
|
||||
servicer.ACLRemoveTemporaryGroup,
|
||||
request_deserializer=MurmurRPC__pb2.ACL.TemporaryGroup.FromString,
|
||||
response_serializer=MurmurRPC__pb2.Void.SerializeToString,
|
||||
),
|
||||
'AuthenticatorStream': grpc.stream_stream_rpc_method_handler(
|
||||
servicer.AuthenticatorStream,
|
||||
request_deserializer=MurmurRPC__pb2.Authenticator.Response.FromString,
|
||||
response_serializer=MurmurRPC__pb2.Authenticator.Request.SerializeToString,
|
||||
),
|
||||
'DatabaseUserQuery': grpc.unary_unary_rpc_method_handler(
|
||||
servicer.DatabaseUserQuery,
|
||||
request_deserializer=MurmurRPC__pb2.DatabaseUser.Query.FromString,
|
||||
response_serializer=MurmurRPC__pb2.DatabaseUser.List.SerializeToString,
|
||||
),
|
||||
'DatabaseUserGet': grpc.unary_unary_rpc_method_handler(
|
||||
servicer.DatabaseUserGet,
|
||||
request_deserializer=MurmurRPC__pb2.DatabaseUser.FromString,
|
||||
response_serializer=MurmurRPC__pb2.DatabaseUser.SerializeToString,
|
||||
),
|
||||
'DatabaseUserUpdate': grpc.unary_unary_rpc_method_handler(
|
||||
servicer.DatabaseUserUpdate,
|
||||
request_deserializer=MurmurRPC__pb2.DatabaseUser.FromString,
|
||||
response_serializer=MurmurRPC__pb2.Void.SerializeToString,
|
||||
),
|
||||
'DatabaseUserRegister': grpc.unary_unary_rpc_method_handler(
|
||||
servicer.DatabaseUserRegister,
|
||||
request_deserializer=MurmurRPC__pb2.DatabaseUser.FromString,
|
||||
response_serializer=MurmurRPC__pb2.DatabaseUser.SerializeToString,
|
||||
),
|
||||
'DatabaseUserDeregister': grpc.unary_unary_rpc_method_handler(
|
||||
servicer.DatabaseUserDeregister,
|
||||
request_deserializer=MurmurRPC__pb2.DatabaseUser.FromString,
|
||||
response_serializer=MurmurRPC__pb2.Void.SerializeToString,
|
||||
),
|
||||
'DatabaseUserVerify': grpc.unary_unary_rpc_method_handler(
|
||||
servicer.DatabaseUserVerify,
|
||||
request_deserializer=MurmurRPC__pb2.DatabaseUser.Verify.FromString,
|
||||
response_serializer=MurmurRPC__pb2.DatabaseUser.SerializeToString,
|
||||
),
|
||||
'RedirectWhisperGroupAdd': grpc.unary_unary_rpc_method_handler(
|
||||
servicer.RedirectWhisperGroupAdd,
|
||||
request_deserializer=MurmurRPC__pb2.RedirectWhisperGroup.FromString,
|
||||
response_serializer=MurmurRPC__pb2.Void.SerializeToString,
|
||||
),
|
||||
'RedirectWhisperGroupRemove': grpc.unary_unary_rpc_method_handler(
|
||||
servicer.RedirectWhisperGroupRemove,
|
||||
request_deserializer=MurmurRPC__pb2.RedirectWhisperGroup.FromString,
|
||||
response_serializer=MurmurRPC__pb2.Void.SerializeToString,
|
||||
),
|
||||
}
|
||||
generic_handler = grpc.method_handlers_generic_handler(
|
||||
'MurmurRPC.V1', rpc_method_handlers)
|
||||
server.add_generic_rpc_handlers((generic_handler,))
|
||||
@@ -4,4 +4,4 @@ import grpc
|
||||
from grpc.tools import protoc
|
||||
import tempfile
|
||||
|
||||
conn = grpc.
|
||||
channel = grpc.insecure_channel('sysadministrivia.com:50051')
|
||||
|
||||
Reference in New Issue
Block a user