Skip to main content

rusteze_common/
lib.rs

1use serde::{Deserialize, Serialize};
2
3#[derive(Serialize, Deserialize, Debug, Clone)]
4pub struct RoutesConfig {
5    pub project: Option<ProjectConfig>,
6    pub deployment: Option<DeploymentConfig>,
7    pub route: std::collections::HashMap<String, RouteConfig>,
8    pub topic: Option<std::collections::HashMap<String, TopicConfig>>,
9    pub db: Option<std::collections::HashMap<String, DbConfig>>,
10    pub auth: Option<std::collections::HashMap<String, AuthHandlerConfig>>,
11}
12
13#[derive(Serialize, Deserialize, Debug, Clone)]
14pub struct ProjectConfig {
15    pub name: String,
16    pub version: String,
17}
18
19#[derive(Serialize, Deserialize, Debug, Clone)]
20pub struct DeploymentConfig {
21    pub runtime: Option<String>,
22    pub memory: Option<String>,
23    pub timeout: Option<String>,
24    pub environment: Option<String>,
25    pub arn: Option<String>,
26}
27
28#[derive(Serialize, Deserialize, Debug, Clone)]
29pub struct RouteConfig {
30    pub method: String,
31    pub path: String,
32    pub binary: String,
33    pub description: Option<String>,
34    pub parameters: Option<std::collections::HashMap<String, ParameterConfig>>,
35    pub deployment: Option<DeploymentConfig>,
36    pub auth: Option<AuthConfig>,
37}
38
39#[derive(Serialize, Deserialize, Debug, Clone)]
40pub struct AuthConfig {
41    pub handler: String,
42    pub required: bool,
43}
44
45#[derive(Serialize, Deserialize, Debug, Clone)]
46pub struct ParameterConfig {
47    #[serde(rename = "type")]
48    pub param_type: String,
49    pub source: String,
50    pub required: Option<bool>,
51    pub description: Option<String>,
52}
53
54#[derive(Serialize, Deserialize, Debug, Clone)]
55pub struct TopicConfig {
56    pub name: String,
57    pub subscribers: std::collections::HashMap<String, SubscriberConfig>,
58    pub description: Option<String>,
59}
60
61#[derive(Serialize, Deserialize, Debug, Clone)]
62pub struct SubscriberConfig {
63    pub binary: String,
64    pub description: Option<String>,
65    pub deployment: Option<DeploymentConfig>,
66}
67
68#[derive(Serialize, Deserialize, Debug, Clone)]
69pub struct DbConfig {
70    pub name: String,
71    pub description: Option<String>,
72}
73
74#[derive(Serialize, Deserialize, Debug, Clone)]
75pub struct AuthHandlerConfig {
76    pub binary: String,
77    pub description: Option<String>,
78    pub deployment: Option<DeploymentConfig>,
79}