CampusAPI Messaging Services API documentation version 0.1.2
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 2020 DXtera Institute. Based on the Open Service Interface Defitions: 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
- 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%40demo.dxtera.org
- recipientId: (string)
Id string to match recipient.
Example:
resource.Resource:6944@demo.dxtera.org
- 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:167@base.url",
"uri": "http://base.url/open/campusapi/messaging/message/messaging.Message%3A167%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:146@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:6249@base.url"
}
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 message given its id.
Update a given message.
Delete a given message.
get /messages/{messageId}
Get a message given its id.
URI Parameters
- messageId: required(string)
HTTP status code 200
Body
Media type: application/json
Type: any
Example:
{
"id": "messaging.Message:167@base.url",
"uri": "http://base.url/open/campusapi/messaging/message/messaging.Message%3A167%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:146@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 given message.
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:6249@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 given message.
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
- 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%40demo.dxtera.org
- recipientId: (string)
Id string to match recipient.
Example:
resource.Resource:4496@demo.dxtera.org
- 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:1597@base.url",
"uri": "http://base.url/open/campusapi/messaging/receipt/messaging.Receipt%3A1597%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:5274@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:4548@base.url"
}
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 receipt given its id.
Update a given receipt.
Delete a given receipt.
get /receipts/{receiptId}
Get a receipt given its id.
URI Parameters
- receiptId: required(string)
HTTP status code 200
Body
Media type: application/json
Type: any
Example:
{
"id": "messaging.Receipt:1597@base.url",
"uri": "http://base.url/open/campusapi/messaging/receipt/messaging.Receipt%3A1597%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:5274@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 given receipt.
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:4548@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 given receipt.
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
- 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:237@base.url",
"uri": "http://base.url/open/campusapi/messaging/mailbox/messaging.Mailbox%3A237%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"
}
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:237@base.url",
"uri": "http://base.url/open/campusapi/messaging/mailbox/messaging.Mailbox%3A237%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 mailbox given its id.
Update a given mailbox.
Delete a given mailbox.
get /mailboxes/{mailboxId}
Get a mailbox given its id.
URI Parameters
- mailboxId: required(string)
HTTP status code 200
Body
Media type: application/json
Type: any
Example:
{
"id": "messaging.Mailbox:237@base.url",
"uri": "http://base.url/open/campusapi/messaging/mailbox/messaging.Mailbox%3A237%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 given mailbox.
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 given mailbox.
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:237@base.url",
"uri": "http://base.url/open/campusapi/messaging/mailbox/messaging.Mailbox%3A237%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:237@base.url",
"uri": "http://base.url/open/campusapi/messaging/mailbox/messaging.Mailbox%3A237%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)
HTTP status code 200
Body
Media type: application/json
Type: any
Example:
[
{
"id": "messaging.Message:167@base.url",
"uri": "http://base.url/open/campusapi/messaging/message/messaging.Message%3A167%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:146@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)
HTTP status code 200
Body
Media type: application/json
Type: any
Example:
[
{
"id": "messaging.Receipt:1597@base.url",
"uri": "http://base.url/open/campusapi/messaging/receipt/messaging.Receipt%3A1597%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:5274@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" }