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