apisix_admin_client/
lib.rs1use serde_json::Value;
8use crate::config::ApisixConfig;
9pub mod client;
10pub mod error;
11pub mod models;
12pub mod config;
13
14pub mod client_admin_impl;
15pub mod client_ctrl_impl;
16
17type Result<T> = std::result::Result<T, crate::error::ApisixClientError>;
18
19use crate::client_admin_impl::{api_admin_check_version, api_admin_get_services, api_admin_get_upstreams};
21use crate::client_ctrl_impl::api_ctrl_schema;
22use crate::models::{ApisixConsumer, ApisixConsumerGroup, ApisixRoute, ApisixService, ApisixUpstream, ConsumerGroupRequest, ConsumerRequest, RouteRequest, ServiceRequest};
23use crate::models::common::{ListResponse, TypedItem};
24use crate::models::ctrl_responses::CtrlHealthCheckResponse;
25use crate::models::UpstreamRequest;
26
27pub async fn get_config_from_env() -> ApisixConfig {
37 ApisixConfig::from_env()
38}
39
40pub async fn get_config_default() -> ApisixConfig {
43 ApisixConfig::default()
44}
45
46
47
48pub async fn admin_check(cfg: &ApisixConfig) -> Result<()> {
50 api_admin_check_version(cfg).await
51}
52
53pub async fn admin_get_upstreams(cfg: &ApisixConfig) -> Result<ListResponse<TypedItem<ApisixUpstream>>> {
55 api_admin_get_upstreams(cfg).await
56}
57
58pub async fn admin_get_upstream(cfg: &ApisixConfig, id: &str) -> Result<TypedItem<ApisixUpstream>> {
60 client_admin_impl::api_admin_get_upstream(cfg, id).await
61}
62
63pub async fn admin_create_upstream_with_id(cfg: &ApisixConfig, id: &str, req: &UpstreamRequest) -> Result<TypedItem<ApisixUpstream>> {
65 client_admin_impl::api_admin_create_upstream_with_id(cfg, id, req).await
66}
67
68pub async fn admin_delete_upstream(cfg: &ApisixConfig, id: &str) -> Result<()> {
78 client_admin_impl::api_admin_delete_upstream(cfg, id).await
79}
80
81pub async fn admin_get_services(cfg: &ApisixConfig) -> Result<ListResponse<TypedItem<ApisixService>>> {
83 api_admin_get_services(cfg).await
84}
85
86pub async fn admin_get_service(cfg: &ApisixConfig, id: &str) -> Result<TypedItem<ApisixService>> {
88 client_admin_impl::api_admin_get_service(cfg, id).await
89}
90
91pub async fn admin_create_service_with_id(cfg: &ApisixConfig, id: &str, req: &ServiceRequest) -> Result<TypedItem<ApisixService>> {
93 client_admin_impl::api_admin_create_service_with_id(cfg, id, req).await
94}
95
96pub async fn admin_delete_service(cfg: &ApisixConfig, id: &str) -> Result<()> {
98 client_admin_impl::api_admin_delete_service(cfg, id).await
99}
100
101pub async fn admin_get_routes(cfg: &ApisixConfig) -> Result<ListResponse<TypedItem<ApisixRoute>>>
103{
104 client_admin_impl::api_admin_get_routes(cfg).await
105}
106
107pub async fn admin_get_route(cfg: &ApisixConfig, id: &str) -> Result<TypedItem<ApisixRoute>> {
109 client_admin_impl::api_admin_get_route(cfg, id).await
110}
111
112pub async fn admin_create_route_with_id(cfg: &ApisixConfig, id: &str, req: &RouteRequest) -> Result<TypedItem<ApisixRoute>> {
114 client_admin_impl::api_admin_create_route_with_id(cfg, id, req).await
115}
116
117pub async fn admin_delete_route(cfg: &ApisixConfig, id: &str) -> Result<()> {
119 client_admin_impl::api_admin_delete_route(cfg, id).await
120}
121
122pub async fn admin_get_consumer_groups(cfg: &ApisixConfig) -> Result<ListResponse<TypedItem<ApisixConsumerGroup>>> {
124 client_admin_impl::api_admin_get_consumer_groups(cfg).await
125}
126
127pub async fn admin_get_consumer_group(cfg: &ApisixConfig, id: &str) -> Result<TypedItem<ApisixConsumerGroup>> {
129 client_admin_impl::api_admin_get_consumer_group(cfg, id).await
130}
131
132pub async fn admin_create_consumer_group_with_id(cfg: &ApisixConfig, id: &str, req: &ConsumerGroupRequest) -> Result<TypedItem<ApisixConsumerGroup>> {
134 client_admin_impl::api_admin_create_consumer_group_with_id(cfg, id, req).await
135}
136
137pub async fn admin_delete_consumer_group(cfg: &ApisixConfig, id: &str) -> Result<()> {
139 client_admin_impl::api_admin_delete_consumer_group(cfg, id).await
140}
141
142pub async fn admin_get_consumers(cfg: &ApisixConfig) -> Result<ListResponse<TypedItem<ApisixConsumer>>> {
144 client_admin_impl::api_admin_get_consumers(cfg).await
145}
146
147pub async fn admin_get_consumer(cfg: &ApisixConfig, username: &str) -> Result<TypedItem<ApisixConsumer>> {
149 client_admin_impl::api_admin_get_consumer(cfg, username).await
150}
151
152pub async fn admin_create_consumer_with_name(cfg: &ApisixConfig, id: &str, req: &ConsumerRequest) -> Result<TypedItem<ApisixConsumer>> {
154 client_admin_impl::api_admin_create_consumer(cfg, id, req).await
155}
156
157pub async fn admin_delete_consumer(cfg: &ApisixConfig, username: &str) -> Result<()> {
159 client_admin_impl::api_admin_delete_consumer(cfg, username).await
160}
161pub async fn ctrl_schema(cfg: &ApisixConfig) -> Result<Value> {
164 api_ctrl_schema(cfg).await
165}
166
167pub async fn ctrl_health_check(cfg: &ApisixConfig) -> Result<CtrlHealthCheckResponse> {
169 client_ctrl_impl::api_ctrl_health_check(cfg).await
170}
171
172pub async fn ctrl_garbage_collect(cfg: &ApisixConfig) -> Result<()> {
176 client_ctrl_impl::api_ctrl_garbage_collect(cfg).await
177}
178