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}
69
70
71#[derive(Serialize, Deserialize, Default, Debug)]
74pub struct GetVMInstanceInfo {
75 pub kind: String,
76 pub id: String,
77 pub creationTimestamp: String,
78 pub name: String,
79 pub tags: VMTagsGetVM,
80 pub machineType: String,
81 pub status: String,
82 pub zone: String,
83 pub networkInterfaces: Vec<VMNetInterfacesGet>,
85 pub disks: Vec<VMDiskGet>,
86 pub metadata: VMMetadataGet,
87 }
99
100#[derive(Serialize, Deserialize, Default, Debug)]
101pub struct VMTagsGetVM {
102 pub items: Vec<String>,
103 pub fingerprint: String
104}
105
106#[derive(Serialize, Deserialize, Default, Debug)]
107pub struct VMNetInterfacesGet {
108 pub kind: String,
109 pub network: String,
110 pub subnetwork: String,
111 pub networkIP: String,
112 pub name: String,
113 pub fingerprint: String,
114 pub stackType: String
115}
116
117#[derive(Serialize, Deserialize, Default, Debug)]
118pub struct VMDiskGet {
119 pub kind: String,
120 pub r#type: String,
121 pub mode: String,
122 pub source: String,
123 pub deviceName: String,
124 pub index: i32,
125 pub boot: bool,
126 pub autoDelete: bool,
127 pub licenses: Vec<String>,
128 pub interface: String,
129 pub diskSizeGb: String,
130 pub architecture: String
132}
133
134#[derive(Serialize, Deserialize, Default, Debug)]
135pub struct VMShieldedInitialState {
136 pub dbxs: Vec<VMDBXS>
137}
138
139#[derive(Serialize, Deserialize, Default, Debug)]
140pub struct VMDBXS {
141 pub content: String,
142 pub fileType: String
143}
144
145#[derive(Serialize, Deserialize, Default, Debug)]
146pub struct VMMetadataGet {
147 pub kind: String,
148 pub fingerprint: String
149}
150
151#[derive(Serialize, Deserialize, Default, Debug)]
152pub struct VMSchedulingGet {
153 pub onHostMaintenance: String,
154 pub automaticRestart: bool,
155 pub preemptible: bool,
156 pub provisioningModel: String
157}
158
159#[derive(Serialize, Deserialize, Default, Debug)]
160pub struct VMSchieldedInstanceConfigGet {
161 pub enableSecureBoot: bool,
162 pub enableVtpm: bool,
163 pub enableIntegrityMonitoring: bool
164}
165
166#[derive(Serialize, Deserialize, Default, Debug)]
167pub struct VMSchieldedInstancePolicyGet {
168 pub updateAutoLearnPolicy: bool
169}
170
171#[derive(Serialize, Deserialize, Default, Debug)]
172pub struct VMResourceStatusGet {
173 pub effectiveInstanceMetadata: EffectiveInstanceMetadata
174}
175
176#[derive(Serialize, Deserialize, Default, Debug)]
177pub struct EffectiveInstanceMetadata {
178 pub vmDnsSettingMetadataValue: String
179}