Skip to main content

devops_armory/cloud/gcp/sql/
models.rs

1use serde_derive::{Serialize, Deserialize};
2
3#[derive(Serialize, Deserialize, Default,Debug)]
4pub struct SqlInstance {
5    pub name: String,
6    pub databaseVersion: String,
7    pub settings: SqlSettings,
8    pub region: String,
9    pub project: String,
10    pub rootPassword: String,
11
12}
13
14#[derive(Serialize, Deserialize, Default,Debug)]
15pub struct SqlSettings {
16    pub tier: String,
17    pub userLabels: SqlUserLabels,
18    pub ipConfiguration: SqlIpConfig,
19    pub dataDiskType: String,
20
21}
22
23#[derive(Serialize, Deserialize, Default,Debug)]
24pub struct SqlUserLabels {
25    pub created_by: String
26}
27
28#[derive(Serialize, Deserialize, Default,Debug)]
29pub struct SqlIpConfig {
30    pub privateNetwork: String,
31    pub sslMode: String,
32    pub ipv4Enabled: bool,
33    pub requireSsl: bool,
34
35}
36
37impl SqlIpConfig {
38    pub fn new(
39        project: String,
40        net_name: String,
41        ssl_mode: String,
42        ipv4enabled: bool,
43        require_ssl: bool
44    ) -> Self {
45            Self {
46                privateNetwork: format!("projects/{project}/global/networks/{net_name}"),
47                sslMode: ssl_mode,
48                ipv4Enabled: ipv4enabled,
49                requireSsl: require_ssl
50        }
51    }
52}