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