devops_armory/cloud/gcp/gke/config/backend_config/
models.rs1use 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