Policy Draft

Policy Draft

Following is an update to the Policy Contribution. 

1         Policy

1.1        Overview

Qualified Name: Common::Policy

Description:

Presently the scope of policy is imperitive (event, condition, action) only - not declaritive or intent.

 

Approach will be pragmatic in nature, establishing a model that meets the Policy team's near term needs, and then evolve from that base.

 

1.2        Diagrams

1.2.1        Overview

Qualified Name: Common::Policy::Diagrams

Description:

1.2.1.1         Diagrams

                                                                                      Figure 71: Diagram Basic Policy

 

                                                                                                                               Figure 72: Diagram Policy Event

 

 

                                                                                       Figure 73: Diagram Policy Action

   

 

 

 

 

 

                                                                                            Figure 74: Diagram Rooting Policy

 

 

 

 

 

 

                                                                                                          Figure 75: Diagram PolicyTypes

 

 

 

 

 

                                                                           Figure 76: Diagram Policy Datatypes & Enumerations

 

 

 

1.3        PolicyObjectClasses

1.3.1        Overview

Qualified Name: Common::Policy::PolicyObjectClasses

1.3.1.1         Classes

1.3.1.1.1        Policy class

Qualified Name: Common::Policy::PolicyObjectClasses::Policy

This class is abstract.

Parent class: RootEntity

Applied Stereotypes:

  • Experimental

  • OpenModelClass

-          support:  MANDATORY

 

 

Table 71 Attributes for Class Policy

 

              

  

Attribute Name

  

  

Type

  

  

Mult.

  

  

Description

  

  

Stereotypes

  

name

String

1

Represents a user-friendly identifier of an object. It is a   (possibly ambiguous) name by which the object is commonly known in some   limited scope (such as an organization) and conforms to the naming   conventions of the country or culture with which it is associated. It is NOT   used as a naming attribute (i.e., to uniquely identify an instance of the   object).

 

 

OpenModelAttribute

  •   isInvariant: false

  •   valueRange:  no   range constraint  

  •   support:  MANDATORY

 

 

description

String

0..1

Defines a textual free-form description of the object.

 

 

OpenModelAttribute

  •   isInvariant: false

  •   valueRange:  no   range constraint  

  •   support:  MANDATORY

 

 

id

Identifier

1

Unambiguously distinguishes different object instances. It is   the naming attribute of the object.

Identifier of this information element.   This attribute shall be globally unique.

 

 

OpenModelAttribute

  •   isInvariant: false

  •   valueRange:  no   range constraint  

  •   support:  MANDATORY

 

 

invarientId

Identifier

1

An ID for the entity that does not change regardless of version.

 

 

OpenModelAttribute

  •   isInvariant: false

  •   valueRange:  no   range constraint  

  •   support:  MANDATORY

 

 

 

1.3.1.1.2        PolicyAction class

Qualified Name: Common::Policy::PolicyObjectClasses::PolicyAction

Description:

This is an abstract base class that represents how to form the action clause of a PolicyRule.

 

Certain actions will take place if the condition clause is TRUE, others if the condition clause is FALSE.

This class is abstract.

Parent class: Policy

Applied Stereotypes:

  • Experimental

  • OpenModelClass

-          support:  MANDATORY

 

Table 72 Attributes for Class PolicyAction

 

              

  

Attribute Name

  

  

Type

  

  

Mult.

  

  

Description

  

  

Stereotypes

  

keyValuePair

String

1

Additional metadata pertinant to the action.

 

 

OpenModelAttribute

  •   isInvariant: false

  •   valueRange:  no   range constraint  

  •   support:  MANDATORY

 

 

actionExecutionStrategy

PolicyExecutionStrategy

1

Defines the strategy to be used when executing the aggregated   actions

 

 

OpenModelAttribute

  •   isInvariant: false

  •   valueRange:  no   range constraint  

  •   support:  MANDATORY

 

 

name

String

1

Represents a user-friendly identifier of an object. It is a   (possibly ambiguous) name by which the object is commonly known in some   limited scope (such as an organization) and conforms to the naming   conventions of the country or culture with which it is associated. It is NOT   used as a naming attribute (i.e., to uniquely identify an instance of the   object).

 

 

OpenModelAttribute

  •   isInvariant: false

  •   valueRange:  no   range constraint  

  •   support:  MANDATORY

 

 

description

String

0..1

Defines a textual free-form description of the object.

 

 

OpenModelAttribute

  •   isInvariant: false

  •   valueRange:  no   range constraint  

  •   support:  MANDATORY

 

 

id

Identifier

1

Unambiguously distinguishes different object instances. It is   the naming attribute of the object.

Identifier of this information element.   This attribute shall be globally unique.

 

 

OpenModelAttribute

  •   isInvariant: false

  •   valueRange:  no   range constraint  

  •   support:  MANDATORY

 

 

invarientId

Identifier

1

An ID for the entity that does not change regardless of version.

 

 

OpenModelAttribute

  •   isInvariant: false

  •   valueRange:  no   range constraint  

  •   support:  MANDATORY

 

 

 

1.3.1.1.3        PolicyActionAtomic class

Qualified Name: Common::Policy::PolicyObjectClasses::PolicyActionAtomic

Description:

This is the base class for all simple PolicyActions. A simple PolicyAction consists of a single Boolean clause, which is used to perform a single action. This consists of a single occurrence of a PolicyStatement, which is of the form:

 

{SET | CLEAR} PolicyVariable to PolicyValue

 

This is distinctly different from the PolicyActionVendor, which does not use a PolicyStatement.

 

PolicyActionAtomic objects can also be used to form more complex action structures. A PolicyActionComposite object can be used to contain a group of PolicyActionAtomic objects - this grouping enables multiple PolicyActionAtomic objects to be executed as a group. Alternatively, a PolicyActionAtomic object can contain one or more PolicyActionAtomic objects (and also PolicyActionComposite groups if desired) to provide the semantics of a compound PolicyAction. In either case, the aggregation is done using the containedPolicyActions aggregation.

Parent class: PolicyAction

Applied Stereotypes:

  • Experimental

  • OpenModelClass

-          support:  MANDATORY

 

Table 73 Attributes for Class PolicyActionAtomic

 

              

  

Attribute Name

  

  

Type

  

  

Mult.

  

  

Description

  

  

Stereotypes

  

actionSequenceNumber

Integer

1

This attribute is a non-negative integer and represents the   particular sequence in which this element is executed as part of the overall   policy structure. This will allow a policy engine to reference externally   supplied arguments to this object as it is executed.
 
  Notes: Not present in the ITU specs; CIM 2.7 has a subset of these values.

 

 

OpenModelAttribute

  •   isInvariant: false

  •   valueRange:  no   range constraint  

  •   support:  MANDATORY

 

 

subject

String

1

Tthe entity that is executing the policy.

 

 

OpenModelAttribute

  •   isInvariant: false

  •   valueRange:  no   range constraint  

  •   support:  MANDATORY

 

 

target

String

1

he set of entities that are affect-ed by the policy.

 

 

OpenModelAttribute

  •   isInvariant: false

  •   valueRange:  no   range constraint  

  •   support:  MANDATORY

 

 

hasExecutedd

HasExecuted

1

This is an enumerated integer that is set by a policy   application to define the state of execution of this policyAction.
 
  Permited Values:
  0: not yet executed
  1: executed with no errors
  2: executed with errors but successfully rolled back
  3: executed with errors and did not roll back
  4: did not complete execution but successfully rolled back
  5: did not complete execution and did not roll back
 
  Notes:
  Not present in the ITU or CIM specs.
 
 

 

 

OpenModelAttribute

  •   isInvariant: false

  •   valueRange:  no   range constraint  

  •   support:  MANDATORY

 

 

keyValuePair

String

1

Additional metadata pertinant to the action.

 

 

OpenModelAttribute

  •   isInvariant: false

  •   valueRange:  no   range constraint  

  •   support:  MANDATORY

 

 

actionExecutionStrategy

PolicyExecutionStrategy

1

Defines the strategy to be used when executing the aggregated   actions

 

 

OpenModelAttribute

  •   isInvariant: false

  •   valueRange:  no   range constraint  

  •   support:  MANDATORY

 

 

 

1.3.1.1.4        PolicyActionComposite class

Qualified Name: Common::Policy::PolicyObjectClasses::PolicyActionComposite

Description:

This attribute is a non-negative integer and represents the particular sequence in which this element is executed as part of the overall policy structure.

For example if a composite is part of another composite policy structure.

 

Notes: default is "1"

Parent class: PolicyAction

Applied Stereotypes:

  • Experimental

  • OpenModelClass

-          support:  MANDATORY

 

Table 74 Attributes for Class PolicyActionComposite

 

              

  

Attribute Name

  

  

Type

  

  

Mult.

  

  

Description