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: Option<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: Option<String>,
22 #[serde(rename = "networking.gke.io/managed-certificates")]
23 pub networking_gke_io_managed_certificates: Option<String>,
24 #[serde(rename = "kubernetes.io/ingress.class")]
25 pub kubernetes_io_ingress_class: Option<String>
26}
27
28#[derive(Serialize, Deserialize, Default, Debug)]
29pub struct IngressSpecTemplateSpec {
30 pub tls: Option<Vec<IngressSpecTemplateTlsRules>>,
31 pub rules: Vec<IngressSpecTemplateSpecRules>
32}
33
34#[derive(Serialize, Deserialize, Default, Debug)]
35pub struct IngressSpecTemplateTlsRules {
36 pub host: Vec<String>,
37 pub secretName: String
38}
39
40#[derive(Serialize, Deserialize, Default, Debug)]
41pub struct IngressSpecTemplateSpecRules {
42 pub host: String,
43 pub http: SpecHttp
44}
45
46#[derive(Serialize, Deserialize, Default, Debug)]
47pub struct SpecHttp {
48 pub paths: Vec<Paths>
49}
50
51#[derive(Serialize, Deserialize, Default, Debug)]
52pub struct Paths {
53 pub path: String,
54 pub pathType: String,
55 pub backend: IngressBackend
56}
57
58#[derive(Serialize, Deserialize, Default, Debug)]
59pub struct IngressBackend {
60 pub service: IngressBackendService
61}
62
63#[derive(Serialize, Deserialize, Default, Debug)]
64pub struct IngressBackendService {
65 pub name: String,
66 pub port: BackendPort
67}
68
69#[derive(Serialize, Deserialize, Default, Debug)]
70pub struct BackendPort {
71 pub number: i32
72}
73
74