#
# Identities.dat
# This file is for use with the "Default Organization". It is a simple mechanism to have a basic ILM structure to use with
# out-of-the-box tire-kicking, or even for Small companies
#
# For Larger Companies, you will want to create a new class implementing the "Organization" interface, making calls to your ILM, or utilizing
# batch feeds, as is appropriate for your company.
#
# Example Field Layout.  note, in this example, Application IDs and People IDs are mixed.  You may want to split
# out AppIDs, choose your own status indicators, or whatever you use.
#  0 - unique ID
#  1 - full name
#  2 - first name
#  3 - last name
#  4 - phone
#  5 - official email
#  6 - employment status e=employee, c=contractor, a=application, n=no longer with company
#  7 - responsible to (i.e Supervisor for People, or AppOwner, if it's an App ID)
jonathan|Jonathan C Gathman|Jonathan|Gathman|314-550-3312|jonathan.gathman@att.com|e|
clefevre|Catherine LeFevre|Catherine|LeFevre||catherine.lefevre@att.com|e|
ramkoya|Ram Koya|Ram|Koya||ram.koya@att.com|e|clefevre
chris|Chris Varner|Chris|Varner|469-375-0774|chris.varner@att.com|c|anne
ian|Ian Howell|Ian|Howell|314-450-2782|ian.howell@att.com|e|jonathan
gabe|Gabe B Maurer|Gabe|Maurer|314-962-9579|gabe.maurer@att.com|e|jonathan
sai|Sai Gandham|Sai|Gandham|424-265-9959|sai.gandham@att.com|c|anne
anne|Anne E Kopp|Anne|Kopp|512-244-4280|anne.e.kopp@att.com|e|jonathan
aaf|AAF App|AAF|Application||DL-aaf-support@att.com|a|jonathan
a2345z|AAF App|AAF|Application||DL-aaf-support@att.com|a|jonathan
aaf_authz|AAF App|AAF|Application||jonathan.gathman@att.com|a|jonathan
kirankamieni|Kiran K Kamineni|Kiran|Kamineni|999-999=9999|kiran.k.kamineni@intel.com|ramkoya
aaf_sms|Secret Management Service|SMS|Secret Management Service provides secure storage for sensitive information such as passwords and userIDs||kiran.k.kamineni@intel.com|a|kirankamieni
djtimoney|Dan Timoney|Dan|Timoney|+1 (732) 420-3226|dt5972@att.com|e|ramkoya
xuegao|Xue Gao|Xue|Gao|0032479670327|xg353y@att.com|e|clefevre
clamp|Clamp Application|clamp|Application||xg353y@att.com|a|xuegao
dmaapbc|DMaap Bus Controller|DMaap|Bus Controller||dgl@research.att.com|a|dgfromatt
dglfromatt|Dominic Lunanuova|Dominic|Lunanuova|732-420-9618|dgl@research.att.com|e|ramokoya
puthenpura|Sarat Puthenpura|Sarat|Puthenpura|||e|clefevre
ruoyu|Ruoyu Ying|Ruoyu|Ying|13661960772|ruoyu.ying@intel.com|e|puthenpura

