UNPKG

balena-sdk

Version:
320 lines (319 loc) • 14.6 kB
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;