UNPKG

balena-sdk

Version:
110 lines (109 loc) 4.06 kB
import type { InjectedDependenciesParam, InjectedOptionsParam, Application, ApplicationInvite, ApplicationMembershipRoles, PineOptions, PinePostResult } from '..'; export interface ApplicationInviteOptions { invitee: string; roleName?: ApplicationMembershipRoles; message?: string; } declare const getApplicationInviteModel: (deps: InjectedDependenciesParam, opts: InjectedOptionsParam, getApplication: (slugOrUuidOrId: string | number, options?: PineOptions<Application>) => Promise<Application>) => { /** * @summary Get all invites * @name getAll * @public * @function * @memberof balena.models.application.invite * * @description * This method returns all invites. * * @param {Object} [options={}] - extra pine options to use * @fulfil {Object[]} - invites * @returns {Promise} * * @example * balena.models.application.invite.getAll().then(function(invites) { * console.log(invites); * }); */ getAll(options?: PineOptions<ApplicationInvite>): Promise<ApplicationInvite[]>; /** * @summary Get all invites by application * @name getAllByApplication * @public * @function * @memberof balena.models.application.invite * * @description * This method returns all invites for a specific application. * * @param {String|Number} slugOrUuidOrId - application slug (string), uuid (string) or id (number) * @param {Object} [options={}] - extra pine options to use * @fulfil {Object[]} - invites * @returns {Promise} * * @example * balena.models.application.invite.getAllByApplication('myorganization/myapp').then(function(invites) { * console.log(invites); * }); * * @example * balena.models.application.invite.getAllByApplication(123).then(function(invites) { * console.log(invites); * }); */ getAllByApplication(slugOrUuidOrId: number | string, options?: PineOptions<ApplicationInvite>): Promise<ApplicationInvite[]>; /** * @summary Creates a new invite for an application * @name create * @public * @function * @memberof balena.models.application.invite * * @description This method invites a user by their email to an application. * * @param {String|Number} slugOrUuidOrId - application slug (string), uuid (string) or id (number) * @param {Object} options - invite creation parameters * @param {String} options.invitee - the email of the invitee * @param {String} [options.roleName="developer"] - the role name to be granted to the invitee * @param {String} [message=null] - the message to send along with the invite * * @fulfil {String} - application invite * @returns {Promise} * * @example * balena.models.application.invite.create('myorganization/myapp', { invitee: "invitee@example.org", roleName: "developer", message: "join my app" }).then(function(invite) { * console.log(invite); * }); */ create(slugOrUuidOrId: string | number, { invitee, roleName, message }: ApplicationInviteOptions): Promise<PinePostResult<ApplicationInvite>>; /** * @summary Revoke an invite * @name revoke * @public * @function * @memberof balena.models.application.invite * * @param {Number} id - application invite id * @returns {Promise} * * @example * balena.models.application.invite.revoke(123); */ revoke(id: number): Promise<void>; /** * @summary Accepts an invite * @name accept * @public * @function * @memberof balena.models.application.invite * * @description This method adds the calling user to the application. * * @param {String} invitationToken - invite token * @returns {Promise} * * @example * balena.models.application.invite.accept("qwerty-invitation-token"); */ accept(invitationToken: string): Promise<void>; }; export default getApplicationInviteModel;