CampusAPI Logging Services API documentation version 0.1.0
Based on OSID version 3.0.0
https://base.url
Overview
The Logging service package provides a means to read and wite to logs.
This package includes the following entities:
LogEntries
A Log represents a collection of log entries. Each log entry is composed of a priority Type, timestamp, Agent, the agent's associated Resource, and any extensions based on Type.
| Field | Description | Type |
|---|---|---|
| id(read‑only) | The unique id of this log entry, provided by system. | string(osid‑id) |
| uri(read‑only) | The uri of this log entry, provided by system. | string(uri) |
| displayName | The name of this log entry for display. | string |
| description | The description of this log entry. | string |
| genusTypeId (read‑only) | Id of the immutable type of this log entry. Default type set by system unless specified in query parameter. | string(osid‑id) |
| recordTypeIds (read‑only) | Type Ids of record types available on this log entry. Record types define special attributes available on an object to support specific applications or classes of applications and are documented elsewhere. | string(osid‑id)[] |
| agentId (read‑only) | The agent associated with this log entry. References an authentication.Agent object. | string(osid‑id) |
| priority | The priority level of this entry. | string(osid‑type) |
| timestamp | The time this entry was logged. | string(date‑time) |
| agentId | The Agent who created this entry. References an authentication.Agent object | string(osid‑id) |
Logs
A Log represents a collection of entries. Logs can be organized into hierarchies for federation. A log that is a parent of another log makes visible the log entries of its children.
| Field | Description | Type |
|---|---|---|
| id(read‑only) | The unique id of this log, provided by system. | string(osid‑id) |
| uri(read‑only) | The uri of this log, provided by system. | string(uri) |
| displayName | The name of this log for display. | string |
| description | The description of this log. | string |
| genusTypeId (read‑only) | Id of the immutable type of this log. Default type set by system unless specified in query parameter. | string(osid‑id) |
| recordTypeIds (read‑only) | Type Ids of record types available on this log. 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 log. References a resource.Resource object. | string(osid‑id) |
| brandingIds | The branding of this log. References repository.Asset objects. | string(osid‑id)[] |
| license | The licensing that applies to this log. | string |
License
CampusAPI REST Definitions © 2025 by DXtera Institute - licensed under CC BY-ND 4.0 Based on the Open Service Interface Definitions: http://osid.org
/logging/log-entries
Collection of LogEntries in a system, federation of systems, or in a default Log.
Get all LogEntries in the system or default Log.
Create a new LogEntry in the default Log.
get /logging/log-entries
Get all LogEntries in the system or default Log.
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", "priority", "agent", or "all" to expand all referenced objects or types. This parameter can be repeated to expand multiples.
Example:
all - keyword: (string)
The match string for keyword query
Example:
Hello%20World - displayName: (string)
The match string for displayName query
Example:
Hello%20World - description: (string)
The match string for description query
Example:
Hello%20World - genusTypeId: (string)
The id string to match a genusType
Example:
type.Type%3AexampleLogEntryType%40dxtera.org - parentGenusTypeId: (string)
The id string to match a parent genusType
Example:
type.Type%3AparentTypeExampleLogEntryType%40dxtera.org - recordTypeId: (string)
The id string to match a recordType
Example:
type.Type%3AexampleLogEntryType%40campusapi.org - agentId: (string)
the id string to match a agent.
Example:
authentication.Agent%3A560%40base.url - resourceId: (string)
Id string to match resource.
Example:
resource.Resource%3A7836%40base.url - fromDate: (string)
Get all log-entries from this date inclusive. Use with toDate to define date range query.
Example:
2020-10-03 - toDate: (string)
Get all log-entries up to this date inclusive. Use with fromDate to define date range query.
Example:
2020-12-18 - logId: (string)
The id string to match a log
Example:
logging.Log%3A8374%40base.url
HTTP status code 200
Headers
- x-total-count: required(number)
The total count of records currently available
Example:
152803
Body
Media type: application/json
Type: any
Example:
[
{
"id": "logging.LogEntry:4757@base.url",
"uri": "http://base.url/open/campusapi/logging/log_entry/logging.LogEntry%3A4757%40base.url",
"displayName": "Display Name of this LogEntry",
"description": "The description of this LogEntry",
"genusTypeId": "type.Type:defaultLogEntryType@base.url",
"recordTypeIds": [ "type.Type:exampleLogEntryRecordType@campusapi.org", "..."],
"agentId": "authentication.Agent:2744@base.url",
"priority": "type.Type:1139@base.url",
"timestamp": "2021-07-21T23:15:30.000Z"
},
{
"...": "..."
}
]
HTTP status code 403
Body
Media type: application/json
Type: any
Example:
{"message": "Permission denied" }
post /logging/log-entries
Create a new LogEntry in the default Log.
Query Parameters
- logId: (string)
specify in which log to create this logEntry
Example:
logging.Log%3A8374%40base.url
Body
Media type: application/json
Type: json
Content:
{
"$schema": "http://json-schema.org/draft-04/schema#",
"title": "LogEntry",
"type": "object",
"required": ["agentId"],
"properties": {
"id": {
"description": "The unique id of this log entry. This id is provided solely by the underlying implementation and is not set on POST and cannot be changed. An id included on POST will result in an error.",
"type": "string",
"format": "osid-id",
"readOnly": true
},
"uri": {
"description": "The uri of this log entry. This URI is provided solely by the underlying implementation and is not set on POST and cannot be changed. A uri included on POST will result in an error.",
"type": "string",
"format": "uri",
"readOnly": true
},
"displayName": {
"description": "The name of this log entry for display.",
"type": "string"
},
"description": {
"description": "The description of this log entry.",
"type": "string"
},
"genusTypeId": {
"description": "Id of the immutable type of this log entry. 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 log entry. 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
},
"agentId": {
"description": "The agent associated with this log entry.",
"type": "string",
"format": "osid-id",
"readOnly": true
},
"priority": {
"description": "The priority level of this entry.",
"type": "string",
"format": "osid-type"
},
"timestamp": {
"description": "The time this entry was logged.",
"type": "string",
"format": "date-time"
},
"agentId": {
"description": "The Agent who created this entry.",
"type": "string",
"format": "osid-id"
}
}
}Example:
{
"displayName": "Display Name of this LogEntry",
"description": "The description of this LogEntry",
"agentId": "authentication.Agent:388@base.url",
"priority": "type.Type:1871@base.url",
"timestamp": "2021-07-21T23:15:30.000Z"
}
Query the collection of LogEntries in a system, federation of systems, or in a default log by posting a Query object.
Submit a query using a LogEntryQuery object.
post /logging/log-entries/log-entry-query
Submit a query using a LogEntryQuery 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", "priority", "agent", 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": "LogEntryQuery",
"type": "object",
"properties": {
"matchIds": {
"description": "List of Ids to match. Boolean OR performed among multiple Ids.",
"type": "array",
"items": {
"type": "object",
"properties": {
"id": {
"description": "id to match",
"type": "string",
"format": "osid-id"
},
"match": {
"description": "true for a positive match, false for a negative match",
"type": "boolean"
}
}
}
},
"matchKeywords": {
"description": "List keywords to match. Multiple keywords can be added to perform a boolean OR among them. A keyword may be applied to any of the elements defined in this object such as the display name, description or any attribute defined in or implemented by this object.",
"type": "array",
"items": {
"type": "object",
"properties": {
"keyword": {
"description": "keyword to match",
"type": "string"
},
"stringMatchType": {
"description": "the string match type",
"type": "string",
"format": "osid-id"
},
"match": {
"description": "true for a positive match, false for a negative match",
"type": "boolean"
}
}
}
},
"matchDisplayNames": {
"description": "List of displayName strings to match. Boolean OR performed among multiple displayNames.",
"type": "array",
"items": {
"type": "object",
"properties": {
"displayName": {
"description": "displayName to match",
"type": "string"
},
"stringMatchType": {
"description": "the string match type",
"type": "string",
"format": "osid-id"
},
"match": {
"description": "true for a positive match, false for a negative match",
"type": "boolean"
}
}
}
},
"matchDescriptions": {
"description": "List of discription strings to match. Boolean OR performed among multiple descriptions.",
"type": "array",
"items": {
"type": "object",
"properties": {
"description": {
"description": "description to match",
"type": "string"
},
"stringMatchType": {
"description": "the string match type",
"type": "string",
"format": "osid-id"
},
"match": {
"description": "true for a positive match, false for a negative match",
"type": "boolean"
}
}
}
},
"matchGenusTypeIds": {
"description": "List of genus type ids to match. Boolean OR performed among multiple ids.",
"type": "array",
"items": {
"type": "object",
"properties": {
"genusTypeid": {
"description": "genus type id to match",
"type": "string",
"format": "osid-id"
},
"match": {
"description": "true for a positive match, false for a negative match",
"type": "boolean"
}
}
}
},
"matchRecordTypeIds": {
"description": "List of record type ids to match. Boolean OR performed among multiple ids.",
"type": "array",
"items": {
"type": "object",
"properties": {
"genusTypeid": {
"description": "record type id to match",
"type": "string",
"format": "osid-id"
},
"match": {
"description": "true for a positive match, false for a negative match",
"type": "boolean"
}
}
}
},
"matchSubjectIds": {
"description": "List of Ids to match an object with a relationships to the given subjects.",
"type": "array",
"items": {
"type": "object",
"properties": {
"sponsorId": {
"description": "id to match",
"type": "string",
"format": "osid-id"
},
"match": {
"description": "true for a positive match, false for a negative match",
"type": "boolean"
}
}
}
},
"matchJournalEntryIds": {
"description": "List of Ids match objects that have the given journal entries.",
"type": "array",
"items": {
"type": "object",
"properties": {
"sponsorId": {
"description": "id to match",
"type": "string",
"format": "osid-id"
},
"match": {
"description": "true for a positive match, false for a negative match",
"type": "boolean"
}
}
}
},
"journalEntryQueries": {
"description": "journaling.JournalEntryQueries to match journaling information. Each query performs a boolean OR.",
"type": "array",
"items": {
"type": "journal-entry-query"
}
},
"matchAgentIds": {
"description": "List of agent Ids for this query to match log entry that have a related agent.",
"type": "array",
"items": {
"type": "object",
"properties": {
"ruleId": {
"description": "id to match",
"type": "string",
"format": "osid-id"
},
"match": {
"description": "true for a positive match, false for a negative match",
"type": "boolean"
}
}
}
},
"agentQueries": {
"description": "AgentQueries to match the agent. Each query performs a boolean OR.",
"type": "array",
"items": {
"type": "agent-query"
}
},
"matchPriority": {
"description": "List of Type Ids for this query to match priority.",
"type": "array",
"items": {
"type": "object",
"properties": {
"priorityType": {
"description": "type to match",
"type": "string",
"format": "osid-type"
},
"match": {
"description": "true for a positive match, false for a negative match",
"type": "boolean"
}
}
}
},
"matchTimestamp": {
"description": "Matches timestamps between the given date range inclusive.",
"type": "array",
"items": {
"type": "object",
"properties": {
"low": {
"description": "low date range",
"type": "string",
"format": "date-time"
},
"high": {
"description": "high date range",
"type": "string",
"format": "date-time"
},
"match": {
"description": "true for a positive match, false for a negative match",
"type": "boolean"
}
}
}
},
"matchAnyTimestamp": {
"description": "Match timestamps with any value. true to match LogEntries with any timestamp, false to match ProgramOfferings with no timestamp",
"type": "boolean"
},
"matchAgentIds": {
"description": "List of Agent Ids for this query to match agent.",
"type": "array",
"items": {
"type": "object",
"properties": {
"agentId": {
"description": "id to match",
"type": "string",
"format": "osid-id"
},
"match": {
"description": "true for a positive match, false for a negative match",
"type": "boolean"
}
}
}
},
"agentQueries": {
"description": "authentication.AgentQueries to match the Agent. Each query performs a boolean OR.",
"type": "array",
"items": {
"type": "agent-query"
}
},
"matchAnyAgent": {
"description": "Match agent with any value. true to match LogEntries with any agent, false to match LogEntries with no agent",
"type": "boolean"
},
"matchLogIds": {
"description": "List of Log Id's to match.",
"type": "array",
"items": {
"type": "object",
"properties": {
"logId": {
"description": "Log id to match",
"type": "string",
"format": "osid-id"
},
"match": {
"description": "true for a positive match, false for a negative match",
"type": "boolean"
}
}
}
},
"logQueries": {
"description": "LogQueries to match Log. Each query performs a boolean OR.",
"type": "array",
"items": {
"type": "log-query"
}
}
}
}Example:
{
"matchDisplayNames": [
{
"displayName": "string to exclude",
"match": false
}
]
}HTTP status code 200
Body
Media type: application/json
Type: any
Example:
[
{
"id": "logging.LogEntry:4757@base.url",
"uri": "http://base.url/open/campusapi/logging/log_entry/logging.LogEntry%3A4757%40base.url",
"displayName": "Display Name of this LogEntry",
"description": "The description of this LogEntry",
"genusTypeId": "type.Type:defaultLogEntryType@base.url",
"recordTypeIds": [ "type.Type:exampleLogEntryRecordType@campusapi.org", "..."],
"agentId": "authentication.Agent:2744@base.url",
"priority": "type.Type:1139@base.url",
"timestamp": "2021-07-21T23:15:30.000Z"
},
{
"...": "..."
}
]
HTTP status code 403
Body
Media type: application/json
Type: any
Example:
{"message": "Permission denied" }
Create multiple new LogEntryBatch in the default Log.
post /logging/log-entries/log-entry-batch
Create multiple new LogEntryBatch in the default Log.
Query Parameters
- logId: (string)
specify in which log to create this logEntry
Example:
logging.Log%3A8374%40base.url
Body
Media type: application/json
Type: json
Content:
{
"$schema": "http://json-schema.org/draft-04/schema#",
"title": "LogEntryBatch",
"type": "array",
"Items": {
"type": "log-entry"
}
}Example:
[
{
"displayName": "Display Name of this LogEntry",
"description": "The description of this LogEntry",
"priority": "type.Type:4472@base.url",
"timestamp": "2021-07-21T23:15:30.000Z"
},
{
"...": "..."
}
]
Entity representing a LogEntry form metadata.
Get form metadata for creating a new LogEntry.
get /logging/log-entries/metadata
Get form metadata for creating a new LogEntry.
Query Parameters
- agentId: required(string)
the agent of this metadatum.
Example:
authentication.Agent%3A560%40base.url - genusType: (string)
specify a particular logEntry type to create
Example:
type.Type%3AexampleLogEntryType%40dxtera.org - recordType: (array of )
specify support for one or more logEntry record types
Example:
[ "type.Type%3AexampleLogEntryRecordType%40campusapi.org", "..." ] - logId: (string)
specify in which log to create this logEntry
Example:
logging.Log%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": "LogEntry",
"type": "object",
"required": ["agentId"],
"properties": {
"id": {
"description": "The unique id of this log entry, provided by system.",
"type": "string",
"format": "osid-id",
"readOnly": true
},
"uri": {
"description": "The uri of this log entry, provided by system.",
"type": "string",
"format": "uri",
"readOnly": true
},
"displayName": {
"description": "The name of this log entry for display.",
"type": "string",
"read-only": false,
"minLength": 1,
"maxLength": 128,
"pattern": "",
"default": "",
"enum": [],
"elementId": "LogEntry.LogEntry:displayName@base.url",
"existingValue": "The Existing Name",
"elementLabel": "Name",
"instructions": "Enter a name for this log entry",
"linked": false
},
"description": {
"description": "The description of this log entry.",
"type": "string",
"read-only": false,
"minLength": 0,
"maxLength": 128,
"pattern": "",
"default": "",
"enum": [],
"elementId": "LogEntry.LogEntry:displayName@demo.base.url",
"existingValue": "The Existing Description",
"elementLabel": "Description",
"instructions": "Enter a description for this log entry",
"linked": false
},
"genusTypeId": {
"description": "Id of the immutable type of this log entry. 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 log entry. 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
},
"priority": {
"description": "The priority level of this entry.",
"type": "string",
"type": "string",
"format": "osid-type",
"read-only": false,
"pattern": "",
"default": "",
"enum": [],
"elementId": "logging.LogEntry:priority@dxtera.org",
"existingValue": null,
"elementLabel": "Priority",
"instructions": "Enter the Type id of the priority for this log entry.",
"linked": false
},
"timestamp": {
"description": "The time this entry was logged.",
"type": "string",
"format": "date-time",
"read-only": false,
"pattern": "",
"default": "",
"enum": [],
"elementId": "logging.LogEntry:timestamp@dxtera.org",
"existingValue": "",
"elementLabel": "Timestamp",
"instructions": "Enter the timestamp of this log entry.",
"linked": false
},
"agentId": {
"description": "The Agent who created this entry.",
"type": "string",
"type": "string",
"format": "osid-id",
"read-only": false,
"pattern": "",
"default": "",
"enum": [],
"elementId": "logging.LogEntry:agent@dxtera.org",
"existingValue": null,
"elementLabel": "Agent",
"instructions": "Enter the Id of the agent for this log entry.",
"linked": false
}
}
}
HTTP status code 403
Body
Media type: application/json
Type: any
Example:
{"message": "Permission denied" }
Entity representing a LogEntry
Get a particular LogEntry given its id.
Update a particular LogEntry given its id.
Delete a particular LogEntry given its id.
get /logging/log-entries/{logEntryId}
Get a particular LogEntry given its id.
URI Parameters
- logEntryId: required(string)
Query Parameters
- expand: (string)
Expand object or type for named attribute: "genusType", "recordType", "priority", "agent", 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": "logging.LogEntry:4757@base.url",
"uri": "http://base.url/open/campusapi/logging/log_entry/logging.LogEntry%3A4757%40base.url",
"displayName": "Display Name of this LogEntry",
"description": "The description of this LogEntry",
"genusTypeId": "type.Type:defaultLogEntryType@base.url",
"recordTypeIds": [ "type.Type:exampleLogEntryRecordType@campusapi.org", "..."],
"agentId": "authentication.Agent:2744@base.url",
"priority": "type.Type:1139@base.url",
"timestamp": "2021-07-21T23:15:30.000Z"
}
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": "LogEntry not found" }
put /logging/log-entries/{logEntryId}
Update a particular LogEntry given its id.
URI Parameters
- logEntryId: required(string)
Body
Media type: application/json
Type: json
Content:
{
"$schema": "http://json-schema.org/draft-04/schema#",
"title": "LogEntryItem",
"type": "object",
"properties": {
"id": {
"description": "The unique id of this log entry. This id is provided solely by the underlying implementation and is not set on POST and cannot be changed. An id included on POST will result in an error.",
"type": "string",
"format": "osid-id",
"readOnly": true
},
"uri": {
"description": "The uri of this log entry. This URI is provided solely by the underlying implementation and is not set on POST and cannot be changed. A uri included on POST will result in an error.",
"type": "string",
"format": "uri",
"readOnly": true
},
"displayName": {
"description": "The name of this log entry for display.",
"type": "string"
},
"description": {
"description": "The description of this log entry.",
"type": "string"
},
"genusTypeId": {
"description": "Id of the immutable type of this log entry. 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 log entry. 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
},
"agentId": {
"description": "The agent associated with this log entry.",
"type": "string",
"format": "osid-id",
"readOnly": true
},
"priority": {
"description": "The priority level of this entry.",
"type": "string",
"format": "osid-type"
},
"timestamp": {
"description": "The time this entry was logged.",
"type": "string",
"format": "date-time"
},
"agentId": {
"description": "The Agent who created this entry.",
"type": "string",
"format": "osid-id"
}
}
}Example:
{
"displayName": "Display Name of this LogEntry",
"description": "The description of this LogEntry",
"priority": "type.Type:3081@base.url",
"timestamp": "2021-07-21T23:15:30.000Z"
}
HTTP status code 200
Body
Media type: application/json
Type: any
Example:
{ "message": "The LogEntry 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": "LogEntry not found" }
delete /logging/log-entries/{logEntryId}
Delete a particular LogEntry given its id.
URI Parameters
- logEntryId: required(string)
HTTP status code 200
Body
Media type: application/json
Type: any
Example:
{ "message": "The LogEntry 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": "LogEntry not found" }
Entity representing a LogEntry form metadata for update
Get form metadata for updating an existing LogEntry.
get /logging/log-entries/{logEntryId}/metadata
Get form metadata for updating an existing LogEntry.
URI Parameters
- logEntryId: required(string)
HTTP status code 200
Body
Media type: application/json
Type: any
Example:
{
"$schema": "http://json-schema.org/draft/2019-9/schema#",
"title": "LogEntry",
"type": "object",
"required": ["agentId"],
"properties": {
"id": {
"description": "The unique id of this log entry, provided by system.",
"type": "string",
"format": "osid-id",
"readOnly": true
},
"uri": {
"description": "The uri of this log entry, provided by system.",
"type": "string",
"format": "uri",
"readOnly": true
},
"displayName": {
"description": "The name of this log entry for display.",
"type": "string",
"read-only": false,
"minLength": 1,
"maxLength": 128,
"pattern": "",
"default": "",
"enum": [],
"elementId": "LogEntry.LogEntry:displayName@base.url",
"existingValue": "The Existing Name",
"elementLabel": "Name",
"instructions": "Enter a name for this log entry",
"linked": false
},
"description": {
"description": "The description of this log entry.",
"type": "string",
"read-only": false,
"minLength": 0,
"maxLength": 128,
"pattern": "",
"default": "",
"enum": [],
"elementId": "LogEntry.LogEntry:displayName@demo.base.url",
"existingValue": "The Existing Description",
"elementLabel": "Description",
"instructions": "Enter a description for this log entry",
"linked": false
},
"genusTypeId": {
"description": "Id of the immutable type of this log entry. 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 log entry. 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
},
"priority": {
"description": "The priority level of this entry.",
"type": "string",
"type": "string",
"format": "osid-type",
"read-only": false,
"pattern": "",
"default": "",
"enum": [],
"elementId": "logging.LogEntry:priority@dxtera.org",
"existingValue": null,
"elementLabel": "Priority",
"instructions": "Enter the Type id of the priority for this log entry.",
"linked": false
},
"timestamp": {
"description": "The time this entry was logged.",
"type": "string",
"format": "date-time",
"read-only": false,
"pattern": "",
"default": "",
"enum": [],
"elementId": "logging.LogEntry:timestamp@dxtera.org",
"existingValue": "",
"elementLabel": "Timestamp",
"instructions": "Enter the timestamp of this log entry.",
"linked": false
},
"agentId": {
"description": "The Agent who created this entry.",
"type": "string",
"type": "string",
"format": "osid-id",
"read-only": false,
"pattern": "",
"default": "",
"enum": [],
"elementId": "logging.LogEntry:agent@dxtera.org",
"existingValue": null,
"elementLabel": "Agent",
"instructions": "Enter the Id of the agent for this log entry.",
"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": "logEntry not found" }
/logging/logs
Collection of Logs in a system or federation of systems.
Get all Logs.
Create a new Log.
get /logging/logs
Get all Logs.
Query Parameters
- offset: (integer - default: 0)
Skip over a number of elements by specifying an offset value for the query
Example:
20 - limit: (integer - default: 10)
Limit the number of elements on the response
Example:
80 - expand: (string)
Expand object or type for named attribute: "genusType", "recordType", "provider", "branding", or "all" to expand all referenced objects or types. This parameter can be repeated to expand multiples.
Example:
all - keyword: (string)
The match string for keyword query
Example:
Hello%20World - displayName: (string)
The match string for displayName query
Example:
Hello%20World - description: (string)
The match string for description query
Example:
Hello%20World - genusTypeId: (string)
The id string to match a genusType
Example:
type.Type%3AexampleLogType%40dxtera.org - parentGenusTypeId: (string)
The id string to match a parent genusType
Example:
type.Type%3AparentTypeExampleLogType%40dxtera.org - recordTypeId: (string)
The id string to match a recordType
Example:
type.Type%3AexampleLogType%40campusapi.org - providerId: (string)
Id string to match provider.
Example:
resource.Resource%3A3007%40demo.dxtera.org - logEntryId: (string)
Get logs mapped to this log-entry.
Example:
logging.LogEntry%3A189%40demo.dxtera.org
HTTP status code 200
Body
Media type: application/json
Type: any
Example:
[
{
"id": "logging.Log:3426@base.url",
"uri": "http://base.url/open/campusapi/logging/log/logging.Log%3A3426%40base.url",
"displayName": "Display Name of this Log",
"description": "The description of this Log",
"genusTypeId": "type.Type:defaultLogType@base.url",
"recordTypeIds": [ "type.Type:exampleLogRecordType@campusapi.org", "..."],
"providerId": "resource.Resource:123@base.url",
"brandingId": "asset.Asset:Log@base.url",
"license": "The license that applies to this Log"
},
{
"...": "..."
}
]
HTTP status code 403
Body
Media type: application/json
Type: any
Example:
{"message": "Permission denied" }
post /logging/logs
Create a new Log.
Query Parameters
- genusType: (string)
specify a particular log type to create
Example:
type.Type%3AexampleLogType%40dxtera.org - recordType: (array of )
specify support for one or more log record types
Example:
[ "type.Type%3AexampleLogRecordType%40campusapi.org", "..." ]
Body
Media type: application/json
Type: json
Content:
{
"$schema": "http://json-schema.org/draft-04/schema#",
"title": "Log",
"type": "object",
"properties": {
"id": {
"description": "The unique id of this log. This id is provided solely by the underlying implementation and is not set on POST and cannot be changed. An id included on POST will result in an error.",
"type": "string",
"format": "osid-id",
"readOnly": true
},
"uri": {
"description": "The uri of this log. This URI is provided solely by the underlying implementation and is not set on POST and cannot be changed. A uri included on POST will result in an error.",
"type": "string",
"format": "uri",
"readOnly": true
},
"displayName": {
"description": "The name of this log for display.",
"type": "string"
},
"description": {
"description": "The description of this log.",
"type": "string"
},
"genusTypeId": {
"description": "Id of the immutable type of this log. 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 log. 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 log.",
"type": "string",
"format": "osid-id"
},
"brandingIds": {
"description": "The branding of this log. A collection of Assets.",
"type": "array",
"items" : {
"type": "string",
"format": "osid-id"
}
},
"license": {
"description": "The licensing that applies to this log.",
"type": "string"
}
}
}Example:
{
"displayName": "Display Name of this Log",
"description": "The description of this Log",
"providerId": "resource.Resource:123@base.url",
"brandingId": "asset.Asset:Log@base.url",
"license": "The license that applies to this Log"
}
Query the collection of Logs in a system, federation of systems, or in a default log by posting a Query object.
Submit a query using a LogQuery object.
post /logging/logs/log-query
Submit a query using a LogQuery object.
Query Parameters
- offset: (integer - default: 0)
Skip over a number of elements by specifying an offset value for the query
Example:
20 - limit: (integer - default: 10)
Limit the number of elements on the response
Example:
80 - expand: (string)
Expand object or type for named attribute: "genusType", "recordType", "provider", "branding", or "all" to expand all referenced objects or types. This parameter can be repeated to expand multiples.
Example:
all
Body
Media type: application/json
Type: json
Content:
{
"$schema": "http://json-schema.org/draft-04/schema#",
"title": "LogQuery",
"type": "object",
"properties": {
"matchIds": {
"description": "List of Ids to match. Boolean OR performed among multiple Ids.",
"type": "array",
"items": {
"type": "object",
"properties": {
"id": {
"description": "id to match",
"type": "string",
"format": "osid-id"
},
"match": {
"description": "true for a positive match, false for a negative match",
"type": "boolean"
}
}
}
},
"matchKeywords": {
"description": "List keywords to match. Multiple keywords can be added to perform a boolean OR among them. A keyword may be applied to any of the elements defined in this object such as the display name, description or any attribute defined in or implemented by this object.",
"type": "array",
"items": {
"type": "object",
"properties": {
"keyword": {
"description": "keyword to match",
"type": "string"
},
"stringMatchType": {
"description": "the string match type",
"type": "string",
"format": "osid-id"
},
"match": {
"description": "true for a positive match, false for a negative match",
"type": "boolean"
}
}
}
},
"matchDisplayNames": {
"description": "List of displayName strings to match. Boolean OR performed among multiple displayNames.",
"type": "array",
"items": {
"type": "object",
"properties": {
"displayName": {
"description": "displayName to match",
"type": "string"
},
"stringMatchType": {
"description": "the string match type",
"type": "string",
"format": "osid-id"
},
"match": {
"description": "true for a positive match, false for a negative match",
"type": "boolean"
}
}
}
},
"matchDescriptions": {
"description": "List of discription strings to match. Boolean OR performed among multiple descriptions.",
"type": "array",
"items": {
"type": "object",
"properties": {
"description": {
"description": "description to match",
"type": "string"
},
"stringMatchType": {
"description": "the string match type",
"type": "string",
"format": "osid-id"
},
"match": {
"description": "true for a positive match, false for a negative match",
"type": "boolean"
}
}
}
},
"matchGenusTypeIds": {
"description": "List of genus type ids to match. Boolean OR performed among multiple ids.",
"type": "array",
"items": {
"type": "object",
"properties": {
"genusTypeid": {
"description": "genus type id to match",
"type": "string",
"format": "osid-id"
},
"match": {
"description": "true for a positive match, false for a negative match",
"type": "boolean"
}
}
}
},
"matchRecordTypeIds": {
"description": "List of record type ids to match. Boolean OR performed among multiple ids.",
"type": "array",
"items": {
"type": "object",
"properties": {
"genusTypeid": {
"description": "record type id to match",
"type": "string",
"format": "osid-id"
},
"match": {
"description": "true for a positive match, false for a negative match",
"type": "boolean"
}
}
}
},
"matchSubjectIds": {
"description": "List of Ids to match an object with a relationships to the given subjects.",
"type": "array",
"items": {
"type": "object",
"properties": {
"sponsorId": {
"description": "id to match",
"type": "string",
"format": "osid-id"
},
"match": {
"description": "true for a positive match, false for a negative match",
"type": "boolean"
}
}
}
},
"matchJournalEntryIds": {
"description": "List of Ids match objects that have the given journal entries.",
"type": "array",
"items": {
"type": "object",
"properties": {
"sponsorId": {
"description": "id to match",
"type": "string",
"format": "osid-id"
},
"match": {
"description": "true for a positive match, false for a negative match",
"type": "boolean"
}
}
}
},
"journalEntryQueries": {
"description": "journaling.JournalEntryQueries to match journaling information. Each query performs a boolean OR.",
"type": "array",
"items": {
"type": "journal-entry-query"
}
},
"matchProviderIds": {
"description": "List of provider Ids to match.",
"type": "array",
"items": {
"type": "object",
"properties": {
"stateId": {
"description": "id to match",
"type": "string",
"format": "osid-id"
},
"match": {
"description": "true for a positive match, false for a negative match",
"type": "boolean"
}
}
}
},
"providerQueries": {
"description": "providerQueries to match the provider. Each query performs a boolean OR.",
"type": "array",
"items": {
"type": "resource-query"
}
},
"matchAnyProvider": {
"description": "Match providers with any value. true to match Log with any provider, false to match Log with no provider",
"type": "boolean"
},
"matchBrandingIds": {
"description": "List of branding asset Ids to match.",
"type": "array",
"items": {
"type": "object",
"properties": {
"stateId": {
"description": "id to match",
"type": "string",
"format": "osid-id"
},
"match": {
"description": "true for a positive match, false for a negative match",
"type": "boolean"
}
}
}
},
"brandingQueries": {
"description": "repository.AssetQueries to match the branding. Each query performs a boolean OR.",
"type": "array",
"items": {
"type": "asset-query"
}
},
"matchAnyBranding": {
"description": "Match brandingss with any value. true to match Log with any branding, false to match Log 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"
}
}
}
},
"matchLogIds": {
"description": "List of Log Id's to match.",
"type": "array",
"items": {
"type": "object",
"properties": {
"logId": {
"description": "Log id to match",
"type": "string",
"format": "osid-id"
},
"match": {
"description": "true for a positive match, false for a negative match",
"type": "boolean"
}
}
}
},
"logQueries": {
"description": "LogQueries to match Log. Each query performs a boolean OR.",
"type": "array",
"items": {
"type": "log-query"
}
}
}
}Example:
{
"matchDisplayNames": [
{
"displayName": "string to exclude",
"match": false
}
]
}HTTP status code 200
Body
Media type: application/json
Type: any
Example:
[
{
"id": "logging.Log:3426@base.url",
"uri": "http://base.url/open/campusapi/logging/log/logging.Log%3A3426%40base.url",
"displayName": "Display Name of this Log",
"description": "The description of this Log",
"genusTypeId": "type.Type:defaultLogType@base.url",
"recordTypeIds": [ "type.Type:exampleLogRecordType@campusapi.org", "..."],
"providerId": "resource.Resource:123@base.url",
"brandingId": "asset.Asset:Log@base.url",
"license": "The license that applies to this Log"
},
{
"...": "..."
}
]
HTTP status code 403
Body
Media type: application/json
Type: any
Example:
{"message": "Permission denied" }
Entity representing a Log form metadata.
Get form metadata for creating a new Log.
get /logging/logs/metadata
Get form metadata for creating a new Log.
HTTP status code 200
Body
Media type: application/json
Type: any
Example:
{
"$schema": "http://json-schema.org/draft/2019-9/schema#",
"title": "Log",
"type": "object",
"properties": {
"id": {
"description": "The unique id of this log, provided by system.",
"type": "string",
"format": "osid-id",
"readOnly": true
},
"uri": {
"description": "The uri of this log, provided by system.",
"type": "string",
"format": "uri",
"readOnly": true
},
"displayName": {
"description": "The name of this log for display.",
"type": "string",
"read-only": false,
"minLength": 1,
"maxLength": 128,
"pattern": "",
"default": "",
"enum": [],
"elementId": "Log.Log:displayName@base.url",
"existingValue": "The Existing Name",
"elementLabel": "Name",
"instructions": "Enter a name for this log",
"linked": false
},
"description": {
"description": "The description of this log.",
"type": "string",
"read-only": false,
"minLength": 0,
"maxLength": 128,
"pattern": "",
"default": "",
"enum": [],
"elementId": "Log.Log:displayName@demo.base.url",
"existingValue": "The Existing Description",
"elementLabel": "Description",
"instructions": "Enter a description for this log",
"linked": false
},
"genusTypeId": {
"description": "Id of the immutable type of this log. 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 log. 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 log.",
"type": "string",
"format": "osid-id",
"read-only": false,
"pattern": "",
"default": "",
"enum": [],
"elementId": "Log.Log:provider@base.url",
"existingValue": "",
"elementLabel": "Provider",
"instructions": "Enter the provider of this log",
"linked": false
},
"brandingIds": {
"description": "The branding of this log. A list of Assets.",
"type": "array",
"items" : {
"type": "string",
"format": "osid-id",
"pattern": "",
"enum": []
},
"read-only": false,
"default": [],
"elementId": "Log.Log:branding@base.url",
"existingValue": "",
"elementLabel": "Branding",
"instructions": "Enter the branding images for this log",
"linked": false
},
"license": {
"description": "The licensing that applies to this log.",
"type": "string",
"read-only": false,
"minLength": 0,
"maxLength": 128,
"pattern": "",
"default": "",
"enum": [],
"elementId": "Log.Log:license@base.url",
"existingValue": "The Existing License",
"elementLabel": "License",
"instructions": "Include a license for this log",
"linked": false
}
}
}
HTTP status code 403
Body
Media type: application/json
Type: any
Example:
{"message": "Permission denied" }
The root Logs in the Log hierarchy. A node with no parents is an orphan. While all Log 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-logs
get /logging/logs/root-logs
Get all root root-logs
Query Parameters
- offset: (integer - default: 0)
Skip over a number of elements by specifying an offset value for the query
Example:
20 - limit: (integer - default: 10)
Limit the number of elements on the response
Example:
80 - expand: (string)
Expand object or type for named attribute: "genusType", "recordType", "provider", "branding", or "all" to expand all referenced objects or types. This parameter can be repeated to expand multiples.
Example:
all
HTTP status code 200
Body
Media type: application/json
Type: any
Example:
[
{
"id": "logging.Log:3426@base.url",
"uri": "http://base.url/open/campusapi/logging/log/logging.Log%3A3426%40base.url",
"displayName": "Display Name of this Log",
"description": "The description of this Log",
"genusTypeId": "type.Type:defaultLogType@base.url",
"recordTypeIds": [ "type.Type:exampleLogRecordType@campusapi.org", "..."],
"providerId": "resource.Resource:123@base.url",
"brandingId": "asset.Asset:Log@base.url",
"license": "The license that applies to this Log"
},
{
"...": "..."
}
]
HTTP status code 403
Body
Media type: application/json
Type: any
Example:
{"message": "Permission denied" }
Add the given Log as a root in the Log hierarchy
Remove the given Log as a root in the Log hierarchy.
put /logging/logs/root-logs/{logId}
Add the given Log as a root in the Log hierarchy
URI Parameters
- logId: required(string)
HTTP status code 200
Body
Media type: application/json
Type: any
Example:
{ "message": "The Log has been added as a root" }
HTTP status code 403
Body
Media type: application/json
Type: any
Example:
{"message": "Permission denied" }
HTTP status code 404
Body
Media type: application/json
Type: any
Example:
{ "message": "Log not found" }
delete /logging/logs/root-logs/{logId}
Remove the given Log as a root in the Log hierarchy.
URI Parameters
- logId: required(string)
HTTP status code 200
Body
Media type: application/json
Type: any
Example:
{ "message": "The Log has been removed as a root from the hierarchy" }
HTTP status code 403
Body
Media type: application/json
Type: any
Example:
{"message": "Permission denied" }
HTTP status code 404
Body
Media type: application/json
Type: any
Example:
{ "message": "Log not found" }
Get parent Logs for the given Log in the hierarchy.
get /logging/logs/root-logs/parents
Get parent Logs for the given Log in the hierarchy.
Query Parameters
- offset: (integer - default: 0)
Skip over a number of elements by specifying an offset value for the query
Example:
20 - limit: (integer - default: 10)
Limit the number of elements on the response
Example:
80 - expand: (string)
Expand object or type for named attribute: "genusType", "recordType", "provider", "branding", or "all" to expand all referenced objects or types. This parameter can be repeated to expand multiples.
Example:
all
HTTP status code 200
Body
Media type: application/json
Type: any
Example:
[
{
"id": "logging.Log:3426@base.url",
"uri": "http://base.url/open/campusapi/logging/log/logging.Log%3A3426%40base.url",
"displayName": "Display Name of this Log",
"description": "The description of this Log",
"genusTypeId": "type.Type:defaultLogType@base.url",
"recordTypeIds": [ "type.Type:exampleLogRecordType@campusapi.org", "..."],
"providerId": "resource.Resource:123@base.url",
"brandingId": "asset.Asset:Log@base.url",
"license": "The license that applies to this Log"
},
{
"...": "..."
}
]
HTTP status code 403
Body
Media type: application/json
Type: any
Example:
{"message": "Permission denied" }
Get child Logs for the given Log in the hierarchy.
get /logging/logs/root-logs/children
Get child Logs for the given Log in the hierarchy.
Query Parameters
- offset: (integer - default: 0)
Skip over a number of elements by specifying an offset value for the query
Example:
20 - limit: (integer - default: 10)
Limit the number of elements on the response
Example:
80 - expand: (string)
Expand object or type for named attribute: "genusType", "recordType", "provider", "branding", or "all" to expand all referenced objects or types. This parameter can be repeated to expand multiples.
Example:
all
HTTP status code 200
Body
Media type: application/json
Type: any
Example:
[
{
"id": "logging.Log:3426@base.url",
"uri": "http://base.url/open/campusapi/logging/log/logging.Log%3A3426%40base.url",
"displayName": "Display Name of this Log",
"description": "The description of this Log",
"genusTypeId": "type.Type:defaultLogType@base.url",
"recordTypeIds": [ "type.Type:exampleLogRecordType@campusapi.org", "..."],
"providerId": "resource.Resource:123@base.url",
"brandingId": "asset.Asset:Log@base.url",
"license": "The license that applies to this Log"
},
{
"...": "..."
}
]
HTTP status code 403
Body
Media type: application/json
Type: any
Example:
{"message": "Permission denied" }
Add Log as child of the given Log in the hierarchy.
Remove the given Log as a child of the given Log in the hierarchy.
put /logging/logs/root-logs/children/{childId}
Add Log as child of the given Log in the hierarchy.
URI Parameters
- childId: required(string)
HTTP status code 200
Body
Media type: application/json
Type: any
Example:
{ "message": "The child Log 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": "log not found" }
delete /logging/logs/root-logs/children/{childId}
Remove the given Log as a child of the given Log in the hierarchy.
Entity representing a Log
Get a particular Log given its id.
Update a particular Log given its id.
Delete a particular Log given its id.
get /logging/logs/{logId}
Get a particular Log given its id.
URI Parameters
- logId: required(string)
Query Parameters
- expand: (string)
Expand object or type for named attribute: "genusType", "recordType", "provider", "branding", or "all" to expand all referenced objects or types. This parameter can be repeated to expand multiples.
Example:
all
HTTP status code 200
Body
Media type: application/json
Type: any
Example:
{
"id": "logging.Log:3426@base.url",
"uri": "http://base.url/open/campusapi/logging/log/logging.Log%3A3426%40base.url",
"displayName": "Display Name of this Log",
"description": "The description of this Log",
"genusTypeId": "type.Type:defaultLogType@base.url",
"recordTypeIds": [ "type.Type:exampleLogRecordType@campusapi.org", "..."],
"providerId": "resource.Resource:123@base.url",
"brandingId": "asset.Asset:Log@base.url",
"license": "The license that applies to this Log"
}
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": "Log not found" }
put /logging/logs/{logId}
Update a particular Log given its id.
URI Parameters
- logId: required(string)
Body
Media type: application/json
Type: json
Content:
{
"$schema": "http://json-schema.org/draft-04/schema#",
"title": "LogItem",
"type": "object",
"properties": {
"id": {
"description": "The unique id of this log. This id is provided solely by the underlying implementation and is not set on POST and cannot be changed. An id included on POST will result in an error.",
"type": "string",
"format": "osid-id",
"readOnly": true
},
"uri": {
"description": "The uri of this log. This URI is provided solely by the underlying implementation and is not set on POST and cannot be changed. A uri included on POST will result in an error.",
"type": "string",
"format": "uri",
"readOnly": true
},
"displayName": {
"description": "The name of this log for display.",
"type": "string"
},
"description": {
"description": "The description of this log.",
"type": "string"
},
"genusTypeId": {
"description": "Id of the immutable type of this log. 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 log. 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 log.",
"type": "string",
"format": "osid-id"
},
"brandingIds": {
"description": "The branding of this log. A collection of Assets.",
"type": "array",
"items" : {
"type": "string",
"format": "osid-id"
}
},
"license": {
"description": "The licensing that applies to this log.",
"type": "string"
}
}
}Example:
{
"displayName": "Display Name of this Log",
"description": "The description of this Log",
"providerId": "resource.Resource:123@base.url",
"brandingId": "asset.Asset:Log@base.url",
"license": "The license that applies to this Log"
}
HTTP status code 200
Body
Media type: application/json
Type: any
Example:
{ "message": "The Log 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": "Log not found" }
delete /logging/logs/{logId}
Delete a particular Log given its id.
URI Parameters
- logId: required(string)
HTTP status code 200
Body
Media type: application/json
Type: any
Example:
{ "message": "The Log 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": "Log not found" }
Entity representing a Log form metadata for update
Get form metadata for updating an existing Log.
get /logging/logs/{logId}/metadata
Get form metadata for updating an existing Log.
URI Parameters
- logId: required(string)
HTTP status code 200
Body
Media type: application/json
Type: any
Example:
{
"$schema": "http://json-schema.org/draft/2019-9/schema#",
"title": "Log",
"type": "object",
"properties": {
"id": {
"description": "The unique id of this log, provided by system.",
"type": "string",
"format": "osid-id",
"readOnly": true
},
"uri": {
"description": "The uri of this log, provided by system.",
"type": "string",
"format": "uri",
"readOnly": true
},
"displayName": {
"description": "The name of this log for display.",
"type": "string",
"read-only": false,
"minLength": 1,
"maxLength": 128,
"pattern": "",
"default": "",
"enum": [],
"elementId": "Log.Log:displayName@base.url",
"existingValue": "The Existing Name",
"elementLabel": "Name",
"instructions": "Enter a name for this log",
"linked": false
},
"description": {
"description": "The description of this log.",
"type": "string",
"read-only": false,
"minLength": 0,
"maxLength": 128,
"pattern": "",
"default": "",
"enum": [],
"elementId": "Log.Log:displayName@demo.base.url",
"existingValue": "The Existing Description",
"elementLabel": "Description",
"instructions": "Enter a description for this log",
"linked": false
},
"genusTypeId": {
"description": "Id of the immutable type of this log. 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 log. 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 log.",
"type": "string",
"format": "osid-id",
"read-only": false,
"pattern": "",
"default": "",
"enum": [],
"elementId": "Log.Log:provider@base.url",
"existingValue": "",
"elementLabel": "Provider",
"instructions": "Enter the provider of this log",
"linked": false
},
"brandingIds": {
"description": "The branding of this log. A list of Assets.",
"type": "array",
"items" : {
"type": "string",
"format": "osid-id",
"pattern": "",
"enum": []
},
"read-only": false,
"default": [],
"elementId": "Log.Log:branding@base.url",
"existingValue": "",
"elementLabel": "Branding",
"instructions": "Enter the branding images for this log",
"linked": false
},
"license": {
"description": "The licensing that applies to this log.",
"type": "string",
"read-only": false,
"minLength": 0,
"maxLength": 128,
"pattern": "",
"default": "",
"enum": [],
"elementId": "Log.Log:license@base.url",
"existingValue": "The Existing License",
"elementLabel": "License",
"instructions": "Include a license for this log",
"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": "log not found" }
Get all LogEntries in this Log
get /logging/logs/{logId}/log-entries
Get all LogEntries in this Log
URI Parameters
- logId: 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", "priority", "agent", or "all" to expand all referenced objects or types. This parameter can be repeated to expand multiples.
Example:
all - keyword: (string)
The match string for keyword query
Example:
Hello%20World - displayName: (string)
The match string for displayName query
Example:
Hello%20World - description: (string)
The match string for description query
Example:
Hello%20World - genusTypeId: (string)
The id string to match a genusType
Example:
type.Type%3AexampleLogEntryType%40dxtera.org - parentGenusTypeId: (string)
The id string to match a parent genusType
Example:
type.Type%3AparentTypeExampleLogEntryType%40dxtera.org - recordTypeId: (string)
The id string to match a recordType
Example:
type.Type%3AexampleLogEntryType%40campusapi.org
HTTP status code 200
Body
Media type: application/json
Type: any
Example:
[
{
"id": "logging.LogEntry:4757@base.url",
"uri": "http://base.url/open/campusapi/logging/log_entry/logging.LogEntry%3A4757%40base.url",
"displayName": "Display Name of this LogEntry",
"description": "The description of this LogEntry",
"genusTypeId": "type.Type:defaultLogEntryType@base.url",
"recordTypeIds": [ "type.Type:exampleLogEntryRecordType@campusapi.org", "..."],
"agentId": "authentication.Agent:2744@base.url",
"priority": "type.Type:1139@base.url",
"timestamp": "2021-07-21T23:15:30.000Z"
},
{
"...": "..."
}
]
HTTP status code 403
Body
Media type: application/json
Type: any
Example:
{"message": "Permission denied" }
Add the given LogEntry to this Log
Remove the given LogEntry from the Log.
put /logging/logs/{logId}/log-entries/{logEntryId}
Add the given LogEntry to this Log
URI Parameters
- logId: required(string)
- logEntryId: required(string)
HTTP status code 200
Body
Media type: application/json
Type: any
Example:
{ "message": "LogEntry has been added to Log" }
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": "LogEntry not found" }
delete /logging/logs/{logId}/log-entries/{logEntryId}
Remove the given LogEntry from the Log.
URI Parameters
- logId: required(string)
- logEntryId: required(string)
HTTP status code 200
Body
Media type: application/json
Type: any
Example:
{ "message": "LogEntry 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": "LogEntry not found" }
Define and inspect the LogEntryQuery related to a "smart" Log. A smart Log is a dynamic Log whose cataloged objects are defined through queries.
Apply the provided LogEntryQuery to this Log to create a dynamic smart Log
Get the LogEntryQuery associated with this smart Log.
post /logging/logs/{logId}/log-entry-query
Apply the provided LogEntryQuery to this Log to create a dynamic smart Log
URI Parameters
- logId: required(string)
Body
Media type: application/json
Type: json
Content:
{
"$schema": "http://json-schema.org/draft-04/schema#",
"title": "LogEntryQuery",
"type": "object",
"properties": {
"matchIds": {
"description": "List of Ids to match. Boolean OR performed among multiple Ids.",
"type": "array",
"items": {
"type": "object",
"properties": {
"id": {
"description": "id to match",
"type": "string",
"format": "osid-id"
},
"match": {
"description": "true for a positive match, false for a negative match",
"type": "boolean"
}
}
}
},
"matchKeywords": {
"description": "List keywords to match. Multiple keywords can be added to perform a boolean OR among them. A keyword may be applied to any of the elements defined in this object such as the display name, description or any attribute defined in or implemented by this object.",
"type": "array",
"items": {
"type": "object",
"properties": {
"keyword": {
"description": "keyword to match",
"type": "string"
},
"stringMatchType": {
"description": "the string match type",
"type": "string",
"format": "osid-id"
},
"match": {
"description": "true for a positive match, false for a negative match",
"type": "boolean"
}
}
}
},
"matchDisplayNames": {
"description": "List of displayName strings to match. Boolean OR performed among multiple displayNames.",
"type": "array",
"items": {
"type": "object",
"properties": {
"displayName": {
"description": "displayName to match",
"type": "string"
},
"stringMatchType": {
"description": "the string match type",
"type": "string",
"format": "osid-id"
},
"match": {
"description": "true for a positive match, false for a negative match",
"type": "boolean"
}
}
}
},
"matchDescriptions": {
"description": "List of discription strings to match. Boolean OR performed among multiple descriptions.",
"type": "array",
"items": {
"type": "object",
"properties": {
"description": {
"description": "description to match",
"type": "string"
},
"stringMatchType": {
"description": "the string match type",
"type": "string",
"format": "osid-id"
},
"match": {
"description": "true for a positive match, false for a negative match",
"type": "boolean"
}
}
}
},
"matchGenusTypeIds": {
"description": "List of genus type ids to match. Boolean OR performed among multiple ids.",
"type": "array",
"items": {
"type": "object",
"properties": {
"genusTypeid": {
"description": "genus type id to match",
"type": "string",
"format": "osid-id"
},
"match": {
"description": "true for a positive match, false for a negative match",
"type": "boolean"
}
}
}
},
"matchRecordTypeIds": {
"description": "List of record type ids to match. Boolean OR performed among multiple ids.",
"type": "array",
"items": {
"type": "object",
"properties": {
"genusTypeid": {
"description": "record type id to match",
"type": "string",
"format": "osid-id"
},
"match": {
"description": "true for a positive match, false for a negative match",
"type": "boolean"
}
}
}
},
"matchSubjectIds": {
"description": "List of Ids to match an object with a relationships to the given subjects.",
"type": "array",
"items": {
"type": "object",
"properties": {
"sponsorId": {
"description": "id to match",
"type": "string",
"format": "osid-id"
},
"match": {
"description": "true for a positive match, false for a negative match",
"type": "boolean"
}
}
}
},
"matchJournalEntryIds": {
"description": "List of Ids match objects that have the given journal entries.",
"type": "array",
"items": {
"type": "object",
"properties": {
"sponsorId": {
"description": "id to match",
"type": "string",
"format": "osid-id"
},
"match": {
"description": "true for a positive match, false for a negative match",
"type": "boolean"
}
}
}
},
"journalEntryQueries": {
"description": "journaling.JournalEntryQueries to match journaling information. Each query performs a boolean OR.",
"type": "array",
"items": {
"type": "journal-entry-query"
}
},
"matchAgentIds": {
"description": "List of agent Ids for this query to match log entry that have a related agent.",
"type": "array",
"items": {
"type": "object",
"properties": {
"ruleId": {
"description": "id to match",
"type": "string",
"format": "osid-id"
},
"match": {
"description": "true for a positive match, false for a negative match",
"type": "boolean"
}
}
}
},
"agentQueries": {
"description": "AgentQueries to match the agent. Each query performs a boolean OR.",
"type": "array",
"items": {
"type": "agent-query"
}
},
"matchPriority": {
"description": "List of Type Ids for this query to match priority.",
"type": "array",
"items": {
"type": "object",
"properties": {
"priorityType": {
"description": "type to match",
"type": "string",
"format": "osid-type"
},
"match": {
"description": "true for a positive match, false for a negative match",
"type": "boolean"
}
}
}
},
"matchTimestamp": {
"description": "Matches timestamps between the given date range inclusive.",
"type": "array",
"items": {
"type": "object",
"properties": {
"low": {
"description": "low date range",
"type": "string",
"format": "date-time"
},
"high": {
"description": "high date range",
"type": "string",
"format": "date-time"
},
"match": {
"description": "true for a positive match, false for a negative match",
"type": "boolean"
}
}
}
},
"matchAnyTimestamp": {
"description": "Match timestamps with any value. true to match LogEntries with any timestamp, false to match ProgramOfferings with no timestamp",
"type": "boolean"
},
"matchAgentIds": {
"description": "List of Agent Ids for this query to match agent.",
"type": "array",
"items": {
"type": "object",
"properties": {
"agentId": {
"description": "id to match",
"type": "string",
"format": "osid-id"
},
"match": {
"description": "true for a positive match, false for a negative match",
"type": "boolean"
}
}
}
},
"agentQueries": {
"description": "authentication.AgentQueries to match the Agent. Each query performs a boolean OR.",
"type": "array",
"items": {
"type": "agent-query"
}
},
"matchAnyAgent": {
"description": "Match agent with any value. true to match LogEntries with any agent, false to match LogEntries with no agent",
"type": "boolean"
},
"matchLogIds": {
"description": "List of Log Id's to match.",
"type": "array",
"items": {
"type": "object",
"properties": {
"logId": {
"description": "Log id to match",
"type": "string",
"format": "osid-id"
},
"match": {
"description": "true for a positive match, false for a negative match",
"type": "boolean"
}
}
}
},
"logQueries": {
"description": "LogQueries to match Log. Each query performs a boolean OR.",
"type": "array",
"items": {
"type": "log-query"
}
}
}
}Example:
{
"matchDisplayNames": [
{
"displayName": "string to exclude",
"match": false
}
]
}get /logging/logs/{logId}/log-entry-query
Get the LogEntryQuery associated with this smart Log.
URI Parameters
- logId: required(string)
HTTP status code 200
Body
Media type: application/json
Type: any
Example:
{
"matchDisplayNames": [
{
"displayName": "string to exclude",
"match": false
}
]
}HTTP status code 403
Body
Media type: application/json
Type: any
Example:
{"message": "Permission denied" }
HTTP status code 404
Body
Media type: application/json
Type: any
Example:
{"message": "Log not found" }