diff options
Diffstat (limited to 'docs/data')
-rw-r--r-- | docs/data/needs.json | 311 |
1 files changed, 184 insertions, 127 deletions
diff --git a/docs/data/needs.json b/docs/data/needs.json index 6c5575e..5dec207 100644 --- a/docs/data/needs.json +++ b/docs/data/needs.json @@ -1,5 +1,5 @@ { - "created": "2018-09-10T21:34:50.919181", + "created": "2018-09-11T09:20:30.974204", "current_version": "casablanca", "project": "", "versions": { @@ -21858,10 +21858,10 @@ "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", @@ -21888,7 +21888,7 @@ "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.", @@ -22286,7 +22286,7 @@ "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", @@ -22311,7 +22311,7 @@ "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", @@ -22628,7 +22628,7 @@ "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", @@ -22653,7 +22653,7 @@ "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.", @@ -23139,7 +23139,7 @@ "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", @@ -23283,7 +23283,7 @@ "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", @@ -23309,7 +23309,7 @@ "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'.", @@ -23805,7 +23805,7 @@ "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", @@ -23824,15 +23824,15 @@ "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.", @@ -23890,7 +23890,7 @@ "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", @@ -23915,7 +23915,7 @@ "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**.", @@ -23977,7 +23977,7 @@ "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", @@ -24004,7 +24004,7 @@ "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.", @@ -24945,7 +24945,7 @@ "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", @@ -24972,7 +24972,7 @@ "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).", @@ -25801,7 +25801,7 @@ "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", @@ -25827,7 +25827,7 @@ "type_name": "Requirement", "updated": "", "validated_by": "", - "validation_mode": "" + "validation_mode": "static" }, "R-20741": { "description": "The xNF **MUST** support ONAP Controller's **Configure** command.", @@ -25943,7 +25943,7 @@ "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", @@ -26305,7 +26305,7 @@ "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", @@ -26335,7 +26335,7 @@ "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", @@ -26361,7 +26361,7 @@ "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.", @@ -26701,7 +26701,7 @@ "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", @@ -26727,7 +26727,7 @@ "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.", @@ -26872,7 +26872,7 @@ "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", @@ -27072,7 +27072,7 @@ "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", @@ -27099,7 +27099,7 @@ "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.", @@ -27132,7 +27132,7 @@ "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", @@ -27159,7 +27159,7 @@ "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}", @@ -27362,7 +27362,7 @@ "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", @@ -27388,7 +27388,7 @@ "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.", @@ -27762,7 +27762,7 @@ "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", @@ -28305,7 +28305,7 @@ "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", @@ -28331,7 +28331,7 @@ "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.", @@ -28447,7 +28447,7 @@ "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", @@ -28561,7 +28561,7 @@ "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", @@ -28704,7 +28704,7 @@ "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", @@ -29243,7 +29243,7 @@ "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", @@ -29269,7 +29269,7 @@ "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.", @@ -29551,7 +29551,7 @@ "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", @@ -29578,7 +29578,7 @@ "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.", @@ -29637,7 +29637,7 @@ "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", @@ -29666,7 +29666,7 @@ "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", @@ -29889,7 +29889,7 @@ "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'.", @@ -29948,7 +29948,7 @@ "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", @@ -29973,10 +29973,10 @@ "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", @@ -29993,7 +29993,7 @@ ], "status": null, "tags": [], - "target": "VNF", + "target": "", "test": "", "test_case": "", "test_file": "", @@ -30002,7 +30002,7 @@ "type_name": "Requirement", "updated": "", "validated_by": "", - "validation_mode": "" + "validation_mode": "static" }, "R-39562": { "description": "The VNF **MUST** disable unnecessary or vulnerable cgi-bin programs.", @@ -30174,7 +30174,7 @@ "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", @@ -30232,7 +30232,7 @@ "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", @@ -30800,7 +30800,7 @@ "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", @@ -30973,7 +30973,7 @@ "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", @@ -30998,10 +30998,10 @@ "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", @@ -31087,7 +31087,7 @@ "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", @@ -31114,7 +31114,7 @@ "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).", @@ -31546,7 +31546,7 @@ "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", @@ -31827,7 +31827,7 @@ "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", @@ -32944,7 +32944,7 @@ "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", @@ -32970,7 +32970,7 @@ "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.", @@ -33090,7 +33090,7 @@ "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", @@ -33115,7 +33115,7 @@ "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.", @@ -33173,7 +33173,7 @@ "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.", @@ -33714,7 +33714,7 @@ "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", @@ -33739,7 +33739,7 @@ "type_name": "Requirement", "updated": "", "validated_by": "", - "validation_mode": "" + "validation_mode": "static" }, "R-56721": { "description": "A VNF's Incremental Module **MAY** utilize nested heat.", @@ -34305,7 +34305,7 @@ "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", @@ -34330,7 +34330,7 @@ "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.", @@ -34391,7 +34391,7 @@ "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", @@ -34903,7 +34903,7 @@ "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", @@ -35560,7 +35560,7 @@ "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", @@ -35585,7 +35585,37 @@ "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.", @@ -35784,7 +35814,7 @@ "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", @@ -36294,7 +36324,7 @@ "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", @@ -36312,15 +36342,15 @@ "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.", @@ -36549,7 +36579,7 @@ "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.", @@ -36951,7 +36981,7 @@ "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", @@ -36976,7 +37006,7 @@ "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.", @@ -37173,7 +37203,7 @@ "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.", @@ -37346,7 +37376,7 @@ "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", @@ -37372,7 +37402,7 @@ "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.", @@ -37717,7 +37747,7 @@ "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", @@ -37861,7 +37891,7 @@ "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", @@ -38118,7 +38148,7 @@ "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", @@ -38144,10 +38174,10 @@ "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", @@ -38172,7 +38202,7 @@ "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.", @@ -38399,7 +38429,7 @@ "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", @@ -38425,7 +38455,7 @@ "type_name": "Requirement", "updated": "", "validated_by": "", - "validation_mode": "" + "validation_mode": "static" }, "R-82811": { "description": "The xNF **MUST** support ONAP Controller's **StartApplication** command.", @@ -39332,7 +39362,7 @@ "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", @@ -39357,7 +39387,7 @@ "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 '_'.", @@ -39696,7 +39726,7 @@ "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", @@ -39722,7 +39752,7 @@ "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.", @@ -39753,7 +39783,7 @@ "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", @@ -39778,7 +39808,7 @@ "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", @@ -40097,7 +40127,7 @@ "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", @@ -40124,7 +40154,7 @@ "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.", @@ -40296,7 +40326,7 @@ "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", @@ -40322,7 +40352,7 @@ "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.", @@ -40383,7 +40413,7 @@ "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", @@ -40409,7 +40439,7 @@ "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.", @@ -40440,7 +40470,7 @@ "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", @@ -40466,10 +40496,10 @@ "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", @@ -40496,7 +40526,7 @@ "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.", @@ -40583,7 +40613,7 @@ "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", @@ -40612,7 +40642,7 @@ "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", @@ -40638,10 +40668,10 @@ "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", @@ -40812,6 +40842,33 @@ "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": "", @@ -41071,7 +41128,7 @@ "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", @@ -41097,7 +41154,7 @@ "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.", @@ -41238,7 +41295,7 @@ "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'.", @@ -41327,7 +41384,7 @@ "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", @@ -42139,15 +42196,15 @@ "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.", @@ -42344,7 +42401,7 @@ "validation_mode": "" } }, - "needs_amount": 720 + "needs_amount": 722 } } }
\ No newline at end of file |