# EnumerateClassNames Operation

The `enumerateClassNames` operation is used to enumerate the names of subclasses of a CIM Class in the target Namespace.

NameSpace String that defines the target namespace. See NameSpace Operations for more information.

ClassName Defines the name of the Class that is the basis for the enumeration.. Null (no entry) lists all class names in the Namespace

DeepInheritance If true return names of all subclasses of specified class. If false, only immediate subclasses are returned.

## Request Return

If successful, the method returns zero or more names of Classes that meet the requested criteria as a CIM Array.

If unsuccessful, one of the following status codes MUST be returned by this method, where the first applicable error in the list (starting with the first element of the list, and working down) is the error returned. Any additional method-specific interpretation of the error in is given in parentheses.

- CIM_ERR_ACCESS_DENIED
- CIM_ERR_NOT_SUPPORTED
- CIM_ERR_INVALID_NAMESPACE
- CIM_ERR_INVALID_PARAMETER (including missing, duplicate, unrecognized or otherwise incorrect parameters)
- CIM_ERR_INVALID_CLASS (the CIM Class that is the basis for this enumeration does not exist)
- CIM_ERR_FAILED (some other unspecified error occurred)

## Additional Information on the Fields

NameSpace - The NameSpace parameter is a string that defines the target namespace

className - The `ClassName` input parameter defines the Class that is the basis for the enumeration. Note that the class named is not retrieved as part of the enumeration. Thus, if there are no subclasses to the named class, zero classe names are returned.

DeepInheritance - If the DeepInheritance input parameter is true, this specifies that the names of all subclasses of the specified Class should be returned (if the ClassName input parameter is absent, this implies that the names of all Classes in the target Namespace should be returned). If false, only the names of immediate child subclasses are returned (if the ClassName input parameter is NULL, this implies that the names of all base Classes in the target Namespace should be returned.

## C++ Call

        virtual Array<String> enumerateClassNames(
        	const String& nameSpace,
        	const String& className = String::EMPTY,
        	Boolean deepInheritance = false) = 0;

Demonstration Prepared by the OpenGroup Manageability Work Group Pegasus Development Team

See (http://www.opengroup.org/management) for more information on Pegasus

Last Modified Tuesday, January 29, 2002 11:36:22 AM Copyright @ The Open Group 2001