supabase_management_rs/
supavisor.rs1use serde::{Deserialize, Serialize};
2
3use crate::Client;
4
5impl Client {
6 pub async fn get_supavisor_details(
7 &self,
8 project_id: &str,
9 ) -> Result<Vec<SupavisorConfig>, crate::Error> {
10 self.get(format!("projects/{project_id}/config/database/pooler"))
11 .await
12 }
13}
14
15#[derive(Debug, Serialize, Deserialize, Clone, Copy)]
16#[serde(rename_all = "SCREAMING_SNAKE_CASE")]
17pub enum DatabaseType {
18 Primary,
19 ReadReplica,
20}
21
22#[derive(Debug, Serialize, Deserialize, Clone, Copy)]
23#[serde(rename_all = "lowercase")]
24pub enum PoolMode {
25 Transaction,
26 Session,
27}
28
29#[derive(Debug, Serialize, Deserialize, Clone)]
30pub struct SupavisorConfig {
31 pub database_type: DatabaseType,
32 pub db_port: i32,
33 pub default_pool_size: Option<i32>,
34 pub max_client_conn: Option<i32>,
35 pub identifier: String,
36 pub is_using_scram_auth: bool,
37 pub db_user: String,
38 pub db_host: String,
39 pub db_name: String,
40 pub pool_mode: PoolMode,
41}