squarecloud 0.2.0

Async Rust client for the SquareCloud API
Documentation
pub mod credentials;
pub mod snapshots;

use super::Endpoint;
use reqwest::Method;

#[cfg(feature = "test-utils")]
inventory::submit! {
    crate::EndpointSpec {
    method: "post",
    path: "/databases",
    domain: "DatabaseErrorCode",
    known_code: crate::errors::code_is_known::<crate::errors::DatabaseErrorCode>,
    }
}

#[cfg(feature = "test-utils")]
inventory::submit! {
    crate::EndpointSpec {
    method: "get",
    path: "/databases/status",
    domain: "DatabaseErrorCode",
    known_code: crate::errors::code_is_known::<crate::errors::DatabaseErrorCode>,
    }
}

#[cfg(feature = "test-utils")]
inventory::submit! {
    crate::EndpointSpec {
    method: "get",
    path: "/databases/{database_id}",
    domain: "DatabaseErrorCode",
    known_code: crate::errors::code_is_known::<crate::errors::DatabaseErrorCode>,
    }
}

#[cfg(feature = "test-utils")]
inventory::submit! {
    crate::EndpointSpec {
    method: "delete",
    path: "/databases/{database_id}",
    domain: "DatabaseErrorCode",
    known_code: crate::errors::code_is_known::<crate::errors::DatabaseErrorCode>,
    }
}

#[cfg(feature = "test-utils")]
inventory::submit! {
    crate::EndpointSpec {
    method: "patch",
    path: "/databases/{database_id}",
    domain: "DatabaseErrorCode",
    known_code: crate::errors::code_is_known::<crate::errors::DatabaseErrorCode>,
    }
}

#[cfg(feature = "test-utils")]
inventory::submit! {
    crate::EndpointSpec {
    method: "get",
    path: "/databases/{database_id}/status",
    domain: "DatabaseErrorCode",
    known_code: crate::errors::code_is_known::<crate::errors::DatabaseErrorCode>,
    }
}

#[cfg(feature = "test-utils")]
inventory::submit! {
    crate::EndpointSpec {
    method: "get",
    path: "/databases/{database_id}/metrics",
    domain: "DatabaseErrorCode",
    known_code: crate::errors::code_is_known::<crate::errors::DatabaseErrorCode>,
    }
}

#[cfg(feature = "test-utils")]
inventory::submit! {
    crate::EndpointSpec {
    method: "post",
    path: "/databases/{database_id}/start",
    domain: "DatabaseErrorCode",
    known_code: crate::errors::code_is_known::<crate::errors::DatabaseErrorCode>,
    }
}

#[cfg(feature = "test-utils")]
inventory::submit! {
    crate::EndpointSpec {
    method: "post",
    path: "/databases/{database_id}/stop",
    domain: "DatabaseErrorCode",
    known_code: crate::errors::code_is_known::<crate::errors::DatabaseErrorCode>,
    }
}

#[cfg(feature = "test-utils")]
inventory::submit! {
    crate::EndpointSpec {
    method: "get",
    path: "/databases/{database_id}/credentials/certificate",
    domain: "DatabaseErrorCode",
    known_code: crate::errors::code_is_known::<crate::errors::DatabaseErrorCode>,
    }
}

impl Endpoint {
    pub(crate) fn create_database() -> Endpoint {
        Self::builder("/databases", Method::POST).build()
    }

    pub(crate) fn start_database(database_id: &str) -> Endpoint {
        Self::builder("/databases/{database_id}/start", Method::POST)
            .param("database_id", database_id)
            .build()
    }

    pub(crate) fn stop_database(database_id: &str) -> Endpoint {
        Self::builder("/databases/{database_id}/stop", Method::POST)
            .param("database_id", database_id)
            .build()
    }

    pub(crate) fn all_database_status() -> Endpoint {
        Self::builder("/databases/status", Method::GET).build()
    }

    pub(crate) fn database_status(database_id: &str) -> Endpoint {
        Self::builder("/databases/{database_id}/status", Method::GET)
            .param("database_id", database_id)
            .build()
    }

    pub(crate) fn database_metrics(database_id: &str) -> Endpoint {
        Self::builder("/databases/{database_id}/metrics", Method::GET)
            .param("database_id", database_id)
            .build()
    }

    pub(crate) fn edit_database(database_id: &str) -> Endpoint {
        Self::builder("/databases/{database_id}", Method::PATCH)
            .param("database_id", database_id)
            .build()
    }

    pub(crate) fn delete_database(database_id: &str) -> Endpoint {
        Self::builder("/databases/{database_id}", Method::DELETE)
            .param("database_id", database_id)
            .build()
    }

    pub(crate) fn get_database_certificate(database_id: &str) -> Endpoint {
        Self::builder(
            "/databases/{database_id}/credentials/certificate",
            Method::GET,
        )
        .param("database_id", database_id)
        .build()
    }

    pub(crate) fn database_info(database_id: &str) -> Endpoint {
        Self::builder("/databases/{database_id}", Method::GET)
            .param("database_id", database_id)
            .build()
    }
}