/** * A registry definition. It points to a git repository where the index file is hosted. * Each registry will have a unique selector, which is essentially an alias to refer to the registry * for dependencies. */ export type Registry = { selector: string; repoUrl: string; token?: string; lastUpdated?: string; }; /** * Artifact entry in a registry module. */ export interface RegistryArtifact { name: string; description?: string; requirements: Requirements; marketplace: boolean; type: "component" | "service"; roles: Role[]; schema: object; location: string; icon?: string; categories?: string[]; tags?: string[]; } export interface Role { name: string; type: "component" | "service"; roles: Role[]; } interface Requirements { cpu: number; memory: number; } /** * Each module of the index file */ export interface RegistryModule { domain: string; version: string; location: string; checksum: string; description?: string; releaseDate?: string; artifacts: RegistryArtifact[]; } /** * The structure of the registry index file */ export interface RegistryIndex { modules: RegistryModule[]; } export {};