33 lines
667 B
TypeScript
33 lines
667 B
TypeScript
|
import s from "@sharkitek/core";
|
||
|
|
||
|
/**
|
||
|
* A **Software** describes the required *services* and *application environment* to run an application.
|
||
|
*/
|
||
|
export class Software {
|
||
|
/**
|
||
|
* Unique software UUID.
|
||
|
*/
|
||
|
id!: string;
|
||
|
|
||
|
/**
|
||
|
* The name of the software must be unique.
|
||
|
* It is a human-understandable identifier.
|
||
|
*/
|
||
|
name!: string;
|
||
|
|
||
|
/**
|
||
|
* Software variants identifiers, with their associated metadata.
|
||
|
*/
|
||
|
variants!: Map<string, any>;
|
||
|
}
|
||
|
|
||
|
export const SoftwareModel = s.defineModel({
|
||
|
Class: Software,
|
||
|
identifier: "id",
|
||
|
properties: {
|
||
|
id: s.property.string(),
|
||
|
name: s.property.string(),
|
||
|
variants: s.property.stringMap(s.property.object({})),
|
||
|
},
|
||
|
});
|