balena-sdk
Version:
The Balena JavaScript SDK
320 lines (319 loc) • 14.6 kB
TypeScript
import type { Organization, OrganizationMembership, OrganizationMembershipTag, InjectedDependenciesParam, OrganizationMembershipRole } from '..';
import type { ODataOptionsWithoutCount, ResourceAlternateKey } from 'pinejs-client-core';
type ResourceKey = number | ResourceAlternateKey<Pick<OrganizationMembership['Read'], 'user' | 'is_member_of__organization'>>;
declare const getOrganizationMembershipModel: (deps: InjectedDependenciesParam, getOrganization: (handleOrId: string | number, options?: ODataOptionsWithoutCount<Organization["Read"]>) => Promise<Organization["Read"]>) => {
/**
* @summary Get a single organization membership
* @name get
* @public
* @function
* @memberof balena.models.organization.membership
*
* @description
* This method returns a single organization membership.
*
* @param {number|Object} membershipId - the id or an object with the unique `user` & `is_member_of__organization` numeric pair of the membership
* @param {Object} [options={}] - extra pine options to use
* @fulfil {Object} - organization membership
* @returns {Promise}
*
* @example
* balena.models.organization.membership.get(5).then(function(memberships) {
* console.log(memberships);
* });
*/
get<T extends ODataOptionsWithoutCount<OrganizationMembership["Read"]>>(membershipId: ResourceKey, options?: T): Promise<NonNullable<import("pinejs-client-core").OptionsToResponse<{
created_at: import("@balena/sbvr-types").Types["Date Time"]["Read"];
user: {
__id: import("..").User["Read"]["id"];
} | [import("..").User["Read"]];
is_member_of__organization: {
__id: Organization["Read"]["id"];
} | [Organization["Read"]];
id: import("@balena/sbvr-types").Types["Integer"]["Read"];
organization_membership_role: {
__id: OrganizationMembershipRole["Read"]["id"];
} | [OrganizationMembershipRole["Read"]];
effective_seat_role: import("@balena/sbvr-types").Types["Short Text"]["Read"];
user__is_member_of__organization__has__tag_key?: Array<OrganizationMembershipTag["Read"]>;
organization_membership__has__tag_key?: Array<OrganizationMembershipTag["Read"]>;
organization_membership_tag?: Array<OrganizationMembershipTag["Read"]>;
organization: {
__id: Organization["Read"]["id"];
} | [Organization["Read"]];
includes__user: {
__id: import("..").User["Read"]["id"];
} | [import("..").User["Read"]];
}, T & {}, ResourceKey>>>;
/**
* @summary Get all memberships by organization
* @name getAllByOrganization
* @public
* @function
* @memberof balena.models.organization.membership
*
* @description
* This method returns all organization memberships for a specific organization.
*
* @param {String|Number} handleOrId - organization handle (string) or id (number).
* @param {Object} [options={}] - extra pine options to use
* @fulfil {Object[]} - organization memberships
* @returns {Promise}
*
* @example
* balena.models.organization.membership.getAllByOrganization('MyOrg').then(function(memberships) {
* console.log(memberships);
* });
*
* @example
* balena.models.organization.membership.getAllByOrganization(123).then(function(memberships) {
* console.log(memberships);
* });
*/
getAllByOrganization<T extends ODataOptionsWithoutCount<OrganizationMembership["Read"]>>(handleOrId: number | string, options?: T): Promise<NoInfer<import("pinejs-client-core").OptionsToResponse<{
created_at: import("@balena/sbvr-types").Types["Date Time"]["Read"];
user: {
__id: import("..").User["Read"]["id"];
} | [import("..").User["Read"]];
is_member_of__organization: {
__id: Organization["Read"]["id"];
} | [Organization["Read"]];
id: import("@balena/sbvr-types").Types["Integer"]["Read"];
organization_membership_role: {
__id: OrganizationMembershipRole["Read"]["id"];
} | [OrganizationMembershipRole["Read"]];
effective_seat_role: import("@balena/sbvr-types").Types["Short Text"]["Read"];
user__is_member_of__organization__has__tag_key?: Array<OrganizationMembershipTag["Read"]>;
organization_membership__has__tag_key?: Array<OrganizationMembershipTag["Read"]>;
organization_membership_tag?: Array<OrganizationMembershipTag["Read"]>;
organization: {
__id: Organization["Read"]["id"];
} | [Organization["Read"]];
includes__user: {
__id: import("..").User["Read"]["id"];
} | [import("..").User["Read"]];
}, import("../util").MergePineOptions<import("../util").AliasResourceRead, {
$filter: {
is_member_of__organization: number;
};
}, T>, undefined>>>;
/**
* @summary Get all memberships by user
* @name getAllByUser
* @public
* @function
* @memberof balena.models.organization.membership
*
* @description
* This method returns all organization memberships for a specific user.
*
* @param {String|Number} usernameOrId - the user's username (string) or id (number)
* @param {Object} [options={}] - extra pine options to use
* @fulfil {Object[]} - organization memberships
* @returns {Promise}
*
* @example
* balena.models.organization.membership.getAllByUser('balena_os').then(function(memberships) {
* console.log(memberships);
* });
*
* @example
* balena.models.organization.membership.getAllByUser(123).then(function(memberships) {
* console.log(memberships);
* });
*/
getAllByUser<T extends ODataOptionsWithoutCount<OrganizationMembership["Read"]>>(usernameOrId: number | string, options?: T): Promise<NoInfer<import("pinejs-client-core").OptionsToResponse<{
created_at: import("@balena/sbvr-types").Types["Date Time"]["Read"];
user: {
__id: import("..").User["Read"]["id"];
} | [import("..").User["Read"]];
is_member_of__organization: {
__id: Organization["Read"]["id"];
} | [Organization["Read"]];
id: import("@balena/sbvr-types").Types["Integer"]["Read"];
organization_membership_role: {
__id: OrganizationMembershipRole["Read"]["id"];
} | [OrganizationMembershipRole["Read"]];
effective_seat_role: import("@balena/sbvr-types").Types["Short Text"]["Read"];
user__is_member_of__organization__has__tag_key?: Array<OrganizationMembershipTag["Read"]>;
organization_membership__has__tag_key?: Array<OrganizationMembershipTag["Read"]>;
organization_membership_tag?: Array<OrganizationMembershipTag["Read"]>;
organization: {
__id: Organization["Read"]["id"];
} | [Organization["Read"]];
includes__user: {
__id: import("..").User["Read"]["id"];
} | [import("..").User["Read"]];
}, import("../util").MergePineOptions<import("../util").AliasResourceRead, {
$filter: {
user: number | {
$any: {
$alias: string;
$expr: {
u: {
username: string;
};
};
};
};
};
}, T>, undefined>>>;
/**
* @summary Changes the role of an organization member
* @name changeRole
* @public
* @function
* @memberof balena.models.organization.membership
*
* @description This method changes the role of an organization member.
*
* @param {Number|Object} idOrUniqueKey - the id or an object with the unique `user` & `is_member_of__organization` numeric pair of the membership that will be changed
* @param {String} roleName - the role name to be granted to the membership
*
* @returns {Promise}
*
* @example
* balena.models.organization.membership.changeRole(123, "member").then(function() {
* console.log('OK');
* });
*
* @example
* balena.models.organization.membership.changeRole({
* user: 123,
* is_member_of__organization: 125,
* }, "member").then(function() {
* console.log('OK');
* });
*/
changeRole(idOrUniqueKey: ResourceKey, roleName: OrganizationMembershipRole["Read"]["name"]): Promise<void>;
/**
* @summary Remove a membership
* @name remove
* @public
* @function
* @memberof balena.models.organization.membership
*
* @param {Number} id - organization membership id
* @returns {Promise}
*
* @example
* balena.models.organization.membership.remove(123);
*
* @example
* balena.models.organization.membership.remove({
* user: 123,
* is_member_of__application: 125,
* });
*/
remove(idOrUniqueKey: ResourceKey): Promise<void>;
/**
* @namespace balena.models.organization.memberships.tags
* @memberof balena.models.organization.memberships
*/
tags: {
/**
* @summary Get all organization membership tags for an organization
* @name getAllByOrganization
* @public
* @function
* @memberof balena.models.organization.memberships.tags
*
* @param {String|Number} handleOrId - organization handle (string) or id (number).
* @param {Object} [options={}] - extra pine options to use
* @fulfil {Object[]} - organization membership tags
* @returns {Promise}
*
* @example
* balena.models.organization.memberships.tags.getAllByOrganization('MyOrg').then(function(tags) {
* console.log(tags);
* });
*
* @example
* balena.models.organization.memberships.tags.getAllByOrganization(999999).then(function(tags) {
* console.log(tags);
* });
*/
getAllByOrganization<T extends ODataOptionsWithoutCount<OrganizationMembershipTag["Read"]>>(handleOrId: string | number, options?: T): Promise<NoInfer<import("pinejs-client-core/node_modules/@balena/abstract-sql-to-typescript", { with: { "resolution-mode": "import" } }).PickDeferred<{
organization_membership: {
__id: OrganizationMembership["Read"]["id"];
} | [OrganizationMembership["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"];
user__is_member_of__organization: {
__id: OrganizationMembership["Read"]["id"];
} | [OrganizationMembership["Read"]];
}, "id" | "value" | "user__is_member_of__organization" | "organization_membership" | "tag_key">[]>>;
/**
* @summary Get all organization membership tags for all memberships of an organization
* @name getAllByOrganizationMembership
* @public
* @function
* @memberof balena.models.organization.memberships.tags
*
* @param {Number} membershipId - organization membership id (number).
* @param {Object} [options={}] - extra pine options to use
* @fulfil {Object[]} - organization membership tags
* @returns {Promise}
*
* @example
* balena.models.organization.memberships.tags.getAllByOrganizationMembership(5).then(function(tags) {
* console.log(tags);
* });
*/
getAllByOrganizationMembership: (parentParam: string | number | import("../../typings/utils").Dictionary<unknown>, options?: ODataOptionsWithoutCount<{
organization_membership: {
__id: OrganizationMembership["Read"]["id"];
} | [OrganizationMembership["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"];
user__is_member_of__organization: {
__id: OrganizationMembership["Read"]["id"];
} | [OrganizationMembership["Read"]];
}> | undefined) => Promise<NoInfer<import("pinejs-client-core/node_modules/@balena/abstract-sql-to-typescript", { with: { "resolution-mode": "import" } }).PickDeferred<{
organization_membership: {
__id: OrganizationMembership["Read"]["id"];
} | [OrganizationMembership["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"];
user__is_member_of__organization: {
__id: OrganizationMembership["Read"]["id"];
} | [OrganizationMembership["Read"]];
}, "id" | "value" | "user__is_member_of__organization" | "organization_membership" | "tag_key">[]>>;
/**
* @summary Set an organization membership tag
* @name set
* @public
* @function
* @memberof balena.models.organization.memberships.tags
*
* @param {Number} handleOrId - organization handle (string) or id (number).
* @param {String} tagKey - tag key
* @param {String|undefined} value - tag value
*
* @returns {Promise}
*
* @example
* balena.models.organization.memberships.tags.set(5, 'EDITOR', 'vim');
*/
set: (parentParam: string | number | import("../../typings/utils").Dictionary<unknown>, key: string, value: string) => Promise<void>;
/**
* @summary Remove an organization membership tag
* @name remove
* @public
* @function
* @memberof balena.models.organization.memberships.tags
*
* @param {Number} handleOrId - organization handle (string) or id (number).
* @param {String} tagKey - tag key
* @returns {Promise}
*
* @example
* balena.models.organization.memberships.tags.remove(5, 'EDITOR');
*/
remove: (parentParam: string | number | import("../../typings/utils").Dictionary<unknown>, key: string) => Promise<void>;
};
};
export default getOrganizationMembershipModel;