UNPKG

balena-sdk

Version:
1,121 lines • 67.9 kB
import type { InjectedDependenciesParam, InjectedOptionsParam, Application } from '..'; import { type MergePineOptions } from '../util'; import type { ODataOptionsWithoutCount, OptionsToResponse } from 'pinejs-client-core'; declare const getApplicationModel: (deps: InjectedDependenciesParam, opts: InjectedOptionsParam) => { _getId: (slugOrUuidOrId: string | number) => Promise<number>; /** * @summary Get Dashboard URL for a specific application * @function getDashboardUrl * @memberof balena.models.application * * @param {Number} id - Application id * * @returns {String} - Dashboard URL for the specific application * @throws Exception if the id is not a finite number * * @example * balena.models.application.get('myorganization/myapp').then(function(application) { * const dashboardApplicationUrl = balena.models.application.getDashboardUrl(application.id); * console.log(dashboardApplicationUrl); * }); */ getDashboardUrl(id: number): string; /** * @summary Get all applications * @name getAll * @public * @function * @memberof balena.models.application * * @param {Object} [options={}] - extra pine options to use * @param {String} [context] - extra access filters, undefined or 'directly_accessible' * @fulfil {Object[]} - applications * @returns {Promise} * * @example * balena.models.application.getAll().then(function(applications) { * console.log(applications); * }); */ getAll<T extends ODataOptionsWithoutCount<Application["Read"]>>(options?: T, context?: "directly_accessible"): Promise<OptionsToResponse<Application["Read"], T, undefined>>; /** * @summary Get all applications directly accessible by the user * @name getAllDirectlyAccessible * @public * @function * @memberof balena.models.application * * @param {Object} [options={}] - extra pine options to use * @fulfil {Object[]} - applications * @returns {Promise} * * @example * balena.models.application.getAllDirectlyAccessible().then(function(applications) { * console.log(applications); * }); */ getAllDirectlyAccessible<T extends ODataOptionsWithoutCount<Application["Read"]>>(options?: T): Promise<OptionsToResponse<Application["Read"], T, undefined>>; /** * @summary Get all applications of an organization * @name getAllByOrganization * @public * @function * @memberof balena.models.application * * @param {Number|String} orgHandleOrId - organization handle (string) or id (number) * @param {Object} [options={}] - extra pine options to use * @fulfil {Object[]} - applications * @returns {Promise} * * @example * balena.models.application.getAllByOrganization('myorganization').then(function(applications) { * console.log(applications); * }); * * @example * const applications = await sdk.models.application.getAllByOrganization('myorganization', { * $select: ['app_name', 'slug'], * $expand: { * owns__device: { * $select: ['uuid', 'overall_status', 'is_connected_to_vpn', 'api_heartbeat_state'], * }, * }, * }); */ getAllByOrganization<T extends ODataOptionsWithoutCount<Application["Read"]>>(orgHandleOrId: number | string, options?: T): Promise<OptionsToResponse<Application["Read"], T, undefined>>; /** * @summary Get a single application * @name get * @public * @function * @memberof balena.models.application * * @param {String|Number} slugOrUuidOrId - application slug (string), uuid (string) or id (number) * @param {Object} [options={}] - extra pine options to use * @param {String} [context] - extra access filters, undefined or 'directly_accessible' * @fulfil {Object} - application * @returns {Promise} * * @example * balena.models.application.get('myorganization/myapp').then(function(application) { * console.log(application); * }); * * @example * balena.models.application.get('1bf99a68cf9e4266986e6dec7a6e8f46').then(function(application) { * console.log(application); * }); * * @example * balena.models.application.get(123).then(function(application) { * console.log(application); * }); */ get<T extends ODataOptionsWithoutCount<Application["Read"]>>(slugOrUuidOrId: string | number, options?: T, context?: "directly_accessible"): Promise<OptionsToResponse<Application["Read"], T, undefined>[number]>; /** * @summary Get a single application directly accessible by the user * @name getDirectlyAccessible * @public * @function * @memberof balena.models.application * * @param {String|Number} slugOrUuidOrId - application slug (string), uuid (string) or id (number) * @param {Object} [options={}] - extra pine options to use * @fulfil {Object} - application * @returns {Promise} * * @example * balena.models.application.getDirectlyAccessible('myorganization/myapp').then(function(application) { * console.log(application); * }); * * @example * balena.models.application.getDirectlyAccessible(123).then(function(application) { * console.log(application); * }); */ getDirectlyAccessible<T extends ODataOptionsWithoutCount<Application["Read"]>>(slugOrUuidOrId: string | number, options?: T): Promise<OptionsToResponse<Application["Read"], T, undefined>[number]>; /** * @summary Get a single application and its devices, along with each device's * associated services' essential details * @name getWithDeviceServiceDetails * @public * @function * @memberof balena.models.application * * @description * This method does not map exactly to the underlying model: it runs a * larger prebuilt query, and reformats it into an easy to use and * understand format. If you want more control, or to see the raw model * directly, use `application.get(uuidOrId, options)` instead. * * @param {String|Number} slugOrUuidOrId - application slug (string), uuid (string) or id (number) * @param {Object} [options={}] - extra pine options to use * @fulfil {Object} - application * @returns {Promise} * * @example * balena.models.application.getWithDeviceServiceDetails('myorganization/myapp').then(function(device) { * console.log(device); * }) * * @example * balena.models.application.getWithDeviceServiceDetails(123).then(function(device) { * console.log(device); * }) */ getWithDeviceServiceDetails<T extends ODataOptionsWithoutCount<Application["Read"]>>(slugOrUuidOrId: string | number, options?: T): Promise<OptionsToResponse<{ created_at: import("@balena/sbvr-types").Types["Date Time"]["Read"]; id: import("@balena/sbvr-types").Types["Integer"]["Read"]; actor: { __id: import("..").Actor["Read"]["id"]; } | [import("..").Actor["Read"]]; should_track_latest_release: import("@balena/sbvr-types").Types["Boolean"]["Read"]; is_of__class: "fleet" | "block" | "app"; organization: { __id: import("..").Organization["Read"]["id"]; } | [import("..").Organization["Read"]]; app_name: import("@balena/sbvr-types").Types["Text"]["Read"]; slug: import("@balena/sbvr-types").Types["Short Text"]["Read"]; is_for__device_type: { __id: import("..").DeviceType["Read"]["id"]; } | [import("..").DeviceType["Read"]]; should_be_running__release: { __id: import("..").Release["Read"]["id"]; } | [import("..").Release["Read"]] | [] | null; application_type: { __id: import("..").ApplicationType["Read"]["id"]; } | [import("..").ApplicationType["Read"]]; is_host: import("@balena/sbvr-types").Types["Boolean"]["Read"]; is_archived: import("@balena/sbvr-types").Types["Boolean"]["Read"]; uuid: import("@balena/sbvr-types").Types["Text"]["Read"]; is_public: import("@balena/sbvr-types").Types["Boolean"]["Read"]; is_accessible_by_support_until__date: import("@balena/sbvr-types").Types["Date Time"]["Read"] | null; is_discoverable: import("@balena/sbvr-types").Types["Boolean"]["Read"]; is_stored_at__repository_url: import("@balena/sbvr-types").Types["Text"]["Read"] | null; application__has__env_var_name?: Array<import("..").ApplicationEnvironmentVariable["Read"]>; application_environment_variable?: Array<import("..").ApplicationEnvironmentVariable["Read"]>; application__has__config_var_name?: Array<import("..").ApplicationConfigVariable["Read"]>; application_config_variable?: Array<import("..").ApplicationConfigVariable["Read"]>; application__has__service_name?: Array<import("..").Service["Read"]>; service?: Array<import("..").Service["Read"]>; application__has__tag_key?: Array<import("..").ApplicationTag["Read"]>; application_tag?: Array<import("..").ApplicationTag["Read"]>; application__has__domain?: Array<import("..").ApplicationDomainMapping["Read"]>; application_domain_mapping?: Array<import("..").ApplicationDomainMapping["Read"]>; application__has__build_var_name?: Array<import("..").BuildEnvironmentVariable["Read"]>; build_environment_variable?: Array<import("..").BuildEnvironmentVariable["Read"]>; owns__device?: Array<import("..").Device["Read"]>; owns__release?: Array<import("..").Release["Read"]>; owns__public_device?: Array<import("..").PublicDevice["Read"]>; team__grants_access_to__application?: Array<import("..").TeamApplicationAccess["Read"]>; team_application_access?: Array<import("..").TeamApplicationAccess["Read"]>; is_accessible_by__team?: Array<import("..").TeamApplicationAccess["Read"]>; user__is_member_of__application?: Array<import("..").UserIsMemberOfApplication["Read"]>; user_application_membership?: Array<import("..").UserIsMemberOfApplication["Read"]>; includes__user?: Array<import("..").UserIsMemberOfApplication["Read"]>; includes__user__is_member_of__application?: Array<import("..").UserIsMemberOfApplication["Read"]>; includes__user_application_membership?: Array<import("..").UserIsMemberOfApplication["Read"]>; invitee__is_invited_to__application?: Array<import("..").InviteeIsInvitedToApplication["Read"]>; application_invite?: Array<import("..").InviteeIsInvitedToApplication["Read"]>; invitee?: Array<import("..").InviteeIsInvitedToApplication["Read"]>; is_directly_accessible_by__user?: Array<import("..").UserHasDirectAccessToApplication["Read"]>; can_use__application_as_host?: Array<import("..").ApplicationCanUseApplicationAsHost["Read"]>; }, MergePineOptions<{ created_at: import("@balena/sbvr-types").Types["Date Time"]["Read"]; id: import("@balena/sbvr-types").Types["Integer"]["Read"]; actor: { __id: import("..").Actor["Read"]["id"]; } | [import("..").Actor["Read"]]; should_track_latest_release: import("@balena/sbvr-types").Types["Boolean"]["Read"]; is_of__class: "fleet" | "block" | "app"; organization: { __id: import("..").Organization["Read"]["id"]; } | [import("..").Organization["Read"]]; app_name: import("@balena/sbvr-types").Types["Text"]["Read"]; slug: import("@balena/sbvr-types").Types["Short Text"]["Read"]; is_for__device_type: { __id: import("..").DeviceType["Read"]["id"]; } | [import("..").DeviceType["Read"]]; should_be_running__release: { __id: import("..").Release["Read"]["id"]; } | [import("..").Release["Read"]] | [] | null; application_type: { __id: import("..").ApplicationType["Read"]["id"]; } | [import("..").ApplicationType["Read"]]; is_host: import("@balena/sbvr-types").Types["Boolean"]["Read"]; is_archived: import("@balena/sbvr-types").Types["Boolean"]["Read"]; uuid: import("@balena/sbvr-types").Types["Text"]["Read"]; is_public: import("@balena/sbvr-types").Types["Boolean"]["Read"]; is_accessible_by_support_until__date: import("@balena/sbvr-types").Types["Date Time"]["Read"] | null; is_discoverable: import("@balena/sbvr-types").Types["Boolean"]["Read"]; is_stored_at__repository_url: import("@balena/sbvr-types").Types["Text"]["Read"] | null; application__has__env_var_name?: Array<import("..").ApplicationEnvironmentVariable["Read"]>; application_environment_variable?: Array<import("..").ApplicationEnvironmentVariable["Read"]>; application__has__config_var_name?: Array<import("..").ApplicationConfigVariable["Read"]>; application_config_variable?: Array<import("..").ApplicationConfigVariable["Read"]>; application__has__service_name?: Array<import("..").Service["Read"]>; service?: Array<import("..").Service["Read"]>; application__has__tag_key?: Array<import("..").ApplicationTag["Read"]>; application_tag?: Array<import("..").ApplicationTag["Read"]>; application__has__domain?: Array<import("..").ApplicationDomainMapping["Read"]>; application_domain_mapping?: Array<import("..").ApplicationDomainMapping["Read"]>; application__has__build_var_name?: Array<import("..").BuildEnvironmentVariable["Read"]>; build_environment_variable?: Array<import("..").BuildEnvironmentVariable["Read"]>; owns__device?: Array<import("..").Device["Read"]>; owns__release?: Array<import("..").Release["Read"]>; owns__public_device?: Array<import("..").PublicDevice["Read"]>; team__grants_access_to__application?: Array<import("..").TeamApplicationAccess["Read"]>; team_application_access?: Array<import("..").TeamApplicationAccess["Read"]>; is_accessible_by__team?: Array<import("..").TeamApplicationAccess["Read"]>; user__is_member_of__application?: Array<import("..").UserIsMemberOfApplication["Read"]>; user_application_membership?: Array<import("..").UserIsMemberOfApplication["Read"]>; includes__user?: Array<import("..").UserIsMemberOfApplication["Read"]>; includes__user__is_member_of__application?: Array<import("..").UserIsMemberOfApplication["Read"]>; includes__user_application_membership?: Array<import("..").UserIsMemberOfApplication["Read"]>; invitee__is_invited_to__application?: Array<import("..").InviteeIsInvitedToApplication["Read"]>; application_invite?: Array<import("..").InviteeIsInvitedToApplication["Read"]>; invitee?: Array<import("..").InviteeIsInvitedToApplication["Read"]>; is_directly_accessible_by__user?: Array<import("..").UserHasDirectAccessToApplication["Read"]>; can_use__application_as_host?: Array<import("..").ApplicationCanUseApplicationAsHost["Read"]>; }, { readonly $expand: { readonly owns__device: { readonly $expand: { 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"]; }; }; }; }; }; }; }; }; }, T>, string | number> & { owns__device: import("..").DeviceWithServiceDetails[]; }>; /** * @summary Get a single application using the appname and the handle of the owning organization * @name getAppByName * @public * @function * @memberof balena.models.application * * @param {String} appName - application name * @param {Object} [options={}] - extra pine options to use * @param {String} [context] - extra access filters, undefined or 'directly_accessible' * @fulfil {Object} - application * @returns {Promise} * * @example * balena.models.application.getAppByName('MyApp').then(function(application) { * console.log(application); * }); */ getAppByName<T extends ODataOptionsWithoutCount<Application["Read"]>>(appName: string, options?: T, context?: "directly_accessible"): Promise<OptionsToResponse<Application["Read"], T, undefined>[number]>; /** * @summary Check if an application exists * @name has * @public * @function * @memberof balena.models.application * * @param {String|Number} slugOrUuidOrId - application slug (string), uuid (string) or id (number) * @fulfil {Boolean} - has application * @returns {Promise} * * @example * balena.models.application.has('myorganization/myapp').then(function(hasApp) { * console.log(hasApp); * }); * * @example * balena.models.application.has(123).then(function(hasApp) { * console.log(hasApp); * }); */ has: (slugOrUuidOrId: string | number) => Promise<boolean>; /** * @summary Check if the user has access to any applications * @name hasAny * @public * @function * @memberof balena.models.application * * @fulfil {Boolean} - has any applications * @returns {Promise} * * @example * balena.models.application.hasAny().then(function(hasAny) { * console.log('Has any?', hasAny); * }); */ hasAny: () => Promise<boolean>; /** * @summary Create an application * @name create * @public * @function * @memberof balena.models.application * * @param {Object} options - application creation parameters * @param {String} options.name - application name * @param {(String|Number)} options.organization - handle (string) or id (number) of the organization that the application will belong to or null * @param {String} [options.uuid] - application uuid * @param {String} [options.applicationClass] - application class: 'app' | 'fleet' | 'block' * @param {String} options.deviceType - device type slug * * @fulfil {Object} - application * @returns {Promise} * * @example * balena.models.application.create({ name: 'My App', organization: 'myorganization', deviceType: 'raspberry-pi' }).then(function(application) { * console.log(application); * }); * * @example * balena.models.application.create({ name: 'My Block', organization: 'myorganization', applicationClass: 'block', deviceType: 'raspberry-pi' }).then(function(application) { * console.log(application); * }); */ create({ name, uuid, applicationClass, deviceType, organization, }: { name: string; uuid?: string; applicationClass?: "app" | "fleet" | "block"; deviceType: string; organization: number | string; }): Promise<import("pinejs-client-core/node_modules/@balena/abstract-sql-to-typescript", { with: { "resolution-mode": "import" } }).PickDeferred<{ created_at: import("@balena/sbvr-types").Types["Date Time"]["Read"]; id: import("@balena/sbvr-types").Types["Integer"]["Read"]; actor: { __id: import("..").Actor["Read"]["id"]; } | [import("..").Actor["Read"]]; should_track_latest_release: import("@balena/sbvr-types").Types["Boolean"]["Read"]; is_of__class: "fleet" | "block" | "app"; organization: { __id: import("..").Organization["Read"]["id"]; } | [import("..").Organization["Read"]]; app_name: import("@balena/sbvr-types").Types["Text"]["Read"]; slug: import("@balena/sbvr-types").Types["Short Text"]["Read"]; is_for__device_type: { __id: import("..").DeviceType["Read"]["id"]; } | [import("..").DeviceType["Read"]]; should_be_running__release: { __id: import("..").Release["Read"]["id"]; } | [import("..").Release["Read"]] | [] | null; application_type: { __id: import("..").ApplicationType["Read"]["id"]; } | [import("..").ApplicationType["Read"]]; is_host: import("@balena/sbvr-types").Types["Boolean"]["Read"]; is_archived: import("@balena/sbvr-types").Types["Boolean"]["Read"]; uuid: import("@balena/sbvr-types").Types["Text"]["Read"]; is_public: import("@balena/sbvr-types").Types["Boolean"]["Read"]; is_accessible_by_support_until__date: import("@balena/sbvr-types").Types["Date Time"]["Read"] | null; is_discoverable: import("@balena/sbvr-types").Types["Boolean"]["Read"]; is_stored_at__repository_url: import("@balena/sbvr-types").Types["Text"]["Read"] | null; application__has__env_var_name?: Array<import("..").ApplicationEnvironmentVariable["Read"]>; application_environment_variable?: Array<import("..").ApplicationEnvironmentVariable["Read"]>; application__has__config_var_name?: Array<import("..").ApplicationConfigVariable["Read"]>; application_config_variable?: Array<import("..").ApplicationConfigVariable["Read"]>; application__has__service_name?: Array<import("..").Service["Read"]>; service?: Array<import("..").Service["Read"]>; application__has__tag_key?: Array<import("..").ApplicationTag["Read"]>; application_tag?: Array<import("..").ApplicationTag["Read"]>; application__has__domain?: Array<import("..").ApplicationDomainMapping["Read"]>; application_domain_mapping?: Array<import("..").ApplicationDomainMapping["Read"]>; application__has__build_var_name?: Array<import("..").BuildEnvironmentVariable["Read"]>; build_environment_variable?: Array<import("..").BuildEnvironmentVariable["Read"]>; owns__device?: Array<import("..").Device["Read"]>; owns__release?: Array<import("..").Release["Read"]>; owns__public_device?: Array<import("..").PublicDevice["Read"]>; team__grants_access_to__application?: Array<import("..").TeamApplicationAccess["Read"]>; team_application_access?: Array<import("..").TeamApplicationAccess["Read"]>; is_accessible_by__team?: Array<import("..").TeamApplicationAccess["Read"]>; user__is_member_of__application?: Array<import("..").UserIsMemberOfApplication["Read"]>; user_application_membership?: Array<import("..").UserIsMemberOfApplication["Read"]>; includes__user?: Array<import("..").UserIsMemberOfApplication["Read"]>; includes__user__is_member_of__application?: Array<import("..").UserIsMemberOfApplication["Read"]>; includes__user_application_membership?: Array<import("..").UserIsMemberOfApplication["Read"]>; invitee__is_invited_to__application?: Array<import("..").InviteeIsInvitedToApplication["Read"]>; application_invite?: Array<import("..").InviteeIsInvitedToApplication["Read"]>; invitee?: Array<import("..").InviteeIsInvitedToApplication["Read"]>; is_directly_accessible_by__user?: Array<import("..").UserHasDirectAccessToApplication["Read"]>; can_use__application_as_host?: Array<import("..").ApplicationCanUseApplicationAsHost["Read"]>; }>>; /** * @summary Remove application * @name remove * @public * @function * @memberof balena.models.application * * @param {String|Number|Number[]} slugOrUuidOrIdOrIds - application slug (string), uuid (string) or id (number) or array of ids * @returns {Promise} * * @example * balena.models.application.remove('myorganization/myapp'); * * @example * balena.models.application.remove(123); */ remove: (slugOrUuidOrIdOrIds: string | number | number[]) => Promise<void>; /** * @summary Rename application * @name rename * @public * @function * @memberof balena.models.application * * @param {String|Number} slugOrUuidOrId - application slug (string), uuid (string) or id (number) * @param {String} newName - new application name (string) * @returns {Promise} * * @example * balena.models.application.rename('myorganization/myapp', 'MyRenamedApp'); * * @example * balena.models.application.rename(123, 'MyRenamedApp'); */ rename: (slugOrUuidOrId: string | number, newAppName: string) => Promise<void>; /** * @summary Restart application * @name restart * @public * @function * @memberof balena.models.application * * @param {String|Number} slugOrUuidOrId - application slug (string), uuid (string) or id (number) * @returns {Promise} * * @example * balena.models.application.restart('myorganization/myapp'); * * @example * balena.models.application.restart(123); */ restart: (slugOrUuidOrId: string | number) => Promise<void>; /** * @summary Generate a device provisioning key for a specific application * @name generateProvisioningKey * @public * @function * @memberof balena.models.application * * @param {Object} generateProvisioningKeyParams - an object containing the parameters for the provisioning key generation * @param {String|Number} generateProvisioningKeyParams.slugOrUuidOrId - application slug (string), uuid (string) or id (number) * @param {String} generateProvisioningKeyParams.keyExpiryDate - Expiry Date for provisioning key * @param {String} [generateProvisioningKeyParams.keyName] - Provisioning key name * @param {String} [generateProvisioningKeyParams.keyDescription] - Description for provisioning key * @fulfil {String} - device provisioning key * @returns {Promise} * * @example * balena.models.application.generateProvisioningKey({slugOrUuidOrId: 'myorganization/myapp', keyExpiryDate: '2030-10-12'}).then(function(key) { * console.log(key); * }); * * @example * balena.models.application.generateProvisioningKey({slugOrUuidOrId: 123, keyExpiryDate: '2030-10-12'}).then(function(key) { * console.log(key); * }); * * @example * balena.models.application.generateProvisioningKey({slugOrUuidOrId: 123, keyExpiryDate: '2030-10-12', keyName: 'api key name', keyDescription: 'api key long description'}).then(function(key) { * console.log(key); * }); */ generateProvisioningKey: ({ slugOrUuidOrId, keyExpiryDate, keyName, keyDescription, }: { slugOrUuidOrId: string | number; keyExpiryDate: string | null; keyName?: string; keyDescription?: string; }) => Promise<string>; /** * @summary Purge devices by application id * @name purge * @public * @function * @memberof balena.models.application * * @param {Number} appId - application id * @returns {Promise} * * @example * balena.models.application.purge(123); */ purge: (appId: number) => Promise<void>; /** * @summary Shutdown devices by application id * @name shutdown * @public * @function * @memberof balena.models.application * * @param {Number} appId - application id * @param {Object} [options] - options * @param {Boolean} [options.force=false] - override update lock * @returns {Promise} * * @example * balena.models.application.shutdown(123); */ shutdown: (appId: number, options?: { force?: boolean; }) => Promise<void>; /** * @summary Reboot devices by application id * @name reboot * @public * @function * @memberof balena.models.application * * @param {Number} appId - application id * @param {Object} [options] - options * @param {Boolean} [options.force=false] - override update lock * @returns {Promise} * * @example * balena.models.application.reboot(123); */ reboot: (appId: number, options?: { force?: boolean; }) => Promise<void>; /** * @summary Get whether the application is configured to receive updates whenever a new release is available * @name willTrackNewReleases * @public * @function * @memberof balena.models.application * * @param {String|Number} slugOrUuidOrId - application slug (string), uuid (string) or id (number) * @fulfil {Boolean} - is tracking the latest release * @returns {Promise} * * @example * balena.models.application.willTrackNewReleases('myorganization/myapp').then(function(isEnabled) { * console.log(isEnabled); * }); * * @example * balena.models.application.willTrackNewReleases(123).then(function(isEnabled) { * console.log(isEnabled); * }); */ willTrackNewReleases: (slugOrUuidOrId: string | number) => Promise<boolean>; /** * @summary Get whether the application is up to date and is tracking the latest finalized release for updates * @name isTrackingLatestRelease * @public * @function * @memberof balena.models.application * * @param {String|Number} slugOrUuidOrId - application slug (string), uuid (string) or id (number) * @fulfil {Boolean} - is tracking the latest release * @returns {Promise} * * @example * balena.models.application.isTrackingLatestRelease('myorganization/myapp').then(function(isEnabled) { * console.log(isEnabled); * }); * * @example * balena.models.application.isTrackingLatestRelease(123).then(function(isEnabled) { * console.log(isEnabled); * }); */ isTrackingLatestRelease: (slugOrUuidOrId: string | number) => Promise<boolean>; /** * @summary Set a specific application to run a particular release * @name pinToRelease * @public * @function * @memberof balena.models.application * * @description Configures the application to run a particular release * and not get updated when the latest release changes. * * @param {String|Number} slugOrUuidOrId - application slug (string), uuid (string) or id (number) * @param {String} fullReleaseHash - the hash of a successful release (string) * @returns {Promise} * * @example * balena.models.application.pinToRelease('myorganization/myapp', 'f7caf4ff80114deeaefb7ab4447ad9c661c50847').then(function() { * ... * }); * * @example * balena.models.application.pinToRelease(123, 'f7caf4ff80114deeaefb7ab4447ad9c661c50847').then(function() { * ... * }); */ pinToRelease: (slugOrUuidOrId: string | number, fullReleaseHash: string) => Promise<void>; /** * @summary Get the hash of the current release for a specific application * @name getTargetReleaseHash * @public * @function * @memberof balena.models.application * * @param {String|Number} slugOrUuidOrId - application slug (string), uuid (string) or id (number) * @fulfil {String|undefined} - The release hash of the current release * @returns {Promise} * * @example * balena.models.application.getTargetReleaseHash('myorganization/myapp').then(function(release) { * console.log(release); * }); * * @example * balena.models.application.getTargetReleaseHash(123).then(function(release) { * console.log(release); * }); * * @example * balena.models.application.getTargetReleaseHash('myorganization/myapp', function(release) { * console.log(release); * }); */ getTargetReleaseHash: (slugOrUuidOrId: string | number) => Promise<string | undefined>; /** * @summary Configure a specific application to track the latest finalized available release * @name trackLatestRelease * @public * @function * @memberof balena.models.application * * @description The application's current release will be updated with each new successfully built release. * * @param {String|Number} slugOrUuidOrId - application slug (string), uuid (string) or id (number) * @returns {Promise} * * @example * balena.models.application.trackLatestRelease('myorganization/myapp').then(function() { * ... * }); * * @example * balena.models.application.trackLatestRelease(123).then(function() { * ... * }); */ trackLatestRelease: (slugOrUuidOrId: string | number) => Promise<void>; /** * @summary Enable device urls for all devices that belong to an application * @name enableDeviceUrls * @public * @function * @memberof balena.models.application * * @param {String|Number} slugOrUuidOrId - application slug (string), uuid (string) or id (number) * @returns {Promise} * * @example * balena.models.application.enableDeviceUrls('myorganization/myapp'); * * @example * balena.models.application.enableDeviceUrls(123); */ enableDeviceUrls: (slugOrUuidOrId: string | number) => Promise<void>; /** * @summary Disable device urls for all devices that belong to an application * @name disableDeviceUrls * @public * @function * @memberof balena.models.application * * @param {String|Number} slugOrUuidOrId - application slug (string), uuid (string) or id (number) * @returns {Promise} * * @example * balena.models.application.disableDeviceUrls('myorganization/myapp'); * * @example * balena.models.application.disableDeviceUrls(123); */ disableDeviceUrls: (slugOrUuidOrId: string | number) => Promise<void>; /** * @summary Grant support access to an application until a specified time * @name grantSupportAccess * @public * @function * @memberof balena.models.application * * @param {String|Number} slugOrUuidOrId - application slug (string), uuid (string) or id (number) * @param {Number} expiryTimestamp - a timestamp in ms for when the support access will expire * @returns {Promise} * * @example * balena.models.application.grantSupportAccess('myorganization/myapp', Date.now() + 3600 * 1000); * * @example * balena.models.application.grantSupportAccess(123, Date.now() + 3600 * 1000); */ grantSupportAccess(slugOrUuidOrId: string | number, expiryTimestamp: number): Promise<void>; /** * @summary Revoke support access to an application * @name revokeSupportAccess * @public * @function * @memberof balena.models.application * * @param {String|Number} slugOrUuidOrId - application slug (string), uuid (string) or id (number) * @returns {Promise} * * @example * balena.models.application.revokeSupportAccess('myorganization/myapp'); * * @example * balena.models.application.revokeSupportAccess(123); */ revokeSupportAccess: (slugOrUuidOrId: string | number) => Promise<void>; /** * @namespace balena.models.application.tags * @memberof balena.models.application */ tags: { /** * @summary Get all application tags for an application * @name getAllByApplication * @public * @function * @memberof balena.models.application.tags * * @param {String|Number} slugOrUuidOrId - application slug (string), uuid (string) or id (number) * @param {Object} [options={}] - extra pine options to use * @fulfil {Object[]} - application tags * @returns {Promise} * * @example * balena.models.application.tags.getAllByApplication('myorganization/myapp').then(function(tags) { * console.log(tags); * }); * * @example * balena.models.application.tags.getAllByApplication(999999).then(function(tags) { * console.log(tags); * }); */ getAllByApplication: <O extends ODataOptionsWithoutCount<{ application: { __id: Application["Read"]["id"]; } | [Application["Read"]]; tag_key: import("@balena/sbvr-types").Types["Short Text"]["Read"]; id: import("@balena/sbvr-types").Types["Integer"]["Read"]; value: import("@balena/sbvr-types").Types["Text"]["Read"]; }>>(parentParam: string | number | Record<string, unknown>, options?: O | undefined) => Promise<OptionsToResponse<{ application: { __id: Application["Read"]["id"]; } | [Application["Read"]]; tag_key: import("@balena/sbvr-types").Types["Short Text"]["Read"]; id: import("@balena/sbvr-types").Types["Integer"]["Read"]; value: import("@balena/sbvr-types").Types["Text"]["Read"]; }, O, undefined>>; /** * @summary Set an application tag * @name set * @public * @function * @memberof balena.models.application.tags * * @param {String|Number} slugOrUuidOrId - application slug (string), uuid (string) or id (number) * @param {String} tagKey - tag key * @param {String|undefined} value - tag value * * @returns {Promise} * * @example * balena.models.application.tags.set('myorganization/myapp', 'EDITOR', 'vim'); * * @example * balena.models.application.tags.set(123, 'EDITOR', 'vim'); */ set: (parentParam: string | number | Record<string, unknown>, key: string, value: string) => Promise<void>; /** * @summary Remove an application tag * @name remove * @public * @function * @memberof balena.models.application.tags * * @param {String|Number} slugOrUuidOrId - application slug (string), uuid (string) or id (number) * @param {String} tagKey - tag key * @returns {Promise} * * @example * balena.models.application.tags.remove('myorganization/myapp', 'EDITOR'); */ remove: (parentParam: string | number | Record<string, unknown>, key: string) => Promise<void>; }; /** * @namespace balena.models.application.configVar * @memberof balena.models.application */ configVar: { /** * @summary Get all config variables for an application * @name getAllByApplication * @public * @function * @memberof balena.models.application.configVar * * @param {String|Number} slugOrUuidOrId - application slug (string), uuid (string) or id (number) * @param {Object} [options={}] - extra pine options to use * @fulfil {Object[]} - application config variables * @returns {Promise} * * @example * balena.models.application.configVar.getAllByApplication('myorganization/myapp').then(function(vars) { * console.log(vars); * }); * * @example * balena.models.application.configVar.getAllByApplication(999999).then(function(vars) { * console.log(vars); * }); */ getAllByApplication: <O extends ODataOptionsWithoutCount<{ application: { __id: Application["Read"]["id"]; } | [Application["Read"]]; name: import("@balena/sbvr-types").Types["Short Text"]["Read"]; id: import("@balena/sbvr-types").Types["Integer"]["Read"]; value: import("@balena/sbvr-types").Types["Text"]["Read"]; }>>(parentParam: string | number | Record<string, unknown>, options?: O | undefined) => Promise<OptionsToResponse<{ application: { __id: Application["Read"]["id"]; } | [Application["Read"]]; name: import("@balena/sbvr-types").Types["Short Text"]["Read"]; id: import("@balena/sbvr-types").Types["Integer"]["Read"]; value: import("@balena/sbvr-types").Types["Text"]["Read"]; }, O, undefined>>; /** * @summary Get the value of a specific config variable * @name get * @public * @function * @memberof balena.models.application.configVar * * @param {String|Number} slugOrUuidOrId - application slug (string), uuid (string) or id (number) * @param {String} key - config variable name * @fulfil {String|undefined} - the config variable value (or undefined) * @returns {Promise} * * @example * balena.models.application.configVar.get('myorganization/myapp', 'BALENA_VAR').then(function(value) { * console.log(value); * }); * * @example * balena.models.application.configVar.get(999999, 'BALENA_VAR').then(function(value) { * console.log(value); * }); */ get: (parentParam: string | number | Record<string, unknown>, key: string) => Promise<string | undefined>; /** * @summary Set the value of a specific config variable * @name set * @public * @function * @memberof balena.models.application.configVar * * @param {String|Number} slugOrUuidOrId - application slug (string), uuid (string) or id (number) * @param {String} key - config variable name * @param {String} value - config variable value * @returns {Promise} * * @example * balena.models.application.configVar.set('myorganization/myapp', 'BALENA_VAR', 'newvalue').then(function() { * ... * }); * * @example * balena.models.application.configVar.set(999999, 'BALENA_VAR', 'newvalue').then(function() { * ... * }); */ set: (parentParam: string | number | Record<string, unknown>, key: string, value: string) => Promise<void>; /** * @summary Clear the value of a specific config variable * @name remove * @public * @function * @memberof balena.models.application.configVar * * @param {String|Number} slugOrUuidOrId - application slug (string), uuid (string) or id (number) * @param {String} key - config variable name * @returns {Promise} * * @example * balena.models.application.configVar.remove('myorganization/myapp', 'BALENA_VAR').then(function() { * ... * }); * * @example * balena.models.application.configVar.remove(999999, 'BALENA_VAR').then(function() { * ... * }); */ remove: (parentParam: string | number | Record<string, unknown>, key: string) => Promise<void>; }; /** * @namespace balena.models.application.envVar * @memberof balena.models.application */ envVar: { /** * @summary Get all environment variables for an application * @name getAllByApplication * @public * @function * @memberof balena.models.application.envVar * * @param {String|Number} slugOrUuidOrId - application slug (string), uuid (string) or id (number) * @param {Object} [options={}] - extra pine options to use * @fulfil {Object[]} - application environment variables * @returns {Promise} * * @example * balena.models.application.envVar.getAllByApplication('myorganization/myapp').then(function(vars) { * console.log(vars); * }); * * @example * balena.models.application.envVar.getAllByApplication(999999).then(function(vars) { * console.log(vars); * }); */ getAllByApplication: <O extends ODataOptionsWithoutCount<{ created_at: import("@balena/sbvr-types").Types["Date Time"]["Read"]; application: { __id: Application["Read"]["id"]; } | [Application["Read"]]; name: import("@balena/sbvr-types").Types["Short Text"]["Read"]; id: import("@balena/sbvr-types").Types["Integer"]["Read"]; value: import("@balena/sbvr-types").Types["Text"]["Read"]; }>>(parentParam: string | number | Record<string, unknown>, options?: O | undefined) => Promise<OptionsToResponse<{ created_at: import("@balena/sbvr-types").Types["Date Time"]["Read"]; application: { __id: Application["Read"]["id"]; } | [Application["Read"]]; name: import("@balena/sbvr-types").Types["Short Text"]["Read"]; id: import("@balena/sbvr-types").Types["Integer"]["Read"]; value: import("@balena/sbvr-types").Types["Text"]["Read"]; }, O, undefined>>; /** * @summary Get the value of a specific environment variable * @name get * @public * @function * @memberof balena.models.application.envVar * * @param {String|Number} slugOrUuidOrId - application slug (string), uuid (string) or id (number) * @param {String} key - environment variable name * @fulfil {String|undefined} - the environment variable value (or undefined) * @returns {Promise} * * @example * balena.models.application.envVar.get('myorganization/myapp', 'VAR').then(function(value) { * console.log(value); * }); * * @example * balena.models.application.envVar.get(999999, 'VAR').then(function(value) { * console.log(value); * }); */ get: (parentParam: string | number | Record<string, unknown>, key: string) => Promise<string | undefined>; /** * @summary Set the value of a specific environment variable * @name set * @public * @function * @memberof balena.models.application.envVar * * @param {String|Number} slugOrUuidOrId - application slug (string), uuid (string) or id (number) * @param {String} key - environment variable name * @param {String} value - environment variable value * @returns {Promise} * * @example * balena.models.application.envVar.set('myorganization/myapp', 'VAR', 'newvalue').then(function() { * ... * }); * * @example * balena.models.application.envVar.set(999999, 'VAR', 'newvalue').then(function() { * ... * }); */ set: (parentParam: string | number | Record<string, unknown>, key: string, value: string) => Promise<void>; /** * @summary Clear the value of a specific environment variable * @name remove * @public * @function * @memberof balena.models.application.envVar * * @param {String|Number} slugOrUuidOrId - application slug (string), uuid (string) or id (number) * @param {String} key - environment variable name * @returns {Promise} * * @example * balena.models.application.envVar.remove('myorganization/myapp', 'VAR').then(function() { * ... * }); * * @example * balena.models.application.envVar.remove(999999, 'VAR').then(function() { * ... * }); */ remove: (parentParam: string | number | Record<string, unknown>, key: string) => Promise<void>; }; /** * @namespace balena.models.application.buildVar * @memberof balena.models.application */ buildVar: { /** * @summary Get all build environment variables for an application * @name getAllByApplication * @public * @function * @memberof balena.models.application.buildVar * * @param {String|Number} slugOrUuidOrId - application slug (string), uuid (string) or id (number) * @param {Object} [options={}] - extra pine options to use * @fulfil {Object[]} - application build environment variables * @returns {Promise} * * @example * balena.models.application.buildVar.getAllByApplication('myorganization/myapp').then(function(vars) { * console.log(vars); * }); * * @example * balena.models.application.buildVar.getAllByApplication(999999).then(function(vars) { * console.log(vars); * }); */ getAllByApplication: <O extends ODataOptionsWithoutCount<{ cre