.. This work is licensed under a Creative Commons Attribution 4.0 International License.

Release Notes
=============

.. note::
	* This Release Notes must be updated each time the team decides to Release new artifacts.
	* The scope of this Release Notes is for this particular component. In other words, each ONAP component has its Release Notes.
	* This Release Notes is cumulative, the most recently Released artifact is made visible in the top of this Release Notes.
	* Except the date and the version number, all the other sections are optional but there must be at least one section describing the purpose of this new release.
	* This note must be removed after content has been added.


Version: x.y.z
--------------


:Release Date: yyyy-mm-dd



**New Features**

One or two sentences explaining the purpose of this Release.

**Bug Fixes**
	- `CIMAN-65 <https://jira.onap.org/browse/CIMAN-65>`_ and a sentence explaining what this defect is addressing.
**Known Issues**
	- `CIMAN-65 <https://jira.onap.org/browse/CIMAN-65>`_ and two, three sentences.
	  One sentences explaining what is the issue.
	  
	  Another sentence explaining the impact of the issue.
	  
	  And an optional sentence providing a workaround.

**Security Issues**
	You may want to include a reference to CVE (Common Vulnerabilities and Exposures) `CVE <https://cve.mitre.org>`_


**Upgrade Notes**

**Deprecation Notes**

**Other**

===========

End of Release Notes
