devops_armory/cloud/gcp/gke/cluster/
models.rs1use serde_derive::{Serialize, Deserialize};
2
3#[derive(Serialize, Deserialize, Default,Debug)]
4pub struct CreateGkeCluster {
5 pub cluster: GkeCluster
6}
7
8#[derive(Serialize, Deserialize, Default,Debug)]
9pub struct GkeCluster {
10 pub name: String,
11 pub description: String,
12 pub loggingService: Option<String>,
13 pub monitoringService: Option<String>,
14 pub network: String,
15 pub subnetwork: String,
17 pub nodePools: Vec<Nodepools>,
18 pub locations: Vec<String>,
19 pub networkConfig: NetworkConfig,
22 pub ipAllocationPolicy: IpAllocationPolicy
24
25}
26
27#[derive(Serialize, Deserialize, Default,Debug)]
28pub struct Nodepools {
29 pub name: String,
30 pub config: NodeConfig,
31 pub initialNodeCount: i32,
32
33}
34
35#[derive(Serialize, Deserialize, Default,Debug)]
36pub struct NodeConfig {
37 pub machineType: String,
38 pub diskSizeGb: i32,
39 pub oauthScopes: Vec<String>,
40 pub imageType: String,
42 pub serviceAccount: String,
43 pub diskType: String,
45}
46
47#[derive(Serialize, Deserialize, Default,Debug)]
48pub struct NetworkConfig {
49 pub defaultEnablePrivateNodes: bool,
51 pub subnetwork: String,
52 }
54
55#[derive(Serialize, Deserialize, Default,Debug)]
56pub struct IpAllocationPolicy {
57 pub useIpAliases: bool,
58 pub servicesIpv4CidrBlock: String,
59}
60
61#[derive(Serialize, Deserialize, Default,Debug)]
62pub struct NetworkTierConfig {
63 pub networkTier: String
64}
65
66#[derive(Serialize, Deserialize, Default,Debug)]
67pub struct MasterAuthorizedNetworksConfig {
68 pub enabled: bool,
69 pub cidrBlocks: Vec<CiDrBlock>,
70 pub gcpPublicCidrsAccessEnabled: bool,
71 pub privateEndpointEnforcementEnabled: bool
72}
73
74#[derive(Serialize, Deserialize, Default,Debug)]
75pub struct CiDrBlock {
76 pub displayName: String,
77 pub cidrBlock: String
78}
79
80#[derive(Serialize, Deserialize, Default,Debug)]
81pub struct Autoscaling {
82 pub enableNodeAutoprovisioning: bool,
83 pub resourceLimits: Vec<AutoscalerResourceLimits>,
84 pub autoscalingProfile: String,
85 pub defaultComputeClassConfig: DefaultComputeClass
86}
87
88#[derive(Serialize, Deserialize, Default,Debug)]
89pub struct DefaultComputeClass {
90 pub enabled: bool
91}
92
93#[derive(Serialize, Deserialize, Default,Debug)]
94pub struct AutoscalerResourceLimits {
95 pub resourceType: String,
96 pub minimum: String,
97 pub maximum: String
98}
99
100#[derive(Serialize, Deserialize, Default,Debug)]
101pub struct AutoscalingBase {
102 pub enabled: bool,
103 pub maxNodeCount: i32,
104 pub locationPolicy: String
105}
106
107#[derive(Serialize, Deserialize, Default,Debug)]
110pub struct UpdateGkeCluster {
111 pub projectId: String,
112 pub clusterId: String,
114 pub update: UpdateCluster
115}
116
117#[derive(Serialize, Deserialize, Default,Debug)]
118pub struct UpdateCluster {
119 pub desiredMasterAuthorizedNetworksConfig: Option<MasterAuthorizedNetworksConfig>,
120 pub desiredLoggingService: Option<String>,
121 pub desiredMonitoringService: Option<String>,
122 pub desiredMonitoringConfig: Option<DesiredMonitoringConfig>,
123
124}
125
126#[derive(Serialize, Deserialize, Default,Debug)]
129pub struct UpdateClusterLogging {
130 pub projectId: String,
131 pub clusterId: String,
132 pub loggingService: String
133}
134
135#[derive(Serialize, Deserialize, Default,Debug)]
136pub struct UpdateClusterMonitoring {
137 pub projectId: String,
138 pub clusterId: String,
139 pub monitoringService: String
140}
141
142#[derive(Serialize, Deserialize, Default,Debug)]
143pub struct DesiredMonitoringConfig{
144 pub componentConfig: MonitoringComponentConfig
145}
146
147#[derive(Serialize, Deserialize, Default,Debug)]
148pub struct MonitoringComponentConfig{
149 pub enableComponents: Vec<String>
150}