use std::fmt::Display;
#[derive(Clone, Debug)]
pub struct SidekoClient {
base_client: crate::core::base_client::BaseClient,
}
impl Default for SidekoClient {
fn default() -> Self {
Self {
base_client: crate::core::base_client::BaseClient {
base_url: crate::core::base_client::BaseClient::default_base_url(
crate::environment::Environment::default(),
),
..Default::default()
},
}
}
}
impl SidekoClient {
pub fn with_client(mut self, client: reqwest::Client) -> Self {
self.base_client.client = client;
self
}
pub fn with_environment(mut self, env: impl Display) -> Self {
self.base_client.base_url = crate::core::base_client::BaseClient::default_base_url(
env,
);
self
}
pub fn with_api_key_auth(mut self, api_key: &str) -> Self {
self.base_client
.auth
.insert(
"ApiKeyAuth".into(),
crate::core::auth::AuthProvider::KeyHeader(
"x-sideko-key".into(),
api_key.into(),
),
);
self
}
pub fn with_cookie_auth(mut self, session_cookie: &str) -> Self {
self.base_client
.auth
.insert(
"CookieAuth".into(),
crate::core::auth::AuthProvider::KeyCookie(
"SIDEKO_SESSION".into(),
session_cookie.into(),
),
);
self
}
pub fn api(&mut self) -> crate::resources::api::resource_client::ApiClient<'_> {
crate::resources::api::resource_client::ApiClient::_new(&mut self.base_client)
}
pub fn doc(&mut self) -> crate::resources::doc::resource_client::DocClient<'_> {
crate::resources::doc::resource_client::DocClient::_new(&mut self.base_client)
}
pub fn asset(
&mut self,
) -> crate::resources::asset::resource_client::AssetClient<'_> {
crate::resources::asset::resource_client::AssetClient::_new(
&mut self.base_client,
)
}
pub fn role(&mut self) -> crate::resources::role::resource_client::RoleClient<'_> {
crate::resources::role::resource_client::RoleClient::_new(&mut self.base_client)
}
pub fn service_account(
&mut self,
) -> crate::resources::service_account::resource_client::ServiceAccountClient<'_> {
crate::resources::service_account::resource_client::ServiceAccountClient::_new(
&mut self.base_client,
)
}
pub fn auth(&mut self) -> crate::resources::auth::resource_client::AuthClient<'_> {
crate::resources::auth::resource_client::AuthClient::_new(&mut self.base_client)
}
pub fn cli(&mut self) -> crate::resources::cli::resource_client::CliClient<'_> {
crate::resources::cli::resource_client::CliClient::_new(&mut self.base_client)
}
pub fn org(&mut self) -> crate::resources::org::resource_client::OrgClient<'_> {
crate::resources::org::resource_client::OrgClient::_new(&mut self.base_client)
}
pub fn sdk(&mut self) -> crate::resources::sdk::resource_client::SdkClient<'_> {
crate::resources::sdk::resource_client::SdkClient::_new(&mut self.base_client)
}
pub fn user(&mut self) -> crate::resources::user::resource_client::UserClient<'_> {
crate::resources::user::resource_client::UserClient::_new(&mut self.base_client)
}
pub fn lint(&mut self) -> crate::resources::lint::resource_client::LintClient<'_> {
crate::resources::lint::resource_client::LintClient::_new(&mut self.base_client)
}
}