CampusAPI Personnel Services API documentation version 1.0.5
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)[] |
targetAppointments | The target number of Appointments desired for this Position. | integer |
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 2023 DXtera Institute. Based on the Open Service Interface Definitions: 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
- expand: (string)
Expand object or type for named attribute: "genusType", "recordType", or "all" to expand all referenced objects or types. This parameter can be repeated to expand multiples.
Example:
all
- 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:1252@base.url",
"uri": "http://base.url/open/campusapi/personnel/person/personnel.Person%3A1252%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"
}
Query the collection of People in a system, federation of systems, or in a default realm by posting a Query object.
Submit a query using a PersonQuery object.
post /persons/person-query
Submit a query using a PersonQuery object.
Query Parameters
- offset: (integer - default: 0)
Skip over a number of elements by specifying an offset value for the query
Example:
20
- limit: (integer - default: 10)
Limit the number of elements on the response
Example:
80
- expand: (string)
Expand object or type for named attribute: "genusType", "recordType", or "all" to expand all referenced objects or types. This parameter can be repeated to expand multiples.
Example:
all
Body
Media type: application/json
Type: json
Content:
{
"$schema": "http://json-schema.org/draft-04/schema#",
"title": "PersonQuery",
"type": "object",
"properties": {
"matchIds": {
"description": "List of Ids to match. Boolean OR performed among multiple Ids.",
"type": "array",
"items": {
"type": "object",
"properties": {
"id": {
"description": "id to match",
"type": "string",
"format": "osid-id"
},
"match": {
"description": "true for a positive match, false for a negative match",
"type": "boolean"
}
}
}
},
"matchKeywords": {
"description": "List keywords to match. Multiple keywords can be added to perform a boolean OR among them. A keyword may be applied to any of the elements defined in this object such as the display name, description or any attribute defined in or implemented by this object.",
"type": "array",
"items": {
"type": "object",
"properties": {
"keyword": {
"description": "keyword to match",
"type": "string"
},
"stringMatchType": {
"description": "the string match type",
"type": "string",
"format": "osid-id"
},
"match": {
"description": "true for a positive match, false for a negative match",
"type": "boolean"
}
}
}
},
"matchDisplayNames": {
"description": "List of displayName strings to match. Boolean OR performed among multiple displayNames.",
"type": "array",
"items": {
"type": "object",
"properties": {
"displayName": {
"description": "displayName to match",
"type": "string"
},
"stringMatchType": {
"description": "the string match type",
"type": "string",
"format": "osid-id"
},
"match": {
"description": "true for a positive match, false for a negative match",
"type": "boolean"
}
}
}
},
"matchDescriptions": {
"description": "List of discription strings to match. Boolean OR performed among multiple descriptions.",
"type": "array",
"items": {
"type": "object",
"properties": {
"description": {
"description": "description to match",
"type": "string"
},
"stringMatchType": {
"description": "the string match type",
"type": "string",
"format": "osid-id"
},
"match": {
"description": "true for a positive match, false for a negative match",
"type": "boolean"
}
}
}
},
"matchGenusTypeIds": {
"description": "List of genus type ids to match. Boolean OR performed among multiple ids.",
"type": "array",
"items": {
"type": "object",
"properties": {
"genusTypeid": {
"description": "genus type id to match",
"type": "string",
"format": "osid-id"
},
"match": {
"description": "true for a positive match, false for a negative match",
"type": "boolean"
}
}
}
},
"matchRecordTypeIds": {
"description": "List of record type ids to match. Boolean OR performed among multiple ids.",
"type": "array",
"items": {
"type": "object",
"properties": {
"genusTypeid": {
"description": "record type id to match",
"type": "string",
"format": "osid-id"
},
"match": {
"description": "true for a positive match, false for a negative match",
"type": "boolean"
}
}
}
},
"matchSalutation": {
"description": "List of Salutation strings to match. Boolean OR performed among multiple salutations.",
"type": "array",
"items": {
"type": "object",
"properties": {
"salutations": {
"description": "salutations to match",
"type": "string"
},
"stringMatchType": {
"description": "the string match type",
"type": "string",
"format": "osid-id"
},
"match": {
"description": "true for a positive match, false for a negative match",
"type": "boolean"
}
}
}
},
"matchAnySalutation": {
"description": "Match salutations with any value. true to match Persons with any salutation, false to match ProgramOfferings with no salutation",
"type": "boolean"
},
"matchGivenName": {
"description": "List of GivenName strings to match. Boolean OR performed among multiple givenNames.",
"type": "array",
"items": {
"type": "object",
"properties": {
"givenNames": {
"description": "givenNames to match",
"type": "string"
},
"stringMatchType": {
"description": "the string match type",
"type": "string",
"format": "osid-id"
},
"match": {
"description": "true for a positive match, false for a negative match",
"type": "boolean"
}
}
}
},
"matchAnyGivenName": {
"description": "Match givenNames with any value. true to match Persons with any given name, false to match ProgramOfferings with no given name",
"type": "boolean"
},
"matchPreferredName": {
"description": "List of PreferredName strings to match. Boolean OR performed among multiple preferredNames.",
"type": "array",
"items": {
"type": "object",
"properties": {
"preferredNames": {
"description": "preferredNames to match",
"type": "string"
},
"stringMatchType": {
"description": "the string match type",
"type": "string",
"format": "osid-id"
},
"match": {
"description": "true for a positive match, false for a negative match",
"type": "boolean"
}
}
}
},
"matchAnyPreferredName": {
"description": "Match preferredNames with any value. true to match Persons with any preferred name, false to match ProgramOfferings with no preferred name",
"type": "boolean"
},
"matchForenameAliases": {
"description": "List of ForenameAliases strings to match. Boolean OR performed among multiple forenameAliases.",
"type": "array",
"items": {
"type": "object",
"properties": {
"forenameAliases": {
"description": "forenameAliases to match",
"type": "string"
},
"stringMatchType": {
"description": "the string match type",
"type": "string",
"format": "osid-id"
},
"match": {
"description": "true for a positive match, false for a negative match",
"type": "boolean"
}
}
}
},
"matchAnyForenameAliases": {
"description": "Match forenameAliases with any value. true to match Persons with any forename aliases, false to match ProgramOfferings with no forename aliases",
"type": "boolean"
},
"matchMiddleNames": {
"description": "List of MiddleNames strings to match. Boolean OR performed among multiple middleNames.",
"type": "array",
"items": {
"type": "object",
"properties": {
"middleNames": {
"description": "middleNames to match",
"type": "string"
},
"stringMatchType": {
"description": "the string match type",
"type": "string",
"format": "osid-id"
},
"match": {
"description": "true for a positive match, false for a negative match",
"type": "boolean"
}
}
}
},
"matchAnyMiddleNames": {
"description": "Match middleNames with any value. true to match Persons with any middle names, false to match ProgramOfferings with no middle names",
"type": "boolean"
},
"matchSurname": {
"description": "List of Surname strings to match. Boolean OR performed among multiple surnames.",
"type": "array",
"items": {
"type": "object",
"properties": {
"surnames": {
"description": "surnames to match",
"type": "string"
},
"stringMatchType": {
"description": "the string match type",
"type": "string",
"format": "osid-id"
},
"match": {
"description": "true for a positive match, false for a negative match",
"type": "boolean"
}
}
}
},
"matchAnySurname": {
"description": "Match surnames with any value. true to match Persons with any surname, false to match ProgramOfferings with no surname",
"type": "boolean"
},
"matchSurnameAliases": {
"description": "List of SurnameAliases strings to match. Boolean OR performed among multiple surnameAliases.",
"type": "array",
"items": {
"type": "object",
"properties": {
"surnameAliases": {
"description": "surnameAliases to match",
"type": "string"
},
"stringMatchType": {
"description": "the string match type",
"type": "string",
"format": "osid-id"
},
"match": {
"description": "true for a positive match, false for a negative match",
"type": "boolean"
}
}
}
},
"matchAnySurnameAliases": {
"description": "Match surnameAliases with any value. true to match Persons with any surname aliases, false to match ProgramOfferings with no surname aliases",
"type": "boolean"
},
"matchGenerationQualifier": {
"description": "List of GenerationQualifier strings to match. Boolean OR performed among multiple generationQualifiers.",
"type": "array",
"items": {
"type": "object",
"properties": {
"generationQualifiers": {
"description": "generationQualifiers to match",
"type": "string"
},
"stringMatchType": {
"description": "the string match type",
"type": "string",
"format": "osid-id"
},
"match": {
"description": "true for a positive match, false for a negative match",
"type": "boolean"
}
}
}
},
"matchAnyGenerationQualifier": {
"description": "Match generationQualifiers with any value. true to match Persons with any generation qualifier, false to match ProgramOfferings with no generation qualifier",
"type": "boolean"
},
"matchBirthDate": {
"description": "Matches birthDates between the given date range inclusive.",
"type": "array",
"items": {
"type": "object",
"properties": {
"low": {
"description": "low date range",
"type": "string",
"format": "date-time"
},
"high": {
"description": "high date range",
"type": "string",
"format": "date-time"
},
"match": {
"description": "true for a positive match, false for a negative match",
"type": "boolean"
}
}
}
},
"matchAnyBirthDate": {
"description": "Match birthDates with any value. true to match Persons with any birth date, false to match ProgramOfferings with no birth date",
"type": "boolean"
},
"matchDeathDate": {
"description": "Matches deathDates between the given date range inclusive.",
"type": "array",
"items": {
"type": "object",
"properties": {
"low": {
"description": "low date range",
"type": "string",
"format": "date-time"
},
"high": {
"description": "high date range",
"type": "string",
"format": "date-time"
},
"match": {
"description": "true for a positive match, false for a negative match",
"type": "boolean"
}
}
}
},
"matchAnyDeathDate": {
"description": "Match deathDates with any value. true to match Persons with any death date, false to match ProgramOfferings with no death date",
"type": "boolean"
},
"matchInstitutionalIdentifier": {
"description": "List of InstitutionalIdentifier strings to match. Boolean OR performed among multiple institutionalIdentifiers.",
"type": "array",
"items": {
"type": "object",
"properties": {
"institutionalIdentifiers": {
"description": "institutionalIdentifiers to match",
"type": "string"
},
"stringMatchType": {
"description": "the string match type",
"type": "string",
"format": "osid-id"
},
"match": {
"description": "true for a positive match, false for a negative match",
"type": "boolean"
}
}
}
},
"matchAnyInstitutionalIdentifier": {
"description": "Match institutionalIdentifiers with any value. true to match Persons with any institutional identifier, false to match ProgramOfferings with no institutional identifier",
"type": "boolean"
},
"matchRealmIds": {
"description": "List of Realm Id's to match.",
"type": "array",
"items": {
"type": "object",
"properties": {
"realmId": {
"description": "Realm id to match",
"type": "string",
"format": "osid-id"
},
"match": {
"description": "true for a positive match, false for a negative match",
"type": "boolean"
}
}
}
},
"realmQueries": {
"description": "RealmQueries to match Realm. Each query performs a boolean OR.",
"type": "array",
"items": {
"type": "object"
}
}
}
}
Example:
{
"matchDisplayNames": [
{
"displayName": "string to exclude",
"match": false
}
]
}
HTTP status code 200
Body
Media type: application/json
Type: any
Example:
[
{
"id": "personnel.Person:1252@base.url",
"uri": "http://base.url/open/campusapi/personnel/person/personnel.Person%3A1252%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" }
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 particular Person given its id.
Update a particular Person given its id.
Delete a particular Person given its id.
get /persons/{personId}
Get a particular Person given its id.
URI Parameters
- personId: required(string)
Query Parameters
- expand: (string)
Expand object or type for named attribute: "genusType", "recordType", or "all" to expand all referenced objects or types. This parameter can be repeated to expand multiples.
Example:
all
HTTP status code 200
Body
Media type: application/json
Type: any
Example:
{
"id": "personnel.Person:1252@base.url",
"uri": "http://base.url/open/campusapi/personnel/person/personnel.Person%3A1252%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 particular Person given its id.
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 particular Person given its id.
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
- expand: (string)
Expand object or type for named attribute: "genusType", "recordType", or "all" to expand all referenced objects or types. This parameter can be repeated to expand multiples.
Example:
all
- 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:9579@base.url",
"uri": "http://base.url/open/campusapi/personnel/organization/personnel.Organization%3A9579%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"
}
Query the collection of Organizations in a system, federation of systems, or in a default realm by posting a Query object.
Submit a query using a OrganizationQuery object.
post /organizations/organization-query
Submit a query using a OrganizationQuery object.
Query Parameters
- offset: (integer - default: 0)
Skip over a number of elements by specifying an offset value for the query
Example:
20
- limit: (integer - default: 10)
Limit the number of elements on the response
Example:
80
- expand: (string)
Expand object or type for named attribute: "genusType", "recordType", or "all" to expand all referenced objects or types. This parameter can be repeated to expand multiples.
Example:
all
Body
Media type: application/json
Type: json
Content:
{
"$schema": "http://json-schema.org/draft-04/schema#",
"title": "OrganizationQuery",
"type": "object",
"properties": {
"matchIds": {
"description": "List of Ids to match. Boolean OR performed among multiple Ids.",
"type": "array",
"items": {
"type": "object",
"properties": {
"id": {
"description": "id to match",
"type": "string",
"format": "osid-id"
},
"match": {
"description": "true for a positive match, false for a negative match",
"type": "boolean"
}
}
}
},
"matchKeywords": {
"description": "List keywords to match. Multiple keywords can be added to perform a boolean OR among them. A keyword may be applied to any of the elements defined in this object such as the display name, description or any attribute defined in or implemented by this object.",
"type": "array",
"items": {
"type": "object",
"properties": {
"keyword": {
"description": "keyword to match",
"type": "string"
},
"stringMatchType": {
"description": "the string match type",
"type": "string",
"format": "osid-id"
},
"match": {
"description": "true for a positive match, false for a negative match",
"type": "boolean"
}
}
}
},
"matchDisplayNames": {
"description": "List of displayName strings to match. Boolean OR performed among multiple displayNames.",
"type": "array",
"items": {
"type": "object",
"properties": {
"displayName": {
"description": "displayName to match",
"type": "string"
},
"stringMatchType": {
"description": "the string match type",
"type": "string",
"format": "osid-id"
},
"match": {
"description": "true for a positive match, false for a negative match",
"type": "boolean"
}
}
}
},
"matchDescriptions": {
"description": "List of discription strings to match. Boolean OR performed among multiple descriptions.",
"type": "array",
"items": {
"type": "object",
"properties": {
"description": {
"description": "description to match",
"type": "string"
},
"stringMatchType": {
"description": "the string match type",
"type": "string",
"format": "osid-id"
},
"match": {
"description": "true for a positive match, false for a negative match",
"type": "boolean"
}
}
}
},
"matchGenusTypeIds": {
"description": "List of genus type ids to match. Boolean OR performed among multiple ids.",
"type": "array",
"items": {
"type": "object",
"properties": {
"genusTypeid": {
"description": "genus type id to match",
"type": "string",
"format": "osid-id"
},
"match": {
"description": "true for a positive match, false for a negative match",
"type": "boolean"
}
}
}
},
"matchRecordTypeIds": {
"description": "List of record type ids to match. Boolean OR performed among multiple ids.",
"type": "array",
"items": {
"type": "object",
"properties": {
"genusTypeid": {
"description": "record type id to match",
"type": "string",
"format": "osid-id"
},
"match": {
"description": "true for a positive match, false for a negative match",
"type": "boolean"
}
}
}
},
"matchEffective": {
"description": "Match effective objects where the current date falls within the start and end dates inclusive. true to match any effective, false to match ineffective",
"type": "boolean"
},
"matchStartDate": {
"description": "Matches temporals whose start date falls in between the given dates inclusive.",
"type": "object",
"properties": {
"start": {
"description": "start of date range",
"type": "string",
"format": "date-time"
},
"end": {
"description": "end of date range",
"type": "string",
"format": "date-time"
},
"match": {
"description": "true if a positive match, false for negative match",
"type": "boolean"
}
}
},
"matchEndDate": {
"description": "Matches temporals whose end date falls in between the given dates inclusive.",
"type": "object",
"properties": {
"start": {
"description": "start of date range",
"type": "string",
"format": "date-time"
},
"end": {
"description": "end of date range",
"type": "string",
"format": "date-time"
},
"match": {
"description": "true if a positive match, false for negative match",
"type": "boolean"
}
}
},
"matchDisplayLabel": {
"description": "List of DisplayLabel strings to match. Boolean OR performed among multiple displayLabels.",
"type": "array",
"items": {
"type": "object",
"properties": {
"displayLabels": {
"description": "displayLabels to match",
"type": "string"
},
"stringMatchType": {
"description": "the string match type",
"type": "string",
"format": "osid-id"
},
"match": {
"description": "true for a positive match, false for a negative match",
"type": "boolean"
}
}
}
},
"matchAnyDisplayLabel": {
"description": "Match displayLabels with any value. true to match Organizations with any display label, false to match ProgramOfferings with no display label",
"type": "boolean"
},
"matchRealmIds": {
"description": "List of Realm Id's to match.",
"type": "array",
"items": {
"type": "object",
"properties": {
"realmId": {
"description": "Realm id to match",
"type": "string",
"format": "osid-id"
},
"match": {
"description": "true for a positive match, false for a negative match",
"type": "boolean"
}
}
}
},
"realmQueries": {
"description": "RealmQueries to match Realm. Each query performs a boolean OR.",
"type": "array",
"items": {
"type": "object"
}
}
}
}
Example:
{
"matchDisplayNames": [
{
"displayName": "string to exclude",
"match": false
}
]
}
HTTP status code 200
Body
Media type: application/json
Type: any
Example:
[
{
"id": "personnel.Organization:9579@base.url",
"uri": "http://base.url/open/campusapi/personnel/organization/personnel.Organization%3A9579%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" }
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:9579@base.url",
"uri": "http://base.url/open/campusapi/personnel/organization/personnel.Organization%3A9579%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 particular Organization given its id.
Update a particular Organization given its id.
Delete a particular Organization given its id.
get /organizations/{organizationId}
Get a particular Organization given its id.
URI Parameters
- organizationId: required(string)
HTTP status code 200
Body
Media type: application/json
Type: any
Example:
{
"id": "personnel.Organization:9579@base.url",
"uri": "http://base.url/open/campusapi/personnel/organization/personnel.Organization%3A9579%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 particular Organization given its id.
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 particular Organization given its id.
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:9579@base.url",
"uri": "http://base.url/open/campusapi/personnel/organization/personnel.Organization%3A9579%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:9579@base.url",
"uri": "http://base.url/open/campusapi/personnel/organization/personnel.Organization%3A9579%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
- expand: (string)
Expand object or type for named attribute: "genusType", "recordType", "level", "qualifications", "benefitsType", "organization", or "all" to expand all referenced objects or types. This parameter can be repeated to expand multiples.
Example:
all
- genusTypeId: (string)
The id string to match a genusType
Example:
type.Type%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:7512@base.url",
"uri": "http://base.url/open/campusapi/personnel/position/personnel.Position%3A7512%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:91@base.url",
"title": "This is the Title",
"levelId": "grading.Grade:105@base.url",
"qualificationIds": [ "learning.Objective:3110@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:4905@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"
}
},
"targetAppointments": {
"description": "The target number of Appointments desired for this Position.",
"type": "integer",
"minimum": 1
},
"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:9372@base.url",
"qualificationIds": [ "learning.Objective:9034@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:4629@base.url"
}
Query the collection of Positions in a system, federation of systems, or in a default realm by posting a Query object.
Submit a query using a PositionQuery object.
post /positions/position-query
Submit a query using a PositionQuery object.
Query Parameters
- offset: (integer - default: 0)
Skip over a number of elements by specifying an offset value for the query
Example:
20
- limit: (integer - default: 10)
Limit the number of elements on the response
Example:
80
- expand: (string)
Expand object or type for named attribute: "genusType", "recordType", "level", "qualifications", "benefitsType", "organization", or "all" to expand all referenced objects or types. This parameter can be repeated to expand multiples.
Example:
all
Body
Media type: application/json
Type: json
Content:
{
"$schema": "http://json-schema.org/draft-04/schema#",
"title": "PositionQuery",
"type": "object",
"properties": {
"matchIds": {
"description": "List of Ids to match. Boolean OR performed among multiple Ids.",
"type": "array",
"items": {
"type": "object",
"properties": {
"id": {
"description": "id to match",
"type": "string",
"format": "osid-id"
},
"match": {
"description": "true for a positive match, false for a negative match",
"type": "boolean"
}
}
}
},
"matchKeywords": {
"description": "List keywords to match. Multiple keywords can be added to perform a boolean OR among them. A keyword may be applied to any of the elements defined in this object such as the display name, description or any attribute defined in or implemented by this object.",
"type": "array",
"items": {
"type": "object",
"properties": {
"keyword": {
"description": "keyword to match",
"type": "string"
},
"stringMatchType": {
"description": "the string match type",
"type": "string",
"format": "osid-id"
},
"match": {
"description": "true for a positive match, false for a negative match",
"type": "boolean"
}
}
}
},
"matchDisplayNames": {
"description": "List of displayName strings to match. Boolean OR performed among multiple displayNames.",
"type": "array",
"items": {
"type": "object",
"properties": {
"displayName": {
"description": "displayName to match",
"type": "string"
},
"stringMatchType": {
"description": "the string match type",
"type": "string",
"format": "osid-id"
},
"match": {
"description": "true for a positive match, false for a negative match",
"type": "boolean"
}
}
}
},
"matchDescriptions": {
"description": "List of discription strings to match. Boolean OR performed among multiple descriptions.",
"type": "array",
"items": {
"type": "object",
"properties": {
"description": {
"description": "description to match",
"type": "string"
},
"stringMatchType": {
"description": "the string match type",
"type": "string",
"format": "osid-id"
},
"match": {
"description": "true for a positive match, false for a negative match",
"type": "boolean"
}
}
}
},
"matchGenusTypeIds": {
"description": "List of genus type ids to match. Boolean OR performed among multiple ids.",
"type": "array",
"items": {
"type": "object",
"properties": {
"genusTypeid": {
"description": "genus type id to match",
"type": "string",
"format": "osid-id"
},
"match": {
"description": "true for a positive match, false for a negative match",
"type": "boolean"
}
}
}
},
"matchRecordTypeIds": {
"description": "List of record type ids to match. Boolean OR performed among multiple ids.",
"type": "array",
"items": {
"type": "object",
"properties": {
"genusTypeid": {
"description": "record type id to match",
"type": "string",
"format": "osid-id"
},
"match": {
"description": "true for a positive match, false for a negative match",
"type": "boolean"
}
}
}
},
"matchEffective": {
"description": "Match effective objects where the current date falls within the start and end dates inclusive. true to match any effective, false to match ineffective",
"type": "boolean"
},
"matchStartDate": {
"description": "Matches temporals whose start date falls in between the given dates inclusive.",
"type": "object",
"properties": {
"start": {
"description": "start of date range",
"type": "string",
"format": "date-time"
},
"end": {
"description": "end of date range",
"type": "string",
"format": "date-time"
},
"match": {
"description": "true if a positive match, false for negative match",
"type": "boolean"
}
}
},
"matchEndDate": {
"description": "Matches temporals whose end date falls in between the given dates inclusive.",
"type": "object",
"properties": {
"start": {
"description": "start of date range",
"type": "string",
"format": "date-time"
},
"end": {
"description": "end of date range",
"type": "string",
"format": "date-time"
},
"match": {
"description": "true if a positive match, false for negative match",
"type": "boolean"
}
}
},
"matchOrganizationIds": {
"description": "List of organization Ids for this query to match position that have a related organization.",
"type": "array",
"items": {
"type": "object",
"properties": {
"ruleId": {
"description": "id to match",
"type": "string",
"format": "osid-id"
},
"match": {
"description": "true for a positive match, false for a negative match",
"type": "boolean"
}
}
}
},
"organizationQueries": {
"description": "OrganizationQueries to match the organization. Each query performs a boolean OR.",
"type": "array",
"items": {
"type": "object"
}
},
"matchTitle": {
"description": "List of Title strings to match. Boolean OR performed among multiple titles.",
"type": "array",
"items": {
"type": "object",
"properties": {
"titles": {
"description": "titles to match",
"type": "string"
},
"stringMatchType": {
"description": "the string match type",
"type": "string",
"format": "osid-id"
},
"match": {
"description": "true for a positive match, false for a negative match",
"type": "boolean"
}
}
}
},
"matchAnyTitle": {
"description": "Match titles with any value. true to match Positions with any title, false to match ProgramOfferings with no title",
"type": "boolean"
},
"matchLevelIds": {
"description": "List of Grade Ids for this query to match level.",
"type": "array",
"items": {
"type": "object",
"properties": {
"levelId": {
"description": "id to match",
"type": "string",
"format": "osid-id"
},
"match": {
"description": "true for a positive match, false for a negative match",
"type": "boolean"
}
}
}
},
"levelQueries": {
"description": "grading.GradeQueries to match the Level. Each query performs a boolean OR.",
"type": "array",
"items": {
"type": "object"
}
},
"matchAnyLevel": {
"description": "Match level with any value. true to match Positions with any level, false to match Positions with no level",
"type": "boolean"
},
"matchQualificationIds": {
"description": "List of Objective Ids for this query to match qualifications.",
"type": "array",
"items": {
"type": "object",
"properties": {
"qualificationId": {
"description": "id to match",
"type": "string",
"format": "osid-id"
},
"match": {
"description": "true for a positive match, false for a negative match",
"type": "boolean"
}
}
}
},
"qualificationQueries": {
"description": "learning.ObjectiveQueries to match the Qualifications. Each query performs a boolean OR.",
"type": "array",
"items": {
"type": "object"
}
},
"matchAnyQualification": {
"description": "Match qualifications with any value. true to match Positions with any qualifications, false to match Positions with no qualifications",
"type": "boolean"
},
"matchTargetAppointments": {
"description": "Match Positions with targetAppointments between the given integers inclusive.",
"type": "array",
"items": {
"type": "object",
"properties": {
"min": {
"description": "low number",
"type": "integer"
},
"max": {
"description": "high number",
"type": "integer"
},
"match": {
"description": "true for a positive match, false for a negative match",
"type": "boolean"
}
}
}
},
"matchAnyTargetAppointments": {
"description": "Match targetAppointments with any value. true to match Positions with any target appointments, false to match ProgramOfferings with no target appointments",
"type": "boolean"
},
"matchRequiredCommitment": {
"description": "Match Positions with requiredCommitments between the given integers inclusive.",
"type": "array",
"items": {
"type": "object",
"properties": {
"min": {
"description": "low number",
"type": "integer"
},
"max": {
"description": "high number",
"type": "integer"
},
"match": {
"description": "true for a positive match, false for a negative match",
"type": "boolean"
}
}
}
},
"matchAnyRequiredCommitment": {
"description": "Match requiredCommitments with any value. true to match Positions with any required commitment, false to match ProgramOfferings with no required commitment",
"type": "boolean"
},
"matchLowSalaryRange": {
"description": "Matches lowSalaryRanges in the given range inclusive.",
"type": "array",
"items": {
"type": "object",
"properties": {
"from": {
"description": "a starting range",
"type": "string",
"format": "currency"
},
"to": {
"description": "an ending range",
"type": "string",
"format": "currency"
},
"match": {
"description": "true for a positive match, false for a negative match",
"type": "boolean"
}
}
}
},
"matchAnyLowSalaryRange": {
"description": "Match lowSalaryRanges with any value. true to match Positions with any low salary range, false to match ProgramOfferings with no low salary range",
"type": "boolean"
},
"matchMidpointSalaryRange": {
"description": "Matches midpointSalaryRanges in the given range inclusive.",
"type": "array",
"items": {
"type": "object",
"properties": {
"from": {
"description": "a starting range",
"type": "string",
"format": "currency"
},
"to": {
"description": "an ending range",
"type": "string",
"format": "currency"
},
"match": {
"description": "true for a positive match, false for a negative match",
"type": "boolean"
}
}
}
},
"matchAnyMidpointSalaryRange": {
"description": "Match midpointSalaryRanges with any value. true to match Positions with any midpoint salary range, false to match ProgramOfferings with no midpoint salary range",
"type": "boolean"
},
"matchHighSalaryRange": {
"description": "Matches highSalaryRanges in the given range inclusive.",
"type": "array",
"items": {
"type": "object",
"properties": {
"from": {
"description": "a starting range",
"type": "string",
"format": "currency"
},
"to": {
"description": "an ending range",
"type": "string",
"format": "currency"
},
"match": {
"description": "true for a positive match, false for a negative match",
"type": "boolean"
}
}
}
},
"matchAnyHighSalaryRange": {
"description": "Match highSalaryRanges with any value. true to match Positions with any high salary range, false to match ProgramOfferings with no high salary range",
"type": "boolean"
},
"matchCompensationFrequency": {
"description": "Matches compensationFrequencys in the given range inclusive.",
"type": "array",
"items": {
"type": "object",
"properties": {
"from": {
"description": "start range",
"type": "string",
"format": "duration"
},
"to": {
"description": "end range",
"type": "string",
"format": "duration"
},
"match": {
"description": "true for a positive match, false for a negative match",
"type": "boolean"
}
}
}
},
"matchAnyCompensationFrequency": {
"description": "Match compensationFrequencys with any value. true to match Positions with any compensation frequency, false to match ProgramOfferings with no compensation frequency",
"type": "boolean"
},
"matchExempt": {
"description": "Match boolean value for exempt.",
"type": "object",
"properties": {
"match": {
"description": "true for a positive match, false for a negative match",
"type": "boolean"
}
}
},
"matchBenefitsType": {
"description": "List of Type Ids for this query to match benefitsType.",
"type": "array",
"items": {
"type": "object",
"properties": {
"benefitsTypeType": {
"description": "type to match",
"type": "string",
"format": "osid-type"
},
"match": {
"description": "true for a positive match, false for a negative match",
"type": "boolean"
}
}
}
},
"matchRealmIds": {
"description": "List of Realm Id's to match.",
"type": "array",
"items": {
"type": "object",
"properties": {
"realmId": {
"description": "Realm id to match",
"type": "string",
"format": "osid-id"
},
"match": {
"description": "true for a positive match, false for a negative match",
"type": "boolean"
}
}
}
},
"realmQueries": {
"description": "RealmQueries to match Realm. Each query performs a boolean OR.",
"type": "array",
"items": {
"type": "object"
}
}
}
}
Example:
{
"matchDisplayNames": [
{
"displayName": "string to exclude",
"match": false
}
]
}
HTTP status code 200
Body
Media type: application/json
Type: any
Example:
[
{
"id": "personnel.Position:7512@base.url",
"uri": "http://base.url/open/campusapi/personnel/position/personnel.Position%3A7512%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:91@base.url",
"title": "This is the Title",
"levelId": "grading.Grade:105@base.url",
"qualificationIds": [ "learning.Objective:3110@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:4905@base.url"
},
{
"...": "..."
}
]
HTTP status code 403
Body
Media type: application/json
Type: any
Example:
{"message": "Permission denied" }
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": "The target number of Appointments desired for this Position.",
"type": "integer",
"minimum": 1,
"maximum": null,
"units": "",
"default": null,
"enum": [],
"elementId": "personnel.Position:targetAppointmenst@dxtera.org",
"existingValue": 42,
"elementLabel": "Target Appointmenst",
"instructions": "Enter the target appointmenst of this position.",
"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 particular Position given its id.
Update a particular Position given its id.
Delete a particular Position given its id.
get /positions/{positionId}
Get a particular Position given its id.
URI Parameters
- positionId: required(string)
Query Parameters
- expand: (string)
Expand object or type for named attribute: "genusType", "recordType", "level", "qualifications", "benefitsType", "organization", or "all" to expand all referenced objects or types. This parameter can be repeated to expand multiples.
Example:
all
HTTP status code 200
Body
Media type: application/json
Type: any
Example:
{
"id": "personnel.Position:7512@base.url",
"uri": "http://base.url/open/campusapi/personnel/position/personnel.Position%3A7512%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:91@base.url",
"title": "This is the Title",
"levelId": "grading.Grade:105@base.url",
"qualificationIds": [ "learning.Objective:3110@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:4905@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 particular Position given its id.
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"
}
},
"targetAppointments": {
"description": "The target number of Appointments desired for this Position.",
"type": "integer",
"minimum": 1
},
"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:9372@base.url",
"qualificationIds": [ "learning.Objective:9034@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:4629@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 particular Position given its id.
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": "The target number of Appointments desired for this Position.",
"type": "integer",
"minimum": 1,
"maximum": null,
"units": "",
"default": null,
"enum": [],
"elementId": "personnel.Position:targetAppointmenst@dxtera.org",
"existingValue": 42,
"elementLabel": "Target Appointmenst",
"instructions": "Enter the target appointmenst of this position.",
"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
- expand: (string)
Expand object or type for named attribute: "genusType", "recordType", "endReason", "person", "position", or "all" to expand all referenced objects or types. This parameter can be repeated to expand multiples.
Example:
all
- genusTypeId: (string)
The id string to match a genusType
Example:
type.Type%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:9521@base.url",
"uri": "http://base.url/open/campusapi/personnel/appointment/personnel.Appointment%3A9521%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:9521@base.url",
"personId": "personnel.Person:5043@base.url",
"positionId": "personnel.Position:7415@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:7278@base.url",
"commitment": 19,
"title": "This is the Title",
"salary": "USD+42.00"
}
Query the collection of Appointments in a system, federation of systems, or in a default realm by posting a Query object.
Submit a query using a AppointmentQuery object.
post /appointments/appointment-query
Submit a query using a AppointmentQuery object.
Query Parameters
- offset: (integer - default: 0)
Skip over a number of elements by specifying an offset value for the query
Example:
20
- limit: (integer - default: 10)
Limit the number of elements on the response
Example:
80
- expand: (string)
Expand object or type for named attribute: "genusType", "recordType", "endReason", "person", "position", or "all" to expand all referenced objects or types. This parameter can be repeated to expand multiples.
Example:
all
Body
Media type: application/json
Type: json
Content:
{
"$schema": "http://json-schema.org/draft-04/schema#",
"title": "AppointmentQuery",
"type": "object",
"properties": {
"matchIds": {
"description": "List of Ids to match. Boolean OR performed among multiple Ids.",
"type": "array",
"items": {
"type": "object",
"properties": {
"id": {
"description": "id to match",
"type": "string",
"format": "osid-id"
},
"match": {
"description": "true for a positive match, false for a negative match",
"type": "boolean"
}
}
}
},
"matchKeywords": {
"description": "List keywords to match. Multiple keywords can be added to perform a boolean OR among them. A keyword may be applied to any of the elements defined in this object such as the display name, description or any attribute defined in or implemented by this object.",
"type": "array",
"items": {
"type": "object",
"properties": {
"keyword": {
"description": "keyword to match",
"type": "string"
},
"stringMatchType": {
"description": "the string match type",
"type": "string",
"format": "osid-id"
},
"match": {
"description": "true for a positive match, false for a negative match",
"type": "boolean"
}
}
}
},
"matchDisplayNames": {
"description": "List of displayName strings to match. Boolean OR performed among multiple displayNames.",
"type": "array",
"items": {
"type": "object",
"properties": {
"displayName": {
"description": "displayName to match",
"type": "string"
},
"stringMatchType": {
"description": "the string match type",
"type": "string",
"format": "osid-id"
},
"match": {
"description": "true for a positive match, false for a negative match",
"type": "boolean"
}
}
}
},
"matchDescriptions": {
"description": "List of discription strings to match. Boolean OR performed among multiple descriptions.",
"type": "array",
"items": {
"type": "object",
"properties": {
"description": {
"description": "description to match",
"type": "string"
},
"stringMatchType": {
"description": "the string match type",
"type": "string",
"format": "osid-id"
},
"match": {
"description": "true for a positive match, false for a negative match",
"type": "boolean"
}
}
}
},
"matchGenusTypeIds": {
"description": "List of genus type ids to match. Boolean OR performed among multiple ids.",
"type": "array",
"items": {
"type": "object",
"properties": {
"genusTypeid": {
"description": "genus type id to match",
"type": "string",
"format": "osid-id"
},
"match": {
"description": "true for a positive match, false for a negative match",
"type": "boolean"
}
}
}
},
"matchRecordTypeIds": {
"description": "List of record type ids to match. Boolean OR performed among multiple ids.",
"type": "array",
"items": {
"type": "object",
"properties": {
"genusTypeid": {
"description": "record type id to match",
"type": "string",
"format": "osid-id"
},
"match": {
"description": "true for a positive match, false for a negative match",
"type": "boolean"
}
}
}
},
"matchEffective": {
"description": "Match effective objects where the current date falls within the start and end dates inclusive. true to match any effective, false to match ineffective",
"type": "boolean"
},
"matchStartDate": {
"description": "Matches temporals whose start date falls in between the given dates inclusive.",
"type": "object",
"properties": {
"start": {
"description": "start of date range",
"type": "string",
"format": "date-time"
},
"end": {
"description": "end of date range",
"type": "string",
"format": "date-time"
},
"match": {
"description": "true if a positive match, false for negative match",
"type": "boolean"
}
}
},
"matchEndDate": {
"description": "Matches temporals whose end date falls in between the given dates inclusive.",
"type": "object",
"properties": {
"start": {
"description": "start of date range",
"type": "string",
"format": "date-time"
},
"end": {
"description": "end of date range",
"type": "string",
"format": "date-time"
},
"match": {
"description": "true if a positive match, false for negative match",
"type": "boolean"
}
}
},
"matchEndReasonIds": {
"description": "List of end reason Id's to match.",
"type": "array",
"items": {
"type": "object",
"properties": {
"stateId": {
"description": "id to match",
"type": "string",
"format": "osid-id"
},
"match": {
"description": "true for a positive match, false for a negative match",
"type": "boolean"
}
}
}
},
"endReasonQueries": {
"description": "process.StateQueries to match end reason state. Each query performs a boolean OR.",
"type": "array",
"items": {
"type": "object"
}
},
"matchAnyEndReason": {
"description": "Match end reasons with any value. true to match Appointments with any end reason, false to match Appointments with no end reason",
"type": "boolean"
},
"matchPersonIds": {
"description": "List of person Ids for this query to match appointment that have a related person.",
"type": "array",
"items": {
"type": "object",
"properties": {
"ruleId": {
"description": "id to match",
"type": "string",
"format": "osid-id"
},
"match": {
"description": "true for a positive match, false for a negative match",
"type": "boolean"
}
}
}
},
"personQueries": {
"description": "PersonQueries to match the person. Each query performs a boolean OR.",
"type": "array",
"items": {
"type": "object"
}
},
"matchPositionIds": {
"description": "List of position Ids for this query to match appointment that have a related position.",
"type": "array",
"items": {
"type": "object",
"properties": {
"ruleId": {
"description": "id to match",
"type": "string",
"format": "osid-id"
},
"match": {
"description": "true for a positive match, false for a negative match",
"type": "boolean"
}
}
}
},
"positionQueries": {
"description": "PositionQueries to match the position. Each query performs a boolean OR.",
"type": "array",
"items": {
"type": "object"
}
},
"matchCommitment": {
"description": "Match Appointments with commitments between the given integers inclusive.",
"type": "array",
"items": {
"type": "object",
"properties": {
"min": {
"description": "low number",
"type": "integer"
},
"max": {
"description": "high number",
"type": "integer"
},
"match": {
"description": "true for a positive match, false for a negative match",
"type": "boolean"
}
}
}
},
"matchAnyCommitment": {
"description": "Match commitments with any value. true to match Appointments with any commitment, false to match ProgramOfferings with no commitment",
"type": "boolean"
},
"matchTitle": {
"description": "List of Title strings to match. Boolean OR performed among multiple titles.",
"type": "array",
"items": {
"type": "object",
"properties": {
"titles": {
"description": "titles to match",
"type": "string"
},
"stringMatchType": {
"description": "the string match type",
"type": "string",
"format": "osid-id"
},
"match": {
"description": "true for a positive match, false for a negative match",
"type": "boolean"
}
}
}
},
"matchAnyTitle": {
"description": "Match titles with any value. true to match Appointments with any title, false to match ProgramOfferings with no title",
"type": "boolean"
},
"matchSalary": {
"description": "Matches salarys in the given range inclusive.",
"type": "array",
"items": {
"type": "object",
"properties": {
"from": {
"description": "a starting range",
"type": "string",
"format": "currency"
},
"to": {
"description": "an ending range",
"type": "string",
"format": "currency"
},
"match": {
"description": "true for a positive match, false for a negative match",
"type": "boolean"
}
}
}
},
"matchAnySalary": {
"description": "Match salarys with any value. true to match Appointments with any salary, false to match ProgramOfferings with no salary",
"type": "boolean"
},
"matchRealmIds": {
"description": "List of Realm Id's to match.",
"type": "array",
"items": {
"type": "object",
"properties": {
"realmId": {
"description": "Realm id to match",
"type": "string",
"format": "osid-id"
},
"match": {
"description": "true for a positive match, false for a negative match",
"type": "boolean"
}
}
}
},
"realmQueries": {
"description": "RealmQueries to match Realm. Each query performs a boolean OR.",
"type": "array",
"items": {
"type": "object"
}
}
}
}
Example:
{
"matchDisplayNames": [
{
"displayName": "string to exclude",
"match": false
}
]
}
HTTP status code 200
Body
Media type: application/json
Type: any
Example:
[
{
"id": "personnel.Appointment:9521@base.url",
"uri": "http://base.url/open/campusapi/personnel/appointment/personnel.Appointment%3A9521%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:9521@base.url",
"personId": "personnel.Person:5043@base.url",
"positionId": "personnel.Position:7415@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" }
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 particular Appointment given its id.
Update a particular Appointment given its id.
Delete a particular Appointment given its id.
get /appointments/{appointmentId}
Get a particular Appointment given its id.
URI Parameters
- appointmentId: required(string)
Query Parameters
- expand: (string)
Expand object or type for named attribute: "genusType", "recordType", "endReason", "person", "position", or "all" to expand all referenced objects or types. This parameter can be repeated to expand multiples.
Example:
all
HTTP status code 200
Body
Media type: application/json
Type: any
Example:
{
"id": "personnel.Appointment:9521@base.url",
"uri": "http://base.url/open/campusapi/personnel/appointment/personnel.Appointment%3A9521%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:9521@base.url",
"personId": "personnel.Person:5043@base.url",
"positionId": "personnel.Position:7415@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 particular Appointment given its id.
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:7278@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 particular Appointment given its id.
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
- expand: (string)
Expand object or type for named attribute: "genusType", "recordType", "provider", "branding", or "all" to expand all referenced objects or types. This parameter can be repeated to expand multiples.
Example:
all
- genusTypeId: (string)
The id string to match a genusType
Example:
type.Type%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:158@base.url",
"uri": "http://base.url/open/campusapi/personnel/realm/personnel.Realm%3A158%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"
}
Query the collection of Realms in a system, federation of systems, or in a default realm by posting a Query object.
Submit a query using a RealmQuery object.
post /realms/realm-query
Submit a query using a RealmQuery object.
Query Parameters
- offset: (integer - default: 0)
Skip over a number of elements by specifying an offset value for the query
Example:
20
- limit: (integer - default: 10)
Limit the number of elements on the response
Example:
80
- expand: (string)
Expand object or type for named attribute: "genusType", "recordType", or "all" to expand all referenced objects or types. This parameter can be repeated to expand multiples.
Example:
all
Body
Media type: application/json
Type: json
Content:
{
"$schema": "http://json-schema.org/draft-04/schema#",
"title": "RealmQuery",
"type": "object",
"properties": {
"matchIds": {
"description": "List of Ids to match. Boolean OR performed among multiple Ids.",
"type": "array",
"items": {
"type": "object",
"properties": {
"id": {
"description": "id to match",
"type": "string",
"format": "osid-id"
},
"match": {
"description": "true for a positive match, false for a negative match",
"type": "boolean"
}
}
}
},
"matchKeywords": {
"description": "List keywords to match. Multiple keywords can be added to perform a boolean OR among them. A keyword may be applied to any of the elements defined in this object such as the display name, description or any attribute defined in or implemented by this object.",
"type": "array",
"items": {
"type": "object",
"properties": {
"keyword": {
"description": "keyword to match",
"type": "string"
},
"stringMatchType": {
"description": "the string match type",
"type": "string",
"format": "osid-id"
},
"match": {
"description": "true for a positive match, false for a negative match",
"type": "boolean"
}
}
}
},
"matchDisplayNames": {
"description": "List of displayName strings to match. Boolean OR performed among multiple displayNames.",
"type": "array",
"items": {
"type": "object",
"properties": {
"displayName": {
"description": "displayName to match",
"type": "string"
},
"stringMatchType": {
"description": "the string match type",
"type": "string",
"format": "osid-id"
},
"match": {
"description": "true for a positive match, false for a negative match",
"type": "boolean"
}
}
}
},
"matchDescriptions": {
"description": "List of discription strings to match. Boolean OR performed among multiple descriptions.",
"type": "array",
"items": {
"type": "object",
"properties": {
"description": {
"description": "description to match",
"type": "string"
},
"stringMatchType": {
"description": "the string match type",
"type": "string",
"format": "osid-id"
},
"match": {
"description": "true for a positive match, false for a negative match",
"type": "boolean"
}
}
}
},
"matchGenusTypeIds": {
"description": "List of genus type ids to match. Boolean OR performed among multiple ids.",
"type": "array",
"items": {
"type": "object",
"properties": {
"genusTypeid": {
"description": "genus type id to match",
"type": "string",
"format": "osid-id"
},
"match": {
"description": "true for a positive match, false for a negative match",
"type": "boolean"
}
}
}
},
"matchRecordTypeIds": {
"description": "List of record type ids to match. Boolean OR performed among multiple ids.",
"type": "array",
"items": {
"type": "object",
"properties": {
"genusTypeid": {
"description": "record type id to match",
"type": "string",
"format": "osid-id"
},
"match": {
"description": "true for a positive match, false for a negative match",
"type": "boolean"
}
}
}
},
"matchProviderIds": {
"description": "List of provider Ids to match.",
"type": "array",
"items": {
"type": "object",
"properties": {
"stateId": {
"description": "id to match",
"type": "string",
"format": "osid-id"
},
"match": {
"description": "true for a positive match, false for a negative match",
"type": "boolean"
}
}
}
},
"providerQueries": {
"description": "resource.ResourceQuery for provider. Each query performs a boolean OR.",
"type": "array",
"items": {
"type": "object"
},
"matchAnyProvider": {
"description": "Match providers with any value. true to match Realm with any provider, false to match Realm with no provider",
"type": "boolean"
}
},
"matchBrandingIds": {
"description": "List of branding asset Ids to match.",
"type": "array",
"items": {
"type": "object",
"properties": {
"stateId": {
"description": "id to match",
"type": "string",
"format": "osid-id"
},
"match": {
"description": "true for a positive match, false for a negative match",
"type": "boolean"
}
}
}
},
"brandingQueries": {
"description": "repository.AssetQuery for branding. Each query performs a boolean OR.",
"type": "array",
"items": {
"type": "object"
}
},
"matchAnyBranding": {
"description": "Match brandingss with any value. true to match Realm with any branding, false to match Realm with no branding",
"type": "boolean"
},
"matchlicenses": {
"description": "List of license strings to match. Boolean OR performed among multiple descriptions.",
"type": "array",
"items": {
"type": "object",
"properties": {
"license": {
"description": "license to match",
"type": "string"
},
"stringMatchType": {
"description": "the string match type",
"type": "string",
"format": "osid-id"
},
"match": {
"description": "true for a positive match, false for a negative match",
"type": "boolean"
}
}
}
},
"matchRealmIds": {
"description": "List of Realm Id's to match.",
"type": "array",
"items": {
"type": "object",
"properties": {
"realmId": {
"description": "Realm id to match",
"type": "string",
"format": "osid-id"
},
"match": {
"description": "true for a positive match, false for a negative match",
"type": "boolean"
}
}
}
},
"realmQueries": {
"description": "RealmQueries to match Realm. Each query performs a boolean OR.",
"type": "array",
"items": {
"type": "object"
}
}
}
}
Example:
{
"matchDisplayNames": [
{
"displayName": "string to exclude",
"match": false
}
]
}
HTTP status code 200
Body
Media type: application/json
Type: any
Example:
[
{
"id": "personnel.Realm:158@base.url",
"uri": "http://base.url/open/campusapi/personnel/realm/personnel.Realm%3A158%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 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:158@base.url",
"uri": "http://base.url/open/campusapi/personnel/realm/personnel.Realm%3A158%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 particular Realm given its id.
Update a particular Realm given its id.
Delete a particular Realm given its id.
get /realms/{realmId}
Get a particular Realm given its id.
URI Parameters
- realmId: required(string)
HTTP status code 200
Body
Media type: application/json
Type: any
Example:
{
"id": "personnel.Realm:158@base.url",
"uri": "http://base.url/open/campusapi/personnel/realm/personnel.Realm%3A158%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 particular Realm given its id.
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 particular Realm given its id.
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:158@base.url",
"uri": "http://base.url/open/campusapi/personnel/realm/personnel.Realm%3A158%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:158@base.url",
"uri": "http://base.url/open/campusapi/personnel/realm/personnel.Realm%3A158%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)
Query Parameters
- offset: (integer - default: 0)
Skip over a number of elements by specifying an offset value for the query
Example:
20
- limit: (integer - default: 10)
Limit the number of elements on the response
Example:
80
- expand: (string)
Expand object or type for named attribute: "genusType", "recordType", or "all" to expand all referenced objects or types. This parameter can be repeated to expand multiples.
Example:
all
- 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
HTTP status code 200
Body
Media type: application/json
Type: any
Example:
[
{
"id": "personnel.Person:1252@base.url",
"uri": "http://base.url/open/campusapi/personnel/person/personnel.Person%3A1252%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)
Query Parameters
- offset: (integer - default: 0)
Skip over a number of elements by specifying an offset value for the query
Example:
20
- limit: (integer - default: 10)
Limit the number of elements on the response
Example:
80
- expand: (string)
Expand object or type for named attribute: "genusType", "recordType", or "all" to expand all referenced objects or types. This parameter can be repeated to expand multiples.
Example:
all
- 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
HTTP status code 200
Body
Media type: application/json
Type: any
Example:
[
{
"id": "personnel.Organization:9579@base.url",
"uri": "http://base.url/open/campusapi/personnel/organization/personnel.Organization%3A9579%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)
Query Parameters
- offset: (integer - default: 0)
Skip over a number of elements by specifying an offset value for the query
Example:
20
- limit: (integer - default: 10)
Limit the number of elements on the response
Example:
80
- expand: (string)
Expand object or type for named attribute: "genusType", "recordType", "level", "qualifications", "benefitsType", "organization", or "all" to expand all referenced objects or types. This parameter can be repeated to expand multiples.
Example:
all
- genusTypeId: (string)
The id string to match a genusType
Example:
type.Type%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
HTTP status code 200
Body
Media type: application/json
Type: any
Example:
[
{
"id": "personnel.Position:7512@base.url",
"uri": "http://base.url/open/campusapi/personnel/position/personnel.Position%3A7512%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:91@base.url",
"title": "This is the Title",
"levelId": "grading.Grade:105@base.url",
"qualificationIds": [ "learning.Objective:3110@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:4905@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)
Query Parameters
- offset: (integer - default: 0)
Skip over a number of elements by specifying an offset value for the query
Example:
20
- limit: (integer - default: 10)
Limit the number of elements on the response
Example:
80
- expand: (string)
Expand object or type for named attribute: "genusType", "recordType", "endReason", "person", "position", or "all" to expand all referenced objects or types. This parameter can be repeated to expand multiples.
Example:
all
- genusTypeId: (string)
The id string to match a genusType
Example:
type.Type%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
HTTP status code 200
Body
Media type: application/json
Type: any
Example:
[
{
"id": "personnel.Appointment:9521@base.url",
"uri": "http://base.url/open/campusapi/personnel/appointment/personnel.Appointment%3A9521%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:9521@base.url",
"personId": "personnel.Person:5043@base.url",
"positionId": "personnel.Position:7415@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" }