Skip to main content

rocketmq_client_rust/admin/
mq_admin_ext_async.rs

1// Copyright 2023 The RocketMQ Rust Authors
2//
3// Licensed under the Apache License, Version 2.0 (the "License");
4// you may not use this file except in compliance with the License.
5// You may obtain a copy of the License at
6//
7//     http://www.apache.org/licenses/LICENSE-2.0
8//
9// Unless required by applicable law or agreed to in writing, software
10// distributed under the License is distributed on an "AS IS" BASIS,
11// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
12// See the License for the specific language governing permissions and
13// limitations under the License.
14
15use std::collections::HashMap;
16use std::collections::HashSet;
17
18use cheetah_string::CheetahString;
19use rocketmq_common::common::base::plain_access_config::PlainAccessConfig;
20use rocketmq_common::common::config::TopicConfig;
21use rocketmq_common::common::message::message_enum::MessageRequestMode;
22use rocketmq_common::common::message::message_ext::MessageExt;
23use rocketmq_common::common::message::message_queue::MessageQueue;
24#[allow(deprecated)]
25use rocketmq_common::common::tools::broker_operator_result::BrokerOperatorResult;
26#[allow(deprecated)]
27use rocketmq_common::common::tools::message_track::MessageTrack;
28use rocketmq_remoting::protocol::admin::consume_stats::ConsumeStats;
29use rocketmq_remoting::protocol::admin::consume_stats_list::ConsumeStatsList;
30use rocketmq_remoting::protocol::admin::rollback_stats::RollbackStats;
31use rocketmq_remoting::protocol::admin::topic_stats_table::TopicStatsTable;
32use rocketmq_remoting::protocol::body::acl_info::AclInfo;
33use rocketmq_remoting::protocol::body::broker_body::broker_member_group::BrokerMemberGroup;
34use rocketmq_remoting::protocol::body::broker_body::cluster_info::ClusterInfo;
35use rocketmq_remoting::protocol::body::broker_replicas_info::BrokerReplicasInfo;
36use rocketmq_remoting::protocol::body::check_rocksdb_cqwrite_progress_response_body::CheckRocksdbCqWriteResult;
37use rocketmq_remoting::protocol::body::consume_message_directly_result::ConsumeMessageDirectlyResult;
38use rocketmq_remoting::protocol::body::consumer_connection::ConsumerConnection;
39use rocketmq_remoting::protocol::body::consumer_running_info::ConsumerRunningInfo;
40use rocketmq_remoting::protocol::body::epoch_entry_cache::EpochEntryCache;
41use rocketmq_remoting::protocol::body::get_broker_lite_info_response_body::GetBrokerLiteInfoResponseBody;
42use rocketmq_remoting::protocol::body::get_lite_client_info_response_body::GetLiteClientInfoResponseBody;
43use rocketmq_remoting::protocol::body::get_lite_group_info_response_body::GetLiteGroupInfoResponseBody;
44use rocketmq_remoting::protocol::body::get_lite_topic_info_response_body::GetLiteTopicInfoResponseBody;
45use rocketmq_remoting::protocol::body::get_parent_topic_info_response_body::GetParentTopicInfoResponseBody;
46use rocketmq_remoting::protocol::body::group_list::GroupList;
47use rocketmq_remoting::protocol::body::ha_runtime_info::HARuntimeInfo;
48use rocketmq_remoting::protocol::body::kv_table::KVTable;
49use rocketmq_remoting::protocol::body::producer_connection::ProducerConnection;
50use rocketmq_remoting::protocol::body::producer_table_info::ProducerTableInfo;
51use rocketmq_remoting::protocol::body::query_consume_queue_response_body::QueryConsumeQueueResponseBody;
52use rocketmq_remoting::protocol::body::queue_time_span::QueueTimeSpan;
53use rocketmq_remoting::protocol::body::subscription_group_wrapper::SubscriptionGroupWrapper;
54use rocketmq_remoting::protocol::body::topic::topic_list::TopicList;
55use rocketmq_remoting::protocol::body::topic_info_wrapper::TopicConfigSerializeWrapper;
56use rocketmq_remoting::protocol::body::user_info::UserInfo;
57use rocketmq_remoting::protocol::header::elect_master_response_header::ElectMasterResponseHeader;
58use rocketmq_remoting::protocol::header::get_meta_data_response_header::GetMetaDataResponseHeader;
59use rocketmq_remoting::protocol::heartbeat::subscription_data::SubscriptionData;
60use rocketmq_remoting::protocol::route::topic_route_data::TopicRouteData;
61use rocketmq_remoting::protocol::static_topic::topic_queue_mapping_detail::TopicQueueMappingDetail;
62use rocketmq_remoting::protocol::subscription::broker_stats_data::BrokerStatsData;
63use rocketmq_remoting::protocol::subscription::group_forbidden::GroupForbidden;
64use rocketmq_remoting::protocol::subscription::subscription_group_config::SubscriptionGroupConfig;
65
66use crate::common::admin_tool_result::AdminToolResult;
67
68#[allow(dead_code)]
69#[allow(async_fn_in_trait)]
70pub trait MQAdminExt: Send {
71    async fn start(&mut self) -> rocketmq_error::RocketMQResult<()>;
72    async fn shutdown(&mut self);
73    async fn add_broker_to_container(
74        &self,
75        broker_container_addr: CheetahString,
76        broker_config: CheetahString,
77    ) -> rocketmq_error::RocketMQResult<()>;
78
79    async fn remove_broker_from_container(
80        &self,
81        broker_container_addr: CheetahString,
82        cluster_name: CheetahString,
83        broker_name: CheetahString,
84        broker_id: u64,
85    ) -> rocketmq_error::RocketMQResult<()>;
86
87    async fn update_broker_config(
88        &self,
89        broker_addr: CheetahString,
90        properties: HashMap<CheetahString, CheetahString>,
91    ) -> rocketmq_error::RocketMQResult<()>;
92
93    async fn get_broker_config(
94        &self,
95        broker_addr: CheetahString,
96    ) -> rocketmq_error::RocketMQResult<HashMap<CheetahString, CheetahString>>;
97
98    async fn create_and_update_topic_config(
99        &self,
100        addr: CheetahString,
101        config: TopicConfig,
102    ) -> rocketmq_error::RocketMQResult<()>;
103
104    async fn create_and_update_topic_config_list(
105        &self,
106        addr: CheetahString,
107        topic_config_list: Vec<TopicConfig>,
108    ) -> rocketmq_error::RocketMQResult<()>;
109
110    async fn create_and_update_plain_access_config(
111        &self,
112        addr: CheetahString,
113        config: PlainAccessConfig,
114    ) -> rocketmq_error::RocketMQResult<()>;
115
116    async fn delete_plain_access_config(
117        &self,
118        addr: CheetahString,
119        access_key: CheetahString,
120    ) -> rocketmq_error::RocketMQResult<()>;
121
122    async fn update_global_white_addr_config(
123        &self,
124        addr: CheetahString,
125        global_white_addrs: CheetahString,
126        acl_file_full_path: Option<CheetahString>,
127    ) -> rocketmq_error::RocketMQResult<()>;
128
129    async fn examine_broker_cluster_acl_version_info(
130        &self,
131        addr: CheetahString,
132    ) -> rocketmq_error::RocketMQResult<CheetahString>;
133
134    async fn create_and_update_subscription_group_config(
135        &self,
136        addr: CheetahString,
137        config: SubscriptionGroupConfig,
138    ) -> rocketmq_error::RocketMQResult<()>;
139
140    async fn create_and_update_subscription_group_config_list(
141        &self,
142        broker_addr: CheetahString,
143        configs: Vec<SubscriptionGroupConfig>,
144    ) -> rocketmq_error::RocketMQResult<()>;
145
146    async fn examine_subscription_group_config(
147        &self,
148        addr: CheetahString,
149        group: CheetahString,
150    ) -> rocketmq_error::RocketMQResult<SubscriptionGroupConfig>;
151
152    async fn examine_topic_stats(
153        &self,
154        topic: CheetahString,
155        broker_addr: Option<CheetahString>,
156    ) -> rocketmq_error::RocketMQResult<TopicStatsTable>;
157
158    async fn examine_topic_stats_concurrent(&self, topic: CheetahString) -> AdminToolResult<TopicStatsTable>;
159
160    async fn fetch_all_topic_list(&self) -> rocketmq_error::RocketMQResult<TopicList>;
161
162    async fn fetch_topics_by_cluster(&self, cluster_name: CheetahString) -> rocketmq_error::RocketMQResult<TopicList>;
163
164    async fn fetch_broker_runtime_stats(&self, broker_addr: CheetahString) -> rocketmq_error::RocketMQResult<KVTable>;
165
166    async fn examine_consume_stats(
167        &self,
168        consumer_group: CheetahString,
169        topic: Option<CheetahString>,
170        cluster_name: Option<CheetahString>,
171        broker_addr: Option<CheetahString>,
172        timeout_millis: Option<u64>,
173    ) -> rocketmq_error::RocketMQResult<ConsumeStats>;
174
175    async fn check_rocksdb_cq_write_progress(
176        &self,
177        broker_addr: CheetahString,
178        topic: CheetahString,
179        check_store_time: i64,
180    ) -> rocketmq_error::RocketMQResult<CheckRocksdbCqWriteResult>;
181
182    async fn examine_broker_cluster_info(&self) -> rocketmq_error::RocketMQResult<ClusterInfo>;
183
184    async fn examine_topic_route_info(
185        &self,
186        topic: CheetahString,
187    ) -> rocketmq_error::RocketMQResult<Option<TopicRouteData>>;
188
189    async fn examine_consumer_connection_info(
190        &self,
191        consumer_group: CheetahString,
192        broker_addr: Option<CheetahString>,
193    ) -> rocketmq_error::RocketMQResult<ConsumerConnection>;
194
195    async fn examine_producer_connection_info(
196        &self,
197        producer_group: CheetahString,
198        topic: CheetahString,
199    ) -> rocketmq_error::RocketMQResult<ProducerConnection>;
200
201    async fn get_all_producer_info(
202        &self,
203        broker_addr: CheetahString,
204    ) -> rocketmq_error::RocketMQResult<ProducerTableInfo>;
205
206    async fn get_name_server_address_list(&self) -> Vec<CheetahString>;
207
208    async fn wipe_write_perm_of_broker(
209        &self,
210        namesrv_addr: CheetahString,
211        broker_name: CheetahString,
212    ) -> rocketmq_error::RocketMQResult<i32>;
213
214    async fn add_write_perm_of_broker(
215        &self,
216        namesrv_addr: CheetahString,
217        broker_name: CheetahString,
218    ) -> rocketmq_error::RocketMQResult<i32>;
219
220    async fn put_kv_config(&self, namespace: CheetahString, key: CheetahString, value: CheetahString);
221
222    async fn get_kv_config(
223        &self,
224        namespace: CheetahString,
225        key: CheetahString,
226    ) -> rocketmq_error::RocketMQResult<CheetahString>;
227
228    async fn get_kv_list_by_namespace(&self, namespace: CheetahString) -> rocketmq_error::RocketMQResult<KVTable>;
229
230    async fn delete_topic(
231        &self,
232        topic_name: CheetahString,
233        cluster_name: CheetahString,
234    ) -> rocketmq_error::RocketMQResult<()>;
235
236    async fn delete_topic_in_broker(
237        &self,
238        addrs: HashSet<CheetahString>,
239        topic: CheetahString,
240    ) -> rocketmq_error::RocketMQResult<()>;
241    #[allow(deprecated)]
242    async fn delete_topic_in_broker_concurrent(
243        &self,
244        addrs: HashSet<CheetahString>,
245        topic: CheetahString,
246    ) -> AdminToolResult<BrokerOperatorResult>;
247
248    async fn delete_topic_in_name_server(
249        &self,
250        addrs: HashSet<CheetahString>,
251        cluster_name: Option<CheetahString>,
252        topic: CheetahString,
253    ) -> rocketmq_error::RocketMQResult<()>;
254
255    async fn delete_subscription_group(
256        &self,
257        addr: CheetahString,
258        group_name: CheetahString,
259        remove_offset: Option<bool>,
260    ) -> rocketmq_error::RocketMQResult<()>;
261
262    async fn create_and_update_kv_config(
263        &self,
264        namespace: CheetahString,
265        key: CheetahString,
266        value: CheetahString,
267    ) -> rocketmq_error::RocketMQResult<()>;
268
269    async fn delete_kv_config(
270        &self,
271        namespace: CheetahString,
272        key: CheetahString,
273    ) -> rocketmq_error::RocketMQResult<()>;
274
275    async fn reset_offset_by_timestamp_old(
276        &self,
277        cluster_name: Option<CheetahString>,
278        consumer_group: CheetahString,
279        topic: CheetahString,
280        timestamp: u64,
281        force: bool,
282    ) -> rocketmq_error::RocketMQResult<Vec<RollbackStats>>;
283
284    async fn reset_offset_by_timestamp(
285        &self,
286        cluster_name: Option<CheetahString>,
287        topic: CheetahString,
288        group: CheetahString,
289        timestamp: u64,
290        is_force: bool,
291    ) -> rocketmq_error::RocketMQResult<HashMap<MessageQueue, u64>>;
292
293    async fn reset_offset_new(
294        &self,
295        consumer_group: CheetahString,
296        topic: CheetahString,
297        timestamp: u64,
298    ) -> rocketmq_error::RocketMQResult<()>;
299    #[allow(deprecated)]
300    async fn reset_offset_new_concurrent(
301        &self,
302        group: CheetahString,
303        topic: CheetahString,
304        timestamp: u64,
305    ) -> AdminToolResult<BrokerOperatorResult>;
306
307    async fn get_consume_status(
308        &self,
309        topic: CheetahString,
310        group: CheetahString,
311        client_addr: CheetahString,
312    ) -> rocketmq_error::RocketMQResult<HashMap<CheetahString, HashMap<MessageQueue, u64>>>;
313
314    async fn create_or_update_order_conf(
315        &self,
316        key: CheetahString,
317        value: CheetahString,
318        is_cluster: bool,
319    ) -> rocketmq_error::RocketMQResult<()>;
320
321    async fn query_topic_consume_by_who(&self, topic: CheetahString) -> rocketmq_error::RocketMQResult<GroupList>;
322
323    async fn query_topics_by_consumer(&self, group: CheetahString) -> rocketmq_error::RocketMQResult<TopicList>;
324
325    async fn query_topics_by_consumer_concurrent(&self, group: CheetahString) -> AdminToolResult<TopicList>;
326
327    async fn query_subscription(
328        &self,
329        group: CheetahString,
330        topic: CheetahString,
331    ) -> rocketmq_error::RocketMQResult<SubscriptionData>;
332
333    async fn query_consume_time_span(
334        &self,
335        topic: CheetahString,
336        group: CheetahString,
337    ) -> rocketmq_error::RocketMQResult<Vec<QueueTimeSpan>>;
338
339    async fn query_consume_time_span_concurrent(
340        &self,
341        topic: CheetahString,
342        group: CheetahString,
343    ) -> AdminToolResult<Vec<QueueTimeSpan>>;
344
345    async fn clean_expired_consumer_queue(
346        &self,
347        cluster: Option<CheetahString>,
348        addr: Option<CheetahString>,
349    ) -> rocketmq_error::RocketMQResult<bool>;
350
351    async fn clean_expired_consumer_queue_by_addr(&self, addr: CheetahString) -> rocketmq_error::RocketMQResult<bool>;
352
353    async fn delete_expired_commit_log(
354        &self,
355        cluster: Option<CheetahString>,
356        addr: Option<CheetahString>,
357    ) -> rocketmq_error::RocketMQResult<bool>;
358
359    async fn delete_expired_commit_log_by_addr(&self, addr: CheetahString) -> rocketmq_error::RocketMQResult<bool>;
360
361    async fn clean_unused_topic(
362        &self,
363        cluster: Option<CheetahString>,
364        addr: Option<CheetahString>,
365    ) -> rocketmq_error::RocketMQResult<bool>;
366
367    async fn clean_unused_topic_by_addr(&self, addr: CheetahString) -> rocketmq_error::RocketMQResult<bool>;
368
369    async fn get_consumer_running_info(
370        &self,
371        consumer_group: CheetahString,
372        client_id: CheetahString,
373        jstack: bool,
374        metrics: Option<bool>,
375    ) -> rocketmq_error::RocketMQResult<ConsumerRunningInfo>;
376
377    async fn consume_message_directly(
378        &self,
379        consumer_group: CheetahString,
380        client_id: CheetahString,
381        topic: CheetahString,
382        msg_id: CheetahString,
383    ) -> rocketmq_error::RocketMQResult<ConsumeMessageDirectlyResult>;
384
385    async fn consume_message_directly_ext(
386        &self,
387        cluster_name: CheetahString,
388        consumer_group: CheetahString,
389        client_id: CheetahString,
390        topic: CheetahString,
391        msg_id: CheetahString,
392    ) -> rocketmq_error::RocketMQResult<ConsumeMessageDirectlyResult>;
393    #[allow(deprecated)]
394    async fn message_track_detail(&self, msg: MessageExt) -> rocketmq_error::RocketMQResult<Vec<MessageTrack>>;
395    #[allow(deprecated)]
396    async fn message_track_detail_concurrent(&self, msg: MessageExt) -> AdminToolResult<Vec<MessageTrack>>;
397
398    async fn clone_group_offset(
399        &self,
400        src_group: CheetahString,
401        dest_group: CheetahString,
402        topic: CheetahString,
403        is_offline: bool,
404    ) -> rocketmq_error::RocketMQResult<()>;
405
406    async fn view_broker_stats_data(
407        &self,
408        broker_addr: CheetahString,
409        stats_name: CheetahString,
410        stats_key: CheetahString,
411    ) -> rocketmq_error::RocketMQResult<BrokerStatsData>;
412
413    async fn get_cluster_list(&self, topic: String) -> rocketmq_error::RocketMQResult<HashSet<CheetahString>>;
414
415    async fn fetch_consume_stats_in_broker(
416        &self,
417        broker_addr: CheetahString,
418        is_order: bool,
419        timeout_millis: u64,
420    ) -> rocketmq_error::RocketMQResult<ConsumeStatsList>;
421
422    async fn get_topic_cluster_list(&self, topic: String) -> rocketmq_error::RocketMQResult<HashSet<CheetahString>>;
423
424    async fn get_all_subscription_group(
425        &self,
426        broker_addr: CheetahString,
427        timeout_millis: u64,
428    ) -> rocketmq_error::RocketMQResult<SubscriptionGroupWrapper>;
429
430    async fn get_user_subscription_group(
431        &self,
432        broker_addr: CheetahString,
433        timeout_millis: u64,
434    ) -> rocketmq_error::RocketMQResult<SubscriptionGroupWrapper>;
435
436    async fn get_all_topic_config(
437        &self,
438        broker_addr: CheetahString,
439        timeout_millis: u64,
440    ) -> rocketmq_error::RocketMQResult<TopicConfigSerializeWrapper>;
441
442    async fn get_user_topic_config(
443        &self,
444        broker_addr: CheetahString,
445        special_topic: bool,
446        timeout_millis: u64,
447    ) -> rocketmq_error::RocketMQResult<TopicConfigSerializeWrapper>;
448
449    async fn update_consume_offset(
450        &self,
451        broker_addr: CheetahString,
452        consume_group: CheetahString,
453        mq: MessageQueue,
454        offset: u64,
455    ) -> rocketmq_error::RocketMQResult<()>;
456
457    async fn update_name_server_config(
458        &self,
459        properties: HashMap<CheetahString, CheetahString>,
460        name_servers: Option<Vec<CheetahString>>,
461    ) -> rocketmq_error::RocketMQResult<()>;
462
463    async fn get_name_server_config(
464        &self,
465        name_servers: Vec<CheetahString>,
466    ) -> rocketmq_error::RocketMQResult<HashMap<CheetahString, HashMap<CheetahString, CheetahString>>>;
467
468    async fn probe_name_server(&self, name_server: CheetahString) -> rocketmq_error::RocketMQResult<()>;
469
470    async fn query_consume_queue(
471        &self,
472        broker_addr: CheetahString,
473        topic: CheetahString,
474        queue_id: i32,
475        index: u64,
476        count: i32,
477        consumer_group: CheetahString,
478    ) -> rocketmq_error::RocketMQResult<QueryConsumeQueueResponseBody>;
479
480    async fn resume_check_half_message(
481        &self,
482        topic: CheetahString,
483        msg_id: CheetahString,
484    ) -> rocketmq_error::RocketMQResult<bool>;
485
486    async fn set_message_request_mode(
487        &self,
488        broker_addr: CheetahString,
489        topic: CheetahString,
490        consumer_group: CheetahString,
491        mode: MessageRequestMode,
492        pop_work_group_size: i32,
493        timeout_millis: u64,
494    ) -> rocketmq_error::RocketMQResult<()>;
495
496    async fn reset_offset_by_queue_id(
497        &self,
498        broker_addr: CheetahString,
499        consumer_group: CheetahString,
500        topic_name: CheetahString,
501        queue_id: i32,
502        reset_offset: u64,
503    ) -> rocketmq_error::RocketMQResult<()>;
504
505    async fn examine_topic_config(
506        &self,
507        addr: CheetahString,
508        topic: CheetahString,
509    ) -> rocketmq_error::RocketMQResult<TopicConfig>;
510
511    async fn create_static_topic(
512        &self,
513        addr: CheetahString,
514        default_topic: CheetahString,
515        topic_config: TopicConfig,
516        mapping_detail: TopicQueueMappingDetail,
517        force: bool,
518    ) -> rocketmq_error::RocketMQResult<()>;
519
520    async fn update_and_get_group_read_forbidden(
521        &self,
522        broker_addr: CheetahString,
523        group_name: CheetahString,
524        topic_name: CheetahString,
525        readable: Option<bool>,
526    ) -> rocketmq_error::RocketMQResult<GroupForbidden>;
527
528    async fn query_message(
529        &self,
530        cluster_name: CheetahString,
531        topic: CheetahString,
532        msg_id: CheetahString,
533    ) -> rocketmq_error::RocketMQResult<MessageExt>;
534
535    async fn get_broker_ha_status(&self, broker_addr: CheetahString) -> rocketmq_error::RocketMQResult<HARuntimeInfo>;
536
537    async fn get_in_sync_state_data(
538        &self,
539        controller_address: CheetahString,
540        brokers: Vec<CheetahString>,
541    ) -> rocketmq_error::RocketMQResult<BrokerReplicasInfo>;
542
543    async fn get_broker_epoch_cache(
544        &self,
545        broker_addr: CheetahString,
546    ) -> rocketmq_error::RocketMQResult<EpochEntryCache>;
547
548    async fn get_controller_meta_data(
549        &self,
550        controller_addr: CheetahString,
551    ) -> rocketmq_error::RocketMQResult<GetMetaDataResponseHeader>;
552
553    async fn reset_master_flush_offset(
554        &self,
555        broker_addr: CheetahString,
556        master_flush_offset: u64,
557    ) -> rocketmq_error::RocketMQResult<()>;
558
559    async fn get_controller_config(
560        &self,
561        controller_servers: Vec<CheetahString>,
562    ) -> rocketmq_error::RocketMQResult<HashMap<CheetahString, HashMap<CheetahString, CheetahString>>>;
563
564    async fn update_controller_config(
565        &self,
566        properties: HashMap<CheetahString, CheetahString>,
567        controllers: Vec<CheetahString>,
568    ) -> rocketmq_error::RocketMQResult<()>;
569
570    async fn elect_master(
571        &self,
572        controller_addr: CheetahString,
573        cluster_name: CheetahString,
574        broker_name: CheetahString,
575        broker_id: Option<u64>,
576    ) -> rocketmq_error::RocketMQResult<(ElectMasterResponseHeader, BrokerMemberGroup)>;
577
578    async fn clean_controller_broker_data(
579        &self,
580        controller_addr: CheetahString,
581        cluster_name: CheetahString,
582        broker_name: CheetahString,
583        broker_controller_ids_to_clean: Option<CheetahString>,
584        is_clean_living_broker: bool,
585    ) -> rocketmq_error::RocketMQResult<()>;
586
587    async fn update_cold_data_flow_ctr_group_config(
588        &self,
589        broker_addr: CheetahString,
590        properties: HashMap<CheetahString, CheetahString>,
591    ) -> rocketmq_error::RocketMQResult<()>;
592
593    async fn remove_cold_data_flow_ctr_group_config(
594        &self,
595        broker_addr: CheetahString,
596        consumer_group: CheetahString,
597    ) -> rocketmq_error::RocketMQResult<()>;
598
599    async fn get_cold_data_flow_ctr_info(
600        &self,
601        broker_addr: CheetahString,
602    ) -> rocketmq_error::RocketMQResult<CheetahString>;
603
604    async fn set_commit_log_read_ahead_mode(
605        &self,
606        broker_addr: CheetahString,
607        mode: CheetahString,
608    ) -> rocketmq_error::RocketMQResult<CheetahString>;
609
610    async fn create_user(
611        &self,
612        broker_addr: CheetahString,
613        username: CheetahString,
614        password: CheetahString,
615        user_type: CheetahString,
616    ) -> rocketmq_error::RocketMQResult<()>;
617
618    async fn create_user_with_info(
619        &self,
620        broker_addr: CheetahString,
621        username: CheetahString,
622        password: CheetahString,
623    ) -> rocketmq_error::RocketMQResult<()>;
624
625    async fn update_user(
626        &self,
627        broker_addr: CheetahString,
628        username: CheetahString,
629        password: CheetahString,
630        user_type: CheetahString,
631        user_status: CheetahString,
632    ) -> rocketmq_error::RocketMQResult<()>;
633
634    async fn update_user_with_info(
635        &self,
636        broker_addr: CheetahString,
637        username: CheetahString,
638        password: CheetahString,
639    ) -> rocketmq_error::RocketMQResult<()>;
640
641    async fn delete_user(
642        &self,
643        broker_addr: CheetahString,
644        username: CheetahString,
645    ) -> rocketmq_error::RocketMQResult<()>;
646
647    async fn get_user(
648        &self,
649        broker_addr: CheetahString,
650        username: CheetahString,
651    ) -> rocketmq_error::RocketMQResult<Option<UserInfo>>;
652
653    async fn list_users(
654        &self,
655        broker_addr: CheetahString,
656        filter: CheetahString,
657    ) -> rocketmq_error::RocketMQResult<Vec<UserInfo>>;
658
659    async fn list_user(
660        &self,
661        broker_addr: CheetahString,
662        filter: CheetahString,
663    ) -> rocketmq_error::RocketMQResult<Vec<UserInfo>> {
664        self.list_users(broker_addr, filter).await
665    }
666
667    async fn create_acl(
668        &self,
669        broker_addr: CheetahString,
670        subject: CheetahString,
671        resources: Vec<CheetahString>,
672        actions: Vec<CheetahString>,
673        source_ips: Vec<CheetahString>,
674        decision: CheetahString,
675    ) -> rocketmq_error::RocketMQResult<()>;
676
677    async fn create_acl_with_info(
678        &self,
679        broker_addr: CheetahString,
680        subject: CheetahString,
681    ) -> rocketmq_error::RocketMQResult<()>;
682
683    async fn update_acl(
684        &self,
685        broker_addr: CheetahString,
686        subject: CheetahString,
687        resources: Vec<CheetahString>,
688        actions: Vec<CheetahString>,
689        source_ips: Vec<CheetahString>,
690        decision: CheetahString,
691    ) -> rocketmq_error::RocketMQResult<()>;
692
693    async fn update_acl_with_info(
694        &self,
695        broker_addr: CheetahString,
696        subject: CheetahString,
697    ) -> rocketmq_error::RocketMQResult<()>;
698
699    async fn delete_acl(
700        &self,
701        broker_addr: CheetahString,
702        subject: CheetahString,
703        resource: CheetahString,
704    ) -> rocketmq_error::RocketMQResult<()>;
705
706    async fn get_acl(
707        &self,
708        broker_addr: CheetahString,
709        subject: CheetahString,
710    ) -> rocketmq_error::RocketMQResult<AclInfo>;
711
712    async fn list_acl(
713        &self,
714        broker_addr: CheetahString,
715        subject_filter: CheetahString,
716        resource_filter: CheetahString,
717    ) -> rocketmq_error::RocketMQResult<Vec<AclInfo>>;
718
719    async fn create_lite_pull_topic(
720        &self,
721        addr: CheetahString,
722        topic: CheetahString,
723        queue_num: i32,
724        topic_sys_flag: i32,
725        read_queue_nums: i32,
726        write_queue_nums: i32,
727    ) -> rocketmq_error::RocketMQResult<()>;
728
729    async fn update_lite_pull_topic(
730        &self,
731        addr: CheetahString,
732        topic: CheetahString,
733        read_queue_nums: i32,
734        write_queue_nums: i32,
735    ) -> rocketmq_error::RocketMQResult<()>;
736
737    async fn get_lite_pull_topic(
738        &self,
739        addr: CheetahString,
740        topic: CheetahString,
741    ) -> rocketmq_error::RocketMQResult<TopicConfig>;
742
743    async fn delete_lite_pull_topic(
744        &self,
745        addr: CheetahString,
746        cluster_name: CheetahString,
747        topic: CheetahString,
748    ) -> rocketmq_error::RocketMQResult<()>;
749
750    async fn query_lite_pull_topic_list(&self, addr: CheetahString) -> rocketmq_error::RocketMQResult<TopicList>;
751
752    async fn query_lite_pull_topic_by_cluster(
753        &self,
754        cluster_name: CheetahString,
755    ) -> rocketmq_error::RocketMQResult<TopicList>;
756
757    async fn query_lite_pull_subscription_list(
758        &self,
759        addr: CheetahString,
760        topic: CheetahString,
761    ) -> rocketmq_error::RocketMQResult<GroupList>;
762
763    async fn update_lite_pull_consumer_offset(
764        &self,
765        addr: CheetahString,
766        topic: CheetahString,
767        group: CheetahString,
768        queue_id: i32,
769        offset: u64,
770    ) -> rocketmq_error::RocketMQResult<()>;
771
772    async fn examine_consume_stats_with_queue(
773        &self,
774        consumer_group: CheetahString,
775        topic: Option<CheetahString>,
776        queue_id: Option<i32>,
777    ) -> rocketmq_error::RocketMQResult<ConsumeStats>;
778
779    async fn examine_consume_stats_concurrent(
780        &self,
781        consumer_group: CheetahString,
782        topic: Option<CheetahString>,
783    ) -> AdminToolResult<ConsumeStats>;
784
785    async fn examine_consume_stats_concurrent_with_cluster(
786        &self,
787        consumer_group: CheetahString,
788        topic: Option<CheetahString>,
789        cluster_name: Option<CheetahString>,
790    ) -> AdminToolResult<ConsumeStats>;
791
792    async fn export_rocksdb_consumer_offset_to_json(
793        &self,
794        broker_addr: CheetahString,
795        file_path: CheetahString,
796    ) -> rocketmq_error::RocketMQResult<()>;
797
798    async fn export_rocksdb_consumer_offset_from_memory(
799        &self,
800        broker_addr: CheetahString,
801    ) -> rocketmq_error::RocketMQResult<CheetahString>;
802
803    async fn sync_broker_member_group(
804        &self,
805        controller_addr: CheetahString,
806        cluster_name: CheetahString,
807        broker_name: CheetahString,
808    ) -> rocketmq_error::RocketMQResult<()>;
809
810    async fn get_topic_config_by_topic_name(
811        &self,
812        broker_addr: CheetahString,
813        topic_name: CheetahString,
814    ) -> rocketmq_error::RocketMQResult<TopicConfig>;
815
816    async fn notify_min_broker_id_changed(
817        &self,
818        cluster_name: CheetahString,
819        broker_name: CheetahString,
820        min_broker_id: u64,
821        min_broker_addr: CheetahString,
822        offline_broker_addr: Option<CheetahString>,
823        ha_broker_addr: Option<CheetahString>,
824    ) -> rocketmq_error::RocketMQResult<()>;
825
826    async fn get_topic_stats_info(
827        &self,
828        broker_addr: CheetahString,
829        topic: CheetahString,
830    ) -> rocketmq_error::RocketMQResult<TopicStatsTable>;
831
832    async fn query_broker_has_topic(
833        &self,
834        broker_addr: CheetahString,
835        topic: CheetahString,
836    ) -> rocketmq_error::RocketMQResult<bool>;
837
838    async fn get_system_topic_list_from_broker(
839        &self,
840        broker_addr: CheetahString,
841    ) -> rocketmq_error::RocketMQResult<TopicList>;
842
843    async fn examine_topic_route_info_with_timeout(
844        &self,
845        topic: CheetahString,
846        timeout_millis: u64,
847    ) -> rocketmq_error::RocketMQResult<Option<TopicRouteData>>;
848
849    async fn export_pop_records(&self, broker_addr: CheetahString, timeout: u64) -> rocketmq_error::RocketMQResult<()>;
850
851    async fn switch_timer_engine(
852        &self,
853        broker_addr: CheetahString,
854        des_timer_engine: CheetahString,
855    ) -> rocketmq_error::RocketMQResult<()>;
856
857    async fn get_broker_lite_info(
858        &self,
859        broker_addr: CheetahString,
860    ) -> rocketmq_error::RocketMQResult<GetBrokerLiteInfoResponseBody>;
861
862    async fn get_parent_topic_info(
863        &self,
864        broker_addr: CheetahString,
865        topic: CheetahString,
866    ) -> rocketmq_error::RocketMQResult<GetParentTopicInfoResponseBody>;
867
868    async fn get_lite_topic_info(
869        &self,
870        broker_addr: CheetahString,
871        parent_topic: CheetahString,
872        lite_topic: CheetahString,
873    ) -> rocketmq_error::RocketMQResult<GetLiteTopicInfoResponseBody>;
874
875    async fn get_lite_client_info(
876        &self,
877        broker_addr: CheetahString,
878        parent_topic: CheetahString,
879        group: CheetahString,
880        client_id: CheetahString,
881    ) -> rocketmq_error::RocketMQResult<GetLiteClientInfoResponseBody>;
882
883    async fn get_lite_group_info(
884        &self,
885        broker_addr: CheetahString,
886        group: CheetahString,
887        lite_topic: CheetahString,
888        top_k: i32,
889    ) -> rocketmq_error::RocketMQResult<GetLiteGroupInfoResponseBody>;
890
891    async fn trigger_lite_dispatch(
892        &self,
893        broker_addr: CheetahString,
894        group: CheetahString,
895        client_id: CheetahString,
896    ) -> rocketmq_error::RocketMQResult<()>;
897
898    async fn export_rocksdb_config_to_json(
899        &self,
900        broker_addr: CheetahString,
901        config_types: Vec<CheetahString>,
902    ) -> rocketmq_error::RocketMQResult<()>;
903
904    async fn search_offset(
905        &self,
906        broker_addr: CheetahString,
907        topic_name: CheetahString,
908        queue_id: i32,
909        timestamp: u64,
910        timeout_millis: u64,
911    ) -> rocketmq_error::RocketMQResult<u64>;
912
913    async fn min_offset(
914        &self,
915        broker_addr: CheetahString,
916        message_queue: MessageQueue,
917        timeout_millis: u64,
918    ) -> rocketmq_error::RocketMQResult<i64>;
919
920    async fn max_offset(
921        &self,
922        broker_addr: CheetahString,
923        message_queue: MessageQueue,
924        timeout_millis: u64,
925    ) -> rocketmq_error::RocketMQResult<i64>;
926}
927
928#[allow(deprecated)]
929impl MQAdminExt for crate::admin::default_mq_admin_ext::DefaultMQAdminExt {
930    async fn start(&mut self) -> rocketmq_error::RocketMQResult<()> {
931        MQAdminExt::start(self.inner_mut().as_mut()).await
932    }
933
934    async fn shutdown(&mut self) {
935        MQAdminExt::shutdown(self.inner_mut().as_mut()).await
936    }
937
938    async fn add_broker_to_container(
939        &self,
940        broker_container_addr: CheetahString,
941        broker_config: CheetahString,
942    ) -> rocketmq_error::RocketMQResult<()> {
943        MQAdminExt::add_broker_to_container(self.inner().as_ref(), broker_container_addr, broker_config).await
944    }
945
946    async fn remove_broker_from_container(
947        &self,
948        broker_container_addr: CheetahString,
949        cluster_name: CheetahString,
950        broker_name: CheetahString,
951        broker_id: u64,
952    ) -> rocketmq_error::RocketMQResult<()> {
953        MQAdminExt::remove_broker_from_container(
954            self.inner().as_ref(),
955            broker_container_addr,
956            cluster_name,
957            broker_name,
958            broker_id,
959        )
960        .await
961    }
962
963    async fn update_broker_config(
964        &self,
965        broker_addr: CheetahString,
966        properties: HashMap<CheetahString, CheetahString>,
967    ) -> rocketmq_error::RocketMQResult<()> {
968        MQAdminExt::update_broker_config(self.inner().as_ref(), broker_addr, properties).await
969    }
970
971    async fn get_broker_config(
972        &self,
973        broker_addr: CheetahString,
974    ) -> rocketmq_error::RocketMQResult<HashMap<CheetahString, CheetahString>> {
975        MQAdminExt::get_broker_config(self.inner().as_ref(), broker_addr).await
976    }
977
978    async fn create_and_update_topic_config(
979        &self,
980        addr: CheetahString,
981        config: TopicConfig,
982    ) -> rocketmq_error::RocketMQResult<()> {
983        MQAdminExt::create_and_update_topic_config(self.inner().as_ref(), addr, config).await
984    }
985
986    async fn create_and_update_topic_config_list(
987        &self,
988        addr: CheetahString,
989        topic_config_list: Vec<TopicConfig>,
990    ) -> rocketmq_error::RocketMQResult<()> {
991        MQAdminExt::create_and_update_topic_config_list(self.inner().as_ref(), addr, topic_config_list).await
992    }
993
994    async fn create_and_update_plain_access_config(
995        &self,
996        addr: CheetahString,
997        config: PlainAccessConfig,
998    ) -> rocketmq_error::RocketMQResult<()> {
999        MQAdminExt::create_and_update_plain_access_config(self.inner().as_ref(), addr, config).await
1000    }
1001
1002    async fn delete_plain_access_config(
1003        &self,
1004        addr: CheetahString,
1005        access_key: CheetahString,
1006    ) -> rocketmq_error::RocketMQResult<()> {
1007        MQAdminExt::delete_plain_access_config(self.inner().as_ref(), addr, access_key).await
1008    }
1009
1010    async fn update_global_white_addr_config(
1011        &self,
1012        addr: CheetahString,
1013        global_white_addrs: CheetahString,
1014        acl_file_full_path: Option<CheetahString>,
1015    ) -> rocketmq_error::RocketMQResult<()> {
1016        MQAdminExt::update_global_white_addr_config(self.inner().as_ref(), addr, global_white_addrs, acl_file_full_path)
1017            .await
1018    }
1019
1020    async fn examine_broker_cluster_acl_version_info(
1021        &self,
1022        addr: CheetahString,
1023    ) -> rocketmq_error::RocketMQResult<CheetahString> {
1024        MQAdminExt::examine_broker_cluster_acl_version_info(self.inner().as_ref(), addr).await
1025    }
1026
1027    async fn create_and_update_subscription_group_config(
1028        &self,
1029        addr: CheetahString,
1030        config: SubscriptionGroupConfig,
1031    ) -> rocketmq_error::RocketMQResult<()> {
1032        MQAdminExt::create_and_update_subscription_group_config(self.inner().as_ref(), addr, config).await
1033    }
1034
1035    async fn create_and_update_subscription_group_config_list(
1036        &self,
1037        broker_addr: CheetahString,
1038        configs: Vec<SubscriptionGroupConfig>,
1039    ) -> rocketmq_error::RocketMQResult<()> {
1040        MQAdminExt::create_and_update_subscription_group_config_list(self.inner().as_ref(), broker_addr, configs).await
1041    }
1042
1043    async fn examine_subscription_group_config(
1044        &self,
1045        addr: CheetahString,
1046        group: CheetahString,
1047    ) -> rocketmq_error::RocketMQResult<SubscriptionGroupConfig> {
1048        MQAdminExt::examine_subscription_group_config(self.inner().as_ref(), addr, group).await
1049    }
1050
1051    async fn examine_topic_stats(
1052        &self,
1053        topic: CheetahString,
1054        broker_addr: Option<CheetahString>,
1055    ) -> rocketmq_error::RocketMQResult<TopicStatsTable> {
1056        MQAdminExt::examine_topic_stats(self.inner().as_ref(), topic, broker_addr).await
1057    }
1058
1059    async fn examine_topic_stats_concurrent(&self, topic: CheetahString) -> AdminToolResult<TopicStatsTable> {
1060        MQAdminExt::examine_topic_stats_concurrent(self.inner().as_ref(), topic).await
1061    }
1062
1063    async fn fetch_all_topic_list(&self) -> rocketmq_error::RocketMQResult<TopicList> {
1064        MQAdminExt::fetch_all_topic_list(self.inner().as_ref()).await
1065    }
1066
1067    async fn fetch_topics_by_cluster(&self, cluster_name: CheetahString) -> rocketmq_error::RocketMQResult<TopicList> {
1068        MQAdminExt::fetch_topics_by_cluster(self.inner().as_ref(), cluster_name).await
1069    }
1070
1071    async fn fetch_broker_runtime_stats(&self, broker_addr: CheetahString) -> rocketmq_error::RocketMQResult<KVTable> {
1072        MQAdminExt::fetch_broker_runtime_stats(self.inner().as_ref(), broker_addr).await
1073    }
1074
1075    async fn examine_consume_stats(
1076        &self,
1077        consumer_group: CheetahString,
1078        topic: Option<CheetahString>,
1079        cluster_name: Option<CheetahString>,
1080        broker_addr: Option<CheetahString>,
1081        timeout_millis: Option<u64>,
1082    ) -> rocketmq_error::RocketMQResult<ConsumeStats> {
1083        MQAdminExt::examine_consume_stats(
1084            self.inner().as_ref(),
1085            consumer_group,
1086            topic,
1087            cluster_name,
1088            broker_addr,
1089            timeout_millis,
1090        )
1091        .await
1092    }
1093
1094    async fn check_rocksdb_cq_write_progress(
1095        &self,
1096        broker_addr: CheetahString,
1097        topic: CheetahString,
1098        check_store_time: i64,
1099    ) -> rocketmq_error::RocketMQResult<CheckRocksdbCqWriteResult> {
1100        MQAdminExt::check_rocksdb_cq_write_progress(self.inner().as_ref(), broker_addr, topic, check_store_time).await
1101    }
1102
1103    async fn examine_broker_cluster_info(&self) -> rocketmq_error::RocketMQResult<ClusterInfo> {
1104        MQAdminExt::examine_broker_cluster_info(self.inner().as_ref()).await
1105    }
1106
1107    async fn examine_topic_route_info(
1108        &self,
1109        topic: CheetahString,
1110    ) -> rocketmq_error::RocketMQResult<Option<TopicRouteData>> {
1111        MQAdminExt::examine_topic_route_info(self.inner().as_ref(), topic).await
1112    }
1113
1114    async fn examine_consumer_connection_info(
1115        &self,
1116        consumer_group: CheetahString,
1117        broker_addr: Option<CheetahString>,
1118    ) -> rocketmq_error::RocketMQResult<ConsumerConnection> {
1119        MQAdminExt::examine_consumer_connection_info(self.inner().as_ref(), consumer_group, broker_addr).await
1120    }
1121
1122    async fn examine_producer_connection_info(
1123        &self,
1124        producer_group: CheetahString,
1125        topic: CheetahString,
1126    ) -> rocketmq_error::RocketMQResult<ProducerConnection> {
1127        MQAdminExt::examine_producer_connection_info(self.inner().as_ref(), producer_group, topic).await
1128    }
1129
1130    async fn get_all_producer_info(
1131        &self,
1132        broker_addr: CheetahString,
1133    ) -> rocketmq_error::RocketMQResult<ProducerTableInfo> {
1134        MQAdminExt::get_all_producer_info(self.inner().as_ref(), broker_addr).await
1135    }
1136
1137    async fn get_name_server_address_list(&self) -> Vec<CheetahString> {
1138        MQAdminExt::get_name_server_address_list(self.inner().as_ref()).await
1139    }
1140
1141    async fn wipe_write_perm_of_broker(
1142        &self,
1143        namesrv_addr: CheetahString,
1144        broker_name: CheetahString,
1145    ) -> rocketmq_error::RocketMQResult<i32> {
1146        MQAdminExt::wipe_write_perm_of_broker(self.inner().as_ref(), namesrv_addr, broker_name).await
1147    }
1148
1149    async fn add_write_perm_of_broker(
1150        &self,
1151        namesrv_addr: CheetahString,
1152        broker_name: CheetahString,
1153    ) -> rocketmq_error::RocketMQResult<i32> {
1154        MQAdminExt::add_write_perm_of_broker(self.inner().as_ref(), namesrv_addr, broker_name).await
1155    }
1156
1157    async fn put_kv_config(&self, namespace: CheetahString, key: CheetahString, value: CheetahString) {
1158        MQAdminExt::put_kv_config(self.inner().as_ref(), namespace, key, value).await
1159    }
1160
1161    async fn get_kv_config(
1162        &self,
1163        namespace: CheetahString,
1164        key: CheetahString,
1165    ) -> rocketmq_error::RocketMQResult<CheetahString> {
1166        MQAdminExt::get_kv_config(self.inner().as_ref(), namespace, key).await
1167    }
1168
1169    async fn get_kv_list_by_namespace(&self, namespace: CheetahString) -> rocketmq_error::RocketMQResult<KVTable> {
1170        MQAdminExt::get_kv_list_by_namespace(self.inner().as_ref(), namespace).await
1171    }
1172
1173    async fn delete_topic(
1174        &self,
1175        topic_name: CheetahString,
1176        cluster_name: CheetahString,
1177    ) -> rocketmq_error::RocketMQResult<()> {
1178        MQAdminExt::delete_topic(self.inner().as_ref(), topic_name, cluster_name).await
1179    }
1180
1181    async fn delete_topic_in_broker(
1182        &self,
1183        addrs: HashSet<CheetahString>,
1184        topic: CheetahString,
1185    ) -> rocketmq_error::RocketMQResult<()> {
1186        MQAdminExt::delete_topic_in_broker(self.inner().as_ref(), addrs, topic).await
1187    }
1188
1189    #[allow(deprecated)]
1190    async fn delete_topic_in_broker_concurrent(
1191        &self,
1192        addrs: HashSet<CheetahString>,
1193        topic: CheetahString,
1194    ) -> AdminToolResult<BrokerOperatorResult> {
1195        MQAdminExt::delete_topic_in_broker_concurrent(self.inner().as_ref(), addrs, topic).await
1196    }
1197
1198    async fn delete_topic_in_name_server(
1199        &self,
1200        addrs: HashSet<CheetahString>,
1201        cluster_name: Option<CheetahString>,
1202        topic: CheetahString,
1203    ) -> rocketmq_error::RocketMQResult<()> {
1204        MQAdminExt::delete_topic_in_name_server(self.inner().as_ref(), addrs, cluster_name, topic).await
1205    }
1206
1207    async fn delete_subscription_group(
1208        &self,
1209        addr: CheetahString,
1210        group_name: CheetahString,
1211        remove_offset: Option<bool>,
1212    ) -> rocketmq_error::RocketMQResult<()> {
1213        MQAdminExt::delete_subscription_group(self.inner().as_ref(), addr, group_name, remove_offset).await
1214    }
1215
1216    async fn create_and_update_kv_config(
1217        &self,
1218        namespace: CheetahString,
1219        key: CheetahString,
1220        value: CheetahString,
1221    ) -> rocketmq_error::RocketMQResult<()> {
1222        MQAdminExt::create_and_update_kv_config(self.inner().as_ref(), namespace, key, value).await
1223    }
1224
1225    async fn delete_kv_config(
1226        &self,
1227        namespace: CheetahString,
1228        key: CheetahString,
1229    ) -> rocketmq_error::RocketMQResult<()> {
1230        MQAdminExt::delete_kv_config(self.inner().as_ref(), namespace, key).await
1231    }
1232
1233    async fn reset_offset_by_timestamp_old(
1234        &self,
1235        cluster_name: Option<CheetahString>,
1236        consumer_group: CheetahString,
1237        topic: CheetahString,
1238        timestamp: u64,
1239        force: bool,
1240    ) -> rocketmq_error::RocketMQResult<Vec<RollbackStats>> {
1241        MQAdminExt::reset_offset_by_timestamp_old(
1242            self.inner().as_ref(),
1243            cluster_name,
1244            consumer_group,
1245            topic,
1246            timestamp,
1247            force,
1248        )
1249        .await
1250    }
1251
1252    async fn reset_offset_by_timestamp(
1253        &self,
1254        cluster_name: Option<CheetahString>,
1255        topic: CheetahString,
1256        group: CheetahString,
1257        timestamp: u64,
1258        is_force: bool,
1259    ) -> rocketmq_error::RocketMQResult<HashMap<MessageQueue, u64>> {
1260        MQAdminExt::reset_offset_by_timestamp(self.inner().as_ref(), cluster_name, topic, group, timestamp, is_force)
1261            .await
1262    }
1263
1264    async fn reset_offset_new(
1265        &self,
1266        consumer_group: CheetahString,
1267        topic: CheetahString,
1268        timestamp: u64,
1269    ) -> rocketmq_error::RocketMQResult<()> {
1270        MQAdminExt::reset_offset_new(self.inner().as_ref(), consumer_group, topic, timestamp).await
1271    }
1272
1273    #[allow(deprecated)]
1274    async fn reset_offset_new_concurrent(
1275        &self,
1276        group: CheetahString,
1277        topic: CheetahString,
1278        timestamp: u64,
1279    ) -> AdminToolResult<BrokerOperatorResult> {
1280        MQAdminExt::reset_offset_new_concurrent(self.inner().as_ref(), group, topic, timestamp).await
1281    }
1282
1283    async fn get_consume_status(
1284        &self,
1285        topic: CheetahString,
1286        group: CheetahString,
1287        client_addr: CheetahString,
1288    ) -> rocketmq_error::RocketMQResult<HashMap<CheetahString, HashMap<MessageQueue, u64>>> {
1289        MQAdminExt::get_consume_status(self.inner().as_ref(), topic, group, client_addr).await
1290    }
1291
1292    async fn create_or_update_order_conf(
1293        &self,
1294        key: CheetahString,
1295        value: CheetahString,
1296        is_cluster: bool,
1297    ) -> rocketmq_error::RocketMQResult<()> {
1298        MQAdminExt::create_or_update_order_conf(self.inner().as_ref(), key, value, is_cluster).await
1299    }
1300
1301    async fn query_topic_consume_by_who(&self, topic: CheetahString) -> rocketmq_error::RocketMQResult<GroupList> {
1302        MQAdminExt::query_topic_consume_by_who(self.inner().as_ref(), topic).await
1303    }
1304
1305    async fn query_topics_by_consumer(&self, group: CheetahString) -> rocketmq_error::RocketMQResult<TopicList> {
1306        MQAdminExt::query_topics_by_consumer(self.inner().as_ref(), group).await
1307    }
1308
1309    async fn query_topics_by_consumer_concurrent(&self, group: CheetahString) -> AdminToolResult<TopicList> {
1310        MQAdminExt::query_topics_by_consumer_concurrent(self.inner().as_ref(), group).await
1311    }
1312
1313    async fn query_subscription(
1314        &self,
1315        group: CheetahString,
1316        topic: CheetahString,
1317    ) -> rocketmq_error::RocketMQResult<SubscriptionData> {
1318        MQAdminExt::query_subscription(self.inner().as_ref(), group, topic).await
1319    }
1320
1321    async fn query_consume_time_span(
1322        &self,
1323        topic: CheetahString,
1324        group: CheetahString,
1325    ) -> rocketmq_error::RocketMQResult<Vec<QueueTimeSpan>> {
1326        MQAdminExt::query_consume_time_span(self.inner().as_ref(), topic, group).await
1327    }
1328
1329    async fn query_consume_time_span_concurrent(
1330        &self,
1331        topic: CheetahString,
1332        group: CheetahString,
1333    ) -> AdminToolResult<Vec<QueueTimeSpan>> {
1334        MQAdminExt::query_consume_time_span_concurrent(self.inner().as_ref(), topic, group).await
1335    }
1336
1337    async fn clean_expired_consumer_queue(
1338        &self,
1339        cluster: Option<CheetahString>,
1340        addr: Option<CheetahString>,
1341    ) -> rocketmq_error::RocketMQResult<bool> {
1342        MQAdminExt::clean_expired_consumer_queue(self.inner().as_ref(), cluster, addr).await
1343    }
1344
1345    async fn clean_expired_consumer_queue_by_addr(&self, addr: CheetahString) -> rocketmq_error::RocketMQResult<bool> {
1346        MQAdminExt::clean_expired_consumer_queue_by_addr(self.inner().as_ref(), addr).await
1347    }
1348
1349    async fn delete_expired_commit_log(
1350        &self,
1351        cluster: Option<CheetahString>,
1352        addr: Option<CheetahString>,
1353    ) -> rocketmq_error::RocketMQResult<bool> {
1354        MQAdminExt::delete_expired_commit_log(self.inner().as_ref(), cluster, addr).await
1355    }
1356
1357    async fn delete_expired_commit_log_by_addr(&self, addr: CheetahString) -> rocketmq_error::RocketMQResult<bool> {
1358        MQAdminExt::delete_expired_commit_log_by_addr(self.inner().as_ref(), addr).await
1359    }
1360
1361    async fn clean_unused_topic(
1362        &self,
1363        cluster: Option<CheetahString>,
1364        addr: Option<CheetahString>,
1365    ) -> rocketmq_error::RocketMQResult<bool> {
1366        MQAdminExt::clean_unused_topic(self.inner().as_ref(), cluster, addr).await
1367    }
1368
1369    async fn clean_unused_topic_by_addr(&self, addr: CheetahString) -> rocketmq_error::RocketMQResult<bool> {
1370        MQAdminExt::clean_unused_topic_by_addr(self.inner().as_ref(), addr).await
1371    }
1372
1373    async fn get_consumer_running_info(
1374        &self,
1375        consumer_group: CheetahString,
1376        client_id: CheetahString,
1377        jstack: bool,
1378        metrics: Option<bool>,
1379    ) -> rocketmq_error::RocketMQResult<ConsumerRunningInfo> {
1380        MQAdminExt::get_consumer_running_info(self.inner().as_ref(), consumer_group, client_id, jstack, metrics).await
1381    }
1382
1383    async fn consume_message_directly(
1384        &self,
1385        consumer_group: CheetahString,
1386        client_id: CheetahString,
1387        topic: CheetahString,
1388        msg_id: CheetahString,
1389    ) -> rocketmq_error::RocketMQResult<ConsumeMessageDirectlyResult> {
1390        MQAdminExt::consume_message_directly(self.inner().as_ref(), consumer_group, client_id, topic, msg_id).await
1391    }
1392
1393    async fn consume_message_directly_ext(
1394        &self,
1395        cluster_name: CheetahString,
1396        consumer_group: CheetahString,
1397        client_id: CheetahString,
1398        topic: CheetahString,
1399        msg_id: CheetahString,
1400    ) -> rocketmq_error::RocketMQResult<ConsumeMessageDirectlyResult> {
1401        MQAdminExt::consume_message_directly_ext(
1402            self.inner().as_ref(),
1403            cluster_name,
1404            consumer_group,
1405            client_id,
1406            topic,
1407            msg_id,
1408        )
1409        .await
1410    }
1411
1412    #[allow(deprecated)]
1413    async fn message_track_detail(&self, msg: MessageExt) -> rocketmq_error::RocketMQResult<Vec<MessageTrack>> {
1414        MQAdminExt::message_track_detail(self.inner().as_ref(), msg).await
1415    }
1416
1417    #[allow(deprecated)]
1418    async fn message_track_detail_concurrent(&self, msg: MessageExt) -> AdminToolResult<Vec<MessageTrack>> {
1419        MQAdminExt::message_track_detail_concurrent(self.inner().as_ref(), msg).await
1420    }
1421
1422    async fn clone_group_offset(
1423        &self,
1424        src_group: CheetahString,
1425        dest_group: CheetahString,
1426        topic: CheetahString,
1427        is_offline: bool,
1428    ) -> rocketmq_error::RocketMQResult<()> {
1429        MQAdminExt::clone_group_offset(self.inner().as_ref(), src_group, dest_group, topic, is_offline).await
1430    }
1431
1432    async fn view_broker_stats_data(
1433        &self,
1434        broker_addr: CheetahString,
1435        stats_name: CheetahString,
1436        stats_key: CheetahString,
1437    ) -> rocketmq_error::RocketMQResult<BrokerStatsData> {
1438        MQAdminExt::view_broker_stats_data(self.inner().as_ref(), broker_addr, stats_name, stats_key).await
1439    }
1440
1441    async fn get_cluster_list(&self, topic: String) -> rocketmq_error::RocketMQResult<HashSet<CheetahString>> {
1442        MQAdminExt::get_cluster_list(self.inner().as_ref(), topic).await
1443    }
1444
1445    async fn fetch_consume_stats_in_broker(
1446        &self,
1447        broker_addr: CheetahString,
1448        is_order: bool,
1449        timeout_millis: u64,
1450    ) -> rocketmq_error::RocketMQResult<ConsumeStatsList> {
1451        MQAdminExt::fetch_consume_stats_in_broker(self.inner().as_ref(), broker_addr, is_order, timeout_millis).await
1452    }
1453
1454    async fn get_topic_cluster_list(&self, topic: String) -> rocketmq_error::RocketMQResult<HashSet<CheetahString>> {
1455        MQAdminExt::get_topic_cluster_list(self.inner().as_ref(), topic).await
1456    }
1457
1458    async fn get_all_subscription_group(
1459        &self,
1460        broker_addr: CheetahString,
1461        timeout_millis: u64,
1462    ) -> rocketmq_error::RocketMQResult<SubscriptionGroupWrapper> {
1463        MQAdminExt::get_all_subscription_group(self.inner().as_ref(), broker_addr, timeout_millis).await
1464    }
1465
1466    async fn get_user_subscription_group(
1467        &self,
1468        broker_addr: CheetahString,
1469        timeout_millis: u64,
1470    ) -> rocketmq_error::RocketMQResult<SubscriptionGroupWrapper> {
1471        MQAdminExt::get_user_subscription_group(self.inner().as_ref(), broker_addr, timeout_millis).await
1472    }
1473
1474    async fn get_all_topic_config(
1475        &self,
1476        broker_addr: CheetahString,
1477        timeout_millis: u64,
1478    ) -> rocketmq_error::RocketMQResult<TopicConfigSerializeWrapper> {
1479        MQAdminExt::get_all_topic_config(self.inner().as_ref(), broker_addr, timeout_millis).await
1480    }
1481
1482    async fn get_user_topic_config(
1483        &self,
1484        broker_addr: CheetahString,
1485        special_topic: bool,
1486        timeout_millis: u64,
1487    ) -> rocketmq_error::RocketMQResult<TopicConfigSerializeWrapper> {
1488        MQAdminExt::get_user_topic_config(self.inner().as_ref(), broker_addr, special_topic, timeout_millis).await
1489    }
1490
1491    async fn update_consume_offset(
1492        &self,
1493        broker_addr: CheetahString,
1494        consume_group: CheetahString,
1495        mq: MessageQueue,
1496        offset: u64,
1497    ) -> rocketmq_error::RocketMQResult<()> {
1498        MQAdminExt::update_consume_offset(self.inner().as_ref(), broker_addr, consume_group, mq, offset).await
1499    }
1500
1501    async fn update_name_server_config(
1502        &self,
1503        properties: HashMap<CheetahString, CheetahString>,
1504        name_servers: Option<Vec<CheetahString>>,
1505    ) -> rocketmq_error::RocketMQResult<()> {
1506        MQAdminExt::update_name_server_config(self.inner().as_ref(), properties, name_servers).await
1507    }
1508
1509    async fn get_name_server_config(
1510        &self,
1511        name_servers: Vec<CheetahString>,
1512    ) -> rocketmq_error::RocketMQResult<HashMap<CheetahString, HashMap<CheetahString, CheetahString>>> {
1513        MQAdminExt::get_name_server_config(self.inner().as_ref(), name_servers).await
1514    }
1515
1516    async fn probe_name_server(&self, name_server: CheetahString) -> rocketmq_error::RocketMQResult<()> {
1517        MQAdminExt::probe_name_server(self.inner().as_ref(), name_server).await
1518    }
1519
1520    async fn query_consume_queue(
1521        &self,
1522        broker_addr: CheetahString,
1523        topic: CheetahString,
1524        queue_id: i32,
1525        index: u64,
1526        count: i32,
1527        consumer_group: CheetahString,
1528    ) -> rocketmq_error::RocketMQResult<QueryConsumeQueueResponseBody> {
1529        MQAdminExt::query_consume_queue(
1530            self.inner().as_ref(),
1531            broker_addr,
1532            topic,
1533            queue_id,
1534            index,
1535            count,
1536            consumer_group,
1537        )
1538        .await
1539    }
1540
1541    async fn resume_check_half_message(
1542        &self,
1543        topic: CheetahString,
1544        msg_id: CheetahString,
1545    ) -> rocketmq_error::RocketMQResult<bool> {
1546        MQAdminExt::resume_check_half_message(self.inner().as_ref(), topic, msg_id).await
1547    }
1548
1549    async fn set_message_request_mode(
1550        &self,
1551        broker_addr: CheetahString,
1552        topic: CheetahString,
1553        consumer_group: CheetahString,
1554        mode: MessageRequestMode,
1555        pop_work_group_size: i32,
1556        timeout_millis: u64,
1557    ) -> rocketmq_error::RocketMQResult<()> {
1558        MQAdminExt::set_message_request_mode(
1559            self.inner().as_ref(),
1560            broker_addr,
1561            topic,
1562            consumer_group,
1563            mode,
1564            pop_work_group_size,
1565            timeout_millis,
1566        )
1567        .await
1568    }
1569
1570    async fn reset_offset_by_queue_id(
1571        &self,
1572        broker_addr: CheetahString,
1573        consumer_group: CheetahString,
1574        topic_name: CheetahString,
1575        queue_id: i32,
1576        reset_offset: u64,
1577    ) -> rocketmq_error::RocketMQResult<()> {
1578        MQAdminExt::reset_offset_by_queue_id(
1579            self.inner().as_ref(),
1580            broker_addr,
1581            consumer_group,
1582            topic_name,
1583            queue_id,
1584            reset_offset,
1585        )
1586        .await
1587    }
1588
1589    async fn examine_topic_config(
1590        &self,
1591        addr: CheetahString,
1592        topic: CheetahString,
1593    ) -> rocketmq_error::RocketMQResult<TopicConfig> {
1594        MQAdminExt::examine_topic_config(self.inner().as_ref(), addr, topic).await
1595    }
1596
1597    async fn create_static_topic(
1598        &self,
1599        addr: CheetahString,
1600        default_topic: CheetahString,
1601        topic_config: TopicConfig,
1602        mapping_detail: TopicQueueMappingDetail,
1603        force: bool,
1604    ) -> rocketmq_error::RocketMQResult<()> {
1605        MQAdminExt::create_static_topic(
1606            self.inner().as_ref(),
1607            addr,
1608            default_topic,
1609            topic_config,
1610            mapping_detail,
1611            force,
1612        )
1613        .await
1614    }
1615
1616    async fn update_and_get_group_read_forbidden(
1617        &self,
1618        broker_addr: CheetahString,
1619        group_name: CheetahString,
1620        topic_name: CheetahString,
1621        readable: Option<bool>,
1622    ) -> rocketmq_error::RocketMQResult<GroupForbidden> {
1623        MQAdminExt::update_and_get_group_read_forbidden(
1624            self.inner().as_ref(),
1625            broker_addr,
1626            group_name,
1627            topic_name,
1628            readable,
1629        )
1630        .await
1631    }
1632
1633    async fn query_message(
1634        &self,
1635        cluster_name: CheetahString,
1636        topic: CheetahString,
1637        msg_id: CheetahString,
1638    ) -> rocketmq_error::RocketMQResult<MessageExt> {
1639        MQAdminExt::query_message(self.inner().as_ref(), cluster_name, topic, msg_id).await
1640    }
1641
1642    async fn get_broker_ha_status(&self, broker_addr: CheetahString) -> rocketmq_error::RocketMQResult<HARuntimeInfo> {
1643        MQAdminExt::get_broker_ha_status(self.inner().as_ref(), broker_addr).await
1644    }
1645
1646    async fn get_in_sync_state_data(
1647        &self,
1648        controller_address: CheetahString,
1649        brokers: Vec<CheetahString>,
1650    ) -> rocketmq_error::RocketMQResult<BrokerReplicasInfo> {
1651        MQAdminExt::get_in_sync_state_data(self.inner().as_ref(), controller_address, brokers).await
1652    }
1653
1654    async fn get_broker_epoch_cache(
1655        &self,
1656        broker_addr: CheetahString,
1657    ) -> rocketmq_error::RocketMQResult<EpochEntryCache> {
1658        MQAdminExt::get_broker_epoch_cache(self.inner().as_ref(), broker_addr).await
1659    }
1660
1661    async fn get_controller_meta_data(
1662        &self,
1663        controller_addr: CheetahString,
1664    ) -> rocketmq_error::RocketMQResult<GetMetaDataResponseHeader> {
1665        MQAdminExt::get_controller_meta_data(self.inner().as_ref(), controller_addr).await
1666    }
1667
1668    async fn reset_master_flush_offset(
1669        &self,
1670        broker_addr: CheetahString,
1671        master_flush_offset: u64,
1672    ) -> rocketmq_error::RocketMQResult<()> {
1673        MQAdminExt::reset_master_flush_offset(self.inner().as_ref(), broker_addr, master_flush_offset).await
1674    }
1675
1676    async fn get_controller_config(
1677        &self,
1678        controller_servers: Vec<CheetahString>,
1679    ) -> rocketmq_error::RocketMQResult<HashMap<CheetahString, HashMap<CheetahString, CheetahString>>> {
1680        MQAdminExt::get_controller_config(self.inner().as_ref(), controller_servers).await
1681    }
1682
1683    async fn update_controller_config(
1684        &self,
1685        properties: HashMap<CheetahString, CheetahString>,
1686        controllers: Vec<CheetahString>,
1687    ) -> rocketmq_error::RocketMQResult<()> {
1688        MQAdminExt::update_controller_config(self.inner().as_ref(), properties, controllers).await
1689    }
1690
1691    async fn elect_master(
1692        &self,
1693        controller_addr: CheetahString,
1694        cluster_name: CheetahString,
1695        broker_name: CheetahString,
1696        broker_id: Option<u64>,
1697    ) -> rocketmq_error::RocketMQResult<(ElectMasterResponseHeader, BrokerMemberGroup)> {
1698        MQAdminExt::elect_master(
1699            self.inner().as_ref(),
1700            controller_addr,
1701            cluster_name,
1702            broker_name,
1703            broker_id,
1704        )
1705        .await
1706    }
1707
1708    async fn clean_controller_broker_data(
1709        &self,
1710        controller_addr: CheetahString,
1711        cluster_name: CheetahString,
1712        broker_name: CheetahString,
1713        broker_controller_ids_to_clean: Option<CheetahString>,
1714        is_clean_living_broker: bool,
1715    ) -> rocketmq_error::RocketMQResult<()> {
1716        MQAdminExt::clean_controller_broker_data(
1717            self.inner().as_ref(),
1718            controller_addr,
1719            cluster_name,
1720            broker_name,
1721            broker_controller_ids_to_clean,
1722            is_clean_living_broker,
1723        )
1724        .await
1725    }
1726
1727    async fn update_cold_data_flow_ctr_group_config(
1728        &self,
1729        broker_addr: CheetahString,
1730        properties: HashMap<CheetahString, CheetahString>,
1731    ) -> rocketmq_error::RocketMQResult<()> {
1732        MQAdminExt::update_cold_data_flow_ctr_group_config(self.inner().as_ref(), broker_addr, properties).await
1733    }
1734
1735    async fn remove_cold_data_flow_ctr_group_config(
1736        &self,
1737        broker_addr: CheetahString,
1738        consumer_group: CheetahString,
1739    ) -> rocketmq_error::RocketMQResult<()> {
1740        MQAdminExt::remove_cold_data_flow_ctr_group_config(self.inner().as_ref(), broker_addr, consumer_group).await
1741    }
1742
1743    async fn get_cold_data_flow_ctr_info(
1744        &self,
1745        broker_addr: CheetahString,
1746    ) -> rocketmq_error::RocketMQResult<CheetahString> {
1747        MQAdminExt::get_cold_data_flow_ctr_info(self.inner().as_ref(), broker_addr).await
1748    }
1749
1750    async fn set_commit_log_read_ahead_mode(
1751        &self,
1752        broker_addr: CheetahString,
1753        mode: CheetahString,
1754    ) -> rocketmq_error::RocketMQResult<CheetahString> {
1755        MQAdminExt::set_commit_log_read_ahead_mode(self.inner().as_ref(), broker_addr, mode).await
1756    }
1757
1758    async fn create_user(
1759        &self,
1760        broker_addr: CheetahString,
1761        username: CheetahString,
1762        password: CheetahString,
1763        user_type: CheetahString,
1764    ) -> rocketmq_error::RocketMQResult<()> {
1765        MQAdminExt::create_user(self.inner().as_ref(), broker_addr, username, password, user_type).await
1766    }
1767
1768    async fn create_user_with_info(
1769        &self,
1770        broker_addr: CheetahString,
1771        username: CheetahString,
1772        password: CheetahString,
1773    ) -> rocketmq_error::RocketMQResult<()> {
1774        MQAdminExt::create_user_with_info(self.inner().as_ref(), broker_addr, username, password).await
1775    }
1776
1777    async fn update_user(
1778        &self,
1779        broker_addr: CheetahString,
1780        username: CheetahString,
1781        password: CheetahString,
1782        user_type: CheetahString,
1783        user_status: CheetahString,
1784    ) -> rocketmq_error::RocketMQResult<()> {
1785        MQAdminExt::update_user(
1786            self.inner().as_ref(),
1787            broker_addr,
1788            username,
1789            password,
1790            user_type,
1791            user_status,
1792        )
1793        .await
1794    }
1795
1796    async fn update_user_with_info(
1797        &self,
1798        broker_addr: CheetahString,
1799        username: CheetahString,
1800        password: CheetahString,
1801    ) -> rocketmq_error::RocketMQResult<()> {
1802        MQAdminExt::update_user_with_info(self.inner().as_ref(), broker_addr, username, password).await
1803    }
1804
1805    async fn delete_user(
1806        &self,
1807        broker_addr: CheetahString,
1808        username: CheetahString,
1809    ) -> rocketmq_error::RocketMQResult<()> {
1810        MQAdminExt::delete_user(self.inner().as_ref(), broker_addr, username).await
1811    }
1812
1813    async fn get_user(
1814        &self,
1815        broker_addr: CheetahString,
1816        username: CheetahString,
1817    ) -> rocketmq_error::RocketMQResult<Option<UserInfo>> {
1818        MQAdminExt::get_user(self.inner().as_ref(), broker_addr, username).await
1819    }
1820
1821    async fn list_users(
1822        &self,
1823        broker_addr: CheetahString,
1824        filter: CheetahString,
1825    ) -> rocketmq_error::RocketMQResult<Vec<UserInfo>> {
1826        MQAdminExt::list_users(self.inner().as_ref(), broker_addr, filter).await
1827    }
1828
1829    async fn create_acl(
1830        &self,
1831        broker_addr: CheetahString,
1832        subject: CheetahString,
1833        resources: Vec<CheetahString>,
1834        actions: Vec<CheetahString>,
1835        source_ips: Vec<CheetahString>,
1836        decision: CheetahString,
1837    ) -> rocketmq_error::RocketMQResult<()> {
1838        MQAdminExt::create_acl(
1839            self.inner().as_ref(),
1840            broker_addr,
1841            subject,
1842            resources,
1843            actions,
1844            source_ips,
1845            decision,
1846        )
1847        .await
1848    }
1849
1850    async fn create_acl_with_info(
1851        &self,
1852        broker_addr: CheetahString,
1853        subject: CheetahString,
1854    ) -> rocketmq_error::RocketMQResult<()> {
1855        MQAdminExt::create_acl_with_info(self.inner().as_ref(), broker_addr, subject).await
1856    }
1857
1858    async fn update_acl(
1859        &self,
1860        broker_addr: CheetahString,
1861        subject: CheetahString,
1862        resources: Vec<CheetahString>,
1863        actions: Vec<CheetahString>,
1864        source_ips: Vec<CheetahString>,
1865        decision: CheetahString,
1866    ) -> rocketmq_error::RocketMQResult<()> {
1867        MQAdminExt::update_acl(
1868            self.inner().as_ref(),
1869            broker_addr,
1870            subject,
1871            resources,
1872            actions,
1873            source_ips,
1874            decision,
1875        )
1876        .await
1877    }
1878
1879    async fn update_acl_with_info(
1880        &self,
1881        broker_addr: CheetahString,
1882        subject: CheetahString,
1883    ) -> rocketmq_error::RocketMQResult<()> {
1884        MQAdminExt::update_acl_with_info(self.inner().as_ref(), broker_addr, subject).await
1885    }
1886
1887    async fn delete_acl(
1888        &self,
1889        broker_addr: CheetahString,
1890        subject: CheetahString,
1891        resource: CheetahString,
1892    ) -> rocketmq_error::RocketMQResult<()> {
1893        MQAdminExt::delete_acl(self.inner().as_ref(), broker_addr, subject, resource).await
1894    }
1895
1896    async fn get_acl(
1897        &self,
1898        broker_addr: CheetahString,
1899        subject: CheetahString,
1900    ) -> rocketmq_error::RocketMQResult<AclInfo> {
1901        MQAdminExt::get_acl(self.inner().as_ref(), broker_addr, subject).await
1902    }
1903
1904    async fn list_acl(
1905        &self,
1906        broker_addr: CheetahString,
1907        subject_filter: CheetahString,
1908        resource_filter: CheetahString,
1909    ) -> rocketmq_error::RocketMQResult<Vec<AclInfo>> {
1910        MQAdminExt::list_acl(self.inner().as_ref(), broker_addr, subject_filter, resource_filter).await
1911    }
1912
1913    async fn create_lite_pull_topic(
1914        &self,
1915        addr: CheetahString,
1916        topic: CheetahString,
1917        queue_num: i32,
1918        topic_sys_flag: i32,
1919        read_queue_nums: i32,
1920        write_queue_nums: i32,
1921    ) -> rocketmq_error::RocketMQResult<()> {
1922        MQAdminExt::create_lite_pull_topic(
1923            self.inner().as_ref(),
1924            addr,
1925            topic,
1926            queue_num,
1927            topic_sys_flag,
1928            read_queue_nums,
1929            write_queue_nums,
1930        )
1931        .await
1932    }
1933
1934    async fn update_lite_pull_topic(
1935        &self,
1936        addr: CheetahString,
1937        topic: CheetahString,
1938        read_queue_nums: i32,
1939        write_queue_nums: i32,
1940    ) -> rocketmq_error::RocketMQResult<()> {
1941        MQAdminExt::update_lite_pull_topic(self.inner().as_ref(), addr, topic, read_queue_nums, write_queue_nums).await
1942    }
1943
1944    async fn get_lite_pull_topic(
1945        &self,
1946        addr: CheetahString,
1947        topic: CheetahString,
1948    ) -> rocketmq_error::RocketMQResult<TopicConfig> {
1949        MQAdminExt::get_lite_pull_topic(self.inner().as_ref(), addr, topic).await
1950    }
1951
1952    async fn delete_lite_pull_topic(
1953        &self,
1954        addr: CheetahString,
1955        cluster_name: CheetahString,
1956        topic: CheetahString,
1957    ) -> rocketmq_error::RocketMQResult<()> {
1958        MQAdminExt::delete_lite_pull_topic(self.inner().as_ref(), addr, cluster_name, topic).await
1959    }
1960
1961    async fn query_lite_pull_topic_list(&self, addr: CheetahString) -> rocketmq_error::RocketMQResult<TopicList> {
1962        MQAdminExt::query_lite_pull_topic_list(self.inner().as_ref(), addr).await
1963    }
1964
1965    async fn query_lite_pull_topic_by_cluster(
1966        &self,
1967        cluster_name: CheetahString,
1968    ) -> rocketmq_error::RocketMQResult<TopicList> {
1969        MQAdminExt::query_lite_pull_topic_by_cluster(self.inner().as_ref(), cluster_name).await
1970    }
1971
1972    async fn query_lite_pull_subscription_list(
1973        &self,
1974        addr: CheetahString,
1975        topic: CheetahString,
1976    ) -> rocketmq_error::RocketMQResult<GroupList> {
1977        MQAdminExt::query_lite_pull_subscription_list(self.inner().as_ref(), addr, topic).await
1978    }
1979
1980    async fn update_lite_pull_consumer_offset(
1981        &self,
1982        addr: CheetahString,
1983        topic: CheetahString,
1984        group: CheetahString,
1985        queue_id: i32,
1986        offset: u64,
1987    ) -> rocketmq_error::RocketMQResult<()> {
1988        MQAdminExt::update_lite_pull_consumer_offset(self.inner().as_ref(), addr, topic, group, queue_id, offset).await
1989    }
1990
1991    async fn examine_consume_stats_with_queue(
1992        &self,
1993        consumer_group: CheetahString,
1994        topic: Option<CheetahString>,
1995        queue_id: Option<i32>,
1996    ) -> rocketmq_error::RocketMQResult<ConsumeStats> {
1997        MQAdminExt::examine_consume_stats_with_queue(self.inner().as_ref(), consumer_group, topic, queue_id).await
1998    }
1999
2000    async fn examine_consume_stats_concurrent(
2001        &self,
2002        consumer_group: CheetahString,
2003        topic: Option<CheetahString>,
2004    ) -> AdminToolResult<ConsumeStats> {
2005        MQAdminExt::examine_consume_stats_concurrent(self.inner().as_ref(), consumer_group, topic).await
2006    }
2007
2008    async fn examine_consume_stats_concurrent_with_cluster(
2009        &self,
2010        consumer_group: CheetahString,
2011        topic: Option<CheetahString>,
2012        cluster_name: Option<CheetahString>,
2013    ) -> AdminToolResult<ConsumeStats> {
2014        MQAdminExt::examine_consume_stats_concurrent_with_cluster(
2015            self.inner().as_ref(),
2016            consumer_group,
2017            topic,
2018            cluster_name,
2019        )
2020        .await
2021    }
2022
2023    async fn export_rocksdb_consumer_offset_to_json(
2024        &self,
2025        broker_addr: CheetahString,
2026        file_path: CheetahString,
2027    ) -> rocketmq_error::RocketMQResult<()> {
2028        MQAdminExt::export_rocksdb_consumer_offset_to_json(self.inner().as_ref(), broker_addr, file_path).await
2029    }
2030
2031    async fn export_rocksdb_consumer_offset_from_memory(
2032        &self,
2033        broker_addr: CheetahString,
2034    ) -> rocketmq_error::RocketMQResult<CheetahString> {
2035        MQAdminExt::export_rocksdb_consumer_offset_from_memory(self.inner().as_ref(), broker_addr).await
2036    }
2037
2038    async fn sync_broker_member_group(
2039        &self,
2040        controller_addr: CheetahString,
2041        cluster_name: CheetahString,
2042        broker_name: CheetahString,
2043    ) -> rocketmq_error::RocketMQResult<()> {
2044        MQAdminExt::sync_broker_member_group(self.inner().as_ref(), controller_addr, cluster_name, broker_name).await
2045    }
2046
2047    async fn get_topic_config_by_topic_name(
2048        &self,
2049        broker_addr: CheetahString,
2050        topic_name: CheetahString,
2051    ) -> rocketmq_error::RocketMQResult<TopicConfig> {
2052        MQAdminExt::get_topic_config_by_topic_name(self.inner().as_ref(), broker_addr, topic_name).await
2053    }
2054
2055    async fn notify_min_broker_id_changed(
2056        &self,
2057        cluster_name: CheetahString,
2058        broker_name: CheetahString,
2059        min_broker_id: u64,
2060        min_broker_addr: CheetahString,
2061        offline_broker_addr: Option<CheetahString>,
2062        ha_broker_addr: Option<CheetahString>,
2063    ) -> rocketmq_error::RocketMQResult<()> {
2064        MQAdminExt::notify_min_broker_id_changed(
2065            self.inner().as_ref(),
2066            cluster_name,
2067            broker_name,
2068            min_broker_id,
2069            min_broker_addr,
2070            offline_broker_addr,
2071            ha_broker_addr,
2072        )
2073        .await
2074    }
2075
2076    async fn get_topic_stats_info(
2077        &self,
2078        broker_addr: CheetahString,
2079        topic: CheetahString,
2080    ) -> rocketmq_error::RocketMQResult<TopicStatsTable> {
2081        MQAdminExt::get_topic_stats_info(self.inner().as_ref(), broker_addr, topic).await
2082    }
2083
2084    async fn query_broker_has_topic(
2085        &self,
2086        broker_addr: CheetahString,
2087        topic: CheetahString,
2088    ) -> rocketmq_error::RocketMQResult<bool> {
2089        MQAdminExt::query_broker_has_topic(self.inner().as_ref(), broker_addr, topic).await
2090    }
2091
2092    async fn get_system_topic_list_from_broker(
2093        &self,
2094        broker_addr: CheetahString,
2095    ) -> rocketmq_error::RocketMQResult<TopicList> {
2096        MQAdminExt::get_system_topic_list_from_broker(self.inner().as_ref(), broker_addr).await
2097    }
2098
2099    async fn examine_topic_route_info_with_timeout(
2100        &self,
2101        topic: CheetahString,
2102        timeout_millis: u64,
2103    ) -> rocketmq_error::RocketMQResult<Option<TopicRouteData>> {
2104        MQAdminExt::examine_topic_route_info_with_timeout(self.inner().as_ref(), topic, timeout_millis).await
2105    }
2106
2107    async fn export_pop_records(&self, broker_addr: CheetahString, timeout: u64) -> rocketmq_error::RocketMQResult<()> {
2108        MQAdminExt::export_pop_records(self.inner().as_ref(), broker_addr, timeout).await
2109    }
2110
2111    async fn switch_timer_engine(
2112        &self,
2113        broker_addr: CheetahString,
2114        des_timer_engine: CheetahString,
2115    ) -> rocketmq_error::RocketMQResult<()> {
2116        MQAdminExt::switch_timer_engine(self.inner().as_ref(), broker_addr, des_timer_engine).await
2117    }
2118
2119    async fn get_broker_lite_info(
2120        &self,
2121        broker_addr: CheetahString,
2122    ) -> rocketmq_error::RocketMQResult<GetBrokerLiteInfoResponseBody> {
2123        MQAdminExt::get_broker_lite_info(self.inner().as_ref(), broker_addr).await
2124    }
2125
2126    async fn get_parent_topic_info(
2127        &self,
2128        broker_addr: CheetahString,
2129        topic: CheetahString,
2130    ) -> rocketmq_error::RocketMQResult<GetParentTopicInfoResponseBody> {
2131        MQAdminExt::get_parent_topic_info(self.inner().as_ref(), broker_addr, topic).await
2132    }
2133
2134    async fn get_lite_topic_info(
2135        &self,
2136        broker_addr: CheetahString,
2137        parent_topic: CheetahString,
2138        lite_topic: CheetahString,
2139    ) -> rocketmq_error::RocketMQResult<GetLiteTopicInfoResponseBody> {
2140        MQAdminExt::get_lite_topic_info(self.inner().as_ref(), broker_addr, parent_topic, lite_topic).await
2141    }
2142
2143    async fn get_lite_client_info(
2144        &self,
2145        broker_addr: CheetahString,
2146        parent_topic: CheetahString,
2147        group: CheetahString,
2148        client_id: CheetahString,
2149    ) -> rocketmq_error::RocketMQResult<GetLiteClientInfoResponseBody> {
2150        MQAdminExt::get_lite_client_info(self.inner().as_ref(), broker_addr, parent_topic, group, client_id).await
2151    }
2152
2153    async fn get_lite_group_info(
2154        &self,
2155        broker_addr: CheetahString,
2156        group: CheetahString,
2157        lite_topic: CheetahString,
2158        top_k: i32,
2159    ) -> rocketmq_error::RocketMQResult<GetLiteGroupInfoResponseBody> {
2160        MQAdminExt::get_lite_group_info(self.inner().as_ref(), broker_addr, group, lite_topic, top_k).await
2161    }
2162
2163    async fn trigger_lite_dispatch(
2164        &self,
2165        broker_addr: CheetahString,
2166        group: CheetahString,
2167        client_id: CheetahString,
2168    ) -> rocketmq_error::RocketMQResult<()> {
2169        MQAdminExt::trigger_lite_dispatch(self.inner().as_ref(), broker_addr, group, client_id).await
2170    }
2171
2172    async fn export_rocksdb_config_to_json(
2173        &self,
2174        broker_addr: CheetahString,
2175        config_types: Vec<CheetahString>,
2176    ) -> rocketmq_error::RocketMQResult<()> {
2177        MQAdminExt::export_rocksdb_config_to_json(self.inner().as_ref(), broker_addr, config_types).await
2178    }
2179
2180    async fn search_offset(
2181        &self,
2182        broker_addr: CheetahString,
2183        topic_name: CheetahString,
2184        queue_id: i32,
2185        timestamp: u64,
2186        timeout_millis: u64,
2187    ) -> rocketmq_error::RocketMQResult<u64> {
2188        MQAdminExt::search_offset(
2189            self.inner().as_ref(),
2190            broker_addr,
2191            topic_name,
2192            queue_id,
2193            timestamp,
2194            timeout_millis,
2195        )
2196        .await
2197    }
2198
2199    async fn min_offset(
2200        &self,
2201        broker_addr: CheetahString,
2202        message_queue: MessageQueue,
2203        timeout_millis: u64,
2204    ) -> rocketmq_error::RocketMQResult<i64> {
2205        MQAdminExt::min_offset(self.inner().as_ref(), broker_addr, message_queue, timeout_millis).await
2206    }
2207
2208    async fn max_offset(
2209        &self,
2210        broker_addr: CheetahString,
2211        message_queue: MessageQueue,
2212        timeout_millis: u64,
2213    ) -> rocketmq_error::RocketMQResult<i64> {
2214        MQAdminExt::max_offset(self.inner().as_ref(), broker_addr, message_queue, timeout_millis).await
2215    }
2216}