CampusAPI Relationship Services API documentation version 0.1.5
Based on OSID version 3.0.0
https://base.url/relationship
Overview
The Relationship package provides the ability to relate and manage data between any other objects.
This package includes the following entities:
Relationships
The Relationship entity defines a Relationship that can be used to explicitly identify a relationship between two other object Ids and manage information specific to the relationship.
Relationship is a building block on which relationships defined in the context of other objects 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.
Relationships depend 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.
Field | Description | Type |
---|---|---|
id(read‑only) | The unique id of this relationship, provided by system. | string(osid‑id) |
uri(read‑only) | The uri of this relationship, provided by system. | string(uri) |
displayName | The name of this relationship for display. | string |
description | The description of this relationship. | string |
genusTypeId (read‑only) | Id of the immutable type of this relationship. Default type set by system unless specified in query parameter. | string(osid‑id) |
recordTypeIds (read‑only) | Type Ids of record types available on this relationship. Record types define special attributes available on an object to support specific applications or classes of applications and are documented elsewhere. | string(osid‑id)[] |
startDate | The starting date of this relationship. | string(date‑time) |
endDate | The ending date of this relationship. | string(date‑time) |
endReasonId | The reason this relationship ended. References a process.State object. | string(osid‑id) |
sourceId (read‑only) | The source associated with this relationship. References an id.Id object. | string(osid‑id) |
destinationId (read‑only) | The destination associated with this relationship. References an id.Id object. | string(osid‑id) |
Families
Relationships may be cataloged using Family catalogs
Field | Description | Type |
---|---|---|
id(read‑only) | The unique id of this family, provided by system. | string(osid‑id) |
uri(read‑only) | The uri of this family, provided by system. | string(uri) |
displayName | The name of this family for display. | string |
description | The description of this family. | string |
genusTypeId (read‑only) | Id of the immutable type of this family. Default type set by system unless specified in query parameter. | string(osid‑id) |
recordTypeIds (read‑only) | Type Ids of record types available on this family. Record types define special attributes available on an object to support specific applications or classes of applications and are documented elsewhere. | string(osid‑id)[] |
providerId | The provider of this family. References a resource.Resource object. | string(osid‑id) |
brandingIds | The branding of this family. References repository.Asset objects. | string(osid‑id)[] |
license | The licensing that applies to this family. | string |
License
CampusAPI REST Documentation Copyright 2023 DXtera Institute. Based on the Open Service Interface Definitions: http://osid.org
/relationships
Collection of Relationships in a system, federation of systems, or in a default Family.
Get all Relationships in the system or default Family.
Create a new Relationship in the default Family.
get /relationships
Get all Relationships in the system or default Family.
Query Parameters
- offset: (integer - default: 0)
Skip over a number of elements by specifying an offset value for the query
Example:
20
- limit: (integer - default: 10)
Limit the number of elements on the response
Example:
80
- expand: (string)
Expand object or type for named attribute: "genusType", "recordType", "endReason", "source", "destination", or "all" to expand all referenced objects or types. This parameter can be repeated to expand multiples.
Example:
all
- genusTypeId: (string)
The id string to match a genusType
Example:
type.Type%3AexampleRelationshipType%40dxtera.org
- parentGenusTypeId: (string)
The id string to match a parent genusType
Example:
type.Type%3AparentTypeExampleRelationshipType%40dxtera.org
- recordTypeId: (string)
The id string to match a recordType
Example:
type.Type%3AexampleRelationshipType%40campusapi.org
- fromDate: (string)
Get all relationships from this date inclusive. Use with toDate to define date range query.
Example:
2020-10-03
- toDate: (string)
Get all relationships up to this date inclusive. Use with fromDate to define date range query.
Example:
2020-12-18
- sourceId: (string)
the id string to match a source.
Example:
resource.Resource%3A576%40base.url
- destinationId: (string)
the id string to match a destination.
Example:
resource.Resource%3A1056%40base.url
- familyId: (string)
The id string to match a family
Example:
relationship.Family%3A8374%40base.url
HTTP status code 200
Body
Media type: application/json
Type: any
Example:
[
{
"id": "relationship.Relationship:2118@base.url",
"uri": "http://base.url/open/campusapi/relationship/relationship/relationship.Relationship%3A2118%40base.url",
"displayName": "Display Name of this Relationship",
"description": "The description of this Relationship",
"genusTypeId": "type.Type:defaultRelationshipType@base.url",
"recordTypeIds": [ "type.Type:exampleRelationshipRecordType@campusapi.org", "..."],
"startDate": "2020-10-03T06:30:00.000Z",
"endDate": "2020-12-18T19:30:00.000Z",
"endReasonId": "process.State:2118@base.url",
"sourceId": "id.Id:8499@base.url",
"destinationId": "id.Id:9198@base.url"
},
{
"...": "..."
}
]
HTTP status code 403
Body
Media type: application/json
Type: any
Example:
{"message": "Permission denied" }
post /relationships
Create a new Relationship in the default Family.
Query Parameters
- sourceId: required(string)
the source of this relationship.
Example:
resource.Resource%3A576%40base.url
- destinationId: required(string)
the destination of this relationship.
Example:
resource.Resource%3A1056%40base.url
- genusType: (string)
specify a particular relationship type to create
Example:
type.Type%3AexampleRelationshipType%40dxtera.org
- recordType: (array of )
specify support for one or more relationship record types
Example:
[ "type.Type%3AexampleRelationshipRecordType%40campusapi.org", "..." ]
- familyId: (string)
specify in which family to create this relationship
Example:
relationship.Family%3A8374%40base.url
Body
Media type: application/json
Type: json
Content:
{
"$schema": "http://json-schema.org/draft-04/schema#",
"title": "Relationship",
"type": "object",
"properties": {
"id": {
"description": "The unique id of this relationship, provided by system.",
"type": "string",
"format": "osid-id",
"readOnly": true
},
"uri": {
"description": "The uri of this relationship, provided by system.",
"type": "string",
"format": "uri",
"readOnly": true
},
"displayName": {
"description": "The name of this relationship for display.",
"type": "string"
},
"description": {
"description": "The description of this relationship.",
"type": "string"
},
"genusTypeId": {
"description": "Id of the immutable type of this relationship. Default type set by system unless specified in query parameter.",
"type": "string",
"format": "osid-id",
"readOnly": true
},
"recordTypeIds": {
"description": "Type Ids of record types available on this relationship. Record types define special attributes available on an object to support specific applications or classes of applications and are documented elsewhere.",
"type": "array",
"items": {
"type": "string",
"format": "osid-id"
},
"readOnly": true
},
"startDate": {
"description": "The starting date of this relationship.",
"type": "string",
"format": "date-time"
},
"endDate": {
"description": "The ending date of this relationship.",
"type": "string",
"format": "date-time"
},
"endReasonId": {
"description": "The reason this relationship ended.",
"type": "string",
"format": "osid-id"
},
"sourceId": {
"description": "The source associated with this relationship.",
"type": "string",
"format": "osid-id",
"readOnly": true
},
"destinationId": {
"description": "The destination associated with this relationship.",
"type": "string",
"format": "osid-id",
"readOnly": true
}
}
}
Example:
{
"displayName": "Display Name of this Relationship",
"description": "The description of this Relationship",
"startDate": "2020-10-03T06:30:00.000Z",
"endDate": "2020-12-18T19:30:00.000Z",
"endReasonId": "process.State:7883@base.url"
}
Query the collection of Relationships in a system, federation of systems, or in a default family by posting a Query object.
Submit a query using a RelationshipQuery object.
post /relationships/relationship-query
Submit a query using a RelationshipQuery object.
Query Parameters
- offset: (integer - default: 0)
Skip over a number of elements by specifying an offset value for the query
Example:
20
- limit: (integer - default: 10)
Limit the number of elements on the response
Example:
80
- expand: (string)
Expand object or type for named attribute: "genusType", "recordType", "endReason", "source", "destination", or "all" to expand all referenced objects or types. This parameter can be repeated to expand multiples.
Example:
all
Body
Media type: application/json
Type: json
Content:
{
"$schema": "http://json-schema.org/draft-04/schema#",
"title": "RelationshipQuery",
"type": "object",
"properties": {
"matchIds": {
"description": "List of Ids to match. Boolean OR performed among multiple Ids.",
"type": "array",
"items": {
"type": "object",
"properties": {
"id": {
"description": "id to match",
"type": "string",
"format": "osid-id"
},
"match": {
"description": "true for a positive match, false for a negative match",
"type": "boolean"
}
}
}
},
"matchKeywords": {
"description": "List keywords to match. Multiple keywords can be added to perform a boolean OR among them. A keyword may be applied to any of the elements defined in this object such as the display name, description or any attribute defined in or implemented by this object.",
"type": "array",
"items": {
"type": "object",
"properties": {
"keyword": {
"description": "keyword to match",
"type": "string"
},
"stringMatchType": {
"description": "the string match type",
"type": "string",
"format": "osid-id"
},
"match": {
"description": "true for a positive match, false for a negative match",
"type": "boolean"
}
}
}
},
"matchDisplayNames": {
"description": "List of displayName strings to match. Boolean OR performed among multiple displayNames.",
"type": "array",
"items": {
"type": "object",
"properties": {
"displayName": {
"description": "displayName to match",
"type": "string"
},
"stringMatchType": {
"description": "the string match type",
"type": "string",
"format": "osid-id"
},
"match": {
"description": "true for a positive match, false for a negative match",
"type": "boolean"
}
}
}
},
"matchDescriptions": {
"description": "List of discription strings to match. Boolean OR performed among multiple descriptions.",
"type": "array",
"items": {
"type": "object",
"properties": {
"description": {
"description": "description to match",
"type": "string"
},
"stringMatchType": {
"description": "the string match type",
"type": "string",
"format": "osid-id"
},
"match": {
"description": "true for a positive match, false for a negative match",
"type": "boolean"
}
}
}
},
"matchGenusTypeIds": {
"description": "List of genus type ids to match. Boolean OR performed among multiple ids.",
"type": "array",
"items": {
"type": "object",
"properties": {
"genusTypeid": {
"description": "genus type id to match",
"type": "string",
"format": "osid-id"
},
"match": {
"description": "true for a positive match, false for a negative match",
"type": "boolean"
}
}
}
},
"matchRecordTypeIds": {
"description": "List of record type ids to match. Boolean OR performed among multiple ids.",
"type": "array",
"items": {
"type": "object",
"properties": {
"genusTypeid": {
"description": "record type id to match",
"type": "string",
"format": "osid-id"
},
"match": {
"description": "true for a positive match, false for a negative match",
"type": "boolean"
}
}
}
},
"matchEffective": {
"description": "Match effective objects where the current date falls within the start and end dates inclusive. true to match any effective, false to match ineffective",
"type": "boolean"
},
"matchStartDate": {
"description": "Matches temporals whose start date falls in between the given dates inclusive.",
"type": "object",
"properties": {
"start": {
"description": "start of date range",
"type": "string",
"format": "date-time"
},
"end": {
"description": "end of date range",
"type": "string",
"format": "date-time"
},
"match": {
"description": "true if a positive match, false for negative match",
"type": "boolean"
}
}
},
"matchEndDate": {
"description": "Matches temporals whose end date falls in between the given dates inclusive.",
"type": "object",
"properties": {
"start": {
"description": "start of date range",
"type": "string",
"format": "date-time"
},
"end": {
"description": "end of date range",
"type": "string",
"format": "date-time"
},
"match": {
"description": "true if a positive match, false for negative match",
"type": "boolean"
}
}
},
"matchEndReasonIds": {
"description": "List of end reason Id's to match.",
"type": "array",
"items": {
"type": "object",
"properties": {
"stateId": {
"description": "id to match",
"type": "string",
"format": "osid-id"
},
"match": {
"description": "true for a positive match, false for a negative match",
"type": "boolean"
}
}
}
},
"endReasonQueries": {
"description": "process.StateQueries to match end reason state. Each query performs a boolean OR.",
"type": "array",
"items": {
"type": "object"
}
},
"matchAnyEndReason": {
"description": "Match end reasons with any value. true to match Relationships with any end reason, false to match Relationships with no end reason",
"type": "boolean"
},
"matchSourceIds": {
"description": "List of source Ids for this query to match relationship that have a related source.",
"type": "array",
"items": {
"type": "object",
"properties": {
"ruleId": {
"description": "id to match",
"type": "string",
"format": "osid-id"
},
"match": {
"description": "true for a positive match, false for a negative match",
"type": "boolean"
}
}
}
},
"sourceQueries": {
"description": "SourceQueries to match the source. Each query performs a boolean OR.",
"type": "array",
"items": {
"type": "object"
}
},
"matchDestinationIds": {
"description": "List of destination Ids for this query to match relationship that have a related destination.",
"type": "array",
"items": {
"type": "object",
"properties": {
"ruleId": {
"description": "id to match",
"type": "string",
"format": "osid-id"
},
"match": {
"description": "true for a positive match, false for a negative match",
"type": "boolean"
}
}
}
},
"destinationQueries": {
"description": "DestinationQueries to match the destination. Each query performs a boolean OR.",
"type": "array",
"items": {
"type": "object"
}
},
"matchFamilyIds": {
"description": "List of Family Id's to match.",
"type": "array",
"items": {
"type": "object",
"properties": {
"familyId": {
"description": "Family id to match",
"type": "string",
"format": "osid-id"
},
"match": {
"description": "true for a positive match, false for a negative match",
"type": "boolean"
}
}
}
},
"familyQueries": {
"description": "FamilyQueries to match Family. Each query performs a boolean OR.",
"type": "array",
"items": {
"type": "object"
}
}
}
}
Example:
{
"matchDisplayNames": [
{
"displayName": "string to exclude",
"match": false
}
]
}
HTTP status code 200
Body
Media type: application/json
Type: any
Example:
[
{
"id": "relationship.Relationship:2118@base.url",
"uri": "http://base.url/open/campusapi/relationship/relationship/relationship.Relationship%3A2118%40base.url",
"displayName": "Display Name of this Relationship",
"description": "The description of this Relationship",
"genusTypeId": "type.Type:defaultRelationshipType@base.url",
"recordTypeIds": [ "type.Type:exampleRelationshipRecordType@campusapi.org", "..."],
"startDate": "2020-10-03T06:30:00.000Z",
"endDate": "2020-12-18T19:30:00.000Z",
"endReasonId": "process.State:2118@base.url",
"sourceId": "id.Id:8499@base.url",
"destinationId": "id.Id:9198@base.url"
},
{
"...": "..."
}
]
HTTP status code 403
Body
Media type: application/json
Type: any
Example:
{"message": "Permission denied" }
Entity representing a Relationship form metadata.
Get form metadata for creating a new Relationship.
get /relationships/metadata
Get form metadata for creating a new Relationship.
Query Parameters
- sourceId: required(string)
the source of this metadatum.
Example:
resource.Resource%3A576%40base.url
- destinationId: required(string)
the destination of this metadatum.
Example:
resource.Resource%3A1056%40base.url
- genusType: (string)
specify a particular relationship type to create
Example:
type.Type%3AexampleRelationshipType%40dxtera.org
- recordType: (array of )
specify support for one or more relationship record types
Example:
[ "type.Type%3AexampleRelationshipRecordType%40campusapi.org", "..." ]
- familyId: (string)
specify in which family to create this relationship
Example:
relationship.Family%3A8374%40base.url
HTTP status code 200
Body
Media type: application/json
Type: any
Example:
{
"$schema": "http://json-schema.org/draft/2019-9/schema#",
"title": "Relationship",
"type": "object",
"required": ["displayName"],
"properties": {
"id": {
"description": "The unique id of this relationship, provided by system.",
"type": "string",
"format": "osid-id",
"readOnly": true
},
"uri": {
"description": "The uri of this relationship, provided by system.",
"type": "string",
"format": "uri",
"readOnly": true
},
"displayName": {
"description": "The name of this relationship for display.",
"type": "string",
"read-only": false,
"minLength": 1,
"maxLength": 128,
"pattern": "",
"default": "",
"enum": [],
"elementId": "Relationship.Relationship:displayName@base.url",
"existingValue": "The Existing Name",
"elementLabel": "Name",
"instructions": "Enter a name for this relationship",
"linked": false
},
"description": {
"description": "The description of this relationship.",
"type": "string",
"read-only": false,
"minLength": 0,
"maxLength": 128,
"pattern": "",
"default": "",
"enum": [],
"elementId": "Relationship.Relationship:displayName@demo.base.url",
"existingValue": "The Existing Description",
"elementLabel": "Description",
"instructions": "Enter a description for this relationship",
"linked": false
},
"genusTypeId": {
"description": "Id of the immutable type of this relationship. Default type set by system unless specified in query parameter on initial post.",
"type": "string",
"format": "osid-id",
"readOnly": true
},
"recordTypeIds": {
"description": "Type Ids of record types available on this relationship. Record types define special attributes available on an object to support specific applications or classes of applications and are documented elsewhere.",
"type": "array",
"items": {
"type": "string",
"format": "osid-id"
},
"readOnly": true
},
"startDate": {
"description": "The starting date of this relationship.",
"type": "string",
"format": "date-time",
"read-only": false,
"pattern": "",
"default": "",
"enum": [],
"elementId": "Relationship.Relationship:startDate@base.url",
"existingValue": "2020-10-03T08:00:00.000Z",
"elementLabel": "Start Date",
"instructions": "Enter a starting date for this relationship",
"linked": false
},
"endDate": {
"description": "The ending date of this relationship.",
"type": "string",
"format": "date-time",
"read-only": false,
"pattern": "",
"default": "",
"enum": [],
"elementId": "Relationship.Relationship:endDate@base.url",
"existingValue": "2020-12-18T17:00:00.000Z",
"elementLabel": "End Date",
"instructions": "Enter an ending date for this relationship",
"linked": false
},
"endReasonId": {
"description": "The reason this relationship ended. A process/State object.",
"type": "string",
"format": "osid-id",
"read-only": false,
"pattern": "",
"default": "",
"enum": [],
"elementId": "Relationship.Relationship:endReason@base.url",
"existingValue": "process.State:1860@base.url",
"elementLabel": "End Reason",
"instructions": "Select the reason this relationship ended",
"linked": false
}
}
}
HTTP status code 403
Body
Media type: application/json
Type: any
Example:
{"message": "Permission denied" }
Entity representing a Relationship
Get a particular Relationship given its id.
Update a particular Relationship given its id.
Delete a particular Relationship given its id.
get /relationships/{relationshipId}
Get a particular Relationship given its id.
URI Parameters
- relationshipId: required(string)
Query Parameters
- expand: (string)
Expand object or type for named attribute: "genusType", "recordType", "endReason", "source", "destination", or "all" to expand all referenced objects or types. This parameter can be repeated to expand multiples.
Example:
all
HTTP status code 200
Body
Media type: application/json
Type: any
Example:
{
"id": "relationship.Relationship:2118@base.url",
"uri": "http://base.url/open/campusapi/relationship/relationship/relationship.Relationship%3A2118%40base.url",
"displayName": "Display Name of this Relationship",
"description": "The description of this Relationship",
"genusTypeId": "type.Type:defaultRelationshipType@base.url",
"recordTypeIds": [ "type.Type:exampleRelationshipRecordType@campusapi.org", "..."],
"startDate": "2020-10-03T06:30:00.000Z",
"endDate": "2020-12-18T19:30:00.000Z",
"endReasonId": "process.State:2118@base.url",
"sourceId": "id.Id:8499@base.url",
"destinationId": "id.Id:9198@base.url"
}
HTTP status code 403
Body
Media type: application/json
Type: any
Example:
{"message": "Permission denied" }
HTTP status code 404
Body
Media type: application/json
Type: any
Example:
{"message": "Relationship not found" }
put /relationships/{relationshipId}
Update a particular Relationship given its id.
URI Parameters
- relationshipId: required(string)
Body
Media type: application/json
Type: json
Content:
{
"$schema": "http://json-schema.org/draft-04/schema#",
"title": "Relationship",
"type": "object",
"properties": {
"id": {
"description": "The unique id of this relationship, provided by system.",
"type": "string",
"format": "osid-id",
"readOnly": true
},
"uri": {
"description": "The uri of this relationship, provided by system.",
"type": "string",
"format": "uri",
"readOnly": true
},
"displayName": {
"description": "The name of this relationship for display.",
"type": "string"
},
"description": {
"description": "The description of this relationship.",
"type": "string"
},
"genusTypeId": {
"description": "Id of the immutable type of this relationship. Default type set by system unless specified in query parameter.",
"type": "string",
"format": "osid-id",
"readOnly": true
},
"recordTypeIds": {
"description": "Type Ids of record types available on this relationship. Record types define special attributes available on an object to support specific applications or classes of applications and are documented elsewhere.",
"type": "array",
"items": {
"type": "string",
"format": "osid-id"
},
"readOnly": true
},
"startDate": {
"description": "The starting date of this relationship.",
"type": "string",
"format": "date-time"
},
"endDate": {
"description": "The ending date of this relationship.",
"type": "string",
"format": "date-time"
},
"endReasonId": {
"description": "The reason this relationship ended.",
"type": "string",
"format": "osid-id"
},
"sourceId": {
"description": "The source associated with this relationship.",
"type": "string",
"format": "osid-id",
"readOnly": true
},
"destinationId": {
"description": "The destination associated with this relationship.",
"type": "string",
"format": "osid-id",
"readOnly": true
}
}
}
Example:
{
"displayName": "Display Name of this Relationship",
"description": "The description of this Relationship",
"startDate": "2020-10-03T06:30:00.000Z",
"endDate": "2020-12-18T19:30:00.000Z",
"endReasonId": "process.State:7883@base.url"
}
HTTP status code 200
Body
Media type: application/json
Type: any
Example:
{ "message": "The Relationship has been updated" }
HTTP status code 403
Body
Media type: application/json
Type: any
Example:
{"message": "Permission denied" }
HTTP status code 404
Body
Media type: application/json
Type: any
Example:
{"message": "Relationship not found" }
delete /relationships/{relationshipId}
Delete a particular Relationship given its id.
URI Parameters
- relationshipId: required(string)
HTTP status code 200
Body
Media type: application/json
Type: any
Example:
{ "message": "The Relationship has been deleted" }
HTTP status code 403
Body
Media type: application/json
Type: any
Example:
{"message": "Permission denied" }
HTTP status code 404
Body
Media type: application/json
Type: any
Example:
{"message": "Relationship not found" }
Entity representing a Relationship form metadata for update
Get form metadata for updating an existing Relationship.
get /relationships/{relationshipId}/metadata
Get form metadata for updating an existing Relationship.
URI Parameters
- relationshipId: required(string)
HTTP status code 200
Body
Media type: application/json
Type: any
Example:
{
"$schema": "http://json-schema.org/draft/2019-9/schema#",
"title": "Relationship",
"type": "object",
"required": ["displayName"],
"properties": {
"id": {
"description": "The unique id of this relationship, provided by system.",
"type": "string",
"format": "osid-id",
"readOnly": true
},
"uri": {
"description": "The uri of this relationship, provided by system.",
"type": "string",
"format": "uri",
"readOnly": true
},
"displayName": {
"description": "The name of this relationship for display.",
"type": "string",
"read-only": false,
"minLength": 1,
"maxLength": 128,
"pattern": "",
"default": "",
"enum": [],
"elementId": "Relationship.Relationship:displayName@base.url",
"existingValue": "The Existing Name",
"elementLabel": "Name",
"instructions": "Enter a name for this relationship",
"linked": false
},
"description": {
"description": "The description of this relationship.",
"type": "string",
"read-only": false,
"minLength": 0,
"maxLength": 128,
"pattern": "",
"default": "",
"enum": [],
"elementId": "Relationship.Relationship:displayName@demo.base.url",
"existingValue": "The Existing Description",
"elementLabel": "Description",
"instructions": "Enter a description for this relationship",
"linked": false
},
"genusTypeId": {
"description": "Id of the immutable type of this relationship. Default type set by system unless specified in query parameter on initial post.",
"type": "string",
"format": "osid-id",
"readOnly": true
},
"recordTypeIds": {
"description": "Type Ids of record types available on this relationship. Record types define special attributes available on an object to support specific applications or classes of applications and are documented elsewhere.",
"type": "array",
"items": {
"type": "string",
"format": "osid-id"
},
"readOnly": true
},
"startDate": {
"description": "The starting date of this relationship.",
"type": "string",
"format": "date-time",
"read-only": false,
"pattern": "",
"default": "",
"enum": [],
"elementId": "Relationship.Relationship:startDate@base.url",
"existingValue": "2020-10-03T08:00:00.000Z",
"elementLabel": "Start Date",
"instructions": "Enter a starting date for this relationship",
"linked": false
},
"endDate": {
"description": "The ending date of this relationship.",
"type": "string",
"format": "date-time",
"read-only": false,
"pattern": "",
"default": "",
"enum": [],
"elementId": "Relationship.Relationship:endDate@base.url",
"existingValue": "2020-12-18T17:00:00.000Z",
"elementLabel": "End Date",
"instructions": "Enter an ending date for this relationship",
"linked": false
},
"endReasonId": {
"description": "The reason this relationship ended. A process/State object.",
"type": "string",
"format": "osid-id",
"read-only": false,
"pattern": "",
"default": "",
"enum": [],
"elementId": "Relationship.Relationship:endReason@base.url",
"existingValue": "process.State:1860@base.url",
"elementLabel": "End Reason",
"instructions": "Select the reason this relationship ended",
"linked": false
}
}
}
HTTP status code 403
Body
Media type: application/json
Type: any
Example:
{"message": "Permission denied" }
HTTP status code 404
Body
Media type: application/json
Type: any
Example:
{"message": "relationship not found" }
/families
Collection of Families in a system or federation of systems.
Get all Families.
Create a new Family.
get /families
Get all Families.
Query Parameters
- offset: (integer - default: 0)
Skip over a number of elements by specifying an offset value for the query
Example:
20
- limit: (integer - default: 10)
Limit the number of elements on the response
Example:
80
- expand: (string)
Expand object or type for named attribute: "genusType", "recordType", "provider", "branding", or "all" to expand all referenced objects or types. This parameter can be repeated to expand multiples.
Example:
all
- genusTypeId: (string)
The id string to match a genusType
Example:
type.Type%3AexampleFamilyType%40dxtera.org
- parentGenusTypeId: (string)
The id string to match a parent genusType
Example:
type.Type%3AparentTypeExampleFamilyType%40dxtera.org
- recordTypeId: (string)
The id string to match a recordType
Example:
type.Type%3AexampleFamilyType%40campusapi.org
- providerId: (string)
Id string to match provider.
Example:
resource.Resource%3A3007%40demo.dxtera.org
- relationshipId: (string)
Get families mapped to this relationship.
Example:
relationship.Relationship%3A864%40demo.dxtera.org
HTTP status code 200
Body
Media type: application/json
Type: any
Example:
[
{
"id": "relationship.Family:6774@base.url",
"uri": "http://base.url/open/campusapi/relationship/family/relationship.Family%3A6774%40base.url",
"displayName": "Display Name of this Family",
"description": "The description of this Family",
"genusTypeId": "type.Type:defaultFamilyType@base.url",
"recordTypeIds": [ "type.Type:exampleFamilyRecordType@campusapi.org", "..."],
"providerId": "resource.Resource:123@base.url",
"brandingId": "asset.Asset:Family@base.url",
"license": "The license that applies to this Family"
},
{
"...": "..."
}
]
HTTP status code 403
Body
Media type: application/json
Type: any
Example:
{"message": "Permission denied" }
post /families
Create a new Family.
Query Parameters
- genusType: (string)
specify a particular family type to create
Example:
type.Type%3AexampleFamilyType%40dxtera.org
- recordType: (array of )
specify support for one or more family record types
Example:
[ "type.Type%3AexampleFamilyRecordType%40campusapi.org", "..." ]
Body
Media type: application/json
Type: json
Content:
{
"$schema": "http://json-schema.org/draft-04/schema#",
"title": "Family",
"type": "object",
"properties": {
"id": {
"description": "The unique id of this family, provided by system.",
"type": "string",
"format": "osid-id",
"readOnly": true
},
"uri": {
"description": "The uri of this family, provided by system.",
"type": "string",
"format": "uri",
"readOnly": true
},
"displayName": {
"description": "The name of this family for display.",
"type": "string"
},
"description": {
"description": "The description of this family.",
"type": "string"
},
"genusTypeId": {
"description": "Id of the immutable type of this family. Default type set by system unless specified in query parameter.",
"type": "string",
"format": "osid-id",
"readOnly": true
},
"recordTypeIds": {
"description": "Type Ids of record types available on this family. Record types define special attributes available on an object to support specific applications or classes of applications and are documented elsewhere.",
"type": "array",
"items": {
"type": "string",
"format": "osid-id"
},
"readOnly": true
},
"providerId": {
"description": "The provider of this family.",
"type": "string",
"format": "osid-id"
},
"brandingIds": {
"description": "The branding of this family. A collection of Assets.",
"type": "array",
"items" : {
"type": "string",
"format": "osid-id"
}
},
"license": {
"description": "The licensing that applies to this family.",
"type": "string"
}
}
}
Example:
{
"displayName": "Display Name of this Family",
"description": "The description of this Family",
"providerId": "resource.Resource:123@base.url",
"brandingId": "asset.Asset:Family@base.url",
"license": "The license that applies to this Family"
}
Query the collection of Families in a system, federation of systems, or in a default family by posting a Query object.
Submit a query using a FamilyQuery object.
post /families/family-query
Submit a query using a FamilyQuery object.
Query Parameters
- offset: (integer - default: 0)
Skip over a number of elements by specifying an offset value for the query
Example:
20
- limit: (integer - default: 10)
Limit the number of elements on the response
Example:
80
- expand: (string)
Expand object or type for named attribute: "genusType", "recordType", or "all" to expand all referenced objects or types. This parameter can be repeated to expand multiples.
Example:
all
Body
Media type: application/json
Type: json
Content:
{
"$schema": "http://json-schema.org/draft-04/schema#",
"title": "FamilyQuery",
"type": "object",
"properties": {
"matchIds": {
"description": "List of Ids to match. Boolean OR performed among multiple Ids.",
"type": "array",
"items": {
"type": "object",
"properties": {
"id": {
"description": "id to match",
"type": "string",
"format": "osid-id"
},
"match": {
"description": "true for a positive match, false for a negative match",
"type": "boolean"
}
}
}
},
"matchKeywords": {
"description": "List keywords to match. Multiple keywords can be added to perform a boolean OR among them. A keyword may be applied to any of the elements defined in this object such as the display name, description or any attribute defined in or implemented by this object.",
"type": "array",
"items": {
"type": "object",
"properties": {
"keyword": {
"description": "keyword to match",
"type": "string"
},
"stringMatchType": {
"description": "the string match type",
"type": "string",
"format": "osid-id"
},
"match": {
"description": "true for a positive match, false for a negative match",
"type": "boolean"
}
}
}
},
"matchDisplayNames": {
"description": "List of displayName strings to match. Boolean OR performed among multiple displayNames.",
"type": "array",
"items": {
"type": "object",
"properties": {
"displayName": {
"description": "displayName to match",
"type": "string"
},
"stringMatchType": {
"description": "the string match type",
"type": "string",
"format": "osid-id"
},
"match": {
"description": "true for a positive match, false for a negative match",
"type": "boolean"
}
}
}
},
"matchDescriptions": {
"description": "List of discription strings to match. Boolean OR performed among multiple descriptions.",
"type": "array",
"items": {
"type": "object",
"properties": {
"description": {
"description": "description to match",
"type": "string"
},
"stringMatchType": {
"description": "the string match type",
"type": "string",
"format": "osid-id"
},
"match": {
"description": "true for a positive match, false for a negative match",
"type": "boolean"
}
}
}
},
"matchGenusTypeIds": {
"description": "List of genus type ids to match. Boolean OR performed among multiple ids.",
"type": "array",
"items": {
"type": "object",
"properties": {
"genusTypeid": {
"description": "genus type id to match",
"type": "string",
"format": "osid-id"
},
"match": {
"description": "true for a positive match, false for a negative match",
"type": "boolean"
}
}
}
},
"matchRecordTypeIds": {
"description": "List of record type ids to match. Boolean OR performed among multiple ids.",
"type": "array",
"items": {
"type": "object",
"properties": {
"genusTypeid": {
"description": "record type id to match",
"type": "string",
"format": "osid-id"
},
"match": {
"description": "true for a positive match, false for a negative match",
"type": "boolean"
}
}
}
},
"matchProviderIds": {
"description": "List of provider Ids to match.",
"type": "array",
"items": {
"type": "object",
"properties": {
"stateId": {
"description": "id to match",
"type": "string",
"format": "osid-id"
},
"match": {
"description": "true for a positive match, false for a negative match",
"type": "boolean"
}
}
}
},
"providerQueries": {
"description": "resource.ResourceQuery for provider. Each query performs a boolean OR.",
"type": "array",
"items": {
"type": "object"
},
"matchAnyProvider": {
"description": "Match providers with any value. true to match Family with any provider, false to match Family with no provider",
"type": "boolean"
}
},
"matchBrandingIds": {
"description": "List of branding asset Ids to match.",
"type": "array",
"items": {
"type": "object",
"properties": {
"stateId": {
"description": "id to match",
"type": "string",
"format": "osid-id"
},
"match": {
"description": "true for a positive match, false for a negative match",
"type": "boolean"
}
}
}
},
"brandingQueries": {
"description": "repository.AssetQuery for branding. Each query performs a boolean OR.",
"type": "array",
"items": {
"type": "object"
}
},
"matchAnyBranding": {
"description": "Match brandingss with any value. true to match Family with any branding, false to match Family with no branding",
"type": "boolean"
},
"matchlicenses": {
"description": "List of license strings to match. Boolean OR performed among multiple descriptions.",
"type": "array",
"items": {
"type": "object",
"properties": {
"license": {
"description": "license to match",
"type": "string"
},
"stringMatchType": {
"description": "the string match type",
"type": "string",
"format": "osid-id"
},
"match": {
"description": "true for a positive match, false for a negative match",
"type": "boolean"
}
}
}
},
"matchFamilyIds": {
"description": "List of Family Id's to match.",
"type": "array",
"items": {
"type": "object",
"properties": {
"familyId": {
"description": "Family id to match",
"type": "string",
"format": "osid-id"
},
"match": {
"description": "true for a positive match, false for a negative match",
"type": "boolean"
}
}
}
},
"familyQueries": {
"description": "FamilyQueries to match Family. Each query performs a boolean OR.",
"type": "array",
"items": {
"type": "object"
}
}
}
}
Example:
{
"matchDisplayNames": [
{
"displayName": "string to exclude",
"match": false
}
]
}
HTTP status code 200
Body
Media type: application/json
Type: any
Example:
[
{
"id": "relationship.Family:6774@base.url",
"uri": "http://base.url/open/campusapi/relationship/family/relationship.Family%3A6774%40base.url",
"displayName": "Display Name of this Family",
"description": "The description of this Family",
"genusTypeId": "type.Type:defaultFamilyType@base.url",
"recordTypeIds": [ "type.Type:exampleFamilyRecordType@campusapi.org", "..."],
"providerId": "resource.Resource:123@base.url",
"brandingId": "asset.Asset:Family@base.url",
"license": "The license that applies to this Family"
},
{
"...": "..."
}
]
HTTP status code 403
Body
Media type: application/json
Type: any
Example:
{"message": "Permission denied" }
Entity representing a Family form metadata.
Get form metadata for creating a new Family.
get /families/metadata
Get form metadata for creating a new Family.
HTTP status code 200
Body
Media type: application/json
Type: any
Example:
{
"$schema": "http://json-schema.org/draft/2019-9/schema#",
"title": "Family",
"type": "object",
"required": ["displayName"],
"properties": {
"id": {
"description": "The unique id of this family, provided by system.",
"type": "string",
"format": "osid-id",
"readOnly": true
},
"uri": {
"description": "The uri of this family, provided by system.",
"type": "string",
"format": "uri",
"readOnly": true
},
"displayName": {
"description": "The name of this family for display.",
"type": "string",
"read-only": false,
"minLength": 1,
"maxLength": 128,
"pattern": "",
"default": "",
"enum": [],
"elementId": "Family.Family:displayName@base.url",
"existingValue": "The Existing Name",
"elementLabel": "Name",
"instructions": "Enter a name for this family",
"linked": false
},
"description": {
"description": "The description of this family.",
"type": "string",
"read-only": false,
"minLength": 0,
"maxLength": 128,
"pattern": "",
"default": "",
"enum": [],
"elementId": "Family.Family:displayName@demo.base.url",
"existingValue": "The Existing Description",
"elementLabel": "Description",
"instructions": "Enter a description for this family",
"linked": false
},
"genusTypeId": {
"description": "Id of the immutable type of this family. Default type set by system unless specified in query parameter on initial post.",
"type": "string",
"format": "osid-id",
"readOnly": true
},
"recordTypeIds": {
"description": "Type Ids of record types available on this family. Record types define special attributes available on an object to support specific applications or classes of applications and are documented elsewhere.",
"type": "array",
"items": {
"type": "string",
"format": "osid-id"
},
"readOnly": true
},
"providerId": {
"description": "The provider of this family.",
"type": "string",
"format": "osid-id",
"read-only": false,
"pattern": "",
"default": "",
"enum": [],
"elementId": "Family.Family:provider@base.url",
"existingValue": "",
"elementLabel": "Provider",
"instructions": "Enter the provider of this family",
"linked": false
},
"brandingIds": {
"description": "The branding of this family. A list of Assets.",
"type": "array",
"items" : {
"type": "string",
"format": "osid-id",
"pattern": "",
"enum": []
},
"read-only": false,
"default": [],
"elementId": "Family.Family:branding@base.url",
"existingValue": "",
"elementLabel": "Branding",
"instructions": "Enter the branding images for this family",
"linked": false
},
"license": {
"description": "The licensing that applies to this family.",
"type": "string",
"read-only": false,
"minLength": 0,
"maxLength": 128,
"pattern": "",
"default": "",
"enum": [],
"elementId": "Family.Family:license@base.url",
"existingValue": "The Existing License",
"elementLabel": "License",
"instructions": "Include a license for this family",
"linked": false
}
}
}
HTTP status code 403
Body
Media type: application/json
Type: any
Example:
{"message": "Permission denied" }
The root Families in the Family hierarchy. A node with no parents is an orphan. While all Family Ids are known to the hierarchy, an orphan does not appear in the hierarchy unless explicitly added as a root node or child of another node.
Get all root root-family
get /families/root-family
Get all root root-family
HTTP status code 200
Body
Media type: application/json
Type: any
Example:
[
{
"id": "relationship.Family:6774@base.url",
"uri": "http://base.url/open/campusapi/relationship/family/relationship.Family%3A6774%40base.url",
"displayName": "Display Name of this Family",
"description": "The description of this Family",
"genusTypeId": "type.Type:defaultFamilyType@base.url",
"recordTypeIds": [ "type.Type:exampleFamilyRecordType@campusapi.org", "..."],
"providerId": "resource.Resource:123@base.url",
"brandingId": "asset.Asset:Family@base.url",
"license": "The license that applies to this Family"
},
{
"...": "..."
}
]
HTTP status code 403
Body
Media type: application/json
Type: any
Example:
{"message": "Permission denied" }
Entity representing a Family
Get a particular Family given its id.
Update a particular Family given its id.
Delete a particular Family given its id.
get /families/{familyId}
Get a particular Family given its id.
URI Parameters
- familyId: required(string)
HTTP status code 200
Body
Media type: application/json
Type: any
Example:
{
"id": "relationship.Family:6774@base.url",
"uri": "http://base.url/open/campusapi/relationship/family/relationship.Family%3A6774%40base.url",
"displayName": "Display Name of this Family",
"description": "The description of this Family",
"genusTypeId": "type.Type:defaultFamilyType@base.url",
"recordTypeIds": [ "type.Type:exampleFamilyRecordType@campusapi.org", "..."],
"providerId": "resource.Resource:123@base.url",
"brandingId": "asset.Asset:Family@base.url",
"license": "The license that applies to this Family"
}
HTTP status code 403
Body
Media type: application/json
Type: any
Example:
{"message": "Permission denied" }
HTTP status code 404
Body
Media type: application/json
Type: any
Example:
{"message": "Family not found" }
put /families/{familyId}
Update a particular Family given its id.
URI Parameters
- familyId: required(string)
Body
Media type: application/json
Type: json
Content:
{
"$schema": "http://json-schema.org/draft-04/schema#",
"title": "Family",
"type": "object",
"properties": {
"id": {
"description": "The unique id of this family, provided by system.",
"type": "string",
"format": "osid-id",
"readOnly": true
},
"uri": {
"description": "The uri of this family, provided by system.",
"type": "string",
"format": "uri",
"readOnly": true
},
"displayName": {
"description": "The name of this family for display.",
"type": "string"
},
"description": {
"description": "The description of this family.",
"type": "string"
},
"genusTypeId": {
"description": "Id of the immutable type of this family. Default type set by system unless specified in query parameter.",
"type": "string",
"format": "osid-id",
"readOnly": true
},
"recordTypeIds": {
"description": "Type Ids of record types available on this family. Record types define special attributes available on an object to support specific applications or classes of applications and are documented elsewhere.",
"type": "array",
"items": {
"type": "string",
"format": "osid-id"
},
"readOnly": true
},
"providerId": {
"description": "The provider of this family.",
"type": "string",
"format": "osid-id"
},
"brandingIds": {
"description": "The branding of this family. A collection of Assets.",
"type": "array",
"items" : {
"type": "string",
"format": "osid-id"
}
},
"license": {
"description": "The licensing that applies to this family.",
"type": "string"
}
}
}
Example:
{
"displayName": "Display Name of this Family",
"description": "The description of this Family",
"providerId": "resource.Resource:123@base.url",
"brandingId": "asset.Asset:Family@base.url",
"license": "The license that applies to this Family"
}
HTTP status code 200
Body
Media type: application/json
Type: any
Example:
{ "message": "The Family has been updated" }
HTTP status code 403
Body
Media type: application/json
Type: any
Example:
{"message": "Permission denied" }
HTTP status code 404
Body
Media type: application/json
Type: any
Example:
{"message": "Family not found" }
delete /families/{familyId}
Delete a particular Family given its id.
URI Parameters
- familyId: required(string)
HTTP status code 200
Body
Media type: application/json
Type: any
Example:
{ "message": "The Family has been deleted" }
HTTP status code 403
Body
Media type: application/json
Type: any
Example:
{"message": "Permission denied" }
HTTP status code 404
Body
Media type: application/json
Type: any
Example:
{"message": "Family not found" }
Entity representing a Family form metadata for update
Get form metadata for updating an existing Family.
get /families/{familyId}/metadata
Get form metadata for updating an existing Family.
URI Parameters
- familyId: required(string)
HTTP status code 200
Body
Media type: application/json
Type: any
Example:
{
"$schema": "http://json-schema.org/draft/2019-9/schema#",
"title": "Family",
"type": "object",
"required": ["displayName"],
"properties": {
"id": {
"description": "The unique id of this family, provided by system.",
"type": "string",
"format": "osid-id",
"readOnly": true
},
"uri": {
"description": "The uri of this family, provided by system.",
"type": "string",
"format": "uri",
"readOnly": true
},
"displayName": {
"description": "The name of this family for display.",
"type": "string",
"read-only": false,
"minLength": 1,
"maxLength": 128,
"pattern": "",
"default": "",
"enum": [],
"elementId": "Family.Family:displayName@base.url",
"existingValue": "The Existing Name",
"elementLabel": "Name",
"instructions": "Enter a name for this family",
"linked": false
},
"description": {
"description": "The description of this family.",
"type": "string",
"read-only": false,
"minLength": 0,
"maxLength": 128,
"pattern": "",
"default": "",
"enum": [],
"elementId": "Family.Family:displayName@demo.base.url",
"existingValue": "The Existing Description",
"elementLabel": "Description",
"instructions": "Enter a description for this family",
"linked": false
},
"genusTypeId": {
"description": "Id of the immutable type of this family. Default type set by system unless specified in query parameter on initial post.",
"type": "string",
"format": "osid-id",
"readOnly": true
},
"recordTypeIds": {
"description": "Type Ids of record types available on this family. Record types define special attributes available on an object to support specific applications or classes of applications and are documented elsewhere.",
"type": "array",
"items": {
"type": "string",
"format": "osid-id"
},
"readOnly": true
},
"providerId": {
"description": "The provider of this family.",
"type": "string",
"format": "osid-id",
"read-only": false,
"pattern": "",
"default": "",
"enum": [],
"elementId": "Family.Family:provider@base.url",
"existingValue": "",
"elementLabel": "Provider",
"instructions": "Enter the provider of this family",
"linked": false
},
"brandingIds": {
"description": "The branding of this family. A list of Assets.",
"type": "array",
"items" : {
"type": "string",
"format": "osid-id",
"pattern": "",
"enum": []
},
"read-only": false,
"default": [],
"elementId": "Family.Family:branding@base.url",
"existingValue": "",
"elementLabel": "Branding",
"instructions": "Enter the branding images for this family",
"linked": false
},
"license": {
"description": "The licensing that applies to this family.",
"type": "string",
"read-only": false,
"minLength": 0,
"maxLength": 128,
"pattern": "",
"default": "",
"enum": [],
"elementId": "Family.Family:license@base.url",
"existingValue": "The Existing License",
"elementLabel": "License",
"instructions": "Include a license for this family",
"linked": false
}
}
}
HTTP status code 403
Body
Media type: application/json
Type: any
Example:
{"message": "Permission denied" }
HTTP status code 404
Body
Media type: application/json
Type: any
Example:
{"message": "family not found" }
Get child Families for the given Family in the hierarchy.
get /families/{familyId}/children
Get child Families for the given Family in the hierarchy.
URI Parameters
- familyId: required(string)
HTTP status code 200
Body
Media type: application/json
Type: any
Example:
[
{
"id": "relationship.Family:6774@base.url",
"uri": "http://base.url/open/campusapi/relationship/family/relationship.Family%3A6774%40base.url",
"displayName": "Display Name of this Family",
"description": "The description of this Family",
"genusTypeId": "type.Type:defaultFamilyType@base.url",
"recordTypeIds": [ "type.Type:exampleFamilyRecordType@campusapi.org", "..."],
"providerId": "resource.Resource:123@base.url",
"brandingId": "asset.Asset:Family@base.url",
"license": "The license that applies to this Family"
},
{
"...": "..."
}
]
HTTP status code 403
Body
Media type: application/json
Type: any
Example:
{"message": "Permission denied" }
Add Family as child of the given Family in the hierarchy.
Remove the given Family as a child of the given Family in the hierarchy.
put /families/{familyId}/children/{childId}
Add Family as child of the given Family in the hierarchy.
URI Parameters
- familyId: required(string)
- childId: required(string)
HTTP status code 200
Body
Media type: application/json
Type: any
Example:
{ "message": "The child Family has been added to the hierarchy" }
HTTP status code 403
Body
Media type: application/json
Type: any
Example:
{"message": "Permission denied" }
HTTP status code 404
Body
Media type: application/json
Type: any
Example:
{ "message": "family not found" }
delete /families/{familyId}/children/{childId}
Remove the given Family as a child of the given Family in the hierarchy.
URI Parameters
- familyId: required(string)
- childId: required(string)
Get parent Families for the given Family in the hierarchy.
get /families/{familyId}/parents
Get parent Families for the given Family in the hierarchy.
URI Parameters
- familyId: required(string)
HTTP status code 200
Body
Media type: application/json
Type: any
Example:
[
{
"id": "relationship.Family:6774@base.url",
"uri": "http://base.url/open/campusapi/relationship/family/relationship.Family%3A6774%40base.url",
"displayName": "Display Name of this Family",
"description": "The description of this Family",
"genusTypeId": "type.Type:defaultFamilyType@base.url",
"recordTypeIds": [ "type.Type:exampleFamilyRecordType@campusapi.org", "..."],
"providerId": "resource.Resource:123@base.url",
"brandingId": "asset.Asset:Family@base.url",
"license": "The license that applies to this Family"
},
{
"...": "..."
}
]
HTTP status code 403
Body
Media type: application/json
Type: any
Example:
{"message": "Permission denied" }
Get all Relationships in this Family
get /families/{familyId}/relationships
Get all Relationships in this Family
URI Parameters
- familyId: required(string)
Query Parameters
- offset: (integer - default: 0)
Skip over a number of elements by specifying an offset value for the query
Example:
20
- limit: (integer - default: 10)
Limit the number of elements on the response
Example:
80
- expand: (string)
Expand object or type for named attribute: "genusType", "recordType", "endReason", "source", "destination", or "all" to expand all referenced objects or types. This parameter can be repeated to expand multiples.
Example:
all
- genusTypeId: (string)
The id string to match a genusType
Example:
type.Type%3AexampleRelationshipType%40dxtera.org
- parentGenusTypeId: (string)
The id string to match a parent genusType
Example:
type.Type%3AparentTypeExampleRelationshipType%40dxtera.org
- recordTypeId: (string)
The id string to match a recordType
Example:
type.Type%3AexampleRelationshipType%40campusapi.org
HTTP status code 200
Body
Media type: application/json
Type: any
Example:
[
{
"id": "relationship.Relationship:2118@base.url",
"uri": "http://base.url/open/campusapi/relationship/relationship/relationship.Relationship%3A2118%40base.url",
"displayName": "Display Name of this Relationship",
"description": "The description of this Relationship",
"genusTypeId": "type.Type:defaultRelationshipType@base.url",
"recordTypeIds": [ "type.Type:exampleRelationshipRecordType@campusapi.org", "..."],
"startDate": "2020-10-03T06:30:00.000Z",
"endDate": "2020-12-18T19:30:00.000Z",
"endReasonId": "process.State:2118@base.url",
"sourceId": "id.Id:8499@base.url",
"destinationId": "id.Id:9198@base.url"
},
{
"...": "..."
}
]
HTTP status code 403
Body
Media type: application/json
Type: any
Example:
{"message": "Permission denied" }
Add the given Relationship to this Family
Remove the given Relationship from the Family.
put /families/{familyId}/relationships/{relationshipId}
Add the given Relationship to this Family
URI Parameters
- familyId: required(string)
- relationshipId: required(string)
HTTP status code 200
Body
Media type: application/json
Type: any
Example:
{ "message": "Relationship has been added to Family" }
HTTP status code 403
Body
Media type: application/json
Type: any
Example:
{"message": "Permission denied" }
HTTP status code 404
Body
Media type: application/json
Type: any
Example:
{ "message": "Relationship not found" }
delete /families/{familyId}/relationships/{relationshipId}
Remove the given Relationship from the Family.
URI Parameters
- familyId: required(string)
- relationshipId: required(string)
HTTP status code 200
Body
Media type: application/json
Type: any
Example:
{ "message": "Relationship has been removed" }
HTTP status code 403
Body
Media type: application/json
Type: any
Example:
{"message": "Permission denied" }
HTTP status code 404
Body
Media type: application/json
Type: any
Example:
{ "message": "Relationship not found" }