Margo Data Model
Margo specification involves complex, interrelated data structures that are used for multiple, different purposes. This data model documents the mentioned data structures and their relationships.
General information about the Margo data model
The Margo data model has been modelled with LinkML a modelling language that does not only offer very poserfull modelling capabilities, but also very useful conversion and validation tooling.
All examples shown on the documentation of the classes (see ApplicationDescription for an example) are being automatically validated against the model before a new version of the specification gets published.
The whole HTML documentation of the data model is also automatically generated from the model. This documentation provides some graphics that help visualicing the relationship between classes.
Also following OpenAPI v3.0.3 YAML specifications are being automatically generated from the model:
Interfacing Classes
These are the classes directly participating in Margo interfaces (e.g. APIs):
| Class | Description |
|---|---|
| ApplicationDescription | Root class for an application description |
| ApplicationDeployment | A class representing the desired state of an entity |
| DeviceCapabilitiesManifest | Capabilities of a device on which applications can be deployed |
| DesiredStateManifest | Manifest from the Workload Fleet Manager, representing the complete desired w... |
| DeploymentStatusManifest |
Complete Margo data model
Detailed Class Diagram
This is a class diagram showing all the classes involved in the Margo data model. Use the mouse wheel to zoom and click-drag to pan. The controls in the bottom-right corner allow zooming in, resetting, and zooming out.
All Classes
These are all the classes involved in the Margo data model:
| Class | Description |
|---|---|
| ApplicationDeployment | A class representing the desired state of an entity |
| ApplicationDescription | Root class for an application description |
| ApplicationMetadata | Metadata about the application |
| Author | Information about the application's author |
| Bundle | Describes an archive containing all referenced ApplicationDeployment YAMLs |
| Catalog | Catalog metadata for displaying the application |
| CatalogApplicationMetadata | Metadata specific to the application |
| CommunicationInterface | Communication interface of a device |
| Component | A class representing a component of a deployment profile |
| ComposeComponent | |
| HelmComponent | |
| ComponentProperties | Properties dictionary for component deployment details |
| Configuration | Configuration layout and validation rules |
| CPU | CPU element specifying the CPU requirements for the application |
| Deployment | List of deployment objects describing each workload |
| DeploymentAnnotations | A class representing annotations |
| DeploymentMetadata | Metadata associated with the desired state |
| DeploymentProfile | Represents a deployment configuration for the application |
| ComposeDeploymentProfile | |
| DeploymentProfileDescription | Represents a deployment configuration for the application |
| ComposeDeploymentProfileDescription | |
| HelmDeploymentProfileDescription | |
| HelmDeploymentProfile | |
| DeploymentStatusManifest | |
| DesiredStateManifest | Manifest from the Workload Fleet Manager, representing the complete desired w... |
| DeviceCapabilitiesManifest | Capabilities of a device on which applications can be deployed |
| Error | |
| Organization | Information about the providing organization |
| Parameter | Defines a configurable parameter for the application |
| Peripheral | Peripheral hardware of a device |
| Properties | |
| Resources | Required resources element specifying the resources required to install the a... |
| Schema | Defines data type and rules for validating user provided parameter values |
| BooleanValidationSchema | Extends schema to define a boolean-specific set of validation rules that can ... |
| NumericDoubleValidationSchema | Extends schema to define a double-specific set of validation rules that can b... |
| NumericIntegerValidationSchema | Extends schema to define a integer-specific set of validation rules that can ... |
| SelectValidationSchema | Extends schema to define a specific set of validation rules that can be used ... |
| TextValidationSchema | Extends schema to define a string/text-specific set of validation rules that ... |
| Section | Named sections within the configuration layout |
| Setting | Individual configuration settings |
| Spec | Specification details of the desired state |
| Status | |
| ComponentStatus | Status of a component deployment |
| Target | Specifies where the parameter applies in the deployment |