apisix_admin_client/
client_admin_impl.rs1use tracing::instrument;
2use crate::RouteRequest;
3use crate::ApisixRoute;
4use crate::ServiceRequest;
5use crate::ApisixService;
6use crate::client::AdminConnector;
7use crate::config::ApisixConfig;
8use crate::error::ApisixClientError::InvalidRequest;
9use crate::models::common::{ListResponse, TypedItem};
10use crate::models::{ApisixConsumer, ApisixConsumerGroup, ApisixUpstream, ConsumerGroupRequest, ConsumerRequest, UpstreamRequest};
11
12type Result<T> = std::result::Result<T, crate::error::ApisixClientError>;
13
14#[instrument(skip_all)]
15pub (crate) async fn api_admin_check_version(cfg: &ApisixConfig) -> Result<()> {
16 let ac: AdminConnector = AdminConnector::new(cfg).await;
17 ac.check_version().await.map_err(|e| InvalidRequest(e.to_string()))
18}
19
20#[instrument(skip_all)]
22pub (crate) async fn api_admin_get_upstreams(cfg: &ApisixConfig) -> Result<ListResponse<TypedItem<ApisixUpstream>>> {
23 let ac: AdminConnector = AdminConnector::new(cfg).await;
24 ac.get_upstreams().await.map_err(|e| InvalidRequest(e.to_string()))
25}
26
27#[instrument(skip_all)]
28pub (crate) async fn api_admin_get_upstream(cfg: &ApisixConfig, id: &str) -> Result<TypedItem<ApisixUpstream>> {
29 let ac: AdminConnector = AdminConnector::new(cfg).await;
30 ac.get_upstream(id).await.map_err(|e| InvalidRequest(e.to_string()))
31}
32
33#[instrument(skip_all)]
34pub (crate) async fn api_admin_create_upstream_with_id(cfg: &ApisixConfig, id: &str, req: &UpstreamRequest) -> Result<TypedItem<ApisixUpstream>> {
35 let ac: AdminConnector = AdminConnector::new(cfg).await;
36 ac.create_upstream_with_id(id, req).await.map_err(|e| InvalidRequest(e.to_string()))
37}
38
39#[instrument(skip_all)]
40pub (crate) async fn api_admin_delete_upstream(cfg: &ApisixConfig, id: &str) -> Result<()> {
41 let ac: AdminConnector = AdminConnector::new(cfg).await;
42 ac.delete_upstream(id).await.map(|_| ()).map_err(|e| InvalidRequest(e.to_string()))
43}
44#[instrument(skip_all)]
48pub (crate) async fn api_admin_get_services(cfg: &ApisixConfig) -> Result<ListResponse<TypedItem<ApisixService>>> {
49 let ac: AdminConnector = AdminConnector::new(cfg).await;
50 ac.get_services().await.map_err(|e| InvalidRequest(e.to_string()))
51}
52
53#[instrument(skip_all)]
54pub (crate) async fn api_admin_get_service(cfg: &ApisixConfig, id: &str) -> Result<TypedItem<ApisixService>> {
55 let ac: AdminConnector = AdminConnector::new(cfg).await;
56 ac.get_service(id).await.map_err(|e| InvalidRequest(e.to_string()))
57}
58
59#[instrument(skip_all)]
60pub (crate) async fn api_admin_create_service_with_id(cfg: &ApisixConfig, id: &str, req: &ServiceRequest) -> Result<TypedItem<ApisixService>> {
61 let ac: AdminConnector = AdminConnector::new(cfg).await;
62 ac.create_service_with_id(id, req).await.map_err(|e| InvalidRequest(e.to_string()))
63}
64
65#[instrument(skip_all)]
66pub (crate) async fn api_admin_delete_service(cfg: &ApisixConfig, id: &str) -> Result<()> {
67 let ac: AdminConnector = AdminConnector::new(cfg).await;
68 ac.delete_service(id).await.map(|_| ()).map_err(|e| InvalidRequest(e.to_string()))
69}
70#[instrument(skip_all)]
74pub (crate) async fn api_admin_get_routes(cfg: &ApisixConfig) -> Result<ListResponse<TypedItem<ApisixRoute>>> {
75 let ac: AdminConnector = AdminConnector::new(cfg).await;
76 ac.get_routes().await.map_err(|e| InvalidRequest(e.to_string()))
77}
78
79#[instrument(skip_all)]
80pub (crate) async fn api_admin_get_route(cfg: &ApisixConfig, id: &str) -> Result<TypedItem<ApisixRoute>> {
81 let ac: AdminConnector = AdminConnector::new(cfg).await;
82 ac.get_route(id).await.map_err(|e| InvalidRequest(e.to_string()))
83}
84
85#[instrument(skip_all)]
86pub (crate) async fn api_admin_create_route_with_id(cfg: &ApisixConfig, id: &str, req: &RouteRequest) -> Result<TypedItem<ApisixRoute>> {
87 let ac: AdminConnector = AdminConnector::new(cfg).await;
88 ac.create_route_with_id(id, req).await.map_err(|e| InvalidRequest(e.to_string()))
89}
90
91#[instrument(skip_all)]
92pub (crate) async fn api_admin_delete_route(cfg: &ApisixConfig, id: &str) -> Result<()> {
93 let ac: AdminConnector = AdminConnector::new(cfg).await;
94 ac.delete_route(id).await.map(|_| ()).map_err(|e| InvalidRequest(e.to_string()))
95}
96#[instrument(skip_all)]
100pub (crate) async fn api_admin_get_consumer_groups(cfg: &ApisixConfig) -> Result<ListResponse<TypedItem<ApisixConsumerGroup>>> {
101 let ac: AdminConnector = AdminConnector::new(cfg).await;
102 ac.get_consumer_groups().await.map_err(|e| InvalidRequest(e.to_string()))
103}
104
105#[instrument(skip_all)]
106pub (crate) async fn api_admin_get_consumer_group(cfg: &ApisixConfig, id: &str) -> Result<TypedItem<ApisixConsumerGroup>> {
107 let ac: AdminConnector = AdminConnector::new(cfg).await;
108 ac.get_consumer_group(id).await.map_err(|e| InvalidRequest(e.to_string()))
109}
110
111#[instrument(skip_all)]
112pub (crate) async fn api_admin_create_consumer_group_with_id(cfg: &ApisixConfig, id: &str, req: &ConsumerGroupRequest) -> Result<TypedItem<ApisixConsumerGroup>> {
113 let ac: AdminConnector = AdminConnector::new(cfg).await;
114 ac.create_consumer_group_with_id(id, req).await.map_err(|e| InvalidRequest(e.to_string()))
115}
116
117#[instrument(skip_all)]
118pub (crate) async fn api_admin_delete_consumer_group(cfg: &ApisixConfig, id: &str) -> Result<()> {
119 let ac: AdminConnector = AdminConnector::new(cfg).await;
120 ac.delete_consumer_group(id).await.map(|_| ()).map_err(|e| InvalidRequest(e.to_string()))
121}
122#[instrument(skip_all)]
126pub (crate) async fn api_admin_get_consumers(cfg: &ApisixConfig) -> Result<ListResponse<TypedItem<ApisixConsumer>>> {
127 let ac: AdminConnector = AdminConnector::new(cfg).await;
128 ac.get_consumers().await.map_err(|e| InvalidRequest(e.to_string()))
129}
130
131#[instrument(skip_all)]
132pub (crate) async fn api_admin_get_consumer(cfg: &ApisixConfig, id: &str) -> Result<TypedItem<ApisixConsumer>> {
133 let ac: AdminConnector = AdminConnector::new(cfg).await;
134 ac.get_consumer(id).await.map_err(|e| InvalidRequest(e.to_string()))
135}
136
137#[instrument(skip_all)]
138pub (crate) async fn api_admin_create_consumer(cfg: &ApisixConfig, id: &str, req: &ConsumerRequest) -> Result<TypedItem<ApisixConsumer>> {
139 let ac: AdminConnector = AdminConnector::new(cfg).await;
140 ac.create_consumer(id, req).await.map_err(|e| InvalidRequest(e.to_string()))
141}
142
143#[instrument(skip_all)]
144pub (crate) async fn api_admin_delete_consumer(cfg: &ApisixConfig, id: &str) -> Result<()> {
145 let ac: AdminConnector = AdminConnector::new(cfg).await;
146 ac.delete_consumer(id).await.map(|_| ()).map_err(|e| InvalidRequest(e.to_string()))
147}
148
149