32 lines
667 B
TypeScript
32 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({})),
|
|
},
|
|
});
|