CampusAPI Personnel Services API documentation version 1.0.2
Based on OSID version 3.0.0
https://base.url/personnel
Overview
The Personnel services define people and organizations.
Resource Orchestration
: Many services reference Resources for people, places, and things. The Resource provides a lightweight simple abstraction to satisfy the common case of resolving an id into a display name, genus Type, or description. In many of these cases the Resource implies a Person or an Organization.
The Personnel OSID provides a more detailed view of Persons and Organizations as well as capturing the relationships between employees and their organizational units. The Personnel service may supply the backing for a Resource OSID where it is desired to use these entities throughout other services.
This package includes the following entities:
Persons
A Person is a people. Persons define identification information such as names and institutional identifiers.
Field | Description | Type |
---|---|---|
id(read‑only) | The unique id of this person, provided by system. | string(osid‑id) |
uri(read‑only) | The uri of this person, provided by system. | string(uri) |
displayName | The name of this person for display. | string |
description | The description of this person. | string |
genusTypeId (read‑only) | Id of the immutable type of this person. Default type set by system unless specified in query parameter. | string(osid‑id) |
recordTypeIds (read‑only) | Type Ids of record types available on this person. Record types define special attributes available on an object to support specific applications or classes of applications and are documented elsewhere. | string(osid‑id)[] |
salutation | The title for this person (Mr. | string |
givenName | The given name of this person. | string |
preferredName | The preferred forename or mononym of this person. | string |
forenameAliases | Additional forenames this person is or was known by. | string[] |
middleNames | The middle names of this person. | string[] |
surname | The surname of this person. | string |
surnameAliases | Additional surnames this person is or was known by. | string[] |
generationQualifier | The generation qualifier of this person. | string |
birthDate | The date of birth for this person. | string(date‑time) |
deathDate | The date of death for this person. | string(date‑time) |
institutionalIdentifier | The institutional identifier for this person. | string |
Organizations
An Organization is a hierarchical structure of organizational units.
Field | Description | Type |
---|---|---|
id(read‑only) | The unique id of this organization, provided by system. | string(osid‑id) |
uri(read‑only) | The uri of this organization, provided by system. | string(uri) |
displayName | The name of this organization for display. | string |
description | The description of this organization. | string |
genusTypeId (read‑only) | Id of the immutable type of this organization. Default type set by system unless specified in query parameter. | string(osid‑id) |
recordTypeIds (read‑only) | Type Ids of record types available on this organization. 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 organization. | string(date‑time) |
endDate | The ending date of this organization. | string(date‑time) |
displayLabel | The display label or code for this organization. | string |
Positions
A Position is a job description performed in the context of an Organization. A Position has a job level represented using a Grade, optional salary range, as well as a set of learning Objectives used to convey the desired qualifications for the position.
Positions are not canonical in that they belong to a specific Organization although Positions from parent Organizations may be visible to its sub organizational units. A canonical position that can be reused across Organizations can be represented with a combination of the Positition genus Type and Grade level.
Field | Description | Type |
---|---|---|
id(read‑only) | The unique id of this position, provided by system. | string(osid‑id) |
uri(read‑only) | The uri of this position, provided by system. | string(uri) |
displayName | The name of this position for display. | string |
description | The description of this position. | string |
genusTypeId (read‑only) | Id of the immutable type of this position. Default type set by system unless specified in query parameter. | string(osid‑id) |
recordTypeIds (read‑only) | Type Ids of record types available on this position. 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 position. | string(date‑time) |
endDate | The ending date of this position. | string(date‑time) |
organizationId (read‑only) | The organization associated with this position. References a personnel.Organization object. | string(osid‑id) |
title | The title for this position. | string |
levelId | The grade level for this position. References a grading.Grade object | string(osid‑id) |
qualificationIds | The list of qualifications required for this position. References an array of learning.Objective objects. | string(osid‑id)[] |
targetAppointmenst | -- could someone please write a description for this -- | SYNTAX_TYPE_NOT_FOUND: NONE |
requiredCommitment | The required percentage commitment (0-100). | integer |
lowSalaryRange | The low end of the salary range. | string(currency) |
midpointSalaryRange | The midpoint of the salary range. | string(currency) |
highSalaryRange | The high end of the salary range. | string(currency) |
compensationFrequency | The frequency of compensation. | string(duration) |
exempt | Tests if this position is FLSA exempt. | boolean |
benefitsType | The benefits Type assoicated with this position. | string(osid‑type) |
Appointments
An Appointment is a relationship relating Persons to Positions. The effective dates of an Appointment may be used to indicate the term of employment.
Example: A software company is an Organization with each of a Sales, Marketing, and Engineering organizational unit. The Engineering Organization has 10 "level 6" programming Positions requiring a Proficiency in Java with a salary range of $110-$130K. Cathy holds one of these positions with a full-time Appointment at $125K and job title of "senior developer" busgeted under the Engineering department financial Activity.
Field | Description | Type |
---|---|---|
id(read‑only) | The unique id of this appointment, provided by system. | string(osid‑id) |
uri(read‑only) | The uri of this appointment, provided by system. | string(uri) |
displayName | The name of this appointment for display. | string |
description | The description of this appointment. | string |
genusTypeId (read‑only) | Id of the immutable type of this appointment. Default type set by system unless specified in query parameter. | string(osid‑id) |
recordTypeIds (read‑only) | Type Ids of record types available on this appointment. 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 appointment. | string(date‑time) |
endDate | The ending date of this appointment. | string(date‑time) |
endReasonId | The reason this appointment ended. References a process.State object. | string(osid‑id) |
personId (read‑only) | The person associated with this appointment. References a personnel.Person object. | string(osid‑id) |
positionId (read‑only) | The position associated with this appointment. References a personnel.Position object. | string(osid‑id) |
commitment | The percentage commitment (0-100). | integer |
title | The title for this appointment. | string |
salary | The salary. | string(currency) |
Realms
Persons, Organizations, Positions , and Appointments are mapped to Realms for organization. Realms can be managed hierarchically to federate multiple collections of Persons.
Every Realm has one organization hierarchy. By selecting the Realm is, in effect, selecting the organizational hierarchy. Each hierarchy may expose multiple organizational roots that do not have to be related. Looking up and searching Organizations exposes all of their organizational units. It may be helpful to retrieve the organizational roots for a Realm and navigating from there.
Field | Description | Type |
---|---|---|
id(read‑only) | The unique id of this realm, provided by system. | string(osid‑id) |
uri(read‑only) | The uri of this realm, provided by system. | string(uri) |
displayName | The name of this realm for display. | string |
description | The description of this realm. | string |
genusTypeId (read‑only) | Id of the immutable type of this realm. Default type set by system unless specified in query parameter. | string(osid‑id) |
recordTypeIds (read‑only) | Type Ids of record types available on this realm. 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 realm. References a resource.Resource object. | string(osid‑id) |
brandingIds | The branding of this realm. References repository.Asset objects. | string(osid‑id)[] |
license | The licensing that applies to this realm. | string |
License
CampusAPI REST Documentation Copyright 2020 DXtera Institute. Based on the Open Service Interface Defitions: http://osid.org
/persons
Collection of persons in a system, federation of systems, or in a default realm.
Get all persons in the system or default realm.
Create a new person in the default realm.
get /persons
Get all persons in the system or default realm.
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
- genusTypeId: (string)
The id string to match a genusType
Example:
type.Type%3AexamplePersonType%40dxtera.org
- parentGenusTypeId: (string)
The id string to match a parent genusType
Example:
type.Type%3AparentTypeExamplePersonType%40dxtera.org
- recordTypeId: (string)
The id string to match a recordType
Example:
type.Type%3AexamplePersonType%40campusapi.org
- realmId: (string)
The id string to match a realm
Example:
personnel.Realm%3A8374%40base.url
HTTP status code 200
Body
Media type: application/json
Type: any
Example:
[
{
"id": "personnel.Person:3411@base.url",
"uri": "http://base.url/open/campusapi/personnel/person/personnel.Person%3A3411%40base.url",
"displayName": "Display Name of this Person",
"description": "The description of this Person",
"genusTypeId": "type.Type:defaultPersonType@base.url",
"recordTypeIds": [ "type.Type:examplePersonRecordType@campusapi.org", "..."],
"salutation": "This is the Salutation",
"givenName": "This is the GivenName",
"preferredName": "This is the PreferredName",
"forenameAliases": [ "..string[]..", "..." ],
"middleNames": [ "..string[]..", "..." ],
"surname": "This is the Surname",
"surnameAliases": [ "..string[]..", "..." ],
"generationQualifier": "This is the GenerationQualifier",
"birthDate": "2021-07-21T23:15:30.000Z",
"deathDate": "2021-07-21T23:15:30.000Z",
"institutionalIdentifier": "This is the string for InstitutionalIdentifier",
"qualificationSuffix": "This is the QualificationSuffix"
},
{
"...": "..."
}
]
HTTP status code 403
Body
Media type: application/json
Type: any
Example:
{"message": "Permission denied" }
post /persons
Create a new person in the default realm.
Query Parameters
- genusType: (string)
specify a particular person type to create
Example:
type.Type%3AexamplePersonType%40dxtera.org
- recordType: (array of )
specify support for one or more person record types
Example:
[ "type.Type%3AexamplePersonRecordType%40campusapi.org", "..." ]
- realmId: (string)
specify in which realm to create this person
Example:
personnel.Realm%3A8374%40base.url
Body
Media type: application/json
Type: json
Content:
{
"$schema": "http://json-schema.org/draft-04/schema#",
"title": "Person",
"type": "object",
"properties": {
"id": {
"description": "The unique id of this person, provided by system.",
"type": "string",
"format": "osid-id",
"readOnly": true
},
"uri": {
"description": "The uri of this person, provided by system.",
"type": "string",
"format": "uri",
"readOnly": true
},
"displayName": {
"description": "The name of this person for display.",
"type": "string"
},
"description": {
"description": "The description of this person.",
"type": "string"
},
"genusTypeId": {
"description": "Id of the immutable type of this person. 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 person. 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
},
"salutation": {
"description": "The title for this person (Mr.",
"type": "string"
},
"givenName": {
"description": "The given name of this person.",
"type": "string"
},
"preferredName": {
"description": "The preferred forename or mononym of this person.",
"type": "string"
},
"forenameAliases": {
"description": "Additional forenames this person is or was known by.",
"type": "array",
"items": {
"type": "string"
}
},
"middleNames": {
"description": "The middle names of this person.",
"type": "array",
"items": {
"type": "string"
}
},
"surname": {
"description": "The surname of this person.",
"type": "string"
},
"surnameAliases": {
"description": "Additional surnames this person is or was known by.",
"type": "array",
"items": {
"type": "string"
}
},
"generationQualifier": {
"description": "The generation qualifier of this person.",
"type": "string"
},
"birthDate": {
"description": "The date of birth for this person.",
"type": "string",
"format": "date-time"
},
"deathDate": {
"description": "The date of death for this person.",
"type": "string",
"format": "date-time"
},
"institutionalIdentifier": {
"description": "The institutional identifier for this person.",
"type": "string"
}
}
}
Example:
{
"displayName": "Display Name of this Person",
"description": "The description of this Person",
"salutation": "This is the Salutation",
"givenName": "This is the GivenName",
"preferredName": "This is the PreferredName",
"forenameAliases": [ "..string[]..", "..." ],
"middleNames": [ "..string[]..", "..." ],
"surname": "This is the Surname",
"surnameAliases": [ "..string[]..", "..." ],
"generationQualifier": "This is the GenerationQualifier",
"birthDate": "2021-07-21T23:15:30.000Z",
"deathDate": "2021-07-21T23:15:30.000Z",
"institutionalIdentifier": "This is the string for InstitutionalIdentifier",
"qualificationSuffix": "This is the QualificationSuffix"
}
Entity representing a person form metadata.
Get form metadata for creating a new person.
get /persons/metadata
Get form metadata for creating a new person.
Query Parameters
- genusType: (string)
specify a particular person type to create
Example:
type.Type%3AexamplePersonType%40dxtera.org
- recordType: (array of )
specify support for one or more person record types
Example:
[ "type.Type%3AexamplePersonRecordType%40campusapi.org", "..." ]
- realmId: (string)
specify in which realm to create this person
Example:
personnel.Realm%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": "Person",
"type": "object",
"required": ["displayName"],
"properties": {
"id": {
"description": "The unique id of this person, provided by system.",
"type": "string",
"format": "osid-id",
"readOnly": true
},
"uri": {
"description": "The uri of this person, provided by system.",
"type": "string",
"format": "uri",
"readOnly": true
},
"displayName": {
"description": "The name of this person for display.",
"type": "string",
"read-only": false,
"minLength": 1,
"maxLength": 128,
"pattern": "",
"default": "",
"enum": [],
"elementId": "Person.Person:displayName@base.url",
"existingValue": "The Existing Name",
"elementLabel": "Name",
"instructions": "Enter a name for this person",
"linked": false
},
"description": {
"description": "The description of this person.",
"type": "string",
"read-only": false,
"minLength": 0,
"maxLength": 128,
"pattern": "",
"default": "",
"enum": [],
"elementId": "Person.Person:displayName@demo.base.url",
"existingValue": "The Existing Description",
"elementLabel": "Description",
"instructions": "Enter a description for this person",
"linked": false
},
"genusTypeId": {
"description": "Id of the immutable type of this person. 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 person. 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
},
"salutation": {
"description": "The title for this person (Mr.",
"type": "string",
"read-only": false,
"minLength": null,
"maxLength": null,
"pattern": "",
"default": "",
"enum": [],
"elementId": "personnel.Person:salutation@dxtera.org",
"existingValue": "The existing salutation",
"elementLabel": "Salutation",
"instructions": "Enter a salutation for this person.",
"linked": false
},
"givenName": {
"description": "The given name of this person.",
"type": "string",
"read-only": false,
"minLength": null,
"maxLength": null,
"pattern": "",
"default": "",
"enum": [],
"elementId": "personnel.Person:givenName@dxtera.org",
"existingValue": "The existing given name",
"elementLabel": "Given Name",
"instructions": "Enter a given name for this person.",
"linked": false
},
"preferredName": {
"description": "The preferred forename or mononym of this person.",
"type": "string",
"read-only": false,
"minLength": null,
"maxLength": null,
"pattern": "",
"default": "",
"enum": [],
"elementId": "personnel.Person:preferredName@dxtera.org",
"existingValue": "The existing preferred name",
"elementLabel": "Preferred Name",
"instructions": "Enter a preferred name for this person.",
"linked": false
},
"forenameAliases": {
"description": "Additional forenames this person is or was known by.",
"type": "array",
"items": {
"type": "string",
"minLength": null,
"maxLength": null,
"pattern": "",
"enum": []
},
"default": [],
"elementId": "personnel.Person:forenameAliases@dxtera.org",
"existingValue": "The existing forename aliases",
"elementLabel": "Forename Aliases",
"instructions": "Enter a forename aliases for this person.",
"linked": false
},
"middleNames": {
"description": "The middle names of this person.",
"type": "array",
"items": {
"type": "string",
"minLength": null,
"maxLength": null,
"pattern": "",
"enum": []
},
"default": [],
"elementId": "personnel.Person:middleNames@dxtera.org",
"existingValue": "The existing middle names",
"elementLabel": "Middle Names",
"instructions": "Enter a middle names for this person.",
"linked": false
},
"surame": {
"description": "The surname of this person.",
"type": "string",
"read-only": false,
"minLength": null,
"maxLength": null,
"pattern": "",
"default": "",
"enum": [],
"elementId": "personnel.Person:surame@dxtera.org",
"existingValue": "The existing surame",
"elementLabel": "Surame",
"instructions": "Enter a surame for this person.",
"linked": false
},
"surameAliases": {
"description": "Additional surnames this person is or was known by.",
"type": "array",
"items": {
"type": "string",
"minLength": null,
"maxLength": null,
"pattern": "",
"enum": []
},
"default": [],
"elementId": "personnel.Person:surameAliases@dxtera.org",
"existingValue": "The existing surame aliases",
"elementLabel": "Surame Aliases",
"instructions": "Enter a surame aliases for this person.",
"linked": false
},
"generationQualifier": {
"description": "The generation qualifier of this person.",
"type": "string",
"read-only": false,
"minLength": null,
"maxLength": null,
"pattern": "",
"default": "",
"enum": [],
"elementId": "personnel.Person:generationQualifier@dxtera.org",
"existingValue": "The existing generation qualifier",
"elementLabel": "Generation Qualifier",
"instructions": "Enter a generation qualifier for this person.",
"linked": false
},
"birthDate": {
"description": "The date of birth for this person.",
"type": "string",
"format": "date-time",
"read-only": false,
"pattern": "",
"default": "",
"enum": [],
"elementId": "personnel.Person:birthDate@dxtera.org",
"existingValue": "",
"elementLabel": "Birth Date",
"instructions": "Enter the birth date of this person.",
"linked": false
},
"deathDate": {
"description": "The date of death for this person.",
"type": "string",
"format": "date-time",
"read-only": false,
"pattern": "",
"default": "",
"enum": [],
"elementId": "personnel.Person:deathDate@dxtera.org",
"existingValue": "",
"elementLabel": "Death Date",
"instructions": "Enter the death date of this person.",
"linked": false
},
"institutionalIdentifier": {
"description": "The institutional identifier for this person.",
"type": "string",
"read-only": false,
"minLength": null,
"maxLength": null,
"pattern": "",
"default": "",
"enum": [],
"elementId": "personnel.Person:institutionalIdentifier@dxtera.org",
"existingValue": "The existing institutional identifier",
"elementLabel": "Institutional Identifier",
"instructions": "Enter a institutional identifier for this person.",
"linked": false
}
}
}
HTTP status code 403
Body
Media type: application/json
Type: any
Example:
{"message": "Permission denied" }
Entity representing a person
Get a person given its id.
Update a given person.
Delete a given person.
get /persons/{personId}
Get a person given its id.
URI Parameters
- personId: required(string)
HTTP status code 200
Body
Media type: application/json
Type: any
Example:
{
"id": "personnel.Person:3411@base.url",
"uri": "http://base.url/open/campusapi/personnel/person/personnel.Person%3A3411%40base.url",
"displayName": "Display Name of this Person",
"description": "The description of this Person",
"genusTypeId": "type.Type:defaultPersonType@base.url",
"recordTypeIds": [ "type.Type:examplePersonRecordType@campusapi.org", "..."],
"salutation": "This is the Salutation",
"givenName": "This is the GivenName",
"preferredName": "This is the PreferredName",
"forenameAliases": [ "..string[]..", "..." ],
"middleNames": [ "..string[]..", "..." ],
"surname": "This is the Surname",
"surnameAliases": [ "..string[]..", "..." ],
"generationQualifier": "This is the GenerationQualifier",
"birthDate": "2021-07-21T23:15:30.000Z",
"deathDate": "2021-07-21T23:15:30.000Z",
"institutionalIdentifier": "This is the string for InstitutionalIdentifier",
"qualificationSuffix": "This is the QualificationSuffix"
}
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": "person not found" }
put /persons/{personId}
Update a given person.
URI Parameters
- personId: required(string)
Body
Media type: application/json
Type: json
Content:
{
"$schema": "http://json-schema.org/draft-04/schema#",
"title": "Person",
"type": "object",
"properties": {
"id": {
"description": "The unique id of this person, provided by system.",
"type": "string",
"format": "osid-id",
"readOnly": true
},
"uri": {
"description": "The uri of this person, provided by system.",
"type": "string",
"format": "uri",
"readOnly": true
},
"displayName": {
"description": "The name of this person for display.",
"type": "string"
},
"description": {
"description": "The description of this person.",
"type": "string"
},
"genusTypeId": {
"description": "Id of the immutable type of this person. 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 person. 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
},
"salutation": {
"description": "The title for this person (Mr.",
"type": "string"
},
"givenName": {
"description": "The given name of this person.",
"type": "string"
},
"preferredName": {
"description": "The preferred forename or mononym of this person.",
"type": "string"
},
"forenameAliases": {
"description": "Additional forenames this person is or was known by.",
"type": "array",
"items": {
"type": "string"
}
},
"middleNames": {
"description": "The middle names of this person.",
"type": "array",
"items": {
"type": "string"
}
},
"surname": {
"description": "The surname of this person.",
"type": "string"
},
"surnameAliases": {
"description": "Additional surnames this person is or was known by.",
"type": "array",
"items": {
"type": "string"
}
},
"generationQualifier": {
"description": "The generation qualifier of this person.",
"type": "string"
},
"birthDate": {
"description": "The date of birth for this person.",
"type": "string",
"format": "date-time"
},
"deathDate": {
"description": "The date of death for this person.",
"type": "string",
"format": "date-time"
},
"institutionalIdentifier": {
"description": "The institutional identifier for this person.",
"type": "string"
}
}
}
Example:
{
"displayName": "Display Name of this Person",
"description": "The description of this Person",
"salutation": "This is the Salutation",
"givenName": "This is the GivenName",
"preferredName": "This is the PreferredName",
"forenameAliases": [ "..string[]..", "..." ],
"middleNames": [ "..string[]..", "..." ],
"surname": "This is the Surname",
"surnameAliases": [ "..string[]..", "..." ],
"generationQualifier": "This is the GenerationQualifier",
"birthDate": "2021-07-21T23:15:30.000Z",
"deathDate": "2021-07-21T23:15:30.000Z",
"institutionalIdentifier": "This is the string for InstitutionalIdentifier",
"qualificationSuffix": "This is the QualificationSuffix"
}
HTTP status code 200
Body
Media type: application/json
Type: any
Example:
{ "message": "The person 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": "person not found" }
delete /persons/{personId}
Delete a given person.
URI Parameters
- personId: required(string)
HTTP status code 200
Body
Media type: application/json
Type: any
Example:
{ "message": "The person 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": "person not found" }
Entity representing a person form metadata for update
Get form metadata for updating an existing person.
get /persons/{personId}/metadata
Get form metadata for updating an existing person.
URI Parameters
- personId: required(string)
HTTP status code 200
Body
Media type: application/json
Type: any
Example:
{
"$schema": "http://json-schema.org/draft/2019-9/schema#",
"title": "Person",
"type": "object",
"required": ["displayName"],
"properties": {
"id": {
"description": "The unique id of this person, provided by system.",
"type": "string",
"format": "osid-id",
"readOnly": true
},
"uri": {
"description": "The uri of this person, provided by system.",
"type": "string",
"format": "uri",
"readOnly": true
},
"displayName": {
"description": "The name of this person for display.",
"type": "string",
"read-only": false,
"minLength": 1,
"maxLength": 128,
"pattern": "",
"default": "",
"enum": [],
"elementId": "Person.Person:displayName@base.url",
"existingValue": "The Existing Name",
"elementLabel": "Name",
"instructions": "Enter a name for this person",
"linked": false
},
"description": {
"description": "The description of this person.",
"type": "string",
"read-only": false,
"minLength": 0,
"maxLength": 128,
"pattern": "",
"default": "",
"enum": [],
"elementId": "Person.Person:displayName@demo.base.url",
"existingValue": "The Existing Description",
"elementLabel": "Description",
"instructions": "Enter a description for this person",
"linked": false
},
"genusTypeId": {
"description": "Id of the immutable type of this person. 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 person. 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
},
"salutation": {
"description": "The title for this person (Mr.",
"type": "string",
"read-only": false,
"minLength": null,
"maxLength": null,
"pattern": "",
"default": "",
"enum": [],
"elementId": "personnel.Person:salutation@dxtera.org",
"existingValue": "The existing salutation",
"elementLabel": "Salutation",
"instructions": "Enter a salutation for this person.",
"linked": false
},
"givenName": {
"description": "The given name of this person.",
"type": "string",
"read-only": false,
"minLength": null,
"maxLength": null,
"pattern": "",
"default": "",
"enum": [],
"elementId": "personnel.Person:givenName@dxtera.org",
"existingValue": "The existing given name",
"elementLabel": "Given Name",
"instructions": "Enter a given name for this person.",
"linked": false
},
"preferredName": {
"description": "The preferred forename or mononym of this person.",
"type": "string",
"read-only": false,
"minLength": null,
"maxLength": null,
"pattern": "",
"default": "",
"enum": [],
"elementId": "personnel.Person:preferredName@dxtera.org",
"existingValue": "The existing preferred name",
"elementLabel": "Preferred Name",
"instructions": "Enter a preferred name for this person.",
"linked": false
},
"forenameAliases": {
"description": "Additional forenames this person is or was known by.",
"type": "array",
"items": {
"type": "string",
"minLength": null,
"maxLength": null,
"pattern": "",
"enum": []
},
"default": [],
"elementId": "personnel.Person:forenameAliases@dxtera.org",
"existingValue": "The existing forename aliases",
"elementLabel": "Forename Aliases",
"instructions": "Enter a forename aliases for this person.",
"linked": false
},
"middleNames": {
"description": "The middle names of this person.",
"type": "array",
"items": {
"type": "string",
"minLength": null,
"maxLength": null,
"pattern": "",
"enum": []
},
"default": [],
"elementId": "personnel.Person:middleNames@dxtera.org",
"existingValue": "The existing middle names",
"elementLabel": "Middle Names",
"instructions": "Enter a middle names for this person.",
"linked": false
},
"surame": {
"description": "The surname of this person.",
"type": "string",
"read-only": false,
"minLength": null,
"maxLength": null,
"pattern": "",
"default": "",
"enum": [],
"elementId": "personnel.Person:surame@dxtera.org",
"existingValue": "The existing surame",
"elementLabel": "Surame",
"instructions": "Enter a surame for this person.",
"linked": false
},
"surameAliases": {
"description": "Additional surnames this person is or was known by.",
"type": "array",
"items": {
"type": "string",
"minLength": null,
"maxLength": null,
"pattern": "",
"enum": []
},
"default": [],
"elementId": "personnel.Person:surameAliases@dxtera.org",
"existingValue": "The existing surame aliases",
"elementLabel": "Surame Aliases",
"instructions": "Enter a surame aliases for this person.",
"linked": false
},
"generationQualifier": {
"description": "The generation qualifier of this person.",
"type": "string",
"read-only": false,
"minLength": null,
"maxLength": null,
"pattern": "",
"default": "",
"enum": [],
"elementId": "personnel.Person:generationQualifier@dxtera.org",
"existingValue": "The existing generation qualifier",
"elementLabel": "Generation Qualifier",
"instructions": "Enter a generation qualifier for this person.",
"linked": false
},
"birthDate": {
"description": "The date of birth for this person.",
"type": "string",
"format": "date-time",
"read-only": false,
"pattern": "",
"default": "",
"enum": [],
"elementId": "personnel.Person:birthDate@dxtera.org",
"existingValue": "",
"elementLabel": "Birth Date",
"instructions": "Enter the birth date of this person.",
"linked": false
},
"deathDate": {
"description": "The date of death for this person.",
"type": "string",
"format": "date-time",
"read-only": false,
"pattern": "",
"default": "",
"enum": [],
"elementId": "personnel.Person:deathDate@dxtera.org",
"existingValue": "",
"elementLabel": "Death Date",
"instructions": "Enter the death date of this person.",
"linked": false
},
"institutionalIdentifier": {
"description": "The institutional identifier for this person.",
"type": "string",
"read-only": false,
"minLength": null,
"maxLength": null,
"pattern": "",
"default": "",
"enum": [],
"elementId": "personnel.Person:institutionalIdentifier@dxtera.org",
"existingValue": "The existing institutional identifier",
"elementLabel": "Institutional Identifier",
"instructions": "Enter a institutional identifier for this person.",
"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": "person not found" }
/organizations
Collection of organizations in a system, federation of systems, or in a default realm.
Get all organizations in the system or default realm.
Create a new organization in the default realm.
get /organizations
Get all organizations in the system or default realm.
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
- genusTypeId: (string)
The id string to match a genusType
Example:
type.Type%3AexampleOrganizationType%40dxtera.org
- parentGenusTypeId: (string)
The id string to match a parent genusType
Example:
type.Type%3AparentTypeExampleOrganizationType%40dxtera.org
- recordTypeId: (string)
The id string to match a recordType
Example:
type.Type%3AexampleOrganizationType%40campusapi.org
- fromDate: (string)
Get all organizations from this date inclusive. Use with toDate to define date range query.
Example:
2020-10-03
- toDate: (string)
Get all organizations up to this date inclusive. Use with fromDate to define date range query.
Example:
2020-12-18
- realmId: (string)
The id string to match a realm
Example:
personnel.Realm%3A8374%40base.url
HTTP status code 200
Body
Media type: application/json
Type: any
Example:
[
{
"id": "personnel.Organization:3299@base.url",
"uri": "http://base.url/open/campusapi/personnel/organization/personnel.Organization%3A3299%40base.url",
"displayName": "Display Name of this Organization",
"description": "The description of this Organization",
"genusTypeId": "type.Type:defaultOrganizationType@base.url",
"recordTypeIds": [ "type.Type:exampleOrganizationRecordType@campusapi.org", "..."],
"startDate": "2020-10-03T06:30:00.000Z",
"endDate": "2020-12-18T19:30:00.000Z",
"displayLabel": "This is the DisplayLabel"
},
{
"...": "..."
}
]
HTTP status code 403
Body
Media type: application/json
Type: any
Example:
{"message": "Permission denied" }
post /organizations
Create a new organization in the default realm.
Query Parameters
- genusType: (string)
specify a particular organization type to create
Example:
type.Type%3AexampleOrganizationType%40dxtera.org
- recordType: (array of )
specify support for one or more organization record types
Example:
[ "type.Type%3AexampleOrganizationRecordType%40campusapi.org", "..." ]
- realmId: (string)
specify in which realm to create this organization
Example:
personnel.Realm%3A8374%40base.url
Body
Media type: application/json
Type: json
Content:
{
"$schema": "http://json-schema.org/draft-04/schema#",
"title": "Organization",
"type": "object",
"properties": {
"id": {
"description": "The unique id of this organization, provided by system.",
"type": "string",
"format": "osid-id",
"readOnly": true
},
"uri": {
"description": "The uri of this organization, provided by system.",
"type": "string",
"format": "uri",
"readOnly": true
},
"displayName": {
"description": "The name of this organization for display.",
"type": "string"
},
"description": {
"description": "The description of this organization.",
"type": "string"
},
"genusTypeId": {
"description": "Id of the immutable type of this organization. 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 organization. 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 organization.",
"type": "string",
"format": "date-time"
},
"endDate": {
"description": "The ending date of this organization.",
"type": "string",
"format": "date-time"
},
"displayLabel": {
"description": "The display label or code for this organization.",
"type": "string"
}
}
}
Example:
{
"displayName": "Display Name of this Organization",
"description": "The description of this Organization",
"startDate": "2020-10-03T06:30:00.000Z",
"endDate": "2020-12-18T19:30:00.000Z",
"displayLabel": "This is the DisplayLabel"
}
Entity representing a organization form metadata.
Get form metadata for creating a new organization.
get /organizations/metadata
Get form metadata for creating a new organization.
Query Parameters
- genusType: (string)
specify a particular organization type to create
Example:
type.Type%3AexampleOrganizationType%40dxtera.org
- recordType: (array of )
specify support for one or more organization record types
Example:
[ "type.Type%3AexampleOrganizationRecordType%40campusapi.org", "..." ]
- realmId: (string)
specify in which realm to create this organization
Example:
personnel.Realm%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": "Organization",
"type": "object",
"required": ["displayName"],
"properties": {
"id": {
"description": "The unique id of this organization, provided by system.",
"type": "string",
"format": "osid-id",
"readOnly": true
},
"uri": {
"description": "The uri of this organization, provided by system.",
"type": "string",
"format": "uri",
"readOnly": true
},
"displayName": {
"description": "The name of this organization for display.",
"type": "string",
"read-only": false,
"minLength": 1,
"maxLength": 128,
"pattern": "",
"default": "",
"enum": [],
"elementId": "Organization.Organization:displayName@base.url",
"existingValue": "The Existing Name",
"elementLabel": "Name",
"instructions": "Enter a name for this organization",
"linked": false
},
"description": {
"description": "The description of this organization.",
"type": "string",
"read-only": false,
"minLength": 0,
"maxLength": 128,
"pattern": "",
"default": "",
"enum": [],
"elementId": "Organization.Organization:displayName@demo.base.url",
"existingValue": "The Existing Description",
"elementLabel": "Description",
"instructions": "Enter a description for this organization",
"linked": false
},
"genusTypeId": {
"description": "Id of the immutable type of this organization. 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 organization. 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 organization.",
"type": "string",
"format": "date-time",
"read-only": false,
"pattern": "",
"default": "",
"enum": [],
"elementId": "Organization.Organization:startDate@base.url",
"existingValue": "2020-10-03T08:00:00.000Z",
"elementLabel": "Start Date",
"instructions": "Enter a starting date for this organization",
"linked": false
},
"endDate": {
"description": "The ending date of this organization.",
"type": "string",
"format": "date-time",
"read-only": false,
"pattern": "",
"default": "",
"enum": [],
"elementId": "Organization.Organization:endDate@base.url",
"existingValue": "2020-12-18T17:00:00.000Z",
"elementLabel": "End Date",
"instructions": "Enter an ending date for this organization",
"linked": false
},
"displayLabel": {
"description": "The display label or code for this organization.",
"type": "string",
"read-only": false,
"minLength": null,
"maxLength": null,
"pattern": "",
"default": "",
"enum": [],
"elementId": "personnel.Organization:displayLabel@dxtera.org",
"existingValue": "The existing display label",
"elementLabel": "Display Label",
"instructions": "Enter a display label for this organization.",
"linked": false
}
}
}
HTTP status code 403
Body
Media type: application/json
Type: any
Example:
{"message": "Permission denied" }
The root organizations in the organization hierarchy. A node with no parents is an orphan. While all organization 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-organizations
get /organizations/root-organizations
Get all root root-organizations
HTTP status code 200
Body
Media type: application/json
Type: any
Example:
[
{
"id": "personnel.Organization:3299@base.url",
"uri": "http://base.url/open/campusapi/personnel/organization/personnel.Organization%3A3299%40base.url",
"displayName": "Display Name of this Organization",
"description": "The description of this Organization",
"genusTypeId": "type.Type:defaultOrganizationType@base.url",
"recordTypeIds": [ "type.Type:exampleOrganizationRecordType@campusapi.org", "..."],
"startDate": "2020-10-03T06:30:00.000Z",
"endDate": "2020-12-18T19:30:00.000Z",
"displayLabel": "This is the DisplayLabel"
},
{
"...": "..."
}
]
HTTP status code 403
Body
Media type: application/json
Type: any
Example:
{"message": "Permission denied" }
Add the given organization as a root in the organization hierarchy
Remove the given organization as a root in the organization hierarchy.
put /organizations/root-organizations/{organizationId}
Add the given organization as a root in the organization hierarchy
URI Parameters
- organizationId: required(string)
HTTP status code 200
Body
Media type: application/json
Type: any
Example:
{ "message": "The organization has been added as a root" }
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": "organization not found" }
delete /organizations/root-organizations/{organizationId}
Remove the given organization as a root in the organization hierarchy.
URI Parameters
- organizationId: required(string)
HTTP status code 200
Body
Media type: application/json
Type: any
Example:
{ "message": "The organization has been removed as a root from 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": "organization not found" }
Entity representing a organization
Get a organization given its id.
Update a given organization.
Delete a given organization.
get /organizations/{organizationId}
Get a organization given its id.
URI Parameters
- organizationId: required(string)
HTTP status code 200
Body
Media type: application/json
Type: any
Example:
{
"id": "personnel.Organization:3299@base.url",
"uri": "http://base.url/open/campusapi/personnel/organization/personnel.Organization%3A3299%40base.url",
"displayName": "Display Name of this Organization",
"description": "The description of this Organization",
"genusTypeId": "type.Type:defaultOrganizationType@base.url",
"recordTypeIds": [ "type.Type:exampleOrganizationRecordType@campusapi.org", "..."],
"startDate": "2020-10-03T06:30:00.000Z",
"endDate": "2020-12-18T19:30:00.000Z",
"displayLabel": "This is the DisplayLabel"
}
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": "organization not found" }
put /organizations/{organizationId}
Update a given organization.
URI Parameters
- organizationId: required(string)
Body
Media type: application/json
Type: json
Content:
{
"$schema": "http://json-schema.org/draft-04/schema#",
"title": "Organization",
"type": "object",
"properties": {
"id": {
"description": "The unique id of this organization, provided by system.",
"type": "string",
"format": "osid-id",
"readOnly": true
},
"uri": {
"description": "The uri of this organization, provided by system.",
"type": "string",
"format": "uri",
"readOnly": true
},
"displayName": {
"description": "The name of this organization for display.",
"type": "string"
},
"description": {
"description": "The description of this organization.",
"type": "string"
},
"genusTypeId": {
"description": "Id of the immutable type of this organization. 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 organization. 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 organization.",
"type": "string",
"format": "date-time"
},
"endDate": {
"description": "The ending date of this organization.",
"type": "string",
"format": "date-time"
},
"displayLabel": {
"description": "The display label or code for this organization.",
"type": "string"
}
}
}
Example:
{
"displayName": "Display Name of this Organization",
"description": "The description of this Organization",
"startDate": "2020-10-03T06:30:00.000Z",
"endDate": "2020-12-18T19:30:00.000Z",
"displayLabel": "This is the DisplayLabel"
}
HTTP status code 200
Body
Media type: application/json
Type: any
Example:
{ "message": "The organization 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": "organization not found" }
delete /organizations/{organizationId}
Delete a given organization.
URI Parameters
- organizationId: required(string)
HTTP status code 200
Body
Media type: application/json
Type: any
Example:
{ "message": "The organization 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": "organization not found" }
Entity representing a organization form metadata for update
Get form metadata for updating an existing organization.
get /organizations/{organizationId}/metadata
Get form metadata for updating an existing organization.
URI Parameters
- organizationId: required(string)
HTTP status code 200
Body
Media type: application/json
Type: any
Example:
{
"$schema": "http://json-schema.org/draft/2019-9/schema#",
"title": "Organization",
"type": "object",
"required": ["displayName"],
"properties": {
"id": {
"description": "The unique id of this organization, provided by system.",
"type": "string",
"format": "osid-id",
"readOnly": true
},
"uri": {
"description": "The uri of this organization, provided by system.",
"type": "string",
"format": "uri",
"readOnly": true
},
"displayName": {
"description": "The name of this organization for display.",
"type": "string",
"read-only": false,
"minLength": 1,
"maxLength": 128,
"pattern": "",
"default": "",
"enum": [],
"elementId": "Organization.Organization:displayName@base.url",
"existingValue": "The Existing Name",
"elementLabel": "Name",
"instructions": "Enter a name for this organization",
"linked": false
},
"description": {
"description": "The description of this organization.",
"type": "string",
"read-only": false,
"minLength": 0,
"maxLength": 128,
"pattern": "",
"default": "",
"enum": [],
"elementId": "Organization.Organization:displayName@demo.base.url",
"existingValue": "The Existing Description",
"elementLabel": "Description",
"instructions": "Enter a description for this organization",
"linked": false
},
"genusTypeId": {
"description": "Id of the immutable type of this organization. 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 organization. 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 organization.",
"type": "string",
"format": "date-time",
"read-only": false,
"pattern": "",
"default": "",
"enum": [],
"elementId": "Organization.Organization:startDate@base.url",
"existingValue": "2020-10-03T08:00:00.000Z",
"elementLabel": "Start Date",
"instructions": "Enter a starting date for this organization",
"linked": false
},
"endDate": {
"description": "The ending date of this organization.",
"type": "string",
"format": "date-time",
"read-only": false,
"pattern": "",
"default": "",
"enum": [],
"elementId": "Organization.Organization:endDate@base.url",
"existingValue": "2020-12-18T17:00:00.000Z",
"elementLabel": "End Date",
"instructions": "Enter an ending date for this organization",
"linked": false
},
"displayLabel": {
"description": "The display label or code for this organization.",
"type": "string",
"read-only": false,
"minLength": null,
"maxLength": null,
"pattern": "",
"default": "",
"enum": [],
"elementId": "personnel.Organization:displayLabel@dxtera.org",
"existingValue": "The existing display label",
"elementLabel": "Display Label",
"instructions": "Enter a display label for this organization.",
"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": "organization not found" }
Get child organizations for the given organization in the hierarchy.
get /organizations/{organizationId}/children
Get child organizations for the given organization in the hierarchy.
URI Parameters
- organizationId: required(string)
HTTP status code 200
Body
Media type: application/json
Type: any
Example:
[
{
"id": "personnel.Organization:3299@base.url",
"uri": "http://base.url/open/campusapi/personnel/organization/personnel.Organization%3A3299%40base.url",
"displayName": "Display Name of this Organization",
"description": "The description of this Organization",
"genusTypeId": "type.Type:defaultOrganizationType@base.url",
"recordTypeIds": [ "type.Type:exampleOrganizationRecordType@campusapi.org", "..."],
"startDate": "2020-10-03T06:30:00.000Z",
"endDate": "2020-12-18T19:30:00.000Z",
"displayLabel": "This is the DisplayLabel"
},
{
"...": "..."
}
]
HTTP status code 403
Body
Media type: application/json
Type: any
Example:
{"message": "Permission denied" }
Add organization as child of the given organization in the hierarchy.
Remove the given organization as a child of the given organization in the hierarchy.
put /organizations/{organizationId}/children/{childId}
Add organization as child of the given organization in the hierarchy.
URI Parameters
- organizationId: required(string)
- childId: required(string)
HTTP status code 200
Body
Media type: application/json
Type: any
Example:
{ "message": "The child organization 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": "organization not found" }
delete /organizations/{organizationId}/children/{childId}
Remove the given organization as a child of the given organization in the hierarchy.
URI Parameters
- organizationId: required(string)
- childId: required(string)
Get parent organizations for the given organization in the hierarchy.
get /organizations/{organizationId}/parents
Get parent organizations for the given organization in the hierarchy.
URI Parameters
- organizationId: required(string)
HTTP status code 200
Body
Media type: application/json
Type: any
Example:
[
{
"id": "personnel.Organization:3299@base.url",
"uri": "http://base.url/open/campusapi/personnel/organization/personnel.Organization%3A3299%40base.url",
"displayName": "Display Name of this Organization",
"description": "The description of this Organization",
"genusTypeId": "type.Type:defaultOrganizationType@base.url",
"recordTypeIds": [ "type.Type:exampleOrganizationRecordType@campusapi.org", "..."],
"startDate": "2020-10-03T06:30:00.000Z",
"endDate": "2020-12-18T19:30:00.000Z",
"displayLabel": "This is the DisplayLabel"
},
{
"...": "..."
}
]
HTTP status code 403
Body
Media type: application/json
Type: any
Example:
{"message": "Permission denied" }
/positions
Collection of positions in a system, federation of systems, or in a default realm.
Get all positions in the system or default realm.
Create a new position in the default realm.
get /positions
Get all positions in the system or default realm.
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
- genusTypeId: (string)
The id string to match a genusType
Example:
type.Type%3AexamplePositionType%40dxtera.org
- parentGenusTypeId: (string)
The id string to match a parent genusType
Example:
type.Type%3AparentTypeExamplePositionType%40dxtera.org
- recordTypeId: (string)
The id string to match a recordType
Example:
type.Type%3AexamplePositionType%40campusapi.org
- fromDate: (string)
Get all positions from this date inclusive. Use with toDate to define date range query.
Example:
2020-10-03
- toDate: (string)
Get all positions up to this date inclusive. Use with fromDate to define date range query.
Example:
2020-12-18
- organizationId: (string)
the id string to match a organization.
Example:
personnel.Organization%3A864%40base.url
- realmId: (string)
The id string to match a realm
Example:
personnel.Realm%3A8374%40base.url
HTTP status code 200
Body
Media type: application/json
Type: any
Example:
[
{
"id": "personnel.Position:6813@base.url",
"uri": "http://base.url/open/campusapi/personnel/position/personnel.Position%3A6813%40base.url",
"displayName": "Display Name of this Position",
"description": "The description of this Position",
"genusTypeId": "type.Type:defaultPositionType@base.url",
"recordTypeIds": [ "type.Type:examplePositionRecordType@campusapi.org", "..."],
"startDate": "2020-10-03T06:30:00.000Z",
"endDate": "2020-12-18T19:30:00.000Z",
"organizationId": "personnel.Organization:1033@base.url",
"title": "This is the Title",
"levelId": "grading.Grade:411@base.url",
"qualificationIds": [ "learning.Objective:774@base.url", "..." ],
"targetAppointments": 19,
"requiredCommitment": 19,
"lowSalaryRange": "USD+42.00",
"midpointSalaryRange": "USD+42.00",
"highSalaryRange": "USD+42.00",
"compensationFrequency": "P3DT3H",
"exempt": true,
"benefitsType": "type.Type:7250@base.url"
},
{
"...": "..."
}
]
HTTP status code 403
Body
Media type: application/json
Type: any
Example:
{"message": "Permission denied" }
post /positions
Create a new position in the default realm.
Query Parameters
- organizationId: required(string)
the organization of this position.
Example:
personnel.Organization%3A864%40base.url
- genusType: (string)
specify a particular position type to create
Example:
type.Type%3AexamplePositionType%40dxtera.org
- recordType: (array of )
specify support for one or more position record types
Example:
[ "type.Type%3AexamplePositionRecordType%40campusapi.org", "..." ]
- realmId: (string)
specify in which realm to create this position
Example:
personnel.Realm%3A8374%40base.url
Body
Media type: application/json
Type: json
Content:
{
"$schema": "http://json-schema.org/draft-04/schema#",
"title": "Position",
"type": "object",
"properties": {
"id": {
"description": "The unique id of this position, provided by system.",
"type": "string",
"format": "osid-id",
"readOnly": true
},
"uri": {
"description": "The uri of this position, provided by system.",
"type": "string",
"format": "uri",
"readOnly": true
},
"displayName": {
"description": "The name of this position for display.",
"type": "string"
},
"description": {
"description": "The description of this position.",
"type": "string"
},
"genusTypeId": {
"description": "Id of the immutable type of this position. 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 position. 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 position.",
"type": "string",
"format": "date-time"
},
"endDate": {
"description": "The ending date of this position.",
"type": "string",
"format": "date-time"
},
"organizationId": {
"description": "The organization associated with this position.",
"type": "string",
"format": "osid-id",
"readOnly": true
},
"title": {
"description": "The title for this position.",
"type": "string"
},
"levelId": {
"description": "The grade level for this position.",
"type": "string",
"format": "osid-id"
},
"qualificationIds": {
"description": "The list of qualifications required for this position.",
"type": "array",
"items": {
"type": "string",
"format": "osid-id"
}
},
"targetAppointmenst": {
"description": "-- could someone please write a description for this --",
"type": "SYNTAX_TYPE_NOT_FOUND"
},
"requiredCommitment": {
"description": "The required percentage commitment (0-100).",
"type": "integer",
"minimum": 1
},
"lowSalaryRange": {
"description": "The low end of the salary range.",
"type": "string",
"format": "currency"
},
"midpointSalaryRange": {
"description": "The midpoint of the salary range.",
"type": "string",
"format": "currency"
},
"highSalaryRange": {
"description": "The high end of the salary range.",
"type": "string",
"format": "currency"
},
"compensationFrequency": {
"description": "The frequency of compensation.",
"type": "string",
"format": "duration"
},
"exempt": {
"description": "Tests if this position is FLSA exempt.",
"type": "boolean"
},
"benefitsType": {
"description": "The benefits Type assoicated with this position.",
"type": "string",
"format": "osid-type"
}
}
}
Example:
{
"displayName": "Display Name of this Position",
"description": "The description of this Position",
"startDate": "2020-10-03T06:30:00.000Z",
"endDate": "2020-12-18T19:30:00.000Z",
"title": "This is the Title",
"levelId": "grading.Grade:9338@base.url",
"qualificationIds": [ "learning.Objective:6384@base.url", "..." ],
"targetAppointments": 19,
"requiredCommitment": 19,
"lowSalaryRange": "USD+42.00",
"midpointSalaryRange": "USD+42.00",
"highSalaryRange": "USD+42.00",
"compensationFrequency": "P3DT3H",
"exempt": true,
"benefitsType": "type.Type:2421@base.url"
}
Entity representing a position form metadata.
Get form metadata for creating a new position.
get /positions/metadata
Get form metadata for creating a new position.
Query Parameters
- organizationId: required(string)
the organization of this metadatum.
Example:
personnel.Organization%3A864%40base.url
- genusType: (string)
specify a particular position type to create
Example:
type.Type%3AexamplePositionType%40dxtera.org
- recordType: (array of )
specify support for one or more position record types
Example:
[ "type.Type%3AexamplePositionRecordType%40campusapi.org", "..." ]
- realmId: (string)
specify in which realm to create this position
Example:
personnel.Realm%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": "Position",
"type": "object",
"required": ["displayName"],
"properties": {
"id": {
"description": "The unique id of this position, provided by system.",
"type": "string",
"format": "osid-id",
"readOnly": true
},
"uri": {
"description": "The uri of this position, provided by system.",
"type": "string",
"format": "uri",
"readOnly": true
},
"displayName": {
"description": "The name of this position for display.",
"type": "string",
"read-only": false,
"minLength": 1,
"maxLength": 128,
"pattern": "",
"default": "",
"enum": [],
"elementId": "Position.Position:displayName@base.url",
"existingValue": "The Existing Name",
"elementLabel": "Name",
"instructions": "Enter a name for this position",
"linked": false
},
"description": {
"description": "The description of this position.",
"type": "string",
"read-only": false,
"minLength": 0,
"maxLength": 128,
"pattern": "",
"default": "",
"enum": [],
"elementId": "Position.Position:displayName@demo.base.url",
"existingValue": "The Existing Description",
"elementLabel": "Description",
"instructions": "Enter a description for this position",
"linked": false
},
"genusTypeId": {
"description": "Id of the immutable type of this position. 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 position. 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 position.",
"type": "string",
"format": "date-time",
"read-only": false,
"pattern": "",
"default": "",
"enum": [],
"elementId": "Position.Position:startDate@base.url",
"existingValue": "2020-10-03T08:00:00.000Z",
"elementLabel": "Start Date",
"instructions": "Enter a starting date for this position",
"linked": false
},
"endDate": {
"description": "The ending date of this position.",
"type": "string",
"format": "date-time",
"read-only": false,
"pattern": "",
"default": "",
"enum": [],
"elementId": "Position.Position:endDate@base.url",
"existingValue": "2020-12-18T17:00:00.000Z",
"elementLabel": "End Date",
"instructions": "Enter an ending date for this position",
"linked": false
},
"title": {
"description": "The title for this position.",
"type": "string",
"read-only": false,
"minLength": null,
"maxLength": null,
"pattern": "",
"default": "",
"enum": [],
"elementId": "personnel.Position:title@dxtera.org",
"existingValue": "The existing title",
"elementLabel": "Title",
"instructions": "Enter a title for this position.",
"linked": false
},
"levelId": {
"description": "The grade level for this position.",
"type": "string",
"type": "string",
"format": "osid-id",
"read-only": false,
"pattern": "",
"default": "",
"enum": [],
"elementId": "personnel.Position:level@dxtera.org",
"existingValue": null,
"elementLabel": "Level",
"instructions": "Enter the Id of the level for this position.",
"linked": false
},
"qualificationIds": {
"description": "The list of qualifications required for this position.",
"type": "array",
"items": {
"type": "string",
"format": "osid-id",
"pattern": "",
"enum": []
},
"read-only": false,
"elementId": "personnel.Position:qualifications@dxtera.org",
"existingValue": [],
"elementLabel": "Qualifications",
"instructions": "Enter Ids for qualifications of this position.",
"linked": false
},
"targetAppointmenst": {
"description": "-- could someone please write a description for this --",
"type": "SYNTAX_TYPE_NOT_FOUND",
"elementId": "personnel.Position:targetAppointmenst@dxtera.org",
"existingValue": null,
"elementLabel": "Target Appointmenst",
"instructions": "NEED TO GENERATE AN INSTRUCTION FOR NONE.",
"linked": false
},
"requiredCommitment": {
"description": "The required percentage commitment (0-100).",
"type": "integer",
"minimum": 1,
"maximum": null,
"units": "",
"default": null,
"enum": [],
"elementId": "personnel.Position:requiredCommitment@dxtera.org",
"existingValue": 42,
"elementLabel": "Required Commitment",
"instructions": "Enter the required commitment of this position.",
"linked": false
},
"lowSalaryRange": {
"description": "The low end of the salary range.",
"type": "string",
"format": "currency",
"read-only": false,
"pattern": "",
"default": "",
"enum": [],
"elementId": "personnel.Position:lowSalaryRange@dxtera.org",
"existingValue": "USD+120.56",
"elementLabel": "Low Salary Range",
"instructions": "Enter the low salary range of this position.",
"linked": false
},
"midpointSalaryRange": {
"description": "The midpoint of the salary range.",
"type": "string",
"format": "currency",
"read-only": false,
"pattern": "",
"default": "",
"enum": [],
"elementId": "personnel.Position:midpointSalaryRange@dxtera.org",
"existingValue": "USD+120.56",
"elementLabel": "Midpoint Salary Range",
"instructions": "Enter the midpoint salary range of this position.",
"linked": false
},
"highSalaryRange": {
"description": "The high end of the salary range.",
"type": "string",
"format": "currency",
"read-only": false,
"pattern": "",
"default": "",
"enum": [],
"elementId": "personnel.Position:highSalaryRange@dxtera.org",
"existingValue": "USD+120.56",
"elementLabel": "High Salary Range",
"instructions": "Enter the high salary range of this position.",
"linked": false
},
"compensationFrequency": {
"description": "The frequency of compensation.",
"type": "string",
"format": "duration",
"read-only": false,
"pattern": "",
"default": "",
"enum": [],
"elementId": "personnel.Position:compensationFrequency@dxtera.org",
"existingValue": "",
"elementLabel": "Compensation Frequency",
"instructions": "Enter the compensation frequency of this position.",
"linked": false
},
"exempt": {
"description": "Tests if this position is FLSA exempt.",
"type": "boolean",
"elementId": "personnel.Position:exempt@dxtera.org",
"existingValue": false,
"elementLabel": "Exempt",
"instructions": "Enter true or false.",
"linked": false
},
"benefitsType": {
"description": "The benefits Type assoicated with this position.",
"type": "string",
"type": "string",
"format": "osid-type",
"read-only": false,
"pattern": "",
"default": "",
"enum": [],
"elementId": "personnel.Position:benefitsType@dxtera.org",
"existingValue": null,
"elementLabel": "Benefits Type",
"instructions": "Enter the Type id of the benefits type for this position.",
"linked": false
}
}
}
HTTP status code 403
Body
Media type: application/json
Type: any
Example:
{"message": "Permission denied" }
Entity representing a position
Get a position given its id.
Update a given position.
Delete a given position.
get /positions/{positionId}
Get a position given its id.
URI Parameters
- positionId: required(string)
HTTP status code 200
Body
Media type: application/json
Type: any
Example:
{
"id": "personnel.Position:6813@base.url",
"uri": "http://base.url/open/campusapi/personnel/position/personnel.Position%3A6813%40base.url",
"displayName": "Display Name of this Position",
"description": "The description of this Position",
"genusTypeId": "type.Type:defaultPositionType@base.url",
"recordTypeIds": [ "type.Type:examplePositionRecordType@campusapi.org", "..."],
"startDate": "2020-10-03T06:30:00.000Z",
"endDate": "2020-12-18T19:30:00.000Z",
"organizationId": "personnel.Organization:1033@base.url",
"title": "This is the Title",
"levelId": "grading.Grade:411@base.url",
"qualificationIds": [ "learning.Objective:774@base.url", "..." ],
"targetAppointments": 19,
"requiredCommitment": 19,
"lowSalaryRange": "USD+42.00",
"midpointSalaryRange": "USD+42.00",
"highSalaryRange": "USD+42.00",
"compensationFrequency": "P3DT3H",
"exempt": true,
"benefitsType": "type.Type:7250@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": "position not found" }
put /positions/{positionId}
Update a given position.
URI Parameters
- positionId: required(string)
Body
Media type: application/json
Type: json
Content:
{
"$schema": "http://json-schema.org/draft-04/schema#",
"title": "Position",
"type": "object",
"properties": {
"id": {
"description": "The unique id of this position, provided by system.",
"type": "string",
"format": "osid-id",
"readOnly": true
},
"uri": {
"description": "The uri of this position, provided by system.",
"type": "string",
"format": "uri",
"readOnly": true
},
"displayName": {
"description": "The name of this position for display.",
"type": "string"
},
"description": {
"description": "The description of this position.",
"type": "string"
},
"genusTypeId": {
"description": "Id of the immutable type of this position. 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 position. 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 position.",
"type": "string",
"format": "date-time"
},
"endDate": {
"description": "The ending date of this position.",
"type": "string",
"format": "date-time"
},
"organizationId": {
"description": "The organization associated with this position.",
"type": "string",
"format": "osid-id",
"readOnly": true
},
"title": {
"description": "The title for this position.",
"type": "string"
},
"levelId": {
"description": "The grade level for this position.",
"type": "string",
"format": "osid-id"
},
"qualificationIds": {
"description": "The list of qualifications required for this position.",
"type": "array",
"items": {
"type": "string",
"format": "osid-id"
}
},
"targetAppointmenst": {
"description": "-- could someone please write a description for this --",
"type": "SYNTAX_TYPE_NOT_FOUND"
},
"requiredCommitment": {
"description": "The required percentage commitment (0-100).",
"type": "integer",
"minimum": 1
},
"lowSalaryRange": {
"description": "The low end of the salary range.",
"type": "string",
"format": "currency"
},
"midpointSalaryRange": {
"description": "The midpoint of the salary range.",
"type": "string",
"format": "currency"
},
"highSalaryRange": {
"description": "The high end of the salary range.",
"type": "string",
"format": "currency"
},
"compensationFrequency": {
"description": "The frequency of compensation.",
"type": "string",
"format": "duration"
},
"exempt": {
"description": "Tests if this position is FLSA exempt.",
"type": "boolean"
},
"benefitsType": {
"description": "The benefits Type assoicated with this position.",
"type": "string",
"format": "osid-type"
}
}
}
Example:
{
"displayName": "Display Name of this Position",
"description": "The description of this Position",
"startDate": "2020-10-03T06:30:00.000Z",
"endDate": "2020-12-18T19:30:00.000Z",
"title": "This is the Title",
"levelId": "grading.Grade:9338@base.url",
"qualificationIds": [ "learning.Objective:6384@base.url", "..." ],
"targetAppointments": 19,
"requiredCommitment": 19,
"lowSalaryRange": "USD+42.00",
"midpointSalaryRange": "USD+42.00",
"highSalaryRange": "USD+42.00",
"compensationFrequency": "P3DT3H",
"exempt": true,
"benefitsType": "type.Type:2421@base.url"
}
HTTP status code 200
Body
Media type: application/json
Type: any
Example:
{ "message": "The position 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": "position not found" }
delete /positions/{positionId}
Delete a given position.
URI Parameters
- positionId: required(string)
HTTP status code 200
Body
Media type: application/json
Type: any
Example:
{ "message": "The position 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": "position not found" }
Entity representing a position form metadata for update
Get form metadata for updating an existing position.
get /positions/{positionId}/metadata
Get form metadata for updating an existing position.
URI Parameters
- positionId: required(string)
HTTP status code 200
Body
Media type: application/json
Type: any
Example:
{
"$schema": "http://json-schema.org/draft/2019-9/schema#",
"title": "Position",
"type": "object",
"required": ["displayName"],
"properties": {
"id": {
"description": "The unique id of this position, provided by system.",
"type": "string",
"format": "osid-id",
"readOnly": true
},
"uri": {
"description": "The uri of this position, provided by system.",
"type": "string",
"format": "uri",
"readOnly": true
},
"displayName": {
"description": "The name of this position for display.",
"type": "string",
"read-only": false,
"minLength": 1,
"maxLength": 128,
"pattern": "",
"default": "",
"enum": [],
"elementId": "Position.Position:displayName@base.url",
"existingValue": "The Existing Name",
"elementLabel": "Name",
"instructions": "Enter a name for this position",
"linked": false
},
"description": {
"description": "The description of this position.",
"type": "string",
"read-only": false,
"minLength": 0,
"maxLength": 128,
"pattern": "",
"default": "",
"enum": [],
"elementId": "Position.Position:displayName@demo.base.url",
"existingValue": "The Existing Description",
"elementLabel": "Description",
"instructions": "Enter a description for this position",
"linked": false
},
"genusTypeId": {
"description": "Id of the immutable type of this position. 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 position. 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 position.",
"type": "string",
"format": "date-time",
"read-only": false,
"pattern": "",
"default": "",
"enum": [],
"elementId": "Position.Position:startDate@base.url",
"existingValue": "2020-10-03T08:00:00.000Z",
"elementLabel": "Start Date",
"instructions": "Enter a starting date for this position",
"linked": false
},
"endDate": {
"description": "The ending date of this position.",
"type": "string",
"format": "date-time",
"read-only": false,
"pattern": "",
"default": "",
"enum": [],
"elementId": "Position.Position:endDate@base.url",
"existingValue": "2020-12-18T17:00:00.000Z",
"elementLabel": "End Date",
"instructions": "Enter an ending date for this position",
"linked": false
},
"title": {
"description": "The title for this position.",
"type": "string",
"read-only": false,
"minLength": null,
"maxLength": null,
"pattern": "",
"default": "",
"enum": [],
"elementId": "personnel.Position:title@dxtera.org",
"existingValue": "The existing title",
"elementLabel": "Title",
"instructions": "Enter a title for this position.",
"linked": false
},
"levelId": {
"description": "The grade level for this position.",
"type": "string",
"type": "string",
"format": "osid-id",
"read-only": false,
"pattern": "",
"default": "",
"enum": [],
"elementId": "personnel.Position:level@dxtera.org",
"existingValue": null,
"elementLabel": "Level",
"instructions": "Enter the Id of the level for this position.",
"linked": false
},
"qualificationIds": {
"description": "The list of qualifications required for this position.",
"type": "array",
"items": {
"type": "string",
"format": "osid-id",
"pattern": "",
"enum": []
},
"read-only": false,
"elementId": "personnel.Position:qualifications@dxtera.org",
"existingValue": [],
"elementLabel": "Qualifications",
"instructions": "Enter Ids for qualifications of this position.",
"linked": false
},
"targetAppointmenst": {
"description": "-- could someone please write a description for this --",
"type": "SYNTAX_TYPE_NOT_FOUND",
"elementId": "personnel.Position:targetAppointmenst@dxtera.org",
"existingValue": null,
"elementLabel": "Target Appointmenst",
"instructions": "NEED TO GENERATE AN INSTRUCTION FOR NONE.",
"linked": false
},
"requiredCommitment": {
"description": "The required percentage commitment (0-100).",
"type": "integer",
"minimum": 1,
"maximum": null,
"units": "",
"default": null,
"enum": [],
"elementId": "personnel.Position:requiredCommitment@dxtera.org",
"existingValue": 42,
"elementLabel": "Required Commitment",
"instructions": "Enter the required commitment of this position.",
"linked": false
},
"lowSalaryRange": {
"description": "The low end of the salary range.",
"type": "string",
"format": "currency",
"read-only": false,
"pattern": "",
"default": "",
"enum": [],
"elementId": "personnel.Position:lowSalaryRange@dxtera.org",
"existingValue": "USD+120.56",
"elementLabel": "Low Salary Range",
"instructions": "Enter the low salary range of this position.",
"linked": false
},
"midpointSalaryRange": {
"description": "The midpoint of the salary range.",
"type": "string",
"format": "currency",
"read-only": false,
"pattern": "",
"default": "",
"enum": [],
"elementId": "personnel.Position:midpointSalaryRange@dxtera.org",
"existingValue": "USD+120.56",
"elementLabel": "Midpoint Salary Range",
"instructions": "Enter the midpoint salary range of this position.",
"linked": false
},
"highSalaryRange": {
"description": "The high end of the salary range.",
"type": "string",
"format": "currency",
"read-only": false,
"pattern": "",
"default": "",
"enum": [],
"elementId": "personnel.Position:highSalaryRange@dxtera.org",
"existingValue": "USD+120.56",
"elementLabel": "High Salary Range",
"instructions": "Enter the high salary range of this position.",
"linked": false
},
"compensationFrequency": {
"description": "The frequency of compensation.",
"type": "string",
"format": "duration",
"read-only": false,
"pattern": "",
"default": "",
"enum": [],
"elementId": "personnel.Position:compensationFrequency@dxtera.org",
"existingValue": "",
"elementLabel": "Compensation Frequency",
"instructions": "Enter the compensation frequency of this position.",
"linked": false
},
"exempt": {
"description": "Tests if this position is FLSA exempt.",
"type": "boolean",
"elementId": "personnel.Position:exempt@dxtera.org",
"existingValue": false,
"elementLabel": "Exempt",
"instructions": "Enter true or false.",
"linked": false
},
"benefitsType": {
"description": "The benefits Type assoicated with this position.",
"type": "string",
"type": "string",
"format": "osid-type",
"read-only": false,
"pattern": "",
"default": "",
"enum": [],
"elementId": "personnel.Position:benefitsType@dxtera.org",
"existingValue": null,
"elementLabel": "Benefits Type",
"instructions": "Enter the Type id of the benefits type for this position.",
"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": "position not found" }
/appointments
Collection of appointments in a system, federation of systems, or in a default realm.
Get all appointments in the system or default realm.
Create a new appointment in the default realm.
get /appointments
Get all appointments in the system or default realm.
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
- genusTypeId: (string)
The id string to match a genusType
Example:
type.Type%3AexampleAppointmentType%40dxtera.org
- parentGenusTypeId: (string)
The id string to match a parent genusType
Example:
type.Type%3AparentTypeExampleAppointmentType%40dxtera.org
- recordTypeId: (string)
The id string to match a recordType
Example:
type.Type%3AexampleAppointmentType%40campusapi.org
- fromDate: (string)
Get all appointments from this date inclusive. Use with toDate to define date range query.
Example:
2020-10-03
- toDate: (string)
Get all appointments up to this date inclusive. Use with fromDate to define date range query.
Example:
2020-12-18
- personId: (string)
the id string to match a person.
Example:
personnel.Person%3A594%40base.url
- positionId: (string)
the id string to match a position.
Example:
personnel.Position%3A792%40base.url
- realmId: (string)
The id string to match a realm
Example:
personnel.Realm%3A8374%40base.url
HTTP status code 200
Body
Media type: application/json
Type: any
Example:
[
{
"id": "personnel.Appointment:8036@base.url",
"uri": "http://base.url/open/campusapi/personnel/appointment/personnel.Appointment%3A8036%40base.url",
"displayName": "Display Name of this Appointment",
"description": "The description of this Appointment",
"genusTypeId": "type.Type:defaultAppointmentType@base.url",
"recordTypeIds": [ "type.Type:exampleAppointmentRecordType@campusapi.org", "..."],
"startDate": "2020-10-03T06:30:00.000Z",
"endDate": "2020-12-18T19:30:00.000Z",
"endReasonId": "process.State:8036@base.url",
"personId": "personnel.Person:6412@base.url",
"positionId": "personnel.Position:8434@base.url",
"commitment": 19,
"title": "This is the Title",
"salary": "USD+42.00"
},
{
"...": "..."
}
]
HTTP status code 403
Body
Media type: application/json
Type: any
Example:
{"message": "Permission denied" }
post /appointments
Create a new appointment in the default realm.
Query Parameters
- personId: required(string)
the person of this appointment.
Example:
personnel.Person%3A594%40base.url
- positionId: required(string)
the position of this appointment.
Example:
personnel.Position%3A792%40base.url
- genusType: (string)
specify a particular appointment type to create
Example:
type.Type%3AexampleAppointmentType%40dxtera.org
- recordType: (array of )
specify support for one or more appointment record types
Example:
[ "type.Type%3AexampleAppointmentRecordType%40campusapi.org", "..." ]
- realmId: (string)
specify in which realm to create this appointment
Example:
personnel.Realm%3A8374%40base.url
Body
Media type: application/json
Type: json
Content:
{
"$schema": "http://json-schema.org/draft-04/schema#",
"title": "Appointment",
"type": "object",
"properties": {
"id": {
"description": "The unique id of this appointment, provided by system.",
"type": "string",
"format": "osid-id",
"readOnly": true
},
"uri": {
"description": "The uri of this appointment, provided by system.",
"type": "string",
"format": "uri",
"readOnly": true
},
"displayName": {
"description": "The name of this appointment for display.",
"type": "string"
},
"description": {
"description": "The description of this appointment.",
"type": "string"
},
"genusTypeId": {
"description": "Id of the immutable type of this appointment. 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 appointment. 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 appointment.",
"type": "string",
"format": "date-time"
},
"endDate": {
"description": "The ending date of this appointment.",
"type": "string",
"format": "date-time"
},
"endReasonId": {
"description": "The reason this appointment ended.",
"type": "string",
"format": "osid-id"
},
"personId": {
"description": "The person associated with this appointment.",
"type": "string",
"format": "osid-id",
"readOnly": true
},
"positionId": {
"description": "The position associated with this appointment.",
"type": "string",
"format": "osid-id",
"readOnly": true
},
"commitment": {
"description": "The percentage commitment (0-100).",
"type": "integer",
"minimum": 1
},
"title": {
"description": "The title for this appointment.",
"type": "string"
},
"salary": {
"description": "The salary.",
"type": "string",
"format": "currency"
}
}
}
Example:
{
"displayName": "Display Name of this Appointment",
"description": "The description of this Appointment",
"startDate": "2020-10-03T06:30:00.000Z",
"endDate": "2020-12-18T19:30:00.000Z",
"endReasonId": "process.State:6791@base.url",
"commitment": 19,
"title": "This is the Title",
"salary": "USD+42.00"
}
Entity representing a appointment form metadata.
Get form metadata for creating a new appointment.
get /appointments/metadata
Get form metadata for creating a new appointment.
Query Parameters
- personId: required(string)
the person of this metadatum.
Example:
personnel.Person%3A594%40base.url
- positionId: required(string)
the position of this metadatum.
Example:
personnel.Position%3A792%40base.url
- genusType: (string)
specify a particular appointment type to create
Example:
type.Type%3AexampleAppointmentType%40dxtera.org
- recordType: (array of )
specify support for one or more appointment record types
Example:
[ "type.Type%3AexampleAppointmentRecordType%40campusapi.org", "..." ]
- realmId: (string)
specify in which realm to create this appointment
Example:
personnel.Realm%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": "Appointment",
"type": "object",
"required": ["displayName"],
"properties": {
"id": {
"description": "The unique id of this appointment, provided by system.",
"type": "string",
"format": "osid-id",
"readOnly": true
},
"uri": {
"description": "The uri of this appointment, provided by system.",
"type": "string",
"format": "uri",
"readOnly": true
},
"displayName": {
"description": "The name of this appointment for display.",
"type": "string",
"read-only": false,
"minLength": 1,
"maxLength": 128,
"pattern": "",
"default": "",
"enum": [],
"elementId": "Appointment.Appointment:displayName@base.url",
"existingValue": "The Existing Name",
"elementLabel": "Name",
"instructions": "Enter a name for this appointment",
"linked": false
},
"description": {
"description": "The description of this appointment.",
"type": "string",
"read-only": false,
"minLength": 0,
"maxLength": 128,
"pattern": "",
"default": "",
"enum": [],
"elementId": "Appointment.Appointment:displayName@demo.base.url",
"existingValue": "The Existing Description",
"elementLabel": "Description",
"instructions": "Enter a description for this appointment",
"linked": false
},
"genusTypeId": {
"description": "Id of the immutable type of this appointment. 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 appointment. 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 appointment.",
"type": "string",
"format": "date-time",
"read-only": false,
"pattern": "",
"default": "",
"enum": [],
"elementId": "Appointment.Appointment:startDate@base.url",
"existingValue": "2020-10-03T08:00:00.000Z",
"elementLabel": "Start Date",
"instructions": "Enter a starting date for this appointment",
"linked": false
},
"endDate": {
"description": "The ending date of this appointment.",
"type": "string",
"format": "date-time",
"read-only": false,
"pattern": "",
"default": "",
"enum": [],
"elementId": "Appointment.Appointment:endDate@base.url",
"existingValue": "2020-12-18T17:00:00.000Z",
"elementLabel": "End Date",
"instructions": "Enter an ending date for this appointment",
"linked": false
},
"endReasonId": {
"description": "The reason this appointment ended. A process/State object.",
"type": "string",
"format": "osid-id",
"read-only": false,
"pattern": "",
"default": "",
"enum": [],
"elementId": "Appointment.Appointment:endReason@base.url",
"existingValue": "process.State:1860@base.url",
"elementLabel": "End Reason",
"instructions": "Select the reason this appointment ended",
"linked": false
},
"commitment": {
"description": "The percentage commitment (0-100).",
"type": "integer",
"minimum": 1,
"maximum": null,
"units": "",
"default": null,
"enum": [],
"elementId": "personnel.Appointment:commitment@dxtera.org",
"existingValue": 42,
"elementLabel": "Commitment",
"instructions": "Enter the commitment of this appointment.",
"linked": false
},
"title": {
"description": "The title for this appointment.",
"type": "string",
"read-only": false,
"minLength": null,
"maxLength": null,
"pattern": "",
"default": "",
"enum": [],
"elementId": "personnel.Appointment:title@dxtera.org",
"existingValue": "The existing title",
"elementLabel": "Title",
"instructions": "Enter a title for this appointment.",
"linked": false
},
"salary": {
"description": "The salary.",
"type": "string",
"format": "currency",
"read-only": false,
"pattern": "",
"default": "",
"enum": [],
"elementId": "personnel.Appointment:salary@dxtera.org",
"existingValue": "USD+120.56",
"elementLabel": "Salary",
"instructions": "Enter the salary of this appointment.",
"linked": false
}
}
}
HTTP status code 403
Body
Media type: application/json
Type: any
Example:
{"message": "Permission denied" }
Entity representing a appointment
Get a appointment given its id.
Update a given appointment.
Delete a given appointment.
get /appointments/{appointmentId}
Get a appointment given its id.
URI Parameters
- appointmentId: required(string)
HTTP status code 200
Body
Media type: application/json
Type: any
Example:
{
"id": "personnel.Appointment:8036@base.url",
"uri": "http://base.url/open/campusapi/personnel/appointment/personnel.Appointment%3A8036%40base.url",
"displayName": "Display Name of this Appointment",
"description": "The description of this Appointment",
"genusTypeId": "type.Type:defaultAppointmentType@base.url",
"recordTypeIds": [ "type.Type:exampleAppointmentRecordType@campusapi.org", "..."],
"startDate": "2020-10-03T06:30:00.000Z",
"endDate": "2020-12-18T19:30:00.000Z",
"endReasonId": "process.State:8036@base.url",
"personId": "personnel.Person:6412@base.url",
"positionId": "personnel.Position:8434@base.url",
"commitment": 19,
"title": "This is the Title",
"salary": "USD+42.00"
}
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": "appointment not found" }
put /appointments/{appointmentId}
Update a given appointment.
URI Parameters
- appointmentId: required(string)
Body
Media type: application/json
Type: json
Content:
{
"$schema": "http://json-schema.org/draft-04/schema#",
"title": "Appointment",
"type": "object",
"properties": {
"id": {
"description": "The unique id of this appointment, provided by system.",
"type": "string",
"format": "osid-id",
"readOnly": true
},
"uri": {
"description": "The uri of this appointment, provided by system.",
"type": "string",
"format": "uri",
"readOnly": true
},
"displayName": {
"description": "The name of this appointment for display.",
"type": "string"
},
"description": {
"description": "The description of this appointment.",
"type": "string"
},
"genusTypeId": {
"description": "Id of the immutable type of this appointment. 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 appointment. 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 appointment.",
"type": "string",
"format": "date-time"
},
"endDate": {
"description": "The ending date of this appointment.",
"type": "string",
"format": "date-time"
},
"endReasonId": {
"description": "The reason this appointment ended.",
"type": "string",
"format": "osid-id"
},
"personId": {
"description": "The person associated with this appointment.",
"type": "string",
"format": "osid-id",
"readOnly": true
},
"positionId": {
"description": "The position associated with this appointment.",
"type": "string",
"format": "osid-id",
"readOnly": true
},
"commitment": {
"description": "The percentage commitment (0-100).",
"type": "integer",
"minimum": 1
},
"title": {
"description": "The title for this appointment.",
"type": "string"
},
"salary": {
"description": "The salary.",
"type": "string",
"format": "currency"
}
}
}
Example:
{
"displayName": "Display Name of this Appointment",
"description": "The description of this Appointment",
"startDate": "2020-10-03T06:30:00.000Z",
"endDate": "2020-12-18T19:30:00.000Z",
"endReasonId": "process.State:6791@base.url",
"commitment": 19,
"title": "This is the Title",
"salary": "USD+42.00"
}
HTTP status code 200
Body
Media type: application/json
Type: any
Example:
{ "message": "The appointment 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": "appointment not found" }
delete /appointments/{appointmentId}
Delete a given appointment.
URI Parameters
- appointmentId: required(string)
HTTP status code 200
Body
Media type: application/json
Type: any
Example:
{ "message": "The appointment 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": "appointment not found" }
Entity representing a appointment form metadata for update
Get form metadata for updating an existing appointment.
get /appointments/{appointmentId}/metadata
Get form metadata for updating an existing appointment.
URI Parameters
- appointmentId: required(string)
HTTP status code 200
Body
Media type: application/json
Type: any
Example:
{
"$schema": "http://json-schema.org/draft/2019-9/schema#",
"title": "Appointment",
"type": "object",
"required": ["displayName"],
"properties": {
"id": {
"description": "The unique id of this appointment, provided by system.",
"type": "string",
"format": "osid-id",
"readOnly": true
},
"uri": {
"description": "The uri of this appointment, provided by system.",
"type": "string",
"format": "uri",
"readOnly": true
},
"displayName": {
"description": "The name of this appointment for display.",
"type": "string",
"read-only": false,
"minLength": 1,
"maxLength": 128,
"pattern": "",
"default": "",
"enum": [],
"elementId": "Appointment.Appointment:displayName@base.url",
"existingValue": "The Existing Name",
"elementLabel": "Name",
"instructions": "Enter a name for this appointment",
"linked": false
},
"description": {
"description": "The description of this appointment.",
"type": "string",
"read-only": false,
"minLength": 0,
"maxLength": 128,
"pattern": "",
"default": "",
"enum": [],
"elementId": "Appointment.Appointment:displayName@demo.base.url",
"existingValue": "The Existing Description",
"elementLabel": "Description",
"instructions": "Enter a description for this appointment",
"linked": false
},
"genusTypeId": {
"description": "Id of the immutable type of this appointment. 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 appointment. 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 appointment.",
"type": "string",
"format": "date-time",
"read-only": false,
"pattern": "",
"default": "",
"enum": [],
"elementId": "Appointment.Appointment:startDate@base.url",
"existingValue": "2020-10-03T08:00:00.000Z",
"elementLabel": "Start Date",
"instructions": "Enter a starting date for this appointment",
"linked": false
},
"endDate": {
"description": "The ending date of this appointment.",
"type": "string",
"format": "date-time",
"read-only": false,
"pattern": "",
"default": "",
"enum": [],
"elementId": "Appointment.Appointment:endDate@base.url",
"existingValue": "2020-12-18T17:00:00.000Z",
"elementLabel": "End Date",
"instructions": "Enter an ending date for this appointment",
"linked": false
},
"endReasonId": {
"description": "The reason this appointment ended. A process/State object.",
"type": "string",
"format": "osid-id",
"read-only": false,
"pattern": "",
"default": "",
"enum": [],
"elementId": "Appointment.Appointment:endReason@base.url",
"existingValue": "process.State:1860@base.url",
"elementLabel": "End Reason",
"instructions": "Select the reason this appointment ended",
"linked": false
},
"commitment": {
"description": "The percentage commitment (0-100).",
"type": "integer",
"minimum": 1,
"maximum": null,
"units": "",
"default": null,
"enum": [],
"elementId": "personnel.Appointment:commitment@dxtera.org",
"existingValue": 42,
"elementLabel": "Commitment",
"instructions": "Enter the commitment of this appointment.",
"linked": false
},
"title": {
"description": "The title for this appointment.",
"type": "string",
"read-only": false,
"minLength": null,
"maxLength": null,
"pattern": "",
"default": "",
"enum": [],
"elementId": "personnel.Appointment:title@dxtera.org",
"existingValue": "The existing title",
"elementLabel": "Title",
"instructions": "Enter a title for this appointment.",
"linked": false
},
"salary": {
"description": "The salary.",
"type": "string",
"format": "currency",
"read-only": false,
"pattern": "",
"default": "",
"enum": [],
"elementId": "personnel.Appointment:salary@dxtera.org",
"existingValue": "USD+120.56",
"elementLabel": "Salary",
"instructions": "Enter the salary of this appointment.",
"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": "appointment not found" }
/realms
Collection of realms in a system or federation of systems.
Get all realms.
Create a new realm.
get /realms
Get all realms.
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
- genusTypeId: (string)
The id string to match a genusType
Example:
type.Type%3AexampleRealmType%40dxtera.org
- parentGenusTypeId: (string)
The id string to match a parent genusType
Example:
type.Type%3AparentTypeExampleRealmType%40dxtera.org
- recordTypeId: (string)
The id string to match a recordType
Example:
type.Type%3AexampleRealmType%40campusapi.org
- providerId: (string)
Id string to match provider.
Example:
resource.Resource%3A3007%40demo.dxtera.org
- personId: (string)
Get realms mapped to this person.
Example:
personnel.Person%3A270%40demo.dxtera.org
- organizationId: (string)
Get realms mapped to this organization.
Example:
personnel.Organization%3A540%40demo.dxtera.org
- positionId: (string)
Get realms mapped to this position.
Example:
personnel.Position%3A360%40demo.dxtera.org
- appointmentId: (string)
Get realms mapped to this appointment.
Example:
personnel.Appointment%3A495%40demo.dxtera.org
HTTP status code 200
Body
Media type: application/json
Type: any
Example:
[
{
"id": "personnel.Realm:8984@base.url",
"uri": "http://base.url/open/campusapi/personnel/realm/personnel.Realm%3A8984%40base.url",
"displayName": "Display Name of this Realm",
"description": "The description of this Realm",
"genusTypeId": "type.Type:defaultRealmType@base.url",
"recordTypeIds": [ "type.Type:exampleRealmRecordType@campusapi.org", "..."],
"providerId": "resource.Resource:123@base.url",
"brandingId": "asset.Asset:Realm@base.url",
"license": "The license that applies to this Realm"
},
{
"...": "..."
}
]
HTTP status code 403
Body
Media type: application/json
Type: any
Example:
{"message": "Permission denied" }
post /realms
Create a new realm.
Query Parameters
- genusType: (string)
specify a particular realm type to create
Example:
type.Type%3AexampleRealmType%40dxtera.org
- recordType: (array of )
specify support for one or more realm record types
Example:
[ "type.Type%3AexampleRealmRecordType%40campusapi.org", "..." ]
Body
Media type: application/json
Type: json
Content:
{
"$schema": "http://json-schema.org/draft-04/schema#",
"title": "Realm",
"type": "object",
"properties": {
"id": {
"description": "The unique id of this realm, provided by system.",
"type": "string",
"format": "osid-id",
"readOnly": true
},
"uri": {
"description": "The uri of this realm, provided by system.",
"type": "string",
"format": "uri",
"readOnly": true
},
"displayName": {
"description": "The name of this realm for display.",
"type": "string"
},
"description": {
"description": "The description of this realm.",
"type": "string"
},
"genusTypeId": {
"description": "Id of the immutable type of this realm. 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 realm. 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 realm.",
"type": "string",
"format": "osid-id"
},
"brandingIds": {
"description": "The branding of this realm. A collection of Assets.",
"type": "array",
"items" : {
"type": "string",
"format": "osid-id"
}
},
"license": {
"description": "The licensing that applies to this realm.",
"type": "string"
}
}
}
Example:
{
"displayName": "Display Name of this Realm",
"description": "The description of this Realm",
"providerId": "resource.Resource:123@base.url",
"brandingId": "asset.Asset:Realm@base.url",
"license": "The license that applies to this Realm"
}
Entity representing a realm form metadata.
Get form metadata for creating a new realm.
get /realms/metadata
Get form metadata for creating a new realm.
HTTP status code 200
Body
Media type: application/json
Type: any
Example:
{
"$schema": "http://json-schema.org/draft/2019-9/schema#",
"title": "Realm",
"type": "object",
"required": ["displayName"],
"properties": {
"id": {
"description": "The unique id of this realm, provided by system.",
"type": "string",
"format": "osid-id",
"readOnly": true
},
"uri": {
"description": "The uri of this realm, provided by system.",
"type": "string",
"format": "uri",
"readOnly": true
},
"displayName": {
"description": "The name of this realm for display.",
"type": "string",
"read-only": false,
"minLength": 1,
"maxLength": 128,
"pattern": "",
"default": "",
"enum": [],
"elementId": "Realm.Realm:displayName@base.url",
"existingValue": "The Existing Name",
"elementLabel": "Name",
"instructions": "Enter a name for this realm",
"linked": false
},
"description": {
"description": "The description of this realm.",
"type": "string",
"read-only": false,
"minLength": 0,
"maxLength": 128,
"pattern": "",
"default": "",
"enum": [],
"elementId": "Realm.Realm:displayName@demo.base.url",
"existingValue": "The Existing Description",
"elementLabel": "Description",
"instructions": "Enter a description for this realm",
"linked": false
},
"genusTypeId": {
"description": "Id of the immutable type of this realm. 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 realm. 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 realm.",
"type": "string",
"format": "osid-id",
"read-only": false,
"pattern": "",
"default": "",
"enum": [],
"elementId": "Realm.Realm:provider@base.url",
"existingValue": "",
"elementLabel": "Provider",
"instructions": "Enter the provider of this realm",
"linked": false
},
"brandingIds": {
"description": "The branding of this realm. A list of Assets.",
"type": "array",
"items" : {
"type": "string",
"format": "osid-id",
"pattern": "",
"enum": []
},
"read-only": false,
"default": [],
"elementId": "Realm.Realm:branding@base.url",
"existingValue": "",
"elementLabel": "Branding",
"instructions": "Enter the branding images for this realm",
"linked": false
},
"license": {
"description": "The licensing that applies to this realm.",
"type": "string",
"read-only": false,
"minLength": 0,
"maxLength": 128,
"pattern": "",
"default": "",
"enum": [],
"elementId": "Realm.Realm:license@base.url",
"existingValue": "The Existing License",
"elementLabel": "License",
"instructions": "Include a license for this realm",
"linked": false
}
}
}
HTTP status code 403
Body
Media type: application/json
Type: any
Example:
{"message": "Permission denied" }
The root realms in the realm hierarchy. A node with no parents is an orphan. While all realm 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-realm
get /realms/root-realm
Get all root root-realm
HTTP status code 200
Body
Media type: application/json
Type: any
Example:
[
{
"id": "personnel.Realm:8984@base.url",
"uri": "http://base.url/open/campusapi/personnel/realm/personnel.Realm%3A8984%40base.url",
"displayName": "Display Name of this Realm",
"description": "The description of this Realm",
"genusTypeId": "type.Type:defaultRealmType@base.url",
"recordTypeIds": [ "type.Type:exampleRealmRecordType@campusapi.org", "..."],
"providerId": "resource.Resource:123@base.url",
"brandingId": "asset.Asset:Realm@base.url",
"license": "The license that applies to this Realm"
},
{
"...": "..."
}
]
HTTP status code 403
Body
Media type: application/json
Type: any
Example:
{"message": "Permission denied" }
Entity representing a realm
Get a realm given its id.
Update a given realm.
Delete a given realm.
get /realms/{realmId}
Get a realm given its id.
URI Parameters
- realmId: required(string)
HTTP status code 200
Body
Media type: application/json
Type: any
Example:
{
"id": "personnel.Realm:8984@base.url",
"uri": "http://base.url/open/campusapi/personnel/realm/personnel.Realm%3A8984%40base.url",
"displayName": "Display Name of this Realm",
"description": "The description of this Realm",
"genusTypeId": "type.Type:defaultRealmType@base.url",
"recordTypeIds": [ "type.Type:exampleRealmRecordType@campusapi.org", "..."],
"providerId": "resource.Resource:123@base.url",
"brandingId": "asset.Asset:Realm@base.url",
"license": "The license that applies to this Realm"
}
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": "realm not found" }
put /realms/{realmId}
Update a given realm.
URI Parameters
- realmId: required(string)
Body
Media type: application/json
Type: json
Content:
{
"$schema": "http://json-schema.org/draft-04/schema#",
"title": "Realm",
"type": "object",
"properties": {
"id": {
"description": "The unique id of this realm, provided by system.",
"type": "string",
"format": "osid-id",
"readOnly": true
},
"uri": {
"description": "The uri of this realm, provided by system.",
"type": "string",
"format": "uri",
"readOnly": true
},
"displayName": {
"description": "The name of this realm for display.",
"type": "string"
},
"description": {
"description": "The description of this realm.",
"type": "string"
},
"genusTypeId": {
"description": "Id of the immutable type of this realm. 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 realm. 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 realm.",
"type": "string",
"format": "osid-id"
},
"brandingIds": {
"description": "The branding of this realm. A collection of Assets.",
"type": "array",
"items" : {
"type": "string",
"format": "osid-id"
}
},
"license": {
"description": "The licensing that applies to this realm.",
"type": "string"
}
}
}
Example:
{
"displayName": "Display Name of this Realm",
"description": "The description of this Realm",
"providerId": "resource.Resource:123@base.url",
"brandingId": "asset.Asset:Realm@base.url",
"license": "The license that applies to this Realm"
}
HTTP status code 200
Body
Media type: application/json
Type: any
Example:
{ "message": "The realm 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": "realm not found" }
delete /realms/{realmId}
Delete a given realm.
URI Parameters
- realmId: required(string)
HTTP status code 200
Body
Media type: application/json
Type: any
Example:
{ "message": "The realm 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": "realm not found" }
Entity representing a realm form metadata for update
Get form metadata for updating an existing realm.
get /realms/{realmId}/metadata
Get form metadata for updating an existing realm.
URI Parameters
- realmId: required(string)
HTTP status code 200
Body
Media type: application/json
Type: any
Example:
{
"$schema": "http://json-schema.org/draft/2019-9/schema#",
"title": "Realm",
"type": "object",
"required": ["displayName"],
"properties": {
"id": {
"description": "The unique id of this realm, provided by system.",
"type": "string",
"format": "osid-id",
"readOnly": true
},
"uri": {
"description": "The uri of this realm, provided by system.",
"type": "string",
"format": "uri",
"readOnly": true
},
"displayName": {
"description": "The name of this realm for display.",
"type": "string",
"read-only": false,
"minLength": 1,
"maxLength": 128,
"pattern": "",
"default": "",
"enum": [],
"elementId": "Realm.Realm:displayName@base.url",
"existingValue": "The Existing Name",
"elementLabel": "Name",
"instructions": "Enter a name for this realm",
"linked": false
},
"description": {
"description": "The description of this realm.",
"type": "string",
"read-only": false,
"minLength": 0,
"maxLength": 128,
"pattern": "",
"default": "",
"enum": [],
"elementId": "Realm.Realm:displayName@demo.base.url",
"existingValue": "The Existing Description",
"elementLabel": "Description",
"instructions": "Enter a description for this realm",
"linked": false
},
"genusTypeId": {
"description": "Id of the immutable type of this realm. 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 realm. 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 realm.",
"type": "string",
"format": "osid-id",
"read-only": false,
"pattern": "",
"default": "",
"enum": [],
"elementId": "Realm.Realm:provider@base.url",
"existingValue": "",
"elementLabel": "Provider",
"instructions": "Enter the provider of this realm",
"linked": false
},
"brandingIds": {
"description": "The branding of this realm. A list of Assets.",
"type": "array",
"items" : {
"type": "string",
"format": "osid-id",
"pattern": "",
"enum": []
},
"read-only": false,
"default": [],
"elementId": "Realm.Realm:branding@base.url",
"existingValue": "",
"elementLabel": "Branding",
"instructions": "Enter the branding images for this realm",
"linked": false
},
"license": {
"description": "The licensing that applies to this realm.",
"type": "string",
"read-only": false,
"minLength": 0,
"maxLength": 128,
"pattern": "",
"default": "",
"enum": [],
"elementId": "Realm.Realm:license@base.url",
"existingValue": "The Existing License",
"elementLabel": "License",
"instructions": "Include a license for this realm",
"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": "realm not found" }
Get child realms for the given realm in the hierarchy.
get /realms/{realmId}/children
Get child realms for the given realm in the hierarchy.
URI Parameters
- realmId: required(string)
HTTP status code 200
Body
Media type: application/json
Type: any
Example:
[
{
"id": "personnel.Realm:8984@base.url",
"uri": "http://base.url/open/campusapi/personnel/realm/personnel.Realm%3A8984%40base.url",
"displayName": "Display Name of this Realm",
"description": "The description of this Realm",
"genusTypeId": "type.Type:defaultRealmType@base.url",
"recordTypeIds": [ "type.Type:exampleRealmRecordType@campusapi.org", "..."],
"providerId": "resource.Resource:123@base.url",
"brandingId": "asset.Asset:Realm@base.url",
"license": "The license that applies to this Realm"
},
{
"...": "..."
}
]
HTTP status code 403
Body
Media type: application/json
Type: any
Example:
{"message": "Permission denied" }
Add realm as child of the given realm in the hierarchy.
Remove the given realm as a child of the given realm in the hierarchy.
put /realms/{realmId}/children/{childId}
Add realm as child of the given realm in the hierarchy.
URI Parameters
- realmId: required(string)
- childId: required(string)
HTTP status code 200
Body
Media type: application/json
Type: any
Example:
{ "message": "The child realm 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": "realm not found" }
delete /realms/{realmId}/children/{childId}
Remove the given realm as a child of the given realm in the hierarchy.
URI Parameters
- realmId: required(string)
- childId: required(string)
Get parent realms for the given realm in the hierarchy.
get /realms/{realmId}/parents
Get parent realms for the given realm in the hierarchy.
URI Parameters
- realmId: required(string)
HTTP status code 200
Body
Media type: application/json
Type: any
Example:
[
{
"id": "personnel.Realm:8984@base.url",
"uri": "http://base.url/open/campusapi/personnel/realm/personnel.Realm%3A8984%40base.url",
"displayName": "Display Name of this Realm",
"description": "The description of this Realm",
"genusTypeId": "type.Type:defaultRealmType@base.url",
"recordTypeIds": [ "type.Type:exampleRealmRecordType@campusapi.org", "..."],
"providerId": "resource.Resource:123@base.url",
"brandingId": "asset.Asset:Realm@base.url",
"license": "The license that applies to this Realm"
},
{
"...": "..."
}
]
HTTP status code 403
Body
Media type: application/json
Type: any
Example:
{"message": "Permission denied" }
Get all persons in this realm
get /realms/{realmId}/persons
Get all persons in this realm
URI Parameters
- realmId: required(string)
HTTP status code 200
Body
Media type: application/json
Type: any
Example:
[
{
"id": "personnel.Person:3411@base.url",
"uri": "http://base.url/open/campusapi/personnel/person/personnel.Person%3A3411%40base.url",
"displayName": "Display Name of this Person",
"description": "The description of this Person",
"genusTypeId": "type.Type:defaultPersonType@base.url",
"recordTypeIds": [ "type.Type:examplePersonRecordType@campusapi.org", "..."],
"salutation": "This is the Salutation",
"givenName": "This is the GivenName",
"preferredName": "This is the PreferredName",
"forenameAliases": [ "..string[]..", "..." ],
"middleNames": [ "..string[]..", "..." ],
"surname": "This is the Surname",
"surnameAliases": [ "..string[]..", "..." ],
"generationQualifier": "This is the GenerationQualifier",
"birthDate": "2021-07-21T23:15:30.000Z",
"deathDate": "2021-07-21T23:15:30.000Z",
"institutionalIdentifier": "This is the string for InstitutionalIdentifier",
"qualificationSuffix": "This is the QualificationSuffix"
},
{
"...": "..."
}
]
HTTP status code 403
Body
Media type: application/json
Type: any
Example:
{"message": "Permission denied" }
Add the given person to this realm
Remove the given person from the realm.
put /realms/{realmId}/persons/{personId}
Add the given person to this realm
URI Parameters
- realmId: required(string)
- personId: required(string)
HTTP status code 200
Body
Media type: application/json
Type: any
Example:
{ "message": "person has been added to realm" }
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": "person not found" }
delete /realms/{realmId}/persons/{personId}
Remove the given person from the realm.
URI Parameters
- realmId: required(string)
- personId: required(string)
HTTP status code 200
Body
Media type: application/json
Type: any
Example:
{ "message": "person 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": "person not found" }
Get all organizations in this realm
get /realms/{realmId}/organizations
Get all organizations in this realm
URI Parameters
- realmId: required(string)
HTTP status code 200
Body
Media type: application/json
Type: any
Example:
[
{
"id": "personnel.Organization:3299@base.url",
"uri": "http://base.url/open/campusapi/personnel/organization/personnel.Organization%3A3299%40base.url",
"displayName": "Display Name of this Organization",
"description": "The description of this Organization",
"genusTypeId": "type.Type:defaultOrganizationType@base.url",
"recordTypeIds": [ "type.Type:exampleOrganizationRecordType@campusapi.org", "..."],
"startDate": "2020-10-03T06:30:00.000Z",
"endDate": "2020-12-18T19:30:00.000Z",
"displayLabel": "This is the DisplayLabel"
},
{
"...": "..."
}
]
HTTP status code 403
Body
Media type: application/json
Type: any
Example:
{"message": "Permission denied" }
Add the given organization to this realm
Remove the given organization from the realm.
put /realms/{realmId}/organizations/{organizationId}
Add the given organization to this realm
URI Parameters
- realmId: required(string)
- organizationId: required(string)
HTTP status code 200
Body
Media type: application/json
Type: any
Example:
{ "message": "organization has been added to realm" }
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": "organization not found" }
delete /realms/{realmId}/organizations/{organizationId}
Remove the given organization from the realm.
URI Parameters
- realmId: required(string)
- organizationId: required(string)
HTTP status code 200
Body
Media type: application/json
Type: any
Example:
{ "message": "organization 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": "organization not found" }
Get all positions in this realm
get /realms/{realmId}/positions
Get all positions in this realm
URI Parameters
- realmId: required(string)
HTTP status code 200
Body
Media type: application/json
Type: any
Example:
[
{
"id": "personnel.Position:6813@base.url",
"uri": "http://base.url/open/campusapi/personnel/position/personnel.Position%3A6813%40base.url",
"displayName": "Display Name of this Position",
"description": "The description of this Position",
"genusTypeId": "type.Type:defaultPositionType@base.url",
"recordTypeIds": [ "type.Type:examplePositionRecordType@campusapi.org", "..."],
"startDate": "2020-10-03T06:30:00.000Z",
"endDate": "2020-12-18T19:30:00.000Z",
"organizationId": "personnel.Organization:1033@base.url",
"title": "This is the Title",
"levelId": "grading.Grade:411@base.url",
"qualificationIds": [ "learning.Objective:774@base.url", "..." ],
"targetAppointments": 19,
"requiredCommitment": 19,
"lowSalaryRange": "USD+42.00",
"midpointSalaryRange": "USD+42.00",
"highSalaryRange": "USD+42.00",
"compensationFrequency": "P3DT3H",
"exempt": true,
"benefitsType": "type.Type:7250@base.url"
},
{
"...": "..."
}
]
HTTP status code 403
Body
Media type: application/json
Type: any
Example:
{"message": "Permission denied" }
Add the given position to this realm
Remove the given position from the realm.
put /realms/{realmId}/positions/{positionId}
Add the given position to this realm
URI Parameters
- realmId: required(string)
- positionId: required(string)
HTTP status code 200
Body
Media type: application/json
Type: any
Example:
{ "message": "position has been added to realm" }
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": "position not found" }
delete /realms/{realmId}/positions/{positionId}
Remove the given position from the realm.
URI Parameters
- realmId: required(string)
- positionId: required(string)
HTTP status code 200
Body
Media type: application/json
Type: any
Example:
{ "message": "position 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": "position not found" }
Get all appointments in this realm
get /realms/{realmId}/appointments
Get all appointments in this realm
URI Parameters
- realmId: required(string)
HTTP status code 200
Body
Media type: application/json
Type: any
Example:
[
{
"id": "personnel.Appointment:8036@base.url",
"uri": "http://base.url/open/campusapi/personnel/appointment/personnel.Appointment%3A8036%40base.url",
"displayName": "Display Name of this Appointment",
"description": "The description of this Appointment",
"genusTypeId": "type.Type:defaultAppointmentType@base.url",
"recordTypeIds": [ "type.Type:exampleAppointmentRecordType@campusapi.org", "..."],
"startDate": "2020-10-03T06:30:00.000Z",
"endDate": "2020-12-18T19:30:00.000Z",
"endReasonId": "process.State:8036@base.url",
"personId": "personnel.Person:6412@base.url",
"positionId": "personnel.Position:8434@base.url",
"commitment": 19,
"title": "This is the Title",
"salary": "USD+42.00"
},
{
"...": "..."
}
]
HTTP status code 403
Body
Media type: application/json
Type: any
Example:
{"message": "Permission denied" }
Add the given appointment to this realm
Remove the given appointment from the realm.
put /realms/{realmId}/appointments/{appointmentId}
Add the given appointment to this realm
URI Parameters
- realmId: required(string)
- appointmentId: required(string)
HTTP status code 200
Body
Media type: application/json
Type: any
Example:
{ "message": "appointment has been added to realm" }
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": "appointment not found" }
delete /realms/{realmId}/appointments/{appointmentId}
Remove the given appointment from the realm.
URI Parameters
- realmId: required(string)
- appointmentId: required(string)
HTTP status code 200
Body
Media type: application/json
Type: any
Example:
{ "message": "appointment 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": "appointment not found" }