A.1 IDL specification (file name "BasicCMIRPConstDefs.idl")

32.6033GPPBasic CM Integration Reference Point (IRP)Common Object Request Broker Architecture (CORBA) Solution Set (SS)Configuration Management (CM)Release 9Telecommunication managementTS

//File: BasicCMIRPConstDefs.idl

#ifndef _BASIC_CM_IRP_CONST_DEFS_IDL_

#define _BASIC_CM_IRP_CONST_DEFS_IDL_

#include <GenericIRPManagementConstDefs.idl>

// This statement must appear after all include statements

#pragma prefix "3gppsa5.org"

/* ## Module: BasicCMIRPConstDefs

This module contains commonly used definitions for BasicCMIRP.

================================================================

*/

module BasicCMIRPConstDefs

{

/**

* Defines the name of a Managed Object Class

*/

typedef string MOClass;

/**

*

* In this version the only allowed filter value is "TRUE" i.e. a filter that

* matches everything.

*/

typedef string Filter;

/**

* ResultContents is used to tell how much information to get back

* from the find_managed_objects operation.

*

* NAMES: Used to get only Distinguished Name

* for MOs.

* The name contains both the MO class

* and the names of all superior objects in the naming

* tree.

*

* NAMES_AND_ATTRIBUTES: Used to get both NAMES plus

* MO attributes (all or selected).

*/

enum ResultContents

{

NAMES,

NAMES_AND_ATTRIBUTES

};

/**

* ScopeType defines the kind of scope to use in a search

* together with SearchControl.level, in a SearchControl value.

*

* SearchControl.level is always >= 0. If a level is bigger than the

* depth of the tree there will be no exceptions thrown.

*/

enum ScopeType

{

BASE_ONLY,

BASE_NTH_LEVEL,

BASE_SUBTREE,

BASE_ALL

};

/**

* SearchControl controls the find_managed_object search,

* and contains:

* the type of scope ("type" field),

* the level of scope ("level" field), level 0 means the "baseObject",

* level 1 means baseobject including its sub-ordinates etc..

* the filter ("filter" field),

* the result type ("contents" field).

* The type, level and contents fields are all mandatory.

* The filter field contains the filter expression.

* The string "TRUE" indicates "no filter",

* i.e. a filter that matches everything.

*/

struct SearchControl

{

ScopeType type;

unsigned long level;

Filter filter_;

ResultContents contents;

};

struct Result

{

GenericIRPManagementConstDefs::DN mo;

GenericIRPManagementConstDefs::MOAttributeSet attributes;

};

typedef sequence <Result> ResultSet;

/**

* AttributeErrorCategory defines the categories of errors, related to

* attributes, that can occur during creation or modification of MOs.

*

* NO_SUCH_ATTRIBUTE: The specified attribute does not exist.

* INVALID_ATTRIBUTE_VALUE: The specified attribute value is not valid.

* MISSING_ATTRIBUTE_VALUE: An attribute value is required but none was

* provided and no default value is defined for the attribute.

* INVALID_MODIFY_OPERATOR: The specified modify operator is not valid

* (e.g. operator ADD_VALUES applied to a non multi-valued attribute

* or operator SET_TO_DEFAULT applied where no default value is defined).

* MODIFY_NOT_ALLOWED: The modification of the attribute is not allowed.

* MODIFY_FAILED: The modification failed because of an unspecified reason.

*/

enum AttributeErrorCategory

{

NO_SUCH_ATTRIBUTE,

INVALID_ATTRIBUTE_VALUE,

MISSING_ATTRIBUTE_VALUE,

INVALID_MODIFY_OPERATOR,

MODIFY_NOT_ALLOWED,

MODIFY_FAILED

};

/**

* DeleteErrorCategory defines the categories of errors that can occur

* during deletion of MOs.

*

* SUBORDINATE_OBJECT: The MO cannot be deleted due to subordinate MOs.

* DELETE_NOT_ALLOWED: The deletion of the MO is not allowed.

* DELETE_FAILED: The deletion failed because of an unspecified reason.

*/

enum DeleteErrorCategory

{

SUBORDINATE_OBJECT,

DELETE_NOT_ALLOWED,

DELETE_FAILED

};

/**

* AttributeError represents an error, related to an attribute, that occured

* during creation or modification of MOs.

* It contains:

* – the name of the indicted attribute ("name" field),

* – the category of the error ("error" field),

* – optionally, the indicted attribute value ("value" field),

* – optionally, additional details on the error ("reason" field).

*/

struct AttributeError

{

GenericIRPManagementConstDefs::MOAttributeName name;

AttributeErrorCategory error;

GenericIRPManagementConstDefs::MOAttributeValue value;

string reason;

};

typedef sequence <AttributeError> AttributeErrorSeq;

/**

* DeleteError represents an error that occured during deletion of MOs.

* It contains:

* – the distinguished name of the indicted MO ("object_name" field),

* – the category of the error ("error" field),

* – optionally, additional details on the error ("reason" field).

*/

struct DeleteError

{

GenericIRPManagementConstDefs::DN object_name;

DeleteErrorCategory error;

string reason;

};

typedef sequence <DeleteError> DeleteErrorSeq;

/**

* ModifyAttributeErrors represents errors that occured during

* modification of attributes of a MO.

* It contains:

* – the distinguished name of the indicted MO ("object_name" field),

* – a sequence containing the attribute errors ("errors" field).

*/

struct ModifyAttributeErrors

{

GenericIRPManagementConstDefs::DN object_name;

AttributeErrorSeq errors;

};

typedef sequence <ModifyAttributeErrors> ModifyAttributeErrorsSeq;

typedef sequence < GenericIRPManagementConstDefs::MOAttributeName> AttributeNameSet;

/**

* ModifyOperator defines the way in which an attribute value is to be

* applied to an attribute in a modification of MO attributes.

*

* REPLACE: replace the current value with the provided value

* ADD_VALUES: for a multi-valued attribute, add the provided values to the

* current list of values

* REMOVE_VALUES: for a multi-valued attribute, remove the provided values

* from the current list of values

* SET_TO_DEFAULT: set the attribute to its default value

*/

enum ModifyOperator

{

REPLACE,

ADD_VALUES,

REMOVE_VALUES,

SET_TO_DEFAULT

};

/**

* AttributeModification defines an attribute value and the way it is to

* be applied to an attribute in a modification of MO attributes.

* It contains:

* – the name of the attribute to modify ("name" field),

* – the value to apply to this attribute ("value" field),

* – the way the attribute value is to be applied to the attribute

* ("operator" field).

*/

struct AttributeModification

{

GenericIRPManagementConstDefs::MOAttributeName name;

GenericIRPManagementConstDefs::MOAttributeValue value;

ModifyOperator operator;

};

typedef sequence <AttributeModification> AttributeModificationSet;

};

#endif // _BASIC_CM_IRP_CONST_DEFS_IDL_