UHIMS Events - Message Specs

Note to IAM team: Do not edit this page.  It is generated automatically by scripts in util/messaging/uhims-events

Addendum to specs below:

  • All messages include <messageDate> at the same level as <messageData>

Here are the auto-generated message specs:


PERSON MESSAGES
<uid> (data specs, not a message)
<addPerson>ROUTING KEY:person.add

<messageData>


<displayName>(optional)


<firstName>(must provide, even if value happens to be empty)


<fullName>(non-empty)


<lastName>(must provide, even if value happens to be empty)


<middleName>(must provide, even if value happens to be empty)


<nameSuffix>(must provide, even if value happens to be empty)


<uhUuid>(non-empty)
<retrofitPerson>ROUTING KEY:person.retrofit[.for.{message routing key of triggering message}]

<messageData>


<actions>(contains one or more of <addPerson> messages) (non-empty)


<uhUuid>(non-empty)


<uids>(contains zero or more of <uid>)
<modifyPersonUhUuid>ROUTING KEY:person.modify

<messageData>


<uhUuid>(non-empty)


<uids>(contains zero or more of <uid>)

<messageDataBefore>


<uhUuid>(non-empty)
<modifyPersonFullName>ROUTING KEY:person.modify

<messageData>


<firstName>(must provide, even if value happens to be empty)


<fullName>(non-empty)


<lastName>(must provide, even if value happens to be empty)


<middleName>(must provide, even if value happens to be empty)


<nameSuffix>(must provide, even if value happens to be empty)


<uhUuid>(non-empty)


<uids>(contains zero or more of <uid>)
<modifyPersonDisplayName>ROUTING KEY:person.modify

<messageData>


<displayName>(must provide, even if value happens to be empty)


<uhUuid>(non-empty)


<uids>(contains zero or more of <uid>)
<deletePerson>ROUTING KEY:person.delete

<messageData>


<uhUuid>(non-empty)


<uids>(contains zero or more of <uid>)

AFFILIATION MESSAGES
<location> (data specs, not a message)


<locationBuildingID>(optional)


<locationCampus>(optional)


<locationFacilityID>(optional)


<locationFloor>(optional)


<locationID>(optional)


<locationRoom>(optional)
<affiliation> (data specs, not a message)


<affID>(non-empty)


<campusKey>(optional)


<dataOrigin>(non-empty)


<departmentID>(optional)


<eac>(optional)


<employeeRecord>(optional) (non-zero integer)


<employeeStatus>(optional)


<employeeTypeCode>(optional)


<fte>(optional)


<functionalCode>(optional)


<grade>(optional)


<isHomeRecord>(optional) (Y or empty)


<jobCode>(optional)


<location>(contains one of <location>)


<org>(non-empty)


<positionNumber>(optional)


<role>(non-empty)


<uhBargainingUnit>(optional)


<uhUnitCode>(optional) (2-digit code)
<addAffiliation>ROUTING KEY:affiliation.add.{dataOrigin}.{org}.{role} (account for periods in role values)

<messageData>


<affiliation>(contains one of <affiliation>) (non-empty)


<remainingAffiliations>(contains zero or more of <affiliation>)


<uhUuid>(non-empty)


<uids>(contains zero or more of <uid>)
<retrofitAffiliation>ROUTING KEY:affiliation.retrofit[.for.{message routing key of triggering message}]

<messageData>


<actions>(contains one or more of <addAffiliation> messages) (non-empty)


<uhUuid>(non-empty)


<uids>(contains zero or more of <uid>)
<deleteAffiliation>ROUTING KEY:affiliation.delete.{dataOrigin}.{org}.{role} (account for periods in role values)

<messageData>


<affiliation>(contains one of <affiliation>) (non-empty)


<remainingAffiliations>(contains zero or more of <affiliation>)


<uhUuid>(non-empty)


<uids>(contains zero or more of <uid>)
<modifyAffiliation>ROUTING KEY:affiliation.modify.{dataOrigin}.{org}.{role} (account for periods in role values)

<messageData>


<affiliation>(contains one of <affiliation>) (non-empty)


<remainingAffiliations>(contains zero or more of <affiliation>)


<uhUuid>(non-empty)


<uids>(contains zero or more of <uid>)

USERNAME MESSAGES
<addUsername>ROUTING KEY:username.add

<messageData>


<displayName>(non-empty)


<uhUuid>(non-empty)


<uid>(non-empty)
<retrofitUsername>ROUTING KEY:username.retrofit[.for.{message routing key of triggering message}]

<messageData>


<actions>(contains one or more of <addUsername> messages) (non-empty)


<uhUuid>(non-empty)
<modifyUsernameUid>ROUTING KEY:username.modify

<messageData>


<uhUuid>(non-empty)


<uid>(non-empty)

<messageDataBefore>


<uid>(non-empty)
<modifyUsernameUhUuid>ROUTING KEY:username.modify

<messageData>


<uhUuid>(non-empty)


<uid>(non-empty)

<messageDataBefore>


<uhUuid>(non-empty)
<modifyUsernameDisplayName>ROUTING KEY:username.modify

<messageData>


<displayName>(non-empty)


<uid>(non-empty)
<modifyUsernameAccess>ROUTING KEY:username.modify

<messageData>


<access>(non-empty)


<uid>(non-empty)
<deleteUsername>ROUTING KEY:username.delete

<messageData>


<reason>(optional)


<uid>(non-empty)

EMAIL MESSAGES
<addEmail>ROUTING KEY:email.add

<messageData>


<emailAddress>(non-empty)


<uhUuid>(non-empty)


<uids>(contains zero or more of <uid>)
<retrofitEmail>ROUTING KEY:email.retrofit[.for.{message routing key of triggering message}]

<messageData>


<actions>(contains one or more of <addEmail> messages) (non-empty)


<uhUuid>(non-empty)


<uids>(contains zero or more of <uid>)
<deleteEmail>ROUTING KEY:email.delete

<messageData>


<emailAddress>(non-empty)


<uhUuid>(non-empty)


<uids>(contains zero or more of <uid>)

CONTACT INFO MESSAGES
<phone> (data specs, not a message)


<phoneAsEntered>(must provide, even if value happens to be empty)


<phoneInfoPrefix>(must provide, even if value happens to be empty)


<phoneInfoSuffix>(must provide, even if value happens to be empty)


<phoneNumber>(must provide, even if value happens to be empty)
<contactInfo> (data specs, not a message)


<contactInfoID>(non-empty)


<deptName>(must provide, even if value happens to be empty)


<emailsAsEntered>(must provide, even if value happens to be empty)


<faxes>(contains zero or more of <phone>) (must provide, even if value happens to be empty)


<faxesAsEntered>(must provide, even if value happens to be empty)


<officeLocation>(must provide, even if value happens to be empty)


<orgName>(must provide, even if value happens to be empty)


<phones>(contains zero or more of <phone>) (must provide, even if value happens to be empty)


<phonesAsEntered>(must provide, even if value happens to be empty)


<title>(must provide, even if value happens to be empty)


<website>(must provide, even if value happens to be empty)
<addContactInfo>ROUTING KEY:contactInfo.add

<messageData>


<contactInfo>(contains one of <contactInfo>) (non-empty)


<remainingContactInfo>(contains zero or more of <contactInfo>) (must provide, even if value happens to be empty)


<uhUuid>(non-empty)


<uids>(contains zero or more of <uid>)
<retrofitContactInfo>ROUTING KEY:contactInfo.retrofit[.for.{message routing key of triggering message}]

<messageData>


<actions>(contains one or more of <addContactInfo> messages) (non-empty)


<uhUuid>(non-empty)


<uids>(contains zero or more of <uid>)
<modifyContactInfo>ROUTING KEY:contactInfo.modify

<messageData>


<contactInfo>(contains one of <contactInfo>) (non-empty)


<remainingContactInfo>(contains zero or more of <contactInfo>) (must provide, even if value happens to be empty)


<uhUuid>(non-empty)


<uids>(contains zero or more of <uid>)
<deleteContactInfo>ROUTING KEY:contactInfo.delete

<messageData>


<contactInfo>(contains one of <contactInfo>) (non-empty)


<remainingContactInfo>(contains zero or more of <contactInfo>) (must provide, even if value happens to be empty)


<uhUuid>(non-empty)


<uids>(contains zero or more of <uid>)

SCOPED HOME ORG MESSAGES
<addScopedHomeOrg>ROUTING KEY:scopedHomeOrg.add

<messageData>


<affID>(optional)


<campusKey>(optional)


<dataOrigin>(non-empty)


<eac>(optional)


<employeeRecord>(optional)


<employeeStatus>(optional)


<employeeTypeCode>(optional)


<fte>(optional)


<functionalCode>(optional)


<grade>(optional)


<isHomeRecord>(optional)


<jobCode>(optional)


<org>(non-empty)


<positionNumber>(optional)


<role>(optional)


<uhBargainingUnit>(optional)


<uhUnitCode>(optional)


<uhUuid>(non-empty)


<uids>(contains zero or more of <uid>)
<retrofitScopedHomeOrg>ROUTING KEY:scopedHomeOrg.retrofit[.for.{message routing key of triggering message}]

<messageData>


<actions>(contains one or more of <addScopedHomeOrg> messages) (non-empty)


<uhUuid>(non-empty)


<uids>(contains zero or more of <uid>)
<modifyScopedHomeOrg>ROUTING KEY:scopedHomeOrg.modify

<messageData>


<affID>(optional)


<campusKey>(optional)


<dataOrigin>(non-empty)


<eac>(optional)


<employeeRecord>(optional)


<employeeStatus>(optional)


<employeeTypeCode>(optional)


<fte>(optional)


<functionalCode>(optional)


<grade>(optional)


<isHomeRecord>(optional)


<jobCode>(optional)


<org>(non-empty)


<positionNumber>(optional)


<role>(optional)


<uhBargainingUnit>(optional)


<uhUnitCode>(optional)


<uhUuid>(non-empty)


<uids>(contains zero or more of <uid>)

<messageDataBefore>


<affID>(optional)


<campusKey>(optional)


<eac>(optional)


<employeeRecord>(optional)


<employeeStatus>(optional)


<employeeTypeCode>(optional)


<fte>(optional)


<functionalCode>(optional)


<grade>(optional)


<isHomeRecord>(optional)


<jobCode>(optional)


<org>(non-empty)


<positionNumber>(optional)


<role>(optional)


<uhBargainingUnit>(optional)


<uhUnitCode>(optional)
<deleteScopedHomeOrg>ROUTING KEY:scopedHomeOrg.delete

<messageData>


<affID>(optional)


<campusKey>(optional)


<dataOrigin>(non-empty)


<eac>(optional)


<employeeRecord>(optional)


<employeeStatus>(optional)


<employeeTypeCode>(optional)


<fte>(optional)


<functionalCode>(optional)


<grade>(optional)


<isHomeRecord>(optional)


<jobCode>(optional)


<org>(non-empty)


<positionNumber>(optional)


<role>(optional)


<uhBargainingUnit>(optional)


<uhUnitCode>(optional)


<uhUuid>(non-empty)


<uids>(contains zero or more of <uid>)

VALUES FOR <dataOrigin>

hris

rcuh

sece

sis

uhims

VALUES FOR <org>

etc

ewc

hawcc

hcc

kauaicc

kcc

lcc

mauicc

mhpcc

other

rcuh

uh

uhf

uhh

uhm

uhs

uhsystem

uhwo

wcc

VALUES FOR <role>

faculty.communityCollege

faculty.countyAgent

faculty.courseInstructor

faculty.emeritus

faculty.graduateAssistant.overload

faculty.law

faculty.lecturer

faculty.lecturer.casual

faculty.lecturer.overload

faculty.librarian

faculty.medical

faculty.noDetails

faculty.noDetails.casual

faculty.noDetails.overload

faculty.researchAssistant

faculty.researcher

faculty.specialist

faculty.teachingAssistant

faculty.university

nonCreditStudent.etc

nonCreditStudent.noDetails

ohana

other

preStudent.accepted

preStudent.admitted

preStudent.applicant

preStudent.financialAid

preStudent.noDetails

retiree

staff.apt

staff.apt.casual

staff.apt.overload

staff.civilService

staff.executive

staff.executive.casual

staff.executive.overload

staff.noDetails

staff.noDetails.casual

staff.noDetails.overload

staff.nonCompensated

staff.postdoc

student.graduate.law

student.graduate.medical

student.graduate.noDetails

student.other.apprenticeship

student.other.continuingEducation

student.other.postBaccalaureate

student.other.professional

student.other.undeclared

student.other.vocational

student.undergraduate.noDetails

studentEmployee.studentHire

studentEmployee.workStudy

VALUES FOR <reason>

correction

deprovisioned

discarded

emergency

VALUES FOR <campusKey>

CCCommunity Colleges Chancellor Office

ETEmployment Training Center

HAHawaii CC

HIUH Hilo

HOHonolulu CC

KAKapiolani CC

KUKauai CC

LELeeward CC

MAUH Manoa

MUMaui CC

SWUH System

WIWindward CC

WOUH West Oahu

XXEAC Error

VALUES FOR <employeeStatus>

AActive

FPaid Leave

LLeave Without Pay

TTerminated

VALUES FOR <employeeTypeCode>

AAPT

CCivil Service

EExecutive/Managerial

FFaculty

GGraduate Assistant

LLecturer

NNon-Compensated

PPerson of Interest

SCasual

VOverload