balena-sdk
Version:
The Balena JavaScript SDK
56 lines (55 loc) • 2.01 kB
TypeScript
import type { OptionsToResponse } from 'pinejs-client-core';
import type { Device } from '..';
export interface CurrentService {
commit: string;
raw_version: string;
release_id: number;
id: number;
image_id: number;
service_id: number;
download_progress: number | null;
status: string;
install_date: string;
}
export declare const getCurrentServiceDetailsPineExpand: {
readonly image_install: {
readonly $select: readonly ["id", "download_progress", "status", "install_date"];
readonly $filter: {
readonly status: {
readonly $ne: "deleted";
};
};
readonly $expand: {
readonly installs__image: {
readonly $select: readonly ["id"];
readonly $expand: {
readonly is_a_build_of__service: {
readonly $select: readonly ["id", "service_name"];
};
};
};
readonly is_provided_by__release: {
readonly $select: readonly ["id", "commit", "raw_version"];
readonly $expand: {
readonly belongs_to__application: {
readonly $select: readonly ["slug"];
};
};
};
};
};
};
export type DeviceWithServiceDetails = OptionsToResponse<Device['Read'], {
$expand: typeof getCurrentServiceDetailsPineExpand;
}, undefined>[number] & {
/** @deprecated in favor of `current_services_by_app` that split system services from application services */
current_services: {
[serviceName: string]: CurrentService[];
};
current_services_by_app: {
[slug: string]: Record<string, CurrentService[]>;
};
};
export declare const generateCurrentServiceDetails: (rawDevice: OptionsToResponse<Device["Read"], {
$expand: typeof getCurrentServiceDetailsPineExpand;
}, undefined>[number]) => DeviceWithServiceDetails;