1 import Base 2 import ../../relationship/type.bend as Rel 3 import ../../category/type.bend as K 4 import ./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. 7 type 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. 15 type 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. 22 type 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>}