domain/architecture/system/container/type.bend
near-v-framework@0.3.0.2 · 23 lines · 0 definitions
1import Base
2import near-v-framework@0.3.0.2/domain/architecture/relationship/type.bend as Rel
3import near-v-framework@0.3.0.2/domain/architecture/category/type.bend as K
4import near-v-framework@0.3.0.2/domain/architecture/system/container/component/type.bend as Co
5
6# Who can reach it: its own machine, the local network, the tailnet, the device it is on, anyone.
7type Exposure is Data:
8 Local{}
9 Lan{}
10 Tailnet{}
11 Device{}
12 Public{}
13
14# Whether the system builds it, or uses it as it is.
15type Ownership is Data:
16 Ours{}
17 Theirs{}
18
19# Something that runs on its own: an app, an API, a database, a command. Its technology: the vendors
20# behind it, the frameworks and libraries it is built with, and its languages; `source` is its folder
21# in the repository ("" when it has none), and `migrating` the declared technology it does not use yet.
22type Container is Data:
23 Container{key: String, name: String, description: String, category: K.Category, ownership: Ownership, exposure: Exposure, capabilities: List<&2, K.Capability>, source: String, vendors: List<&2, String>, frameworks: List<&2, String>, libraries: List<&2, String>, languages: List<&2, String>, migrating: List<&2, String>, components: List<&2, Co.Component>, uses: List<&2, Rel.Relationship>}