Skip to main content

devops_armory/cloud/gcp/gke/config/backend_config/
models.rs

1use serde_derive::{Serialize, Deserialize};
2
3#[derive(Serialize, Deserialize, Default, Debug)]
4pub struct BackendConfig {
5    pub apiVersion: String,
6    pub kind: String,
7    pub metadata: BackendConfigMetadata,
8    pub spec: BackendConfigSpec
9}
10
11#[derive(Serialize, Deserialize, Default, Debug)]
12pub struct BackendConfigMetadata {
13    pub name: String,
14    pub namespace: String
15}
16
17#[derive(Serialize, Deserialize, Default, Debug)]
18pub struct BackendConfigSpec {
19    pub healthCheck: BackendConfigHealthcheck,
20    pub sessionAffinity: BackendConfigSessionAffinity,
21    pub connectionDraining: BackendConfigConnDrain,
22    pub timeoutSec: i32,
23    pub cdn: Option<CdnSettings>
24}
25
26#[derive(Serialize, Deserialize, Default, Debug)]
27pub struct BackendConfigHealthcheck {
28    pub timeoutSec: i32,
29    pub r#type: String,
30    pub requestPath: String,
31    pub port: i32,
32}
33
34#[derive(Serialize, Deserialize, Default, Debug)]
35pub struct BackendConfigSessionAffinity {
36    pub affinityType: String
37}
38
39#[derive(Serialize, Deserialize, Default, Debug)]
40pub struct BackendConfigConnDrain {
41    pub drainingTimeoutSec: i32
42}
43
44#[derive(Serialize, Deserialize, Default, Debug)]
45pub struct CdnSettings {
46    pub enable: bool,
47    pub cachePolicy: CachePolicy,
48    pub cacheMode: String,
49    pub clientTtl: i32,
50    pub defaultTtl: i32,
51    pub maxTtl: i32,
52    pub negativeCaching: bool,
53    pub negativeCachingPolicy: Vec<NegativeCache>,
54    pub serveWhileStale: i32
55}
56
57#[derive(Serialize, Deserialize, Default, Debug)]
58pub struct CachePolicy {
59    pub includeHost: bool,
60    pub includeQueryString: bool
61}
62
63#[derive(Serialize, Deserialize, Default, Debug)]
64pub struct NegativeCache {
65    pub code: i32,
66    pub ttl: i32
67}
68