Schema: Manifest

(v0.0.1)

Manifest

kind: Manifest
metadata:
  name: string
  labels:
    property1: string
    property2: string
  annotations:
    ? property1
    ? property2
spec:
  repos:
    - name: string
      repo: string
      path: string
      registry: string
      user: string
      token: string
  tools:
    - name: string
      version: string
      repo: string
      arch:
        - string
      schema: string
  models:
    - name: string
      version: string
      repo: string
      arch: string
      schema: string
      channels:
        - name: string
          alias: string
          expectedModelCount: 0
          selectors:
            property1: string
            property2: string
          annotations:
            ? property1
            ? property2
  simulations:
    - name: string
      parameters:
        transport: redispubsub
        environment:
          property1: string
          property2: string
      files:
        - name: string
          uri: string
          repo: string
          processing: string
          generate: string
          modelc: true
      models:
        - name: string
          model: string
          channels:
            - name: string
              alias: string
              expectedModelCount: 0
              selectors:
                property1: string
                property2: string
              annotations:
                ? property1
                ? property2
          files:
            - name: string
              uri: string
              repo: string
              processing: string
              generate: string
              modelc: true
  documentation:
    - name: string
      uri: string
      repo: string
      processing: string
      generate: string
      modelc: true

This schema object defines a Manifest kind. A Manifest kind is used to describe a compositional simulation in terms of Tools, Models, Configuration and other Files. The manifest can then be used to generate the simulation system.

Properties

NameTypeRequiredDescription
kindstringtruenone
metadataobjectfalseInformation relating to an object.
» namestringfalseThe name of the object.
» labelsobjectfalseIdentifying information used to identify objects within the system (e.g. giving a specific ’label’ to an object).
»» additionalPropertiesstringfalsenone
» annotationsobjectfalseNon identifying information (i.e. information specific to the object itself).
»» additionalPropertiesanyfalsenone
specManifestSpectruenone

Enumerated Values

PropertyValue
kindManifest

ManifestSpec

repos:
  - name: string
    repo: string
    path: string
    registry: string
    user: string
    token: string
tools:
  - name: string
    version: string
    repo: string
    arch:
      - string
    schema: string
models:
  - name: string
    version: string
    repo: string
    arch: string
    schema: string
    channels:
      - name: string
        alias: string
        expectedModelCount: 0
        selectors:
          property1: string
          property2: string
        annotations:
          ? property1
          ? property2
simulations:
  - name: string
    parameters:
      transport: redispubsub
      environment:
        property1: string
        property2: string
    files:
      - name: string
        uri: string
        repo: string
        processing: string
        generate: string
        modelc: true
    models:
      - name: string
        model: string
        channels:
          - name: string
            alias: string
            expectedModelCount: 0
            selectors:
              property1: string
              property2: string
            annotations:
              ? property1
              ? property2
        files:
          - name: string
            uri: string
            repo: string
            processing: string
            generate: string
            modelc: true
documentation:
  - name: string
    uri: string
    repo: string
    processing: string
    generate: string
    modelc: true

Properties

NameTypeRequiredDescription
repos[Repo]trueList of repositories where artifacts used by this simulation may be located.
tools[Tool]trueList of tools used by this simulation.
models[ModelDefinition]trueList of model libraries used by this simulation.
simulations[Simulation]trueList of individual simulations which comprise this compositional simulation.
documentation[File]falseList of documentation files supporting this simulation.

Repo

name: string
repo: string
path: string
registry: string
user: string
token: string

Define a repository where artifacts might be located. When a repository is referenced by a Tool, Model or File, that object will have the repository properties available as Task Variables which may be used to define a custom URI schema.

Properties

NameTypeRequiredDescription
namestringtrueName of the repository definition.
repostringfalseRepository URI (e.g. as used by the curl command).
pathstringfalseRepository path to the root location of artifacts.
registrystringfalseRegistry name/path as used by docker.
userstringtrueUser for authentication with the repository.
tokenstringtrueToken for authentication with the repository.

Tool

name: string
version: string
repo: string
arch:
  - string
schema: string

Define a tool which will be used by the simulation.

Properties

NameTypeRequiredDescription
namestringtrueName of the tool.
versionstringtrueVersion of the tool.
repostringfalseThe name of the repo where this tool can be downloaded from.
arch[string]falseArchitectures of the tool that should be downloaded.
schemastringfalseDefine the URI schema for the tool.

ModelDefinition

name: string
version: string
repo: string
arch: string
schema: string
channels:
  - name: string
    alias: string
    expectedModelCount: 0
    selectors:
      property1: string
      property2: string
    annotations:
      ? property1
      ? property2

Define a model library which will be used by the simulation. A model library may be referenced by one or more model instances (which themselves are defined in individual simulations).

Properties

NameTypeRequiredDescription
namestringtrueName of the model.
versionstringtrueVersion of the model.
repostringtrueThe name of the repository definition where this model can be downloaded from.
archstringfalseArchitecture of the model that should be downloaded. If more than one architecture of a model should be downloaded, then an additional model (with a different name) can be defined for each architecture.
schemastringfalseDefine the URI schema for the model.
channels[object]falseSome models (i.e. Simbus) require specification of channels.
» namestringfalseThe name of the channel, used when connecting this channel to the SimBus.
» aliasstringfalseThe alias of the channel, used when the channel name will be determined elsewhere.
» expectedModelCountintegerfalseIndicates how many models are expected to connect to this channel (used by SimBus only).
» selectorsobjectfalseIdentifying information used to identify objects within the system (e.g. giving a specific ’label’ to an object).
»» additionalPropertiesstringfalsenone
» annotationsobjectfalseNon identifying information (i.e. information specific to the object itself).
»» additionalPropertiesanyfalsenone

File

name: string
uri: string
repo: string
processing: string
generate: string
modelc: true

Define a file which will be used by a model of the composed simulation. File processing follows the sequence; all uri nodes are processed (e.g. downloaded/copied), all processing commands are executed, finally all generate commands are executed.

Properties

NameTypeRequiredDescription
namestringtruePath of the file relative to the root of the simulation package. This is the final path, after download or generation. When no processing or generate node is specified, the uri is downloaded/copied directly to the specified name.
uristringfalseThe URI where the file (or source for the file) is located. The uri may be a URL or local file. If a URL requires authentication, then include a repo in the file definition and the authentication will be taken from that referenced repo definition.
repostringfalseThe name of the repository definition where authentication details for this file are located.
processingstringfalseProcessing commands for the downloaded/copied file.
generatestringfalseGenerate commands that produce the (final) file.
modelcbooleanfalseWhen set to true this file is included as a parameter to the ModelC command.

ModelInstanceDefinition

name: string
model: string
channels:
  - name: string
    alias: string
    expectedModelCount: 0
    selectors:
      property1: string
      property2: string
    annotations:
      ? property1
      ? property2
files:
  - name: string
    uri: string
    repo: string
    processing: string
    generate: string
    modelc: true

Define a model instance, which belongs to a simulation.

Properties

NameTypeRequiredDescription
namestringtrueName of the model instance.
modelstringtrueThe model library used by this model instance.
channels[ModelDefinition/properties/channels/items]trueIndicates how channels are mapped to the model instance.
files[File]falseList of files used by the model instance.

Simulation

name: string
parameters:
  transport: redispubsub
  environment:
    property1: string
    property2: string
files:
  - name: string
    uri: string
    repo: string
    processing: string
    generate: string
    modelc: true
models:
  - name: string
    model: string
    channels:
      - name: string
        alias: string
        expectedModelCount: 0
        selectors:
          property1: string
          property2: string
        annotations:
          ? property1
          ? property2
    files:
      - name: string
        uri: string
        repo: string
        processing: string
        generate: string
        modelc: true

Define ain individual simulation.

Properties

NameTypeRequiredDescription
namestringtrueName of the simulation.
parametersobjectfalseParameters used to configure the simulation.
» transportstringtrueSelect from the supported transports.
» environmentobjectfalseDictionary of environment variables which control the simulation. The name of each element will be capitalized before being injected into the simulation environment.
»» additionalPropertiesstringfalsenone
files[File]falseList of files used by the simulation and/or shared between model instances.
models[ModelInstanceDefinition]trueList of model instance definitions included in the simulation.

Enumerated Values

PropertyValue
transportredispubsub

undefined