UNPKG

balena-sdk

Version:
216 lines (215 loc) • 8.52 kB
import type { ApiKey, InjectedDependenciesParam, InjectedOptionsParam } from '..'; import type { ODataOptionsWithoutCount } from 'pinejs-client-core'; declare const getApiKeysModel: ({ pine, request, sdkInstance, }: InjectedDependenciesParam, { apiUrl }: InjectedOptionsParam) => { /** * @summary Creates a new user API key * @name create * @public * @function * @memberof balena.models.apiKey * * @description This method registers a new api key for the current user with the name given. * * @param {Object} createApiKeyParams - an object containing the parameters for the creation of an API key * @param {String} createApiKeyParams.name - the API key name * @param {String} createApiKeyParams.expiryDate - the API key expiry date * @param {String} [createApiKeyParams.description=null] - the API key description * * @fulfil {String} - API key * @returns {Promise} * * @example * balena.models.apiKey.create({name: apiKeyName, expiryDate: 2030-10-12}).then(function(apiKey) { * console.log(apiKey); * }); * * @example * balena.models.apiKey.create({name: apiKeyName, expiryDate: 2030-10-12, description: apiKeyDescription}).then(function(apiKey) { * console.log(apiKey); * }); */ create({ name, expiryDate, description, }: { name: string; expiryDate: string | null; description?: string | null; }): Promise<string>; /** * @summary Get all accessible API keys * @name getAll * @public * @function * @memberof balena.models.apiKey * * @param {Object} [options={}] - extra pine options to use * @fulfil {Object[]} - apiKeys * @returns {Promise} * * @example * balena.models.apiKey.getAll().then(function(apiKeys) { * console.log(apiKeys); * }); */ getAll<T extends ODataOptionsWithoutCount<ApiKey["Read"]>>(options?: T): Promise<NoInfer<import("pinejs-client-core").OptionsToResponse<{ created_at: import("@balena/sbvr-types").Types["Date Time"]["Read"]; id: import("@balena/sbvr-types").Types["Integer"]["Read"]; expiry_date: import("@balena/sbvr-types").Types["Date Time"]["Read"] | null; is_of__actor: { __id: import("..").Actor["Read"]["id"]; } | [import("..").Actor["Read"]]; name: import("@balena/sbvr-types").Types["Short Text"]["Read"] | null; description: import("@balena/sbvr-types").Types["Text"]["Read"] | null; }, import("../util").MergePineOptions<import("../util").AliasResourceRead, { $orderby: { name: "asc"; }; }, T>, undefined>>>; /** * @summary Get all named user API keys of the current user * @name getAllNamedUserApiKeys * @public * @function * @memberof balena.models.apiKey * * @param {Object} [options={}] - extra pine options to use * @fulfil {Object[]} - apiKeys * @returns {Promise} * * @example * balena.models.apiKey.getAllNamedUserApiKeys().then(function(apiKeys) { * console.log(apiKeys); * }); */ getAllNamedUserApiKeys<T extends ODataOptionsWithoutCount<ApiKey["Read"]>>(options?: T): Promise<NoInfer<import("pinejs-client-core").OptionsToResponse<{ created_at: import("@balena/sbvr-types").Types["Date Time"]["Read"]; id: import("@balena/sbvr-types").Types["Integer"]["Read"]; expiry_date: import("@balena/sbvr-types").Types["Date Time"]["Read"] | null; is_of__actor: { __id: import("..").Actor["Read"]["id"]; } | [import("..").Actor["Read"]]; name: import("@balena/sbvr-types").Types["Short Text"]["Read"] | null; description: import("@balena/sbvr-types").Types["Text"]["Read"] | null; }, import("../util").MergePineOptions<import("../util").AliasResourceRead, { $orderby: { name: "asc"; }; }, import("../util").MergePineOptions<import("../util").AliasResourceRead, { $filter: { is_of__actor: number; name: { $ne: null; }; }; }, T>>, undefined>>>; /** * @summary Get all provisioning API keys for an application * @name getProvisioningApiKeysByApplication * @public * @function * @memberof balena.models.apiKey * * @param {String|Number} slugOrUuidOrId - application slug (string), uuid (string) or id (number) * @param {Object} [options={}] - extra pine options to use * @fulfil {Object[]} - apiKeys * @returns {Promise} * * @example * balena.models.apiKey.getProvisioningApiKeysByApplication('myorganization/myapp').then(function(apiKeys) { * console.log(apiKeys); * }); */ getProvisioningApiKeysByApplication<T extends ODataOptionsWithoutCount<ApiKey["Read"]>>(slugOrUuidOrId: string | number, options?: T): Promise<NoInfer<import("pinejs-client-core").OptionsToResponse<{ created_at: import("@balena/sbvr-types").Types["Date Time"]["Read"]; id: import("@balena/sbvr-types").Types["Integer"]["Read"]; expiry_date: import("@balena/sbvr-types").Types["Date Time"]["Read"] | null; is_of__actor: { __id: import("..").Actor["Read"]["id"]; } | [import("..").Actor["Read"]]; name: import("@balena/sbvr-types").Types["Short Text"]["Read"] | null; description: import("@balena/sbvr-types").Types["Text"]["Read"] | null; }, import("../util").MergePineOptions<import("../util").AliasResourceRead, { $orderby: { name: "asc"; }; }, import("../util").MergePineOptions<import("../util").AliasResourceRead, { $filter: { is_of__actor: number; }; }, T>>, undefined>>>; /** * @summary Get all API keys for a device * @name getDeviceApiKeysByDevice * @public * @function * @memberof balena.models.apiKey * * @param {String|Number} uuidOrId - device, uuid (string) or id (number) * @param {Object} [options={}] - extra pine options to use * @fulfil {Object[]} - apiKeys * @returns {Promise} * * @example * balena.models.apiKey.getDeviceApiKeysByDevice('7cf02a6').then(function(apiKeys) { * console.log(apiKeys); * }); */ getDeviceApiKeysByDevice<T extends ODataOptionsWithoutCount<ApiKey["Read"]>>(uuidOrId: string | number, options?: T): Promise<NoInfer<import("pinejs-client-core").OptionsToResponse<{ created_at: import("@balena/sbvr-types").Types["Date Time"]["Read"]; id: import("@balena/sbvr-types").Types["Integer"]["Read"]; expiry_date: import("@balena/sbvr-types").Types["Date Time"]["Read"] | null; is_of__actor: { __id: import("..").Actor["Read"]["id"]; } | [import("..").Actor["Read"]]; name: import("@balena/sbvr-types").Types["Short Text"]["Read"] | null; description: import("@balena/sbvr-types").Types["Text"]["Read"] | null; }, import("../util").MergePineOptions<import("../util").AliasResourceRead, { $filter: { is_of__actor: number; }; $orderby: { name: "asc"; }; }, T>, undefined>>>; /** * @summary Update the details of an API key * @name update * @public * @function * @memberof balena.models.apiKey * * @param {Number} id - API key id * @param {Object} apiKeyInfo - an object with the updated name|description|expiryDate * @returns {Promise} * * @example * balena.models.apiKey.update(123, { name: 'updatedName' }); * * @example * balena.models.apiKey.update(123, { description: 'updated description' }); * * @example * balena.models.apiKey.update(123, { expiryDate: '2022-04-29' }); * * @example * balena.models.apiKey.update(123, { name: 'updatedName', description: 'updated description' }); */ update(id: number, apiKeyInfo: { name?: string; description?: string | null; expiryDate?: string | null; }): Promise<void>; /** * @summary Revoke an API key * @name revoke * @public * @function * @memberof balena.models.apiKey * * @param {Number} id - API key id * @returns {Promise} * * @example * balena.models.apiKey.revoke(123); */ revoke(id: number): Promise<void>; }; export default getApiKeysModel;