summaryrefslogtreecommitdiffstats
path: root/docs/Chapter5/Tosca.rst
diff options
context:
space:
mode:
Diffstat (limited to 'docs/Chapter5/Tosca.rst')
-rw-r--r--docs/Chapter5/Tosca.rst813
1 files changed, 813 insertions, 0 deletions
diff --git a/docs/Chapter5/Tosca.rst b/docs/Chapter5/Tosca.rst
new file mode 100644
index 0000000..3dbc2f3
--- /dev/null
+++ b/docs/Chapter5/Tosca.rst
@@ -0,0 +1,813 @@
+.. This work is licensed under a Creative Commons Attribution 4.0 International License.
+.. http://creativecommons.org/licenses/by/4.0
+.. Copyright 2017 AT&T Intellectual Property. All rights reserved.
+
+TOSCA YAML
+----------
+
+
+Introduction
+^^^^^^^^^^^^
+
+This reference document is the VNF TOSCA Template Requirements for
+ONAP, which provides recommendations and standards for building VNF
+TOSCA templates compatible with ONAP initial implementations of
+Network Cloud. It has the following features:
+
+1. VNF TOSCA template designer supports GUI and CLI.
+
+2. VNF TOSCA template is aligned to the newest TOSCA protocol, “Working
+ Draft 04-Revision 06”.
+
+3. VNF TOSCA template supports HPA features, such as NUMA, Hyper
+ Threading, SRIOV, etc.
+
+Intended Audience
+^^^^^^^^^^^^^^^^^^
+
+This document is intended for persons developing VNF TOSCA templates
+that will be orchestrated by ONAP.
+
+Scope
+^^^^^^^^^^^^^^^^
+
+ONAP implementations of Network Cloud supports TOSCA Templates, also
+referred to as TOSCA in this document.
+
+ONAP requires the TOSCA Templates to follow a specific format. This
+document provides the mandatory, recommended, and optional requirements
+associated with this format.
+
+Overview
+^^^^^^^^^^^^^^^^
+
+The document includes three charters to help the VNF providers to use the
+VNF model design tools and understand the VNF package structure and VNF
+TOSCA templates.
+
+In the ONAP, VNF Package and VNFD template can be designed by manually
+or via model designer tools. VNF model designer tools can provide the
+GUI and CLI tools for the VNF provider to develop the VNF Package and VNFD
+template.
+
+The VNF package structure is align to the NFV TOSCA protocol, and
+supports CSAR
+
+The VNFD and VNF package are all align to the NFV TOSCA protocol, which
+supports multiple TOSCA template yaml files, and also supports
+self-defined node or other extensions.
+
+NFV TOSCA Template
+^^^^^^^^^^^^^^^^^^^^
+
+TOSCA templates supported by ONAP must follow the requirements
+enumerated in this section.
+
+TOSCA Introduction
+^^^^^^^^^^^^^^^^^^^
+
+TOSCA defines a Meta model for defining IT services. This Meta model
+defines both the structure of a service as well as how to manage it. A
+Topology Template (also referred to as the topology model of a service)
+defines the structure of a service. Plans define the process models that
+are used to create and terminate a service as well as to manage a
+service during its whole lifetime.
+
+A Topology Template consists of a set of Node Templates and Relationship
+Templates that together define the topology model of a service as a (not
+necessarily connected) directed graph. A node in this graph is
+represented by a *Node Template*. A Node Template specifies the
+occurrence of a Node Type as a component of a service. A *Node Type*
+defines the properties of such a component (via *Node Type Properties*)
+and the operations (via *Interfaces*) available to manipulate the
+component. Node Types are defined separately for reuse purposes and a
+Node Template references a Node Type and adds usage constraints, such as
+how many times the component can occur.
+
+|image1|
+
+Figure 1: Structural Elements of Service Template and their Relations
+
+TOSCA Modeling Principles & Data Model
+^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
+
+This section describing TOSCA modeling principles and data model for
+NFV, which shall be based on [TOSCA-1.0] and [TOSCA-Simple-Profile-YAML
+V1.0], or new type based on ETSI NFV requirements, etc.
+
+VNF Descriptor Template
+^^^^^^^^^^^^^^^^^^^^^^^^^
+
+The VNF Descriptor (VNFD) describes the topology of the VNF by means of
+ETSI NFV IFA011 [IFA011] terms such as VDUs, Connection Points, Virtual
+Links, External Connection Points, Scaling Aspects, Instantiation Levels
+and Deployment Flavours.
+
+The VNFD (VNF Descriptor) is read by both the NFVO and the VNFM. It
+represents the contract & interface of a VNF and ensures the
+interoperability across the NFV functional blocks.
+
+The main parts of the VNFD are the following:
+
+- VNF topology: it is modeled in a cloud agnostic way using virtualized
+ containers and their connectivity. Virtual Deployment Units (VDU)
+ describe the capabilities of the virtualized containers, such as
+ virtual CPU, RAM, disks; their connectivity is modeled with VDU
+ Connection Point Descriptors (VduCpd), Virtual Link Descriptors (Vld)
+ and VNF External Connection Point Descriptors (VnfExternalCpd);
+
+- VNF deployment aspects: they are described in one or more deployment
+ flavours, including instantiation levels, supported LCM operations,
+ VNF LCM operation configuration parameters, placement constraints
+ (affinity / antiaffinity), minimum and maximum VDU instance numbers,
+ and scaling aspect for horizontal scaling.
+
+The following table defines the TOSCA Type “derived from” values that
+SHALL be used when using the TOSCA Simple Profile for NFV version 1.0
+specification [TOSCA-Simple-Profile-NFV-v1.0] for NFV VNFD with aggreed
+changes from ETSI SOL001 draft.
+
++---------------------+------------------------------------+-----------------+
+| **ETSI NFV Element**| **TOSCA VNFD** | **Derived from**|
+| | | |
+| **[IFA011]** | **[TOSCA-Simple-Profile-NFV-v1.0]**| |
++=====================+====================================+=================+
+| VNF | tosca.nodes.nfv.VNF | tosca.nodes.Root|
++---------------------+------------------------------------+-----------------+
+| Cpd (Connection | tosca.nodes.nfv.Cp | tosca.nodes.Root|
+| Point) | tosca.nodes.nfv.Cp | tosca.nodes.Root|
++---------------------+------------------------------------+-----------------+
+| VduCpd (internal | tosca.nodes.nfv.VduCp | tosca.nodes.\ |
+| connection point) | | nfv.Cp |
++---------------------+------------------------------------+-----------------+
+| VnfVirtualLinkDesc | tosca.nodes.nfv.VnfVirtualLink | tosca.nodes.Root|
+| (Virtual Link) | | |
++---------------------+------------------------------------+-----------------+
+| VDU Virtual Storage | tosca.nodes.nfv.VDU.VirtualStorage | tosca.nodes.Root|
++---------------------+------------------------------------+-----------------+
+| VDU Virtual Compute | tosca.nodes.nfv.VDU.Compute | tosca.nodes.Root|
++---------------------+------------------------------------+-----------------+
+| Software Image | | |
++---------------------+------------------------------------+-----------------+
+| Deployment Flavour | | |
++---------------------+------------------------------------+-----------------+
+| Scaling Aspect | | |
++---------------------+------------------------------------+-----------------+
+| Element Group | | |
++---------------------+------------------------------------+-----------------+
+| Instantiation | | |
+| Level | | |
++---------------------+------------------------------------+-----------------+
+
+
++--------------------------------------------------------------------+
+| +--------------------------------------------------------------+ |
+| | tosca\_definitions\_version: tosca\_simple\_yaml\_1\_0 | |
+| | | |
+| | description: VNFD TOSCA file demo | |
+| | | |
+| | imports: | |
+| | | |
+| | - TOSCA\_definition\_nfv\_1\_0.yaml | |
+| | | |
+| | - TOSCA\_definition\_nfv\_ext\_1\_0.yaml | |
+| | | |
+| | | **node\_types: | |
+| | tosca.nodes.nfv.VNF.vOpenNAT: | |
+| | derived\_from:** tosca.nodes.nfv.VNF | |
+| | | **requirements: | |
+| | **- **sriov\_plane: | |
+| | capability:** tosca.capabilities.nfv.VirtualLinkable | |
+| | | **node:** tosca.nodes.nfv.VnfVirtualLinkDesc | |
+| | | **relationship:** tosca.relationships.nfv.VirtualLinksTo | |
+| +--------------------------------------------------------------+ |
++====================================================================+
++--------------------------------------------------------------------+
+
+HPA Requirements
+^^^^^^^^^^^^^^^^^^
+
+1. SR-IOV Passthrought
+
+Definitions of SRIOV\_Port are necessary if VDU supports SR-IOV. Here is
+an example.
+
++------------------------------------------------+
+| node\_templates: |
+| |
+| vdu\_vNat: |
+| |
+| SRIOV\_Port: |
+| |
+| attributes: |
+| |
+| tosca\_name: SRIOV\_Port |
+| |
+| properties: |
+| |
+| virtual\_network\_interface\_requirements: |
+| |
+| - name: sriov |
+| |
+| support\_mandatory: false |
+| |
+| description: sriov |
+| |
+| requirement: |
+| |
+| SRIOV: true |
+| |
+| role: root |
+| |
+| description: sriov port |
+| |
+| layer\_protocol: ipv4 |
+| |
+| requirements: |
+| |
+| - virtual\_binding: |
+| |
+| capability: virtual\_binding |
+| |
+| node: vdu\_vNat |
+| |
+| relationship: |
+| |
+| type: tosca.relationships.nfv.VirtualBindsTo |
+| |
+| - virtual\_link: |
+| |
+| node: tosca.nodes.Root |
+| |
+| type: tosca.nodes.nfv.VduCpd |
+| |
+| substitution\_mappings: |
+| |
+| requirements: |
+| |
+| sriov\_plane: |
+| |
+| - SRIOV\_Port |
+| |
+| - virtual\_link |
+| |
+| node\_type: tosca.nodes.nfv.VNF.vOpenNAT |
++------------------------------------------------+
+
+2. Hugepages
+
+Definitions of mem\_page\_size as one property shall be added to
+Properties and set the value to large if one VDU node supports
+huagepages. Here is an example.
+
++----------------------------------+
+| node\_templates: |
+| |
+| vdu\_vNat: |
+| |
+| Hugepages: |
+| |
+| attributes: |
+| |
+| tosca\_name: Huge\_pages\_demo |
+| |
+| properties: |
+| |
+| mem\_page\_size:large |
++==================================+
++----------------------------------+
+
+3. NUMA (CPU/Mem)
+
+Likewise, we shall add definitions of numa to
+requested\_additional\_capabilities if we wand VUD nodes to support
+NUMA. Here is an example.
+
++-------------------------------------------------+
+| topology\_template: |
+| |
+| node\_templates: |
+| |
+| vdu\_vNat: |
+| |
+| capabilities: |
+| |
+| virtual\_compute: |
+| |
+| properties: |
+| |
+| virtual\_memory: |
+| |
+| numa\_enabled: true |
+| |
+| virtual\_mem\_size: 2 GB |
+| |
+| requested\_additional\_capabilities: |
+| |
+| numa: |
+| |
+| support\_mandatory: true |
+| |
+| requested\_additional\_capability\_name: numa |
+| |
+| target\_performance\_parameters: |
+| |
+| hw:numa\_nodes: "2" |
+| |
+| hw:numa\_cpus.0: "0,1" |
+| |
+| hw:numa\_mem.0: "1024" |
+| |
+| hw:numa\_cpus.1: "2,3,4,5" |
+| |
+| hw:numa\_mem.1: "1024" |
++-------------------------------------------------+
+
+4. Hyper-Theading
+
+Definitions of Hyper-Theading are necessary as one of
+requested\_additional\_capabilities of one VUD node if that node
+supports Hyper-Theading. Here is an example.
+
++-------------------------------------------------------------+
+| topology\_template: |
+| |
+| node\_templates: |
+| |
+| vdu\_vNat: |
+| |
+| capabilities: |
+| |
+| virtual\_compute: |
+| |
+| properties: |
+| |
+| virtual\_memory: |
+| |
+| numa\_enabled: true |
+| |
+| virtual\_mem\_size: 2 GB |
+| |
+| requested\_additional\_capabilities: |
+| |
+| hyper\_threading: |
+| |
+| support\_mandatory: true |
+| |
+| requested\_additional\_capability\_name: hyper\_threading |
+| |
+| target\_performance\_parameters: |
+| |
+| hw:cpu\_sockets : "2" |
+| |
+| hw:cpu\_threads : "2" |
+| |
+| hw:cpu\_cores : "2" |
+| |
+| hw:cpu\_threads\_policy: "isolate" |
++-------------------------------------------------------------+
+
+5. OVS+DPDK
+
+Definitions of ovs\_dpdk are necessary as one of
+requested\_additional\_capabilities of one VUD node if that node
+supports dpdk. Here is an example.
+
++------------------------------------------------------+
+| topology\_template: |
+| |
+| node\_templates: |
+| |
+| vdu\_vNat: |
+| |
+| capabilities: |
+| |
+| virtual\_compute: |
+| |
+| properties: |
+| |
+| virtual\_memory: |
+| |
+| numa\_enabled: true |
+| |
+| virtual\_mem\_size: 2 GB |
+| |
+| requested\_additional\_capabilities: |
+| |
+| ovs\_dpdk: |
+| |
+| support\_mandatory: true |
+| |
+| requested\_additional\_capability\_name: ovs\_dpdk |
+| |
+| target\_performance\_parameters: |
+| |
+| sw:ovs\_dpdk: "true" |
++------------------------------------------------------+
+
+NFV TOSCA Type Definition
+^^^^^^^^^^^^^^^^^^^^^^^^^^^^
+
+tosca.capabilites.nfv.VirtualCompute
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+
+This capability is used with the properties specified in ETSI SOL001 draft.
+
+tosca.nodes.nfv.VDU.Compute
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+
+The NFV Virtualization Deployment Unit (VDU) compute node type
+represents a VDU entity which it describes the deployment and
+operational behavior of a VNF component (VNFC), as defined by **[ETSI
+NFV IFA011].**
+
++-----------------------+-------------------------------+
+| Shorthand Name | VDU.Compute |
++=======================+===============================+
+| Type Qualified Name | tosca:VDU.Compute |
++-----------------------+-------------------------------+
+| Type URI | tosca.nodes.nfv.VDU.Compute |
++-----------------------+-------------------------------+
+| derived\_from | tosca.nodes.Compute |
++-----------------------+-------------------------------+
+
+
+
+Attributes
+++++++++++++
+
+None
+
+
+Capabilities
+++++++++++++++
+
++------------+--------------------+------------+------------------------------+
+| Name | Type | Constraints| Description |
++============+====================+============+==============================+
+| virtual\ | tosca.\ | | Describes virtual compute |
+| _compute | capabilities.nfv.\ | | resources capabilities. |
+| | VirtualCompute | | |
++------------+--------------------+------------+------------------------------+
+| monitoring\| tosca.\ | None | Monitoring parameter, which |
+| _parameter | capabilities.nfv.\ | | can be tracked for a VNFC |
+| | Metric | | based on this VDU |
+| | | | |
+| | | | Examples include: |
+| | | | memory-consumption, |
+| | | | CPU-utilisation, |
+| | | | bandwidth-consumption, VNFC |
+| | | | downtime, etc. |
++------------+--------------------+------------+------------------------------+
+| Virtual\ | tosca.\ | | Defines ability of |
+| _binding | capabilities.nfv.\ | | VirtualBindable |
+| | VirtualBindable | | |
+| | | | |
+| | editor note: need | | |
+| | to create a | | |
+| | capability type | | |
++------------+--------------------+------------+------------------------------+
+
+Definition
+++++++++++++
+
++-----------------------------------------------------------------------------+
+| tosca.nodes.nfv.VDU.Compute: |
+| |
+| derived\_from: tosca.nodes.Compute |
+| |
+| properties: |
+| |
+| name: |
+| |
+| type: string |
+| |
+| required: true |
+| |
+| description: |
+| |
+| type: string |
+| |
+| required: true |
+| |
+| boot\_order: |
+| |
+| type: list # explicit index (boot index) not necessary, contrary to IFA011 |
+| |
+| entry\_schema: |
+| |
+| type: string |
+| |
+| required: false |
+| |
+| nfvi\_constraints: |
+| |
+| type: list |
+| |
+| entry\_schema: |
+| |
+| type: string |
+| |
+| required: false |
+| |
+| configurable\_properties: |
+| |
+| type: map |
+| |
+| entry\_schema: |
+| |
+| type: tosca.datatypes.nfv.VnfcConfigurableProperties |
+| |
+| required: true  |
+| |
+| attributes: |
+| |
+| private\_address: |
+| |
+| status: deprecated |
+| |
+| public\_address: |
+| |
+| status: deprecated |
+| |
+| networks: |
+| |
+| status: deprecated |
+| |
+| ports: |
+| |
+| status: deprecated |
+| |
+| capabilities: |
+| |
+| virtual\_compute: |
+| |
+| type: tosca.capabilities.nfv.VirtualCompute |
+| |
+| virtual\_binding: |
+| |
+| type: tosca.capabilities.nfv.VirtualBindable |
+| |
+| #monitoring\_parameter: |
+| |
+| # modeled as ad hoc (named) capabilities in VDU node template |
+| |
+| # for example: |
+| |
+| #capabilities: |
+| |
+| # cpu\_load: tosca.capabilities.nfv.Metric |
+| |
+| # memory\_usage: tosca.capabilities.nfv.Metric |
+| |
+| host: #Editor note: FFS. How this capabilities should be used in NFV Profile|
+| |
+| type: `*tosca.capabilities.Container* <#DEFN_TYPE_CAPABILITIES_CONTAINER>`__|
+| |
+| valid\_source\_types: |
+| [`*tosca.nodes.SoftwareComponent* <#DEFN_TYPE_NODES_SOFTWARE_COMPONENT>`__] |
+| |
+| occurrences: [0,UNBOUNDED] |
+| |
+| endpoint: |
+| |
+| occurrences: [0,0] |
+| |
+| os: |
+| |
+| occurrences: [0,0] |
+| |
+| scalable: |
+| #Editor note: FFS. How this capabilities should be used in NFV Profile |
+| |
+| type: `*tosca.capabilities.Scalable* <#DEFN_TYPE_CAPABILITIES_SCALABLE>`__ |
+| |
+| binding: |
+| |
+| occurrences: [0,UNBOUND] |
+| |
+| requirements: |
+| |
+| - virtual\_storage: |
+| |
+| capability: tosca.capabilities.nfv.VirtualStorage |
+| |
+| relationship: tosca.relationships.nfv.VDU.AttachedTo |
+| |
+| node: tosca.nodes.nfv.VDU.VirtualStorage |
+| |
+| occurences: [ 0, UNBOUNDED ] |
+| |
+| - local\_storage: #For NFV Profile, this requirement is deprecated. |
+| |
+| occurrences: [0,0] |
+| |
+| artifacts: |
+| |
+| - sw\_image: |
+| |
+| file: |
+| |
+| type: tosca.artifacts.nfv.SwImage |
++-----------------------------------------------------------------------------+
+
+Artifact
+++++++++++
+
+Note: currently not supported.
+
++--------+---------+----------------+------------+------------------------+
+| Name | Required| Type | Constraints| Description |
++========+=========+================+============+========================+
+| SwImage| Yes | tosca.\ | | Describes the software |
+| | | artifacts.nfv.\| | image which is directly|
+| | | SwImage | | realizing this virtual |
+| | | | | storage |
++--------+---------+----------------+------------+------------------------+
+
+
+|image2|
+
+
+
+tosca.nodes.nfv.VDU.VirtualStorage
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+
+The NFV VirtualStorage node type represents a virtual storage entity
+which it describes the deployment and operational behavior of a virtual
+storage resources, as defined by **[ETSI NFV IFA011].**
+
+**[editor note]** open issue: should NFV profile use the current storage
+model as described in YAML 1.1. Pending on Shitao proposal (see
+NFVIFA(17)000110 discussion paper)
+
+**[editor note]** new relationship type as suggested in Matt
+presentation. Slide 8. With specific rules of “valid\_target\_type”
+
++---------------------------+--------------------------------------+
+| **Shorthand Name** | VirtualStorage |
++===========================+======================================+
+| **Type Qualified Name** | tosca: VirtualStorage |
++---------------------------+--------------------------------------+
+| **Type URI** | tosca.nodes.nfv.VDU.VirtualStorage |
++---------------------------+--------------------------------------+
+| **derived\_from** | tosca.nodes.Root |
++---------------------------+--------------------------------------+
+
+tosca.artifacts.nfv.SwImage
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+
++---------------------------+------------------------------------+
+| **Shorthand Name** | SwImage |
++===========================+====================================+
+| **Type Qualified Name** | tosca:SwImage |
++---------------------------+------------------------------------+
+| **Type URI** | tosca.artifacts.nfv.SwImage |
++---------------------------+------------------------------------+
+| **derived\_from** | tosca.artifacts.Deployment.Image |
++---------------------------+------------------------------------+
+
+Properties
+++++++++++++
+
++-----------------+---------+----------+------------+-------------------------+
+| Name | Required| Type | Constraints| Description |
++=================+=========+==========+============+=========================+
+| name | yes | string | | Name of this software |
+| | | | | image |
++-----------------+---------+----------+------------+-------------------------+
+| version | yes | string | | Version of this software|
+| | | | | image |
++-----------------+---------+----------+------------+-------------------------+
+| checksum | yes | string | | Checksum of the software|
+| | | | | image file |
++-----------------+---------+----------+------------+-------------------------+
+| container\ | yes | string | | The container format |
+| _format | | | | describes the container |
+| | | | | file format in which |
+| | | | | software image is |
+| | | | | provided. |
++-----------------+---------+----------+------------+-------------------------+
+| disk\_format | yes | string | | The disk format of a |
+| | | | | software image is the |
+| | | | | format of the underlying|
+| | | | | disk image |
++-----------------+---------+----------+------------+-------------------------+
+| min\_disk | yes | scalar-\ | | The minimal disk size |
+| | | unit.size| | requirement for this |
+| | | | | software image. |
++-----------------+---------+----------+------------+-------------------------+
+| min\_ram | no | scalar-\ | | The minimal RAM |
+| | | unit.size| | requirement for this |
+| | | | | software image. |
++-----------------+---------+----------+------------+-------------------------+
+| Size | yes | scalar-\ | | The size of this |
+| | | unit.size| | software image |
++-----------------+---------+----------+------------+-------------------------+
+| sw\_image | yes | string | | A reference to the |
+| | | | | actual software image |
+| | | | | within VNF Package, or |
+| | | | | url. |
++-----------------+---------+----------+------------+-------------------------+
+| operating\ | no | string | | Identifies the operating|
+| _system | | | | system used in the |
+| | | | | software image. |
++-----------------+---------+----------+------------+-------------------------+
+| supported\ | no | list | | Identifies the |
+| _virtualization\| | | | virtualization |
+| _enviroment | | | | environments (e.g. |
+| | | | | hypervisor) compatible |
+| | | | | with this software image|
++-----------------+---------+----------+------------+-------------------------+
+
+Definition
++++++++++++
+
++-----------------------------------------------------+
+| tosca.artifacts.nfv.SwImage: |
+| |
+|   derived\_from: tosca.artifacts.Deployment.Image |
+| |
+|   properties or metadata: |
+| |
+|     #id: |
+| |
+|       # node name |
+| |
+|     name: |
+| |
+|       type: string |
+| |
+| required: true |
+| |
+|     version: |
+| |
+|       type: string |
+| |
+| required: true |
+| |
+|     checksum: |
+| |
+|       type: string |
+| |
+| required: true |
+| |
+|     container\_format: |
+| |
+|       type: string |
+| |
+| required: true |
+| |
+|     disk\_format: |
+| |
+|       type: string |
+| |
+| required: true |
+| |
+|     min\_disk: |
+| |
+|       type: scalar-unit.size # Number |
+| |
+| required: true |
+| |
+|     min\_ram: |
+| |
+|       type: scalar-unit.size # Number |
+| |
+| required: false |
+| |
+|     size: |
+| |
+|       type: scalar-unit.size # Number |
+| |
+| required: true |
+| |
+|     sw\_image: |
+| |
+|       type: string |
+| |
+| required: true |
+| |
+|     operating\_system: |
+| |
+|       type: string |
+| |
+| required: false |
+| |
+|     supported\_virtualisation\_environments: |
+| |
+|       type: list |
+| |
+|       entry\_schema: |
+| |
+|         type: string |
+| |
+| required: false |
++-----------------------------------------------------+
+
+.. |image1| image:: Image1.png
+ :width: 5.76806in
+ :height: 4.67161in
+.. |image2| image:: Image2.png
+ :width: 5.40486in
+ :height: 2.46042in