#%RAML 0.8 title: Notification Service API baseUri: "https://api.us1.covisint.com/notificationService/v1" protocols: [HTTPS] schemas: - resourceReference: | { "id" : "http://api.covisint.com/schema/resourceReference", "$schema" : "http://json-schema.org/draft-04/schema", "description" : "Schema representing links", "type" : "object", "properties" : { "id" : { "type" : "string", "description" : "The unique identifier for the resource." }, "type" : { "type" : "string", "description" : "The type of the resource." }, "realm" : { "type" : "string", "description" : "The realm of the resource." } } , "required":[ "id" ] } - namedResourceReference: | { "id" : "http://api.covisint.com/schema/namedScopedResource", "$schema" : "http://json-schema.org/draft-04/schema", "type" : "object", "description" : "Expands on the basic resource reference and adds internationalized name and description.", "extends" : { "$ref" : "http://api.covisint.com/schema/resourceReference#" }, "properties" : { "name" : { "description": "Internationalized resource name.", "$ref" : "http://api.covisint.com/idm/schema/internationalString#" }, "description" : { "description": "Internationalized resource description.", "$ref" : "http://api.covisint.com/idm/schema/internationalString#" } } } - resource: | { "id" : "http://api.covisint.com/schema/resource", "$schema" : "http://json-schema.org/draft-04/schema", "description" : "Core schema", "definitions" : { "resource" : { "id" : "resource", "type" : "object", "description" : "A basic resource.", "properties" : { "id" : { "type" : "string", "maxLength" : 64, "description" : "The unique identifier for this resource." }, "version": { "type" : "number", "minimum" : 0, "maximum" : 9223372036854775807, "description" : "The current version for this resource. Exists once the resource has been saved. This is mandatory for PUT requests, but should not be supplied for POST requests." }, "creator" : { "type" : "string", "maxLength" : 64, "description" : "The creator of this resource. This read-only field is ignored by the server, and is overlayed with the value supplied in the x-requestor header.", "readonly": true }, "creatorAppId" : { "type" : "string", "maxLength" : 64, "description" : "The id of the application used to create this resource. This read-only field is ignored by the server, and is overlayed with the value supplied in the x-requestor-app header.", "readonly": true }, "creation" : { "type" : "number", "minimum" : 0, "maximum" : 9223372036854775807, "description" : "This read only property is ignored by the server and the system will overlay with the time, in milliseconds since the epoch, when this resource was created.", "readonly": true } } , "required":[ "id", "creator", "creatorAppId", "creation" ] } } } - resourceV2: | { "id" : "http://api.covisint.com/schema/resourceV2", "$schema" : "http://json-schema.org/draft-04/schema", "description" : "Core schema", "definitions" : { "resource" : { "id" : "resourceV2", "type" : "object", "description" : "A basic resource (version V2).", "properties" : { "id" : { "type" : "string", "maxLength" : 64, "description" : "The unique identifier for this resource." }, "version": { "type" : "string", "description" : "The current version for this resource. Exists once the resource has been saved. This is mandatory for PUT requests, but should not be supplied for POST requests." }, "creator" : { "type" : "string", "maxLength" : 64, "description" : "The creator of this resource. This read-only field is ignored by the server, and is overlayed with the value supplied in the x-requestor header.", "readonly": true }, "creatorAppId" : { "type" : "string", "maxLength" : 64, "description" : "The id of the application used to create this resource. This read-only field is ignored by the server, and is overlayed with the value supplied in the x-requestor-app header.", "readonly": true }, "creation" : { "type" : "number", "minimum" : 0, "maximum" : 9223372036854775807, "description" : "This read only property is ignored by the server and the system will overlay with the time, in milliseconds since the epoch, when this resource was created.", "readonly": true } } , "required":[ "id", "creator", "creatorAppId", "creation" ] } } } - realmScopedResource: | { "id" : "http://api.covisint.com/schema/realmScopedResource", "$schema" : "http://json-schema.org/draft-04/schema", "type" : "object", "description" : "Expands on the base resource and adds a realm attribute.", "extends" : { "$ref" : "http://api.covisint.com/schema/resource#" }, "properties" : { "realm" : { "type" : "string", "maxLength" : 25, "pattern" : "^[A-Za-z0-9]{2,25}$", "description" : "The realm in which this resource is being created. This read-only field is ignored by the server, and is overlayed with the value supplied in the x-realm header.", "readonly": true } } , "required":[ "realm" ] } - realmScopedResourceV2: | { "id" : "http://api.covisint.com/schema/realmScopedResourceV2", "$schema" : "http://json-schema.org/draft-04/schema", "type" : "object", "description" : "A realm scoped resource (version V2). Expands on the base resource (version V2) and adds a realm attribute.", "extends" : { "$ref" : "http://api.covisint.com/schema/resourceV2#" }, "properties" : { "realm" : { "type" : "string", "maxLength" : 25, "pattern" : "^[A-Za-z0-9]{2,25}$", "description" : "The realm in which this resource is being created. This read-only field is ignored by the server, and is overlayed with the value supplied in the x-realm header.", "readonly": true } } , "required":[ "realm" ] } - errorResponseSchema: | { "id" : "http://api.covisint.com/schema/errorResponseSchema", "$schema" : "http://json-schema.org/draft-04/schema", "type" : "object", "description" : "Representation of an HTTP 4xx/5xx error response.", "properties" : { "status" : { "type" : "number", "minimum" : 400, "maximum" : 599, "description" : "The HTTP status code." }, "apiMessage" : { "type" : "string", "description" : "A helpful, human-readable description of the error, useful for basic diagnostics." }, "apiStatusCode" : { "type" : "string", "description" : "The API-specific status code." } } , "required":[ "status" ] } - serviceCode: | { "id" : "http://api.covisint.com/schema/serviceCodes", "$schema" : "http://json-schema.org/draft-04/schema", "type": "object", "description": "The site/service/location codes granted along with a service.", "properties": { "code": { "type": "string", "maxLength": 200, "description": "The code value." }, "codeKind": { "type": "string", "maxLength": 36, "description": "The associated business unit." } } , "required":[ "code", "codeKind" ] } - serviceCodes: | { "type" : "array", "description" : "The site/service/location codes granted along with the service, if any.", "items" : { "$ref" : "http://api.covisint.com/schema/serviceCode#"}, "required": false } - address: | { "id" : "http://api.covisint.com/idm/schema/address", "$schema" : "http://json-schema.org/draft-04/schema", "type" : "object", "description" : "A container for the subject's address elements.", "properties" : { "streets" : { "type" : "array", "description" : "An array of address streets (i.e. address line 1, 2, 3).", "minItems" : 0, "items" : { "type" : "string", "maxLength" : 255 } }, "city" : { "type" : "string", "maxLength" : 60, "description" : "The city name." }, "state" : { "type" : "string", "maxLength" : 60, "description" : "The state/province name or code." }, "postal" : { "type" : "string", "maxLength" : 10, "description" : "The postal or zip code." }, "country" : { "type" : "string", "minLength" : 2, "maxLength" : 3, "description" : "The ISO country code. http://en.wikipedia.org/wiki/ISO_3166-1_alpha-2"} } } - phone: | { "id" : "http://api.covisint.com/idm/schema/phone", "$schema" : "http://json-schema.org/draft-04/schema", "type" : "object", "description" : "A container for phone number details.", "properties" : { "number" : { "type" : "string","maxLength" : 100, "description" : "The phone number." }, "type" : { "enum" : [ "main", "mobile", "fax" ], "description" : "The phone number type." } }, "required" : [ "type" ] } - internationalString: | { "id": "http://api.covisint.com/idm/schema/internationalString", "$schema": "http://json-schema.org/draft-04/schema", "type": "array", "description" : "An internationalized string value, supporting one or more language translations.", "minItems": 1, "items": { "type": "object", "properties": { "lang": { "type": "string", "maxLength": 10, "description": "The language or locale in which the text is written." }, "text": { "type": "string", "maxLength": 2000, "description": "The internationalized text value." } } } } - tags: | { "id": "http://api.covisint.com/idm/schema/tag", "$schema": "http://json-schema.org/draft-04/schema", "type": "array", "description" : "The tags associated with a resource. This array is read-only, and may be modified on the resource endpoint with the appropriate tagging APIs.", "minItems": 1, "items": { "type": "object", "properties": { "tagName": { "type": "string", "description": "The tag associated with a resource." } } } } - baseDefinitionResource: | { "id" : "http://api.covisint.com/schema/baseDefinitionResource", "$schema" : "http://json-schema.org/draft-04/schema", "type" : "object", "description" : "A base rule definition(version V1). Expands on the base resource (version V2) and adds a realm attribute.", "extends": { "$ref" : "http://api.covisint.com/schema/realmScopedResourceV2#" }, "properties": { "name": { "description": "The application name (internationalized).", "$ref": "http://api.covisint.com/schema/internationalString#" }, "description": { "description": "The application description (internationalized).", "$ref" : "http://api.covisint.com/idm/schema/internationalString#" }, "properties":{ "type":"array", "description":"Properties used by the implementation.", "minItems":0, "items":[ { "anyOf": [ { "type": "string", "description": "The name of the property." }, { "type": "string", "description": "The value of the property." } ] } ] } , "required":[ "items" ] } , "required":[ "name" ] } - baseActionDefinitionResource: | { "id" : "http://api.covisint.com/schema/baseActionDefinitionResource", "$schema" : "http://json-schema.org/draft-04/schema", "type" : "object", "description" : "A base action action definition. Expands on the base definition resource ", "extends": { "$ref" : "http://api.covisint.com/schema/baseDefinitionResource#" }, "properties": { "type": { "description": "Type of action definition.", "enum": [ "SEND_APPLICATION_NOTIFICATION", "SEND_COMMAND", "SEND_NOTIFICATION" ], "required": true } } , "required":[ "type" ] } - baseTriggerDefinitionResource: | { "id" : "http://api.covisint.com/schema/baseTriggerDefinitionResource", "$schema" : "http://json-schema.org/draft-04/schema", "type" : "object", "description" : "A base action trigger definition. Expands on the base definition resource ", "extends": { "$ref" : "http://api.covisint.com/schema/baseDefinitionResource#" }, "properties": { "type": { "description": "Type of trigger definition.", "enum": [ "DEVICE_SEND_EVENT", "DEVICE_LIFECYCLE_STATE_CHANGE", "DEVICE_OPERATIONAL_STATE_CHANGE" ] } } , "required":[ "type" ] } - dataType: | { "id" : "http://api.covisint.com/schema/dataType", "$schema" : "http://json-schema.org/draft-04/schema", "description" : "Data type enum.", "enum":[ "string", "integer", "bool", "decimal" ] } - attribute: | { "id" : "http://api.covisint.com/schema/attribute", "$schema" : "http://json-schema.org/draft-04/schema", "type" : "object", "description" : "An attribute.", "properties" : { "oneOf" : [ { "attributeTypeId" : { "type" : "string", "description" : "The attribute type id." } }, { "attributeType" : { "description" : "The full attribute type definition.", "$ref" : "http://api.covisint.com/schema/attributeType#" } } ], "value" : { "type" : "any", "description" : "The attribute value." } } , "required":[ "attributeTypeId" ] } - attributes: | { "id" : "http://api.covisint.com/schema/attributes", "$schema" : "http://json-schema.org/draft-04/schema", "type" : "array", "description" : "Collection of attributes.", "items" : { "$ref" : "http://api.covisint.com/schema/attribute#" } } - expression: | { "id" : "http://api.covisint.com/schema/expression#", "$schema" : "http://json-schema.org/draft-04/schema", "description" : "The DSL for defining conditional expressions.", "oneOf" : [ { "type" : "object", "properties" : { "any" : { "type" : "array", "description" : "An aggregate expression representing an 'any' condition.", "items" : { "$ref" : "http://api.covisint.com/schema/expression#" } } } }, { "type" : "object", "properties" : { "all" : { "type" : "array", "description" : "An aggregate expression representing an 'all' condition.", "items" : { "$ref" : "http://api.covisint.com/schema/expression#" } } } }, { "type" : "object", "description" : "A simple leaf-node expression. The format of this expression is: '(f:, v:())'. The supported expressions are: equal, notEqual, startsWith, endsWith, matches, greaterThan, greaterThanOrEqual, lessThan, lessThanOrEqual. The field name can be a simple field name i.e. 'id' or hierarchical field name using dot-notation like 'resource.id' / 'resource.tag[0]' . The value corresponding to the field name provided should always be a simple data type and cannot be an array or an object.", "properties" : { "expr" : { "type" : "string" } } , "required":[ "expr" ] } ] } - notifications: | { "id": "http://api.covisint.com/schema/notifications", "$schema": "http://json-schema.org/draft-04/schema", "description": "Collection of resource with notifications.", "type": "array", "items": { "$ref": "http://api.covisint.com/schema/notification#" } } - notification: | { "$schema": "http://json-schema.org/draft-04/schema#", "id": "http://api.covisint.com/schema/notification", "type": "object", "description": "Schema representing a notification service.", "properties": { "name": { "description": "Name of the notification.", "$ref": "http://api.covisint.com/idm/schema/internationalString#" }, "description": { "description": "Description of the notification.", "$ref": "http://api.covisint.com/idm/schema/internationalString#" }, "active":{ "type" : "boolean", "description": "Indicates whether this notification is active. Defaults to true.", "default": true }, "tags": { "description": "The tags associated with this notification.", "$ref": "http://api.covisint.com/idm/schema/tags#" }, "triggerPoints": { "type": "object", "description": " notification conditions", "properties": { "targetType":{ "description" : " valid Target types", "enum":[ "GEOFENCE" ] }, "targetId":{ "type":"string", "description":"Target Id" }, "triggerType":{ "description":"Trigger type", "enum": [ "DEVICE_ENTERING_GEOFENCE", "DEVICE_EXITING_GEOFENCE", "DWELL_TIME" ] } } }, "frequency":{ "type": "integer", "description":"frequency of notification" }, "notificationCount" : { "type": "integer", "description":"notification count" }, "notificationMethods":{ "description":"notification methods", "email":{ "type":"object", "description":" email details for the notification", "properties":{ "to":{ "type":"string", "description":" email address to send" }, "subject":{ "type":"string", "description":"subject of the email" }, "content":{ "type":"string", "description":"content of the email" } } }, "sms":{ "type":"object", "description":" sms details for the notification", "properties":{ "to":{ "type":"string", "description":" sms address to send" }, "content":{ "type":"string", "description":"content of the sms" } } }, "webhooks":{ "authentication":{ "type":"object", "description":"authentication of the external call out", "properties":{ "customHeaders":{ "type":"string", "description":"custom headers" }, "authType":{ "description":"Trigger type", "enum": [ "BASIC", "OAUTH2", "NONE" ] }, "authContent":{ "clientId":{ "type":"string", "description":"client ID" }, "clientSecret":{ "type":"string", "description":"client secret" }, "accessToken":{ "type":"string", "description":"access token" }, "grantType":{ "type":"string", "description":"grant type" }, "tokenEndpointUrl":{ "type":"string", "description":"token endpoint url" }, "introspectionEndpointUrl":{ "type":"string", "description":"introspection rendpoint url" } , "username":{ "type":"string", "description":"username" }, "password":{ "type":"string", "description":"password" } } } }, "serviceCall":{ "type":"object", "description":" serviceCall details for the notification", "properties":{ "url":{ "type":"string", "description":" URL of the service call" }, "headers":{ "type":"string", "description":"headers of the service call" }, "method":{ "type":"string", "description":" method of the service call" }, "body":{ "type":"string", "description":"body of the service call" } } }, "required" : ["authType","authContent"] } }, "ruleId":{ "type": "string", "description":"rule id" } }, "required" : ["name","triggerPoints"] } traits: - secured: displayName: secured - unsecured: displayName: unsecured - getResponse: displayName: getResponse - getSearchResponse: displayName: getSearchResponse - postResponse: displayName: postResponse - deleteResponse: displayName: deleteResponse - putResponse: displayName: putResponse - putResponseV2: displayName: putResponseV2 - putCreateResponse: displayName: putCreateResponse - taskResponse: displayName: taskResponse - pagableRequest: displayName: pagableRequest - taggable: displayName: taggable - sortable: displayName: sortable - searchable: displayName: searchable /notifications: description: Collection endpoint for notification. post: description: "Creates a new notification.[flow-name:notification-create-notification][Since:1.0][visibility:public]" headers: Accept: description: Media type for a notification resource. type: string required: true repeat: false example: application/vnd.com.covisint.platform.notification.v1+json Content-type: description: Media type for a notification resource. type: string required: true repeat: false example: application/vnd.com.covisint.platform.notification.v1+json Authorization: description: Access token that is obtained from the /token endpoint of the OAuth API. type: string required: true repeat: false pattern: "^Bearer .*$" example: Bearer ZCtYUGpYRXpET0JvVE1rZzlWV3I1Yk body: application/vnd.com.covisint.platform.notification.v1+json: schema: notification responses: "201": description: A new notification was created successfully. body: application/vnd.com.covisint.platform.notification.v1+json: schema: notification "400": description: | There was a problem with the client's request. ___ Substatus codes and error messages are mentioned below: + framework:request + framework:request:io + framework:request:io:read - Invalid input. There was an error while parsing. + framework:request:io:read:parsing + framework:request:io:write + framework:request:header:missing - Missing request header: {headerName} + framework:request:param:missing - Missing request parameter: {queryParameterName} + framework:request:data:missing - The following information was missing from the resource: {resourceFieldName(s)} + securityquestions.multiple.owner.id.invalid - Muliple owner ids {ownerId(s)} are not allowed + securityquestions.multiple.owner.type.invalid - Muliple owner types {ownerId(s)} are not allowed + securityquestions.owner.id.invalid - Owner id {ownerId} invalid if owner type is not mentioned + securityquestions.owner.type.invalid - Owner type {ownerType} invalid if owner id is not mentioned + framework:request:invalid:header:value - Invalid x-requestor header value. Valid values are [person, application] + framework:request:param:invalid - The following parameter should not be part of the request: {queryParameterName} body: application/vnd.com.covisint.error.v1+json: schema: errorResponseSchema "406": description: | Unable to produce content of specified 'Accept' media type ___ Substatus codes and error messages are mentioned below: + framework:request:unsupported:mediatype - The server is unable to produce content of type {acceptMediaType} body: application/vnd.com.covisint.error.v1+json: schema: errorResponseSchema "415": description: | Unable to consume content of specified 'Content-Type' media type ___ Substatus codes and error messages are mentioned below: + framework:request:unsupported:mediatype - The server is unable to consume content of type {contentMediaType} body: application/vnd.com.covisint.error.v1+json: schema: errorResponseSchema "500": description: | An unknown server error occurred ___ Substatus codes and error messages are mentioned below: + framework:unknown body: application/vnd.com.covisint.error.v1+json: schema: errorResponseSchema "401": description: Unauthenticated request. This is returned if the access token is missing, invalid, or expired. Access tokens are obtained through the /token endpoint of the Oauth API. body: application/vnd.com.covisint.error.v1+json: schema: errorResponseSchema "403": description: Unauthorized request. The requestor is not authorized to perform the requested operation. body: application/vnd.com.covisint.error.v1+json: schema: errorResponseSchema is: [postResponse, secured] get: description: "Retrieves all the notifications.[flow-name:notification-get-all-notifications][Since:1.0][visibility:public]" headers: Accept: description: Media type. type: string required: true repeat: false example: application/vnd.com.covisint.platform.notification.v1+json Authorization: description: Access token that is obtained from the /token endpoint of the OAuth API. type: string required: true repeat: false pattern: "^Bearer .*$" example: Bearer ZCtYUGpYRXpET0JvVE1rZzlWV3I1Yk queryParameters: id: description: Retrieve notifications with the specified id. type: string required: false repeat: false name: description: Retrieve notifications with the specified name. Multiple parameters are allowed and the search results will be a union. Example - .../notifications?name=beagleboard will match all notifications whose name exactly equals "beagleboard". .../notifications?name=?Feagleboard will match all notifications whose name ends with "eagleboard" and starts with a single wildcard character. .../notifications?name=*board will match all notifications whose name ends with "board" ..../notifications?name=beagle* will match all notifications whose name starts with "beagle". type: string required: false repeat: false creation: description: Retrieve notifications with the specified creation. Range search is supported. Multiple parameters are allowed and the search results will be a union. The pattern would be creation=>value1&creation=value1&creation=