#[derive(serde::Serialize, serde::Deserialize)]
#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)]
#[repr(i32)]
pub enum EscalatedPrivilege {
All = 0,
ReloadPlugin = 1,
LoadPlugin = 2,
InstructPlugin = 3,
}
impl EscalatedPrivilege {
pub fn as_str_name(&self) -> &'static str {
match self {
EscalatedPrivilege::All => "ALL",
EscalatedPrivilege::ReloadPlugin => "RELOAD_PLUGIN",
EscalatedPrivilege::LoadPlugin => "LOAD_PLUGIN",
EscalatedPrivilege::InstructPlugin => "INSTRUCT_PLUGIN",
}
}
pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
match value {
"ALL" => Some(Self::All),
"RELOAD_PLUGIN" => Some(Self::ReloadPlugin),
"LOAD_PLUGIN" => Some(Self::LoadPlugin),
"INSTRUCT_PLUGIN" => Some(Self::InstructPlugin),
_ => None,
}
}
}
#[derive(serde::Serialize, serde::Deserialize)]
#[serde(default)]
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct Argument {
#[prost(string, tag="1")]
pub name: ::prost::alloc::string::String,
#[prost(string, tag="2")]
pub description: ::prost::alloc::string::String,
#[prost(string, optional, tag="3")]
pub default_value: ::core::option::Option<::prost::alloc::string::String>,
#[prost(bool, tag="4")]
pub required: bool,
#[prost(string, optional, tag="5")]
pub short: ::core::option::Option<::prost::alloc::string::String>,
#[prost(string, optional, tag="6")]
pub long: ::core::option::Option<::prost::alloc::string::String>,
}
#[derive(serde::Serialize, serde::Deserialize)]
#[serde(default)]
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct Command {
#[prost(string, tag="1")]
pub name: ::prost::alloc::string::String,
#[prost(string, tag="2")]
pub description: ::prost::alloc::string::String,
#[prost(string, optional, tag="3")]
pub author: ::core::option::Option<::prost::alloc::string::String>,
#[prost(string, optional, tag="4")]
pub version: ::core::option::Option<::prost::alloc::string::String>,
#[prost(string, repeated, tag="5")]
pub aliases: ::prost::alloc::vec::Vec<::prost::alloc::string::String>,
#[prost(message, repeated, tag="6")]
pub arguments: ::prost::alloc::vec::Vec<Argument>,
#[prost(message, repeated, tag="7")]
pub subcommands: ::prost::alloc::vec::Vec<Command>,
#[prost(message, optional, tag="8")]
pub access_checks: ::core::option::Option<super::access_check::AccessCheckChain>,
}
#[cfg_attr(feature = "kameo", derive(kameo::Reply))]
#[derive(serde::Serialize, serde::Deserialize)]
#[serde(default)]
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct Metadata {
#[prost(string, tag="1")]
pub name: ::prost::alloc::string::String,
#[prost(string, tag="2")]
pub description: ::prost::alloc::string::String,
#[prost(string, tag="3")]
pub version: ::prost::alloc::string::String,
#[prost(bool, tag="4")]
pub database: bool,
#[prost(message, optional, tag="5")]
pub access_checks: ::core::option::Option<super::access_check::AccessCheckChain>,
#[prost(string, optional, tag="6")]
pub escalation_key: ::core::option::Option<::prost::alloc::string::String>,
#[prost(enumeration="EscalatedPrivilege", repeated, tag="7")]
pub escalated_privileges: ::prost::alloc::vec::Vec<i32>,
#[prost(string, tag="8")]
pub author: ::prost::alloc::string::String,
#[prost(bool, tag="9")]
pub handles_commands: bool,
#[prost(bool, tag="10")]
pub handles_messages: bool,
#[prost(string, optional, tag="11")]
pub command_name: ::core::option::Option<::prost::alloc::string::String>,
#[prost(string, repeated, tag="12")]
pub aliases: ::prost::alloc::vec::Vec<::prost::alloc::string::String>,
#[prost(message, repeated, tag="13")]
pub arguments: ::prost::alloc::vec::Vec<Argument>,
#[prost(message, repeated, tag="14")]
pub subcommands: ::prost::alloc::vec::Vec<Command>,
#[prost(string, repeated, tag="15")]
pub allowed_hosts: ::prost::alloc::vec::Vec<::prost::alloc::string::String>,
#[prost(int32, optional, tag="16")]
pub pool_size: ::core::option::Option<i32>,
}
#[derive(serde::Serialize, serde::Deserialize)]
#[serde(default)]
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct CommandContextArgument {
#[prost(string, tag="1")]
pub name: ::prost::alloc::string::String,
#[prost(string, tag="2")]
pub value: ::prost::alloc::string::String,
}
#[derive(serde::Serialize, serde::Deserialize)]
#[serde(default)]
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct CommandContext {
#[prost(string, tag="1")]
pub name: ::prost::alloc::string::String,
#[prost(message, repeated, tag="2")]
pub arguments: ::prost::alloc::vec::Vec<CommandContextArgument>,
#[prost(message, optional, boxed, tag="3")]
pub subcommand: ::core::option::Option<::prost::alloc::boxed::Box<CommandContext>>,
}
#[derive(serde::Serialize, serde::Deserialize)]
#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)]
#[repr(i32)]
pub enum InstructionKind {
Plugin = 0,
GetMetadata = 1,
Install = 2,
Initialize = 3,
Shutdown = 4,
ChatMessage = 5,
ChatCommand = 6,
ScheduledJob = 7,
}
impl InstructionKind {
pub fn as_str_name(&self) -> &'static str {
match self {
InstructionKind::Plugin => "Plugin",
InstructionKind::GetMetadata => "GetMetadata",
InstructionKind::Install => "Install",
InstructionKind::Initialize => "Initialize",
InstructionKind::Shutdown => "Shutdown",
InstructionKind::ChatMessage => "ChatMessage",
InstructionKind::ChatCommand => "ChatCommand",
InstructionKind::ScheduledJob => "ScheduledJob",
}
}
pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
match value {
"Plugin" => Some(Self::Plugin),
"GetMetadata" => Some(Self::GetMetadata),
"Install" => Some(Self::Install),
"Initialize" => Some(Self::Initialize),
"Shutdown" => Some(Self::Shutdown),
"ChatMessage" => Some(Self::ChatMessage),
"ChatCommand" => Some(Self::ChatCommand),
"ScheduledJob" => Some(Self::ScheduledJob),
_ => None,
}
}
}
#[derive(serde::Serialize, serde::Deserialize)]
#[serde(default)]
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct Instruction {
#[prost(enumeration="InstructionKind", tag="1")]
pub kind: i32,
#[prost(bytes="vec", tag="2")]
pub input: ::prost::alloc::vec::Vec<u8>,
#[prost(string, optional, tag="3")]
pub target: ::core::option::Option<::prost::alloc::string::String>,
}