docker_api/api/
service.rs

1//! Manage and inspect services within a swarm.
2use crate::{
3    conn::{Headers, Payload, AUTH_HEADER},
4    models,
5    opts::{ServiceListOpts, ServiceOpts},
6    Result,
7};
8
9impl_api_ty!(Service => name);
10
11impl Service {
12    api_doc! { Service => Create
13    |
14    /// Creates a new service from ServiceOpts.
15    pub async fn create(&self, opts: &ServiceOpts) -> Result<models::ServiceCreate201Response> {
16        let headers = opts
17            .auth_header()
18            .map(|a| Headers::single(AUTH_HEADER, a));
19        self.docker
20            .post_json(
21                "/services/create",
22                Payload::Json(opts.serialize_vec()?),
23                headers,
24            )
25            .await
26    }}
27
28    impl_api_ep! { svc: Service, resp
29        Inspect -> &format!("/services/{}", svc.name), models::Service
30        Delete -> &format!("/services/{}", svc.name), models::ServiceUpdateResponse
31        Logs -> &format!("/services/{}/logs", svc.name), ()
32    }
33}
34
35impl Services {
36    impl_api_ep! { svc: Service, resp
37        List -> "/services", models::Service
38    }
39}