Step 1: Request a Topic or Queue

Send an email to eis-support@lists.berkeley.edu with a subject of "ENS - Create Topic/Queue" including

  • Event Publisher System Name
  • Event Publisher Functional and Technical Owners (this information will be used for future service notifications, upgrades and outages)
  • Description of Event

We'll follow-up with you to set-up your access to the message broker and create the namespace for your topic or queue.

Step 2: Request Access to Event API

  1. Log on to API Central
  2. Click on "App Keys" in the window's top menu bar
  3. Click on the "Create a new application" button
  4. Under "Select a Service," click on "API and Integration Tools"
  5. Next to "1. Plan," click on "Review/Change"
  6. Under "Other plans," click on "Event Notification System" then click on "Select this plan"
  7. Enter a meaningful name and description (both required)
  8. Click on "Create Application"
  9. Note the application ID and key for later use

Your request will be processed and you'll receive notification via email when it's been completed

Step 3: Implement Event Schema

In your code, implement an event model class based on the following Event schema:

Publisher XSD
<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema">
 
    <xs:element name="eventNotification">
        <xs:complexType>
            <xs:sequence>
                <xs:element maxOccurs="unbounded" ref="event" />
            </xs:sequence>
        </xs:complexType>
    </xs:element>
 
    <xs:element name="event">
        <xs:complexType>
            <xs:sequence>
                <xs:element ref="topic" />
                <xs:element ref="access" />
                <xs:element ref="jmsDist" />
                <xs:element ref="jmsType" />
                <xs:element ref="expiry" />
                <xs:element ref="timestamp" />
                <xs:element ref="payload" />
                <xs:any processContents="lax" />
            </xs:sequence>
        </xs:complexType>
    </xs:element>
 
    <xs:element name="body">
        <xs:complexType>
            <xs:sequence>
                <xs:any processContents="skip" maxOccurs="unbounded"
                    minOccurs="0" />
            </xs:sequence>
        </xs:complexType>
    </xs:element>
 
    <xs:element name="topic" type="xs:string" />
    <xs:element name="access" type="xs:string" />
    <xs:element name="jmsDist" type="xs:string" />
    <xs:element name="jmsType" type="xs:string" />
    <xs:element name="expiry" type="xs:long" />
    <xs:element name="timestamp" type="xs:dateTime" />
    <xs:element name="payload" type="xs:string" />
</xs:schema>

Add payload content based on the event triggered by your reference system. Note: multiple events are allowed per single event model. Publish the event/s using the POST action on the /events endpoint.