covert_types/methods/psql/
mod.rs

1use std::time::Duration;
2
3use serde::{Deserialize, Serialize};
4
5use crate::psql::{ConnectionConfig, RoleCredentials};
6
7use super::SecretLeaseResponse;
8
9#[derive(Debug, Deserialize, Serialize)]
10pub struct SetConnectionParams {
11    pub connection_url: String,
12    #[serde(default = "default_as_true")]
13    pub verify_connection: bool,
14    pub max_open_connections: Option<u32>,
15}
16
17fn default_as_true() -> bool {
18    true
19}
20
21#[derive(Debug, Deserialize, Serialize)]
22pub struct SetConnectionResponse {
23    pub connection: ConnectionConfig,
24}
25
26#[derive(Debug, Deserialize, Serialize)]
27pub struct ReadConnectionResponse {
28    pub connection: Option<ConnectionConfig>,
29}
30
31#[derive(Debug, Deserialize, Serialize)]
32pub struct CreateRoleCredsParams {
33    #[serde(with = "humantime_serde")]
34    pub ttl: Option<Duration>,
35}
36
37pub type CreateRoleCredsResponse = SecretLeaseResponse<RoleCredentials>;
38
39#[derive(Debug, Deserialize, Serialize)]
40pub struct CreateRoleParams {
41    pub sql: String,
42    pub revocation_sql: String,
43}
44
45#[derive(Debug, Deserialize, Serialize)]
46pub struct CreateRoleResponse {
47    pub sql: String,
48    pub revocation_sql: String,
49}
50
51#[derive(Debug, Deserialize, Serialize)]
52pub struct RenewLeaseResponse {
53    #[serde(with = "humantime_serde")]
54    pub ttl: Duration,
55}