/*############################################################################## HPCC SYSTEMS software Copyright (C) 2012 HPCC Systems®. Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at http://www.apache.org/licenses/LICENSE-2.0 Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions and limitations under the License. ############################################################################## */ ESPenum UserSortBy : string { Name("username"), FullName("fullname"), PasswordExpiration("passwordexpiration"), EmployeeID("employeeID"), EmployeeNumber("employeeNumber"), }; ESPenum GroupSortBy : string { Name("Name"), ManagedBy("ManagedBy"), }; ESPenum ResourceSortBy : string { Name("Name"), }; ESPenum ResourcePermissionSortBy : string { Name("Name"), Type("Type"), }; ESPenum AccountTypeReq : string //Match with enum ACCOUNT_TYPE_REQ in ldapconnection.hpp { Any("Any"), User("User"), Group("Group"), }; ESPstruct UserInfo { string username; string fullname; [min_ver("1.07")] string passwordexpiration; [min_ver("1.10")] string employeeID; [min_ver("1.16")] string employeeNumber; }; ESPstruct GroupInfo { string name; bool deletable; [min_ver("1.09")] string groupOwner; [min_ver("1.09")] string groupDesc; }; ESPstruct AccountPermission { [min_ver("1.15")] string BasednName; [depr_ver("1.15")] string basedn; [depr_ver("1.15")] string RType; string rname; [depr_ver("1.15")] string rtitle; string prefix; string ResourceName; string PermissionName; bool allow_access; bool allow_read; bool allow_write; bool allow_full; bool deny_access; bool deny_read; bool deny_write; bool deny_full; }; ESPstruct GroupAccountPermission { string GroupName; [min_ver("1.06")] ESParray BasednNames; ESParray Permissions; }; ESPrequest UserRequest { string searchinput; }; ESPresponse UserResponse { [min_ver("1.04")] bool NoSecMngr(false); bool toomany; bool posixok; ESParray Users; }; ESPrequest [nil_remove] UserQueryRequest { string Name; unsigned PageSize; int64 PageStartFrom; ESPenum UserSortBy SortBy; bool Descending(false); int64 CacheHint; }; ESPresponse [nil_remove] UserQueryResponse { bool NoSecMngr(false); ESParray Users; int64 TotalUsers; int64 CacheHint; }; ESPrequest UserEditRequest { string username; }; ESPresponse UserEditResponse { string username; [min_ver("1.13")] bool isLDAPAdmin; ESParray Groups; }; ESPrequest UserGroupEditInputRequest { string username; }; ESPresponse UserGroupEditInputResponse { string username; ESParray Groups; }; ESPrequest UserGroupEditRequest { string username; string action; ESParray groupnames; }; ESPresponse UserGroupEditResponse { string username; string action; int retcode; string retmsg; }; ESPrequest UserPosixInputRequest { string username; }; ESPresponse UserPosixInputResponse { string username; bool posixenabled; string gidnumber; string uidnumber; string homedirectory; string loginshell; }; ESPrequest UserPosixRequest { string username; bool posixenabled; string gidnumber; string uidnumber; string homedirectory; string loginshell; }; ESPresponse UserPosixResponse { string username; int retcode; string retmsg; }; ESPrequest UserSudoersInputRequest { string username; }; ESPresponse UserSudoersInputResponse { string username; bool insudoers; string sudoHost; string sudoCommand; string sudoOption; }; ESPrequest UserSudoersRequest { string username; string action; string sudoHost; string sudoCommand; string sudoOption; }; ESPresponse UserSudoersResponse { string username; int retcode; string retmsg; }; ESPrequest UserInfoEditInputRequest { string username; }; ESPresponse UserInfoEditInputResponse { string username; string firstname; string lastname; [min_ver("1.10")] string employeeID; [min_ver("1.12")] string PasswordExpiration; [min_ver("1.16")] string employeeNumber; }; ESPrequest UserInfoEditRequest { string username; string firstname; string lastname; [min_ver("1.10")] string employeeID; [min_ver("1.16")] string employeeNumber; }; ESPresponse UserInfoEditResponse { string username; int retcode; string retmsg; }; ESPrequest AddUserRequest { [label("User Name"), cols(20)] string username; [label("First Name"), cols(20)] string firstname; [label("Last Name"), cols(20)] string lastname; [label("Password"), password, cols(20)] password1; [label("Retype password"), password, cols(20)] password2; [min_ver("1.10"), label("Employee ID"), cols(20)] string employeeID; [min_ver("1.16"), label("Employee Number"), cols(20)] string employeeNumber; }; ESPresponse AddUserResponse { int retcode; string retmsg; }; ESPrequest UserActionRequest { string action; string ActionType; ESParray usernames; }; ESPresponse UserActionResponse { string action; int retcode; string retmsg; }; ESPrequest UserResetPassInputRequest { string username; }; ESPresponse UserResetPassInputResponse { string username; }; ESPrequest UserResetPassRequest { string username; string newPassword; string newPasswordRetype; }; ESPresponse UserResetPassResponse { string username; int retcode; string retmsg; }; ESPrequest GroupRequest { }; ESPresponse GroupResponse { [min_ver("1.04")] bool NoSecMngr(false); ESParray Groups; }; ESPrequest [nil_remove] GroupQueryRequest { unsigned PageSize; int64 PageStartFrom; ESPenum GroupSortBy SortBy; bool Descending(false); int64 CacheHint; }; ESPresponse [nil_remove] GroupQueryResponse { bool NoSecMngr(false); ESParray Groups; int64 TotalGroups; int64 CacheHint; }; ESPrequest GroupAddRequest { string groupname; [min_ver("1.09")] string groupOwner; [min_ver("1.09")] string groupDesc; }; ESPresponse GroupAddResponse { string groupname; int retcode; string retmsg; }; ESPrequest [nil_remove] GroupActionRequest { ESParray groupnames; string ActionType; bool DeletePermission; }; ESPresponse GroupActionResponse { string Groupnames; ESParray Permissions; int retcode; string retmsg; }; ESPrequest GroupEditRequest { string groupname; }; ESPresponse GroupEditResponse { string groupname; ESParray Users; }; ESPrequest [nil_remove] GroupMemberQueryRequest { string GroupName; unsigned PageSize; int64 PageStartFrom; ESPenum UserSortBy SortBy; bool Descending(false); int64 CacheHint; }; ESPresponse [nil_remove] GroupMemberQueryResponse { bool NoSecMngr(false); ESParray Users; int64 TotalUsers; int64 CacheHint; }; ESPrequest GroupMemberEditInputRequest { string searchinput; string groupname; }; ESPresponse GroupMemberEditInputResponse { string groupname; bool toomany; ESParray Users; }; ESPrequest GroupMemberEditRequest { string groupname; string action; ESParray usernames; }; ESPresponse GroupMemberEditResponse { string groupname; string action; int retcode; string retmsg; }; ESPrequest BasednsRequest { }; ESPstruct DnStruct { string name; string basedn; string rtype; string rtitle; string templatename; }; ESPresponse BasednsResponse { [min_ver("1.04")] bool NoSecMngr(false); ESParray Basedns; }; ESPrequest ResourcesRequest { [depr_ver("1.14")] string basedn; [depr_ver("1.14")] string rtype; [depr_ver("1.14")] string rtitle; string templatename; [min_ver("1.14")] BasednName; string prefix; string searchinput; }; ESPstruct Resource { string name; string description; bool isSpecial; }; ESPstruct ScopeScanStatusStruct { bool isEnabled; int retcode; string retmsg; }; ESPresponse ResourcesResponse { [depr_ver("1.14")] string basedn; [depr_ver("1.14")] string rtype; [depr_ver("1.14")] string rtitle; ESParray Resources; string default_basedn; string default_name; [depr_ver("1.14")] string prefix; [min_ver("1.05")] bool toomany; [min_ver("1.08")] ESPstruct ScopeScanStatusStruct scopeScansStatus; }; ESPrequest [nil_remove] ResourceQueryRequest { [depr_ver("1.14")] string basedn; [depr_ver("1.14")] string rtype; [depr_ver("1.14")] string rtitle; [min_ver("1.14")] BasednName; string prefix; string Name; unsigned PageSize; int64 PageStartFrom; ESPenum ResourceSortBy SortBy; bool Descending(false); int64 CacheHint; }; ESPresponse [nil_remove] ResourceQueryResponse { bool NoSecMngr(false); ESParray Resources; int64 TotalResources; int64 CacheHint; }; ESPrequest ResourceAddInputRequest { string basedn; string rtype; string rtitle; string prefix; }; ESPresponse ResourceAddInputResponse { string basedn; string rtype; string rtitle; string prefix; }; ESPrequest ResourceAddRequest { [depr_ver("1.14")] string basedn; [depr_ver("1.14")] string rtype; [depr_ver("1.14")] string rtitle; [min_ver("1.14")] BasednName; string name; string description; string prefix; }; ESPresponse ResourceAddResponse { [depr_ver("1.14")] string basedn; [depr_ver("1.14")] string rtype; [depr_ver("1.14")] string rtitle; [depr_ver("1.14")] string prefix; int retcode; string retmsg; }; ESPrequest ResourceDeleteRequest { [depr_ver("1.14")] string basedn; [depr_ver("1.14")] string rtype; [depr_ver("1.14")] string rtitle; [min_ver("1.14")] BasednName; string prefix; ESParray names; int DoUpdate(0); }; ESPresponse ResourceDeleteResponse { [depr_ver("1.14")] string basedn; [depr_ver("1.14")] string rtype; [depr_ver("1.14")] string rtitle; [depr_ver("1.14")] string prefix; int retcode; string retmsg; }; ESPrequest ResourcePermissionsRequest { [depr_ver("1.14")] string basedn; [depr_ver("1.14")] string rtype; string name; [min_ver("1.14")] BasednName; [depr_ver("1.14")] string rtitle; string prefix; }; ESPstruct ResourcePermission { string account_name; string escaped_account_name; int account_type; bool allow_access; bool allow_read; bool allow_write; bool allow_full; bool deny_access; bool deny_read; bool deny_write; bool deny_full; }; ESPresponse ResourcePermissionsResponse { [depr_ver("1.14")] string basedn; [depr_ver("1.14")] string rtype; [depr_ver("1.14")] string name; [depr_ver("1.14")] string rtitle; [depr_ver("1.14")] string prefix; ESParray Permissions; }; ESPrequest [nil_remove] ResourcePermissionQueryRequest { [depr_ver("1.14")] string basedn; [depr_ver("1.14")] string rtype; [depr_ver("1.14")] string rtitle; [min_ver("1.14")] BasednName; string prefix; string Name; ESPenum AccountTypeReq AccountType; unsigned PageSize; int64 PageStartFrom; ESPenum ResourcePermissionSortBy SortBy; bool Descending(false); int64 CacheHint; }; ESPresponse [nil_remove] ResourcePermissionQueryResponse { bool NoSecMngr(false); ESParray Permissions; int64 TotalResourcePermissions; int64 CacheHint; }; ESPstruct View { string viewname; string description; }; ESPrequest QueryViewsRequest { }; ESPresponse QueryViewsResponse { ESParray views; }; ESPrequest AddViewRequest { string viewname; string description; }; ESPresponse AddViewResponse { string viewname; string description; }; ESPrequest DeleteViewRequest { string viewname; }; Espresponse DeleteViewResponse { string viewname; }; ESPstruct ViewColumn { string viewname; string filename; string columnname; }; ESPrequest QueryViewColumnsRequest { string viewname; }; ESPresponse QueryViewColumnsResponse { string viewname; ESParray viewcolumns; }; ESPrequest AddViewColumnRequest { string viewname; string filename; string columnname; }; ESPresponse AddViewColumnResponse { string viewname; string filename; string columnname; }; ESPrequest DeleteViewColumnRequest { string viewname; string filename; string columnname; }; ESPresponse DeleteViewColumnResponse { string viewname; string filename; string columnname; }; ESPenum ViewMemberType : string { User("User"), Group("Group"), }; ESPstruct ViewMember { string viewname; string name; ESPenum ViewMemberType membertype; }; ESPrequest QueryViewMembersRequest { string viewname; }; ESPresponse QueryViewMembersResponse { string viewname; ESParray viewmembers; }; ESPrequest AddViewMemberRequest { string viewname; string membername; ESPenum ViewMemberType membertype; }; ESPresponse AddViewMemberResponse { string viewname; string membername; ESPenum ViewMemberType membertype; }; ESPrequest DeleteViewMemberRequest { string viewname; string membername; ESPenum ViewMemberType membertype; }; ESPresponse DeleteViewMemberResponse { string viewname; string membername; ESPenum ViewMemberType membertype; }; ESPrequest QueryUserViewColumnsRequest { string username; }; ESPresponse QueryUserViewColumnsResponse { string username; ESParray viewcolumns; }; ESPrequest PermissionAddRequest { string basedn; string rtype; string rtitle; string rname; string prefix; [min_ver("1.01")] string BasednName; [min_ver("1.01")] string AccountName; [min_ver("1.01")] int AccountType; }; ESPresponse PermissionAddResponse { string basedn; string rtype; string rtitle; string rname; string prefix; [min_ver("1.01")] string BasednName; [min_ver("1.01")] string AccountName; [min_ver("1.01")] int AccountType; bool toomany; ESParray Users; ESParray Groups; [min_ver("1.01")] ESParray Resources; }; ESPrequest PermissionsResetInputRequest { string basedn; string rtype; string rtitle; string rname; string prefix; ESParray names; }; ESPresponse PermissionsResetInputResponse { string basedn; string rtype; string rtitle; string rname; string prefix; bool toomany; ESParray Users; ESParray Groups; ESParray Resources; string ResourceList; }; ESPrequest PermissionsResetRequest { [min_ver("1.14")] BasednName; [depr_ver("1.14")] string basedn; [depr_ver("1.14")] string rtype; [depr_ver("1.14")] string rname; //Not used [depr_ver("1.14")] string rtitle; string prefix; ESParray names; bool allow_access; bool allow_read; bool allow_write; bool allow_full; bool deny_access; bool deny_read; bool deny_write; bool deny_full; string userarray; string grouparray; }; ESPresponse PermissionsResetResponse { [depr_ver("1.14")] string basedn; [depr_ver("1.14")] string rtype; [depr_ver("1.14")] string rname; [depr_ver("1.14")] string rtitle; [depr_ver("1.14")] string prefix; int retcode; string retmsg; }; ESPrequest ClearPermissionsCacheRequest { }; ESPresponse ClearPermissionsCacheResponse { int retcode; }; ESPrequest QueryScopeScansEnabledRequest { }; ESPresponse QueryScopeScansEnabledResponse { [min_ver("1.08")] ESPstruct ScopeScanStatusStruct scopeScansStatus; }; ESPrequest EnableScopeScansRequest { }; ESPresponse EnableScopeScansResponse { [min_ver("1.08")] ESPstruct ScopeScanStatusStruct scopeScansStatus; }; ESPrequest DisableScopeScansRequest { }; ESPresponse DisableScopeScansResponse { [min_ver("1.08")] ESPstruct ScopeScanStatusStruct scopeScansStatus; }; ESPrequest PermissionActionRequest { [depr_ver("1.14")] string basedn; [depr_ver("1.14")] string rtype; string rname; [depr_ver("1.14")] string rtitle; string prefix; string action; string account_name; int account_type; bool allow_access; bool allow_read; bool allow_write; bool allow_full; bool deny_access; bool deny_read; bool deny_write; bool deny_full; string user; string group; [min_ver("1.01")] string BasednName; [min_ver("1.01")] string ResourceName; }; ESPresponse PermissionActionResponse { [depr_ver("1.14")] string basedn; [depr_ver("1.14")] string rtype; [depr_ver("1.14")] string rname; [depr_ver("1.14")] string rtitle; [depr_ver("1.14")] string prefix; [min_ver("1.01")] string AccountName; [min_ver("1.01")] bool IsGroup; int retcode; string retmsg; }; ESPrequest AccountPermissionsRequest { string AccountName; bool IsGroup; bool IncludeGroup(false); }; ESPresponse AccountPermissionsResponse { string AccountName; bool IsGroup; [min_ver("1.03")] bool IncludeGroup; ESParray BasednNames; ESParray Permissions; //[min_ver("1.03")] ESParray AuthUsersPermission; //[min_ver("1.03")] ESParray EveryonePermission; [min_ver("1.03")] ESParray GroupPermissions; }; ESPrequest [nil_remove] FilePermissionRequest { string FileName; string UserName; string GroupName; }; ESPresponse [nil_remove] FilePermissionResponse { [min_ver("1.04")] bool NoSecMngr(false); string FileName; string UserName; string GroupName; bool toomany; ESParray Users; ESParray Groups; ///ESPstruct AccountPermission Permission; //Support permission change later string UserPermission; }; ESPrequest [nil_remove] UserAccountExportRequest { ESParray usernames; ESParray groupnames; }; ESPresponse [nil_remove] UserAccountExportResponse { [http_content("application/octet-stream")] binary Result; }; ESPservice [version("1.16"), auth_feature("NONE"), exceptions_inline("./smc_xslt/exceptions.xslt")] ws_access { ESPmethod [client_xslt("/esp/xslt/access_users.xslt")] Users(UserRequest, UserResponse); ESPmethod [client_xslt("/esp/xslt/access_useredit.xslt")] UserEdit(UserEditRequest, UserEditResponse); ESPmethod [client_xslt("/esp/xslt/access_resetpassinput.xslt")] UserResetPassInput(UserResetPassInputRequest, UserResetPassInputResponse); ESPmethod [client_xslt("/esp/xslt/access_resetpass.xslt")] UserResetPass(UserResetPassRequest, UserResetPassResponse); ESPmethod [client_xslt("/esp/xslt/access_usergroupeditinput.xslt")] UserGroupEditInput(UserGroupEditInputRequest, UserGroupEditInputResponse); ESPmethod [client_xslt("/esp/xslt/access_usergroupedit.xslt")] UserGroupEdit(UserGroupEditRequest, UserGroupEditResponse); ESPmethod [client_xslt("/esp/xslt/access_posix.xslt")] UserPosix(UserPosixRequest, UserPosixResponse); ESPmethod [client_xslt("/esp/xslt/access_posixinput.xslt")] UserPosixInput(UserPosixInputRequest, UserPosixInputResponse); ESPmethod [client_xslt("/esp/xslt/access_sudoersinput.xslt")] UserSudoersInput(UserSudoersInputRequest, UserSudoersInputResponse); ESPmethod [client_xslt("/esp/xslt/access_sudoers.xslt")] UserSudoers(UserSudoersRequest, UserSudoersResponse); ESPmethod [client_xslt("/esp/xslt/access_userinfoeditinput.xslt")] UserInfoEditInput(UserInfoEditInputRequest, UserInfoEditInputResponse); ESPmethod [client_xslt("/esp/xslt/access_userinfoedit.xslt")] UserInfoEdit(UserInfoEditRequest, UserInfoEditResponse); ESPmethod [client_xslt("/esp/xslt/access_groups.xslt")] Groups(GroupRequest, GroupResponse); ESPmethod [client_xslt("/esp/xslt/access_groupadd.xslt")] GroupAdd(GroupAddRequest, GroupAddResponse); ESPmethod [client_xslt("/esp/xslt/access_groupdelete.xslt")] GroupAction(GroupActionRequest, GroupActionResponse); ESPmethod [client_xslt("/esp/xslt/access_groupedit.xslt")] GroupEdit(GroupEditRequest, GroupEditResponse); ESPmethod [client_xslt("/esp/xslt/access_groupmembereditinput.xslt")] GroupMemberEditInput(GroupMemberEditInputRequest, GroupMemberEditInputResponse); ESPmethod [client_xslt("/esp/xslt/access_groupmemberedit.xslt")] GroupMemberEdit(GroupMemberEditRequest, GroupMemberEditResponse); ESPmethod [client_xslt("/esp/xslt/access_adduser.xslt")] AddUser(AddUserRequest, AddUserResponse); ESPmethod [client_xslt("/esp/xslt/access_useraction.xslt")] UserAction(UserActionRequest, UserActionResponse); ESPmethod [client_xslt("/esp/xslt/access_basedns.xslt")] Permissions(BasednsRequest, BasednsResponse); ESPmethod [client_xslt("/esp/xslt/access_resources.xslt")] Resources(ResourcesRequest, ResourcesResponse); ESPmethod [client_xslt("/esp/xslt/access_resourceadd.xslt")] ResourceAdd(ResourceAddRequest, ResourceAddResponse); ESPmethod [client_xslt("/esp/xslt/access_resourcedelete.xslt")] ResourceDelete(ResourceDeleteRequest, ResourceDeleteResponse); ESPmethod [depr_ver("1.14"), client_xslt("/esp/xslt/access_resourceaddinput.xslt")] ResourceAddInput(ResourceAddInputRequest, ResourceAddInputResponse); ESPmethod [min_ver("1.10")] QueryViews(QueryViewsRequest, QueryViewsResponse); ESPmethod [min_ver("1.10")] AddView(AddViewRequest, AddViewResponse); ESPmethod [min_ver("1.10")] DeleteView(DeleteViewRequest, DeleteViewResponse); ESPmethod [min_ver("1.10")] QueryViewColumns(QueryViewColumnsRequest, QueryViewColumnsResponse); ESPmethod [min_ver("1.10")] AddViewColumn(AddViewColumnRequest, AddViewColumnResponse); ESPmethod [min_ver("1.10")] DeleteViewColumn(DeleteViewColumnRequest, DeleteViewColumnResponse); ESPmethod [min_ver("1.10")] QueryViewMembers(QueryViewMembersRequest, QueryViewMembersResponse); ESPmethod [min_ver("1.10")] AddViewMember(AddViewMemberRequest, AddViewMemberResponse); ESPmethod [min_ver("1.10")] DeleteViewMember(DeleteViewMemberRequest, DeleteViewMemberResponse); ESPmethod [min_ver("1.10")] QueryUserViewColumns(QueryUserViewColumnsRequest, QueryUserViewColumnsResponse); ESPmethod [client_xslt("/esp/xslt/access_permissions.xslt")] ResourcePermissions(ResourcePermissionsRequest, ResourcePermissionsResponse); ESPmethod [depr_ver("1.14"), client_xslt("/esp/xslt/access_permissionaddinput.xslt")] PermissionAddInput(PermissionAddRequest, PermissionAddResponse); ESPmethod [client_xslt("/esp/xslt/access_permissionchange.xslt")] PermissionAction(PermissionActionRequest, PermissionActionResponse); ESPmethod [client_xslt("/esp/xslt/access_accountpermissions.xslt")] AccountPermissions(AccountPermissionsRequest, AccountPermissionsResponse); ESPmethod [client_xslt("/esp/xslt/access_filepermission.xslt")] FilePermission(FilePermissionRequest, FilePermissionResponse); ESPmethod [depr_ver("1.14"), client_xslt("/esp/xslt/access_permissionresetinput.xslt")] PermissionsResetInput(PermissionsResetInputRequest, PermissionsResetInputResponse); ESPmethod [client_xslt("/esp/xslt/access_permissionsreset.xslt")] PermissionsReset(PermissionsResetRequest, PermissionsResetResponse); ESPmethod [client_xslt("/esp/xslt/access_clearpermissionscache.xslt")] ClearPermissionsCache(ClearPermissionsCacheRequest, ClearPermissionsCacheResponse); ESPmethod QueryScopeScansEnabled(QueryScopeScansEnabledRequest, QueryScopeScansEnabledResponse); ESPmethod [client_xslt("/esp/xslt/access_enablescopescans.xslt")] EnableScopeScans(EnableScopeScansRequest, EnableScopeScansResponse); ESPmethod [client_xslt("/esp/xslt/access_disablescopescans.xslt")] DisableScopeScans(DisableScopeScansRequest, DisableScopeScansResponse); //ESPmethod [client_xslt("/esp/xslt/access_useraccountexport.xslt")] UserAccountExport(UserAccountExportRequest, UserAccountExportResponse); ESPmethod UserAccountExport(UserAccountExportRequest, UserAccountExportResponse); ESPmethod UserQuery(UserQueryRequest, UserQueryResponse); ESPmethod GroupQuery(GroupQueryRequest, GroupQueryResponse); ESPmethod GroupMemberQuery(GroupMemberQueryRequest, GroupMemberQueryResponse); ESPmethod ResourceQuery(ResourceQueryRequest, ResourceQueryResponse); ESPmethod [min_ver("1.11")] ResourcePermissionQuery(ResourcePermissionQueryRequest, ResourcePermissionQueryResponse); }; SCMexportdef(ws_access); SCMapi(ws_access) IClientws_access *createws_accessClient();