CampusAPI Messaging Services API documentation version 0.1.5
Based on OSID version 3.0.0
https://base.url/messaging
Overview
The Messaging service package manages sending and receiving of messages.
This package includes the following entities:
Messages
Messages are structures that include a sender, recipients, and a timestamp. The text of the Message is displayable as text and may include a specific structure defined using typed service extensions.
Until a Message is sent, it is stored and may be edited as a draft. Once a Message is sent, the Message includes the sending Agent as well as the addressed recipients represented by a list of Resources. A Message is received by a receiving Agent which generally is related to one of the recipients.
Sending Messages:
Once a Message has been created, it may be sent from the authenticated Agent to a specified list of recipients using the Messaging service. The same Message may be sent to additional recipients by returning to the Messaging service and using the same Message Id.
Receiving Messages:
The Message service can be used to retrieve incoming Messages. From the point of view of the receiving Agent, Messages from the this service indicate a foreign Agent as the sender and at least one recipient related to the authenticated Agent which generally, but may not always, be the receiving Agent.
The same methods are used to receive Messages as well as examine created Messages. The Messages seen in the Message services vary depending on the point of view implied by the Mailbox catalog.
On Resource & Agents:
The Agent is the identity of an authenticated actor while the Resource represents a real-world entity such as a person or organization. The mapping between Agents and Resources is managed by the Resource servie. In the Messaging service, an Agent sends a Message to a Resource, However, aspects of the service also examine messages from the recipient's point of view where the sender appears as an object instead of an actor. The Messaging service references both a sender as a Resource and a sending agent as an Agent. The Messaging service provider orchestrates the mapping between Agents and Resources as a messaging application would access a local address book for looking up full names corresponding to incoming email addresses.
Field | Description | Type |
---|---|---|
id(read‑only) | The unique id of this message, provided by system. | string(osid‑id) |
uri(read‑only) | The uri of this message, provided by system. | string(uri) |
displayName | The name of this message for display. | string |
description | The description of this message. | string |
genusTypeId (read‑only) | Id of the immutable type of this message. Default type set by system unless specified in query parameter. | string(osid‑id) |
recordTypeIds (read‑only) | Type Ids of record types available on this message. Record types define special attributes available on an object to support specific applications or classes of applications and are documented elsewhere. | string(osid‑id)[] |
subjectLine | The subject line of this message. | string |
text | The text of the message. | string |
Receipts
NO ENTITY DOC FOUND
Mailboxes
Messages are cataloged using Mailboxes. Mailboxes be may used to store messages for different users, and may also be used to provide message folders for each user. Like all catalog objects, a Mailbox may belong to a federated hierarchy to provide federated and filtering views among multiple mailboxes.
Field | Description | Type |
---|---|---|
id(read‑only) | The unique id of this mailbox, provided by system. | string(osid‑id) |
uri(read‑only) | The uri of this mailbox, provided by system. | string(uri) |
displayName | The name of this mailbox for display. | string |
description | The description of this mailbox. | string |
genusTypeId (read‑only) | Id of the immutable type of this mailbox. Default type set by system unless specified in query parameter. | string(osid‑id) |
recordTypeIds (read‑only) | Type Ids of record types available on this mailbox. 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 mailbox. References a resource.Resource object. | string(osid‑id) |
brandingIds | The branding of this mailbox. References repository.Asset objects. | string(osid‑id)[] |
license | The licensing that applies to this mailbox. | string |
License
CampusAPI REST Documentation Copyright 2023 DXtera Institute. Based on the Open Service Interface Definitions: http://osid.org
/messages
Collection of Messages in a system, federation of systems, or in a default Mailbox.
Get all Messages in the system or default Mailbox.
Create a new Message in the default Mailbox.
get /messages
Get all Messages in the system or default Mailbox.
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", "receipt", or "all" to expand all referenced objects or types. This parameter can be repeated to expand multiples.
Example:
all
- genusTypeId: (string)
The id string to match a genusType
Example:
type.Type%3AexampleMessageType%40dxtera.org
- parentGenusTypeId: (string)
The id string to match a parent genusType
Example:
type.Type%3AparentTypeExampleMessageType%40dxtera.org
- recordTypeId: (string)
The id string to match a recordType
Example:
type.Type%3AexampleMessageType%40campusapi.org
- senderId: (string)
Id string to match sender.
Example:
resource.Resource%3A4496%40base.url
- recipientId: (string)
Id string to match recipient.
Example:
resource.Resource%3A6944%40base.url
- sentFromTime: (string)
Get all sent messages from time inclusive. Use with sentToTime to define date-time range query.
Example:
2020-10-03T08:10:00.000Z
- sentToTime: (string)
Get all sent messages up to this time inclusive. Use with sentFromTime to define date-time range query.
Example:
2020-10-04T08:10:00.000Z
- receivedFromTime: (string)
Get all received messages from time inclusive. Use with receivedToTime to define date-time range query.
Example:
2020-10-03T08:10:00.000Z
- receivedToTime: (string)
Get all received messages up to this time inclusive. Use with receivedFromTime to define date-time range query.
Example:
2020-10-04T08:10:00.000Z
- mailboxId: (string)
The id string to match a mailbox
Example:
messaging.Mailbox%3A8374%40base.url
HTTP status code 200
Body
Media type: application/json
Type: any
Example:
[
{
"id": "messaging.Message:5671@base.url",
"uri": "http://base.url/open/campusapi/messaging/message/messaging.Message%3A5671%40base.url",
"displayName": "Display Name of this Message",
"description": "The description of this Message",
"genusTypeId": "type.Type:defaultMessageType@base.url",
"recordTypeIds": [ "type.Type:exampleMessageRecordType@campusapi.org", "..."],
"subjectLine": "This is the SubjectLine",
"text": "This is the Text",
"receiptId": "messaging.Receipt:26@base.url"
},
{
"...": "..."
}
]
HTTP status code 403
Body
Media type: application/json
Type: any
Example:
{"message": "Permission denied" }
post /messages
Create a new Message in the default Mailbox.
Query Parameters
- genusType: (string)
specify a particular message type to create
Example:
type.Type%3AexampleMessageType%40dxtera.org
- recordType: (array of )
specify support for one or more message record types
Example:
[ "type.Type%3AexampleMessageRecordType%40campusapi.org", "..." ]
- mailboxId: (string)
specify in which mailbox to create this message
Example:
messaging.Mailbox%3A8374%40base.url
Body
Media type: application/json
Type: json
Content:
{
"$schema": "http://json-schema.org/draft-04/schema#",
"title": "Message",
"type": "object",
"properties": {
"id": {
"description": "The unique id of this message, provided by system.",
"type": "string",
"format": "osid-id",
"readOnly": true
},
"uri": {
"description": "The uri of this message, provided by system.",
"type": "string",
"format": "uri",
"readOnly": true
},
"displayName": {
"description": "The name of this message for display.",
"type": "string"
},
"description": {
"description": "The description of this message.",
"type": "string"
},
"genusTypeId": {
"description": "Id of the immutable type of this message. 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 message. 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
},
"subjectLine": {
"description": "The subject line of this message.",
"type": "string"
},
"text": {
"description": "The text of the message.",
"type": "string"
}
}
}
Example:
{
"displayName": "Display Name of this Message",
"description": "The description of this Message",
"subjectLine": "This is the SubjectLine",
"text": "This is the Text",
"receiptId": "messaging.Receipt:7507@base.url"
}
Query the collection of Messages in a system, federation of systems, or in a default mailbox by posting a Query object.
Submit a query using a MessageQuery object.
post /messages/message-query
Submit a query using a MessageQuery 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", "receipt", 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": "MessageQuery",
"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"
}
}
}
},
"matchSubjectLine": {
"description": "List of SubjectLine strings to match. Boolean OR performed among multiple subjectLines.",
"type": "array",
"items": {
"type": "object",
"properties": {
"subjectLines": {
"description": "subjectLines 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"
}
}
}
},
"matchAnySubjectLine": {
"description": "Match subjectLines with any value. true to match Messages with any subject line, false to match ProgramOfferings with no subject line",
"type": "boolean"
},
"matchText": {
"description": "List of Text strings to match. Boolean OR performed among multiple texts.",
"type": "array",
"items": {
"type": "object",
"properties": {
"texts": {
"description": "texts 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"
}
}
}
},
"matchAnyText": {
"description": "Match texts with any value. true to match Messages with any text, false to match ProgramOfferings with no text",
"type": "boolean"
},
"matchMailboxIds": {
"description": "List of Mailbox Id's to match.",
"type": "array",
"items": {
"type": "object",
"properties": {
"mailboxId": {
"description": "Mailbox id to match",
"type": "string",
"format": "osid-id"
},
"match": {
"description": "true for a positive match, false for a negative match",
"type": "boolean"
}
}
}
},
"mailboxQueries": {
"description": "MailboxQueries to match Mailbox. Each query performs a boolean OR.",
"type": "array",
"items": {
"type": "object"
}
}
}
}
Example:
{
"matchDisplayNames": [
{
"displayName": "string to exclude",
"match": false
}
]
}
HTTP status code 200
Body
Media type: application/json
Type: any
Example:
[
{
"id": "messaging.Message:5671@base.url",
"uri": "http://base.url/open/campusapi/messaging/message/messaging.Message%3A5671%40base.url",
"displayName": "Display Name of this Message",
"description": "The description of this Message",
"genusTypeId": "type.Type:defaultMessageType@base.url",
"recordTypeIds": [ "type.Type:exampleMessageRecordType@campusapi.org", "..."],
"subjectLine": "This is the SubjectLine",
"text": "This is the Text",
"receiptId": "messaging.Receipt:26@base.url"
},
{
"...": "..."
}
]
HTTP status code 403
Body
Media type: application/json
Type: any
Example:
{"message": "Permission denied" }
Entity representing a Message form metadata.
Get form metadata for creating a new Message.
get /messages/metadata
Get form metadata for creating a new Message.
Query Parameters
- genusType: (string)
specify a particular message type to create
Example:
type.Type%3AexampleMessageType%40dxtera.org
- recordType: (array of )
specify support for one or more message record types
Example:
[ "type.Type%3AexampleMessageRecordType%40campusapi.org", "..." ]
- mailboxId: (string)
specify in which mailbox to create this message
Example:
messaging.Mailbox%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": "Message",
"type": "object",
"required": ["displayName"],
"properties": {
"id": {
"description": "The unique id of this message, provided by system.",
"type": "string",
"format": "osid-id",
"readOnly": true
},
"uri": {
"description": "The uri of this message, provided by system.",
"type": "string",
"format": "uri",
"readOnly": true
},
"displayName": {
"description": "The name of this message for display.",
"type": "string",
"read-only": false,
"minLength": 1,
"maxLength": 128,
"pattern": "",
"default": "",
"enum": [],
"elementId": "Message.Message:displayName@base.url",
"existingValue": "The Existing Name",
"elementLabel": "Name",
"instructions": "Enter a name for this message",
"linked": false
},
"description": {
"description": "The description of this message.",
"type": "string",
"read-only": false,
"minLength": 0,
"maxLength": 128,
"pattern": "",
"default": "",
"enum": [],
"elementId": "Message.Message:displayName@demo.base.url",
"existingValue": "The Existing Description",
"elementLabel": "Description",
"instructions": "Enter a description for this message",
"linked": false
},
"genusTypeId": {
"description": "Id of the immutable type of this message. 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 message. 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
},
"subjectLine": {
"description": "The subject line of this message.",
"type": "string",
"read-only": false,
"minLength": null,
"maxLength": null,
"pattern": "",
"default": "",
"enum": [],
"elementId": "messaging.Message:subjectLine@dxtera.org",
"existingValue": "The existing subject line",
"elementLabel": "Subject Line",
"instructions": "Enter a subject line for this message.",
"linked": false
},
"text": {
"description": "The text of the message.",
"type": "string",
"read-only": false,
"minLength": null,
"maxLength": null,
"pattern": "",
"default": "",
"enum": [],
"elementId": "messaging.Message:text@dxtera.org",
"existingValue": "The existing text",
"elementLabel": "Text",
"instructions": "Enter a text for this message.",
"linked": false
}
}
}
HTTP status code 403
Body
Media type: application/json
Type: any
Example:
{"message": "Permission denied" }
Entity representing a Message
Get a particular Message given its id.
Update a particular Message given its id.
Delete a particular Message given its id.
get /messages/{messageId}
Get a particular Message given its id.
URI Parameters
- messageId: required(string)
Query Parameters
- expand: (string)
Expand object or type for named attribute: "genusType", "recordType", "receipt", 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": "messaging.Message:5671@base.url",
"uri": "http://base.url/open/campusapi/messaging/message/messaging.Message%3A5671%40base.url",
"displayName": "Display Name of this Message",
"description": "The description of this Message",
"genusTypeId": "type.Type:defaultMessageType@base.url",
"recordTypeIds": [ "type.Type:exampleMessageRecordType@campusapi.org", "..."],
"subjectLine": "This is the SubjectLine",
"text": "This is the Text",
"receiptId": "messaging.Receipt:26@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": "Message not found" }
put /messages/{messageId}
Update a particular Message given its id.
URI Parameters
- messageId: required(string)
Body
Media type: application/json
Type: json
Content:
{
"$schema": "http://json-schema.org/draft-04/schema#",
"title": "Message",
"type": "object",
"properties": {
"id": {
"description": "The unique id of this message, provided by system.",
"type": "string",
"format": "osid-id",
"readOnly": true
},
"uri": {
"description": "The uri of this message, provided by system.",
"type": "string",
"format": "uri",
"readOnly": true
},
"displayName": {
"description": "The name of this message for display.",
"type": "string"
},
"description": {
"description": "The description of this message.",
"type": "string"
},
"genusTypeId": {
"description": "Id of the immutable type of this message. 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 message. 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
},
"subjectLine": {
"description": "The subject line of this message.",
"type": "string"
},
"text": {
"description": "The text of the message.",
"type": "string"
}
}
}
Example:
{
"displayName": "Display Name of this Message",
"description": "The description of this Message",
"subjectLine": "This is the SubjectLine",
"text": "This is the Text",
"receiptId": "messaging.Receipt:7507@base.url"
}
HTTP status code 200
Body
Media type: application/json
Type: any
Example:
{ "message": "The Message 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": "Message not found" }
delete /messages/{messageId}
Delete a particular Message given its id.
URI Parameters
- messageId: required(string)
HTTP status code 200
Body
Media type: application/json
Type: any
Example:
{ "message": "The Message 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": "Message not found" }
Entity representing a Message form metadata for update
Get form metadata for updating an existing Message.
get /messages/{messageId}/metadata
Get form metadata for updating an existing Message.
URI Parameters
- messageId: required(string)
HTTP status code 200
Body
Media type: application/json
Type: any
Example:
{
"$schema": "http://json-schema.org/draft/2019-9/schema#",
"title": "Message",
"type": "object",
"required": ["displayName"],
"properties": {
"id": {
"description": "The unique id of this message, provided by system.",
"type": "string",
"format": "osid-id",
"readOnly": true
},
"uri": {
"description": "The uri of this message, provided by system.",
"type": "string",
"format": "uri",
"readOnly": true
},
"displayName": {
"description": "The name of this message for display.",
"type": "string",
"read-only": false,
"minLength": 1,
"maxLength": 128,
"pattern": "",
"default": "",
"enum": [],
"elementId": "Message.Message:displayName@base.url",
"existingValue": "The Existing Name",
"elementLabel": "Name",
"instructions": "Enter a name for this message",
"linked": false
},
"description": {
"description": "The description of this message.",
"type": "string",
"read-only": false,
"minLength": 0,
"maxLength": 128,
"pattern": "",
"default": "",
"enum": [],
"elementId": "Message.Message:displayName@demo.base.url",
"existingValue": "The Existing Description",
"elementLabel": "Description",
"instructions": "Enter a description for this message",
"linked": false
},
"genusTypeId": {
"description": "Id of the immutable type of this message. 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 message. 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
},
"subjectLine": {
"description": "The subject line of this message.",
"type": "string",
"read-only": false,
"minLength": null,
"maxLength": null,
"pattern": "",
"default": "",
"enum": [],
"elementId": "messaging.Message:subjectLine@dxtera.org",
"existingValue": "The existing subject line",
"elementLabel": "Subject Line",
"instructions": "Enter a subject line for this message.",
"linked": false
},
"text": {
"description": "The text of the message.",
"type": "string",
"read-only": false,
"minLength": null,
"maxLength": null,
"pattern": "",
"default": "",
"enum": [],
"elementId": "messaging.Message:text@dxtera.org",
"existingValue": "The existing text",
"elementLabel": "Text",
"instructions": "Enter a text for this message.",
"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": "message not found" }
/receipts
Collection of Receipts in a system, federation of systems, or in a default Mailbox.
Get all Receipts in the system or default Mailbox.
Create a new Receipt in the default Mailbox.
get /receipts
Get all Receipts in the system or default Mailbox.
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", "message", or "all" to expand all referenced objects or types. This parameter can be repeated to expand multiples.
Example:
all
- genusTypeId: (string)
The id string to match a genusType
Example:
type.Type%3AexampleReceiptType%40dxtera.org
- parentGenusTypeId: (string)
The id string to match a parent genusType
Example:
type.Type%3AparentTypeExampleReceiptType%40dxtera.org
- recordTypeId: (string)
The id string to match a recordType
Example:
type.Type%3AexampleReceiptType%40campusapi.org
- messageId: (string)
Id string to match message.
Example:
messaging.Message%3A4393%40base.url
- recipientId: (string)
Id string to match recipient.
Example:
resource.Resource%3A4496%40base.url
- mailboxId: (string)
The id string to match a mailbox
Example:
messaging.Mailbox%3A8374%40base.url
HTTP status code 200
Body
Media type: application/json
Type: any
Example:
[
{
"id": "messaging.Receipt:3762@base.url",
"uri": "http://base.url/open/campusapi/messaging/receipt/messaging.Receipt%3A3762%40base.url",
"displayName": "Display Name of this Receipt",
"description": "The description of this Receipt",
"genusTypeId": "type.Type:defaultReceiptType@base.url",
"recordTypeIds": [ "type.Type:exampleReceiptRecordType@campusapi.org", "..."],
"messageId": "messaging.Message:2904@base.url"
},
{
"...": "..."
}
]
HTTP status code 403
Body
Media type: application/json
Type: any
Example:
{"message": "Permission denied" }
post /receipts
Create a new Receipt in the default Mailbox.
Query Parameters
- genusType: (string)
specify a particular receipt type to create
Example:
type.Type%3AexampleReceiptType%40dxtera.org
- recordType: (array of )
specify support for one or more receipt record types
Example:
[ "type.Type%3AexampleReceiptRecordType%40campusapi.org", "..." ]
- mailboxId: (string)
specify in which mailbox to create this receipt
Example:
messaging.Mailbox%3A8374%40base.url
Body
Media type: application/json
Type: json
Content:
{
"$schema": "http://json-schema.org/draft-04/schema#",
"title": "Receipt",
"type": "object",
"properties": {
"id": {
"description": "The unique id of this receipt, provided by system.",
"type": "string",
"format": "osid-id",
"readOnly": true
},
"uri": {
"description": "The uri of this receipt, provided by system.",
"type": "string",
"format": "uri",
"readOnly": true
},
"displayName": {
"description": "The name of this receipt for display.",
"type": "string"
},
"description": {
"description": "The description of this receipt.",
"type": "string"
},
"genusTypeId": {
"description": "Id of the immutable type of this receipt. 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 receipt. 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
}
}
}
Example:
{
"displayName": "Display Name of this Receipt",
"description": "The description of this Receipt",
"messageId": "messaging.Message:1501@base.url"
}
Query the collection of Receipts in a system, federation of systems, or in a default mailbox by posting a Query object.
Submit a query using a ReceiptQuery object.
post /receipts/receipt-query
Submit a query using a ReceiptQuery 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", "message", 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": "ReceiptQuery",
"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"
}
}
}
},
"matchMailboxIds": {
"description": "List of Mailbox Id's to match.",
"type": "array",
"items": {
"type": "object",
"properties": {
"mailboxId": {
"description": "Mailbox id to match",
"type": "string",
"format": "osid-id"
},
"match": {
"description": "true for a positive match, false for a negative match",
"type": "boolean"
}
}
}
},
"mailboxQueries": {
"description": "MailboxQueries to match Mailbox. Each query performs a boolean OR.",
"type": "array",
"items": {
"type": "object"
}
}
}
}
Example:
{
"matchDisplayNames": [
{
"displayName": "string to exclude",
"match": false
}
]
}
HTTP status code 200
Body
Media type: application/json
Type: any
Example:
[
{
"id": "messaging.Receipt:3762@base.url",
"uri": "http://base.url/open/campusapi/messaging/receipt/messaging.Receipt%3A3762%40base.url",
"displayName": "Display Name of this Receipt",
"description": "The description of this Receipt",
"genusTypeId": "type.Type:defaultReceiptType@base.url",
"recordTypeIds": [ "type.Type:exampleReceiptRecordType@campusapi.org", "..."],
"messageId": "messaging.Message:2904@base.url"
},
{
"...": "..."
}
]
HTTP status code 403
Body
Media type: application/json
Type: any
Example:
{"message": "Permission denied" }
Entity representing a Receipt form metadata.
Get form metadata for creating a new Receipt.
get /receipts/metadata
Get form metadata for creating a new Receipt.
Query Parameters
- genusType: (string)
specify a particular receipt type to create
Example:
type.Type%3AexampleReceiptType%40dxtera.org
- recordType: (array of )
specify support for one or more receipt record types
Example:
[ "type.Type%3AexampleReceiptRecordType%40campusapi.org", "..." ]
- mailboxId: (string)
specify in which mailbox to create this receipt
Example:
messaging.Mailbox%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": "Receipt",
"type": "object",
"required": ["displayName"],
"properties": {
"id": {
"description": "The unique id of this receipt, provided by system.",
"type": "string",
"format": "osid-id",
"readOnly": true
},
"uri": {
"description": "The uri of this receipt, provided by system.",
"type": "string",
"format": "uri",
"readOnly": true
},
"displayName": {
"description": "The name of this receipt for display.",
"type": "string",
"read-only": false,
"minLength": 1,
"maxLength": 128,
"pattern": "",
"default": "",
"enum": [],
"elementId": "Receipt.Receipt:displayName@base.url",
"existingValue": "The Existing Name",
"elementLabel": "Name",
"instructions": "Enter a name for this receipt",
"linked": false
},
"description": {
"description": "The description of this receipt.",
"type": "string",
"read-only": false,
"minLength": 0,
"maxLength": 128,
"pattern": "",
"default": "",
"enum": [],
"elementId": "Receipt.Receipt:displayName@demo.base.url",
"existingValue": "The Existing Description",
"elementLabel": "Description",
"instructions": "Enter a description for this receipt",
"linked": false
},
"genusTypeId": {
"description": "Id of the immutable type of this receipt. 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 receipt. 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
}
}
}
HTTP status code 403
Body
Media type: application/json
Type: any
Example:
{"message": "Permission denied" }
Entity representing a Receipt
Get a particular Receipt given its id.
Update a particular Receipt given its id.
Delete a particular Receipt given its id.
get /receipts/{receiptId}
Get a particular Receipt given its id.
URI Parameters
- receiptId: required(string)
Query Parameters
- expand: (string)
Expand object or type for named attribute: "genusType", "recordType", "message", 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": "messaging.Receipt:3762@base.url",
"uri": "http://base.url/open/campusapi/messaging/receipt/messaging.Receipt%3A3762%40base.url",
"displayName": "Display Name of this Receipt",
"description": "The description of this Receipt",
"genusTypeId": "type.Type:defaultReceiptType@base.url",
"recordTypeIds": [ "type.Type:exampleReceiptRecordType@campusapi.org", "..."],
"messageId": "messaging.Message:2904@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": "Receipt not found" }
put /receipts/{receiptId}
Update a particular Receipt given its id.
URI Parameters
- receiptId: required(string)
Body
Media type: application/json
Type: json
Content:
{
"$schema": "http://json-schema.org/draft-04/schema#",
"title": "Receipt",
"type": "object",
"properties": {
"id": {
"description": "The unique id of this receipt, provided by system.",
"type": "string",
"format": "osid-id",
"readOnly": true
},
"uri": {
"description": "The uri of this receipt, provided by system.",
"type": "string",
"format": "uri",
"readOnly": true
},
"displayName": {
"description": "The name of this receipt for display.",
"type": "string"
},
"description": {
"description": "The description of this receipt.",
"type": "string"
},
"genusTypeId": {
"description": "Id of the immutable type of this receipt. 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 receipt. 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
}
}
}
Example:
{
"displayName": "Display Name of this Receipt",
"description": "The description of this Receipt",
"messageId": "messaging.Message:1501@base.url"
}
HTTP status code 200
Body
Media type: application/json
Type: any
Example:
{ "message": "The Receipt 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": "Receipt not found" }
delete /receipts/{receiptId}
Delete a particular Receipt given its id.
URI Parameters
- receiptId: required(string)
HTTP status code 200
Body
Media type: application/json
Type: any
Example:
{ "message": "The Receipt 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": "Receipt not found" }
Entity representing a Receipt form metadata for update
Get form metadata for updating an existing Receipt.
get /receipts/{receiptId}/metadata
Get form metadata for updating an existing Receipt.
URI Parameters
- receiptId: required(string)
HTTP status code 200
Body
Media type: application/json
Type: any
Example:
{
"$schema": "http://json-schema.org/draft/2019-9/schema#",
"title": "Receipt",
"type": "object",
"required": ["displayName"],
"properties": {
"id": {
"description": "The unique id of this receipt, provided by system.",
"type": "string",
"format": "osid-id",
"readOnly": true
},
"uri": {
"description": "The uri of this receipt, provided by system.",
"type": "string",
"format": "uri",
"readOnly": true
},
"displayName": {
"description": "The name of this receipt for display.",
"type": "string",
"read-only": false,
"minLength": 1,
"maxLength": 128,
"pattern": "",
"default": "",
"enum": [],
"elementId": "Receipt.Receipt:displayName@base.url",
"existingValue": "The Existing Name",
"elementLabel": "Name",
"instructions": "Enter a name for this receipt",
"linked": false
},
"description": {
"description": "The description of this receipt.",
"type": "string",
"read-only": false,
"minLength": 0,
"maxLength": 128,
"pattern": "",
"default": "",
"enum": [],
"elementId": "Receipt.Receipt:displayName@demo.base.url",
"existingValue": "The Existing Description",
"elementLabel": "Description",
"instructions": "Enter a description for this receipt",
"linked": false
},
"genusTypeId": {
"description": "Id of the immutable type of this receipt. 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 receipt. 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
}
}
}
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": "receipt not found" }
/mailboxes
Collection of Mailboxes in a system or federation of systems.
Get all Mailboxes.
Create a new Mailbox.
get /mailboxes
Get all Mailboxes.
Query Parameters
- offset: (integer - default: 0)
Skip over a number of elements by specifying an offset value for the query
Example:
20
- limit: (integer - default: 10)
Limit the number of elements on the response
Example:
80
- expand: (string)
Expand object or type for named attribute: "genusType", "recordType", "provider", "branding", or "all" to expand all referenced objects or types. This parameter can be repeated to expand multiples.
Example:
all
- genusTypeId: (string)
The id string to match a genusType
Example:
type.Type%3AexampleMailboxType%40dxtera.org
- parentGenusTypeId: (string)
The id string to match a parent genusType
Example:
type.Type%3AparentTypeExampleMailboxType%40dxtera.org
- recordTypeId: (string)
The id string to match a recordType
Example:
type.Type%3AexampleMailboxType%40campusapi.org
- providerId: (string)
Id string to match provider.
Example:
resource.Resource%3A3007%40demo.dxtera.org
- messageId: (string)
Get mailboxes mapped to this message.
Example:
messaging.Message%3A441%40demo.dxtera.org
- receiptId: (string)
Get mailboxes mapped to this receipt.
Example:
messaging.Receipt%3A441%40demo.dxtera.org
HTTP status code 200
Body
Media type: application/json
Type: any
Example:
[
{
"id": "messaging.Mailbox:532@base.url",
"uri": "http://base.url/open/campusapi/messaging/mailbox/messaging.Mailbox%3A532%40base.url",
"displayName": "Display Name of this Mailbox",
"description": "The description of this Mailbox",
"genusTypeId": "type.Type:defaultMailboxType@base.url",
"recordTypeIds": [ "type.Type:exampleMailboxRecordType@campusapi.org", "..."],
"providerId": "resource.Resource:123@base.url",
"brandingId": "asset.Asset:Mailbox@base.url",
"license": "The license that applies to this Mailbox"
},
{
"...": "..."
}
]
HTTP status code 403
Body
Media type: application/json
Type: any
Example:
{"message": "Permission denied" }
post /mailboxes
Create a new Mailbox.
Query Parameters
- genusType: (string)
specify a particular mailbox type to create
Example:
type.Type%3AexampleMailboxType%40dxtera.org
- recordType: (array of )
specify support for one or more mailbox record types
Example:
[ "type.Type%3AexampleMailboxRecordType%40campusapi.org", "..." ]
Body
Media type: application/json
Type: json
Content:
{
"$schema": "http://json-schema.org/draft-04/schema#",
"title": "Mailbox",
"type": "object",
"properties": {
"id": {
"description": "The unique id of this mailbox, provided by system.",
"type": "string",
"format": "osid-id",
"readOnly": true
},
"uri": {
"description": "The uri of this mailbox, provided by system.",
"type": "string",
"format": "uri",
"readOnly": true
},
"displayName": {
"description": "The name of this mailbox for display.",
"type": "string"
},
"description": {
"description": "The description of this mailbox.",
"type": "string"
},
"genusTypeId": {
"description": "Id of the immutable type of this mailbox. 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 mailbox. 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 mailbox.",
"type": "string",
"format": "osid-id"
},
"brandingIds": {
"description": "The branding of this mailbox. A collection of Assets.",
"type": "array",
"items" : {
"type": "string",
"format": "osid-id"
}
},
"license": {
"description": "The licensing that applies to this mailbox.",
"type": "string"
}
}
}
Example:
{
"displayName": "Display Name of this Mailbox",
"description": "The description of this Mailbox",
"providerId": "resource.Resource:123@base.url",
"brandingId": "asset.Asset:Mailbox@base.url",
"license": "The license that applies to this Mailbox"
}
Query the collection of Mailboxes in a system, federation of systems, or in a default mailbox by posting a Query object.
Submit a query using a MailboxQuery object.
post /mailboxes/mailbox-query
Submit a query using a MailboxQuery object.
Query Parameters
- offset: (integer - default: 0)
Skip over a number of elements by specifying an offset value for the query
Example:
20
- limit: (integer - default: 10)
Limit the number of elements on the response
Example:
80
- expand: (string)
Expand object or type for named attribute: "genusType", "recordType", or "all" to expand all referenced objects or types. This parameter can be repeated to expand multiples.
Example:
all
Body
Media type: application/json
Type: json
Content:
{
"$schema": "http://json-schema.org/draft-04/schema#",
"title": "MailboxQuery",
"type": "object",
"properties": {
"matchIds": {
"description": "List of Ids to match. Boolean OR performed among multiple Ids.",
"type": "array",
"items": {
"type": "object",
"properties": {
"id": {
"description": "id to match",
"type": "string",
"format": "osid-id"
},
"match": {
"description": "true for a positive match, false for a negative match",
"type": "boolean"
}
}
}
},
"matchKeywords": {
"description": "List keywords to match. Multiple keywords can be added to perform a boolean OR among them. A keyword may be applied to any of the elements defined in this object such as the display name, description or any attribute defined in or implemented by this object.",
"type": "array",
"items": {
"type": "object",
"properties": {
"keyword": {
"description": "keyword to match",
"type": "string"
},
"stringMatchType": {
"description": "the string match type",
"type": "string",
"format": "osid-id"
},
"match": {
"description": "true for a positive match, false for a negative match",
"type": "boolean"
}
}
}
},
"matchDisplayNames": {
"description": "List of displayName strings to match. Boolean OR performed among multiple displayNames.",
"type": "array",
"items": {
"type": "object",
"properties": {
"displayName": {
"description": "displayName to match",
"type": "string"
},
"stringMatchType": {
"description": "the string match type",
"type": "string",
"format": "osid-id"
},
"match": {
"description": "true for a positive match, false for a negative match",
"type": "boolean"
}
}
}
},
"matchDescriptions": {
"description": "List of discription strings to match. Boolean OR performed among multiple descriptions.",
"type": "array",
"items": {
"type": "object",
"properties": {
"description": {
"description": "description to match",
"type": "string"
},
"stringMatchType": {
"description": "the string match type",
"type": "string",
"format": "osid-id"
},
"match": {
"description": "true for a positive match, false for a negative match",
"type": "boolean"
}
}
}
},
"matchGenusTypeIds": {
"description": "List of genus type ids to match. Boolean OR performed among multiple ids.",
"type": "array",
"items": {
"type": "object",
"properties": {
"genusTypeid": {
"description": "genus type id to match",
"type": "string",
"format": "osid-id"
},
"match": {
"description": "true for a positive match, false for a negative match",
"type": "boolean"
}
}
}
},
"matchRecordTypeIds": {
"description": "List of record type ids to match. Boolean OR performed among multiple ids.",
"type": "array",
"items": {
"type": "object",
"properties": {
"genusTypeid": {
"description": "record type id to match",
"type": "string",
"format": "osid-id"
},
"match": {
"description": "true for a positive match, false for a negative match",
"type": "boolean"
}
}
}
},
"matchProviderIds": {
"description": "List of provider Ids to match.",
"type": "array",
"items": {
"type": "object",
"properties": {
"stateId": {
"description": "id to match",
"type": "string",
"format": "osid-id"
},
"match": {
"description": "true for a positive match, false for a negative match",
"type": "boolean"
}
}
}
},
"providerQueries": {
"description": "resource.ResourceQuery for provider. Each query performs a boolean OR.",
"type": "array",
"items": {
"type": "object"
},
"matchAnyProvider": {
"description": "Match providers with any value. true to match Mailbox with any provider, false to match Mailbox with no provider",
"type": "boolean"
}
},
"matchBrandingIds": {
"description": "List of branding asset Ids to match.",
"type": "array",
"items": {
"type": "object",
"properties": {
"stateId": {
"description": "id to match",
"type": "string",
"format": "osid-id"
},
"match": {
"description": "true for a positive match, false for a negative match",
"type": "boolean"
}
}
}
},
"brandingQueries": {
"description": "repository.AssetQuery for branding. Each query performs a boolean OR.",
"type": "array",
"items": {
"type": "object"
}
},
"matchAnyBranding": {
"description": "Match brandingss with any value. true to match Mailbox with any branding, false to match Mailbox 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"
}
}
}
},
"matchMailboxIds": {
"description": "List of Mailbox Id's to match.",
"type": "array",
"items": {
"type": "object",
"properties": {
"mailboxId": {
"description": "Mailbox id to match",
"type": "string",
"format": "osid-id"
},
"match": {
"description": "true for a positive match, false for a negative match",
"type": "boolean"
}
}
}
},
"mailboxQueries": {
"description": "MailboxQueries to match Mailbox. Each query performs a boolean OR.",
"type": "array",
"items": {
"type": "object"
}
}
}
}
Example:
{
"matchDisplayNames": [
{
"displayName": "string to exclude",
"match": false
}
]
}
HTTP status code 200
Body
Media type: application/json
Type: any
Example:
[
{
"id": "messaging.Mailbox:532@base.url",
"uri": "http://base.url/open/campusapi/messaging/mailbox/messaging.Mailbox%3A532%40base.url",
"displayName": "Display Name of this Mailbox",
"description": "The description of this Mailbox",
"genusTypeId": "type.Type:defaultMailboxType@base.url",
"recordTypeIds": [ "type.Type:exampleMailboxRecordType@campusapi.org", "..."],
"providerId": "resource.Resource:123@base.url",
"brandingId": "asset.Asset:Mailbox@base.url",
"license": "The license that applies to this Mailbox"
},
{
"...": "..."
}
]
HTTP status code 403
Body
Media type: application/json
Type: any
Example:
{"message": "Permission denied" }
Entity representing a Mailbox form metadata.
Get form metadata for creating a new Mailbox.
get /mailboxes/metadata
Get form metadata for creating a new Mailbox.
HTTP status code 200
Body
Media type: application/json
Type: any
Example:
{
"$schema": "http://json-schema.org/draft/2019-9/schema#",
"title": "Mailbox",
"type": "object",
"required": ["displayName"],
"properties": {
"id": {
"description": "The unique id of this mailbox, provided by system.",
"type": "string",
"format": "osid-id",
"readOnly": true
},
"uri": {
"description": "The uri of this mailbox, provided by system.",
"type": "string",
"format": "uri",
"readOnly": true
},
"displayName": {
"description": "The name of this mailbox for display.",
"type": "string",
"read-only": false,
"minLength": 1,
"maxLength": 128,
"pattern": "",
"default": "",
"enum": [],
"elementId": "Mailbox.Mailbox:displayName@base.url",
"existingValue": "The Existing Name",
"elementLabel": "Name",
"instructions": "Enter a name for this mailbox",
"linked": false
},
"description": {
"description": "The description of this mailbox.",
"type": "string",
"read-only": false,
"minLength": 0,
"maxLength": 128,
"pattern": "",
"default": "",
"enum": [],
"elementId": "Mailbox.Mailbox:displayName@demo.base.url",
"existingValue": "The Existing Description",
"elementLabel": "Description",
"instructions": "Enter a description for this mailbox",
"linked": false
},
"genusTypeId": {
"description": "Id of the immutable type of this mailbox. 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 mailbox. 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 mailbox.",
"type": "string",
"format": "osid-id",
"read-only": false,
"pattern": "",
"default": "",
"enum": [],
"elementId": "Mailbox.Mailbox:provider@base.url",
"existingValue": "",
"elementLabel": "Provider",
"instructions": "Enter the provider of this mailbox",
"linked": false
},
"brandingIds": {
"description": "The branding of this mailbox. A list of Assets.",
"type": "array",
"items" : {
"type": "string",
"format": "osid-id",
"pattern": "",
"enum": []
},
"read-only": false,
"default": [],
"elementId": "Mailbox.Mailbox:branding@base.url",
"existingValue": "",
"elementLabel": "Branding",
"instructions": "Enter the branding images for this mailbox",
"linked": false
},
"license": {
"description": "The licensing that applies to this mailbox.",
"type": "string",
"read-only": false,
"minLength": 0,
"maxLength": 128,
"pattern": "",
"default": "",
"enum": [],
"elementId": "Mailbox.Mailbox:license@base.url",
"existingValue": "The Existing License",
"elementLabel": "License",
"instructions": "Include a license for this mailbox",
"linked": false
}
}
}
HTTP status code 403
Body
Media type: application/json
Type: any
Example:
{"message": "Permission denied" }
The root Mailboxes in the Mailbox hierarchy. A node with no parents is an orphan. While all Mailbox 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-mailbox
get /mailboxes/root-mailbox
Get all root root-mailbox
HTTP status code 200
Body
Media type: application/json
Type: any
Example:
[
{
"id": "messaging.Mailbox:532@base.url",
"uri": "http://base.url/open/campusapi/messaging/mailbox/messaging.Mailbox%3A532%40base.url",
"displayName": "Display Name of this Mailbox",
"description": "The description of this Mailbox",
"genusTypeId": "type.Type:defaultMailboxType@base.url",
"recordTypeIds": [ "type.Type:exampleMailboxRecordType@campusapi.org", "..."],
"providerId": "resource.Resource:123@base.url",
"brandingId": "asset.Asset:Mailbox@base.url",
"license": "The license that applies to this Mailbox"
},
{
"...": "..."
}
]
HTTP status code 403
Body
Media type: application/json
Type: any
Example:
{"message": "Permission denied" }
Entity representing a Mailbox
Get a particular Mailbox given its id.
Update a particular Mailbox given its id.
Delete a particular Mailbox given its id.
get /mailboxes/{mailboxId}
Get a particular Mailbox given its id.
URI Parameters
- mailboxId: required(string)
HTTP status code 200
Body
Media type: application/json
Type: any
Example:
{
"id": "messaging.Mailbox:532@base.url",
"uri": "http://base.url/open/campusapi/messaging/mailbox/messaging.Mailbox%3A532%40base.url",
"displayName": "Display Name of this Mailbox",
"description": "The description of this Mailbox",
"genusTypeId": "type.Type:defaultMailboxType@base.url",
"recordTypeIds": [ "type.Type:exampleMailboxRecordType@campusapi.org", "..."],
"providerId": "resource.Resource:123@base.url",
"brandingId": "asset.Asset:Mailbox@base.url",
"license": "The license that applies to this Mailbox"
}
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": "Mailbox not found" }
put /mailboxes/{mailboxId}
Update a particular Mailbox given its id.
URI Parameters
- mailboxId: required(string)
Body
Media type: application/json
Type: json
Content:
{
"$schema": "http://json-schema.org/draft-04/schema#",
"title": "Mailbox",
"type": "object",
"properties": {
"id": {
"description": "The unique id of this mailbox, provided by system.",
"type": "string",
"format": "osid-id",
"readOnly": true
},
"uri": {
"description": "The uri of this mailbox, provided by system.",
"type": "string",
"format": "uri",
"readOnly": true
},
"displayName": {
"description": "The name of this mailbox for display.",
"type": "string"
},
"description": {
"description": "The description of this mailbox.",
"type": "string"
},
"genusTypeId": {
"description": "Id of the immutable type of this mailbox. 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 mailbox. 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 mailbox.",
"type": "string",
"format": "osid-id"
},
"brandingIds": {
"description": "The branding of this mailbox. A collection of Assets.",
"type": "array",
"items" : {
"type": "string",
"format": "osid-id"
}
},
"license": {
"description": "The licensing that applies to this mailbox.",
"type": "string"
}
}
}
Example:
{
"displayName": "Display Name of this Mailbox",
"description": "The description of this Mailbox",
"providerId": "resource.Resource:123@base.url",
"brandingId": "asset.Asset:Mailbox@base.url",
"license": "The license that applies to this Mailbox"
}
HTTP status code 200
Body
Media type: application/json
Type: any
Example:
{ "message": "The Mailbox 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": "Mailbox not found" }
delete /mailboxes/{mailboxId}
Delete a particular Mailbox given its id.
URI Parameters
- mailboxId: required(string)
HTTP status code 200
Body
Media type: application/json
Type: any
Example:
{ "message": "The Mailbox 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": "Mailbox not found" }
Entity representing a Mailbox form metadata for update
Get form metadata for updating an existing Mailbox.
get /mailboxes/{mailboxId}/metadata
Get form metadata for updating an existing Mailbox.
URI Parameters
- mailboxId: required(string)
HTTP status code 200
Body
Media type: application/json
Type: any
Example:
{
"$schema": "http://json-schema.org/draft/2019-9/schema#",
"title": "Mailbox",
"type": "object",
"required": ["displayName"],
"properties": {
"id": {
"description": "The unique id of this mailbox, provided by system.",
"type": "string",
"format": "osid-id",
"readOnly": true
},
"uri": {
"description": "The uri of this mailbox, provided by system.",
"type": "string",
"format": "uri",
"readOnly": true
},
"displayName": {
"description": "The name of this mailbox for display.",
"type": "string",
"read-only": false,
"minLength": 1,
"maxLength": 128,
"pattern": "",
"default": "",
"enum": [],
"elementId": "Mailbox.Mailbox:displayName@base.url",
"existingValue": "The Existing Name",
"elementLabel": "Name",
"instructions": "Enter a name for this mailbox",
"linked": false
},
"description": {
"description": "The description of this mailbox.",
"type": "string",
"read-only": false,
"minLength": 0,
"maxLength": 128,
"pattern": "",
"default": "",
"enum": [],
"elementId": "Mailbox.Mailbox:displayName@demo.base.url",
"existingValue": "The Existing Description",
"elementLabel": "Description",
"instructions": "Enter a description for this mailbox",
"linked": false
},
"genusTypeId": {
"description": "Id of the immutable type of this mailbox. 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 mailbox. 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 mailbox.",
"type": "string",
"format": "osid-id",
"read-only": false,
"pattern": "",
"default": "",
"enum": [],
"elementId": "Mailbox.Mailbox:provider@base.url",
"existingValue": "",
"elementLabel": "Provider",
"instructions": "Enter the provider of this mailbox",
"linked": false
},
"brandingIds": {
"description": "The branding of this mailbox. A list of Assets.",
"type": "array",
"items" : {
"type": "string",
"format": "osid-id",
"pattern": "",
"enum": []
},
"read-only": false,
"default": [],
"elementId": "Mailbox.Mailbox:branding@base.url",
"existingValue": "",
"elementLabel": "Branding",
"instructions": "Enter the branding images for this mailbox",
"linked": false
},
"license": {
"description": "The licensing that applies to this mailbox.",
"type": "string",
"read-only": false,
"minLength": 0,
"maxLength": 128,
"pattern": "",
"default": "",
"enum": [],
"elementId": "Mailbox.Mailbox:license@base.url",
"existingValue": "The Existing License",
"elementLabel": "License",
"instructions": "Include a license for this mailbox",
"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": "mailbox not found" }
Get child Mailboxes for the given Mailbox in the hierarchy.
get /mailboxes/{mailboxId}/children
Get child Mailboxes for the given Mailbox in the hierarchy.
URI Parameters
- mailboxId: required(string)
HTTP status code 200
Body
Media type: application/json
Type: any
Example:
[
{
"id": "messaging.Mailbox:532@base.url",
"uri": "http://base.url/open/campusapi/messaging/mailbox/messaging.Mailbox%3A532%40base.url",
"displayName": "Display Name of this Mailbox",
"description": "The description of this Mailbox",
"genusTypeId": "type.Type:defaultMailboxType@base.url",
"recordTypeIds": [ "type.Type:exampleMailboxRecordType@campusapi.org", "..."],
"providerId": "resource.Resource:123@base.url",
"brandingId": "asset.Asset:Mailbox@base.url",
"license": "The license that applies to this Mailbox"
},
{
"...": "..."
}
]
HTTP status code 403
Body
Media type: application/json
Type: any
Example:
{"message": "Permission denied" }
Add Mailbox as child of the given Mailbox in the hierarchy.
Remove the given Mailbox as a child of the given Mailbox in the hierarchy.
put /mailboxes/{mailboxId}/children/{childId}
Add Mailbox as child of the given Mailbox in the hierarchy.
URI Parameters
- mailboxId: required(string)
- childId: required(string)
HTTP status code 200
Body
Media type: application/json
Type: any
Example:
{ "message": "The child Mailbox 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": "mailbox not found" }
delete /mailboxes/{mailboxId}/children/{childId}
Remove the given Mailbox as a child of the given Mailbox in the hierarchy.
URI Parameters
- mailboxId: required(string)
- childId: required(string)
Get parent Mailboxes for the given Mailbox in the hierarchy.
get /mailboxes/{mailboxId}/parents
Get parent Mailboxes for the given Mailbox in the hierarchy.
URI Parameters
- mailboxId: required(string)
HTTP status code 200
Body
Media type: application/json
Type: any
Example:
[
{
"id": "messaging.Mailbox:532@base.url",
"uri": "http://base.url/open/campusapi/messaging/mailbox/messaging.Mailbox%3A532%40base.url",
"displayName": "Display Name of this Mailbox",
"description": "The description of this Mailbox",
"genusTypeId": "type.Type:defaultMailboxType@base.url",
"recordTypeIds": [ "type.Type:exampleMailboxRecordType@campusapi.org", "..."],
"providerId": "resource.Resource:123@base.url",
"brandingId": "asset.Asset:Mailbox@base.url",
"license": "The license that applies to this Mailbox"
},
{
"...": "..."
}
]
HTTP status code 403
Body
Media type: application/json
Type: any
Example:
{"message": "Permission denied" }
Get all Messages in this Mailbox
get /mailboxes/{mailboxId}/messages
Get all Messages in this Mailbox
URI Parameters
- mailboxId: 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", "receipt", or "all" to expand all referenced objects or types. This parameter can be repeated to expand multiples.
Example:
all
- genusTypeId: (string)
The id string to match a genusType
Example:
type.Type%3AexampleMessageType%40dxtera.org
- parentGenusTypeId: (string)
The id string to match a parent genusType
Example:
type.Type%3AparentTypeExampleMessageType%40dxtera.org
- recordTypeId: (string)
The id string to match a recordType
Example:
type.Type%3AexampleMessageType%40campusapi.org
HTTP status code 200
Body
Media type: application/json
Type: any
Example:
[
{
"id": "messaging.Message:5671@base.url",
"uri": "http://base.url/open/campusapi/messaging/message/messaging.Message%3A5671%40base.url",
"displayName": "Display Name of this Message",
"description": "The description of this Message",
"genusTypeId": "type.Type:defaultMessageType@base.url",
"recordTypeIds": [ "type.Type:exampleMessageRecordType@campusapi.org", "..."],
"subjectLine": "This is the SubjectLine",
"text": "This is the Text",
"receiptId": "messaging.Receipt:26@base.url"
},
{
"...": "..."
}
]
HTTP status code 403
Body
Media type: application/json
Type: any
Example:
{"message": "Permission denied" }
Add the given Message to this Mailbox
Remove the given Message from the Mailbox.
put /mailboxes/{mailboxId}/messages/{messageId}
Add the given Message to this Mailbox
URI Parameters
- mailboxId: required(string)
- messageId: required(string)
HTTP status code 200
Body
Media type: application/json
Type: any
Example:
{ "message": "Message has been added to Mailbox" }
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": "Message not found" }
delete /mailboxes/{mailboxId}/messages/{messageId}
Remove the given Message from the Mailbox.
URI Parameters
- mailboxId: required(string)
- messageId: required(string)
HTTP status code 200
Body
Media type: application/json
Type: any
Example:
{ "message": "Message 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": "Message not found" }
Get all Receipts in this Mailbox
get /mailboxes/{mailboxId}/receipts
Get all Receipts in this Mailbox
URI Parameters
- mailboxId: 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", "message", or "all" to expand all referenced objects or types. This parameter can be repeated to expand multiples.
Example:
all
- genusTypeId: (string)
The id string to match a genusType
Example:
type.Type%3AexampleReceiptType%40dxtera.org
- parentGenusTypeId: (string)
The id string to match a parent genusType
Example:
type.Type%3AparentTypeExampleReceiptType%40dxtera.org
- recordTypeId: (string)
The id string to match a recordType
Example:
type.Type%3AexampleReceiptType%40campusapi.org
HTTP status code 200
Body
Media type: application/json
Type: any
Example:
[
{
"id": "messaging.Receipt:3762@base.url",
"uri": "http://base.url/open/campusapi/messaging/receipt/messaging.Receipt%3A3762%40base.url",
"displayName": "Display Name of this Receipt",
"description": "The description of this Receipt",
"genusTypeId": "type.Type:defaultReceiptType@base.url",
"recordTypeIds": [ "type.Type:exampleReceiptRecordType@campusapi.org", "..."],
"messageId": "messaging.Message:2904@base.url"
},
{
"...": "..."
}
]
HTTP status code 403
Body
Media type: application/json
Type: any
Example:
{"message": "Permission denied" }
Add the given Receipt to this Mailbox
Remove the given Receipt from the Mailbox.
put /mailboxes/{mailboxId}/receipts/{receiptId}
Add the given Receipt to this Mailbox
URI Parameters
- mailboxId: required(string)
- receiptId: required(string)
HTTP status code 200
Body
Media type: application/json
Type: any
Example:
{ "message": "Receipt has been added to Mailbox" }
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": "Receipt not found" }
delete /mailboxes/{mailboxId}/receipts/{receiptId}
Remove the given Receipt from the Mailbox.
URI Parameters
- mailboxId: required(string)
- receiptId: required(string)
HTTP status code 200
Body
Media type: application/json
Type: any
Example:
{ "message": "Receipt 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": "Receipt not found" }