Skip to main content

devops_armory/cloud/gcp/gke/service/
models.rs

1use serde_derive::{Serialize, Deserialize};
2
3#[derive(Serialize, Deserialize, Default,Debug)]
4pub struct Service {
5    pub apiVersion: String,
6    pub kind: String,
7    pub metadata: ServiceMetadata,
8    pub spec: ServiceSpecTemplateSpec
9}
10
11#[derive(Serialize, Deserialize, Default,Debug)]
12pub struct ServiceMetadata {
13    pub name: String,
14    pub namespace: String,
15    pub annotations: ServiceAnnotations
16}
17
18#[derive(Serialize, Deserialize, Default,Debug)]
19pub struct ServiceSpec {
20    pub template: ServiceSpecTemplate,
21}
22
23#[derive(Serialize, Deserialize, Default,Debug)]
24pub struct ServiceAnnotations {
25    #[serde(rename = "cloud.google.com/backend-config")]
26    pub cloud_google_com_backend_config: String,
27}
28
29#[derive(Serialize, Deserialize, Default,Debug)]
30pub struct ServiceSpecTemplate {
31    pub spec: ServiceSpecTemplateSpec,
32}
33
34#[derive(Serialize, Deserialize, Default,Debug)]
35pub struct ServiceSpecTemplateSpec {
36    pub selector: ServiceSpecTemplateSpecSelector,
37    pub ports: Vec<ServiceSpecTemplateSpecPorts>
38}
39
40#[derive(Serialize, Deserialize, Default,Debug)]
41pub struct ServiceSpecTemplateSpecSelector {
42    pub app: String,
43}
44
45#[derive(Serialize, Deserialize, Default,Debug)]
46pub struct ServiceSpecTemplateSpecPorts {
47    pub name: String,
48    pub protocol: String,
49    pub port: i32,
50    pub targetPort: i32
51}