CampusAPI Resource Services API documentation version 1.1.0
Based on OSID version 3.0.0
https://base.url
Overview
Resources may represent people, places or a set or arbitrary entities that are used throughout other CampusAPI services as references to indirect objects. Resource genus Types may define extra data to define an employee, organizational unit or an inventory item.
When referenced in another service area, the abstraction level of this service provides a consistent interface with which to access and manage object references not directly pertinent to the service in play. For example, a Repository service may reference Resources as authors or a Course service may reference Resources for students and instructors. Each of these services may orchestrate a Resource to provide management of the set of referenced resources.
A Resource genus Type may be used to provide a label the kind of resource. This service offers the flexibility that the producer of a film may be a person, a production company, or a fire hydrant. While genus Types may be used to constrain the kinds of Resources that may be related to various objects if necessary, Consumers are expected to simply use the Resource as a reference. If an consumer wishes to provide a mechanism for updating a Resource referenced, it should use an orchestrated Resource service.
This package includes the following entities:
Resources
A Resource represents an arbitrary entity. Resources are used to define an object to accompany an OSID Id used in other OSIDs. A resource may be used to represent a meeting room in the Scheduling service, or a student in the Course service.
A Resource may also represent a group or organization. A service provider may present such a group in an opaque manner through a single resource definition, or the provider may expose the resource collection for examination or manipulation. If such a resource collection is visible, isGroup is true and can be used in the group functions available in this service area.
| Field | Description | Type |
|---|---|---|
| id(read‑only) | The unique id of this resource, provided by system. | string(osid‑id) |
| uri(read‑only) | The uri of this resource, provided by system. | string(uri) |
| displayName | The name of this resource for display. | string |
| description | The description of this resource. | string |
| genusTypeId (read‑only) | Id of the immutable type of this resource. Default type set by system unless specified in query parameter. | string(osid‑id) |
| recordTypeIds (read‑only) | Type Ids of record types available on this resource. Record types define special attributes available on an object to support specific applications or classes of applications and are documented elsewhere. | string(osid‑id)[] |
| group | Tests if this resource is a group. | boolean |
| avatarId | The asset. References a repository.Asset object | string(osid‑id) |
ResourceRelationships
For kicks, Resources may have arbitrrary relationships to other Resources using the ResourceRelationship interface. Resource relationships may also be used to provide a place to describe in more detail, or hang data, on a member to group relationship.
| Field | Description | Type |
|---|---|---|
| id(read‑only) | The unique id of this resource relationship, provided by system. | string(osid‑id) |
| uri(read‑only) | The uri of this resource relationship, provided by system. | string(uri) |
| displayName | The name of this resource relationship for display. | string |
| description | The description of this resource relationship. | string |
| genusTypeId (read‑only) | Id of the immutable type of this resource relationship. Default type set by system unless specified in query parameter. | string(osid‑id) |
| recordTypeIds (read‑only) | Type Ids of record types available on this resource relationship. Record types define special attributes available on an object to support specific applications or classes of applications and are documented elsewhere. | string(osid‑id)[] |
| startDate | The starting date of this resource relationship. | string(date‑time) |
| endDate | The ending date of this resource relationship. | string(date‑time) |
| endReasonId | The reason this resource relationship ended. References a process.State object. | string(osid‑id) |
| sourceResourceId (read‑only) | The source resource associated with this resource relationship. References a resource.Resource object. | string(osid‑id) |
| destinationResourceId (read‑only) | The destination resource associated with this resource relationship. References a resource.Resource object. | string(osid‑id) |
Bins
Resources may be mapped into hierarchial Bins for the purpose of cataloging or federation.
| Field | Description | Type |
|---|---|---|
| id(read‑only) | The unique id of this bin, provided by system. | string(osid‑id) |
| uri(read‑only) | The uri of this bin, provided by system. | string(uri) |
| displayName | The name of this bin for display. | string |
| description | The description of this bin. | string |
| genusTypeId (read‑only) | Id of the immutable type of this bin. Default type set by system unless specified in query parameter. | string(osid‑id) |
| recordTypeIds (read‑only) | Type Ids of record types available on this bin. 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 bin. References a resource.Resource object. | string(osid‑id) |
| brandingIds | The branding of this bin. References repository.Asset objects. | string(osid‑id)[] |
| license | The licensing that applies to this bin. | string |
License
CampusAPI REST Definitions © 2025 by DXtera Institute - licensed under CC BY-ND 4.0 Based on the Open Service Interface Definitions: http://osid.org
/resource/resources
Collection of Resources in a system, federation of systems, or in a default Bin.
Get all Resources in the system or default Bin.
Create a new Resource in the default Bin.
get /resource/resources
Get all Resources in the system or default Bin.
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", "avatar", or "all" to expand all referenced objects or types. This parameter can be repeated to expand multiples.
Example:
all - keyword: (string)
The match string for keyword query
Example:
Hello%20World - displayName: (string)
The match string for displayName query
Example:
Hello%20World - description: (string)
The match string for description query
Example:
Hello%20World - genusTypeId: (string)
The id string to match a genusType
Example:
type.Type%3AexampleResourceType%40dxtera.org - parentGenusTypeId: (string)
The id string to match a parent genusType
Example:
type.Type%3AparentTypeExampleResourceType%40dxtera.org - recordTypeId: (string)
The id string to match a recordType
Example:
type.Type%3AexampleResourceType%40campusapi.org - binId: (string)
The id string to match a bin
Example:
resource.Bin%3A8374%40base.url
HTTP status code 200
Headers
- x-total-count: required(number)
The total count of records currently available
Example:
152803
Body
Media type: application/json
Type: any
Example:
[
{
"id": "resource.Resource:8284@base.url",
"uri": "http://base.url/open/campusapi/resource/resource/resource.Resource%3A8284%40base.url",
"displayName": "Display Name of this Resource",
"description": "The description of this Resource",
"genusTypeId": "type.Type:defaultResourceType@base.url",
"recordTypeIds": [ "type.Type:exampleResourceRecordType@campusapi.org", "..."],
"group": true,
"avatarId": "repository.Asset:1535@base.url"
},
{
"...": "..."
}
]
HTTP status code 403
Body
Media type: application/json
Type: any
Example:
{"message": "Permission denied" }
post /resource/resources
Create a new Resource in the default Bin.
Query Parameters
- binId: (string)
specify in which bin to create this resource
Example:
resource.Bin%3A8374%40base.url
Body
Media type: application/json
Type: json
Content:
{
"$schema": "http://json-schema.org/draft-04/schema#",
"title": "Resource",
"type": "object",
"properties": {
"id": {
"description": "The unique id of this resource. This id is provided solely by the underlying implementation and is not set on POST and cannot be changed. An id included on POST will result in an error.",
"type": "string",
"format": "osid-id",
"readOnly": true
},
"uri": {
"description": "The uri of this resource. This URI is provided solely by the underlying implementation and is not set on POST and cannot be changed. A uri included on POST will result in an error.",
"type": "string",
"format": "uri",
"readOnly": true
},
"displayName": {
"description": "The name of this resource for display.",
"type": "string"
},
"description": {
"description": "The description of this resource.",
"type": "string"
},
"genusTypeId": {
"description": "Id of the immutable type of this resource. 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 resource. 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
},
"group": {
"description": "Tests if this resource is a group.",
"type": "boolean"
},
"avatarId": {
"description": "The asset.",
"type": "string",
"format": "osid-id"
}
}
}Example:
{
"displayName": "Display Name of this Resource",
"description": "The description of this Resource",
"group": true,
"avatarId": "repository.Asset:5143@base.url"
}
Query the collection of Resources in a system, federation of systems, or in a default bin by posting a Query object.
Submit a query using a ResourceQuery object.
post /resource/resources/resource-query
Submit a query using a ResourceQuery 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", "avatar", 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": "ResourceQuery",
"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"
}
}
}
},
"matchSubjectIds": {
"description": "List of Ids to match an object with a relationships to the given subjects.",
"type": "array",
"items": {
"type": "object",
"properties": {
"sponsorId": {
"description": "id to match",
"type": "string",
"format": "osid-id"
},
"match": {
"description": "true for a positive match, false for a negative match",
"type": "boolean"
}
}
}
},
"matchJournalEntryIds": {
"description": "List of Ids match objects that have the given journal entries.",
"type": "array",
"items": {
"type": "object",
"properties": {
"sponsorId": {
"description": "id to match",
"type": "string",
"format": "osid-id"
},
"match": {
"description": "true for a positive match, false for a negative match",
"type": "boolean"
}
}
}
},
"journalEntryQueries": {
"description": "journaling.JournalEntryQueries to match journaling information. Each query performs a boolean OR.",
"type": "array",
"items": {
"type": "journal-entry-query"
}
},
"matchGroup": {
"description": "Match boolean value for group.",
"type": "object",
"properties": {
"match": {
"description": "true for a positive match, false for a negative match",
"type": "boolean"
}
}
},
"matchAvatarIds": {
"description": "List of Asset Ids for this query to match avatar.",
"type": "array",
"items": {
"type": "object",
"properties": {
"avatarId": {
"description": "id to match",
"type": "string",
"format": "osid-id"
},
"match": {
"description": "true for a positive match, false for a negative match",
"type": "boolean"
}
}
}
},
"avatarQueries": {
"description": "repository.AssetQueries to match the Avatar. Each query performs a boolean OR.",
"type": "array",
"items": {
"type": "asset-query"
}
},
"matchAnyAvatar": {
"description": "Match avatar with any value. true to match Resources with any avatar, false to match Resources with no avatar",
"type": "boolean"
},
"matchBinIds": {
"description": "List of Bin Id's to match.",
"type": "array",
"items": {
"type": "object",
"properties": {
"binId": {
"description": "Bin id to match",
"type": "string",
"format": "osid-id"
},
"match": {
"description": "true for a positive match, false for a negative match",
"type": "boolean"
}
}
}
},
"binQueries": {
"description": "BinQueries to match Bin. Each query performs a boolean OR.",
"type": "array",
"items": {
"type": "bin-query"
}
}
}
}Example:
{
"matchDisplayNames": [
{
"displayName": "string to exclude",
"match": false
}
]
}HTTP status code 200
Body
Media type: application/json
Type: any
Example:
[
{
"id": "resource.Resource:8284@base.url",
"uri": "http://base.url/open/campusapi/resource/resource/resource.Resource%3A8284%40base.url",
"displayName": "Display Name of this Resource",
"description": "The description of this Resource",
"genusTypeId": "type.Type:defaultResourceType@base.url",
"recordTypeIds": [ "type.Type:exampleResourceRecordType@campusapi.org", "..."],
"group": true,
"avatarId": "repository.Asset:1535@base.url"
},
{
"...": "..."
}
]
HTTP status code 403
Body
Media type: application/json
Type: any
Example:
{"message": "Permission denied" }
Create multiple new ResourceBatch in the default Bin.
post /resource/resources/resource-batch
Create multiple new ResourceBatch in the default Bin.
Query Parameters
- binId: (string)
specify in which bin to create this resource
Example:
resource.Bin%3A8374%40base.url
Body
Media type: application/json
Type: json
Content:
{
"$schema": "http://json-schema.org/draft-04/schema#",
"title": "ResourceBatch",
"type": "array",
"Items": {
"type": "resource"
}
}Example:
[
{
"displayName": "Display Name of this Resource",
"description": "The description of this Resource",
"group": true,
"avatarId": "repository.Asset:2893@base.url"
},
{
"...": "..."
}
]
Entity representing a Resource form metadata.
Get form metadata for creating a new Resource.
get /resource/resources/metadata
Get form metadata for creating a new Resource.
Query Parameters
- genusType: (string)
specify a particular resource type to create
Example:
type.Type%3AexampleResourceType%40dxtera.org - recordType: (array of )
specify support for one or more resource record types
Example:
[ "type.Type%3AexampleResourceRecordType%40campusapi.org", "..." ] - binId: (string)
specify in which bin to create this resource
Example:
resource.Bin%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": "Resource",
"type": "object",
"properties": {
"id": {
"description": "The unique id of this resource, provided by system.",
"type": "string",
"format": "osid-id",
"readOnly": true
},
"uri": {
"description": "The uri of this resource, provided by system.",
"type": "string",
"format": "uri",
"readOnly": true
},
"displayName": {
"description": "The name of this resource for display.",
"type": "string",
"read-only": false,
"minLength": 1,
"maxLength": 128,
"pattern": "",
"default": "",
"enum": [],
"elementId": "Resource.Resource:displayName@base.url",
"existingValue": "The Existing Name",
"elementLabel": "Name",
"instructions": "Enter a name for this resource",
"linked": false
},
"description": {
"description": "The description of this resource.",
"type": "string",
"read-only": false,
"minLength": 0,
"maxLength": 128,
"pattern": "",
"default": "",
"enum": [],
"elementId": "Resource.Resource:displayName@demo.base.url",
"existingValue": "The Existing Description",
"elementLabel": "Description",
"instructions": "Enter a description for this resource",
"linked": false
},
"genusTypeId": {
"description": "Id of the immutable type of this resource. 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 resource. 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
},
"group": {
"description": "Tests if this resource is a group.",
"type": "boolean",
"elementId": "resource.Resource:group@dxtera.org",
"existingValue": false,
"elementLabel": "Group",
"instructions": "Enter true or false.",
"linked": false
},
"avatarId": {
"description": "The asset.",
"type": "string",
"type": "string",
"format": "osid-id",
"read-only": false,
"pattern": "",
"default": "",
"enum": [],
"elementId": "resource.Resource:avatar@dxtera.org",
"existingValue": null,
"elementLabel": "Avatar",
"instructions": "Enter the Id of the avatar for this resource.",
"linked": false
}
}
}
HTTP status code 403
Body
Media type: application/json
Type: any
Example:
{"message": "Permission denied" }
Entity representing a Resource
Get a particular Resource given its id.
Update a particular Resource given its id.
Delete a particular Resource given its id.
get /resource/resources/{resourceId}
Get a particular Resource given its id.
URI Parameters
- resourceId: required(string)
Query Parameters
- expand: (string)
Expand object or type for named attribute: "genusType", "recordType", "avatar", 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": "resource.Resource:8284@base.url",
"uri": "http://base.url/open/campusapi/resource/resource/resource.Resource%3A8284%40base.url",
"displayName": "Display Name of this Resource",
"description": "The description of this Resource",
"genusTypeId": "type.Type:defaultResourceType@base.url",
"recordTypeIds": [ "type.Type:exampleResourceRecordType@campusapi.org", "..."],
"group": true,
"avatarId": "repository.Asset:1535@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": "Resource not found" }
put /resource/resources/{resourceId}
Update a particular Resource given its id.
URI Parameters
- resourceId: required(string)
Body
Media type: application/json
Type: json
Content:
{
"$schema": "http://json-schema.org/draft-04/schema#",
"title": "ResourceItem",
"type": "object",
"properties": {
"id": {
"description": "The unique id of this resource. This id is provided solely by the underlying implementation and is not set on POST and cannot be changed. An id included on POST will result in an error.",
"type": "string",
"format": "osid-id",
"readOnly": true
},
"uri": {
"description": "The uri of this resource. This URI is provided solely by the underlying implementation and is not set on POST and cannot be changed. A uri included on POST will result in an error.",
"type": "string",
"format": "uri",
"readOnly": true
},
"displayName": {
"description": "The name of this resource for display.",
"type": "string"
},
"description": {
"description": "The description of this resource.",
"type": "string"
},
"genusTypeId": {
"description": "Id of the immutable type of this resource. 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 resource. 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
},
"group": {
"description": "Tests if this resource is a group.",
"type": "boolean"
},
"avatarId": {
"description": "The asset.",
"type": "string",
"format": "osid-id"
}
}
}Example:
{
"displayName": "Display Name of this Resource",
"description": "The description of this Resource",
"group": true,
"avatarId": "repository.Asset:2459@base.url"
}
HTTP status code 200
Body
Media type: application/json
Type: any
Example:
{ "message": "The Resource 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": "Resource not found" }
delete /resource/resources/{resourceId}
Delete a particular Resource given its id.
URI Parameters
- resourceId: required(string)
HTTP status code 200
Body
Media type: application/json
Type: any
Example:
{ "message": "The Resource 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": "Resource not found" }
Entity representing a Resource form metadata for update
Get form metadata for updating an existing Resource.
get /resource/resources/{resourceId}/metadata
Get form metadata for updating an existing Resource.
URI Parameters
- resourceId: required(string)
HTTP status code 200
Body
Media type: application/json
Type: any
Example:
{
"$schema": "http://json-schema.org/draft/2019-9/schema#",
"title": "Resource",
"type": "object",
"properties": {
"id": {
"description": "The unique id of this resource, provided by system.",
"type": "string",
"format": "osid-id",
"readOnly": true
},
"uri": {
"description": "The uri of this resource, provided by system.",
"type": "string",
"format": "uri",
"readOnly": true
},
"displayName": {
"description": "The name of this resource for display.",
"type": "string",
"read-only": false,
"minLength": 1,
"maxLength": 128,
"pattern": "",
"default": "",
"enum": [],
"elementId": "Resource.Resource:displayName@base.url",
"existingValue": "The Existing Name",
"elementLabel": "Name",
"instructions": "Enter a name for this resource",
"linked": false
},
"description": {
"description": "The description of this resource.",
"type": "string",
"read-only": false,
"minLength": 0,
"maxLength": 128,
"pattern": "",
"default": "",
"enum": [],
"elementId": "Resource.Resource:displayName@demo.base.url",
"existingValue": "The Existing Description",
"elementLabel": "Description",
"instructions": "Enter a description for this resource",
"linked": false
},
"genusTypeId": {
"description": "Id of the immutable type of this resource. 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 resource. 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
},
"group": {
"description": "Tests if this resource is a group.",
"type": "boolean",
"elementId": "resource.Resource:group@dxtera.org",
"existingValue": false,
"elementLabel": "Group",
"instructions": "Enter true or false.",
"linked": false
},
"avatarId": {
"description": "The asset.",
"type": "string",
"type": "string",
"format": "osid-id",
"read-only": false,
"pattern": "",
"default": "",
"enum": [],
"elementId": "resource.Resource:avatar@dxtera.org",
"existingValue": null,
"elementLabel": "Avatar",
"instructions": "Enter the Id of the avatar for this resource.",
"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": "resource not found" }
/resource/resource-relationships
Collection of ResourceRelationships in a system, federation of systems, or in a default Bin.
Get all ResourceRelationships in the system or default Bin.
Create a new ResourceRelationship in the default Bin.
get /resource/resource-relationships
Get all ResourceRelationships in the system or default Bin.
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", "sourceResource", "destinationResource", or "all" to expand all referenced objects or types. This parameter can be repeated to expand multiples.
Example:
all - keyword: (string)
The match string for keyword query
Example:
Hello%20World - displayName: (string)
The match string for displayName query
Example:
Hello%20World - description: (string)
The match string for description query
Example:
Hello%20World - genusTypeId: (string)
The id string to match a genusType
Example:
type.Type%3AexampleResourceRelationshipType%40dxtera.org - parentGenusTypeId: (string)
The id string to match a parent genusType
Example:
type.Type%3AparentTypeExampleResourceRelationshipType%40dxtera.org - recordTypeId: (string)
The id string to match a recordType
Example:
type.Type%3AexampleResourceRelationshipType%40campusapi.org - fromDate: (string)
Get all resource-relationships from this date inclusive. Use with toDate to define date range query.
Example:
2020-10-03 - toDate: (string)
Get all resource-relationships up to this date inclusive. Use with fromDate to define date range query.
Example:
2020-12-18 - sourceResourceId: (string)
the id string to match a source-resource.
Example:
resource.Resource%3A2400%40base.url - destinationResourceId: (string)
the id string to match a destination-resource.
Example:
resource.Resource%3A3200%40base.url - binId: (string)
The id string to match a bin
Example:
resource.Bin%3A8374%40base.url
HTTP status code 200
Headers
- x-total-count: required(number)
The total count of records currently available
Example:
152803
Body
Media type: application/json
Type: any
Example:
[
{
"id": "resource.ResourceRelationship:4690@base.url",
"uri": "http://base.url/open/campusapi/resource/resourceRelationship/resource.ResourceRelationship%3A4690%40base.url",
"displayName": "Display Name of this ResourceRelationship",
"description": "The description of this ResourceRelationship",
"genusTypeId": "type.Type:defaultResourceRelationshipType@base.url",
"recordTypeIds": [ "type.Type:exampleResourceRelationshipRecordType@campusapi.org", "..."],
"startDate": "2020-10-03T06:30:00.000Z",
"endDate": "2020-12-18T19:30:00.000Z",
"endReasonId": "process.State:4690@base.url",
"sourceResourceId": "resource.Resource:5642@base.url",
"destinationResourceId": "resource.Resource:956@base.url"
},
{
"...": "..."
}
]
HTTP status code 403
Body
Media type: application/json
Type: any
Example:
{"message": "Permission denied" }
post /resource/resource-relationships
Create a new ResourceRelationship in the default Bin.
Query Parameters
- binId: (string)
specify in which bin to create this resourceRelationship
Example:
resource.Bin%3A8374%40base.url
Body
Media type: application/json
Type: json
Content:
{
"$schema": "http://json-schema.org/draft-04/schema#",
"title": "ResourceRelationship",
"type": "object",
"required": ["sourceResourceId", "destinationResourceId"],
"properties": {
"id": {
"description": "The unique id of this resource relationship. This id is provided solely by the underlying implementation and is not set on POST and cannot be changed. An id included on POST will result in an error.",
"type": "string",
"format": "osid-id",
"readOnly": true
},
"uri": {
"description": "The uri of this resource relationship. This URI is provided solely by the underlying implementation and is not set on POST and cannot be changed. A uri included on POST will result in an error.",
"type": "string",
"format": "uri",
"readOnly": true
},
"displayName": {
"description": "The name of this resource relationship for display.",
"type": "string"
},
"description": {
"description": "The description of this resource relationship.",
"type": "string"
},
"genusTypeId": {
"description": "Id of the immutable type of this resource relationship. Default type set by system unless specified in query parameter.",
"type": "string",
"format": "osid-id",
"readOnly": true
},
"recordTypeIds": {
"description": "Type Ids of record types available on this resource relationship. Record types define special attributes available on an object to support specific applications or classes of applications and are documented elsewhere.",
"type": "array",
"items": {
"type": "string",
"format": "osid-id"
},
"readOnly": true
},
"startDate": {
"description": "The starting date of this resource relationship.",
"type": "string",
"format": "date-time"
},
"endDate": {
"description": "The ending date of this resource relationship.",
"type": "string",
"format": "date-time"
},
"endReasonId": {
"description": "The reason this resource relationship ended.",
"type": "string",
"format": "osid-id"
},
"sourceResourceId": {
"description": "The source resource associated with this resource relationship.",
"type": "string",
"format": "osid-id",
"readOnly": true
},
"destinationResourceId": {
"description": "The destination resource associated with this resource relationship.",
"type": "string",
"format": "osid-id",
"readOnly": true
}
}
}Example:
{
"displayName": "Display Name of this ResourceRelationship",
"description": "The description of this ResourceRelationship",
"startDate": "2020-10-03T06:30:00.000Z",
"endDate": "2020-12-18T19:30:00.000Z",
"endReasonId": "process.State:886@base.url",
"sourceResourceId": "resource.Resource:1900@base.url",
"destinationResourceId": "resource.Resource:1433@base.url"
}
HTTP status code 200
Body
Media type: application/json
Type: any
Example:
{ "message": "The ResourceRelationship has been created",
"resource-relationshipId": "resource.ResourceRelationship:9876@demo.dxtera.org"}
HTTP status code 403
Body
Media type: application/json
Type: any
Example:
{"message": "Permission denied" }
Query the collection of ResourceRelationships in a system, federation of systems, or in a default bin by posting a Query object.
Submit a query using a ResourceRelationshipQuery object.
post /resource/resource-relationships/resource-relationship-query
Submit a query using a ResourceRelationshipQuery 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", "sourceResource", "destinationResource", 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": "ResourceRelationshipQuery",
"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"
}
}
}
},
"matchSubjectIds": {
"description": "List of Ids to match an object with a relationships to the given subjects.",
"type": "array",
"items": {
"type": "object",
"properties": {
"sponsorId": {
"description": "id to match",
"type": "string",
"format": "osid-id"
},
"match": {
"description": "true for a positive match, false for a negative match",
"type": "boolean"
}
}
}
},
"matchJournalEntryIds": {
"description": "List of Ids match objects that have the given journal entries.",
"type": "array",
"items": {
"type": "object",
"properties": {
"sponsorId": {
"description": "id to match",
"type": "string",
"format": "osid-id"
},
"match": {
"description": "true for a positive match, false for a negative match",
"type": "boolean"
}
}
}
},
"journalEntryQueries": {
"description": "journaling.JournalEntryQueries to match journaling information. Each query performs a boolean OR.",
"type": "array",
"items": {
"type": "journal-entry-query"
}
},
"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": "resource-query"
}
},
"matchAnyEndReason": {
"description": "Match end reasons with any value. true to match ResourceRelationships with any end reason, false to match ResourceRelationships with no end reason",
"type": "boolean"
},
"matchSourceResourceIds": {
"description": "List of sourceResource Ids for this query to match resource relationship that have a related sourceResource.",
"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"
}
}
}
},
"sourceResourceQueries": {
"description": "SourceResourceQueries to match the sourceResource. Each query performs a boolean OR.",
"type": "array",
"items": {
"type": "resource-query"
}
},
"matchDestinationResourceIds": {
"description": "List of destinationResource Ids for this query to match resource relationship that have a related destinationResource.",
"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"
}
}
}
},
"destinationResourceQueries": {
"description": "DestinationResourceQueries to match the destinationResource. Each query performs a boolean OR.",
"type": "array",
"items": {
"type": "resource-query"
}
},
"matchBinIds": {
"description": "List of Bin Id's to match.",
"type": "array",
"items": {
"type": "object",
"properties": {
"binId": {
"description": "Bin id to match",
"type": "string",
"format": "osid-id"
},
"match": {
"description": "true for a positive match, false for a negative match",
"type": "boolean"
}
}
}
},
"binQueries": {
"description": "BinQueries to match Bin. Each query performs a boolean OR.",
"type": "array",
"items": {
"type": "bin-query"
}
}
}
}Example:
{
"matchDisplayNames": [
{
"displayName": "string to exclude",
"match": false
}
]
}HTTP status code 200
Body
Media type: application/json
Type: any
Example:
[
{
"id": "resource.ResourceRelationship:4690@base.url",
"uri": "http://base.url/open/campusapi/resource/resourceRelationship/resource.ResourceRelationship%3A4690%40base.url",
"displayName": "Display Name of this ResourceRelationship",
"description": "The description of this ResourceRelationship",
"genusTypeId": "type.Type:defaultResourceRelationshipType@base.url",
"recordTypeIds": [ "type.Type:exampleResourceRelationshipRecordType@campusapi.org", "..."],
"startDate": "2020-10-03T06:30:00.000Z",
"endDate": "2020-12-18T19:30:00.000Z",
"endReasonId": "process.State:4690@base.url",
"sourceResourceId": "resource.Resource:5642@base.url",
"destinationResourceId": "resource.Resource:956@base.url"
},
{
"...": "..."
}
]
HTTP status code 403
Body
Media type: application/json
Type: any
Example:
{"message": "Permission denied" }
Create multiple new ResourceRelationshipBatch in the default Bin.
post /resource/resource-relationships/resource-relationship-batch
Create multiple new ResourceRelationshipBatch in the default Bin.
Query Parameters
- binId: (string)
specify in which bin to create this resourceRelationship
Example:
resource.Bin%3A8374%40base.url
Body
Media type: application/json
Type: json
Content:
{
"$schema": "http://json-schema.org/draft-04/schema#",
"title": "ResourceRelationshipBatch",
"type": "array",
"Items": {
"type": "resource-relationship"
}
}Example:
[
{
"displayName": "Display Name of this ResourceRelationship",
"description": "The description of this ResourceRelationship",
"startDate": "2020-10-03T06:30:00.000Z",
"endDate": "2020-12-18T19:30:00.000Z",
"endReasonId": "process.State:3281@base.url"
},
{
"...": "..."
}
]
Entity representing a ResourceRelationship form metadata.
Get form metadata for creating a new ResourceRelationship.
get /resource/resource-relationships/metadata
Get form metadata for creating a new ResourceRelationship.
Query Parameters
- sourceResourceId: required(string)
the source-resource of this metadatum.
Example:
resource.Resource%3A2400%40base.url - destinationResourceId: required(string)
the destination-resource of this metadatum.
Example:
resource.Resource%3A3200%40base.url - genusType: (string)
specify a particular resourceRelationship type to create
Example:
type.Type%3AexampleResourceRelationshipType%40dxtera.org - recordType: (array of )
specify support for one or more resourceRelationship record types
Example:
[ "type.Type%3AexampleResourceRelationshipRecordType%40campusapi.org", "..." ] - binId: (string)
specify in which bin to create this resourceRelationship
Example:
resource.Bin%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": "ResourceRelationship",
"type": "object",
"required": ["sourceResourceId", "destinationResourceId"],
"properties": {
"id": {
"description": "The unique id of this resource relationship, provided by system.",
"type": "string",
"format": "osid-id",
"readOnly": true
},
"uri": {
"description": "The uri of this resource relationship, provided by system.",
"type": "string",
"format": "uri",
"readOnly": true
},
"displayName": {
"description": "The name of this resource relationship for display.",
"type": "string",
"read-only": false,
"minLength": 1,
"maxLength": 128,
"pattern": "",
"default": "",
"enum": [],
"elementId": "ResourceRelationship.ResourceRelationship:displayName@base.url",
"existingValue": "The Existing Name",
"elementLabel": "Name",
"instructions": "Enter a name for this resource relationship",
"linked": false
},
"description": {
"description": "The description of this resource relationship.",
"type": "string",
"read-only": false,
"minLength": 0,
"maxLength": 128,
"pattern": "",
"default": "",
"enum": [],
"elementId": "ResourceRelationship.ResourceRelationship:displayName@demo.base.url",
"existingValue": "The Existing Description",
"elementLabel": "Description",
"instructions": "Enter a description for this resource relationship",
"linked": false
},
"genusTypeId": {
"description": "Id of the immutable type of this resource relationship. Default type set by system unless specified in query parameter on initial post.",
"type": "string",
"format": "osid-id",
"readOnly": true
},
"recordTypeIds": {
"description": "Type Ids of record types available on this resource relationship. Record types define special attributes available on an object to support specific applications or classes of applications and are documented elsewhere.",
"type": "array",
"items": {
"type": "string",
"format": "osid-id"
},
"readOnly": true
},
"startDate": {
"description": "The starting date of this resource relationship.",
"type": "string",
"format": "date-time",
"read-only": false,
"pattern": "",
"default": "",
"enum": [],
"elementId": "ResourceRelationship.ResourceRelationship:startDate@base.url",
"existingValue": "2020-10-03T08:00:00.000Z",
"elementLabel": "Start Date",
"instructions": "Enter a starting date for this resource relationship",
"linked": false
},
"endDate": {
"description": "The ending date of this resource relationship.",
"type": "string",
"format": "date-time",
"read-only": false,
"pattern": "",
"default": "",
"enum": [],
"elementId": "ResourceRelationship.ResourceRelationship:endDate@base.url",
"existingValue": "2020-12-18T17:00:00.000Z",
"elementLabel": "End Date",
"instructions": "Enter an ending date for this resource relationship",
"linked": false
},
"endReasonId": {
"description": "The reason this resource relationship ended. A process/State object.",
"type": "string",
"format": "osid-id",
"read-only": false,
"pattern": "",
"default": "",
"enum": [],
"elementId": "ResourceRelationship.ResourceRelationship:endReason@base.url",
"existingValue": "process.State:1860@base.url",
"elementLabel": "End Reason",
"instructions": "Select the reason this resource relationship ended",
"linked": false
}
}
}
HTTP status code 403
Body
Media type: application/json
Type: any
Example:
{"message": "Permission denied" }
Entity representing a ResourceRelationship
Get a particular ResourceRelationship given its id.
Update a particular ResourceRelationship given its id.
Delete a particular ResourceRelationship given its id.
get /resource/resource-relationships/{resourceRelationshipId}
Get a particular ResourceRelationship given its id.
URI Parameters
- resourceRelationshipId: required(string)
Query Parameters
- expand: (string)
Expand object or type for named attribute: "genusType", "recordType", "endReason", "sourceResource", "destinationResource", 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": "resource.ResourceRelationship:4690@base.url",
"uri": "http://base.url/open/campusapi/resource/resourceRelationship/resource.ResourceRelationship%3A4690%40base.url",
"displayName": "Display Name of this ResourceRelationship",
"description": "The description of this ResourceRelationship",
"genusTypeId": "type.Type:defaultResourceRelationshipType@base.url",
"recordTypeIds": [ "type.Type:exampleResourceRelationshipRecordType@campusapi.org", "..."],
"startDate": "2020-10-03T06:30:00.000Z",
"endDate": "2020-12-18T19:30:00.000Z",
"endReasonId": "process.State:4690@base.url",
"sourceResourceId": "resource.Resource:5642@base.url",
"destinationResourceId": "resource.Resource:956@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": "ResourceRelationship not found" }
put /resource/resource-relationships/{resourceRelationshipId}
Update a particular ResourceRelationship given its id.
URI Parameters
- resourceRelationshipId: required(string)
Body
Media type: application/json
Type: json
Content:
{
"$schema": "http://json-schema.org/draft-04/schema#",
"title": "ResourceRelationshipItem",
"type": "object",
"properties": {
"id": {
"description": "The unique id of this resource relationship. This id is provided solely by the underlying implementation and is not set on POST and cannot be changed. An id included on POST will result in an error.",
"type": "string",
"format": "osid-id",
"readOnly": true
},
"uri": {
"description": "The uri of this resource relationship. This URI is provided solely by the underlying implementation and is not set on POST and cannot be changed. A uri included on POST will result in an error.",
"type": "string",
"format": "uri",
"readOnly": true
},
"displayName": {
"description": "The name of this resource relationship for display.",
"type": "string"
},
"description": {
"description": "The description of this resource relationship.",
"type": "string"
},
"genusTypeId": {
"description": "Id of the immutable type of this resource relationship. Default type set by system unless specified in query parameter.",
"type": "string",
"format": "osid-id",
"readOnly": true
},
"recordTypeIds": {
"description": "Type Ids of record types available on this resource relationship. Record types define special attributes available on an object to support specific applications or classes of applications and are documented elsewhere.",
"type": "array",
"items": {
"type": "string",
"format": "osid-id"
},
"readOnly": true
},
"startDate": {
"description": "The starting date of this resource relationship.",
"type": "string",
"format": "date-time"
},
"endDate": {
"description": "The ending date of this resource relationship.",
"type": "string",
"format": "date-time"
},
"endReasonId": {
"description": "The reason this resource relationship ended.",
"type": "string",
"format": "osid-id"
},
"sourceResourceId": {
"description": "The source resource associated with this resource relationship.",
"type": "string",
"format": "osid-id",
"readOnly": true
},
"destinationResourceId": {
"description": "The destination resource associated with this resource relationship.",
"type": "string",
"format": "osid-id",
"readOnly": true
}
}
}Example:
{
"displayName": "Display Name of this ResourceRelationship",
"description": "The description of this ResourceRelationship",
"startDate": "2020-10-03T06:30:00.000Z",
"endDate": "2020-12-18T19:30:00.000Z",
"endReasonId": "process.State:8638@base.url"
}
HTTP status code 200
Body
Media type: application/json
Type: any
Example:
{ "message": "The ResourceRelationship 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": "ResourceRelationship not found" }
delete /resource/resource-relationships/{resourceRelationshipId}
Delete a particular ResourceRelationship given its id.
URI Parameters
- resourceRelationshipId: required(string)
HTTP status code 200
Body
Media type: application/json
Type: any
Example:
{ "message": "The ResourceRelationship 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": "ResourceRelationship not found" }
Entity representing a ResourceRelationship form metadata for update
Get form metadata for updating an existing ResourceRelationship.
get /resource/resource-relationships/{resourceRelationshipId}/metadata
Get form metadata for updating an existing ResourceRelationship.
URI Parameters
- resourceRelationshipId: required(string)
HTTP status code 200
Body
Media type: application/json
Type: any
Example:
{
"$schema": "http://json-schema.org/draft/2019-9/schema#",
"title": "ResourceRelationship",
"type": "object",
"required": ["sourceResourceId", "destinationResourceId"],
"properties": {
"id": {
"description": "The unique id of this resource relationship, provided by system.",
"type": "string",
"format": "osid-id",
"readOnly": true
},
"uri": {
"description": "The uri of this resource relationship, provided by system.",
"type": "string",
"format": "uri",
"readOnly": true
},
"displayName": {
"description": "The name of this resource relationship for display.",
"type": "string",
"read-only": false,
"minLength": 1,
"maxLength": 128,
"pattern": "",
"default": "",
"enum": [],
"elementId": "ResourceRelationship.ResourceRelationship:displayName@base.url",
"existingValue": "The Existing Name",
"elementLabel": "Name",
"instructions": "Enter a name for this resource relationship",
"linked": false
},
"description": {
"description": "The description of this resource relationship.",
"type": "string",
"read-only": false,
"minLength": 0,
"maxLength": 128,
"pattern": "",
"default": "",
"enum": [],
"elementId": "ResourceRelationship.ResourceRelationship:displayName@demo.base.url",
"existingValue": "The Existing Description",
"elementLabel": "Description",
"instructions": "Enter a description for this resource relationship",
"linked": false
},
"genusTypeId": {
"description": "Id of the immutable type of this resource relationship. Default type set by system unless specified in query parameter on initial post.",
"type": "string",
"format": "osid-id",
"readOnly": true
},
"recordTypeIds": {
"description": "Type Ids of record types available on this resource relationship. Record types define special attributes available on an object to support specific applications or classes of applications and are documented elsewhere.",
"type": "array",
"items": {
"type": "string",
"format": "osid-id"
},
"readOnly": true
},
"startDate": {
"description": "The starting date of this resource relationship.",
"type": "string",
"format": "date-time",
"read-only": false,
"pattern": "",
"default": "",
"enum": [],
"elementId": "ResourceRelationship.ResourceRelationship:startDate@base.url",
"existingValue": "2020-10-03T08:00:00.000Z",
"elementLabel": "Start Date",
"instructions": "Enter a starting date for this resource relationship",
"linked": false
},
"endDate": {
"description": "The ending date of this resource relationship.",
"type": "string",
"format": "date-time",
"read-only": false,
"pattern": "",
"default": "",
"enum": [],
"elementId": "ResourceRelationship.ResourceRelationship:endDate@base.url",
"existingValue": "2020-12-18T17:00:00.000Z",
"elementLabel": "End Date",
"instructions": "Enter an ending date for this resource relationship",
"linked": false
},
"endReasonId": {
"description": "The reason this resource relationship ended. A process/State object.",
"type": "string",
"format": "osid-id",
"read-only": false,
"pattern": "",
"default": "",
"enum": [],
"elementId": "ResourceRelationship.ResourceRelationship:endReason@base.url",
"existingValue": "process.State:1860@base.url",
"elementLabel": "End Reason",
"instructions": "Select the reason this resource relationship ended",
"linked": false
}
}
}
HTTP status code 403
Body
Media type: application/json
Type: any
Example:
{"message": "Permission denied" }
HTTP status code 404
Body
Media type: application/json
Type: any
Example:
{"message": "resourceRelationship not found" }
/resource/bins
Collection of Bins in a system or federation of systems.
Get all Bins.
Create a new Bin.
get /resource/bins
Get all Bins.
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 - keyword: (string)
The match string for keyword query
Example:
Hello%20World - displayName: (string)
The match string for displayName query
Example:
Hello%20World - description: (string)
The match string for description query
Example:
Hello%20World - genusTypeId: (string)
The id string to match a genusType
Example:
type.Type%3AexampleBinType%40dxtera.org - parentGenusTypeId: (string)
The id string to match a parent genusType
Example:
type.Type%3AparentTypeExampleBinType%40dxtera.org - recordTypeId: (string)
The id string to match a recordType
Example:
type.Type%3AexampleBinType%40campusapi.org - providerId: (string)
Id string to match provider.
Example:
resource.Resource%3A3007%40demo.dxtera.org - resourceId: (string)
Get bins mapped to this resource.
Example:
resource.Resource%3A192%40demo.dxtera.org - resourceRelationshipId: (string)
Get bins mapped to this resource-relationship.
Example:
resource.ResourceRelationship%3A504%40demo.dxtera.org
HTTP status code 200
Body
Media type: application/json
Type: any
Example:
[
{
"id": "resource.Bin:5338@base.url",
"uri": "http://base.url/open/campusapi/resource/bin/resource.Bin%3A5338%40base.url",
"displayName": "Display Name of this Bin",
"description": "The description of this Bin",
"genusTypeId": "type.Type:defaultBinType@base.url",
"recordTypeIds": [ "type.Type:exampleBinRecordType@campusapi.org", "..."],
"providerId": "resource.Resource:123@base.url",
"brandingId": "asset.Asset:Bin@base.url",
"license": "The license that applies to this Bin"
},
{
"...": "..."
}
]
HTTP status code 403
Body
Media type: application/json
Type: any
Example:
{"message": "Permission denied" }
post /resource/bins
Create a new Bin.
Query Parameters
- genusType: (string)
specify a particular bin type to create
Example:
type.Type%3AexampleBinType%40dxtera.org - recordType: (array of )
specify support for one or more bin record types
Example:
[ "type.Type%3AexampleBinRecordType%40campusapi.org", "..." ]
Body
Media type: application/json
Type: json
Content:
{
"$schema": "http://json-schema.org/draft-04/schema#",
"title": "Bin",
"type": "object",
"properties": {
"id": {
"description": "The unique id of this bin. This id is provided solely by the underlying implementation and is not set on POST and cannot be changed. An id included on POST will result in an error.",
"type": "string",
"format": "osid-id",
"readOnly": true
},
"uri": {
"description": "The uri of this bin. This URI is provided solely by the underlying implementation and is not set on POST and cannot be changed. A uri included on POST will result in an error.",
"type": "string",
"format": "uri",
"readOnly": true
},
"displayName": {
"description": "The name of this bin for display.",
"type": "string"
},
"description": {
"description": "The description of this bin.",
"type": "string"
},
"genusTypeId": {
"description": "Id of the immutable type of this bin. 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 bin. 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 bin.",
"type": "string",
"format": "osid-id"
},
"brandingIds": {
"description": "The branding of this bin. A collection of Assets.",
"type": "array",
"items" : {
"type": "string",
"format": "osid-id"
}
},
"license": {
"description": "The licensing that applies to this bin.",
"type": "string"
}
}
}Example:
{
"displayName": "Display Name of this Bin",
"description": "The description of this Bin",
"providerId": "resource.Resource:123@base.url",
"brandingId": "asset.Asset:Bin@base.url",
"license": "The license that applies to this Bin"
}
Query the collection of Bins in a system, federation of systems, or in a default bin by posting a Query object.
Submit a query using a BinQuery object.
post /resource/bins/bin-query
Submit a query using a BinQuery 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", "provider", "branding", 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": "BinQuery",
"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"
}
}
}
},
"matchSubjectIds": {
"description": "List of Ids to match an object with a relationships to the given subjects.",
"type": "array",
"items": {
"type": "object",
"properties": {
"sponsorId": {
"description": "id to match",
"type": "string",
"format": "osid-id"
},
"match": {
"description": "true for a positive match, false for a negative match",
"type": "boolean"
}
}
}
},
"matchJournalEntryIds": {
"description": "List of Ids match objects that have the given journal entries.",
"type": "array",
"items": {
"type": "object",
"properties": {
"sponsorId": {
"description": "id to match",
"type": "string",
"format": "osid-id"
},
"match": {
"description": "true for a positive match, false for a negative match",
"type": "boolean"
}
}
}
},
"journalEntryQueries": {
"description": "journaling.JournalEntryQueries to match journaling information. Each query performs a boolean OR.",
"type": "array",
"items": {
"type": "journal-entry-query"
}
},
"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": "providerQueries to match the provider. Each query performs a boolean OR.",
"type": "array",
"items": {
"type": "resource-query"
}
},
"matchAnyProvider": {
"description": "Match providers with any value. true to match Bin with any provider, false to match Bin 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.AssetQueries to match the branding. Each query performs a boolean OR.",
"type": "array",
"items": {
"type": "asset-query"
}
},
"matchAnyBranding": {
"description": "Match brandingss with any value. true to match Bin with any branding, false to match Bin 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"
}
}
}
},
"matchBinIds": {
"description": "List of Bin Id's to match.",
"type": "array",
"items": {
"type": "object",
"properties": {
"binId": {
"description": "Bin id to match",
"type": "string",
"format": "osid-id"
},
"match": {
"description": "true for a positive match, false for a negative match",
"type": "boolean"
}
}
}
},
"binQueries": {
"description": "BinQueries to match Bin. Each query performs a boolean OR.",
"type": "array",
"items": {
"type": "bin-query"
}
}
}
}Example:
{
"matchDisplayNames": [
{
"displayName": "string to exclude",
"match": false
}
]
}HTTP status code 200
Body
Media type: application/json
Type: any
Example:
[
{
"id": "resource.Bin:5338@base.url",
"uri": "http://base.url/open/campusapi/resource/bin/resource.Bin%3A5338%40base.url",
"displayName": "Display Name of this Bin",
"description": "The description of this Bin",
"genusTypeId": "type.Type:defaultBinType@base.url",
"recordTypeIds": [ "type.Type:exampleBinRecordType@campusapi.org", "..."],
"providerId": "resource.Resource:123@base.url",
"brandingId": "asset.Asset:Bin@base.url",
"license": "The license that applies to this Bin"
},
{
"...": "..."
}
]
HTTP status code 403
Body
Media type: application/json
Type: any
Example:
{"message": "Permission denied" }
Entity representing a Bin form metadata.
Get form metadata for creating a new Bin.
get /resource/bins/metadata
Get form metadata for creating a new Bin.
HTTP status code 200
Body
Media type: application/json
Type: any
Example:
{
"$schema": "http://json-schema.org/draft/2019-9/schema#",
"title": "Bin",
"type": "object",
"properties": {
"id": {
"description": "The unique id of this bin, provided by system.",
"type": "string",
"format": "osid-id",
"readOnly": true
},
"uri": {
"description": "The uri of this bin, provided by system.",
"type": "string",
"format": "uri",
"readOnly": true
},
"displayName": {
"description": "The name of this bin for display.",
"type": "string",
"read-only": false,
"minLength": 1,
"maxLength": 128,
"pattern": "",
"default": "",
"enum": [],
"elementId": "Bin.Bin:displayName@base.url",
"existingValue": "The Existing Name",
"elementLabel": "Name",
"instructions": "Enter a name for this bin",
"linked": false
},
"description": {
"description": "The description of this bin.",
"type": "string",
"read-only": false,
"minLength": 0,
"maxLength": 128,
"pattern": "",
"default": "",
"enum": [],
"elementId": "Bin.Bin:displayName@demo.base.url",
"existingValue": "The Existing Description",
"elementLabel": "Description",
"instructions": "Enter a description for this bin",
"linked": false
},
"genusTypeId": {
"description": "Id of the immutable type of this bin. 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 bin. 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 bin.",
"type": "string",
"format": "osid-id",
"read-only": false,
"pattern": "",
"default": "",
"enum": [],
"elementId": "Bin.Bin:provider@base.url",
"existingValue": "",
"elementLabel": "Provider",
"instructions": "Enter the provider of this bin",
"linked": false
},
"brandingIds": {
"description": "The branding of this bin. A list of Assets.",
"type": "array",
"items" : {
"type": "string",
"format": "osid-id",
"pattern": "",
"enum": []
},
"read-only": false,
"default": [],
"elementId": "Bin.Bin:branding@base.url",
"existingValue": "",
"elementLabel": "Branding",
"instructions": "Enter the branding images for this bin",
"linked": false
},
"license": {
"description": "The licensing that applies to this bin.",
"type": "string",
"read-only": false,
"minLength": 0,
"maxLength": 128,
"pattern": "",
"default": "",
"enum": [],
"elementId": "Bin.Bin:license@base.url",
"existingValue": "The Existing License",
"elementLabel": "License",
"instructions": "Include a license for this bin",
"linked": false
}
}
}
HTTP status code 403
Body
Media type: application/json
Type: any
Example:
{"message": "Permission denied" }
The root Bins in the Bin hierarchy. A node with no parents is an orphan. While all Bin 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-bins
get /resource/bins/root-bins
Get all root root-bins
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
HTTP status code 200
Body
Media type: application/json
Type: any
Example:
[
{
"id": "resource.Bin:5338@base.url",
"uri": "http://base.url/open/campusapi/resource/bin/resource.Bin%3A5338%40base.url",
"displayName": "Display Name of this Bin",
"description": "The description of this Bin",
"genusTypeId": "type.Type:defaultBinType@base.url",
"recordTypeIds": [ "type.Type:exampleBinRecordType@campusapi.org", "..."],
"providerId": "resource.Resource:123@base.url",
"brandingId": "asset.Asset:Bin@base.url",
"license": "The license that applies to this Bin"
},
{
"...": "..."
}
]
HTTP status code 403
Body
Media type: application/json
Type: any
Example:
{"message": "Permission denied" }
Add the given Bin as a root in the Bin hierarchy
Remove the given Bin as a root in the Bin hierarchy.
put /resource/bins/root-bins/{binId}
Add the given Bin as a root in the Bin hierarchy
URI Parameters
- binId: required(string)
HTTP status code 200
Body
Media type: application/json
Type: any
Example:
{ "message": "The Bin 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": "Bin not found" }
delete /resource/bins/root-bins/{binId}
Remove the given Bin as a root in the Bin hierarchy.
URI Parameters
- binId: required(string)
HTTP status code 200
Body
Media type: application/json
Type: any
Example:
{ "message": "The Bin 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": "Bin not found" }
Get parent Bins for the given Bin in the hierarchy.
get /resource/bins/root-bins/parents
Get parent Bins for the given Bin in the hierarchy.
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
HTTP status code 200
Body
Media type: application/json
Type: any
Example:
[
{
"id": "resource.Bin:5338@base.url",
"uri": "http://base.url/open/campusapi/resource/bin/resource.Bin%3A5338%40base.url",
"displayName": "Display Name of this Bin",
"description": "The description of this Bin",
"genusTypeId": "type.Type:defaultBinType@base.url",
"recordTypeIds": [ "type.Type:exampleBinRecordType@campusapi.org", "..."],
"providerId": "resource.Resource:123@base.url",
"brandingId": "asset.Asset:Bin@base.url",
"license": "The license that applies to this Bin"
},
{
"...": "..."
}
]
HTTP status code 403
Body
Media type: application/json
Type: any
Example:
{"message": "Permission denied" }
Get child Bins for the given Bin in the hierarchy.
get /resource/bins/root-bins/children
Get child Bins for the given Bin in the hierarchy.
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
HTTP status code 200
Body
Media type: application/json
Type: any
Example:
[
{
"id": "resource.Bin:5338@base.url",
"uri": "http://base.url/open/campusapi/resource/bin/resource.Bin%3A5338%40base.url",
"displayName": "Display Name of this Bin",
"description": "The description of this Bin",
"genusTypeId": "type.Type:defaultBinType@base.url",
"recordTypeIds": [ "type.Type:exampleBinRecordType@campusapi.org", "..."],
"providerId": "resource.Resource:123@base.url",
"brandingId": "asset.Asset:Bin@base.url",
"license": "The license that applies to this Bin"
},
{
"...": "..."
}
]
HTTP status code 403
Body
Media type: application/json
Type: any
Example:
{"message": "Permission denied" }
Add Bin as child of the given Bin in the hierarchy.
Remove the given Bin as a child of the given Bin in the hierarchy.
put /resource/bins/root-bins/children/{childId}
Add Bin as child of the given Bin in the hierarchy.
URI Parameters
- childId: required(string)
HTTP status code 200
Body
Media type: application/json
Type: any
Example:
{ "message": "The child Bin 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": "bin not found" }
delete /resource/bins/root-bins/children/{childId}
Remove the given Bin as a child of the given Bin in the hierarchy.
Entity representing a Bin
Get a particular Bin given its id.
Update a particular Bin given its id.
Delete a particular Bin given its id.
get /resource/bins/{binId}
Get a particular Bin given its id.
URI Parameters
- binId: required(string)
Query Parameters
- 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
HTTP status code 200
Body
Media type: application/json
Type: any
Example:
{
"id": "resource.Bin:5338@base.url",
"uri": "http://base.url/open/campusapi/resource/bin/resource.Bin%3A5338%40base.url",
"displayName": "Display Name of this Bin",
"description": "The description of this Bin",
"genusTypeId": "type.Type:defaultBinType@base.url",
"recordTypeIds": [ "type.Type:exampleBinRecordType@campusapi.org", "..."],
"providerId": "resource.Resource:123@base.url",
"brandingId": "asset.Asset:Bin@base.url",
"license": "The license that applies to this Bin"
}
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": "Bin not found" }
put /resource/bins/{binId}
Update a particular Bin given its id.
URI Parameters
- binId: required(string)
Body
Media type: application/json
Type: json
Content:
{
"$schema": "http://json-schema.org/draft-04/schema#",
"title": "BinItem",
"type": "object",
"properties": {
"id": {
"description": "The unique id of this bin. This id is provided solely by the underlying implementation and is not set on POST and cannot be changed. An id included on POST will result in an error.",
"type": "string",
"format": "osid-id",
"readOnly": true
},
"uri": {
"description": "The uri of this bin. This URI is provided solely by the underlying implementation and is not set on POST and cannot be changed. A uri included on POST will result in an error.",
"type": "string",
"format": "uri",
"readOnly": true
},
"displayName": {
"description": "The name of this bin for display.",
"type": "string"
},
"description": {
"description": "The description of this bin.",
"type": "string"
},
"genusTypeId": {
"description": "Id of the immutable type of this bin. 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 bin. 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 bin.",
"type": "string",
"format": "osid-id"
},
"brandingIds": {
"description": "The branding of this bin. A collection of Assets.",
"type": "array",
"items" : {
"type": "string",
"format": "osid-id"
}
},
"license": {
"description": "The licensing that applies to this bin.",
"type": "string"
}
}
}Example:
{
"displayName": "Display Name of this Bin",
"description": "The description of this Bin",
"providerId": "resource.Resource:123@base.url",
"brandingId": "asset.Asset:Bin@base.url",
"license": "The license that applies to this Bin"
}
HTTP status code 200
Body
Media type: application/json
Type: any
Example:
{ "message": "The Bin 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": "Bin not found" }
delete /resource/bins/{binId}
Delete a particular Bin given its id.
URI Parameters
- binId: required(string)
HTTP status code 200
Body
Media type: application/json
Type: any
Example:
{ "message": "The Bin 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": "Bin not found" }
Entity representing a Bin form metadata for update
Get form metadata for updating an existing Bin.
get /resource/bins/{binId}/metadata
Get form metadata for updating an existing Bin.
URI Parameters
- binId: required(string)
HTTP status code 200
Body
Media type: application/json
Type: any
Example:
{
"$schema": "http://json-schema.org/draft/2019-9/schema#",
"title": "Bin",
"type": "object",
"properties": {
"id": {
"description": "The unique id of this bin, provided by system.",
"type": "string",
"format": "osid-id",
"readOnly": true
},
"uri": {
"description": "The uri of this bin, provided by system.",
"type": "string",
"format": "uri",
"readOnly": true
},
"displayName": {
"description": "The name of this bin for display.",
"type": "string",
"read-only": false,
"minLength": 1,
"maxLength": 128,
"pattern": "",
"default": "",
"enum": [],
"elementId": "Bin.Bin:displayName@base.url",
"existingValue": "The Existing Name",
"elementLabel": "Name",
"instructions": "Enter a name for this bin",
"linked": false
},
"description": {
"description": "The description of this bin.",
"type": "string",
"read-only": false,
"minLength": 0,
"maxLength": 128,
"pattern": "",
"default": "",
"enum": [],
"elementId": "Bin.Bin:displayName@demo.base.url",
"existingValue": "The Existing Description",
"elementLabel": "Description",
"instructions": "Enter a description for this bin",
"linked": false
},
"genusTypeId": {
"description": "Id of the immutable type of this bin. 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 bin. 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 bin.",
"type": "string",
"format": "osid-id",
"read-only": false,
"pattern": "",
"default": "",
"enum": [],
"elementId": "Bin.Bin:provider@base.url",
"existingValue": "",
"elementLabel": "Provider",
"instructions": "Enter the provider of this bin",
"linked": false
},
"brandingIds": {
"description": "The branding of this bin. A list of Assets.",
"type": "array",
"items" : {
"type": "string",
"format": "osid-id",
"pattern": "",
"enum": []
},
"read-only": false,
"default": [],
"elementId": "Bin.Bin:branding@base.url",
"existingValue": "",
"elementLabel": "Branding",
"instructions": "Enter the branding images for this bin",
"linked": false
},
"license": {
"description": "The licensing that applies to this bin.",
"type": "string",
"read-only": false,
"minLength": 0,
"maxLength": 128,
"pattern": "",
"default": "",
"enum": [],
"elementId": "Bin.Bin:license@base.url",
"existingValue": "The Existing License",
"elementLabel": "License",
"instructions": "Include a license for this bin",
"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": "bin not found" }
Get all Resources in this Bin
get /resource/bins/{binId}/resources
Get all Resources in this Bin
URI Parameters
- binId: 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", "avatar", or "all" to expand all referenced objects or types. This parameter can be repeated to expand multiples.
Example:
all - keyword: (string)
The match string for keyword query
Example:
Hello%20World - displayName: (string)
The match string for displayName query
Example:
Hello%20World - description: (string)
The match string for description query
Example:
Hello%20World - genusTypeId: (string)
The id string to match a genusType
Example:
type.Type%3AexampleResourceType%40dxtera.org - parentGenusTypeId: (string)
The id string to match a parent genusType
Example:
type.Type%3AparentTypeExampleResourceType%40dxtera.org - recordTypeId: (string)
The id string to match a recordType
Example:
type.Type%3AexampleResourceType%40campusapi.org
HTTP status code 200
Body
Media type: application/json
Type: any
Example:
[
{
"id": "resource.Resource:8284@base.url",
"uri": "http://base.url/open/campusapi/resource/resource/resource.Resource%3A8284%40base.url",
"displayName": "Display Name of this Resource",
"description": "The description of this Resource",
"genusTypeId": "type.Type:defaultResourceType@base.url",
"recordTypeIds": [ "type.Type:exampleResourceRecordType@campusapi.org", "..."],
"group": true,
"avatarId": "repository.Asset:1535@base.url"
},
{
"...": "..."
}
]
HTTP status code 403
Body
Media type: application/json
Type: any
Example:
{"message": "Permission denied" }
Add the given Resource to this Bin
Remove the given Resource from the Bin.
put /resource/bins/{binId}/resources/{resourceId}
Add the given Resource to this Bin
URI Parameters
- binId: required(string)
- resourceId: required(string)
HTTP status code 200
Body
Media type: application/json
Type: any
Example:
{ "message": "Resource has been added to Bin" }
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": "Resource not found" }
delete /resource/bins/{binId}/resources/{resourceId}
Remove the given Resource from the Bin.
URI Parameters
- binId: required(string)
- resourceId: required(string)
HTTP status code 200
Body
Media type: application/json
Type: any
Example:
{ "message": "Resource 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": "Resource not found" }
Define and inspect the ResourceQuery related to a "smart" Bin. A smart Bin is a dynamic Bin whose cataloged objects are defined through queries.
Apply the provided ResourceQuery to this Bin to create a dynamic smart Bin
Get the ResourceQuery associated with this smart Bin.
post /resource/bins/{binId}/resource-query
Apply the provided ResourceQuery to this Bin to create a dynamic smart Bin
URI Parameters
- binId: required(string)
Body
Media type: application/json
Type: json
Content:
{
"$schema": "http://json-schema.org/draft-04/schema#",
"title": "ResourceQuery",
"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"
}
}
}
},
"matchSubjectIds": {
"description": "List of Ids to match an object with a relationships to the given subjects.",
"type": "array",
"items": {
"type": "object",
"properties": {
"sponsorId": {
"description": "id to match",
"type": "string",
"format": "osid-id"
},
"match": {
"description": "true for a positive match, false for a negative match",
"type": "boolean"
}
}
}
},
"matchJournalEntryIds": {
"description": "List of Ids match objects that have the given journal entries.",
"type": "array",
"items": {
"type": "object",
"properties": {
"sponsorId": {
"description": "id to match",
"type": "string",
"format": "osid-id"
},
"match": {
"description": "true for a positive match, false for a negative match",
"type": "boolean"
}
}
}
},
"journalEntryQueries": {
"description": "journaling.JournalEntryQueries to match journaling information. Each query performs a boolean OR.",
"type": "array",
"items": {
"type": "journal-entry-query"
}
},
"matchGroup": {
"description": "Match boolean value for group.",
"type": "object",
"properties": {
"match": {
"description": "true for a positive match, false for a negative match",
"type": "boolean"
}
}
},
"matchAvatarIds": {
"description": "List of Asset Ids for this query to match avatar.",
"type": "array",
"items": {
"type": "object",
"properties": {
"avatarId": {
"description": "id to match",
"type": "string",
"format": "osid-id"
},
"match": {
"description": "true for a positive match, false for a negative match",
"type": "boolean"
}
}
}
},
"avatarQueries": {
"description": "repository.AssetQueries to match the Avatar. Each query performs a boolean OR.",
"type": "array",
"items": {
"type": "asset-query"
}
},
"matchAnyAvatar": {
"description": "Match avatar with any value. true to match Resources with any avatar, false to match Resources with no avatar",
"type": "boolean"
},
"matchBinIds": {
"description": "List of Bin Id's to match.",
"type": "array",
"items": {
"type": "object",
"properties": {
"binId": {
"description": "Bin id to match",
"type": "string",
"format": "osid-id"
},
"match": {
"description": "true for a positive match, false for a negative match",
"type": "boolean"
}
}
}
},
"binQueries": {
"description": "BinQueries to match Bin. Each query performs a boolean OR.",
"type": "array",
"items": {
"type": "bin-query"
}
}
}
}Example:
{
"matchDisplayNames": [
{
"displayName": "string to exclude",
"match": false
}
]
}get /resource/bins/{binId}/resource-query
Get the ResourceQuery associated with this smart Bin.
URI Parameters
- binId: required(string)
HTTP status code 200
Body
Media type: application/json
Type: any
Example:
{
"matchDisplayNames": [
{
"displayName": "string to exclude",
"match": 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": "Bin not found" }
Get all ResourceRelationships in this Bin
get /resource/bins/{binId}/resource-relationships
Get all ResourceRelationships in this Bin
URI Parameters
- binId: 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", "sourceResource", "destinationResource", or "all" to expand all referenced objects or types. This parameter can be repeated to expand multiples.
Example:
all - keyword: (string)
The match string for keyword query
Example:
Hello%20World - displayName: (string)
The match string for displayName query
Example:
Hello%20World - description: (string)
The match string for description query
Example:
Hello%20World - genusTypeId: (string)
The id string to match a genusType
Example:
type.Type%3AexampleResourceRelationshipType%40dxtera.org - parentGenusTypeId: (string)
The id string to match a parent genusType
Example:
type.Type%3AparentTypeExampleResourceRelationshipType%40dxtera.org - recordTypeId: (string)
The id string to match a recordType
Example:
type.Type%3AexampleResourceRelationshipType%40campusapi.org
HTTP status code 200
Body
Media type: application/json
Type: any
Example:
[
{
"id": "resource.ResourceRelationship:4690@base.url",
"uri": "http://base.url/open/campusapi/resource/resourceRelationship/resource.ResourceRelationship%3A4690%40base.url",
"displayName": "Display Name of this ResourceRelationship",
"description": "The description of this ResourceRelationship",
"genusTypeId": "type.Type:defaultResourceRelationshipType@base.url",
"recordTypeIds": [ "type.Type:exampleResourceRelationshipRecordType@campusapi.org", "..."],
"startDate": "2020-10-03T06:30:00.000Z",
"endDate": "2020-12-18T19:30:00.000Z",
"endReasonId": "process.State:4690@base.url",
"sourceResourceId": "resource.Resource:5642@base.url",
"destinationResourceId": "resource.Resource:956@base.url"
},
{
"...": "..."
}
]
HTTP status code 403
Body
Media type: application/json
Type: any
Example:
{"message": "Permission denied" }
Add the given ResourceRelationship to this Bin
Remove the given ResourceRelationship from the Bin.
put /resource/bins/{binId}/resource-relationships/{resourceRelationshipId}
Add the given ResourceRelationship to this Bin
URI Parameters
- binId: required(string)
- resourceRelationshipId: required(string)
HTTP status code 200
Body
Media type: application/json
Type: any
Example:
{ "message": "ResourceRelationship has been added to Bin" }
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": "ResourceRelationship not found" }
delete /resource/bins/{binId}/resource-relationships/{resourceRelationshipId}
Remove the given ResourceRelationship from the Bin.
URI Parameters
- binId: required(string)
- resourceRelationshipId: required(string)
HTTP status code 200
Body
Media type: application/json
Type: any
Example:
{ "message": "ResourceRelationship 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": "ResourceRelationship not found" }
Define and inspect the ResourceRelationshipQuery related to a "smart" Bin. A smart Bin is a dynamic Bin whose cataloged objects are defined through queries.
Apply the provided ResourceRelationshipQuery to this Bin to create a dynamic smart Bin
Get the ResourceRelationshipQuery associated with this smart Bin.
post /resource/bins/{binId}/resource-relationship-query
Apply the provided ResourceRelationshipQuery to this Bin to create a dynamic smart Bin
URI Parameters
- binId: required(string)
Body
Media type: application/json
Type: json
Content:
{
"$schema": "http://json-schema.org/draft-04/schema#",
"title": "ResourceRelationshipQuery",
"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"
}
}
}
},
"matchSubjectIds": {
"description": "List of Ids to match an object with a relationships to the given subjects.",
"type": "array",
"items": {
"type": "object",
"properties": {
"sponsorId": {
"description": "id to match",
"type": "string",
"format": "osid-id"
},
"match": {
"description": "true for a positive match, false for a negative match",
"type": "boolean"
}
}
}
},
"matchJournalEntryIds": {
"description": "List of Ids match objects that have the given journal entries.",
"type": "array",
"items": {
"type": "object",
"properties": {
"sponsorId": {
"description": "id to match",
"type": "string",
"format": "osid-id"
},
"match": {
"description": "true for a positive match, false for a negative match",
"type": "boolean"
}
}
}
},
"journalEntryQueries": {
"description": "journaling.JournalEntryQueries to match journaling information. Each query performs a boolean OR.",
"type": "array",
"items": {
"type": "journal-entry-query"
}
},
"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": "resource-query"
}
},
"matchAnyEndReason": {
"description": "Match end reasons with any value. true to match ResourceRelationships with any end reason, false to match ResourceRelationships with no end reason",
"type": "boolean"
},
"matchSourceResourceIds": {
"description": "List of sourceResource Ids for this query to match resource relationship that have a related sourceResource.",
"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"
}
}
}
},
"sourceResourceQueries": {
"description": "SourceResourceQueries to match the sourceResource. Each query performs a boolean OR.",
"type": "array",
"items": {
"type": "resource-query"
}
},
"matchDestinationResourceIds": {
"description": "List of destinationResource Ids for this query to match resource relationship that have a related destinationResource.",
"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"
}
}
}
},
"destinationResourceQueries": {
"description": "DestinationResourceQueries to match the destinationResource. Each query performs a boolean OR.",
"type": "array",
"items": {
"type": "resource-query"
}
},
"matchBinIds": {
"description": "List of Bin Id's to match.",
"type": "array",
"items": {
"type": "object",
"properties": {
"binId": {
"description": "Bin id to match",
"type": "string",
"format": "osid-id"
},
"match": {
"description": "true for a positive match, false for a negative match",
"type": "boolean"
}
}
}
},
"binQueries": {
"description": "BinQueries to match Bin. Each query performs a boolean OR.",
"type": "array",
"items": {
"type": "bin-query"
}
}
}
}Example:
{
"matchDisplayNames": [
{
"displayName": "string to exclude",
"match": false
}
]
}get /resource/bins/{binId}/resource-relationship-query
Get the ResourceRelationshipQuery associated with this smart Bin.
URI Parameters
- binId: required(string)
HTTP status code 200
Body
Media type: application/json
Type: any
Example:
{
"matchDisplayNames": [
{
"displayName": "string to exclude",
"match": 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": "Bin not found" }