/* * Copyright (C) 2012 Red Hat, Inc. All rights reserved. * * This library is free software; you can redistribute it and/or * modify it under the terms of the GNU Lesser General Public * License as published by the Free Software Foundation; either * version 2.1 of the License, or (at your option) any later version. * * This library is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU * Lesser General Public License for more details. * * You should have received a copy of the GNU Lesser General Public * License along with this library; if not, write to the Free Software * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA * * Authors: Roman Rakus */ [ Description("Class representing Linux Account"), Provider("cmpi:cmpiLMI_Account") ] class LMI_Account: CIM_Account { [ Description("User's home directory") ] string HomeDirectory; [ Description("User's login shell") ] string LoginShell; [ Description("The date when was password last changed") ] datetime PasswordLastChange; [ Description("Minimum number of days between password change") ] datetime PasswordPossibleChange; [ Description("Number of days of warning before password expires") ] datetime PasswordExpirationWarning; [ Description("Maximum number of days between password change") ] datetime PasswordInactivation; [ Description("The date of expiration of the account.") ] datetime AccountExpiration; }; [ Description("LMI_AccountManagementService creates, manages, and if necessary " "destroys Linux Accounts on behalf of other SecuritySerices."), Provider("cmpi:cmpiLMI_Account") ] class LMI_AccountManagementService: CIM_SecurityService // It would be good to inherit from CIM_AccountManagementService // however I don't if to create instance from embeddedinstance is a good way { [ Description ( "Create a new account on the system") ] uint32 CreateAccount( [Required, IN, Description ( "The scoping ComputerSystem in which to create the Account." )] CIM_ComputerSystem REF System, [Required, IN, Description ( "Desired user login name for the account to be created." ) ] string Name, [IN, Description ( "GECOS information for new user" ) ] string GECOS, [IN, Description ( "Set home directory for the user." ) ] string HomeDirectory, [IN, Description ( "Wheter to create home directory." ) ] boolean DontCreateHome, [IN, Description ( "Default shell for new user" ) ] string Shell, [IN, Description ( "Pick a specific user id for new user" ) ] uint32 UID, [IN, Description ( "Pick a specific group id for new user" ) ] uint32 GID, [IN, Description ( "True for creating system account" ) ] boolean SystemAccount, [IN, Description ( "Encryted password for new user" ) ] string Password, [IN, Description ( "Whether to create group" ) ] boolean DontCreateGroup, [IN ( false ), OUT, Description ( "Reference to the instance of CIM_Account created " "when the method returns a value of 0." )] CIM_Account REF Account, [IN ( false ), OUT, Description ( "Reference to the instances of CIM_Identity created " "when the method returns a value of 0. NULL if no " "such instances are created." )] CIM_Identity REF Identities[]); [ Description ( "Create a new group on the system") ] uint32 CreateGroup( [Required, IN, Description ( "The scoping ComputerSystem in which to create the Account." )] CIM_ComputerSystem REF System, [Required, IN, Description ( "Desired group name for the account to be created." ) ] string Name, [IN, Description ( "Pick a specific group id for new user" ) ] uint32 GID, [IN, Description ( "True for creating system account" ) ] boolean SystemAccount, [IN ( false ), OUT, Description ( "Reference to the instance of CIM_Group created " "when the method returns a value of 0." )] CIM_Group REF Group, [IN ( false ), OUT, Description ( "Reference to the instances of CIM_Identity created " "when the method returns a value of 0. NULL if no " "such instances are created." )] CIM_Identity REF Identities[]); }; [ Provider("cmpi:cmpiLMI_Account") ] class LMI_AccountManagementCapabilities: CIM_AccountManagementCapabilities { }; [ Association, Provider("cmpi:cmpiLMI_Account") ] class LMI_AccountOnSystem: CIM_AccountOnSystem { [ Override("GroupComponent"), Min(1), Max(1), Description("The hosting System.") ] CIM_ComputerSystem REF GroupComponent; [ Override("PartComponent"), Description("The managed Account on the System") ] LMI_Account REF PartComponent; }; [ Provider("cmpi:cmpiLMI_Account") ] class LMI_AccountSettingData: CIM_AccountSettingData { }; [ Provider("cmpi:cmpiLMI_Account") ] class LMI_Identity: CIM_Identity { }; [ Provider("cmpi:cmpiLMI_Account") ] class LMI_Group: CIM_Group { }; [ Association, Provider("cmpi:cmpiLMI_Account") ] class LMI_AssignedAccountIdentity: CIM_AssignedIdentity { [ Override("IdentityInfo"), Description("The managed Identity") ] LMI_Identity REF IdentityInfo; [ Override("ManagedElement"), Description("The managed Account on the System") ] LMI_Account REF ManagedElement; }; [ Association, Provider("cmpi:cmpiLMI_Account") ] class LMI_AssignedGroupIdentity: CIM_AssignedIdentity { [ Override("IdentityInfo"), Description("The managed Identity") ] LMI_Identity REF IdentityInfo; [ Override("ManagedElement"), Description("The managed Group on the System") ] LMI_Group REF ManagedElement; }; [ Association, Provider("cmpi:cmpiLMI_Account") ] class LMI_AccountManagementServiceCapabilities: CIM_ElementCapabilities { [ Override("ManagedElement"), Description("The Central Instance of Account Management") ] LMI_AccountManagementService REF ManagedElement; [ Override("Capabilities"), Description("The supported Capabilities for managing Linux Accounts") ] LMI_AccountManagementCapabilities REF Capabilities; }; [ Provider("cmpi:cmpiLMI_Account") ] class LMI_EnabledAccountCapabilities: CIM_EnabledLogicalElementCapabilities { }; [ Association, Provider("cmpi:cmpiLMI_Account") ] class LMI_AccountCapabilities: CIM_ElementCapabilities { [ Override("ManagedElement"), Description("The managed Account") ] LMI_Account REF ManagedElement; [ Override("Capabilities"), Description("The supported Capabilities for changing the state of the " "Linux Account") ] LMI_EnabledAccountCapabilities REF Capabilities; }; [ Association, Provider("cmpi:cmpiLMI_Account") ] class LMI_AccountManagementServiceSettingData: CIM_ElementSettingData { [ Override("ManagedElement"), Description("The Central Instance of Account management") ] LMI_AccountManagementService REF ManagedElement; [ Override("SettingData"), Description("The default enforced setting for new Accounts") ] LMI_AccountSettingData REF SettingData; }; [ Association, Provider("cmpi:cmpiLMI_Account") ] class LMI_HostedAccountManagementService: CIM_HostedService { [ Override("Antecedent"), Description("The hosting System") ] CIM_ComputerSystem REF Antecedent; [ Override("Dependent"), Description("The Central Instance of Account management") ] LMI_AccountManagementService REF Dependent; }; [ Association, Provider("cmpi:cmpiLMI_Account") ] class LMI_MemberOfGroup: CIM_MemberOfCollection { [ Override("Collection"), Description("The managed Group on the System") ] LMI_Group REF Collection; [ Override("Member"), Description("The managed Identity") ] LMI_Identity REF Member; }; [ Association, Provider("cmpi:cmpiLMI_Account") ] class LMI_OwningGroup: CIM_OwningCollectionElement { [ Override("OwningElement"), Description("The hosting System") ] CIM_ComputerSystem REF OwningElement; [ Override("OwnedElement"), Description("The managed Group on the System") ] LMI_Group REF OwnedElement; }; [ Association, Provider("cmpi:cmpiLMI_Account") ] class LMI_ServiceAffectsIdentity: CIM_ServiceAffectsElement { [ Override("AffectingElement"), Description("The Central Instance of Account management") ] LMI_AccountManagementService REF AffectingElement; [ Override("AffectedElement"), Description("The managed Identity") ] LMI_Identity REF AffectedElement; }; [ Association, Provider("cmpi:cmpiLMI_Account") ] class LMI_SettingsDefineManagementCapabilities: CIM_SettingsDefineCapabilities { [ Override("GroupComponent"), Description("The Account Management Capabilities") ] LMI_AccountManagementCapabilities REF GroupComponent; [ Override("PartComponent"), Description("The default enforced setting for new Accounts") ] LMI_AccountSettingData REF PartComponent; }; [ Association, Provider("cmpi:cmpiLMI_Account") ] class LMI_SettingsDefineAccountCapabilities: CIM_SettingsDefineCapabilities { [ Override("GroupComponent"), Description("The Account Capabilities") ] LMI_EnabledAccountCapabilities REF GroupComponent; [ Override("PartComponent"), Description("The default enforced setting for new Accounts") ] LMI_AccountSettingData REF PartComponent; };