#
# 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@osaaf.com|e|
mmanager|Mark D. Manager|Mark|Manager|314-123-1234|mark.d.manager@osaaf.com|e|iowna
bdevl|Robert D. Developer|Bob|Developer|314-123-1235|bob.d.develper@osaaf.com|e|mmanager
mmarket|Mary D. Marketer|Mary|Marketer|314-123-1236|mary.d.marketer@osaaf.com|e|mmanager
ccontra|Clarice D. Contractor|Clarice|Contractor|314-123-1237|clarice.d.contractor@osaaf.com|c|mmanager
iretired|Ira Lee M. Retired|Ira|Retired|314-123-1238|clarice.d.contractor@osaaf.com|n|mmanager
osaaf|ID of AAF|osaaf|AAF Application|||a|bdevl
# 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|||a|aaf_admin
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
