pub trait AdminClientLike: Send {
Show 17 methods
// Required methods
fn metadata<'life0, 'life1, 'life2, 'async_trait>(
&'life0 mut self,
topics: &'life1 [&'life2 str],
) -> Pin<Box<dyn Future<Output = Result<TopicMetadata, AdminError>> + Send + 'async_trait>>
where Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
'life2: 'async_trait;
fn create_topics<'life0, 'life1, 'async_trait>(
&'life0 mut self,
specs: &'life1 [CreateTopicSpec],
timeout_ms: i32,
) -> Pin<Box<dyn Future<Output = Result<Vec<CreateTopicOutcome>, AdminError>> + Send + 'async_trait>>
where Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait;
fn delete_topics<'life0, 'life1, 'life2, 'async_trait>(
&'life0 mut self,
names: &'life1 [&'life2 str],
timeout_ms: i32,
) -> Pin<Box<dyn Future<Output = Result<Vec<DeleteTopicOutcome>, AdminError>> + Send + 'async_trait>>
where Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
'life2: 'async_trait;
fn create_partitions<'life0, 'life1, 'async_trait>(
&'life0 mut self,
ops: &'life1 [CreatePartitionsOp],
timeout_ms: i32,
) -> Pin<Box<dyn Future<Output = Result<Vec<CreatePartitionsOutcome>, AdminError>> + Send + 'async_trait>>
where Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait;
fn describe_configs<'life0, 'life1, 'life2, 'async_trait>(
&'life0 mut self,
topics: &'life1 [&'life2 str],
) -> Pin<Box<dyn Future<Output = Result<Vec<TopicConfigOverrides>, AdminError>> + Send + 'async_trait>>
where Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
'life2: 'async_trait;
fn incremental_alter_configs<'life0, 'life1, 'async_trait>(
&'life0 mut self,
ops: &'life1 [IncrementalAlterOp],
) -> Pin<Box<dyn Future<Output = Result<Vec<AlterConfigsOutcome>, AdminError>> + Send + 'async_trait>>
where Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait;
fn alter_user_scram_credentials_sha512<'life0, 'life1, 'life2, 'async_trait>(
&'life0 mut self,
upsertions: &'life1 [ScramUpsertion],
deletions: &'life2 [ScramDeletion],
) -> Pin<Box<dyn Future<Output = Result<Vec<ScramUserOutcome>, AdminError>> + Send + 'async_trait>>
where Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
'life2: 'async_trait;
fn alter_user_scram_credentials_sha256<'life0, 'life1, 'life2, 'async_trait>(
&'life0 mut self,
upsertions: &'life1 [ScramUpsertion],
deletions: &'life2 [ScramDeletion],
) -> Pin<Box<dyn Future<Output = Result<Vec<ScramUserOutcome>, AdminError>> + Send + 'async_trait>>
where Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
'life2: 'async_trait;
fn describe_acls<'life0, 'life1, 'async_trait>(
&'life0 mut self,
filter: &'life1 AclEntryFilter,
) -> Pin<Box<dyn Future<Output = Result<Vec<AclEntry>, AdminError>> + Send + 'async_trait>>
where Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait;
fn create_acls<'life0, 'life1, 'async_trait>(
&'life0 mut self,
creations: &'life1 [AclEntry],
) -> Pin<Box<dyn Future<Output = Result<Vec<CreateAclOutcome>, AdminError>> + Send + 'async_trait>>
where Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait;
fn delete_acls<'life0, 'life1, 'async_trait>(
&'life0 mut self,
filters: &'life1 [AclEntryFilter],
) -> Pin<Box<dyn Future<Output = Result<Vec<DeleteAclFilterOutcome>, AdminError>> + Send + 'async_trait>>
where Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait;
fn describe_user_quotas<'life0, 'life1, 'async_trait>(
&'life0 mut self,
username: &'life1 str,
) -> Pin<Box<dyn Future<Output = Result<UserQuotaConfig, AdminError>> + Send + 'async_trait>>
where Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait;
fn alter_user_quotas<'life0, 'life1, 'life2, 'async_trait>(
&'life0 mut self,
username: &'life1 str,
ops: &'life2 [QuotaOp],
validate_only: bool,
) -> Pin<Box<dyn Future<Output = Result<Option<KafkaError>, AdminError>> + Send + 'async_trait>>
where Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
'life2: 'async_trait;
fn create_delegation_token_as_owner<'life0, 'life1, 'life2, 'async_trait>(
&'life0 mut self,
owner_principal_name: &'life1 str,
renewers: &'life2 [String],
max_lifetime_ms: i64,
) -> Pin<Box<dyn Future<Output = Result<DelegationToken, AdminError>> + Send + 'async_trait>>
where Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
'life2: 'async_trait;
fn renew_delegation_token<'life0, 'life1, 'async_trait>(
&'life0 mut self,
hmac: &'life1 [u8],
) -> Pin<Box<dyn Future<Output = Result<DelegationToken, AdminError>> + Send + 'async_trait>>
where Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait;
fn expire_delegation_token<'life0, 'life1, 'async_trait>(
&'life0 mut self,
hmac: &'life1 [u8],
) -> Pin<Box<dyn Future<Output = Result<(), AdminError>> + Send + 'async_trait>>
where Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait;
fn describe_delegation_tokens_owned_by<'life0, 'life1, 'async_trait>(
&'life0 mut self,
owner_principal: &'life1 str,
) -> Pin<Box<dyn Future<Output = Result<Vec<DelegationToken>, AdminError>> + Send + 'async_trait>>
where Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait;
}Expand description
Test seam for AdminClient. The operator’s reconcile only needs
dynamic dispatch via this trait; production code wraps a concrete
AdminClient, while tests substitute a fake.
Methods take &mut self because the underlying AdminClient’s
NOT_CONTROLLER retry path reconnects the inner Connection in
place, which requires unique access.
Required Methods§
fn metadata<'life0, 'life1, 'life2, 'async_trait>(
&'life0 mut self,
topics: &'life1 [&'life2 str],
) -> Pin<Box<dyn Future<Output = Result<TopicMetadata, AdminError>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
'life2: 'async_trait,
fn create_topics<'life0, 'life1, 'async_trait>(
&'life0 mut self,
specs: &'life1 [CreateTopicSpec],
timeout_ms: i32,
) -> Pin<Box<dyn Future<Output = Result<Vec<CreateTopicOutcome>, AdminError>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
fn delete_topics<'life0, 'life1, 'life2, 'async_trait>(
&'life0 mut self,
names: &'life1 [&'life2 str],
timeout_ms: i32,
) -> Pin<Box<dyn Future<Output = Result<Vec<DeleteTopicOutcome>, AdminError>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
'life2: 'async_trait,
fn create_partitions<'life0, 'life1, 'async_trait>(
&'life0 mut self,
ops: &'life1 [CreatePartitionsOp],
timeout_ms: i32,
) -> Pin<Box<dyn Future<Output = Result<Vec<CreatePartitionsOutcome>, AdminError>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
fn describe_configs<'life0, 'life1, 'life2, 'async_trait>(
&'life0 mut self,
topics: &'life1 [&'life2 str],
) -> Pin<Box<dyn Future<Output = Result<Vec<TopicConfigOverrides>, AdminError>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
'life2: 'async_trait,
fn incremental_alter_configs<'life0, 'life1, 'async_trait>(
&'life0 mut self,
ops: &'life1 [IncrementalAlterOp],
) -> Pin<Box<dyn Future<Output = Result<Vec<AlterConfigsOutcome>, AdminError>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
fn alter_user_scram_credentials_sha512<'life0, 'life1, 'life2, 'async_trait>(
&'life0 mut self,
upsertions: &'life1 [ScramUpsertion],
deletions: &'life2 [ScramDeletion],
) -> Pin<Box<dyn Future<Output = Result<Vec<ScramUserOutcome>, AdminError>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
'life2: 'async_trait,
Sourcefn alter_user_scram_credentials_sha256<'life0, 'life1, 'life2, 'async_trait>(
&'life0 mut self,
upsertions: &'life1 [ScramUpsertion],
deletions: &'life2 [ScramDeletion],
) -> Pin<Box<dyn Future<Output = Result<Vec<ScramUserOutcome>, AdminError>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
'life2: 'async_trait,
fn alter_user_scram_credentials_sha256<'life0, 'life1, 'life2, 'async_trait>(
&'life0 mut self,
upsertions: &'life1 [ScramUpsertion],
deletions: &'life2 [ScramDeletion],
) -> Pin<Box<dyn Future<Output = Result<Vec<ScramUserOutcome>, AdminError>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
'life2: 'async_trait,
SCRAM-SHA-256 sibling of
Self::alter_user_scram_credentials_sha512. The operator
calls this when a KafkaUser.spec.authentication.type == scram-sha-256.
fn describe_acls<'life0, 'life1, 'async_trait>(
&'life0 mut self,
filter: &'life1 AclEntryFilter,
) -> Pin<Box<dyn Future<Output = Result<Vec<AclEntry>, AdminError>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
fn create_acls<'life0, 'life1, 'async_trait>(
&'life0 mut self,
creations: &'life1 [AclEntry],
) -> Pin<Box<dyn Future<Output = Result<Vec<CreateAclOutcome>, AdminError>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
fn delete_acls<'life0, 'life1, 'async_trait>(
&'life0 mut self,
filters: &'life1 [AclEntryFilter],
) -> Pin<Box<dyn Future<Output = Result<Vec<DeleteAclFilterOutcome>, AdminError>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
fn describe_user_quotas<'life0, 'life1, 'async_trait>(
&'life0 mut self,
username: &'life1 str,
) -> Pin<Box<dyn Future<Output = Result<UserQuotaConfig, AdminError>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
fn alter_user_quotas<'life0, 'life1, 'life2, 'async_trait>(
&'life0 mut self,
username: &'life1 str,
ops: &'life2 [QuotaOp],
validate_only: bool,
) -> Pin<Box<dyn Future<Output = Result<Option<KafkaError>, AdminError>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
'life2: 'async_trait,
fn create_delegation_token_as_owner<'life0, 'life1, 'life2, 'async_trait>(
&'life0 mut self,
owner_principal_name: &'life1 str,
renewers: &'life2 [String],
max_lifetime_ms: i64,
) -> Pin<Box<dyn Future<Output = Result<DelegationToken, AdminError>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
'life2: 'async_trait,
fn renew_delegation_token<'life0, 'life1, 'async_trait>(
&'life0 mut self,
hmac: &'life1 [u8],
) -> Pin<Box<dyn Future<Output = Result<DelegationToken, AdminError>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
fn expire_delegation_token<'life0, 'life1, 'async_trait>(
&'life0 mut self,
hmac: &'life1 [u8],
) -> Pin<Box<dyn Future<Output = Result<(), AdminError>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
fn describe_delegation_tokens_owned_by<'life0, 'life1, 'async_trait>(
&'life0 mut self,
owner_principal: &'life1 str,
) -> Pin<Box<dyn Future<Output = Result<Vec<DelegationToken>, AdminError>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
Dyn Compatibility§
This trait is dyn compatible.
In older versions of Rust, dyn compatibility was called "object safety".