@datocms/cma-client
Version:
JS client for DatoCMS REST Content Management API
25 lines (24 loc) • 1.29 kB
TypeScript
import type * as ApiTypes from '../generated/ApiTypes.js';
import BaseRole from '../generated/resources/Role.js';
type DistributiveOmit<T, K extends PropertyKey> = T extends any ? Omit<T, K> : never;
export type UpdateRoleDiff<T> = {
add?: DistributiveOmit<T, 'environment'>[];
remove?: DistributiveOmit<T, 'environment'>[];
};
export type RoleItemTypePermission = ApiTypes.RoleAttributes['positive_item_type_permissions'][0];
export type RoleUploadPermission = ApiTypes.RoleAttributes['positive_upload_permissions'][0];
type UpdateCurrentEnvironmentPermissionsChanges = {
positive_item_type_permissions?: UpdateRoleDiff<RoleItemTypePermission>;
negative_item_type_permissions?: UpdateRoleDiff<RoleItemTypePermission>;
positive_upload_permissions?: UpdateRoleDiff<RoleUploadPermission>;
negative_upload_permissions?: UpdateRoleDiff<RoleUploadPermission>;
};
export default class RoleResource extends BaseRole {
/**
* Applies a set of changes to the permissions of the current environment
*
* Read more: https://www.datocms.com/docs/content-management-api/resources/role/update
*/
updateCurrentEnvironmentPermissions(roleId: string | ApiTypes.RoleData, changes: UpdateCurrentEnvironmentPermissionsChanges): Promise<ApiTypes.Role>;
}
export {};