#
# Sample 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)
#

iowna|Ima D. Owner|Ima|Owner|314-123-2000|ima.d.owner@people.osaaf.com|e|
mmanager|Mark D. Manager|Mark|Manager|314-123-1234|mark.d.manager@people.osaaf.com|e|iowna
bdevl|Robert D. Developer|Bob|Developer|314-123-1235|bob.d.developer@people.osaaf.com|e|mmanager
mmarket|Mary D. Marketer|Mary|Marketer|314-123-1236|mary.d.marketer@people.osaaf.com|e|mmanager
ccontra|Clarice D. Contractor|Clarice|Contractor|314-123-1237|clarice.d.contractor@people.osaaf.com|c|mmanager
iretired|Ira Lee M. Retired|Ira|Retired|314-123-1238|clarice.d.contractor@people.osaaf.com|n|mmanager
# ONAP default Users
aaf_admin|AAF Administrator|Mr AAF|AAF Admin|||e|mmanager
deploy|Deployer|Deployer|Depoyer|||e|aaf_admin
demo|PORTAL DEMO|PORTAL|DEMO|||e|aaf
jh0003|PORTAL ADMIN|PORTAL|ADMIN|||e|aaf
cs0008|PORTAL DESIGNER|PORTAL|DESIGNER|||e|aaf
jm0007|PORTAL TESTER|PORTAL|TESTER|||e|aaf
op0001|PORTAL OPS|PORTAL|OPS|||e|aaf
gv0001|PORTAL GOVERNOR|PORTAL|GOVERNOR|||e|aaf
# ONAP App IDs
aaf|AAF Application|AAF|Application|||a|aaf_admin
aaf-sms|AAF SMS Application|AAF SMS|Application|||a|aaf_admin
clamp|ONAP CLAMP Application|CLAMP|Application|||a|aaf_admin
aai|ONAP AAI Application|AAI|ONAP Application|||a|aaf_admin
appc|ONAP APPC Application|APPC|ONAP Application|||a|aaf_admin
dcae|ONAP DCAE Application|CLAMP|ONAP Application|||a|aaf_admin
dmaap-bc|ONAP DMaap BC Application|DMaap BC|ONAP Application|||_admina|aaf
dmaap-mr|ONAP DMaap MR Application|DMaap MR|ONAP Application|||a|aaf_admin
oof|ONAP OOF Application|OOF|ONAP Application|||a|aaf_admin
sdnc|ONAP SDNC Application|SDNC|ONAP Application|||a|aaf_admin
