export type TCoreStoreCapability = 'database' | 'objectstorage'; export interface ICoreStoreProvisionRequest { serviceId: string; serviceName?: string; capabilities?: TCoreStoreCapability[]; database?: boolean; db?: boolean; objectstorage?: boolean; s3?: boolean; } export interface ICoreStoreDeprovisionRequest { serviceId: string; } export interface ICoreStoreResourceBase { capability: TCoreStoreCapability; provider: string; resourceName: string; env: Record; createdAt: number; } export interface ICoreStoreDatabaseResource extends ICoreStoreResourceBase { capability: 'database'; provider: 'smartdb'; databaseName: string; username: string; } export interface ICoreStoreObjectStorageResource extends ICoreStoreResourceBase { capability: 'objectstorage'; provider: 'smartstorage'; bucketName: string; accessKeyId: string; } export type TCoreStoreResource = ICoreStoreDatabaseResource | ICoreStoreObjectStorageResource; export interface ICoreStoreServiceManifestEntry { serviceId: string; serviceName?: string; resources: Partial>; env: Record; createdAt: number; updatedAt: number; } export interface ICoreStoreManifest { version: 1; services: Record; } export interface ICoreStoreProvisionResponse { serviceId: string; serviceName?: string; resources: TCoreStoreResource[]; env: Record; } export interface ICoreStoreSecretFile { masterSecret: string; dbRootPassword: string; s3AdminAccessKeyId: string; s3AdminSecretAccessKey: string; }