See: License Management - Clean

Updates in this version are minor updates per recent contribution comments.




This document was generated on 2020-03-10 by "ONAP Model GenDoc Template" version 4.00


 

1         Introduction


This document contains the Word presentation of the model generated from the ONAP Eclipse Papyrus UML Information model  using gendoc.  This format is provided to assist the reader that does not use UML or has no access to UML tools.


2         Diagrams

2.1        Overview

Qualified Name: License::Diagrams

Description:

2.1.1        Diagrams

Figure 21: Business Interaction Hierarchy (License Agreement Inheritance)


Figure 2‑2: Root Entity Hierarchy (Vendor Inheritance)


Figure 2‑3: Diagram License


Figure 2‑4: Diagram Rooting License


Figure 2‑5: Diagram License Datatypes


Figure 2‑6: Diagram License Keys


Figure 2‑7: Diagram Entitlements

3         ObjectClasses

3.1        Overview

Qualified Name: License::ObjectClasses

3.1.1        Classes

3.1.1.1         EntitlementPool class

Qualified Name: License::ObjectClasses::EntitlementPool

Description:

An EntitlementPool is created for each type of Entitlement that is required for the VNFs. Each Entitlement Pool is assigned a Name and Description for modeling purposes and is uniquely identified by a UUID.  In addition, a list of characteristics of the Entitlement Pool are defined.

An EntitlementPool is not specific to a Feature Group. An Entitlement Pool may be related to multiple Feature Groups containing a VNF or even to multiple VNFs.
Purchased entitlements are inventoried in the Entitlement Pools.

Multiple pools for the same type of entitlement may be created based on the constraints.

Parent class: DesignEntity

Applied Stereotypes:

Table 3‑1 Attributes for Package ObjectClasses

 

Attribute Name

Type

Mult.

Description

Stereotypes

entitlementManufactureReferenceNumber

String

0..1

Reference number for the entitlement as described by the vendor in their price list / catalog /contract.



Experimental


OpenModelAttribute

·         partOfObjectKey:  0

·         uniqueSet:

·         isInvariant:  false

·         unsigned:  false

·         counter: NA

·         support: MANDATORY



entitlementPurchaseIncrements

Integer

0..1

This field contains information to tell a Designer how the entitlement must be purchased. For example, if the entitlement must be purchased in blocks of 1000, the increment would be 1000.



Experimental


OpenModelAttribute

·         partOfObjectKey:  0

·         uniqueSet:

·         isInvariant:  false

·         unsigned:  false

·         counter: NA

·         support: MANDATORY



entitlementPoolThresholdValue

Integer

0..1

A description of a threshold that will be assessed for some business purpose (e.g. 20% of entitlement pool remains available).  (The threshold of interest to DCAE or Capacity Planning, etc.)  This may be an absolute value or a percentage. For example:
when 90% of the pool is in-use, trigger an additional purchase of inventory.

A description of a threshold that will be assessed for some business purpose (e.g. 20% of entitlement pool remains available).  (The threshold of interest to DCAE or Capacity Planning, etc.)  This may be an absolute value or a percentage. For example:
when 90% of the pool is in-use, trigger an additional purchase of inventory.



Experimental


OpenModelAttribute

·         partOfObjectKey:  0

·         uniqueSet:

·         isInvariant:  false

·         unsigned:  false

·         counter: NA

·         support: MANDATORY



entitlementPoolThresholdUnits

ThresholdUnitType

0..1

Specifies the Units for the ThresholdValue.



Experimental


OpenModelAttribute

·         partOfObjectKey:  0

·         uniqueSet:

·         isInvariant:  false

·         unsigned:  false

·         counter: NA

·         support: MANDATORY



invariantId

Identifier

1

Identifier that stays the same irrespective of version.

Identifier that stays the same irrespective of version.



Experimental


OpenModelAttribute

·         partOfObjectKey:  0

·         uniqueSet:

·         isInvariant:  false

·         unsigned:  false

·         counter: NA

·         support: MANDATORY



Version

String

1

The version of this entity.



Experimental


OpenModelAttribute

·         partOfObjectKey:  0

·         uniqueSet:

·         isInvariant:  false

·         unsigned:  false

·         counter: NA

·         support: MANDATORY



poolType

LicenseGroupType

1

The license key may be 'universal' or 'unique' or 'one-time'.
- A 'universal' value indicates that the same exact license key (string) may be associated with all instances of the VNF.

- A 'unique' value indicates that each instance of the VNF must be related to a unique license key (string).  When no longer needed, the key may be returned to the license key pool for reuse.

- A 'one-time' value indicates that each instance of the VNF must be related to a unique license key (string).  When no longer needed, the key may not be reused.



Experimental


OpenModelAttribute

·         partOfObjectKey:  0

·         uniqueSet:

·         isInvariant:  false

·         unsigned:  false

·         counter: NA

·         support: MANDATORY



validFor

TimePeriod

0..1

The period during which the design entity is valid.



OpenModelAttribute

·         partOfObjectKey:  0

·         uniqueSet:

·         isInvariant:  false

·         unsigned:  false

·         counter: NA

·         support: MANDATORY


Preliminary



status

String

1

The condition of the specification, such s active, inactive, or planned.



OpenModelAttribute

·         partOfObjectKey:  0

·         uniqueSet:

·         isInvariant:  false

·         unsigned:  false

·         counter: NA

·         support: MANDATORY


Preliminary



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

·         partOfObjectKey:  0

·         uniqueSet:

·         isInvariant:  false

·         unsigned:  false

·         counter: NA

·         support: MANDATORY


Preliminary



description

String

1

Defines a textual free-form description of the object.



OpenModelAttribute

·         partOfObjectKey:  0

·         uniqueSet:

·         isInvariant:  false

·         unsigned:  false

·         counter: NA

·         support: MANDATORY


Preliminary



id

Identifier

1

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

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



OpenModelAttribute

·         partOfObjectKey:  0

·         uniqueSet:

·         isInvariant:  false

·         unsigned:  false

·         counter: NA

·         support: MANDATORY


Preliminary





3.1.1.2         FeatureGroup class

Qualified Name: License::ObjectClasses::FeatureGroup

Description:

Feature groups represent a set of the VNFs. Feature groups may be defined by the vendor and/or by the service provider. VNFs may be related to multiple feature groups.  At least one feature group will be related to a VNF. If no sub-sets are needed, a single feature group will be defined that represents the base or core capabilities of the VNF.

If an Entitlement Pool or License Key Group is associated with a particular Feature Group, the Feature Group becomes a "constraint" for the pool/group.

Applied Stereotypes:

Table 3‑2 Attributes for Package ObjectClasses

 

Attribute Name

Type

Mult.

Description

Stereotypes

featureGroupName

String

1

Name of the feature group



OpenModelAttribute

·         partOfObjectKey:  0

·         uniqueSet:

·         isInvariant:  false

·         unsigned:  false

·         counter: NA

·         support: MANDATORY



featureGroupDescription

String

0..1

Description of the feature group.



OpenModelAttribute

·         partOfObjectKey:  0

·         uniqueSet:

·         isInvariant:  false

·         unsigned:  false

·         counter: NA

·         support: MANDATORY



featureGroupPartNumber

String

1

The featureGroupPartNumber specifies the Vnf that this FeatureGroup is related to.

The featureGroupPartNumber specifies the SKU or reference number that the Vendor has for the Vnf that this FeatureGroup is related to.



OpenModelAttribute

·         partOfObjectKey:  0

·         uniqueSet:

·         isInvariant:  false

·         unsigned:  false

·         counter: NA

·         support: MANDATORY





3.1.1.3         LicenseKeyPool class

Qualified Name: License::ObjectClasses::LicenseKeyPool

Description:

A License Key Pool is created for each type of License Key that is required for the VNF.
Each License Key Pool is assigned a Name and Description for modeling purposes and is uniquely identified by a UUID. In addition, a list of characteristics of the License Key Pool are defined.

The license key Pool model provides a description to interested systems for the license keys that are provided by a vendor.
A license key Pool is not specific to a feature group. A license key Pool may be related to multiple feature groups that a VNF belongs to or even to multiple VNFs.

Parent class: DesignEntity

Applied Stereotypes:

Table 3‑3 Attributes for Package ObjectClasses

 

Attribute Name

Type

Mult.

Description

Stereotypes

poolType

LicenseGroupType

1

The license key may be 'universal' or 'unique' or 'one-time'.
- A 'universal' value indicates that the same exact license key (string) may be associated with all instances of the VNFs.

- A 'unique' value indicates that each instance of the VNF must be related to a unique license key (string).  When no longer needed, the key may be returned to the license key pool for reuse.

- A 'one-time' value indicates that each instance of the VNF must be related to a unique license key (string).  When no longer needed, the key may not be reused.



Experimental


OpenModelAttribute

·         partOfObjectKey:  0

·         uniqueSet:

·         isInvariant:  false

·         unsigned:  false

·         counter: NA

·         support: MANDATORY



thresholdUnits

ThresholdUnitType

0..1

Units can be either absolute or a percentage (%).



Experimental


OpenModelAttribute

·         partOfObjectKey:  0

·         uniqueSet:

·         isInvariant:  false

·         unsigned:  false

·         counter: NA

·         support: MANDATORY



thresholdValue

Integer

0..1

Specified threshold value for the license key pool.



Experimental


OpenModelAttribute

·         partOfObjectKey:  0

·         uniqueSet:

·         isInvariant:  false

·         unsigned:  false

·         counter: NA

·         support: MANDATORY



keyPurchaseIncrements

String

0..1

Specifies how the key must be purchased.   If in blocks of 1000, the increment would be 1000.



Experimental


OpenModelAttribute

·         partOfObjectKey:  0

·         uniqueSet:

·         isInvariant:  false

·         unsigned:  false

·         counter: NA

·         support: MANDATORY



invariantId

Identifier

1

Identifier that stays the same irrespective of version.



Experimental


OpenModelAttribute

·         partOfObjectKey:  0

·         uniqueSet:

·         isInvariant:  false

·         unsigned:  false

·         counter: NA

·         support: MANDATORY



Version

String

1

The version of this entity.



Experimental


OpenModelAttribute

·         partOfObjectKey:  0

·         uniqueSet:

·         isInvariant:  false

·         unsigned:  false

·         counter: NA

·         support: MANDATORY



licenseManufactureReferenceNumber

String

0..1

Identifier for the entitlement as described by the vendor in their price list / catalog /contract.



Experimental


OpenModelAttribute

·         partOfObjectKey:  0

·         uniqueSet:

·         isInvariant:  false

·         unsigned:  false

·         counter: NA

·         support: MANDATORY



validFor

TimePeriod

0..1

The period during which the design entity is valid.



OpenModelAttribute

·         partOfObjectKey:  0

·         uniqueSet:

·         isInvariant:  false

·         unsigned:  false

·         counter: NA

·         support: MANDATORY


Preliminary



status

String

1

The condition of the specification, such s active, inactive, or planned.



OpenModelAttribute

·         partOfObjectKey:  0

·         uniqueSet:

·         isInvariant:  false

·         unsigned:  false

·         counter: NA

·         support: MANDATORY


Preliminary



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

·         partOfObjectKey:  0

·         uniqueSet:

·         isInvariant:  false

·         unsigned:  false

·         counter: NA

·         support: MANDATORY


Preliminary



description

String

1

Defines a textual free-form description of the object.



OpenModelAttribute

·         partOfObjectKey:  0

·         uniqueSet:

·         isInvariant:  false

·         unsigned:  false

·         counter: NA

·         support: MANDATORY


Preliminary



id

Identifier

1

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

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



OpenModelAttribute

·         partOfObjectKey:  0

·         uniqueSet:

·         isInvariant:  false

·         unsigned:  false

·         counter: NA

·         support: MANDATORY


Preliminary





3.1.1.4         LicenseAgreement class

Qualified Name: License::ObjectClasses::LicenseAgreement

Description:

An agreement between the service provider and a given vendor granting the service provider to use the vendor's products.   Generally the license agreement is specific to a family of vendor products and/or to some service provider's project/product or product family.

Parent class: Agreement

Applied Stereotypes:

Table 3‑4 Attributes for Package ObjectClasses

 

Attribute Name

Type

Mult.

Description

Stereotypes

requirementsAndConstraints

String

1..*

Free form text. Includes information such as operating system or hypervisor required for the VNF instance. This may also contain factors to be considered in deployment/placement of the VNF instances. These requirements and constraints may need to be abstracted as policies or other business rules.



Experimental


OpenModelAttribute

·         partOfObjectKey:  0

·         uniqueSet:

·         isInvariant:  false

·         unsigned:  false

·         counter: NA

·         support: MANDATORY



licenseTerm

LicenseTerm

1

Term of the license:
-fixed term
-perpetual
-unlimited
-subscription



Experimental


OpenModelAttribute

·         partOfObjectKey:  0

·         uniqueSet:

·         isInvariant:  false

·         unsigned:  false

·         counter: NA

·         support: MANDATORY



documentNumber

String

1

A reference number assigned to an Agreement that follows a prescribed numbering system.



OpenModelAttribute

·         partOfObjectKey:  0

·         uniqueSet:

·         isInvariant:  false

·         unsigned:  false

·         counter: NA

·         support: MANDATORY


Preliminary



statementOfIntent

String

1

An overview and goals of the Agreement.



OpenModelAttribute

·         partOfObjectKey:  0

·         uniqueSet:

·         isInvariant:  false

·         unsigned:  false

·         counter: NA

·         support: MANDATORY


Preliminary



StartDate

DateTime

1

Date interaction initiated



OpenModelAttribute

·         partOfObjectKey:  0

·         uniqueSet:

·         isInvariant:  false

·         unsigned:  false

·         counter: NA

·         support: MANDATORY


Preliminary



endDate

DateTime

1

The date on which an interaction is closed or completed.



OpenModelAttribute

·         partOfObjectKey:  0

·         uniqueSet:

·         isInvariant:  false

·         unsigned:  false

·         counter: NA

·         support: MANDATORY


Preliminary



Status

String

0..1

The current condition of an interaction, such as open, in research, closed, and so forth



OpenModelAttribute

·         partOfObjectKey:  0

·         uniqueSet:

·         isInvariant:  false

·         unsigned:  false

·         counter: NA

·         support: MANDATORY


Preliminary



name

String

0..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

·         partOfObjectKey:  0

·         uniqueSet:

·         isInvariant:  false

·         unsigned:  false

·         counter: NA

·         support: MANDATORY


Preliminary



description

String

0..1

Defines a textual free-form description of the object.



OpenModelAttribute

·         partOfObjectKey:  0

·         uniqueSet:

·         isInvariant:  false

·         unsigned:  false

·         counter: NA

·         support: MANDATORY


Preliminary



id

Identifier

1

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

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



OpenModelAttribute

·         partOfObjectKey:  0

·         uniqueSet:

·         isInvariant:  false

·         unsigned:  false

·         counter: NA

·         support: MANDATORY


Preliminary




3.1.1.5         PoolLimit class

Qualified Name: License::ObjectClasses::PoolLimit

Description:

A variable set of values that identify the limits that may be imposed by an entitlement instance in the pool.  Multiple constraints may be applicable for an instance of entitlement in the pool.  For example, an entitlement based on GB and number of sessions. Increments, aggregation function, time scope, threshold value may repeat for each metric in the list.


Limits can be applied by the vendor or the service provider.

Applied Stereotypes:

Table 3‑5 Attributes for Package ObjectClasses

 

Attribute Name

Type

Mult.

Description

Stereotypes

limitMetricType

EPMetricType

1

Specifies if this pool holds entitlements based on usage of the VNF instance (number of users), number of sessions, country, line of business, etc.



Experimental


OpenModelAttribute

·         partOfObjectKey:  0

·         uniqueSet:

·         isInvariant:  false

·         unsigned:  false

·         counter: NA

·         support: MANDATORY



limitMetricValue

Integer

1

The value of some limit being applied.



Experimental


OpenModelAttribute

·         partOfObjectKey:  0

·         uniqueSet:

·         isInvariant:  false

·         unsigned:  false

·         counter: NA

·         support: MANDATORY



aggregationFunction

AggregationTypes

0..1

Type of aggregation being performed (Peak or Average)



Experimental


OpenModelAttribute

·         partOfObjectKey:  0

·         uniqueSet:

·         isInvariant:  false

·         unsigned:  false

·         counter: NA

·         support: MANDATORY



limitUnits

LimitUnits

1

The units of the limit (Trunks, Users, Subscribers, Sessions, tenants, Tokens, Seats, TB, GB, MB, ...)



Experimental


OpenModelAttribute

·         partOfObjectKey:  0

·         uniqueSet:

·         isInvariant:  false

·         unsigned:  false

·         counter: NA

·         support: MANDATORY



time

DateTime

0..1

Units time is specified in (day, month, hour, minute, second, millisecond.



Experimental


OpenModelAttribute

·         partOfObjectKey:  0

·         uniqueSet:

·         isInvariant:  false

·         unsigned:  false

·         counter: NA

·         support: MANDATORY



poolMetricTypeOther

String

0..1

LimitMetricType if Other enumeration is selected.



Experimental


OpenModelAttribute

·         partOfObjectKey:  0

·         uniqueSet:

·         isInvariant:  false

·         unsigned:  false

·         counter: NA

·         support: MANDATORY




3.1.1.6         Party

A Party represents an individual, an organization or an organization unit that is of interest, involved, or that provide value,  directly or indirectly. from an enterprise perspective (Enterprise is to be understood here as provider, service provider or operator).

Parent class: RootEntity

Applied stereotypes:


Attribute Name

Type

Mult.

Stereotypes

Description

validFor

TimePeriod

1

OpenModelAttribute

·   isInvariant: false

·   valueRange:  no range constraint

·   support:   MANDATORY

Experimental

The time period that the Party is valid for



name

String

0..1

OpenModelAttribute

·   isInvariant: false

·   valueRange:  no range constraint

·   support:   MANDATORY

Preliminary

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).



description

String

0..1

OpenModelAttribute

·   isInvariant: false

·   valueRange:  no range constraint

·   support:   MANDATORY

Preliminary

Defines a textual free-form description of the object.



id

Identifier

1

OpenModelAttribute

·   isInvariant: false

·   valueRange:  no range constraint

·   support:   MANDATORY

Preliminary

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

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



3.1.1.7         PartyRole

The part played by a party in a given context with any characteristics, such as expected pattern of behavior, attributes, and/or associations that it entails.PartyRole is an abstract concept that should be used in places where the business refers to a Party playing a Role

Parent class: RootEntity

Applied stereotypes:

Table 3‑6 Attributes for Package PartyRole

Attribute Name

Type

Mult.

Stereotypes

Description

status

String

1

OpenModelAttribute

·   isInvariant: false

·   valueRange:  no range constraint

·   support:   MANDATORY

Used to track the lifecycle status, e.g. existing, prospective or former customers.



validFor

TimePeriod

1

OpenModelAttribute

·   isInvariant: false

·   valueRange:  no range constraint

·   support:   MANDATORY

The time period that the PartyRole is valid for



name

String

0..1

OpenModelAttribute

·   isInvariant: false

·   valueRange:  no range constraint

·   support:   MANDATORY

Preliminary

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).



description

String

0..1

OpenModelAttribute

·   isInvariant: false

·   valueRange:  no range constraint

·   support:   MANDATORY

Preliminary

Defines a textual free-form description of the object.



id

Identifier

1

OpenModelAttribute

·   isInvariant: false

·   valueRange:  no range constraint

·   support:   MANDATORY

Preliminary

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

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



3.1.1.8         Vendor

An individual or organization that sells goods or services to someone else in the value fabric.

Parent class: PartyRole

Applied stereotypes:


4         TypeDefinitions

4.1        Overview

Qualified Name: License::TypeDefinitions

4.1.1        Datatypes

4.1.2        Enumerations

4.1.2.1         AggregationTypes enumeration

Qualified Name: License::TypeDefinitions::AggregationTypes

Applied Stereotypes:

Contains Enumeration Literals:

4.1.2.2         EPMetricType enumeration

Qualified Name: License::TypeDefinitions::EPMetricType

Applied Stereotypes:

Contains Enumeration Literals:

4.1.2.3         LicenseDuration enumeration

Qualified Name: License::TypeDefinitions::LicenseDuration

Description:

Units of the entitlement/license term.   Valid values: year, quarter, month, day.

Applied Stereotypes:

Contains Enumeration Literals:

4.1.2.4         LicenseGroupType enumeration

Qualified Name: License::TypeDefinitions::LicenseGroupType

Applied Stereotypes:

Contains Enumeration Literals:

4.1.2.5         LicenseTerm enumeration

Qualified Name: License::TypeDefinitions::LicenseTerm

Description:

Valid values:

year, quarter, month, day.

Not applicable when license type is Perpetual.

Applied Stereotypes:

Contains Enumeration Literals:

4.1.2.6         LimitUnits enumeration

Qualified Name: License::TypeDefinitions::LimitUnits

Applied Stereotypes:

Contains Enumeration Literals:

4.1.2.7         ThresholdUnitType enumeration

Qualified Name: License::TypeDefinitions::ThresholdUnitType

Applied Stereotypes:

Contains Enumeration Literals: