/* Authors: Pavel Březina Copyright (C) 2014 Red Hat 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 3 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 . */ [Version("0.1.0"), Provider("cmpi:cmpiLMI_SSSD"), Description("System Security Services Daemon")] class LMI_SSSDService : CIM_Service { }; [Version("0.1.0"), Provider("cmpi:cmpiLMI_SSSD"), Abstract, Description("Base class for SSSD's components.")] class LMI_SSSDComponent : CIM_ManagedElement { [Key, Description("Name of the SSSD component.")] string Name; [Description("Type of the SSSD component."), ValueMap { "0", "1", "2" }, Values { "Monitor", "Responder", "Backend" }] uint16 Type; [BitValues{"Reserved", "Reserved", "Reserved", "Reserved", "Fatal failures", "Critical failures", "Operation failures", "Minor failures", "Configuration settings", "Function data", "Trace function", "Reserved", "Trace libraries", "Trace internal", "Trace all", "Reserved"}, Description("Debug level used within this component.")] uint16 DebugLevel; [Description("True if this process is enabled at SSSD startup and false " "otherwise.")] boolean IsEnabled; [Description("Permanently change debug level of this component."), ValueMap { "0", "1", "2", "3" }, Values { "Success", "Failed", "Operation not supported", "I/O error" }] uint32 SetDebugLevelPermanently([In] uint16 debug_level); [Description("Change debug level of this component but switch it back " "to the original value when SSSD is restarted."), ValueMap { "0", "1", "2", "3" }, Values { "Success", "Failed", "Operation not supported", "I/O error" }] uint32 SetDebugLevelTemporarily([In] uint16 debug_level); [Description("Enable this component. SSSD has to be restarted in order " "this change to take any effect."), ValueMap { "0", "1", "2", "3" }, Values { "Success", "Failed", "Operation not supported", "I/O error" }] uint32 Enable(); [Description("Disable this component. SSSD has to be restarted in order " "this change to take any effect."), ValueMap { "0", "1", "2", "3" }, Values { "Success", "Failed", "Operation not supported", "I/O error" }] uint32 Disable(); }; [Version("0.1.0"), Provider("cmpi:cmpiLMI_SSSD"), Description("SSSD monitor. An SSSD component that executes the other " "components and makes sure they stay running. This component " "can not be disabled.")] class LMI_SSSDMonitor : LMI_SSSDComponent { }; [Version("0.1.0"), Provider("cmpi:cmpiLMI_SSSD"), Description("SSSD responder. An SSSD component that implements one of the " "supported services and provides data to clients.")] class LMI_SSSDResponder : LMI_SSSDComponent { }; [Version("0.1.0"), Provider("cmpi:cmpiLMI_SSSD"), Description("SSSD backend. An SSSD component that manages data from one " "domain and its subdomains.")] class LMI_SSSDBackend : LMI_SSSDComponent { }; [Version("0.1.0"), Provider("cmpi:cmpiLMI_SSSD"), Description("Data provider module information.")] class LMI_SSSDProvider : CIM_ManagedElement { [Key, Description("Name of data class handled by the provider.")] string Type; [Key, Description("Name of the module that provides the desired data.")] string Module; }; [Version("0.1.0"), Provider("cmpi:cmpiLMI_SSSD"), Description("SSSD domain.")] class LMI_SSSDDomain : CIM_ManagedElement { [Key, Description("Name of the domain.")] string Name; [Description("List of primary servers for this domain.")] string PrimaryServers[]; [Description("List of backup servers for this domain.")] string BackupServers[]; [Description("Main provider for this domain.")] string Provider; [Description("The Kerberos realm this domain is configured with.")] string Realm; [Description("The domain forest this domain belongs to.")] string Forest; [Description("Name of the parent domain. It is not set if this " "domain is on top of the domain hierarchy.")] string ParentDomain; [Description("True if this is an autodiscovered subdomain.")] boolean IsSubdomain; [Description("Minimum UID and GID value for this domain.")] uint32 MinId; [Description("Maximum UID and GID value for this domain.")] uint32 MaxId; [Description("True if this domain supports enumeration.")] boolean Enumerate; [Description("True if objects from this domain can be accessed only via " "fully qualified name.")] boolean UseFullyQualifiedNames; [Description("The login format this domain expects.")] string LoginFormat; [Description("Format of fully qualified name this domain uses.")] string FullyQualifiedNameFormat; }; [Version("0.1.0"), Provider("cmpi:cmpiLMI_SSSD"), Association, Description("All available SSSD components.")] class LMI_SSSDAvailableComponent { [Key, Min(1), Max(1)] LMI_SSSDService REF SSSD; [Key] LMI_SSSDComponent REF Component; }; [Version("0.1.0"), Provider("cmpi:cmpiLMI_SSSD"), Association, Description("Data provider modules configured for given backend.")] class LMI_SSSDBackendProvider { [Key, Max(1)] LMI_SSSDBackend REF Backend; [Key] LMI_SSSDProvider REF Provider; }; [Version("0.1.0"), Provider("cmpi:cmpiLMI_SSSD"), Association, Description("All domains managed by SSSD.")] class LMI_SSSDAvailableDomain { [Key, Min(1), Max(1)] LMI_SSSDService REF SSSD; [Key] LMI_SSSDDomain REF Domain; }; [Version("0.1.0"), Provider("cmpi:cmpiLMI_SSSD"), Association, Description("All top level domains associated with given backend.")] class LMI_SSSDBackendDomain { [Key, Max(1)] LMI_SSSDBackend REF Backend; [Key, Max(1)] LMI_SSSDDomain REF Domain; }; [Version("0.1.0"), Provider("cmpi:cmpiLMI_SSSD"), Association, Description("All subdomains associated with given parent domain.")] class LMI_SSSDDomainSubdomain { [Key, Max(1)] LMI_SSSDDomain REF ParentDomain; [Key] LMI_SSSDDomain REF Subdomain; }; [Version("0.1.0"), Provider("cmpi:cmpiLMI_SSSD"), Association] class LMI_HostedSSSDService: CIM_HostedService { [Override("Antecedent"), Description("The hosting System.") ] CIM_ComputerSystem REF Antecedent; [Override("Dependent"), Description("Instance of SSSD service.")] LMI_SSSDService REF Dependent; };