Skip to main content

AdminApi

Trait AdminApi 

Source
pub trait AdminApi: Send + Sync {
Show 38 methods // Required methods fn cluster_info<'life0, 'async_trait>( &'life0 self, ) -> Pin<Box<dyn Future<Output = Result<ClusterInfo>> + Send + 'async_trait>> where Self: 'async_trait, 'life0: 'async_trait; fn heal_status<'life0, 'async_trait>( &'life0 self, ) -> Pin<Box<dyn Future<Output = Result<HealStatus>> + Send + 'async_trait>> where Self: 'async_trait, 'life0: 'async_trait; fn heal_start<'life0, 'async_trait>( &'life0 self, request: HealStartRequest, ) -> Pin<Box<dyn Future<Output = Result<HealStatus>> + Send + 'async_trait>> where Self: 'async_trait, 'life0: 'async_trait; fn heal_stop<'life0, 'async_trait>( &'life0 self, ) -> Pin<Box<dyn Future<Output = Result<()>> + Send + 'async_trait>> where Self: 'async_trait, 'life0: 'async_trait; fn list_users<'life0, 'async_trait>( &'life0 self, ) -> Pin<Box<dyn Future<Output = Result<Vec<User>>> + Send + 'async_trait>> where Self: 'async_trait, 'life0: 'async_trait; fn get_user<'life0, 'life1, 'async_trait>( &'life0 self, access_key: &'life1 str, ) -> Pin<Box<dyn Future<Output = Result<User>> + Send + 'async_trait>> where Self: 'async_trait, 'life0: 'async_trait, 'life1: 'async_trait; fn create_user<'life0, 'life1, 'life2, 'async_trait>( &'life0 self, access_key: &'life1 str, secret_key: &'life2 str, ) -> Pin<Box<dyn Future<Output = Result<User>> + Send + 'async_trait>> where Self: 'async_trait, 'life0: 'async_trait, 'life1: 'async_trait, 'life2: 'async_trait; fn delete_user<'life0, 'life1, 'async_trait>( &'life0 self, access_key: &'life1 str, ) -> Pin<Box<dyn Future<Output = Result<()>> + Send + 'async_trait>> where Self: 'async_trait, 'life0: 'async_trait, 'life1: 'async_trait; fn set_user_status<'life0, 'life1, 'async_trait>( &'life0 self, access_key: &'life1 str, status: UserStatus, ) -> Pin<Box<dyn Future<Output = Result<()>> + Send + 'async_trait>> where Self: 'async_trait, 'life0: 'async_trait, 'life1: 'async_trait; fn list_policies<'life0, 'async_trait>( &'life0 self, ) -> Pin<Box<dyn Future<Output = Result<Vec<PolicyInfo>>> + Send + 'async_trait>> where Self: 'async_trait, 'life0: 'async_trait; fn get_policy<'life0, 'life1, 'async_trait>( &'life0 self, name: &'life1 str, ) -> Pin<Box<dyn Future<Output = Result<Policy>> + Send + 'async_trait>> where Self: 'async_trait, 'life0: 'async_trait, 'life1: 'async_trait; fn create_policy<'life0, 'life1, 'life2, 'async_trait>( &'life0 self, name: &'life1 str, policy_document: &'life2 str, ) -> Pin<Box<dyn Future<Output = Result<()>> + Send + 'async_trait>> where Self: 'async_trait, 'life0: 'async_trait, 'life1: 'async_trait, 'life2: 'async_trait; fn delete_policy<'life0, 'life1, 'async_trait>( &'life0 self, name: &'life1 str, ) -> Pin<Box<dyn Future<Output = Result<()>> + Send + 'async_trait>> where Self: 'async_trait, 'life0: 'async_trait, 'life1: 'async_trait; fn attach_policy<'life0, 'life1, 'life2, 'async_trait>( &'life0 self, policy_names: &'life1 [String], entity_type: PolicyEntity, entity_name: &'life2 str, ) -> Pin<Box<dyn Future<Output = Result<()>> + Send + 'async_trait>> where Self: 'async_trait, 'life0: 'async_trait, 'life1: 'async_trait, 'life2: 'async_trait; fn detach_policy<'life0, 'life1, 'life2, 'async_trait>( &'life0 self, policy_names: &'life1 [String], entity_type: PolicyEntity, entity_name: &'life2 str, ) -> Pin<Box<dyn Future<Output = Result<()>> + Send + 'async_trait>> where Self: 'async_trait, 'life0: 'async_trait, 'life1: 'async_trait, 'life2: 'async_trait; fn list_groups<'life0, 'async_trait>( &'life0 self, ) -> Pin<Box<dyn Future<Output = Result<Vec<String>>> + Send + 'async_trait>> where Self: 'async_trait, 'life0: 'async_trait; fn get_group<'life0, 'life1, 'async_trait>( &'life0 self, name: &'life1 str, ) -> Pin<Box<dyn Future<Output = Result<Group>> + Send + 'async_trait>> where Self: 'async_trait, 'life0: 'async_trait, 'life1: 'async_trait; fn create_group<'life0, 'life1, 'life2, 'async_trait>( &'life0 self, name: &'life1 str, members: Option<&'life2 [String]>, ) -> Pin<Box<dyn Future<Output = Result<Group>> + Send + 'async_trait>> where Self: 'async_trait, 'life0: 'async_trait, 'life1: 'async_trait, 'life2: 'async_trait; fn delete_group<'life0, 'life1, 'async_trait>( &'life0 self, name: &'life1 str, ) -> Pin<Box<dyn Future<Output = Result<()>> + Send + 'async_trait>> where Self: 'async_trait, 'life0: 'async_trait, 'life1: 'async_trait; fn set_group_status<'life0, 'life1, 'async_trait>( &'life0 self, name: &'life1 str, status: GroupStatus, ) -> Pin<Box<dyn Future<Output = Result<()>> + Send + 'async_trait>> where Self: 'async_trait, 'life0: 'async_trait, 'life1: 'async_trait; fn add_group_members<'life0, 'life1, 'life2, 'async_trait>( &'life0 self, group: &'life1 str, members: &'life2 [String], ) -> Pin<Box<dyn Future<Output = Result<()>> + Send + 'async_trait>> where Self: 'async_trait, 'life0: 'async_trait, 'life1: 'async_trait, 'life2: 'async_trait; fn remove_group_members<'life0, 'life1, 'life2, 'async_trait>( &'life0 self, group: &'life1 str, members: &'life2 [String], ) -> Pin<Box<dyn Future<Output = Result<()>> + Send + 'async_trait>> where Self: 'async_trait, 'life0: 'async_trait, 'life1: 'async_trait, 'life2: 'async_trait; fn list_service_accounts<'life0, 'life1, 'async_trait>( &'life0 self, user: Option<&'life1 str>, ) -> Pin<Box<dyn Future<Output = Result<Vec<ServiceAccount>>> + Send + 'async_trait>> where Self: 'async_trait, 'life0: 'async_trait, 'life1: 'async_trait; fn get_service_account<'life0, 'life1, 'async_trait>( &'life0 self, access_key: &'life1 str, ) -> Pin<Box<dyn Future<Output = Result<ServiceAccount>> + Send + 'async_trait>> where Self: 'async_trait, 'life0: 'async_trait, 'life1: 'async_trait; fn create_service_account<'life0, 'async_trait>( &'life0 self, request: CreateServiceAccountRequest, ) -> Pin<Box<dyn Future<Output = Result<ServiceAccount>> + Send + 'async_trait>> where Self: 'async_trait, 'life0: 'async_trait; fn delete_service_account<'life0, 'life1, 'async_trait>( &'life0 self, access_key: &'life1 str, ) -> Pin<Box<dyn Future<Output = Result<()>> + Send + 'async_trait>> where Self: 'async_trait, 'life0: 'async_trait, 'life1: 'async_trait; fn set_bucket_quota<'life0, 'life1, 'async_trait>( &'life0 self, bucket: &'life1 str, quota: u64, ) -> Pin<Box<dyn Future<Output = Result<BucketQuota>> + Send + 'async_trait>> where Self: 'async_trait, 'life0: 'async_trait, 'life1: 'async_trait; fn get_bucket_quota<'life0, 'life1, 'async_trait>( &'life0 self, bucket: &'life1 str, ) -> Pin<Box<dyn Future<Output = Result<BucketQuota>> + Send + 'async_trait>> where Self: 'async_trait, 'life0: 'async_trait, 'life1: 'async_trait; fn clear_bucket_quota<'life0, 'life1, 'async_trait>( &'life0 self, bucket: &'life1 str, ) -> Pin<Box<dyn Future<Output = Result<BucketQuota>> + Send + 'async_trait>> where Self: 'async_trait, 'life0: 'async_trait, 'life1: 'async_trait; fn list_tiers<'life0, 'async_trait>( &'life0 self, ) -> Pin<Box<dyn Future<Output = Result<Vec<TierConfig>>> + Send + 'async_trait>> where Self: 'async_trait, 'life0: 'async_trait; fn tier_stats<'life0, 'async_trait>( &'life0 self, ) -> Pin<Box<dyn Future<Output = Result<Value>> + Send + 'async_trait>> where Self: 'async_trait, 'life0: 'async_trait; fn add_tier<'life0, 'async_trait>( &'life0 self, config: TierConfig, ) -> Pin<Box<dyn Future<Output = Result<()>> + Send + 'async_trait>> where Self: 'async_trait, 'life0: 'async_trait; fn edit_tier<'life0, 'life1, 'async_trait>( &'life0 self, name: &'life1 str, creds: TierCreds, ) -> Pin<Box<dyn Future<Output = Result<()>> + Send + 'async_trait>> where Self: 'async_trait, 'life0: 'async_trait, 'life1: 'async_trait; fn remove_tier<'life0, 'life1, 'async_trait>( &'life0 self, name: &'life1 str, force: bool, ) -> Pin<Box<dyn Future<Output = Result<()>> + Send + 'async_trait>> where Self: 'async_trait, 'life0: 'async_trait, 'life1: 'async_trait; fn set_remote_target<'life0, 'life1, 'async_trait>( &'life0 self, bucket: &'life1 str, target: BucketTarget, update: bool, ) -> Pin<Box<dyn Future<Output = Result<String>> + Send + 'async_trait>> where Self: 'async_trait, 'life0: 'async_trait, 'life1: 'async_trait; fn list_remote_targets<'life0, 'life1, 'async_trait>( &'life0 self, bucket: &'life1 str, ) -> Pin<Box<dyn Future<Output = Result<Vec<BucketTarget>>> + Send + 'async_trait>> where Self: 'async_trait, 'life0: 'async_trait, 'life1: 'async_trait; fn remove_remote_target<'life0, 'life1, 'life2, 'async_trait>( &'life0 self, bucket: &'life1 str, arn: &'life2 str, ) -> Pin<Box<dyn Future<Output = Result<()>> + Send + 'async_trait>> where Self: 'async_trait, 'life0: 'async_trait, 'life1: 'async_trait, 'life2: 'async_trait; fn replication_metrics<'life0, 'life1, 'async_trait>( &'life0 self, bucket: &'life1 str, ) -> Pin<Box<dyn Future<Output = Result<Value>> + Send + 'async_trait>> where Self: 'async_trait, 'life0: 'async_trait, 'life1: 'async_trait;
}
Expand description

Admin API trait for IAM and cluster management operations

This trait defines the interface for managing users, policies, groups, service accounts, and cluster operations on S3-compatible storage systems that support the RustFS/MinIO Admin API.

Required Methods§

Source

fn cluster_info<'life0, 'async_trait>( &'life0 self, ) -> Pin<Box<dyn Future<Output = Result<ClusterInfo>> + Send + 'async_trait>>
where Self: 'async_trait, 'life0: 'async_trait,

Get cluster information including servers, disks, and usage

Source

fn heal_status<'life0, 'async_trait>( &'life0 self, ) -> Pin<Box<dyn Future<Output = Result<HealStatus>> + Send + 'async_trait>>
where Self: 'async_trait, 'life0: 'async_trait,

Get current heal status

Source

fn heal_start<'life0, 'async_trait>( &'life0 self, request: HealStartRequest, ) -> Pin<Box<dyn Future<Output = Result<HealStatus>> + Send + 'async_trait>>
where Self: 'async_trait, 'life0: 'async_trait,

Start a heal operation

Source

fn heal_stop<'life0, 'async_trait>( &'life0 self, ) -> Pin<Box<dyn Future<Output = Result<()>> + Send + 'async_trait>>
where Self: 'async_trait, 'life0: 'async_trait,

Stop a running heal operation

Source

fn list_users<'life0, 'async_trait>( &'life0 self, ) -> Pin<Box<dyn Future<Output = Result<Vec<User>>> + Send + 'async_trait>>
where Self: 'async_trait, 'life0: 'async_trait,

List all users

Source

fn get_user<'life0, 'life1, 'async_trait>( &'life0 self, access_key: &'life1 str, ) -> Pin<Box<dyn Future<Output = Result<User>> + Send + 'async_trait>>
where Self: 'async_trait, 'life0: 'async_trait, 'life1: 'async_trait,

Get user information

Source

fn create_user<'life0, 'life1, 'life2, 'async_trait>( &'life0 self, access_key: &'life1 str, secret_key: &'life2 str, ) -> Pin<Box<dyn Future<Output = Result<User>> + Send + 'async_trait>>
where Self: 'async_trait, 'life0: 'async_trait, 'life1: 'async_trait, 'life2: 'async_trait,

Create a new user

Source

fn delete_user<'life0, 'life1, 'async_trait>( &'life0 self, access_key: &'life1 str, ) -> Pin<Box<dyn Future<Output = Result<()>> + Send + 'async_trait>>
where Self: 'async_trait, 'life0: 'async_trait, 'life1: 'async_trait,

Delete a user

Source

fn set_user_status<'life0, 'life1, 'async_trait>( &'life0 self, access_key: &'life1 str, status: UserStatus, ) -> Pin<Box<dyn Future<Output = Result<()>> + Send + 'async_trait>>
where Self: 'async_trait, 'life0: 'async_trait, 'life1: 'async_trait,

Set user status (enable/disable)

Source

fn list_policies<'life0, 'async_trait>( &'life0 self, ) -> Pin<Box<dyn Future<Output = Result<Vec<PolicyInfo>>> + Send + 'async_trait>>
where Self: 'async_trait, 'life0: 'async_trait,

List all policies

Source

fn get_policy<'life0, 'life1, 'async_trait>( &'life0 self, name: &'life1 str, ) -> Pin<Box<dyn Future<Output = Result<Policy>> + Send + 'async_trait>>
where Self: 'async_trait, 'life0: 'async_trait, 'life1: 'async_trait,

Get policy information

Source

fn create_policy<'life0, 'life1, 'life2, 'async_trait>( &'life0 self, name: &'life1 str, policy_document: &'life2 str, ) -> Pin<Box<dyn Future<Output = Result<()>> + Send + 'async_trait>>
where Self: 'async_trait, 'life0: 'async_trait, 'life1: 'async_trait, 'life2: 'async_trait,

Create a new policy

Source

fn delete_policy<'life0, 'life1, 'async_trait>( &'life0 self, name: &'life1 str, ) -> Pin<Box<dyn Future<Output = Result<()>> + Send + 'async_trait>>
where Self: 'async_trait, 'life0: 'async_trait, 'life1: 'async_trait,

Delete a policy

Source

fn attach_policy<'life0, 'life1, 'life2, 'async_trait>( &'life0 self, policy_names: &'life1 [String], entity_type: PolicyEntity, entity_name: &'life2 str, ) -> Pin<Box<dyn Future<Output = Result<()>> + Send + 'async_trait>>
where Self: 'async_trait, 'life0: 'async_trait, 'life1: 'async_trait, 'life2: 'async_trait,

Attach policy to a user or group

Source

fn detach_policy<'life0, 'life1, 'life2, 'async_trait>( &'life0 self, policy_names: &'life1 [String], entity_type: PolicyEntity, entity_name: &'life2 str, ) -> Pin<Box<dyn Future<Output = Result<()>> + Send + 'async_trait>>
where Self: 'async_trait, 'life0: 'async_trait, 'life1: 'async_trait, 'life2: 'async_trait,

Detach policy from a user or group

Source

fn list_groups<'life0, 'async_trait>( &'life0 self, ) -> Pin<Box<dyn Future<Output = Result<Vec<String>>> + Send + 'async_trait>>
where Self: 'async_trait, 'life0: 'async_trait,

List all groups

Source

fn get_group<'life0, 'life1, 'async_trait>( &'life0 self, name: &'life1 str, ) -> Pin<Box<dyn Future<Output = Result<Group>> + Send + 'async_trait>>
where Self: 'async_trait, 'life0: 'async_trait, 'life1: 'async_trait,

Get group information

Source

fn create_group<'life0, 'life1, 'life2, 'async_trait>( &'life0 self, name: &'life1 str, members: Option<&'life2 [String]>, ) -> Pin<Box<dyn Future<Output = Result<Group>> + Send + 'async_trait>>
where Self: 'async_trait, 'life0: 'async_trait, 'life1: 'async_trait, 'life2: 'async_trait,

Create a new group

Source

fn delete_group<'life0, 'life1, 'async_trait>( &'life0 self, name: &'life1 str, ) -> Pin<Box<dyn Future<Output = Result<()>> + Send + 'async_trait>>
where Self: 'async_trait, 'life0: 'async_trait, 'life1: 'async_trait,

Delete a group

Source

fn set_group_status<'life0, 'life1, 'async_trait>( &'life0 self, name: &'life1 str, status: GroupStatus, ) -> Pin<Box<dyn Future<Output = Result<()>> + Send + 'async_trait>>
where Self: 'async_trait, 'life0: 'async_trait, 'life1: 'async_trait,

Set group status (enable/disable)

Source

fn add_group_members<'life0, 'life1, 'life2, 'async_trait>( &'life0 self, group: &'life1 str, members: &'life2 [String], ) -> Pin<Box<dyn Future<Output = Result<()>> + Send + 'async_trait>>
where Self: 'async_trait, 'life0: 'async_trait, 'life1: 'async_trait, 'life2: 'async_trait,

Add members to a group

Source

fn remove_group_members<'life0, 'life1, 'life2, 'async_trait>( &'life0 self, group: &'life1 str, members: &'life2 [String], ) -> Pin<Box<dyn Future<Output = Result<()>> + Send + 'async_trait>>
where Self: 'async_trait, 'life0: 'async_trait, 'life1: 'async_trait, 'life2: 'async_trait,

Remove members from a group

Source

fn list_service_accounts<'life0, 'life1, 'async_trait>( &'life0 self, user: Option<&'life1 str>, ) -> Pin<Box<dyn Future<Output = Result<Vec<ServiceAccount>>> + Send + 'async_trait>>
where Self: 'async_trait, 'life0: 'async_trait, 'life1: 'async_trait,

List service accounts for a user

Source

fn get_service_account<'life0, 'life1, 'async_trait>( &'life0 self, access_key: &'life1 str, ) -> Pin<Box<dyn Future<Output = Result<ServiceAccount>> + Send + 'async_trait>>
where Self: 'async_trait, 'life0: 'async_trait, 'life1: 'async_trait,

Get service account information

Source

fn create_service_account<'life0, 'async_trait>( &'life0 self, request: CreateServiceAccountRequest, ) -> Pin<Box<dyn Future<Output = Result<ServiceAccount>> + Send + 'async_trait>>
where Self: 'async_trait, 'life0: 'async_trait,

Create a new service account

Source

fn delete_service_account<'life0, 'life1, 'async_trait>( &'life0 self, access_key: &'life1 str, ) -> Pin<Box<dyn Future<Output = Result<()>> + Send + 'async_trait>>
where Self: 'async_trait, 'life0: 'async_trait, 'life1: 'async_trait,

Delete a service account

Source

fn set_bucket_quota<'life0, 'life1, 'async_trait>( &'life0 self, bucket: &'life1 str, quota: u64, ) -> Pin<Box<dyn Future<Output = Result<BucketQuota>> + Send + 'async_trait>>
where Self: 'async_trait, 'life0: 'async_trait, 'life1: 'async_trait,

Set bucket quota in bytes

Source

fn get_bucket_quota<'life0, 'life1, 'async_trait>( &'life0 self, bucket: &'life1 str, ) -> Pin<Box<dyn Future<Output = Result<BucketQuota>> + Send + 'async_trait>>
where Self: 'async_trait, 'life0: 'async_trait, 'life1: 'async_trait,

Get bucket quota information

Source

fn clear_bucket_quota<'life0, 'life1, 'async_trait>( &'life0 self, bucket: &'life1 str, ) -> Pin<Box<dyn Future<Output = Result<BucketQuota>> + Send + 'async_trait>>
where Self: 'async_trait, 'life0: 'async_trait, 'life1: 'async_trait,

Clear bucket quota

Source

fn list_tiers<'life0, 'async_trait>( &'life0 self, ) -> Pin<Box<dyn Future<Output = Result<Vec<TierConfig>>> + Send + 'async_trait>>
where Self: 'async_trait, 'life0: 'async_trait,

List all configured storage tiers

Source

fn tier_stats<'life0, 'async_trait>( &'life0 self, ) -> Pin<Box<dyn Future<Output = Result<Value>> + Send + 'async_trait>>
where Self: 'async_trait, 'life0: 'async_trait,

Get tier statistics

Source

fn add_tier<'life0, 'async_trait>( &'life0 self, config: TierConfig, ) -> Pin<Box<dyn Future<Output = Result<()>> + Send + 'async_trait>>
where Self: 'async_trait, 'life0: 'async_trait,

Add a new storage tier

Source

fn edit_tier<'life0, 'life1, 'async_trait>( &'life0 self, name: &'life1 str, creds: TierCreds, ) -> Pin<Box<dyn Future<Output = Result<()>> + Send + 'async_trait>>
where Self: 'async_trait, 'life0: 'async_trait, 'life1: 'async_trait,

Edit tier credentials

Source

fn remove_tier<'life0, 'life1, 'async_trait>( &'life0 self, name: &'life1 str, force: bool, ) -> Pin<Box<dyn Future<Output = Result<()>> + Send + 'async_trait>>
where Self: 'async_trait, 'life0: 'async_trait, 'life1: 'async_trait,

Remove a storage tier

Source

fn set_remote_target<'life0, 'life1, 'async_trait>( &'life0 self, bucket: &'life1 str, target: BucketTarget, update: bool, ) -> Pin<Box<dyn Future<Output = Result<String>> + Send + 'async_trait>>
where Self: 'async_trait, 'life0: 'async_trait, 'life1: 'async_trait,

Set a remote replication target for a bucket, returns the ARN

Source

fn list_remote_targets<'life0, 'life1, 'async_trait>( &'life0 self, bucket: &'life1 str, ) -> Pin<Box<dyn Future<Output = Result<Vec<BucketTarget>>> + Send + 'async_trait>>
where Self: 'async_trait, 'life0: 'async_trait, 'life1: 'async_trait,

List remote replication targets for a bucket

Source

fn remove_remote_target<'life0, 'life1, 'life2, 'async_trait>( &'life0 self, bucket: &'life1 str, arn: &'life2 str, ) -> Pin<Box<dyn Future<Output = Result<()>> + Send + 'async_trait>>
where Self: 'async_trait, 'life0: 'async_trait, 'life1: 'async_trait, 'life2: 'async_trait,

Remove a remote replication target

Source

fn replication_metrics<'life0, 'life1, 'async_trait>( &'life0 self, bucket: &'life1 str, ) -> Pin<Box<dyn Future<Output = Result<Value>> + Send + 'async_trait>>
where Self: 'async_trait, 'life0: 'async_trait, 'life1: 'async_trait,

Get replication metrics for a bucket

Implementors§