devops_armory/cloud/gcp/sql/
models.rs1use 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}