We need a new API for communicating START Replacement forms for Backup against NetBill.
There is already an old API for talking between old START and NetBill, but we are creating a new interface as we are changing the arguments.
From the perspective of ServiceNow, we need the methods:
- add() provides a netid, nodename, other arguments to create a node
- delete() provide a nodename, tell NetBill to delete the record
- getBilling() provide a netid, receive whether or not PTAEO required
- getNodeList() provide a netid, receive a list containing zero or more nodename(s) that are associated with that netid
- getNodeDetails() provide a nodename, receive the details for that nodename
- update() provide a nodename, provide arguments to change on the node
add()
Arguments for add:
netid of owner
nodename (needs to be unique, and NOT exist already in the system)
client category (DS,MW,WS)
Client OS (Windows, Mac, Unix)
interval (backup time, or never)
PTAEO, passed as five separate strings
Add method needs to return an error code indicating whether or not the add request was accepted, and for errors should indicate the problem with the data.
PTAEO details
PTAEO consists of five strings:
- project
- task
- award
- expenditure
- organization
Note that it's superfluous for us to pass around the Expenditure code. The E code is consistent for all Central Campus Backup items, thus the value will always be '832170'. We could drop this value from being passed, but for future flexibility we should leave it in the API.
Interval, possible values:
Interval is coded as a string. These values are shown to the user:
None - I will backup manually
12:00AM - 12:29AM
12:30AM - 12:59AM
1:00AM - 1:29AM
1:30AM - 1:59AM
2:00AM - 2:29AM
2:30AM - 2:59AM
3:00AM - 3:29AM
3:30AM - 3:59AM
4:00AM - 4:29AM
4:30AM - 4:59AM
5:00AM - 5:29AM
5:30AM - 5:59AM
6:00AM - 6:29AM
6:30AM - 6:59AM
7:00AM - 7:29AM
7:30AM - 7:59AM
8:00AM - 8:29AM
8:30AM - 8:59AM
9:00AM - 9:29AM
9:30AM - 9:59AM
10:00AM - 10:29AM
10:30AM - 10:59AM
11:00AM - 11:29AM
11:30AM - 11:59AM
We will encode these for passing back and forth as zero-padded, military time, first four characters of the string to the api:
None
0000
0030
0100
0130
0200
0230
0300
0330
0400
0430
0500
0530
0600
0630
0700
0730
0800
0830
0900
0930
1000
1030
1100
1200
1230
1300
1330
1400
1430
1500
1530
1600
1630
1700
1730
1800
1830
1900
1930
2000
2030
2100
2130
2200
2230
2300
2330
delete()
Arguments for delete:
netid of owner
nodename (needs to be unique, and exist)
datestamp for date to delete, formatted as Oracle date (31-JAN-13). This is awkward for ServiceNow, but native for NetBill. Furthermore, ServiceNow already has a method that does this for previous Oracle interactions.
Delete method needs to return an error code indicating whether or not the delete request was accepted, and for errors should indicate the problem with the data.
getBilling()
Arguments for getBilling:
netid of owner
getBilling method needs to return an error code indicating whether or not the getBilling request was accepted. If no error, also needs to return:
whether a PTAEO is required
getNodeList()
Arguments for getNodeList:
netid of owner
getNodeList method needs to return an error code indicating whether or not the getNodeset request was accepted. If no error, also needs to return:
- a count of nodes. zero or more.
- a comma-delimited list, containing zero or more nodenames
each nodename is received in a single string, comma separated, no spaces
Sample nodename strings
- "tanner,cooper,radar"
- "" (empty set)
- "zuse"
getNodeDetails()
Arguments for getNodeDetails:
nodename of node
getNodeDetails method needs to return an error code indicating whether or not the getNodeDetails request was accepted. If no error, also needs to return:
- returns:
nodename (needs to be unique, and NOT exist already in the system)
client category (DS,MW,WS)
Client OS (Windows, Mac, Unix)
interval (backup time, or never)
PTAEO, passed as five separate strings
update()
Arguments for update:
netid of owner
nodename (needs to be unique, and already exist)
client category (DS,MW,WS)
Client OS (Windows, Mac, Unix)
interval (backup time, or never)
PTAEO, passed as five separate strings
update method needs to return an error code indicating whether or not the add request was accepted, and for errors should indicate the problem with the data.
Outstanding questions
- What's a charge code (name and / or number)? Do I need to pass that with everything I send back and forth to netbill?
- Why would we care whether or not somebody is a student? ServiceNow already knows this information, and apparently NetBill already knows to. Do we really need to pass that back and forth?