[VNFRQTS] update HEAT syntax, verbiage, reqs 85/65885/1
authorstark, steven <ss820f@att.com>
Tue, 11 Sep 2018 16:22:03 +0000 (09:22 -0700)
committerstark, steven <ss820f@att.com>
Tue, 11 Sep 2018 16:23:32 +0000 (09:23 -0700)
commit 1, chapter 5.2.1 - 5.2.3

Issue-ID: VNFRQTS-438
Change-Id: Iddd70a450e5b782dd0930b74a5f86aa96aa8a35f
Signed-off-by: stark, steven <ss820f@att.com>
docs/Chapter5/Heat/General Guidelines for Heat.rst
docs/Chapter5/Heat/ONAP Heat Orchestration Template Format.rst
docs/Chapter5/Heat/ONAP Heat Orchestration Templates: Overview.rst
docs/data/needs.json

index 378a057..bacf6fa 100644 (file)
@@ -35,9 +35,17 @@ YAML Format
     :id: R-95303
     :target: VNF
     :keyword: MUST
+    :validation_mode: static
 
     A VNF's Heat Orchestration Template **MUST** be defined using valid YAML.
 
 YAML (YAML Ain't
 Markup Language) is a human friendly data serialization standard for all
 programming languages. See http://www.yaml.org/.
+
+YAML rules include:
+
+ - Tabs are not allowed, use spaces ONLY
+ - You must indent your properties and lists with 1 or more spaces
+ - All Resource IDs and resource property parameters are case-sensitive.
+   (e.g., "ThIs", is not the same as "thiS")
index 40aa3ce..f6c4541 100644 (file)
@@ -6,25 +6,25 @@
 
 ONAP Heat Orchestration Template Format
 ------------------------------------------------
+As stated above, Heat Orchestration templates must be defined in YAML.
 
-As stated in the previous section, Heat Orchestration templates must be
-defined in YAML.
-
-YAML rules include:
-
- - Tabs are not allowed, use spaces ONLY
+.. req::
+    :id: R-92635
+    :keyword: MUST
+    :validation_mode: static
 
- - You must indent your properties and lists with 1 or more spaces
+    A VNF's Heat Orchestration Template **MUST** be compliant with the
+    OpenStack Template Guide.
 
- - All Resource IDs and resource property parameters are
-   case-sensitive. (e.g., "ThIs", is not the same as "thiS")
+The OpenStack Template Guide is defined at
+https://docs.openstack.org/heat/latest/template_guide/index.html#top.
 
 Heat Orchestration Template Structure
 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
 
-Heat Orchestration template structure follows the following format,
-as defined by OpenStack at
-https://docs.openstack.org/developer/heat/template_guide/hot_spec.html
+Heat Orchestration template structure follows the following format, as
+defined by OpenStack at
+https://docs.openstack.org/developer/heat/template_guide/hot_spec.html.
 
 .. code-block:: yaml
 
@@ -48,20 +48,22 @@ https://docs.openstack.org/developer/heat/template_guide/hot_spec.html
   conditions:
     # declaration of conditions
 
+
 heat_template_version
 ~~~~~~~~~~~~~~~~~~~~~~~
 
 
 .. req::
     :id: R-27078
-    :target: VNF
     :keyword: MUST
+    :target: VNF
+    :validation_mode: static
 
-    A VNF's Heat Orchestration template **MUST** contain
-    the section "heat_template_version:".
+    A VNF's Heat Orchestration template **MUST** contain the
+    section ``heat_template_version:``.
 
-The section "heat_template_version:" must be set to a date
-that is supported by the OpenStack environment.
+The section ``heat_template_version:`` must be set to a date that
+is supported by the OpenStack environment.
 
 description
 ~~~~~~~~~~~~
@@ -69,11 +71,11 @@ description
 
 .. req::
     :id: R-39402
-    :target: VNF
     :keyword: MUST
+    :validation_mode: static
 
-    A VNF's Heat Orchestration Template **MUST**
-    contain the section "description:".
+    A VNF's Heat Orchestration Template **MUST** contain the
+    section ``description:``.
 
 parameter_groups
 ~~~~~~~~~~~~~~~~~~~~~~
@@ -88,9 +90,10 @@ parameters
     :id: R-35414
     :target: VNF
     :keyword: MUST
+    :validation_mode: static
 
-    A VNF Heat Orchestration's template **MUST**
-    contain the section "parameters:".
+    A VNF Heat Orchestration's template **MUST** contain the
+    section ``parameters:``.
 
 
 .. code-block:: yaml
@@ -126,21 +129,22 @@ attributes (e.g., type, label) defined as nested elements.
     :id: R-90279
     :target: VNF
     :keyword: MUST
+    :validation_mode: static
 
-    A VNF's Heat Orchestration template's parameter **MUST**
-    be used in a resource with the exception of the parameters
-    for the OS::Nova::Server resource property availability_zone.
+    A VNF Heat Orchestration's template's parameter **MUST** be used
+    in a resource with the exception of the parameters for the
+    ``OS::Nova::Server`` resource property ``availability_zone``.
 
 .. req::
     :id: R-91273
     :target: VNF
     :keyword: MAY NOT
 
-    A VNF Heat Orchestration's template's parameter for
-    the OS::Nova::Server resource property availability_zone
-    **MAY NOT** be used in any OS::Nova::Resource.
+    A VNF Heat Orchestration's template's parameter for the
+    ``OS::Nova::Server`` resource property ``availability_zone``
+    **MAY NOT** be used in any ``OS::Nova::Server``.
 
-That is, the parameter associated with the property 'availability_zone'
+That is, the parameter associated with the property ``availability_zone``
 maybe declared but not used in a resource.
 
 <param name>
@@ -153,10 +157,11 @@ The name of the parameter.
     :id: R-25877
     :target: VNF
     :keyword: MUST
+    :validation_mode: static
 
-    A VNF's Heat Orchestration Template's parameter
-    name (i.e., <param name>) **MUST** contain only
-    alphanumeric characters and underscores ('_').
+    A VNF's Heat Orchestration Template's parameter name
+    (i.e., <param name>) **MUST** contain only alphanumeric
+    characters and underscores ('_').
 
 type
 ++++
@@ -166,18 +171,25 @@ type
     :id: R-36772
     :target: VNF
     :keyword: MUST
+    :validation_mode: static
 
-    A VNF's Heat Orchestration Template's parameter
-    **MUST** include the attribute "type:".
+    A VNF's Heat Orchestration Template's parameter **MUST** include the
+    attribute ``type:``.
 
 .. req::
     :id: R-11441
     :target: VNF
     :keyword: MUST
+    :validation_mode: static
 
-    A VNF's Heat Orchestration Template's parameter
-    type **MUST** be one of the following values: "string",
-    "number", "json", "comma_delimited_list" or "boolean".
+    A VNF's Heat Orchestration Template's parameter type **MUST** be one of
+    the following values:
+
+    * ``string``
+    * ``number``
+    * ``json``
+    * ``comma_delimited_list``
+    * ``boolean``
 
 label
 ++++++
@@ -188,8 +200,8 @@ label
     :target: VNF
     :keyword: MAY
 
-    A VNF's Heat Orchestration Template parameter
-    declaration **MAY** contain the attribute "label:".
+    A VNF's Heat Orchestration Template parameter declaration **MAY**
+    contain the attribute ``label:``.
 
 description
 +++++++++++++
@@ -199,12 +211,13 @@ description
     :id: R-44001
     :target: VNF
     :keyword: MUST
+    :validation_mode: static
 
-    A VNF's Heat Orchestration Template parameter
-    declaration **MUST** contain the attribute "description".
+    A VNF's Heat Orchestration Template parameter declaration **MUST**
+    contain the attribute ``description``.
 
-Note that the parameter attribute "description:" is an OpenStack
-optional attribute that provides a description of the parameter.
+Note that the parameter attribute ``description:`` is an OpenStack optional
+attribute that provides a description of the parameter.
 ONAP implementation requires this attribute.
 
 default
@@ -215,21 +228,23 @@ default
     :id: R-90526
     :target: VNF
     :keyword: MUST
+    :validation_mode: static
 
-    A VNF Heat Orchestration Template parameter
-    declaration **MUST** not contain the default attribute.
+    A VNF Heat Orchestration Template parameter declaration **MUST NOT**
+    contain the ``default`` attribute.
 
 .. req::
     :id: R-26124
     :target: VNF
     :keyword: MUST
+    :validation_mode: static
 
-    If a VNF Heat Orchestration Template parameter
-    requires a default value, it **MUST** be enumerated in the environment file.
+    If a VNF Heat Orchestration Template parameter has a default value,
+    it **MUST** be enumerated in the environment file.
 
-Note that the parameter attribute "default:" is an OpenStack
-optional attribute that declares the default value of the
-parameter. ONAP implementation prohibits the use of this attribute.
+Note that the parameter attribute ``default:`` is an OpenStack optional
+attribute that declares the default value of the parameter.
+ONAP implementation prohibits the use of this attribute.
 
 hidden
 +++++++
@@ -240,75 +255,82 @@ hidden
     :target: VNF
     :keyword: MAY
 
-    A VNF's Heat Orchestration Template parameter
-    declaration **MAY** contain the attribute "hidden:".
+    A VNF's Heat Orchestration Template parameter declaration **MAY**
+    contain the attribute ``hidden:``.
 
-The parameter attribute "hidden:" is an OpenStack optional
-attribute that defines whether the parameters should be
-hidden when a user requests information about a stack
-created from the template. This attribute can be used
-to hide passwords specified as parameters.
+The parameter attribute ``hidden:`` is an OpenStack optional attribute that
+defines whether the parameters should be hidden when a user requests
+information about a stack created from the template.
+This attribute can be used to hide passwords specified as parameters.
 
 constraints
 ++++++++++++
 
-The parameter attribute "constraints:" is an OpenStack optional
-attribute that defines a list of constraints to apply to the parameter.
+The parameter attribute ``constraints:`` is an OpenStack optional attribute
+that defines a list of constraints to apply to the parameter.
 
 
 .. req::
     :id: R-88863
     :target: VNF
     :keyword: MUST
+    :validation_mode: static
 
-    A VNF's Heat Orchestration Template's parameter defined as
-    type "number" **MUST** have a parameter constraint of "range" or
-    "allowed_values" defined.
+    A VNF's Heat Orchestration Template's parameter defined
+    in a non-nested YAML file as type
+    ``number`` **MUST** have a parameter constraint of ``range`` or
+    ``allowed_values`` defined.
 
 .. req::
     :id: R-40518
     :target: VNF
     :keyword: MAY
 
-    A VNF's Heat Orchestration Template's parameter defined as
-    type "string" **MAY** have a parameter constraint defined.
+    A VNF's Heat Orchestration Template's parameter defined
+    in a non-nested YAML file as type
+    ``string`` **MAY** have a parameter constraint defined.
 
 .. req::
     :id: R-96227
     :target: VNF
     :keyword: MAY
 
-    A VNF's Heat Orchestration Template's parameter defined as
-    type "json" **MAY** have a parameter constraint defined.
+    A VNF's Heat Orchestration Template's parameter defined
+    in a non-nested YAML file as type
+    ``json`` **MAY** have a parameter constraint defined.
 
 .. req::
     :id: R-79817
     :target: VNF
     :keyword: MAY
 
-    A VNF's Heat Orchestration Template's parameter defined as
-    type "comma_delimited_list" **MAY** have a parameter constraint defined.
+    A VNF's Heat Orchestration Template's parameter defined
+    in a non-nested YAML file as
+    type ``comma_delimited_list`` **MAY** have a parameter constraint defined.
 
 .. req::
     :id: R-06613
     :target: VNF
     :keyword: MAY
 
-    A VNF's Heat Orchestration Template's parameter defined as
-    type "boolean" **MAY** have a parameter constraint defined.
+    A VNF's Heat Orchestration Template's parameter defined
+    in a non-nested YAML file as type
+    ``boolean`` **MAY** have a parameter constraint defined.
 
 .. req::
     :id: R-00011
     :target: VNF
     :keyword: MUST NOT
+    :validation_mode: static
 
-    A VNF's Heat Orchestration Template's Nested YAML files
-    parameter's **MUST NOT** have a parameter constraint defined.
+    A VNF's Heat Orchestration Template's parameter defined
+    in a nested YAML file
+    **MUST NOT** have a parameter constraint defined.
 
 The constraints block of a parameter definition defines additional
 validation constraints that apply to the value of the parameter.
-The parameter values provided in the VNF Heat Orchestration Template
-are validated against the constraints at instantiation time.
+The parameter values provided in the VNF Heat Orchestration Template are
+validated against the constraints at instantiation time.
 The stack creation fails if the parameter value doesn't comply to
 the constraints.
 
@@ -331,20 +353,23 @@ https://docs.openstack.org/heat/latest/template_guide/hot_spec.html .
 **<constraint definition>** provides the actual constraint.
 The syntax and constraint is dependent of the <constraint type> used.
 
-**description** is an optional attribute that provides a description of the
-constraint. The text is presented to the user when the value the user
-defines violates the constraint. If omitted, a default validation
-message is presented to the user.
+**description:** is an optional attribute that provides a description of
+the constraint. The text is presented to the user when the value the user
+defines violates the constraint. If omitted, a default validation message is
+presented to the user.
+
+
 
-Below is a brief overview of the "range" and "allowed values" constraints.
+Below is a brief overview of the ``range`` and ``allowed values`` constraints.
 For complete details on constraints, see
 https://docs.openstack.org/heat/latest/template_guide/hot_spec.html#parameter-constraints
 
+
 **range**
 
-range: The range constraint applies to parameters of type: number.
-It defines a lower and upper limit for the numeric value of the
-parameter. The syntax of the range constraint is
+``range``: The ``range`` constraint applies to parameters of ``type: number``.
+It defines a lower and upper limit for the numeric value of the parameter.
+The syntax of the ``range`` constraint is
 
 .. code-block:: yaml
 
@@ -352,16 +377,16 @@ parameter. The syntax of the range constraint is
 
 ..
 
-It is possible to define a range constraint with only a lower
-limit or an upper limit.
+It is possible to define a range constraint with only a lower limit or an
+upper limit.
 
 **allowed_values**
 
-allowed_values: The allowed_values constraint applies to parameters of
-type \"string\" or type \"number\". It specifies a set of possible
-values for a parameter. At deployment time, the user-provided value
-for the respective parameter must match one of the elements of the
-list. The syntax of the allowed_values constraint is
+``allowed_values``: The ``allowed_values`` constraint applies to parameters of
+type ``string`` or type ``number``. It specifies a set of possible values
+for a parameter. At deployment time, the user-provided value for the
+respective parameter must match one of the elements of the list.
+The syntax of the ``allowed_values`` constraint is
 
 .. code-block:: yaml
 
@@ -377,8 +402,6 @@ list. The syntax of the allowed_values constraint is
 
     - ...
 
-. .
-
 immutable
 ++++++++++++
 
@@ -389,13 +412,12 @@ immutable
     :keyword: MAY
 
     A VNF's Heat Orchestration Template parameter declaration
-    **MAY** contain the attribute "immutable:".
+    **MAY** contain the attribute ``immutable:``.
 
-The parameter attribute \"immutable:\" is an OpenStack optional
-attribute that defines whether the parameter is updatable. A Heat
-Orchestration Template stack update fails if immutable is set to
-true and the parameter value is changed.  This attribute
-\"immutable:\" defaults to false.
+The parameter attribute ``immutable`` is an OpenStack optional attribute
+that defines whether the parameter is updatable. A Heat Orchestration Template
+stack update fails if ``immutable`` is set to ``true`` and the parameter value is
+changed.  This attribute ``immutable`` defaults to ``false``.
 
 .. _resources:
 
@@ -407,25 +429,28 @@ resources
     :id: R-23664
     :target: VNF
     :keyword: MUST
+    :validation_mode: static
 
-    A VNF's Heat Orchestration template **MUST** contain
-    the section "resources:".
+    A VNF's Heat Orchestration template **MUST**
+    contain the section ``resources:``.
 
 .. req::
     :id: R-90152
     :target: VNF
     :keyword: MUST
+    :validation_mode: static
 
-    A VNF's Heat Orchestration Template's "resources:"
-    section **MUST** contain the declaration of at least one resource.
+    A VNF's Heat Orchestration Template's
+    ``resources:`` section **MUST** contain the declaration of at
+    least one resource.
 
 .. req::
     :id: R-40551
     :target: VNF
     :keyword: MAY
 
-    A VNF's Heat Orchestration Template's Nested YAML files
-    **MAY** contain the section "resources:".
+    A VNF's Heat Orchestration Template's Nested YAML files **MAY**
+    (or **MAY NOT**) contain the section ``resources:``.
 
 Each resource is defined as a
 separate block in the resources section with the following syntax.
@@ -466,6 +491,7 @@ resource ID
     :id: R-75141
     :target: VNF
     :keyword: MUST
+    :validation_mode: static
 
     A VNF's Heat Orchestration Template's resource name
     (i.e., <resource ID>) **MUST** only contain alphanumeric
@@ -475,9 +501,10 @@ resource ID
     :id: R-16447
     :target: VNF
     :keyword: MUST
+    :validation_mode: static
 
-    A VNF's <resource ID> **MUST** be unique across all
-    Heat Orchestration Templates and all HEAT Orchestration Template
+    A VNF's <resource ID> **MUST** be unique across all Heat
+    Orchestration Templates and all HEAT Orchestration Template
     Nested YAML files that are used to create the VNF.
 
 Note that a VNF can be composed of one or more Heat Orchestration Templates.
@@ -489,11 +516,10 @@ Orchestration Templates the compose the VNF.
 type
 +++++
 
-The resource attribute \"type:\" is an OpenStack required
-attribute that defines the resource type, such as
-OS::Nova::Server or OS::Neutron::Port.
+The resource attribute ``type`` is an OpenStack required attribute that
+defines the resource type, such as ``OS::Nova::Server`` or ``OS::Neutron::Port``.
 
-The resource attribute \"type:\" may specify a VNF HEAT
+The resource attribute ``type`` may specify a VNF HEAT
 Orchestration Template Nested YAML file.
 
 
@@ -501,6 +527,7 @@ Orchestration Template Nested YAML file.
     :id: R-53952
     :target: VNF
     :keyword: MUST NOT
+    :validation_mode: static
 
     A VNF's Heat Orchestration Template's Resource
     **MUST NOT** reference a HTTP-based resource definitions.
@@ -509,6 +536,7 @@ Orchestration Template Nested YAML file.
     :id: R-71699
     :target: VNF
     :keyword: MUST NOT
+    :validation_mode: static
 
     A VNF's Heat Orchestration Template's Resource
     **MUST NOT** reference a HTTP-based Nested YAML file.
@@ -516,9 +544,9 @@ Orchestration Template Nested YAML file.
 properties
 +++++++++++++
 
-The resource attribute \"properties:\" is an OpenStack optional
-attribute that provides a list of resource-specific properties.
-The property value can be provided in place, or via a function
+The resource attribute ``properties`` is an OpenStack optional attribute that
+provides a list of resource-specific properties. The property value can
+be provided in place, or via a function
 (e.g., `Intrinsic functions <https://docs.openstack.org/developer/heat/template_guide/hot_spec.html#hot-spec-intrinsic-functions>`__).
 
 
@@ -526,37 +554,33 @@ The property value can be provided in place, or via a function
     :id: R-10834
     :target: VNF
     :keyword: MUST
-    :test: no test found
-    :test_case: no test found
-    :test_file: no test found
+    :validation_mode: static
 
-    If a VNF Heat Orchestration Template resource attribute
-    "property:" uses a nested "get_param", one level of nesting is
-    supported and the nested "get_param" **MUST** reference an index.
+    If a VNF's Heat Orchestration Template resource attribute
+    ``property:`` uses a nested ``get_param``, the nested
+    ``get_param`` **MUST** reference an index.
 
 metadata
 ++++++++++
 
-The resource attribute \"metadata:\" is an OpenStack optional attribute.
+The resource attribute ``metadata`` is an OpenStack optional attribute.
 
 
 .. req::
-    :id: R-97199
+    :id: R-67386
     :target: VNF
     :keyword: MUST
+    :validation_mode: static
 
-    A VNF's Heat Orchestration Template's OS::Nova::Server
-    resource **MUST** contain the attribute "metadata".
+    A VNF's Heat Orchestration Template's Resource **MAY** declare the
+    attribute ``metadata``.
 
-Section 5.4 contains the OS::Nova::Server mandatory and optional metadata.
 
 depends_on
 +++++++++++
 
-The resource attribute \"depends_on:\" is an OpenStack optional
-attribute.
-See `OpenStack documentation <https://docs.openstack.org/developer/heat/template_guide/hot_spec.html#hot-spec-resources-dependencies>`__
-for additional details.
+The resource attribute ``depends_on`` is an OpenStack optional attribute.
+See `Section <https://docs.openstack.org/developer/heat/template_guide/hot_spec.html#hot-spec-resources-dependencies>`__ 9.7 for additional details.
 
 
 .. req::
@@ -564,8 +588,8 @@ for additional details.
     :target: VNF
     :keyword: MAY
 
-    VNF's Heat Orchestration Template's Resource **MAY**
-    declare the attribute "depends_on:".
+    VNF's Heat Orchestration Template's Resource **MAY** declare the
+    attribute ``depends_on:``.
 
 update_policy
 ++++++++++++++
@@ -576,8 +600,8 @@ update_policy
     :target: VNF
     :keyword: MAY
 
-    VNF's Heat Orchestration Template's Resource **MAY**
-    declare the attribute "update_policy:".
+    VNF's Heat Orchestration Template's Resource **MAY** declare the
+    attribute ``update_policy:``.
 
 deletion_policy
 +++++++++++++++++++
@@ -588,13 +612,13 @@ deletion_policy
     :target: VNF
     :keyword: MAY
 
-    A VNF's Heat Orchestration Template's Resource
-    **MAY** declare the attribute "deletion_policy:".
+    VNF's Heat Orchestration Template's Resource **MAY** declare the
+    attribute ``deletion_policy:``.
 
-If specified, the \"deletion_policy:\" attribute for resources
-allows values 'Delete', 'Retain', and 'Snapshot'.
-Starting with heat_template_version 2016-10-14, lowercase
-equivalents are also allowed.
+If specified, the ``deletion_policy`` attribute for resources allows
+values ``Delete``, ``Retain``, and ``Snapshot``.
+Starting with heat_template_version 2016-10-14,
+lowercase equivalents are also allowed.
 
 The default policy is to delete the physical resource when
 deleting a resource from the stack.
@@ -608,26 +632,22 @@ external_id
     :target: VNF
     :keyword: MAY
 
-    A VNF's Heat Orchestration Template's Resouce **MAY**
-    declare the attribute "external_id:".
+    VNF's Heat Orchestration Template's Resource **MAY** declare the
+    attribute ``external_id:``.
 
-This attribute allows for specifying the resource_id for an
-existing external (to the stack) resource. External resources
-cannot depend on other resources, but we allow other resources to
-depend on external resource. This attribute is optional.
-Note: when this is specified, properties will not be used for
-building the resource and the resource is not managed by Heat.
-This is not possible to update that attribute. Also,
-resource won't be deleted by heat when stack is deleted.
+This attribute allows for specifying the resource_id for an existing external
+(to the stack) resource. External resources cannot depend on other resources,
+but we allow other resources to depend on external resource. This attribute
+is optional. Note: when this is specified, properties will not be used for
+building the resource and the resource is not managed by Heat. This is not
+possible to update that attribute. Also, resource won't be deleted by
+heat when stack is deleted.
 
 
 condition
 +++++++++++
 
-The resource attribute \"condition:\" is an OpenStack optional attribute.
-
-Support for the resource condition attribute was added
-in the Newton release of OpenStack.
+The resource attribute ``condition`` is an OpenStack optional attribute.
 
 outputs
 ~~~~~~~~~
@@ -638,8 +658,8 @@ outputs
     :target: VNF
     :keyword: MAY
 
-    A VNF's Heat Orchestration template **MAY**
-    contain the "outputs:" section.
+    A VNF's Heat Orchestration template **MAY** contain the ``outputs:``
+    section.
 
 This section allows for specifying output parameters
 available to users once the template has been instantiated. If the
@@ -650,7 +670,7 @@ See :ref:`Output Parameters` and
 Environment File Format
 ^^^^^^^^^^^^^^^^^^^^^^^^^^
 
-The environment file is a yaml text file.
+A VNF's Heat Orchestration Template's environment file is a yaml text file.
 (https://docs.openstack.org/developer/heat/template_guide/environment.html)
 
 
@@ -658,21 +678,25 @@ The environment file is a yaml text file.
     :id: R-86285
     :target: VNF
     :keyword: MUST
+    :validation_mode: static
 
-    The VNF Heat Orchestration Template **MUST** have a corresponding
-    environment file, even if no parameters are required to be enumerated.
+    A VNF's Heat Orchestration template **MUST** have a
+    corresponding environment file.
 
-The use of an environment file in OpenStack is optional.
-In ONAP, it is mandatory.
+The use of an environment file in OpenStack is optional. In ONAP, it is
+mandatory. A Heat Orchestration Template uploaded to ONAP must have a
+corresponding environment file, even if no parameters are enumerated in
+the mandatory parameter section.
 
 
 .. req::
     :id: R-03324
     :target: VNF
     :keyword: MUST
+    :validation_mode: static
 
-    The VNF Heat Orchestration Template **MUST** contain the
-    "parameters" section in the environment file.
+    A VNF's Heat Orchestration template's Environment File **MUST**
+    contain the ``parameters:`` section.
 
 .. req::
     :id: R-68198
@@ -680,11 +704,11 @@ In ONAP, it is mandatory.
     :keyword: MAY
 
     A VNF's Heat Orchestration template's Environment File's
-    "parameters:" section **MAY** enumerate parameters.
+    ``parameters:`` section **MAY** (or **MAY NOT**) enumerate parameters.
 
-ONAP implementation requires the parameters section in the
-environmental file to be declared. The parameters section
-contains a list of key/value pairs.
+ONAP implementation requires the parameters section in the environmental
+file to be declared.  The parameters section contains a list of key/value
+pairs.
 
 
 .. req::
@@ -692,11 +716,11 @@ contains a list of key/value pairs.
     :target: VNF
     :keyword: MAY
 
-    A VNF's Heat Orchestration template's Environment
-    File's **MAY** contain the "parameter_defaults:" section.
+    A VNF's Heat Orchestration template's Environment File's
+    **MAY** contain the ``parameter_defaults:`` section.
 
-The "parameter_defaults:" section contains default parameters
-that are passed to all template resources.
+The ``parameter_defaults:`` section contains default parameters that are
+passed to all template resources.
 
 
 .. req::
@@ -705,9 +729,9 @@ that are passed to all template resources.
     :keyword: MAY
 
     A VNF's Heat Orchestration template's Environment File's
-    **MAY** contain the "encrypted_parameters:" section.
+    **MAY** contain the ``encrypted_parameters:`` section.
 
-The "encrypted_parameters:" section contains a list of encrypted parameters.
+The ``encrypted_parameters:`` section contains a list of encrypted parameters.
 
 
 .. req::
@@ -716,10 +740,10 @@ The "encrypted_parameters:" section contains a list of encrypted parameters.
     :keyword: MAY
 
     A VNF's Heat Orchestration template's Environment File's
-    **MAY** contain the "event_sinks:" section.
+    **MAY** contain the ``event_sinks:`` section.
 
-The "event_sinks:" section contains the list of endpoints that would
-receive stack events.
+The ``event_sinks:`` section contains the list of endpoints that would receive
+stack events.
 
 
 .. req::
@@ -728,23 +752,24 @@ receive stack events.
     :keyword: MAY
 
     A VNF's Heat Orchestration template's Environment File's
-    **MAY** contain the "parameter_merge_strategies:" section.
+    **MAY** contain the ``parameter_merge_strategies:`` section.
 
-The "parameter_merge_strategies:" section provides the merge strategies
-for merging parameters and parameter defaults from the environment file.
+The ``parameter_merge_strategies:`` section provides the merge strategies for
+merging parameters and parameter defaults from the environment file.
 
 
 .. req::
     :id: R-67231
     :target: VNF
     :keyword: MUST NOT
+    :validation_mode: static
 
-    A VNF's Heat Orchestration template's Environment File's **MUST NOT**
-    contain the "resource_registry:" section.
+    A VNF's Heat Orchestration template's Environment File's
+    **MUST NOT** contain the ``resource_registry:`` section.
 
-ONAP implementation does not support the Environment File
-resource_registry section. The resource_registry section
-allows for the definition of custom resources.
+ONAP implementation does not support the Environment File resource_registry
+section.  The resource_registry section allows for the definition of custom
+resources.
 
 SDC Treatment of Environment Files
 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
index fd4f76a..f8f0425 100644 (file)
@@ -22,9 +22,9 @@ ONAP VNF Modularity Overview
     A VNF **MAY** be composed from one or more Heat Orchestration
     Templates, each of which represents a subset of the overall VNF.
 
-The Heat Orchestration Templates can be thought of a components or
-modules of the VNF and are referred to as "\ *VNF Modules*\ ".
-During orchestration, these modules are
+The Heat Orchestration Templates can be thought of a components or modules of
+the VNF and are referred to as *VNF Modules*. During orchestration,
+these modules are
 deployed incrementally to create the complete VNF.
 
 
@@ -34,22 +34,19 @@ deployed incrementally to create the complete VNF.
     :keyword: MAY
 
     A VNF's Heat Orchestration Template **MAY** be
-
-       * a Base Module Heat Orchestration Template
-         (also referred to as a Base Module)
-
-       * an Incremental Module Heat Orchestration Template
-         (referred to as an Incremental Module)
-
-       * a Cinder Volume Module Heat Orchestration Template
-         (referred to as Cinder Volume Module).
+     1.) Base Module Heat Orchestration Template (also referred to as a
+         Base Module),
+     2.) Incremental Module Heat Orchestration Template (referred to as
+         an Incremental Module), or
+     3.) a Cinder Volume Module Heat Orchestration Template (referred to as
+         Cinder Volume  Module).
 
 .. req::
     :id: R-37028
     :target: VNF
     :keyword: MUST
 
-    The VNF **MUST** be composed of one "base" module.
+    A VNF **MUST** be composed of one Base Module
 
 .. req::
     :id: R-13196
@@ -63,16 +60,15 @@ deployed incrementally to create the complete VNF.
     :target: VNF
     :keyword: MUST
 
-    The VNF **MUST** deploy the base module first, prior to
-    the incremental modules.
+    At orchestration time, the VNF's Base Module **MUST**
+    be deployed first, prior to any incremental modules.
 
 .. req::
     :id: R-28980
     :target: VNF
     :keyword: MAY
 
-    A VNF's incremental module **MAY** be used for initial VNF
-    deployment only.
+    A VNF's incremental module **MAY** be used for initial VNF deployment only.
 
 .. req::
     :id: R-86926
@@ -81,8 +77,8 @@ deployed incrementally to create the complete VNF.
 
     A VNF's incremental module **MAY** be used for scale out only.
 
-A VNF's Incremental Module that is used for scale out is deployed
-sometime after initial VNF deployment to add capacity.
+A VNF's Incremental Module that is used for scale out is deployed sometime
+after initial VNF deployment to add capacity.
 
 
 .. req::
@@ -90,8 +86,8 @@ sometime after initial VNF deployment to add capacity.
     :target: VNF
     :keyword: MAY
 
-    A VNF's incremental module **MAY** be used for both deployment
-    and scale out.
+    A VNF's incremental module **MAY** be used for both deployment and
+    scale out.
 
 .. req::
     :id: R-68122
@@ -135,9 +131,10 @@ on another instance (e.g., during a failover activity).
     :id: R-11200
     :target: VNF
     :keyword: MUST
+    :validation_mode: static
 
-    The VNF **MUST** keep the scope of a Cinder volume module,
-    when it exists, to be 1:1 with the VNF Base Module or Incremental Module.
+    A VNF's Cinder Volume Module, when it exists, **MUST** be 1:1
+    with a Base module or Incremental module.
 
 It is strongly recommended that Cinder Volumes be created in a Cinder Volume
 Module.
@@ -146,6 +143,7 @@ Module.
     :id: R-38474
     :target: VNF
     :keyword: MUST
+    :validation_mode: static
 
     The VNF **MUST** have a corresponding environment file for a Base Module.
 
@@ -153,15 +151,17 @@ Module.
     :id: R-81725
     :target: VNF
     :keyword: MUST
+    :validation_mode: static
 
-    The VNF **MUST** have a corresponding environment file for an Incremental Module.
+    A VNF's Incremental Module **MUST** have a corresponding Environment File
 
 .. req::
     :id: R-53433
     :target: VNF
     :keyword: MUST
+    :validation_mode: static
 
-    The VNF **MUST** have a corresponding environment file for a Cinder Volume Module.
+    A VNF's Cinder Volume Module **MUST** have a corresponding environment file
 
 These concepts will be described in more detail throughout the document.
 This overview is provided to set the stage and help clarify the concepts
@@ -219,101 +219,108 @@ must not contain any special characters and must not contain the word
     :id: R-87485
     :target: VNF
     :keyword: MUST
+    :validation_mode: static
 
     A VNF's Heat Orchestration Template's file extension **MUST**
-    be in the lower case format '.yaml' or '.yml'.
+    be in the lower case format ``.yaml`` or ``.yml``.
 
 .. req::
     :id: R-56438
     :target: VNF
     :keyword: MUST
+    :validation_mode: static
 
-    A VNF's Heat Orchestration Template's Nested YAML file extension
-    **MUST** be in the lower case format '.yaml' or '.yml'.
+    A VNF's Heat Orchestration Template's Nested YAML file extension **MUST**
+    be in the lower case format ``.yaml`` or ``.yml``.
 
 .. req::
     :id: R-74304
     :target: VNF
     :keyword: MUST
+    :validation_mode: static
 
-    A VNF's Heat Orchestration Template's Environment file extension
-    **MUST** be in the lower case format '.env'.
+    A VNF's Heat Orchestration Template's Environment file extension **MUST**
+    be in the lower case format ``.env``.
 
 .. req::
     :id: R-99646
     :target: VNF
     :keyword: MUST
-    :test: no test found
-    :test_case: no test found
-    :test_file: no test found
+    :validation_mode: static
 
     A VNF's YAML files (i.e, Heat Orchestration Template files and
     Nested files) **MUST** have a unique name in the scope of the VNF.
 
 Base Modules
-~~~~~~~~~~~~~~
+~~~~~~~~~~~~
 
 
 .. req::
     :id: R-81339
     :target: VNF
     :keyword: MUST
+    :validation_mode: static
 
-    A VNF Heat Orchestration Template's Base Module file name **MUST**
-    include 'base' in the filename and **MUST** match one of the following four
+    A VNF Heat Orchestration Template's Base Module file name **MUST** include
+    case insensitive 'base' in the filename and
+    **MUST** match one of the following four
     formats:
 
-       * 'base_<text>.y[a]ml'
-       * '<text>_base.y[a]ml'
-       * 'base.y[a]ml'
-       * '<text>_base_<text>'.y[a]ml
+     1.) ``base_<text>.y[a]ml``
+
+     2.) ``<text>_base.y[a]ml``
+
+     3.) ``base.y[a]ml``
+
+     4.) ``<text>_base_<text>``.y[a]ml
 
-    where 'base' is case insensitive and where '<text>'
-    **MUST** contain only alphanumeric characters
-    and underscores '_' and **MUST NOT** contain the case
-    insensitive word 'base'.
+    where ``<text>`` **MUST** contain only alphanumeric characters and
+    underscores '_' and **MUST NOT** contain the case insensitive word ``base``.
 
 .. req::
     :id: R-91342
     :target: VNF
     :keyword: MUST
+    :validation_mode: static
 
     A VNF Heat Orchestration Template's Base Module's Environment File
-    **MUST** be named identical to the VNF Heat Orchestration Template's Base
-    Module with '.y[a]ml' replaced with '.env'.
+    **MUST** be named identical to the VNF Heat Orchestration Template's
+    Base Module with ``.y[a]ml`` replaced with ``.env``.
 
 Incremental Modules
-~~~~~~~~~~~~~~~~~~~~~
+~~~~~~~~~~~~~~~~~~~
 
 
 .. req::
     :id: R-87247
     :target: VNF
     :keyword: MUST
+    :validation_mode: static
 
-    VNF Heat Orchestration Template's Incremental Module file name
-    **MUST** contain only alphanumeric characters and underscores '_' and
-    **MUST NOT** contain the case insensitive word 'base'.
+    VNF Heat Orchestration Template's Incremental Module file name
+    **MUST** contain only alphanumeric characters and underscores
+    '_' and **MUST NOT** contain the case insensitive word ``base``.
 
 .. req::
     :id: R-94509
     :target: VNF
     :keyword: MUST
+    :validation_mode: static
 
-    A VNF Heat Orchestration Template's Incremental Module's Environment
-    File **MUST** be named identical to the VNF Heat Orchestration Template's
-    Incremental Module with '.y[a]ml' replaced with '.env'.
+    A VNF Heat Orchestration Template's Incremental Module's Environment File
+    **MUST** be named identical to the VNF Heat Orchestration Template's
+    Incremental Module with ``.y[a]ml`` replaced with ``.env``.
 
 To clearly identify the incremental module, it is recommended to use the
 following naming options for modules:
 
- -  module_<text>.y[a]ml
+ -  ``module_<text>.y[a]ml``
 
- -  <text>_module.y[a]ml
+ -  ``<text>_module.y[a]ml``
 
- -  module.y[a]ml
+ -  ``module.y[a]ml``
 
- -  <text>_module_<text>.y[a]ml
+ -  ``<text>_module_<text>.y[a]ml``
 
 Cinder Volume Modules
 ~~~~~~~~~~~~~~~~~~~~~
@@ -323,56 +330,57 @@ Cinder Volume Modules
     :id: R-82732
     :target: VNF
     :keyword: MUST
+    :validation_mode: static
 
-    A VNF Heat Orchestration Template's Cinder Volume Module **MUST** be
-    named identical to the base or incremental module it is supporting with
-    '_volume appended'
+    A VNF Heat Orchestration Template's Cinder Volume Module **MUST**
+    be named identical to the base or incremental module it is supporting with
+    ``_volume`` appended.
 
 .. req::
     :id: R-31141
     :target: VNF
     :keyword: MUST
+    :validation_mode: static
 
-    A VNF Heat Orchestration Template's Cinder Volume Module's Environment
-    File **MUST** be named identical to the VNF Heat Orchestration Template's
-    Cinder Volume Module with .y[a]ml replaced with '.env'.
+    VNF Heat Orchestration Template's Cinder Volume Module's Environment File
+    **MUST** be named identical to the VNF Heat Orchestration Template's
+    Cinder Volume Module with ``.y[a]ml`` replaced with ``.env``.
 
 Nested Heat file
-~~~~~~~~~~~~~~~~~~~~~
+~~~~~~~~~~~~~~~~
 
 
 .. req::
     :id: R-76057
     :target: VNF
     :keyword: MUST
+    :validation_mode: static
 
-    A VNF Heat Orchestration Template's Nested YAML file name **MUST**
-    contain only alphanumeric characters and underscores '_' and **MUST NOT**
-    contain the case insensitive word 'base'.
+    VNF Heat Orchestration Template's Nested YAML file name **MUST** contain
+    only alphanumeric characters and underscores '_' and
+    **MUST NOT** contain the case insensitive word ``base``.
 
 .. req::
     :id: R-70276
     :target: VNF
     :keyword: MUST NOT
-    :test: no test found
-    :test_case: no test found
-    :test_file: no test found
+    :validation_mode: static
 
-    A VNF HEAT's Orchestration Nested Template's YAML file
-    name **MUST NOT** be in the format '{vm-type}.y[a]ml' where
-    '{vm-type}' is defined in the Heat Orchestration Template.
+    A VNF HEAT's Orchestration Nested Template's YAML file name **MUST NOT**
+    be in the format ``{vm-type}.y[a]ml`` where ``{vm-type}`` is defined
+    in the Heat Orchestration Template.
 
 Examples include
 
- -  <text>.y[a]ml
+ -  ``<text>.y[a]ml``
 
- -  nest_<text>.y[a]ml
+ -  ``nest_<text>.y[a]ml``
 
- -  <text>_nest.y[a]ml
+ -  ``<text>_nest.y[a]ml``
 
- -  nest.y[a]ml
+ -  ``nest.y[a]ml``
 
- -  <text>_nest_<text>.y[a]ml
+ -  ``<text>_nest_<text>.y[a]ml``
 
 VNF Heat Orchestration Template's Nested YAML file does not have a
 corresponding environment files, per OpenStack specifications.
@@ -395,57 +403,62 @@ into three categories:
 ONAP Base Module Output Parameters
 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 
-ONAP Base Module Output Parameters are declared in the 'outputs:'' section of
-the VNF's Heat Orchestration Template's Base Module. A Base Module Output
-Parameter is available as an input parameter (i.e., declared in the
-'parameters:'' section) to all Incremental Modules in the VNF.
+ONAP Base Module Output Parameters are declared in the ``outputs:`` section
+of the VNF's Heat Orchestration Template's Base Module. A Base Module Output
+Parameter is available as an input parameter (i.e., declared in
+the ``parameters:`` section) to all Incremental Modules in the VNF.
 
 A Base Module Output Parameter may be used as an input parameter in any
-incremental module in the VNF.  Note that the parameter is not
-available to other VNFs.
+incremental module in the VNF.  Note that the parameter is not available to
+other VNFs.
 
 
 .. req::
     :id: R-52753
     :target: VNF
     :keyword: MUST
+    :validation_mode: static
 
     VNF's Heat Orchestration Template's Base Module's output parameter's
     name and type **MUST** match the VNF's Heat Orchestration Template's
-    incremental Module's name and type unless the output parameter is of type
-    'comma_delimited_list', then the corresponding input parameter **MUST**
-    be declared as type 'json'.
+    incremental Module's name and type unless the output parameter is of
+    type ``comma_delimited_list``, then the corresponding input parameter
+    **MUST** be declared as type ``json``.
 
 If the Output parameter has a comma_delimited_list value (e.g., a collection
-of UUIDs from a Resource Group), then the corresponding input parameter
-must be declared as type json and not a comma_delimited_list, which is
-actually a string value with embedded commas.
+of UUIDs from a Resource Group), then the corresponding input parameter must
+be declared as type ``json`` and not a ``comma_delimited_list``,
+which is actually a string value with embedded commas.
 
 
 .. req::
     :id: R-22608
     :target: VNF
     :keyword: MUST NOT
+    :validation_mode: static
 
     When a VNF's Heat Orchestration Template's Base Module's output
     parameter is declared as an input parameter in an Incremental Module,
-    the parameter attribute 'constraints:' **MUST NOT** be declared.
+    the parameter attribute ``constraints:`` **MUST NOT** be declared.
 
 Additional details on ONAP Base Module Output Parameters are provided in
 :ref:`ONAP Output Parameter Names` and ONAP VNF Modularity.
 
 ONAP Volume Module Output Parameters
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 
 
 .. req::
     :id: R-89913
     :target: VNF
     :keyword: MUST
+    :validation_mode: static
 
     A VNF's Heat Orchestration Template's Cinder Volume Module Output
-    Parameter(s) **MUST** include the UUID(s) of the Cinder Volumes created in
-    template, while other Output Parameters **MAY** be included.
+    Parameter(s)
+    **MUST** include the
+    UUID(s) of the Cinder Volumes created in template,
+    while others **MAY** be included.
 
 A VNF's Heat Orchestration Template's Cinder Volume Module Output Parameter(s)
 are only available for the module (base or incremental) that the volume
@@ -456,27 +469,29 @@ template is associated with.
     :id: R-07443
     :target: VNF
     :keyword: MUST
+    :validation_mode: static
 
     A VNF's Heat Orchestration Templates' Cinder Volume Module Output
     Parameter's name and type **MUST** match the input parameter name and type
     in the corresponding Base Module or Incremental Module unless the Output
-    Parameter is of the type 'comma_delimited_list', then the corresponding input
-    parameter **MUST** be declared as type 'json'.
+    Parameter is of the type ``comma_delimited_list``, then the corresponding
+    input parameter **MUST** be declared as type ``json``.
 
 If the Output parameter has a comma_delimited_list value (e.g., a collection
 of UUIDs from a Resource Group), then the corresponding input parameter must
-be declared as type json and not a comma_delimited_list, which is actually a
-string value with embedded commas.
+be declared as type json and not a comma_delimited_list, which is actually
+string value with embedded commas.
 
 
 .. req::
     :id: R-20547
     :target: VNF
     :keyword: MUST NOT
+    :validation_mode: static
 
     When an ONAP Volume Module Output Parameter is declared as an input
-    parameter in a base or an incremental module Heat Orchestration Template,
-    parameter constraints **MUST NOT** be declared.
+    parameter in a base or an incremental module Heat Orchestration
+    Template, parameter constraints **MUST NOT** be declared.
 
 Additional details on ONAP Base Module Output Parameters are provided in
 :ref:`ONAP Output Parameter Names` and :ref:`ONAP Heat Cinder Volumes`.
@@ -501,18 +516,22 @@ ONAP does not support the use of heat stack-update command for scaling
     :id: R-39349
     :target: VNF
     :keyword: MUST NOT
+    :validation_mode: static
 
-    A VNF Heat Orchestration Template **MUST NOT** be designed to
-    utilize the OpenStack 'heat stack-update' command for scaling
-    (growth/de-growth).
+    A VNF Heat Orchestration Template **MUST NOT** be designed to utilize the
+    OpenStack ``heat stack-update`` command for scaling (growth/de-growth).
 
 .. req::
     :id: R-43413
     :target: VNF
     :keyword: MUST
+    :validation_mode: static
+
+    A VNF **MUST** utilize a modular Heat Orchestration Template design to
+    support scaling (growth/de-growth).
 
-    A VNF **MUST** utilize a modular Heat Orchestration Template
-    design to support scaling (growth/de-growth).
+It is important to note that ONAP only supports heat stack-update for
+image upgrades.
 
 Scope of a Heat Orchestration Template
 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
@@ -522,9 +541,10 @@ Scope of a Heat Orchestration Template
     :id: R-59482
     :target: VNF
     :keyword: MUST NOT
+    :validation_mode: static
 
     A VNF's Heat Orchestration Template **MUST NOT** be VNF instance
-    specific or Cloud site specific.
+    specific or cloud site specific.
 
 ONAP provides the instance specific parameter values to the Heat
 Orchestration Template at orchestration time.
@@ -534,9 +554,10 @@ Orchestration Template at orchestration time.
     :id: R-01896
     :target: VNF
     :keyword: MUST
+    :validation_mode: static
 
-    A VNF's Heat Orchestration Template's parameter values that are
-    constant across all deployments **MUST** be declared in a Heat Orchestration
+    A VNF's Heat Orchestration Template's parameter values that are constant
+    across all deployments **MUST** be declared in a Heat Orchestration
     Template Environment File.
 
 
index 6c5575e..5dec207 100644 (file)
@@ -1,5 +1,5 @@
 {
-    "created": "2018-09-10T21:34:50.919181",
+    "created": "2018-09-11T09:20:30.974204",
     "current_version": "casablanca",
     "project": "",
     "versions": {
             "needs_amount": 750
         },
         "casablanca": {
-            "created": "2018-09-10T21:34:50.919089",
+            "created": "2018-09-11T09:20:30.974191",
             "needs": {
                 "R-00011": {
-                    "description": "A VNF's Heat Orchestration Template's Nested YAML files\nparameter's **MUST NOT** have a parameter constraint defined.",
+                    "description": "A VNF's Heat Orchestration Template's parameter defined\nin a nested YAML file\n**MUST NOT** have a parameter constraint defined.",
                     "full_title": "",
                     "hide_links": "",
                     "id": "R-00011",
                     "type_name": "Requirement",
                     "updated": "",
                     "validated_by": "",
-                    "validation_mode": ""
+                    "validation_mode": "static"
                 },
                 "R-00068": {
                     "description": "The xNF Package **MUST** include documentation which includes\na description of parameters that can be monitored for the xNF\nand event records (status, fault, flow, session, call, control\nplane, etc.) generated by the xNF after instantiation.",
                     "validation_mode": ""
                 },
                 "R-01896": {
-                    "description": "A VNF's Heat Orchestration Template's parameter values that are\nconstant across all deployments **MUST** be declared in a Heat Orchestration\nTemplate Environment File.",
+                    "description": "A VNF's Heat Orchestration Template's parameter values that are constant\nacross all deployments **MUST** be declared in a Heat Orchestration\nTemplate Environment File.",
                     "full_title": "",
                     "hide_links": "",
                     "id": "R-01896",
                     "type_name": "Requirement",
                     "updated": "",
                     "validated_by": "",
-                    "validation_mode": ""
+                    "validation_mode": "static"
                 },
                 "R-02164": {
                     "description": "When a VNF's Heat Orchestration Template's Contrail resource\nhas a property that\nreferences an external network that requires the network's\nFully Qualified Domain Name (FQDN), the property parameter\n\n   * **MUST** follow the format '{network-role}_net_fqdn'\n   * **MUST** be declared as type 'string'\n   * **MUST NOT** be enumerated in the NF's Heat Orchestration Template's\n     Environment File",
                     "validation_mode": ""
                 },
                 "R-03324": {
-                    "description": "The VNF Heat Orchestration Template **MUST** contain the\n\"parameters\" section in the environment file.",
+                    "description": "A VNF's Heat Orchestration template's Environment File **MUST**\ncontain the ``parameters:`` section.",
                     "full_title": "",
                     "hide_links": "",
                     "id": "R-03324",
                     "type_name": "Requirement",
                     "updated": "",
                     "validated_by": "",
-                    "validation_mode": ""
+                    "validation_mode": "static"
                 },
                 "R-03465": {
                     "description": "The xNF **MUST** release locks to prevent permanent lock-outs\nwhen the corresponding <partial-unlock> operation succeeds.",
                     "validation_mode": ""
                 },
                 "R-06613": {
-                    "description": "A VNF's Heat Orchestration Template's parameter defined as\ntype \"boolean\" **MAY** have a parameter constraint defined.",
+                    "description": "A VNF's Heat Orchestration Template's parameter defined\nin a non-nested YAML file as type\n``boolean`` **MAY** have a parameter constraint defined.",
                     "full_title": "",
                     "hide_links": "",
                     "id": "R-06613",
                     "validation_mode": ""
                 },
                 "R-07443": {
-                    "description": "A VNF's Heat Orchestration Templates' Cinder Volume Module Output\nParameter's name and type **MUST** match the input parameter name and type\nin the corresponding Base Module or Incremental Module unless the Output\nParameter is of the type 'comma_delimited_list', then the corresponding input\nparameter **MUST** be declared as type 'json'.",
+                    "description": "A VNF's Heat Orchestration Templates' Cinder Volume Module Output\nParameter's name and type **MUST** match the input parameter name and type\nin the corresponding Base Module or Incremental Module unless the Output\nParameter is of the type ``comma_delimited_list``, then the corresponding\ninput parameter **MUST** be declared as type ``json``.",
                     "full_title": "",
                     "hide_links": "",
                     "id": "R-07443",
                     "type_name": "Requirement",
                     "updated": "",
                     "validated_by": "",
-                    "validation_mode": ""
+                    "validation_mode": "static"
                 },
                 "R-07507": {
                     "description": "A VNF's Heat Orchestration Template's OS::Nova::Server\nResource metadata map value parameter 'vnf_id' **MUST** be declared\nas type: 'string'.",
                     "validation_mode": ""
                 },
                 "R-10834": {
-                    "description": "If a VNF Heat Orchestration Template resource attribute\n\"property:\" uses a nested \"get_param\", one level of nesting is\nsupported and the nested \"get_param\" **MUST** reference an index.",
+                    "description": "If a VNF's Heat Orchestration Template resource attribute\n``property:`` uses a nested ``get_param``, the nested\n``get_param`` **MUST** reference an index.",
                     "full_title": "",
                     "hide_links": "",
                     "id": "R-10834",
                     "status": null,
                     "tags": [],
                     "target": "VNF",
-                    "test": "no test found",
-                    "test_case": "no test found",
-                    "test_file": "no test found",
+                    "test": "",
+                    "test_case": "",
+                    "test_file": "",
                     "title": "",
                     "title_from_content": "",
                     "type_name": "Requirement",
                     "updated": "",
                     "validated_by": "",
-                    "validation_mode": ""
+                    "validation_mode": "static"
                 },
                 "R-11041": {
                     "description": "All parameters defined in a VNFs Nested YAML file\n**MUST** be passed in as properties of the resource calling\nthe nested yaml file.",
                     "validation_mode": ""
                 },
                 "R-11200": {
-                    "description": "The VNF **MUST** keep the scope of a Cinder volume module,\nwhen it exists, to be 1:1 with the VNF Base Module or Incremental Module.",
+                    "description": "A VNF's Cinder Volume Module, when it exists, **MUST** be 1:1\nwith a Base module or Incremental module.",
                     "full_title": "",
                     "hide_links": "",
                     "id": "R-11200",
                     "type_name": "Requirement",
                     "updated": "",
                     "validated_by": "",
-                    "validation_mode": ""
+                    "validation_mode": "static"
                 },
                 "R-11235": {
                     "description": "The xNF **MUST** implement the protocol operation:\n**kill-session(session)** - Force the termination of **session**.",
                     "validation_mode": ""
                 },
                 "R-11441": {
-                    "description": "A VNF's Heat Orchestration Template's parameter\ntype **MUST** be one of the following values: \"string\",\n\"number\", \"json\", \"comma_delimited_list\" or \"boolean\".",
+                    "description": "A VNF's Heat Orchestration Template's parameter type **MUST** be one of\nthe following values:\n\n* ``string``\n* ``number``\n* ``json``\n* ``comma_delimited_list``\n* ``boolean``",
                     "full_title": "",
                     "hide_links": "",
                     "id": "R-11441",
                     "type_name": "Requirement",
                     "updated": "",
                     "validated_by": "",
-                    "validation_mode": ""
+                    "validation_mode": "static"
                 },
                 "R-11499": {
                     "description": "The xNF **MUST** fully support the XPath 1.0 specification\nfor filtered retrieval of configuration and other database contents.\nThe 'type' attribute within the <filter> parameter for <get> and\n<get-config> operations may be set to 'xpath'. The 'select' attribute\n(which contains the XPath expression) will also be supported by the\nserver. A server may support partial XPath retrieval filtering, but\nit cannot advertise the **:xpath** capability unless the entire XPath\n1.0 specification is supported.",
                     "validation_mode": ""
                 },
                 "R-16447": {
-                    "description": "A VNF's <resource ID> **MUST** be unique across all\nHeat Orchestration Templates and all HEAT Orchestration Template\nNested YAML files that are used to create the VNF.",
+                    "description": "A VNF's <resource ID> **MUST** be unique across all Heat\nOrchestration Templates and all HEAT Orchestration Template\nNested YAML files that are used to create the VNF.",
                     "full_title": "",
                     "hide_links": "",
                     "id": "R-16447",
                     "type_name": "Requirement",
                     "updated": "",
                     "validated_by": "",
-                    "validation_mode": ""
+                    "validation_mode": "static"
                 },
                 "R-16496": {
                     "description": "The VNF **MUST** enable instantiating only the functionality that\nis needed for the decomposed VNF (e.g., if transcoding is not needed it\nshould not be instantiated).",
                     "validation_mode": ""
                 },
                 "R-20547": {
-                    "description": "When an ONAP Volume Module Output Parameter is declared as an input\nparameter in a base or an incremental module Heat Orchestration Template,\nparameter constraints **MUST NOT** be declared.",
+                    "description": "When an ONAP Volume Module Output Parameter is declared as an input\nparameter in a base or an incremental module Heat Orchestration\nTemplate, parameter constraints **MUST NOT** be declared.",
                     "full_title": "",
                     "hide_links": "",
                     "id": "R-20547",
                     "type_name": "Requirement",
                     "updated": "",
                     "validated_by": "",
-                    "validation_mode": ""
+                    "validation_mode": "static"
                 },
                 "R-20741": {
                     "description": "The xNF **MUST** support ONAP Controller's **Configure** command.",
                     "validation_mode": ""
                 },
                 "R-20974": {
-                    "description": "The VNF **MUST** deploy the base module first, prior to\nthe incremental modules.",
+                    "description": "At orchestration time, the VNF's Base Module **MUST**\nbe deployed first, prior to any incremental modules.",
                     "full_title": "",
                     "hide_links": "",
                     "id": "R-20974",
                     "validation_mode": ""
                 },
                 "R-22589": {
-                    "description": "A VNF's Heat Orchestration Template parameter declaration\n**MAY** contain the attribute \"immutable:\".",
+                    "description": "A VNF's Heat Orchestration Template parameter declaration\n**MAY** contain the attribute ``immutable:``.",
                     "full_title": "",
                     "hide_links": "",
                     "id": "R-22589",
                     "validation_mode": ""
                 },
                 "R-22608": {
-                    "description": "When a VNF's Heat Orchestration Template's Base Module's output\nparameter is declared as an input parameter in an Incremental Module,\nthe parameter attribute 'constraints:' **MUST NOT** be declared.",
+                    "description": "When a VNF's Heat Orchestration Template's Base Module's output\nparameter is declared as an input parameter in an Incremental Module,\nthe parameter attribute ``constraints:`` **MUST NOT** be declared.",
                     "full_title": "",
                     "hide_links": "",
                     "id": "R-22608",
                     "type_name": "Requirement",
                     "updated": "",
                     "validated_by": "",
-                    "validation_mode": ""
+                    "validation_mode": "static"
                 },
                 "R-22656": {
                     "description": "The VNF Heat Orchestration Template **MUST** have a\ncorresponding environment file for a Cinder Volume Module.",
                     "validation_mode": ""
                 },
                 "R-23664": {
-                    "description": "A VNF's Heat Orchestration template **MUST** contain\nthe section \"resources:\".",
+                    "description": "A VNF's Heat Orchestration template **MUST**\ncontain the section ``resources:``.",
                     "full_title": "",
                     "hide_links": "",
                     "id": "R-23664",
                     "type_name": "Requirement",
                     "updated": "",
                     "validated_by": "",
-                    "validation_mode": ""
+                    "validation_mode": "static"
                 },
                 "R-23740": {
                     "description": "The VNF **MUST** implement and enforce the principle of least privilege\non all protected interfaces.",
                     "validation_mode": ""
                 },
                 "R-24893": {
-                    "description": "A VNF's Heat Orchestration template's Environment File's\n**MAY** contain the \"event_sinks:\" section.",
+                    "description": "A VNF's Heat Orchestration template's Environment File's\n**MAY** contain the ``event_sinks:`` section.",
                     "full_title": "",
                     "hide_links": "",
                     "id": "R-24893",
                     "validation_mode": ""
                 },
                 "R-25877": {
-                    "description": "A VNF's Heat Orchestration Template's parameter\nname (i.e., <param name>) **MUST** contain only\nalphanumeric characters and underscores ('_').",
+                    "description": "A VNF's Heat Orchestration Template's parameter name\n(i.e., <param name>) **MUST** contain only alphanumeric\ncharacters and underscores ('_').",
                     "full_title": "",
                     "hide_links": "",
                     "id": "R-25877",
                     "type_name": "Requirement",
                     "updated": "",
                     "validated_by": "",
-                    "validation_mode": ""
+                    "validation_mode": "static"
                 },
                 "R-26115": {
                     "description": "The xNF **MUST** follow the data model upgrade rules defined\nin [RFC6020] section 10. All deviations from section 10 rules shall\nbe handled by a built-in automatic upgrade mechanism.",
                     "validation_mode": ""
                 },
                 "R-26124": {
-                    "description": "If a VNF Heat Orchestration Template parameter\nrequires a default value, it **MUST** be enumerated in the environment file.",
+                    "description": "If a VNF Heat Orchestration Template parameter has a default value,\nit **MUST** be enumerated in the environment file.",
                     "full_title": "",
                     "hide_links": "",
                     "id": "R-26124",
                     "type_name": "Requirement",
                     "updated": "",
                     "validated_by": "",
-                    "validation_mode": ""
+                    "validation_mode": "static"
                 },
                 "R-26351": {
                     "description": "A VNF's Heat Orchestration Template's Resource\nOS::Neutron::Port that is attaching to an internal network Resource ID\n**MUST** use the naming convention\n\n   * {vm-type}_{vm-type_index}_int_{network-role}_port_{port-index}\n\nwhere\n\n   * {vm-type} is the vm-type\n   * {vm-type_index} is the instance of the {vm-type}\n   * {network-role} is the network-role of the network\n     that the port is attached to\n   * {port-index} is the instance of the the port on the vm-type\n     attached to the network of {network-role}",
                     "validation_mode": ""
                 },
                 "R-27078": {
-                    "description": "A VNF's Heat Orchestration template **MUST** contain\nthe section \"heat_template_version:\".",
+                    "description": "A VNF's Heat Orchestration template **MUST** contain the\nsection ``heat_template_version:``.",
                     "full_title": "",
                     "hide_links": "",
                     "id": "R-27078",
                     "type_name": "Requirement",
                     "updated": "",
                     "validated_by": "",
-                    "validation_mode": ""
+                    "validation_mode": "static"
                 },
                 "R-27310": {
                     "description": "The xNF Package **MUST** include all relevant Chef artifacts\n(roles/cookbooks/recipes) required to execute xNF actions requested by\nONAP for loading on appropriate Chef Server.",
                     "validation_mode": ""
                 },
                 "R-28980": {
-                    "description": "A VNF's incremental module **MAY** be used for initial VNF\ndeployment only.",
+                    "description": "A VNF's incremental module **MAY** be used for initial VNF deployment only.",
                     "full_title": "",
                     "hide_links": "",
                     "id": "R-28980",
                     "validation_mode": ""
                 },
                 "R-31141": {
-                    "description": "A VNF Heat Orchestration Template's Cinder Volume Module's Environment\nFile **MUST** be named identical to the VNF Heat Orchestration Template's\nCinder Volume Module with .y[a]ml replaced with '.env'.",
+                    "description": "VNF Heat Orchestration Template's Cinder Volume Module's Environment File\n**MUST** be named identical to the VNF Heat Orchestration Template's\nCinder Volume Module with ``.y[a]ml`` replaced with ``.env``.",
                     "full_title": "",
                     "hide_links": "",
                     "id": "R-31141",
                     "type_name": "Requirement",
                     "updated": "",
                     "validated_by": "",
-                    "validation_mode": ""
+                    "validation_mode": "static"
                 },
                 "R-31614": {
                     "description": "The VNF **MUST** log the field \"event type\" in the security audit\nlogs.",
                     "validation_mode": ""
                 },
                 "R-32094": {
-                    "description": "A VNF's Heat Orchestration Template parameter\ndeclaration **MAY** contain the attribute \"label:\".",
+                    "description": "A VNF's Heat Orchestration Template parameter declaration **MAY**\ncontain the attribute ``label:``.",
                     "full_title": "",
                     "hide_links": "",
                     "id": "R-32094",
                     "validation_mode": ""
                 },
                 "R-32557": {
-                    "description": "A VNF's Heat Orchestration Template parameter\ndeclaration **MAY** contain the attribute \"hidden:\".",
+                    "description": "A VNF's Heat Orchestration Template parameter declaration **MAY**\ncontain the attribute ``hidden:``.",
                     "full_title": "",
                     "hide_links": "",
                     "id": "R-32557",
                     "validation_mode": ""
                 },
                 "R-33132": {
-                    "description": "A VNF's Heat Orchestration Template **MAY** be\n\n   * a Base Module Heat Orchestration Template\n     (also referred to as a Base Module)\n\n   * an Incremental Module Heat Orchestration Template\n     (referred to as an Incremental Module)\n\n   * a Cinder Volume Module Heat Orchestration Template\n     (referred to as Cinder Volume Module).",
+                    "description": "A VNF's Heat Orchestration Template **MAY** be\n 1.) Base Module Heat Orchestration Template (also referred to as a\n     Base Module),\n 2.) Incremental Module Heat Orchestration Template (referred to as\n     an Incremental Module), or\n 3.) a Cinder Volume Module Heat Orchestration Template (referred to as\n     Cinder Volume  Module).",
                     "full_title": "",
                     "hide_links": "",
                     "id": "R-33132",
                     "validation_mode": ""
                 },
                 "R-35414": {
-                    "description": "A VNF Heat Orchestration's template **MUST**\ncontain the section \"parameters:\".",
+                    "description": "A VNF Heat Orchestration's template **MUST** contain the\nsection ``parameters:``.",
                     "full_title": "",
                     "hide_links": "",
                     "id": "R-35414",
                     "type_name": "Requirement",
                     "updated": "",
                     "validated_by": "",
-                    "validation_mode": ""
+                    "validation_mode": "static"
                 },
                 "R-35532": {
                     "description": "The VNF **SHOULD** release and clear all shared assets (memory,\ndatabase operations, connections, locks, etc.) as soon as possible,\nespecially before long running sync and asynchronous operations, so as\nto not prevent use of these assets by other entities.",
                     "validation_mode": ""
                 },
                 "R-36772": {
-                    "description": "A VNF's Heat Orchestration Template's parameter\n**MUST** include the attribute \"type:\".",
+                    "description": "A VNF's Heat Orchestration Template's parameter **MUST** include the\nattribute ``type:``.",
                     "full_title": "",
                     "hide_links": "",
                     "id": "R-36772",
                     "type_name": "Requirement",
                     "updated": "",
                     "validated_by": "",
-                    "validation_mode": ""
+                    "validation_mode": "static"
                 },
                 "R-36792": {
                     "description": "The VNF **MUST** automatically retry/resubmit failed requests\nmade by the software to its downstream system to increase the success rate.",
                     "validation_mode": ""
                 },
                 "R-36982": {
-                    "description": "A VNF's Heat Orchestration template **MAY**\ncontain the \"outputs:\" section.",
+                    "description": "A VNF's Heat Orchestration template **MAY** contain the ``outputs:``\nsection.",
                     "full_title": "",
                     "hide_links": "",
                     "id": "R-36982",
                     "validation_mode": ""
                 },
                 "R-37028": {
-                    "description": "The VNF **MUST** be composed of one \"base\" module.",
+                    "description": "A VNF **MUST** be composed of one Base Module",
                     "full_title": "",
                     "hide_links": "",
                     "id": "R-37028",
                     "type_name": "Requirement",
                     "updated": "",
                     "validated_by": "",
-                    "validation_mode": ""
+                    "validation_mode": "static"
                 },
                 "R-39067": {
                     "description": "A VNF's Heat Orchestration Template's OS::Nova::Server\nResource metadata map value parameter 'vf_module_name' **MUST**\nbe declared as type: 'string'.",
                     "validation_mode": ""
                 },
                 "R-39349": {
-                    "description": "A VNF Heat Orchestration Template **MUST NOT** be designed to\nutilize the OpenStack 'heat stack-update' command for scaling\n(growth/de-growth).",
+                    "description": "A VNF Heat Orchestration Template **MUST NOT** be designed to utilize the\nOpenStack ``heat stack-update`` command for scaling (growth/de-growth).",
                     "full_title": "",
                     "hide_links": "",
                     "id": "R-39349",
                     "type_name": "Requirement",
                     "updated": "",
                     "validated_by": "",
-                    "validation_mode": ""
+                    "validation_mode": "static"
                 },
                 "R-39402": {
-                    "description": "A VNF's Heat Orchestration Template **MUST**\ncontain the section \"description:\".",
+                    "description": "A VNF's Heat Orchestration Template **MUST** contain the\nsection ``description:``.",
                     "full_title": "",
                     "hide_links": "",
                     "id": "R-39402",
                     ],
                     "status": null,
                     "tags": [],
-                    "target": "VNF",
+                    "target": "",
                     "test": "",
                     "test_case": "",
                     "test_file": "",
                     "type_name": "Requirement",
                     "updated": "",
                     "validated_by": "",
-                    "validation_mode": ""
+                    "validation_mode": "static"
                 },
                 "R-39562": {
                     "description": "The VNF **MUST** disable unnecessary or vulnerable cgi-bin programs.",
                     "validation_mode": ""
                 },
                 "R-40518": {
-                    "description": "A VNF's Heat Orchestration Template's parameter defined as\ntype \"string\" **MAY** have a parameter constraint defined.",
+                    "description": "A VNF's Heat Orchestration Template's parameter defined\nin a non-nested YAML file as type\n``string`` **MAY** have a parameter constraint defined.",
                     "full_title": "",
                     "hide_links": "",
                     "id": "R-40518",
                     "validation_mode": ""
                 },
                 "R-40551": {
-                    "description": "A VNF's Heat Orchestration Template's Nested YAML files\n**MAY** contain the section \"resources:\".",
+                    "description": "A VNF's Heat Orchestration Template's Nested YAML files **MAY**\n(or **MAY NOT**) contain the section ``resources:``.",
                     "full_title": "",
                     "hide_links": "",
                     "id": "R-40551",
                     "validation_mode": ""
                 },
                 "R-42685": {
-                    "description": "A VNF's Heat Orchestration template's Environment File's\n**MAY** contain the \"parameter_merge_strategies:\" section.",
+                    "description": "A VNF's Heat Orchestration template's Environment File's\n**MAY** contain the ``parameter_merge_strategies:`` section.",
                     "full_title": "",
                     "hide_links": "",
                     "id": "R-42685",
                     "validation_mode": ""
                 },
                 "R-43413": {
-                    "description": "A VNF **MUST** utilize a modular Heat Orchestration Template\ndesign to support scaling (growth/de-growth).",
+                    "description": "A VNF **MUST** utilize a modular Heat Orchestration Template design to\nsupport scaling (growth/de-growth).",
                     "full_title": "",
                     "hide_links": "",
                     "id": "R-43413",
                     "type_name": "Requirement",
                     "updated": "",
                     "validated_by": "",
-                    "validation_mode": ""
+                    "validation_mode": "static"
                 },
                 "R-43740": {
-                    "description": "A VNF's Heat Orchestration Template's Resource\n**MAY** declare the attribute \"deletion_policy:\".",
+                    "description": "VNF's Heat Orchestration Template's Resource **MAY** declare the\nattribute ``deletion_policy:``.",
                     "full_title": "",
                     "hide_links": "",
                     "id": "R-43740",
                     "validation_mode": ""
                 },
                 "R-44001": {
-                    "description": "A VNF's Heat Orchestration Template parameter\ndeclaration **MUST** contain the attribute \"description\".",
+                    "description": "A VNF's Heat Orchestration Template parameter declaration **MUST**\ncontain the attribute ``description``.",
                     "full_title": "",
                     "hide_links": "",
                     "id": "R-44001",
                     "type_name": "Requirement",
                     "updated": "",
                     "validated_by": "",
-                    "validation_mode": ""
+                    "validation_mode": "static"
                 },
                 "R-44013": {
                     "description": "The xNF **MUST** populate an attribute, defined as node\n['PushJobOutput'] with the desired output on all nodes in the push job\nthat execute chef-client run if the xNF action requires the output of a\nchef-client run be made available (e.g., get running configuration).",
                     "validation_mode": ""
                 },
                 "R-46096": {
-                    "description": "A VNF's Heat Orchestration template's Environment File's\n**MAY** contain the \"encrypted_parameters:\" section.",
+                    "description": "A VNF's Heat Orchestration template's Environment File's\n**MAY** contain the ``encrypted_parameters:`` section.",
                     "full_title": "",
                     "hide_links": "",
                     "id": "R-46096",
                     "validation_mode": ""
                 },
                 "R-46968": {
-                    "description": "VNF's Heat Orchestration Template's Resource **MAY**\ndeclare the attribute \"depends_on:\".",
+                    "description": "VNF's Heat Orchestration Template's Resource **MAY** declare the\nattribute ``depends_on:``.",
                     "full_title": "",
                     "hide_links": "",
                     "id": "R-46968",
                     "validation_mode": ""
                 },
                 "R-52753": {
-                    "description": "VNF's Heat Orchestration Template's Base Module's output parameter's\nname and type **MUST** match the VNF's Heat Orchestration Template's\nincremental Module's name and type unless the output parameter is of type\n'comma_delimited_list', then the corresponding input parameter **MUST**\nbe declared as type 'json'.",
+                    "description": "VNF's Heat Orchestration Template's Base Module's output parameter's\nname and type **MUST** match the VNF's Heat Orchestration Template's\nincremental Module's name and type unless the output parameter is of\ntype ``comma_delimited_list``, then the corresponding input parameter\n**MUST** be declared as type ``json``.",
                     "full_title": "",
                     "hide_links": "",
                     "id": "R-52753",
                     "type_name": "Requirement",
                     "updated": "",
                     "validated_by": "",
-                    "validation_mode": ""
+                    "validation_mode": "static"
                 },
                 "R-52870": {
                     "description": "The VNF **MUST** provide a method of metrics gathering\nand analysis to evaluate the resiliency of the software from both\na granular as well as a holistic standpoint. This includes, but is\nnot limited to thread utilization, errors, timeouts, and retries.",
                     "validation_mode": ""
                 },
                 "R-53433": {
-                    "description": "The VNF **MUST** have a corresponding environment file for a Cinder Volume Module.",
+                    "description": "A VNF's Cinder Volume Module **MUST** have a corresponding environment file",
                     "full_title": "",
                     "hide_links": "",
                     "id": "R-53433",
                     "type_name": "Requirement",
                     "updated": "",
                     "validated_by": "",
-                    "validation_mode": ""
+                    "validation_mode": "static"
                 },
                 "R-53598": {
                     "description": "The xNF Package **MUST** include documentation to, when relevant,\nprovide a threshold crossing alert point for each KPI and describe the\nsignificance of the threshold crossing.",
                     "type_name": "Requirement",
                     "updated": "",
                     "validated_by": "",
-                    "validation_mode": ""
+                    "validation_mode": "static"
                 },
                 "R-54171": {
                     "description": "When the VNF's Heat Orchestration Template's Resource\n'OS::Nova::Server' property 'name' parameter is defined as a 'string',\nthe parameter name **MUST** follow the naming convention\n'{vm-type}\\_name\\_{index}', where {index} is a numeric value that starts\nat zero and increments by one.",
                     "validation_mode": ""
                 },
                 "R-56438": {
-                    "description": "A VNF's Heat Orchestration Template's Nested YAML file extension\n**MUST** be in the lower case format '.yaml' or '.yml'.",
+                    "description": "A VNF's Heat Orchestration Template's Nested YAML file extension **MUST**\nbe in the lower case format ``.yaml`` or ``.yml``.",
                     "full_title": "",
                     "hide_links": "",
                     "id": "R-56438",
                     "type_name": "Requirement",
                     "updated": "",
                     "validated_by": "",
-                    "validation_mode": ""
+                    "validation_mode": "static"
                 },
                 "R-56721": {
                     "description": "A VNF's Incremental Module **MAY** utilize nested heat.",
                     "validation_mode": ""
                 },
                 "R-59482": {
-                    "description": "A VNF's Heat Orchestration Template **MUST NOT** be VNF instance\nspecific or Cloud site specific.",
+                    "description": "A VNF's Heat Orchestration Template **MUST NOT** be VNF instance\nspecific or cloud site specific.",
                     "full_title": "",
                     "hide_links": "",
                     "id": "R-59482",
                     "type_name": "Requirement",
                     "updated": "",
                     "validated_by": "",
-                    "validation_mode": ""
+                    "validation_mode": "static"
                 },
                 "R-59568": {
                     "description": "The VNF's Heat Orchestration Template's Resource\n'OS::Nova::Server' property 'availability_zone' parameter **MUST NOT**\nbe enumerated in the Heat Orchestration Template's Environment File.",
                     "validation_mode": ""
                 },
                 "R-59930": {
-                    "description": "A VNF's Heat Orchestration template's Environment\nFile's **MAY** contain the \"parameter_defaults:\" section.",
+                    "description": "A VNF's Heat Orchestration template's Environment File's\n**MAY** contain the ``parameter_defaults:`` section.",
                     "full_title": "",
                     "hide_links": "",
                     "id": "R-59930",
                     "validation_mode": ""
                 },
                 "R-63137": {
-                    "description": "VNF's Heat Orchestration Template's Resource **MAY**\ndeclare the attribute \"update_policy:\".",
+                    "description": "VNF's Heat Orchestration Template's Resource **MAY** declare the\nattribute ``update_policy:``.",
                     "full_title": "",
                     "hide_links": "",
                     "id": "R-63137",
                     "validation_mode": ""
                 },
                 "R-67231": {
-                    "description": "A VNF's Heat Orchestration template's Environment File's **MUST NOT**\ncontain the \"resource_registry:\" section.",
+                    "description": "A VNF's Heat Orchestration template's Environment File's\n**MUST NOT** contain the ``resource_registry:`` section.",
                     "full_title": "",
                     "hide_links": "",
                     "id": "R-67231",
                     "type_name": "Requirement",
                     "updated": "",
                     "validated_by": "",
-                    "validation_mode": ""
+                    "validation_mode": "static"
+                },
+                "R-67386": {
+                    "description": "A VNF's Heat Orchestration Template's Resource **MAY** declare the\nattribute ``metadata``.",
+                    "full_title": "",
+                    "hide_links": "",
+                    "id": "R-67386",
+                    "impacts": "",
+                    "introduced": "",
+                    "keyword": "MUST",
+                    "links": [],
+                    "notes": "",
+                    "section_name": "metadata",
+                    "sections": [
+                        "metadata",
+                        "resources",
+                        "Heat Orchestration Template Structure",
+                        "ONAP Heat Orchestration Template Format"
+                    ],
+                    "status": null,
+                    "tags": [],
+                    "target": "VNF",
+                    "test": "",
+                    "test_case": "",
+                    "test_file": "",
+                    "title": "",
+                    "title_from_content": "",
+                    "type_name": "Requirement",
+                    "updated": "",
+                    "validated_by": "",
+                    "validation_mode": "static"
                 },
                 "R-67597": {
                     "description": "A VNF's Heat Orchestration Template's OS::Nova::Server\nResource metadata map value parameter 'vm_role' **MUST NOT** have\nparameter contraints defined.",
                     "validation_mode": ""
                 },
                 "R-68198": {
-                    "description": "A VNF's Heat Orchestration template's Environment File's\n\"parameters:\" section **MAY** enumerate parameters.",
+                    "description": "A VNF's Heat Orchestration template's Environment File's\n``parameters:`` section **MAY** (or **MAY NOT**) enumerate parameters.",
                     "full_title": "",
                     "hide_links": "",
                     "id": "R-68198",
                     "validation_mode": ""
                 },
                 "R-70276": {
-                    "description": "A VNF HEAT's Orchestration Nested Template's YAML file\nname **MUST NOT** be in the format '{vm-type}.y[a]ml' where\n'{vm-type}' is defined in the Heat Orchestration Template.",
+                    "description": "A VNF HEAT's Orchestration Nested Template's YAML file name **MUST NOT**\nbe in the format ``{vm-type}.y[a]ml`` where ``{vm-type}`` is defined\nin the Heat Orchestration Template.",
                     "full_title": "",
                     "hide_links": "",
                     "id": "R-70276",
                     "status": null,
                     "tags": [],
                     "target": "VNF",
-                    "test": "no test found",
-                    "test_case": "no test found",
-                    "test_file": "no test found",
+                    "test": "",
+                    "test_case": "",
+                    "test_file": "",
                     "title": "",
                     "title_from_content": "",
                     "type_name": "Requirement",
                     "updated": "",
                     "validated_by": "",
-                    "validation_mode": ""
+                    "validation_mode": "static"
                 },
                 "R-70496": {
                     "description": "The xNF **MUST** implement the protocol operation:\n**commit(confirmed, confirm-timeout)** - Commit candidate\nconfiguration datastore to the running configuration.",
                     "type_name": "Requirement",
                     "updated": "",
                     "validated_by": "",
-                    "validation_mode": ""
+                    "validation_mode": "static"
                 },
                 "R-71787": {
                     "description": "Each layer of the VNF **MUST** support access restriction\nindependently of all other layers so that Segregation of Duties\ncan be implemented.",
                     "validation_mode": ""
                 },
                 "R-74304": {
-                    "description": "A VNF's Heat Orchestration Template's Environment file extension\n**MUST** be in the lower case format '.env'.",
+                    "description": "A VNF's Heat Orchestration Template's Environment file extension **MUST**\nbe in the lower case format ``.env``.",
                     "full_title": "",
                     "hide_links": "",
                     "id": "R-74304",
                     "type_name": "Requirement",
                     "updated": "",
                     "validated_by": "",
-                    "validation_mode": ""
+                    "validation_mode": "static"
                 },
                 "R-74481": {
                     "description": "The VNF **MUST NOT** require the use of a dynamic routing\nprotocol unless necessary to meet functional requirements.",
                     "type_name": "Requirement",
                     "updated": "",
                     "validated_by": "",
-                    "validation_mode": ""
+                    "validation_mode": "static"
                 },
                 "R-75202": {
                     "description": "If a VNF's Heat Orchestration Template's OS::Nova::Server\nResource metadata map value parameter 'workload_context' is passed\ninto a Nested YAML file, the parameter name 'workload_context'\n**MUST NOT** change.",
                     "validation_mode": ""
                 },
                 "R-76057": {
-                    "description": "A VNF Heat Orchestration Template's Nested YAML file name **MUST**\ncontain only alphanumeric characters and underscores '_' and **MUST NOT**\ncontain the case insensitive word 'base'.",
+                    "description": "VNF Heat Orchestration Template's Nested YAML file name **MUST** contain\nonly alphanumeric characters and underscores '_' and\n**MUST NOT** contain the case insensitive word ``base``.",
                     "full_title": "",
                     "hide_links": "",
                     "id": "R-76057",
                     "type_name": "Requirement",
                     "updated": "",
                     "validated_by": "",
-                    "validation_mode": ""
+                    "validation_mode": "static"
                 },
                 "R-76160": {
                     "description": "When\n\n- the VNF's Heat Orchestration Template's resource\n  'OS::Neutron::Port' in an Incremental Module is attaching to an\n  internal network that is created in the Base Module, AND\n- an IPv6 address is being Cloud Assigned by OpenStack's DHCP Service AND\n- the internal network IPv6 subnet is to be specified using the property\n  'fixed_ips' map property 'subnet'/'subnet_id',\n\nthe parameter **MUST** follow the naming convention\n   * 'int\\_{network-role}_v6_subnet_id'\nwhere\n   * '{network-role}' is the network role of the internal network\n\n- Note that the parameter **MUST** be defined as an 'output' parameter in\n  the base module.",
                     "validation_mode": ""
                 },
                 "R-78569": {
-                    "description": "A VNF's Heat Orchestration Template's Resouce **MAY**\ndeclare the attribute \"external_id:\".",
+                    "description": "VNF's Heat Orchestration Template's Resource **MAY** declare the\nattribute ``external_id:``.",
                     "full_title": "",
                     "hide_links": "",
                     "id": "R-78569",
                     "validation_mode": ""
                 },
                 "R-79817": {
-                    "description": "A VNF's Heat Orchestration Template's parameter defined as\ntype \"comma_delimited_list\" **MAY** have a parameter constraint defined.",
+                    "description": "A VNF's Heat Orchestration Template's parameter defined\nin a non-nested YAML file as\ntype ``comma_delimited_list`` **MAY** have a parameter constraint defined.",
                     "full_title": "",
                     "hide_links": "",
                     "id": "R-79817",
                     "validation_mode": ""
                 },
                 "R-81339": {
-                    "description": "A VNF Heat Orchestration Template's Base Module file name **MUST**\ninclude 'base' in the filename and **MUST** match one of the following four\nformats:\n\n   * 'base_<text>.y[a]ml'\n   * '<text>_base.y[a]ml'\n   * 'base.y[a]ml'\n   * '<text>_base_<text>'.y[a]ml\n\nwhere 'base' is case insensitive and where '<text>'\n**MUST** contain only alphanumeric characters\nand underscores '_' and **MUST NOT** contain the case\ninsensitive word 'base'.",
+                    "description": "A VNF Heat Orchestration Template's Base Module file name **MUST** include\ncase insensitive 'base' in the filename and\n**MUST** match one of the following four\nformats:\n\n 1.) ``base_<text>.y[a]ml``\n\n 2.) ``<text>_base.y[a]ml``\n\n 3.) ``base.y[a]ml``\n\n 4.) ``<text>_base_<text>``.y[a]ml\n\nwhere ``<text>`` **MUST** contain only alphanumeric characters and\nunderscores '_' and **MUST NOT** contain the case insensitive word ``base``.",
                     "full_title": "",
                     "hide_links": "",
                     "id": "R-81339",
                     "type_name": "Requirement",
                     "updated": "",
                     "validated_by": "",
-                    "validation_mode": ""
+                    "validation_mode": "static"
                 },
                 "R-81725": {
-                    "description": "The VNF **MUST** have a corresponding environment file for an Incremental Module.",
+                    "description": "A VNF's Incremental Module **MUST** have a corresponding Environment File",
                     "full_title": "",
                     "hide_links": "",
                     "id": "R-81725",
                     "type_name": "Requirement",
                     "updated": "",
                     "validated_by": "",
-                    "validation_mode": ""
+                    "validation_mode": "static"
                 },
                 "R-81777": {
                     "description": "The xNF **MUST** be configured with initial address(es) to use\nat deployment time. Subsequently, address(es) may be changed through\nONAP-defined policies delivered from ONAP to the xNF using PUTs to a\nRESTful API, in the same manner that other controls over data reporting\nwill be controlled by policy.",
                     "validation_mode": ""
                 },
                 "R-82732": {
-                    "description": "A VNF Heat Orchestration Template's Cinder Volume Module **MUST** be\nnamed identical to the base or incremental module it is supporting with\n'_volume appended'",
+                    "description": "A VNF Heat Orchestration Template's Cinder Volume Module **MUST**\nbe named identical to the base or incremental module it is supporting with\n``_volume`` appended.",
                     "full_title": "",
                     "hide_links": "",
                     "id": "R-82732",
                     "type_name": "Requirement",
                     "updated": "",
                     "validated_by": "",
-                    "validation_mode": ""
+                    "validation_mode": "static"
                 },
                 "R-82811": {
                     "description": "The xNF **MUST** support ONAP Controller's **StartApplication** command.",
                     "validation_mode": ""
                 },
                 "R-86285": {
-                    "description": "The VNF Heat Orchestration Template **MUST** have a corresponding\nenvironment file, even if no parameters are required to be enumerated.",
+                    "description": "A VNF's Heat Orchestration template **MUST** have a\ncorresponding environment file.",
                     "full_title": "",
                     "hide_links": "",
                     "id": "R-86285",
                     "type_name": "Requirement",
                     "updated": "",
                     "validated_by": "",
-                    "validation_mode": ""
+                    "validation_mode": "static"
                 },
                 "R-86476": {
                     "description": "If a VNF's Heat Orchestration Template's OS::Nova::Server\nResource metadata map value parameter 'vm_role' value **MUST** only\ncontain alphanumeric characters and underscores '_'.",
                     "validation_mode": ""
                 },
                 "R-87247": {
-                    "description": "A VNF Heat Orchestration Template's Incremental Module file name\n**MUST** contain only alphanumeric characters and underscores '_' and\n**MUST NOT** contain the case insensitive word 'base'.",
+                    "description": "VNF Heat Orchestration Template's Incremental Module file name\n**MUST** contain only alphanumeric characters and underscores\n'_' and **MUST NOT** contain the case insensitive word ``base``.",
                     "full_title": "",
                     "hide_links": "",
                     "id": "R-87247",
                     "type_name": "Requirement",
                     "updated": "",
                     "validated_by": "",
-                    "validation_mode": ""
+                    "validation_mode": "static"
                 },
                 "R-87352": {
                     "description": "The VNF **SHOULD** utilize Cloud health checks, when available\nfrom the Network Cloud, from inside the application through APIs to check\nthe network connectivity, dropped packets rate, injection, and auto failover\nto alternate sites if needed.",
                     "validation_mode": ""
                 },
                 "R-87485": {
-                    "description": "A VNF's Heat Orchestration Template's file extension **MUST**\nbe in the lower case format '.yaml' or '.yml'.",
+                    "description": "A VNF's Heat Orchestration Template's file extension **MUST**\nbe in the lower case format ``.yaml`` or ``.yml``.",
                     "full_title": "",
                     "hide_links": "",
                     "id": "R-87485",
                     "type_name": "Requirement",
                     "updated": "",
                     "validated_by": "",
-                    "validation_mode": ""
+                    "validation_mode": "static"
                 },
                 "R-87563": {
                     "description": "A VNF's Heat Orchestration Template's Resource\n'OS::ContrailV2::InstanceIp' that is configuring an\nIPv6 Address on a port attached to an internal network\nResource ID **MUST** use the naming convention\n\n   *  {vm-type}_{vm-type_index}_int_{network-role}_vmi_{vmi_index}_v6_IP_{index}\n\nwhere\n\n   * {vm-type} is the vm-type\n   * {vm-type_index} is the instance of the {vm-type}\n   * {network-role} is the network-role of the network\n     that the port is attached to\n   * {vmi_index} is the instance of the the virtual machine interface\n     (e.g., port)  on the vm-type\n     attached to the network of {network-role}\n   * 'v6_IP' signifies that an IPv6 address is being configured\n   * {index} is the index of the IPv6 address",
                     "validation_mode": ""
                 },
                 "R-88863": {
-                    "description": "A VNF's Heat Orchestration Template's parameter defined as\ntype \"number\" **MUST** have a parameter constraint of \"range\" or\n\"allowed_values\" defined.",
+                    "description": "A VNF's Heat Orchestration Template's parameter defined\nin a non-nested YAML file as type\n``number`` **MUST** have a parameter constraint of ``range`` or\n``allowed_values`` defined.",
                     "full_title": "",
                     "hide_links": "",
                     "id": "R-88863",
                     "type_name": "Requirement",
                     "updated": "",
                     "validated_by": "",
-                    "validation_mode": ""
+                    "validation_mode": "static"
                 },
                 "R-88899": {
                     "description": "The xNF **MUST** support simultaneous <commit> operations\nwithin the context of this locking requirements framework.",
                     "validation_mode": ""
                 },
                 "R-89913": {
-                    "description": "A VNF's Heat Orchestration Template's Cinder Volume Module Output\nParameter(s) **MUST** include the UUID(s) of the Cinder Volumes created in\ntemplate, while other Output Parameters **MAY** be included.",
+                    "description": "A VNF's Heat Orchestration Template's Cinder Volume Module Output\nParameter(s)\n**MUST** include the\nUUID(s) of the Cinder Volumes created in template,\nwhile others **MAY** be included.",
                     "full_title": "",
                     "hide_links": "",
                     "id": "R-89913",
                     "type_name": "Requirement",
                     "updated": "",
                     "validated_by": "",
-                    "validation_mode": ""
+                    "validation_mode": "static"
                 },
                 "R-90007": {
                     "description": "The xNF **MUST** implement the protocol operation:\n**close-session()**- Gracefully close the current session.",
                     "validation_mode": ""
                 },
                 "R-90152": {
-                    "description": "A VNF's Heat Orchestration Template's \"resources:\"\nsection **MUST** contain the declaration of at least one resource.",
+                    "description": "A VNF's Heat Orchestration Template's\n``resources:`` section **MUST** contain the declaration of at\nleast one resource.",
                     "full_title": "",
                     "hide_links": "",
                     "id": "R-90152",
                     "type_name": "Requirement",
                     "updated": "",
                     "validated_by": "",
-                    "validation_mode": ""
+                    "validation_mode": "static"
                 },
                 "R-90206": {
                     "description": "The VNF's Heat Orchestration Template's Resource\n'OS::Neutron::Port' property 'fixed_ips' map property 'ip_address'\nparameter '{vm-type}\\_int\\_{network-role}_int_ips' **MUST** be enumerated in\nthe VNF's Heat Orchestration Template's Environment File.",
                     "validation_mode": ""
                 },
                 "R-90279": {
-                    "description": "A VNF's Heat Orchestration template's parameter **MUST**\nbe used in a resource with the exception of the parameters\nfor the OS::Nova::Server resource property availability_zone.",
+                    "description": "A VNF Heat Orchestration's template's parameter **MUST** be used\nin a resource with the exception of the parameters for the\n``OS::Nova::Server`` resource property ``availability_zone``.",
                     "full_title": "",
                     "hide_links": "",
                     "id": "R-90279",
                     "type_name": "Requirement",
                     "updated": "",
                     "validated_by": "",
-                    "validation_mode": ""
+                    "validation_mode": "static"
                 },
                 "R-90526": {
-                    "description": "A VNF Heat Orchestration Template parameter\ndeclaration **MUST** not contain the default attribute.",
+                    "description": "A VNF Heat Orchestration Template parameter declaration **MUST NOT**\ncontain the ``default`` attribute.",
                     "full_title": "",
                     "hide_links": "",
                     "id": "R-90526",
                     "type_name": "Requirement",
                     "updated": "",
                     "validated_by": "",
-                    "validation_mode": ""
+                    "validation_mode": "static"
                 },
                 "R-90632": {
                     "description": "The xNF Package **MUST** include documentation about KPIs and\nmetrics that need to be collected at each VM for capacity planning\nand performance management purposes.",
                     "validation_mode": ""
                 },
                 "R-91273": {
-                    "description": "A VNF Heat Orchestration's template's parameter for\nthe OS::Nova::Server resource property availability_zone\n**MAY NOT** be used in any OS::Nova::Resource.",
+                    "description": "A VNF Heat Orchestration's template's parameter for the\n``OS::Nova::Server`` resource property ``availability_zone``\n**MAY NOT** be used in any ``OS::Nova::Server``.",
                     "full_title": "",
                     "hide_links": "",
                     "id": "R-91273",
                     "validation_mode": ""
                 },
                 "R-91342": {
-                    "description": "A VNF Heat Orchestration Template's Base Module's Environment File\n**MUST** be named identical to the VNF Heat Orchestration Template's Base\nModule with '.y[a]ml' replaced with '.env'.",
+                    "description": "A VNF Heat Orchestration Template's Base Module's Environment File\n**MUST** be named identical to the VNF Heat Orchestration Template's\nBase Module with ``.y[a]ml`` replaced with ``.env``.",
                     "full_title": "",
                     "hide_links": "",
                     "id": "R-91342",
                     "type_name": "Requirement",
                     "updated": "",
                     "validated_by": "",
-                    "validation_mode": ""
+                    "validation_mode": "static"
                 },
                 "R-91497": {
-                    "description": "A VNF's incremental module **MAY** be used for both deployment\nand scale out.",
+                    "description": "A VNF's incremental module **MAY** be used for both deployment and\nscale out.",
                     "full_title": "",
                     "hide_links": "",
                     "id": "R-91497",
                     "validated_by": "",
                     "validation_mode": ""
                 },
+                "R-92635": {
+                    "description": "A VNF's Heat Orchestration Template **MUST** be compliant with the\nOpenStack Template Guide.",
+                    "full_title": "",
+                    "hide_links": "",
+                    "id": "R-92635",
+                    "impacts": "",
+                    "introduced": "",
+                    "keyword": "MUST",
+                    "links": [],
+                    "notes": "",
+                    "section_name": "ONAP Heat Orchestration Template Format",
+                    "sections": [
+                        "ONAP Heat Orchestration Template Format"
+                    ],
+                    "status": null,
+                    "tags": [],
+                    "target": "",
+                    "test": "",
+                    "test_case": "",
+                    "test_file": "",
+                    "title": "",
+                    "title_from_content": "",
+                    "type_name": "Requirement",
+                    "updated": "",
+                    "validated_by": "",
+                    "validation_mode": "static"
+                },
                 "R-92866": {
                     "description": "The xNF **MUST** include as part of post-instantiation configuration\ndone by Ansible Playbooks the removal/update of the SSH public key from\n/root/.ssh/authorized_keys, and  update of SSH keys loaded through\ninstantiation to support Ansible. This may include download and install of\nnew SSH keys and new mechanized IDs.",
                     "full_title": "",
                     "validation_mode": ""
                 },
                 "R-94509": {
-                    "description": "A VNF Heat Orchestration Template's Incremental Module's Environment\nFile **MUST** be named identical to the VNF Heat Orchestration Template's\nIncremental Module with '.y[a]ml' replaced with '.env'.",
+                    "description": "A VNF Heat Orchestration Template's Incremental Module's Environment File\n**MUST** be named identical to the VNF Heat Orchestration Template's\nIncremental Module with ``.y[a]ml`` replaced with ``.env``.",
                     "full_title": "",
                     "hide_links": "",
                     "id": "R-94509",
                     "type_name": "Requirement",
                     "updated": "",
                     "validated_by": "",
-                    "validation_mode": ""
+                    "validation_mode": "static"
                 },
                 "R-94525": {
                     "description": "The VNF **MUST** log connections to the network listeners of the\nresource.",
                     "type_name": "Requirement",
                     "updated": "",
                     "validated_by": "",
-                    "validation_mode": ""
+                    "validation_mode": "static"
                 },
                 "R-95430": {
                     "description": "A VNF's Heat Orchestration Template's OS::Nova::Server\nResource metadata map value parameter 'vm_role' **MUST** be\ndeclared as type: 'string'.",
                     "validation_mode": ""
                 },
                 "R-96227": {
-                    "description": "A VNF's Heat Orchestration Template's parameter defined as\ntype \"json\" **MAY** have a parameter constraint defined.",
+                    "description": "A VNF's Heat Orchestration Template's parameter defined\nin a non-nested YAML file as type\n``json`` **MAY** have a parameter constraint defined.",
                     "full_title": "",
                     "hide_links": "",
                     "id": "R-96227",
                     "status": null,
                     "tags": [],
                     "target": "VNF",
-                    "test": "no test found",
-                    "test_case": "no test found",
-                    "test_file": "no test found",
+                    "test": "",
+                    "test_case": "",
+                    "test_file": "",
                     "title": "",
                     "title_from_content": "",
                     "type_name": "Requirement",
                     "updated": "",
                     "validated_by": "",
-                    "validation_mode": ""
+                    "validation_mode": "static"
                 },
                 "R-99656": {
                     "description": "The VNF **MUST** NOT terminate stable sessions if a VNFC\ninstance fails.",
                     "validation_mode": ""
                 }
             },
-            "needs_amount": 720
+            "needs_amount": 722
         }
     }
 }
\ No newline at end of file