Thrift module: sharing_models

ModuleServicesData typesConstants
sharing_models Domain
Entity
EntitySearchField
EntityType
GroupCardinality
GroupChildType
GroupMembership
GroupType
PermissionType
SearchCondition
SearchCriteria
Sharing
SharingRegistryException
SharingType
User
UserGroup
DO_NOT_SET_AT_CLIENTS_ID

Constants

ConstantTypeValue
DO_NOT_SET_AT_CLIENTS_IDstring"DO_NOT_SET_AT_CLIENTS_ID"

Enumerations

Enumeration: GroupCardinality

This is an system internal enum used to define single user groups and multi users groups. Every user is also considered as a group in it's own right for implementation ease



SINGLE_USER0
MULTI_USER1

Enumeration: GroupType

Group types can be either user level or domain level groups.



DOMAIN_LEVEL_GROUP0
USER_LEVEL_GROUP1

Enumeration: GroupChildType

System internal data type to match group child types



USER0
GROUP1

Enumeration: EntitySearchField

This list of fields that can be used to search entities

  • NAME : Name of the entity
  • DESCRIPTION : Description of the entity
  • FULL_TEXT : Full text field of the entity
  • PARENT_ENTITY_ID : Parent entity id of the entity
  • OWNER_ID : Owner of the entity
  • CREATED_TIME : Created time of the entity
  • UPDATED_TIME : Updated time of the entity
  • ENTITY_TYPE_ID : Entity type ID


  • NAME0
    DESCRIPTION1
    FULL_TEXT2
    PARRENT_ENTITY_ID3
    OWNER_ID4
    PERMISSION_TYPE_ID5
    CREATED_TIME6
    UPDATED_TIME7
    ENTITY_TYPE_ID 8

    Enumeration: SearchCondition

    Different search operators that can be used with the entity search fields

  • EQUAL : Simply matches for equality. Applicable for name, and parent entity id
  • LIKE : Check for the condition %$FIELD% condition. Applicable for name, and description
  • FULL_TEXT : Does a full text search. Only applicable for the FULL_TEXT field.
  • GTE : Greater than or equal. Only applicable for created time and updated time.
  • LTE : Less than or equal. Only applicable for created time and updated time.
  • NOT : Not operator. Only applicable for name, permission type id, parent entity id and owner id.


  • EQUAL0
    LIKE1
    FULL_TEXT2
    GTE3
    LTE4
    NOT 5

    Enumeration: SharingType

    This is an internal enum type for managing sharings



    DIRECT_NON_CASCADING0
    DIRECT_CASCADING1
    INDIRECT_CASCADING2

    Data structures

    Struct: Domain

    KeyFieldTypeDescriptionRequirednessDefault value
    1domainIdstringoptional"DO_NOT_SET_AT_CLIENTS_ID"
    2namestringoptional
    3descriptionstringoptional
    4createdTimei64optional
    5updatedTimei64optional

    Domain is the entity that enables multi-tenency in this componenet. Every tenant will be operating separately it's own silo which is identified by the domain id. In the current implementation domain id will be same as the domain name

  • domainId : Will be generated by the server based on the domain name
  • name : A single word name that identifies the domain e.g seagrid, ultrascan
  • description : A short description for the domain
  • createdTime : Will be set by the system
  • updatedTime : Will be set by the system

  • Struct: User

    KeyFieldTypeDescriptionRequirednessDefault value
    1userIdstringoptional
    2domainIdstringoptional
    3userNamestringoptional
    4firstNamestringoptional
    5lastNamestringoptional
    6emailstringoptional
    7iconbinaryoptional
    8createdTimei64optional
    9updatedTimei64optional

    User is the model used to register a user in the system. Minimal user information will be required to provide regarding the user.

  • userId : User id provided by the client
  • domainId : Domain id for that user
  • userName : User name for the user
  • firstName : First name of the user
  • lastName : Last name of the user
  • email : Email address of the user
  • icon : A binary field for storing the user icon
  • createdTime : If client provides this value then the system will use it if not the current time will be set
  • updatedTime : If client provides this value then the system will use it if not the current time will be set

  • Struct: UserGroup

    KeyFieldTypeDescriptionRequirednessDefault value
    1groupIdstringoptional
    2domainIdstringoptional
    3namestringoptional
    4descriptionstringoptional
    5ownerIdstringoptional
    6groupTypeGroupTypeoptional
    7groupCardinalityGroupCardinalityoptional
    8createdTimei64optional
    9updatedTimei64optional

    User group is a collection of users.

  • groupId : Group id provided by the client
  • domainId : Domain id for this user group
  • name : Name for the user group. should be one word
  • description : Short description for the group.
  • ownerId : Owner id of this group.
  • groupType : Group type (DOMAIN_LEVEL_GROUP, USER_LEVEL_GROUP)
  • groupCardinality : Group cardinality (SINGLE_USER, MULTI_USER)
  • createdTime : Will be set by the system
  • updatedTime : Will be set by the system

  • Struct: GroupMembership

    KeyFieldTypeDescriptionRequirednessDefault value
    1parentIdstringoptional
    2childIdstringoptional
    3domainIdstringoptional
    4childTypeGroupChildTypeoptional
    5createdTimei64optional
    6updatedTimei64optional

    System internal data type to map group memberships


    Struct: EntityType

    KeyFieldTypeDescriptionRequirednessDefault value
    1entityTypeIdstringoptional
    2domainIdstringoptional
    3namestringoptional
    4descriptionstringoptional
    5createdTimei64optional
    6updatedTimei64optional

    client defined entity types

  • entityTypeId : Entity type id provided by the client
  • domainId : Domain id of the domain.
  • name : Name for the entity type. Should be a single word.
  • description : Short description for the entity type.
  • createdTime : Will be set by the system
  • updatedTime : Will be set by the system

  • Struct: SearchCriteria

    KeyFieldTypeDescriptionRequirednessDefault value
    1searchFieldEntitySearchFieldoptional
    2valuestringoptional
    3searchConditionSearchConditionoptional

    Container object for search criteria

  • searchField : Entity search field
  • value : Search value
  • searchCondition : EQUAL, LIKE etc..

  • Struct: Entity

    KeyFieldTypeDescriptionRequirednessDefault value
    1entityIdstringoptional
    2domainIdstringoptional
    3entityTypeIdstringoptional
    4ownerIdstringoptional
    5parentEntityIdstringoptional
    6namestringoptional
    7descriptionstringoptional
    8binaryDatabinaryoptional
    9fullTextstringoptional
    10originalEntityCreationTimei64optional
    11createdTimei64optional
    12updatedTimei64optional

    Entity object which is used to register an entity in the system.

  • entityId : Entity id provided by the client
  • domainId : Domain id
  • entityTypeId : Entity type id
  • ownerId : Owner id
  • parentEntityId : Parent entity id
  • name : Name
  • description : Short description for the entity
  • binaryData : Any information stored in binary format
  • fullText : A string which will be considered for full text search
  • originalEntityCreationTime : When registering old records what is the original entity creation time. If not set will be default to current time
  • createdTime : Will be set by the system
  • updatedTime : Will be set by the system

  • Struct: PermissionType

    KeyFieldTypeDescriptionRequirednessDefault value
    1permissionTypeIdstringoptional
    2domainIdstringoptional
    3namestringoptional
    4descriptionstringoptional
    5createdTimei64optional
    6updatedTimei64optional

    Object for creating client defined permission type

  • permissionTypeId : Permission type id provided by the client
  • domainId : Domain id
  • name : Single word name for the permission
  • description : Short description for the permission type
  • createdTime : Will be set by the system
  • updatedTime : Will be set by the system

  • Struct: Sharing

    KeyFieldTypeDescriptionRequirednessDefault value
    1permissionTypeIdstringoptional
    2entityIdstringoptional
    3groupIdstringoptional
    4sharingTypeSharingTypeoptional
    5domainIdstringoptional
    6inheritedParentIdstringoptional
    7createdTimei64optional
    8updatedTimei64optional

    This is an internal enum type for managing sharings


    Exception: SharingRegistryException

    KeyFieldTypeDescriptionRequirednessDefault value
    1messagestringrequired

    Exception model used in the sharing registry service