//
// LMI_Account.mof
//
// Copyright (C) 2012 Red Hat, Inc. All rights reserved.
//
// This program is free software; you can redistribute it and/or modify
// it under the terms of the GNU General Public License as published by
// the Free Software Foundation; either version 2 of the License, or
// (at your option) any later version.
//
// This program 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 General Public License for more details.
//
// You should have received a copy of the GNU General Public License
// along with this program. If not, see .
//
// Red Hat Author(s): 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;
};