balena-sdk
Version:
The Balena JavaScript SDK
216 lines (215 loc) • 8.52 kB
TypeScript
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;