# Enumerate NameSpaces

This request enumerates the namespaces defined in the repository. This is not a CIM intrinsic method but uses CIM enumerateInstance.

NameSpace Defines the root namespace where the __Namespace class is defined. (DO NOT CHANGE)

ClassName Defines the __Namespace class within the repository. (DO NOT CHANGE)

DO NOT CHANGE THE ABOVE. THE FIELDS ARE PROVIDED FOR INFORMATION ONLY

## Return Results

If successful, the method returns zero or more named Instances that meet the required criteria. 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.

Definition of the Namespace - An object that defines a scope within which object keys must be unique. Multiple namespaces typically indicate the presence of multiple management spaces or multiple devices. The namespace pragma

         #pragma namespace( )

This pragma is used to specify a Namespace path. The syntax needs to conform to the following:

         	<namespacetype>://<namespacehandle>

The contents of a MOF file are loaded into a namespace that provides a domain (in other words, a container), in which the instances of the classes are guaranteed to be unique per the KEY qualifier definitions. The term namespace is used to refer to an implementation that provides such a domain. Namespaces can be used to:

- Define chunks of management information (objects and associations) to limit implementation resource requirements, such as database size.
- Define views on the model for applications managing only specific objects, such as hubs.
- Pre-structure groups of objects for optimized query speed.

Implementation of Namespace Manipulation - Today the namespace manipulation defined in CIM Operations over HTTP (Section 2.5) is proprietary in nature. It is based on a class named __Namespace which creates an instance for each namespace defined for the CIMOM. The only required property in the __namespace class is the name.

Within Pegasus, the namespace manipulation based on the __namespace class can be executed through this HTML page or through the enumerateInstanceNames operation with the classname = __namespace and the namespace parameter = root. While it has not been formally defined within the specification, Pegasus today maintains the __namespace class in the root namespace.

Operations on the __NameSpace class are handled within Pegasus by a special provider that manipulates the instances of the class and also creates and deletes namespaces.

Demonstration Prepared by the OpenGroup Manageability Work Group Pegasus Development Team

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

Last Modified Friday, June 29, 2001 06:39:39 PM Copyright @ The Open Group 2001