devops_armory/cloud/gcp/gke/ingress/
models.rs1use serde_derive::{Serialize, Deserialize};
2
3#[derive(Serialize, Deserialize, Default, Debug)]
4pub struct Ingress {
5 pub apiVersion: String,
6 pub kind: String,
7 pub metadata: IngressMetadata,
8 pub spec: IngressSpecTemplateSpec
9}
10
11#[derive(Serialize, Deserialize, Default, Debug)]
12pub struct IngressMetadata {
13 pub name: String,
14 pub namespace: String,
15 pub annotations: IngressMetadataAnnotations,
16}
17
18#[derive(Serialize, Deserialize, Default, Debug)]
19pub struct IngressMetadataAnnotations {
20 #[serde(rename = "kubernetes.io/ingress.global-static-ip-name")]
21 pub kubernetes_io_ingress_global_static_ip_name: String,
22 #[serde(rename = "networking.gke.io/managed-certificates")]
23 pub networking_gke_io_managed_certificates: String,
24 }
27
28#[derive(Serialize, Deserialize, Default, Debug)]
29pub struct IngressSpecTemplateSpec {
30 pub rules: Vec<IngressSpecTemplateSpecRules>
31}
32
33#[derive(Serialize, Deserialize, Default, Debug)]
34pub struct IngressSpecTemplateSpecRules {
35 pub host: String,
36 pub http: SpecHttp
37}
38
39#[derive(Serialize, Deserialize, Default, Debug)]
40pub struct SpecHttp {
41 pub paths: Vec<Paths>
42}
43
44#[derive(Serialize, Deserialize, Default, Debug)]
45pub struct Paths {
46 pub path: String,
47 pub pathType: String,
48 pub backend: IngressBackend
49}
50
51#[derive(Serialize, Deserialize, Default, Debug)]
52pub struct IngressBackend {
53 pub service: IngressBackendService
54}
55
56#[derive(Serialize, Deserialize, Default, Debug)]
57pub struct IngressBackendService {
58 pub name: String,
59 pub port: BackendPort
60}
61
62#[derive(Serialize, Deserialize, Default, Debug)]
63pub struct BackendPort {
64 pub number: i32
65}
66
67