-- IDL module extracted from ITU-T Q.834.4 (07/2003)

#ifndef __Q834_4_ACCESSCONTROL_DEFINED #define __Q834_4_ACCESSCONTROL_DEFINED #include "Q834Common.idl" #pragma prefix "itu.Int" module q834_4 { module AccessControl { // Begin definitions from other idl files // From Q834Common typedef Q834Common::ManagedEntityIdType ManagedEntityIdType; typedef Q834Common::ManagedEntityIdSeqType ManagedEntityIdSeqType; typedef Q834Common::AdministrationDomainSeqType AdministrationDomainSeqType; typedef Q834Common::UserLabelType UserLabelType; typedef Q834Common::UserIdType UserIdType; typedef Q834Common::PasswordType PasswordType; #define AccessDenied Q834Common::AccessDenied // End definitions from other idl files // Local data types struct UserLoginPolicyType { short minUserId; // Minimum length of userid short minPassword; // Minimum length of password short passwordReuse; short loginAttempts; long passwordValidity; boolean alphanumeric;//?should password contain alphanumeric mixture boolean specialCharacters; //?should password contain special characters boolean repeatingCharacters; //?should password contain repeating boolean disallowUserId; //disallow username in password }; struct SessionPolicyType { short sessionInactiveTime; short inactiveUserIdDisableTime; short multipleActiveLogins; }; struct PasswordPolicyType { UserLoginPolicyType userLoginPolicy; SessionPolicyType sessionPolicy; }; typedef sequence<UserIdType> UserIdSeqType; enum ActivityLevelType { monitorOnly, // read allowedToExecute, // write noAccess }; typedef short ActivityType; struct TargetActivityType { ActivityType type; ActivityLevelType activityLevel; AdministrationDomainSeqType AdministrationDomainSeq; }; typedef sequence<TargetActivityType> TargetActivitySeqType; enum UserLoginPolicyViolationReasonType { minUserId, minPassword, passwordReuse, loginAttempts, passwordValidity, alphanumeric, specialCharacters, repeatingCharacters, disallowUserId }; typedef sequence<UserLoginPolicyViolationReasonType> UserLoginPolicyViolationReasonSeqType; typedef sequence<UserLabelType> UserGroupIdSeqType; struct UserType { UserIdType userId; UserGroupIdSeqType userGroupIdSeq; TargetActivitySeqType TargetActivitySeq; }; struct UserGroupType { UserLabelType userGroupId; UserIdSeqType userIdSeq; TargetActivitySeqType TargetActivitySeq; }; typedef sequence<UserType> UserSeqType; typedef sequence<UserGroupType> UserGroupSeqType; // Local exceptions exception UnknownUserIds { UserIdSeqType userIdSeq; }; exception DuplicateUserId {}; exception UnknownUserGroupId {}; exception DuplicateUserGroupId {}; exception UnknownTargets { TargetActivitySeqType unknownTargetActivities; }; exception UserGroupNotEmpty {}; exception UserLoginPolicyViolation { UserLoginPolicyType userLoginPolicy; UserLoginPolicyViolationReasonSeqType reason; }; // End local definitions valuetype AccessControlMgrValueType: itut_x780::ManagedObjectValueType { public PasswordPolicyType passwordPolicy; // GET public UserSeqType userList; // GET public UserGroupSeqType userGroupList; // GET }; interface AccessControlMgr : itut_x780::ManagedObject { // define the activities const short ALL_ACTIVITIES = 0; const short ACCESS_CONTROL_MANAGEMENT = 1; const short ALARM_EVENT_CONFIGURATION_MANAGEMENT = 2; const short SCHEDULE_ACTIVITY = 3; const short SOFTWARE_DOWNLOAD = 4; const short TEST_CONTROL = 5; const short SYNCHRONISE_CURRENT_EVENT_LIST = 6; const short SYNCHRONISE_NE = 7; const short RANGE_NE = 8; const short REGISTER_SYSTEM = 9; const short RESERVE_RESOURCES = 10; const short PROFILE_MANAGEMENT = 11; const short PROVISION_NE = 12; const short PROVISION_TELEPHONY_SERVICE = 13; const short PROVISION_PACKETISED_DATA_SERVICES = 14; const short PROVISION_VIDEO_SERVICE = 15; const short PROVISION_LEASED_LINE_SERVICE = 16; const short BULK_TRANSFER = 17; const short HISTORY_DATA_COLLECTION = 18; const short CONTROL_ARCHIVING = 19; const short CONTROL_PERFORMANCE_MONITORING = 20; const short CONFIGURATION_BACKUP_RESTORE = 21; // See 9.1.1.1 for the description of the behaviour of this operation void setPasswordPolicy( in PasswordPolicyType passwordPolicy ) raises ( AccessDenied); // See 9.1.1.2 for the description of the behaviour of this operation PasswordPolicyType passwordPolicyGet() raises (AccessDenied); // See 9.1.1.3 for the description of the behaviour of this operation UserSeqType userListGet () raises (AccessDenied); // See 9.1.1.4 for the description of the behaviour of this operation UserGroupSeqType userGroupListGet () raises (AccessDenied); // See 9.1.1.5 for the description of the behaviour of this operation UserType userGet ( in UserIdType userId ) raises (AccessDenied, UnknownUserIds); // See 9.1.1.6 for the description of the behaviour of this operation UserGroupType userGroupGet ( in UserLabelType userGroupId) raises (AccessDenied, UnknownUserGroupId); // See 9.1.1.7 for the description of the behaviour of this operation void createUserGroup ( in UserLabelType userGroupId, in TargetActivitySeqType targetAdditions) raises (DuplicateUserGroupId, UnknownTargets, AccessDenied); // See 9.1.1.8 for the description of the behaviour of this operation TargetActivitySeqType modifyUserGroup ( in UserLabelType userGroupId, in TargetActivitySeqType targetAdditions, in TargetActivitySeqType targetDeletions) raises (UnknownUserGroupId, UnknownTargets, AccessDenied ); // See 9.1.1.9 for the description of the behaviour of this operation void deleteUserGroup ( in UserLabelType userGroupId) raises (AccessDenied, UserGroupNotEmpty, UnknownUserGroupId ); // See 9.1.1.10 for the description of the behaviour of this operation void addUsersToGroup ( in UserLabelType userGroupId, in UserIdSeqType userIdList ) raises (AccessDenied, UnknownUserGroupId); // duplicate users are ignored // See 9.1.1.11 for the description of the behaviour of this operation void deleteUsersFromGroup ( in UserLabelType userGroupId, in UserIdSeqType userIdList ) raises (AccessDenied, UnknownUserGroupId, UnknownUserIds); // See 9.1.1.12 for the description of the behaviour of this operation TargetActivitySeqType getPermissionList ( in UserIdType userId ) raises (UnknownUserIds, AccessDenied) ; // See 9.1.1.13 for the description of the behaviour of this operation TargetActivitySeqType modifyPermissionList ( in UserIdType userId, in TargetActivitySeqType targetAdditions, in TargetActivitySeqType targetDeletions ) raises (UnknownUserIds, UnknownTargets, AccessDenied); // See 9.1.1.14 for the description of the behaviour of this operation void createUser ( in UserIdType userId, in PasswordType password, in TargetActivitySeqType targetAdditions ) raises (DuplicateUserId, UnknownTargets, AccessDenied, UserLoginPolicyViolation); // See 9.1.1.15 for the description of the behaviour of this operation void deleteUser ( in UserIdType userId ) raises (UnknownUserIds, AccessDenied); // See 9.1.1.16 for the description of the behaviour of this operation void resetPassword ( in UserIdType userId, in PasswordType newPassword ) raises (UnknownUserIds, UserLoginPolicyViolation, AccessDenied); }; // interface AccessControlMgr }; // module AccessControl }; // module q834_4 #endif