integrationos_domain/domain/microservice/
mod.rs

1pub mod region;
2
3use bson::oid::ObjectId;
4use bson::DateTime;
5use serde::{Deserialize, Serialize};
6
7#[derive(Debug, Clone, Deserialize, Serialize)]
8#[serde(rename_all = "camelCase")]
9pub struct MicroService {
10    #[serde(rename = "_id")]
11    pub id: ObjectId,
12    pub name: String,
13    pub class: String,
14    pub r#type: String,
15    pub tags: Vec<String>,
16    pub host: String,
17    pub region: String,
18    // TODO ui
19    #[serde(rename = "__microservice__")]
20    pub microservice: MicroServiceMicroService,
21    #[serde(rename = "__buildableTtl__")]
22    pub buildable_ttl: DateTime,
23    pub buildable_id: String,
24    pub author: MicroServiceAuthor,
25    #[serde(rename = "__global")]
26    pub global: bool,
27    pub frontend: MicroServiceFrontend,
28}
29
30#[derive(Debug, Clone, Deserialize, Serialize)]
31#[serde(rename_all = "camelCase")]
32pub struct MicroServiceMicroService {
33    #[serde(rename = "__global")]
34    pub global: bool,
35    pub url: String,
36    pub r#type: String,
37    pub version: String,
38    // TODO history
39    pub buildable_package: MicroServiceMicroServiceBuildablePackage,
40    // TODO settings
41    pub instance: MicroServiceMicroServiceInstance,
42}
43
44#[derive(Debug, Clone, Deserialize, Serialize)]
45pub struct MicroServiceMicroServiceBuildablePackage {
46    pub name: String,
47}
48
49#[derive(Debug, Clone, Deserialize, Serialize)]
50#[serde(rename_all = "camelCase")]
51pub struct MicroServiceMicroServiceInstance {
52    pub instance_id: String,
53    pub url: String,
54}
55
56#[derive(Debug, Clone, Deserialize, Serialize)]
57#[serde(rename_all = "camelCase")]
58pub struct MicroServiceAuthor {
59    #[serde(rename = "_id")]
60    pub id: ObjectId,
61    pub first_name: String,
62}
63
64#[derive(Debug, Clone, Deserialize, Serialize)]
65#[serde(rename_all = "camelCase")]
66pub struct MicroServiceFrontend {
67    pub show_details: bool,
68}