mirror of
https://github.com/rustfs/rustfs.git
synced 2026-08-20 19:42:17 +00:00
feat: add admin user api
This commit is contained in:
@@ -10,6 +10,27 @@ pub enum AccountStatus {
|
||||
Disabled,
|
||||
}
|
||||
|
||||
impl AsRef<str> for AccountStatus {
|
||||
fn as_ref(&self) -> &str {
|
||||
match self {
|
||||
AccountStatus::Enabled => "enabled",
|
||||
AccountStatus::Disabled => "disabled",
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
impl TryFrom<&str> for AccountStatus {
|
||||
type Error = String;
|
||||
|
||||
fn try_from(s: &str) -> Result<Self, Self::Error> {
|
||||
match s {
|
||||
"enabled" => Ok(AccountStatus::Enabled),
|
||||
"disabled" => Ok(AccountStatus::Disabled),
|
||||
_ => Err(format!("invalid account status: {}", s)),
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
#[derive(Debug, Serialize, Deserialize)]
|
||||
pub enum UserAuthType {
|
||||
#[serde(rename = "builtin")]
|
||||
@@ -50,3 +71,69 @@ pub struct UserInfo {
|
||||
#[serde(rename = "updatedAt")]
|
||||
pub updated_at: Option<OffsetDateTime>,
|
||||
}
|
||||
|
||||
#[derive(Debug, Serialize, Deserialize)]
|
||||
pub struct AddOrUpdateUserReq {
|
||||
#[serde(rename = "secretKey")]
|
||||
pub secret_key: String,
|
||||
|
||||
#[serde(rename = "policy", skip_serializing_if = "Option::is_none")]
|
||||
pub policy: Option<String>,
|
||||
|
||||
#[serde(rename = "status")]
|
||||
pub status: AccountStatus,
|
||||
}
|
||||
|
||||
#[derive(Debug, Serialize, Deserialize)]
|
||||
pub struct ServiceAccountInfo {
|
||||
#[serde(rename = "parentUser")]
|
||||
pub parent_user: String,
|
||||
|
||||
#[serde(rename = "accountStatus")]
|
||||
pub account_status: String,
|
||||
|
||||
#[serde(rename = "impliedPolicy")]
|
||||
pub implied_policy: bool,
|
||||
|
||||
#[serde(rename = "accessKey")]
|
||||
pub access_key: String,
|
||||
|
||||
#[serde(rename = "name", skip_serializing_if = "Option::is_none")]
|
||||
pub name: Option<String>,
|
||||
|
||||
#[serde(rename = "description", skip_serializing_if = "Option::is_none")]
|
||||
pub description: Option<String>,
|
||||
|
||||
#[serde(rename = "expiration", skip_serializing_if = "Option::is_none")]
|
||||
pub expiration: Option<OffsetDateTime>,
|
||||
}
|
||||
|
||||
#[derive(Debug, Serialize, Deserialize)]
|
||||
pub struct ListServiceAccountsResp {
|
||||
#[serde(rename = "accounts")]
|
||||
pub accounts: Vec<ServiceAccountInfo>,
|
||||
}
|
||||
|
||||
#[derive(Debug, Serialize, Deserialize)]
|
||||
pub struct AddServiceAccountReq {
|
||||
#[serde(rename = "policy", skip_serializing_if = "Option::is_none")]
|
||||
pub policy: Option<String>,
|
||||
|
||||
#[serde(rename = "targetUser", skip_serializing_if = "Option::is_none")]
|
||||
pub target_user: Option<String>,
|
||||
|
||||
#[serde(rename = "accessKey")]
|
||||
pub access_key: String,
|
||||
|
||||
#[serde(rename = "secretKey")]
|
||||
pub secret_key: String,
|
||||
|
||||
#[serde(rename = "name")]
|
||||
pub name: String,
|
||||
|
||||
#[serde(rename = "description", skip_serializing_if = "Option::is_none")]
|
||||
pub description: Option<String>,
|
||||
|
||||
#[serde(rename = "expiration", skip_serializing_if = "Option::is_none")]
|
||||
pub expiration: Option<OffsetDateTime>,
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user