devops_armory/cloud/gcp/gke/gateway/
models.rs1use serde::{Deserialize, Serialize};
2
3#[derive(Debug, Serialize, Deserialize)]
4pub struct Gateway {
5 pub kind: String,
6 pub apiVersion: String,
7 pub metadata: Metadata,
8 pub spec: GatewaySpec,
9}
10
11#[derive(Debug, Serialize, Deserialize)]
12pub struct Metadata {
13 pub name: String,
14 pub namespace: String,
15 pub resourceVersion: Option<String>
16}
17
18#[derive(Debug, Serialize, Deserialize)]
19pub struct GatewaySpec {
20 pub gatewayClassName: String,
21 pub listeners: Vec<Listener>,
22 pub addresses: Vec<Address>,
23}
24
25#[derive(Debug, Serialize, Deserialize)]
26pub struct Listener {
27 pub name: String,
28 pub protocol: String,
29 pub port: u16,
30 pub allowedRoutes: AllowedRoutes,
31 pub tls: Option<Tls>,
32}
33
34#[derive(Debug, Serialize, Deserialize)]
35pub struct AllowedRoutes {
36 pub kinds: Vec<RouteKind>,
37 pub namespaces: NamespaceSelector,
38}
39
40#[derive(Debug, Serialize, Deserialize)]
41pub struct RouteKind {
42 pub kind: String,
43}
44
45#[derive(Debug, Serialize, Deserialize)]
46pub struct NamespaceSelector {
47 pub from: String,
48}
49
50#[derive(Debug, Serialize, Deserialize)]
51pub struct Tls {
52 pub mode: String,
53 pub options: TlsOptions,
54}
55
56#[derive(Debug, Serialize, Deserialize)]
57pub struct TlsOptions {
58 #[serde(rename = "networking.gke.io/pre-shared-certs")]
59 pub pre_shared_certs: String,
60}
61
62#[derive(Debug, Serialize, Deserialize)]
63pub struct Address {
64 pub r#type: String,
65 pub value: String,
66}
67
68#[derive(Debug, Serialize, Deserialize, Default)]
71pub struct GatewayGet {
72 pub metadata: GatewayMetadataGet,
73}
74
75#[derive(Debug, Serialize, Deserialize, Default)]
76pub struct GatewayMetadataGet {
77 pub resourceVersion: String
78}