Relationship Open Service Interface Definitions relationship version 3.0.0
The Relationship OSID provides the ability to relate and manage data
between OsidObjects.
Relationships
The Relationship OSID defines a Relationship that can be used to
explicitly identify a relationship between two OSID Ids and manage
information specific to the relationship.
The Relationship OSID is a building block on which relationships defined
in the context of other OSIDs can be built. Examples of relationships
include the enrollment record of a student in a Course or the
commitment or a person to an Event.
The Relationship OSID depends on the relationship Type to indicate the
nature of the relationship including its natural ordering between the
source and destination Ids. A relationship of type “friend” may
place the peers in either order and be queryable in either order. A
relationship of type “parent” is between a father peer and a son peer,
but not the other way around. Queries of the son peer based on the
“parent” type is not equiavelent to queries of the father peer based on
the “parent” type.
Such directional relationships may be accompanied by two types. An additional relationship type of “child” can be used with the son peer to determine the father peer. The directionality and the inverse among the types are part of the type definition.
Family Cataloging
Relationships may be cataloged using the Family interface.
Sub Packages
The Relationship OSID includes a Relationship Rules OSID for controlling
the enable status of Relationships.
Service Managers¶
Relationship Profile¶
-
class
dlkit.services.relationship.RelationshipProfile¶ Bases:
dlkit.osid.managers.OsidProfileThe relationship profile describes the interoperability among relationship services.
-
supports_relationship_lookup()¶ Tests if looking up relationships is supported.
Returns: trueif relationship lookup is supported,falseotherwiseReturn type: booleancompliance: mandatory – This method must be implemented.
-
supports_relationship_query()¶ Tests if querying relationships is supported.
Returns: trueif relationship query is supported,falseotherwiseReturn type: booleancompliance: mandatory – This method must be implemented.
-
supports_relationship_admin()¶ Tests if relationship administrative service is supported.
Returns: trueif relationship administration is supported,falseotherwiseReturn type: booleancompliance: mandatory – This method must be implemented.
-
supports_family_lookup()¶ Tests if looking up families is supported.
Returns: trueif family lookup is supported,falseotherwiseReturn type: booleancompliance: mandatory – This method must be implemented.
-
supports_family_admin()¶ Tests if familyadministrative service is supported.
Returns: trueif family administration is supported,falseotherwiseReturn type: booleancompliance: mandatory – This method must be implemented.
-
supports_family_hierarchy()¶ Tests for the availability of a family hierarchy traversal service.
Returns: trueif family hierarchy traversal is available,falseotherwiseReturn type: booleancompliance: mandatory – This method must be implemented in all providers.
-
supports_family_hierarchy_design()¶ Tests for the availability of a family hierarchy design service.
Returns: trueif family hierarchy design is available,falseotherwiseReturn type: booleancompliance: mandatory – This method must be implemented.
-
relationship_record_types¶ Gets the supported
Relationshiprecord types.Returns: a list containing the supported Relationshiprecord typesReturn type: osid.type.TypeListcompliance: mandatory – This method must be implemented.
-
relationship_search_record_types¶ Gets the supported
Relationshipsearch record types.Returns: a list containing the supported Relationshipsearch record typesReturn type: osid.type.TypeListcompliance: mandatory – This method must be implemented.
-
family_record_types¶ Gets the supported
Familyrecord types.Returns: a list containing the supported FamilytypesReturn type: osid.type.TypeListcompliance: mandatory – This method must be implemented.
-
family_search_record_types¶ Gets the supported
Familysearch record types.Returns: a list containing the supported Familysearch record typesReturn type: osid.type.TypeListcompliance: mandatory – This method must be implemented.
-
Relationship Manager¶
-
class
dlkit.services.relationship.RelationshipManager(proxy=None)¶ Bases:
dlkit.osid.managers.OsidManager,dlkit.osid.sessions.OsidSession,dlkit.services.relationship.RelationshipProfileThe relationship manager provides access to relationship sessions and provides interoperability tests for various aspects of this service.
The sessions included in this manager are:
RelationshipLookupSession:a session to retrieve and examine relationshipsRelationshipQuerySession:a session to query relationshipsRelationshipSearchSession:a session to search for relationshipsRelationshipAdminSession:a session to manage relationshipsRelationshipNotificationSession:a session to receive notifications pertaining to relationship changesRelationshipFamilySession:a session to look up relationship to family mappingsRelationshipFamilyAssignmentSession:a session to manage relationship to family catalog mappingsRelationshipSmartFamilySession:a session to manage dynamic relationship familiesFamilyLookupSession:a session to retrieve familiesFamilyQuerySession:a session to query familiesFamilySearchSession:a session to search for familiesFamilyAdminSession:a session to create and delete familiesFamilyNotificationSession:a session to receive notifications pertaining to family changesFamilyHierarchySession:a session to traverse a hierarchy of familiesFamilyHierarchyDesignSession:a session to manage a family hierarchy
-
relationship_batch_manager¶ Gets the relationship batch manager.
Returns: a RelationshipBatchManagerReturn type: osid.relationship.batch.RelationshipBatchManagerRaise: OperationFailed– unable to complete requestRaise: Unimplemented–supports_relationship_batch()isfalsecompliance: optional – This method must be implemented if ``supports_relationship_batch()`` is ``true``.
-
relationship_rules_manager¶ Gets the relationship rules manager.
Returns: a RelationshipRulesManagerReturn type: osid.relationship.rules.RelationshipRulesManagerRaise: OperationFailed– unable to complete requestRaise: Unimplemented–supports_relationship_rules()isfalsecompliance: optional – This method must be implemented if ``supports_relationship_rules()`` is ``true``.
Family Lookup Methods¶
RelationshipManager.can_lookup_families()¶Tests if this user can perform
Familylookups.A return of true does not guarantee successful authorization. A return of false indicates that it is known all methods in this session will result in a
PermissionDenied. This is intended as a hint to an application that may not offer lookup operations to unauthorized users.
Returns: falseif lookup methods are not authorized,trueotherwiseReturn type: booleancompliance: mandatory – This method must be implemented.
RelationshipManager.use_comparative_family_view()¶The returns from the family methods may omit or translate elements based on this session, such as authorization, and not result in an error.
This view is used when greater interoperability is desired at the expense of precision.
compliance: mandatory – This method is must be implemented.
RelationshipManager.use_plenary_family_view()¶A complete view of the
Familyreturns is desired.Methods will return what is requested or result in an error. This view is used when greater precision is desired at the expense of interoperability.
compliance: mandatory – This method is must be implemented.
RelationshipManager.get_family(family_id)¶Gets the
Familyspecified by itsId.In plenary mode, the exact
Idis found or aNotFoundresults. Otherwise, the returnedFamilymay have a differentIdthan requested, such as the case where a duplicateIdwas assigned to aFamilyand retained for compatibil
Parameters: family_id ( osid.id.Id) –Idof theFamilyReturns: the family Return type: osid.relationship.FamilyRaise: NotFound–family_idnot foundRaise: NullArgument–family_idisnullRaise: OperationFailed– unable to complete requestRaise: PermissionDenied– authorization failurecompliance: mandatory – This method is must be implemented.
RelationshipManager.get_families_by_ids(family_ids)¶Gets a
FamilyListcorresponding to the givenIdList.In plenary mode, the returned list contains all of the families specified in the
Idlist, in the order of the list, including duplicates, or an error results if anIdin the supplied list is not found or inaccessible. Otherwise, inaccessible families may be omitted from the list and may present the elements in any order including returning a unique set.
Parameters: family_ids ( osid.id.IdList) – the list ofIdsto retrieveReturns: the returned Family listReturn type: osid.relationship.FamilyListRaise: NotFound– anId wasnot foundRaise: NullArgument–family_idsisnullRaise: OperationFailed– unable to complete requestRaise: PermissionDenied– authorization failurecompliance: mandatory – This method must be implemented.
RelationshipManager.get_families_by_genus_type(family_genus_type)¶Gets a
FamilyListcorresponding to the given family genusTypewhich does not include families of genus types derived from the specifiedType.In plenary mode, the returned list contains all known families or an error results. Otherwise, the returned list may contain only those families that are accessible through this session.
Parameters: family_genus_type ( osid.type.Type) – a family genus typeReturns: the returned Family listReturn type: osid.relationship.FamilyListRaise: NullArgument–family_genus_typeisnullRaise: OperationFailed– unable to complete requestRaise: PermissionDenied– authorization failurecompliance: mandatory – This method must be implemented.
RelationshipManager.get_families_by_parent_genus_type(family_genus_type)¶Gets a
FamilyListcorresponding to the given family genusTypeand include any additional families with genus types derived from the specifiedType.In plenary mode, the returned list contains all known families or an error results. Otherwise, the returned list may contain only those families that are accessible through this session.
Parameters: family_genus_type ( osid.type.Type) – a family genus typeReturns: the returned Family listReturn type: osid.relationship.FamilyListRaise: NullArgument–family_genus_typeisnullRaise: OperationFailed– unable to complete requestRaise: PermissionDenied– authorization failurecompliance: mandatory – This method must be implemented.
RelationshipManager.get_families_by_record_type(family_record_type)¶Gets a
FamilyListcontaining the given family recordType.In plenary mode, the returned list contains all known families or an error results. Otherwise, the returned list may contain only those families that are accessible through this session.
Parameters: family_record_type ( osid.type.Type) – a family record typeReturns: the returned Family listReturn type: osid.relationship.FamilyListRaise: NullArgument–family_record_typeisnullRaise: OperationFailed– unable to complete requestRaise: PermissionDenied– authorization failurecompliance: mandatory – This method must be implemented.
RelationshipManager.get_families_by_provider(resource_id)¶Gets a
FamilyListfrom the given provider.In plenary mode, the returned list contains all known families or an error results. Otherwise, the returned list may contain only those families that are accessible through this session.
Parameters: resource_id ( osid.id.Id) – a resourceIdReturns: the returned Family listReturn type: osid.relationship.FamilyListRaise: NullArgument–resource_idisnullRaise: OperationFailed– unable to complete requestRaise: PermissionDenied– authorization failurecompliance: mandatory – This method must be implemented.
RelationshipManager.families¶Gets all families.
In plenary mode, the returned list contains all known families or an error results. Otherwise, the returned list may contain only those families that are accessible through this session.
Returns: a list of families Return type: osid.relationship.FamilyListRaise: OperationFailed– unable to complete requestRaise: PermissionDenied– authorization failurecompliance: mandatory – This method must be implemented.
Family Admin Methods¶
RelationshipManager.can_create_families()¶Tests if this user can create families.
A return of true does not guarantee successful authorization. A return of false indicates that it is known creating a
Familywill result in aPermissionDenied. This is intended as a hint to an application that may not wish to offer create operations to unauthorized users.
Returns: falseifFamilycreation is not authorized,trueotherwiseReturn type: booleancompliance: mandatory – This method must be implemented.
RelationshipManager.can_create_family_with_record_types(family_record_types)¶Tests if this user can create a single
Familyusing the desired record types.While
RelationshipManager.getFamilyRecordTypes()can be used to examine which records are supported, this method tests which record(s) are required for creating a specificFamily. Providing an empty array tests if aFamilycan be created with no records.
Parameters: family_record_types ( osid.type.Type[]) – array of family record typesReturns: trueifFamilycreation using the specified recordTypesis supported,falseotherwiseReturn type: booleanRaise: NullArgument–family_record_types is nullcompliance: mandatory – This method must be implemented.
RelationshipManager.get_family_form_for_create(family_record_types)¶Gets the family form for creating new families.
A new form should be requested for each create transaction.
Parameters: family_record_types ( osid.type.Type[]) – array of family record typesReturns: the family form Return type: osid.relationship.FamilyFormRaise: NullArgument–family_record_types is nullRaise: OperationFailed– unable to complete requestRaise: PermissionDenied– authorization failureRaise: Unsupported– unable to get form for requested record typescompliance: mandatory – This method must be implemented.
RelationshipManager.create_family(family_form)¶Creates a new
Family.
Parameters: family_form ( osid.relationship.FamilyForm) – the form for thisFamily.Returns: the new FamilyReturn type: osid.relationship.FamilyRaise: IllegalState–family_formalready used in a create transactionRaise: InvalidArgument– one or more of the form elements is invalidRaise: NullArgument–family_formisnullRaise: OperationFailed– unable to complete requestRaise: PermissionDenied– authorization failureRaise: Unsupported–family_formdid not originate fromget_family_form_for_create()compliance: mandatory – This method must be implemented.
RelationshipManager.can_update_families()¶Tests if this user can update families.
A return of true does not guarantee successful authorization. A return of false indicates that it is known updating a
Familywill result in aPermissionDenied. This is intended as a hint to an application that may not wish to offer update operations to unauthorized users.
Returns: falseifFamilymodification is not authorized,trueotherwiseReturn type: booleancompliance: mandatory – This method must be implemented.
RelationshipManager.get_family_form_for_update(family_id)¶Gets the family form for updating an existing family.
A new family form should be requested for each update transaction.
Parameters: family_id ( osid.id.Id) – theIdof theFamilyReturns: the family form Return type: osid.relationship.FamilyFormRaise: NotFound–family_idis not foundRaise: NullArgument–family_idisnullRaise: OperationFailed– unable to complete requestRaise: PermissionDenied– authorization failurecompliance: mandatory – This method must be implemented.
RelationshipManager.update_family(family_form)¶Updates an existing family.
Parameters: family_form ( osid.relationship.FamilyForm) – the form containing the elements to be updatedRaise: IllegalState–family_formalready used in an update transactionRaise: InvalidArgument– the form contains an invalid valueRaise: NullArgument–family_idorfamily_formisnullRaise: OperationFailed– unable to complete requestRaise: PermissionDenied– authorization failureRaise: Unsupported–family_formdid not originate fromget_family_form_for_update()compliance: mandatory – This method must be implemented.
RelationshipManager.can_delete_families()¶Tests if this user can delete families.
A return of true does not guarantee successful authorization. A return of false indicates that it is known deleting a
Familywill result in aPermissionDenied. This is intended as a hint to an application that may not wish to offer delete operations to unauthorized users.
Returns: falseifFamilydeletion is not authorized,trueotherwiseReturn type: booleancompliance: mandatory – This method must be implemented.
RelationshipManager.delete_family(family_id)¶Deletes a
Family.
Parameters: family_id ( osid.id.Id) – theIdof theFamilyto removeRaise: NotFound–family_idnot foundRaise: NullArgument–family_idisnullRaise: OperationFailed– unable to complete requestRaise: PermissionDenied– authorization failurecompliance: mandatory – This method must be implemented.
RelationshipManager.can_manage_family_aliases()¶Tests if this user can manage
Idaliases for families.A return of true does not guarantee successful authorization. A return of false indicates that it is known changing an alias will result in a
PermissionDenied. This is intended as a hint to an application that may opt not to offer alias operations to an unauthorized user.
Returns: falseifFamilyaliasing is not authorized,trueotherwiseReturn type: booleancompliance: mandatory – This method must be implemented.
RelationshipManager.alias_family(family_id, alias_id)¶Adds an
Idto aFamilyfor the purpose of creating compatibility.The primary
Idof theFamilyis determined by the provider. The newIdperforms as an alias to the primaryId. If the alias is a pointer to another family, it is reassigned to the given familyId.
Parameters:
- family_id (
osid.id.Id) – theIdof aFamily- alias_id (
osid.id.Id) – the aliasIdRaise:
AlreadyExists–alias_idis already assignedRaise:
NotFound–family_idnot foundRaise:
NullArgument–family_idoralias_idisnullRaise:
OperationFailed– unable to complete requestRaise:
PermissionDenied– authorization failurecompliance: mandatory – This method must be implemented.
Family Hierarchy Methods¶
RelationshipManager.family_hierarchy_id¶Gets the hierarchy
Idassociated with this session.
Returns: the hierarchy Idassociated with this sessionReturn type: osid.id.Idcompliance: mandatory – This method must be implemented.
RelationshipManager.family_hierarchy¶Gets the hierarchy associated with this session.
Returns: the hierarchy associated with this session Return type: osid.hierarchy.HierarchyRaise: OperationFailed– unable to complete requestRaise: PermissionDenied– authorization failurecompliance: mandatory – This method must be implemented.
RelationshipManager.can_access_family_hierarchy()¶Tests if this user can perform hierarchy queries.
A return of true does not guarantee successful authorization. A return of false indicates that it is known all methods in this session will result in a
PermissionDenied. This is intended as a hint to an an application that may not offer hierrachy traversal operations to unauthorized users.
Returns: falseif hierarchy traversal methods are not authorized,trueotherwiseReturn type: booleancompliance: mandatory – This method must be implemented.
RelationshipManager.use_comparative_family_view()The returns from the family methods may omit or translate elements based on this session, such as authorization, and not result in an error.
This view is used when greater interoperability is desired at the expense of precision.
compliance: mandatory – This method is must be implemented.
RelationshipManager.use_plenary_family_view()A complete view of the
Familyreturns is desired.Methods will return what is requested or result in an error. This view is used when greater precision is desired at the expense of interoperability.
compliance: mandatory – This method is must be implemented.
RelationshipManager.root_family_ids¶Gets the root family
Idsin this hierarchy.
Returns: the root family IdsReturn type: osid.id.IdListRaise: OperationFailed– unable to complete requestRaise: PermissionDenied– authorization failurecompliance: mandatory – This method must be implemented.
RelationshipManager.root_families¶Gets the root families in the family hierarchy.
A node with no parents is an orphan. While all family
Idsare known to the hierarchy, an orphan does not appear in the hierarchy unless explicitly added as a root node or child of another node.
Returns: the root families Return type: osid.relationship.FamilyListRaise: OperationFailed– unable to complete requestRaise: PermissionDenied– authorization failurecompliance: mandatory – This method is must be implemented.
RelationshipManager.has_parent_families(family_id)¶Tests if the
Familyhas any parents.
Parameters: family_id ( osid.id.Id) – theIdof a familyReturns: trueif the family has parents,falseotherwiseReturn type: booleanRaise: NotFound–family_idis not foundRaise: NullArgument–family_idisnullRaise: OperationFailed– unable to complete requestRaise: PermissionDenied– authorization failurecompliance: mandatory – This method must be implemented.
RelationshipManager.is_parent_of_family(id_, family_id)¶Tests if an
Idis a direct parent of a family.
Parameters:
- id (
osid.id.Id) – anId- family_id (
osid.id.Id) – theIdof a familyReturns:
trueif thisidis a parent offamily_id,falseotherwiseReturn type:
booleanRaise:
NotFound–family_idis not foundRaise:
NullArgument–idorfamily_idisnullRaise:
OperationFailed– unable to complete requestRaise:
PermissionDenied– authorization failurecompliance: mandatory – This method must be implemented. implementation notes: If
idnot found returnfalse.
RelationshipManager.get_parent_family_ids(family_id)¶Gets the parent
Idsof the given family.
Parameters: family_id ( osid.id.Id) – theIdof a familyReturns: the parent Idsof the familyReturn type: osid.id.IdListRaise: NotFound–family_idis not foundRaise: NullArgument–family_idisnullRaise: OperationFailed– unable to complete requestRaise: PermissionDenied– authorization failurecompliance: mandatory – This method must be implemented.
RelationshipManager.get_parent_families(family_id)¶Gets the parent families of the given
id.
Parameters: family_id ( osid.id.Id) – theIdof theFamilyto queryReturns: the parent families of the idReturn type: osid.relationship.FamilyListRaise: NotFound– aFamilyidentified byId isnot foundRaise: NullArgument–family_idisnullRaise: OperationFailed– unable to complete requestRaise: PermissionDenied– authorization failurecompliance: mandatory – This method must be implemented.
RelationshipManager.is_ancestor_of_family(id_, family_id)¶Tests if an
Idis an ancestor of a family.
Parameters:
- id (
osid.id.Id) – anId- family_id (
osid.id.Id) – theIdof a familyReturns:
trueif thisidis an ancestor offamily_id,falseotherwiseReturn type:
booleanRaise:
NotFound–family_idis not foundRaise:
NullArgument–idorfamily_idisnullRaise:
OperationFailed– unable to complete requestRaise:
PermissionDenied– authorization failurecompliance: mandatory – This method must be implemented. implementation notes: If
idnot found returnfalse.
RelationshipManager.has_child_families(family_id)¶Tests if a family has any children.
Parameters: family_id ( osid.id.Id) – theIdof a familyReturns: trueif thefamily_idhas children,falseotherwiseReturn type: booleanRaise: NotFound–family_idis not foundRaise: NullArgument–family_idisnullRaise: OperationFailed– unable to complete requestRaise: PermissionDenied– authorization failurecompliance: mandatory – This method must be implemented.
RelationshipManager.is_child_of_family(id_, family_id)¶Tests if a family is a direct child of another.
Parameters:
- id (
osid.id.Id) – anId- family_id (
osid.id.Id) – theIdof a familyReturns:
trueif theidis a child offamily_id,falseotherwiseReturn type:
booleanRaise:
NotFound–family_idis not foundRaise:
NullArgument–idorfamily_idisnullRaise:
OperationFailed– unable to complete requestRaise:
PermissionDenied– authorization failurecompliance: mandatory – This method must be implemented. implementation notes: If
idnot found returnfalse.
RelationshipManager.get_child_family_ids(family_id)¶Gets the child
Idsof the given family.
Parameters: family_id ( osid.id.Id) – theIdto queryReturns: the children of the family Return type: osid.id.IdListRaise: NotFound–family_idis not foundRaise: NullArgument–family_idisnullRaise: OperationFailed– unable to complete requestRaise: PermissionDenied– authorization failurecompliance: mandatory – This method must be implemented.
RelationshipManager.get_child_families(family_id)¶Gets the child families of the given
id.
Parameters: family_id ( osid.id.Id) – theIdof theFamilyto queryReturns: the child families of the idReturn type: osid.relationship.FamilyListRaise: NotFound– aFamilyidentified byId isnot foundRaise: NullArgument–family_idisnullRaise: OperationFailed– unable to complete requestRaise: PermissionDenied– authorization failurecompliance: mandatory – This method must be implemented.
RelationshipManager.is_descendant_of_family(id_, family_id)¶Tests if an
Idis a descendant of a family.
Parameters:
- id (
osid.id.Id) – anId- family_id (
osid.id.Id) – theIdof a familyReturns:
trueif theidis a descendant of thefamily_id,falseotherwiseReturn type:
booleanRaise:
NotFound–family_idis not foundRaise:
NullArgument–idorfamily_idisnullRaise:
OperationFailed– unable to complete requestRaise:
PermissionDenied– authorization failurecompliance: mandatory – This method must be implemented. implementation notes: If
idis not found returnfalse.
RelationshipManager.get_family_node_ids(family_id, ancestor_levels, descendant_levels, include_siblings)¶Gets a portion of the hierarchy for the given family.
Parameters:
- family_id (
osid.id.Id) – theIdto query- ancestor_levels (
cardinal) – the maximum number of ancestor levels to include. A value of 0 returns no parents in the node.- descendant_levels (
cardinal) – the maximum number of descendant levels to include. A value of 0 returns no children in the node.- include_siblings (
boolean) –trueto include the siblings of the given node,falseto omit the siblingsReturns: a family node
Return type:
osid.hierarchy.NodeRaise:
NotFound–family_idis not foundRaise:
NullArgument–family_idisnullRaise:
OperationFailed– unable to complete requestRaise:
PermissionDenied– authorization failurecompliance: mandatory – This method must be implemented.
RelationshipManager.get_family_nodes(family_id, ancestor_levels, descendant_levels, include_siblings)¶Gets a portion of the hierarchy for the given family.
Parameters:
- family_id (
osid.id.Id) – theIdto query- ancestor_levels (
cardinal) – the maximum number of ancestor levels to include. A value of 0 returns no parents in the node.- descendant_levels (
cardinal) – the maximum number of descendant levels to include. A value of 0 returns no children in the node.- include_siblings (
boolean) –trueto include the siblings of the given node,falseto omit the siblingsReturns: a family node
Return type:
osid.relationship.FamilyNodeRaise:
NotFound–family_idis not foundRaise:
NullArgument–family_idisnullRaise:
OperationFailed– unable to complete requestRaise:
PermissionDenied– authorization failurecompliance: mandatory – This method must be implemented.
Family Hierarchy Design Methods¶
RelationshipManager.family_hierarchy_idGets the hierarchy
Idassociated with this session.
Returns: the hierarchy Idassociated with this sessionReturn type: osid.id.Idcompliance: mandatory – This method must be implemented.
RelationshipManager.family_hierarchyGets the hierarchy associated with this session.
Returns: the hierarchy associated with this session Return type: osid.hierarchy.HierarchyRaise: OperationFailed– unable to complete requestRaise: PermissionDenied– authorization failurecompliance: mandatory – This method must be implemented.
RelationshipManager.can_modify_family_hierarchy()¶Tests if this user can change the hierarchy.
A return of true does not guarantee successful authorization. A return of false indicates that it is known performing any update will result in a
PermissionDenied. This is intended as a hint to an application that may opt not to offer these operations to an unauthorized user.
Returns: falseif changing this hierarchy is not authorized,trueotherwiseReturn type: booleancompliance: mandatory – This method must be implemented.
RelationshipManager.add_root_family(family_id)¶Adds a root family.
Parameters: family_id ( osid.id.Id) – theIdof a familyRaise: AlreadyExists–family_idis already in hierarchyRaise: NotFound–family_idnot foundRaise: NullArgument–family_idisnullRaise: OperationFailed– unable to complete requestRaise: PermissionDenied– authorization failurecompliance: mandatory – This method must be implemented.
RelationshipManager.remove_root_family(family_id)¶Removes a root family.
Parameters: family_id ( osid.id.Id) – theIdof a familyRaise: NotFound–family_idnot a rootRaise: NullArgument–family_idisnullRaise: OperationFailed– unable to complete requestRaise: PermissionDenied– authorization failurecompliance: mandatory – This method must be implemented.
RelationshipManager.add_child_family(family_id, child_id)¶Adds a child to a family.
Parameters:
- family_id (
osid.id.Id) – theIdof a family- child_id (
osid.id.Id) – theIdof the new childRaise:
AlreadyExists–family_idis already a parent ofchild_idRaise:
NotFound–family_idorchild_idnot foundRaise:
NullArgument–family_idorchild_idisnullRaise:
OperationFailed– unable to complete requestRaise:
PermissionDenied– authorization failurecompliance: mandatory – This method must be implemented.
RelationshipManager.remove_child_family(family_id, child_id)¶Removes a child from a family.
Parameters:
- family_id (
osid.id.Id) – theIdof a family- child_id (
osid.id.Id) – theIdof the new childRaise:
NotFound–family_idnot a parent ofchild_idRaise:
NullArgument–family_idorchild_idisnullRaise:
OperationFailed– unable to complete requestRaise:
PermissionDenied– authorization failurecompliance: mandatory – This method must be implemented.
RelationshipManager.remove_child_families(family_id)¶Removes all children from a family.
Parameters: family_id ( osid.id.Id) – theIdof a familyRaise: NotFound–family_idnot in hierarchyRaise: NullArgument–family_idisnullRaise: OperationFailed– unable to complete requestRaise: PermissionDenied– authorization failurecompliance: mandatory – This method must be implemented.