Skip to content

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.

Scroll to zoom · Drag to pan · Use controls at bottom-right to zoom in/out/reset

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