Skip to main content

devops_armory/cloud/gcp/compute/
models.rs

1use serde_derive::{Serialize, Deserialize};
2
3#[derive(Serialize, Deserialize, Default, Debug)]
4pub struct CreateVM {
5    pub disk: Vec<VMDisk>,
6    pub machineType: String,
7    pub name: String,
8    pub networkInterfaces: Vec<VMNetworkInterface>,
9    pub tags: VMTags,
10    //pub auth: Option<String>,
11}
12
13#[derive(Serialize, Deserialize, Default, Debug)]
14pub struct VMDisk {
15    pub boot: String,
16    pub r#initializeParams: VMDiskInitParams,
17}
18
19#[derive(Serialize, Deserialize, Default, Debug)]
20pub struct VMDiskInitParams {
21    pub sourceImage: String,
22}
23
24#[derive(Serialize, Deserialize, Default, Debug)]
25pub struct VMNetworkInterface {
26    pub accessConfigs: Option<Vec<VMAccessConfig>>,
27    pub network: String,
28    pub subnetwork: String
29}
30
31#[derive(Serialize, Deserialize, Default, Debug)]
32pub struct VMAccessConfig {
33    pub name: String,
34    pub r#type: String,
35}
36
37#[derive(Serialize, Deserialize, Default, Debug)]
38pub struct IPName {
39    pub name: String,
40}
41
42#[derive(Serialize, Deserialize, Default, Debug)]
43pub struct CreateSSL {
44    pub name: String,
45    pub managed: DomainsManaged,
46    pub r#type: String,
47}
48
49#[derive(Serialize, Deserialize, Default, Debug)]
50pub struct DomainsManaged {
51    pub domains: Vec<String>,
52}
53
54#[derive(Serialize, Deserialize, Default, Debug)]
55pub struct VMTags {
56    pub items: Vec<String>,
57}
58
59#[derive(Serialize, Deserialize, Default, Debug)]
60pub struct ComputeMetadata {
61    pub items: Vec<ComputeData>,
62}
63
64#[derive(Serialize, Deserialize, Default, Debug)]
65pub struct ComputeData {
66    pub key: String,
67    pub value: String
68}