import { INameEntity } from "./name_entity"; /** * A group is one element in a hierarchical tree. Each group can have none or many * children, it is the children that define the shape of the hierarchical tree. The * parent is not a property of the group object and is only defined by who the group * is a child of. It is necessary to know the id of the parent group when adding a * new group or removing an existing group.
There are three core Group branches * used in MyGeotab. The most common are "Company Groups", company Groups are used * to organize entities ({@link IRule}) into logical groups related to the organization. * A Group structure can be constructed by region, vocation, reporting or anything * that makes sense to the business, this allows aggregate reports and rolling up data * in a flexible way. These groups have a many to many type of relationship with the * entities that are members and are not limited to one type of entity.
The second * type is "Security Groups", these are Groups to which {@link ISecurityFilter}(s) * associated to it. Security Filters control what parts of the application/API a User * has access to.
The third type of group is a "Private User Group", this group * is used only for scheduling reports and displaying dashboard reports for a User. * This Group will only ever apply to one User and will typically be named the user's * name.
There is a base structure of Groups which cannot be removed, these are * considered to be "System"
Groups:
Company GroupSecurity GroupEverything * Security GroupSupervisor Security GroupUser Security GroupView Only Security GroupNothing * Security GroupPrivate User Group When Groups are retrieved they will always be in * a flat list of groups. The hierarchically tree(s) can be reconstructed by looking * at the "Children" property of each Group. The "Root" group will never be returned * and is only for system use.
*/ export interface IGroup extends INameEntity { /** Gets or sets the Children of this group. A list of Group(s). */ children: IGroup[]; /** * Gets or sets the {@link IColor} used to render assets belonging to this group. Default * [Blue]. */ color: any; /** * Gets or sets the free text field where any user information can be stored and referenced * for this entity. Default [""]. */ comments: string; /** Gets or sets the unique identifier for this entity. See {@link IId}. */ id: string; /** * Gets or sets the name of this entity that uniquely identifies it and is used when * displaying this entity. */ name: string; /** Gets or sets the parent Group of the selected group. */ parent: IGroup; /** Gets or sets the ltree path of the group. */ path: string; /** * Gets or sets the string reference to add to the database entry for this group. Maximum * length [255] Default [""]. */ reference: string; } //# sourceMappingURL=group.d.ts.map