import * as plugins from '../plugins.js'; export type TBaseOsImageArchitecture = 'amd64' | 'arm64' | 'rpi'; export type TBaseOsImageKind = 'ubuntu-iso' | 'balena-raw'; export type TBaseOsImageSourcePreset = | 'balena-generic-amd64' | 'balena-generic-aarch64' | 'balena-raspberrypi4-64'; export type TBaseOsImageBuildStatus = 'queued' | 'building' | 'ready' | 'failed' | 'cancelled'; export interface IBaseOsImageArtifact { bucketName: string; key: string; filename: string; contentType: string; size: number; sha256: string; createdAt: number; } export interface IBaseOsImageBuildPublic { id: string; data: { status: TBaseOsImageBuildStatus; architecture: TBaseOsImageArchitecture; imageKind?: TBaseOsImageKind; cloudlyUrl: string; sourceImageUrl?: string; sourceImagePreset?: TBaseOsImageSourcePreset; balenaOsVersion?: string; ubuntuVersion?: string; hostname?: string; wifiSsid?: string; sshPublicKey?: string; artifact?: IBaseOsImageArtifact; errorText?: string; logs: string[]; createdAt: number; updatedAt: number; startedAt?: number; completedAt?: number; expiresAt?: number; }; } @plugins.smartdata.managed() export class BaseOsImageBuild extends plugins.smartdata.SmartDataDbDoc< BaseOsImageBuild, IBaseOsImageBuildPublic > { constructor(optionsArg?: IBaseOsImageBuildPublic & { provisioningTokenHash?: string; provisioningTokenConsumedAt?: number; downloadTokenHash?: string; downloadTokenExpiresAt?: number; }) { super(); if (optionsArg) { Object.assign(this, optionsArg); } } @plugins.smartdata.unI() public id!: string; @plugins.smartdata.svDb() public provisioningTokenHash!: string; @plugins.smartdata.svDb() public provisioningTokenConsumedAt?: number; @plugins.smartdata.svDb() public downloadTokenHash?: string; @plugins.smartdata.svDb() public downloadTokenExpiresAt?: number; @plugins.smartdata.svDb() public data!: IBaseOsImageBuildPublic['data']; public toPublicBuild(): IBaseOsImageBuildPublic { return { id: this.id, data: this.data, }; } }