1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
use hyper::StatusCode;

use crate::DockerEngineClient;
use crate::errors::DecUseError;
use crate::requests::CreateNetworkRequest;
use crate::responses::CreateNetworkResponse;

pub struct DecNetworks<'a> {
    pub(super) client: &'a DockerEngineClient
}

impl <'a> DecNetworks<'a> {

    /// Establish a new Docker network, and return a description of it.
    pub async fn create(&self, request: CreateNetworkRequest) -> Result<CreateNetworkResponse, DecUseError> {
        let uri = self.client.url.networks().create();
        let response = self.client.http.post_json(uri, &request)?.execute().await?;

        response
            .assert_item_status(StatusCode::CREATED)?
            .parse()
    }

}