export interface CreateSecurityGroupRequest { title: string; owner: { id: string; }; } type Links = { rel: string; href: string; }[]; export type Privilege = 'read' | 'create' | 'update' | 'delete'; export type SecurityGroupId = string & {}; export interface SecurityGroup { id: SecurityGroupId; title: string; owner: { id: string; }; links: Links; } interface PaginatedResponse { count: number; filters: { page: number; 'per-page': number; [key: string]: unknown; }; links: Links; } export interface SecurityGroupsResponse extends PaginatedResponse { 'security-groups': SecurityGroup[]; } export interface UserWithOrganizations { id: string; cn: string; sn: string; organizations: Array; stakeholder: boolean; } export interface UsersResponse extends PaginatedResponse { users: { id: string; cn: string; sn: string; }[]; } export interface TypesResponse extends PaginatedResponse { 'element-types': { id: string; }[]; } export type AttributePrivilege = { 'element-type': string; attribute: string; rights: Privilege[]; }; export interface AttributePrivilegesResponse extends PaginatedResponse { privileges: AttributePrivilege[]; } export type TypePrivilege = { id: string; 'element-type': { id: string; }; rights: Privilege[]; }; export interface TypePrivilegesResponse extends PaginatedResponse { privileges: TypePrivilege[]; } export {};