steel-rs 0.1.3

Steel API client
Documentation
use crate::client::{RequestBuilder, Steel};
use crate::types::*;

pub struct Credentials<'a> {
    client: &'a Steel,
}

impl<'a> Credentials<'a> {
    pub fn new(client: &'a Steel) -> Self {
        Self { client }
    }

    /// List all credential metadata
    pub fn list(
        &self,
        query: CredentialListParams,
    ) -> RequestBuilder<'_, CredentialListParams, (), CredentialListResponse> {
        let path = "/v1/credentials".to_string();
        self.client
            .call(reqwest::Method::GET, path, Some(query), None::<()>)
    }

    /// Stores credentials
    pub fn create(
        &self,
        body: CredentialCreateParams,
    ) -> RequestBuilder<'_, (), CredentialCreateParams, CredentialCreateResponse> {
        let path = "/v1/credentials".to_string();
        self.client
            .call(reqwest::Method::POST, path, None::<()>, Some(body))
    }

    /// Updates credentials
    pub fn update(
        &self,
        body: CredentialUpdateParams,
    ) -> RequestBuilder<'_, (), CredentialUpdateParams, CredentialUpdateResponse> {
        let path = "/v1/credentials".to_string();
        self.client
            .call(reqwest::Method::PUT, path, None::<()>, Some(body))
    }

    /// Deletes credentials
    pub fn delete(
        &self,
        body: CredentialDeleteParams,
    ) -> RequestBuilder<'_, (), CredentialDeleteParams, CredentialDeleteResponse> {
        let path = "/v1/credentials".to_string();
        self.client
            .call(reqwest::Method::DELETE, path, None::<()>, Some(body))
    }
}