The API operates on the identity model that is defined by a set of following interfaces:
org.picketlink.idm.api.IdentityType - is a parent interface for Group and Identity
org.picketlink.idm.api.Identity - represents Identity which can be a user (within organization) or a machine (in authentication or security use case)
org.picketlink.idm.api.Group - represents typed Group
org.picketlink.idm.api.GroupType - represents type of a Group. It can be an organization, organization unit, administration group, global role, community or any other entity.
org.picketlink.idm.api.Role - represents one to one relationship between Identity and Group. Role has a type. The idea behind the concept is described below.
org.picketlink.idm.api.RoleType - represents type of a Role.
org.picketlink.idm.api.Attribute - represents attribute connected with IdentityType (Group or Identity). Can have many complex type values (text or binary). AttributeDescription describes such properties of Attribute like: name, type of values, readonly, multivalued, required.
org.picketlink.idm.api.Credential - represents credential connected with Identity.
org.picketlink.idm.api.CredentialType - represents type of a Credential. For example it can be text password or binary certificate.