DM modification to align with R2 DM clean version 03/59103/38
authorliang ding <liang.ding@intel.com>
Fri, 3 Aug 2018 08:26:04 +0000 (01:26 -0700)
committerAvi Gaffa <avi.gaffa@amdocs.com>
Thu, 27 Sep 2018 10:58:14 +0000 (10:58 +0000)
Change-Id: Ifcb5d3e644f46e4c9a4467e28b0dd7616b485497
Issue-ID: SDC-1415
Signed-off-by: liang ding <liang.ding@intel.com>
catalog-be/src/main/resources/import/tosca/capability-types/capabilityTypes.yml
catalog-be/src/main/resources/import/tosca/data-types/dataTypes.yml
catalog-be/src/main/resources/import/tosca/nfv-types/VNF/VNF.yml
catalog-be/src/main/resources/import/tosca/nfv-types/vduCompute/vduCompute.yml
catalog-be/src/main/resources/import/tosca/nfv-types/vduVirtualStorage/vduVirtualStorage.yml
catalog-be/src/main/resources/import/tosca/relationship-types/relationshipTypes.yml
common/onap-tosca-datatype/src/main/resources/globalTypes/onap/capabilities.yml
common/onap-tosca-datatype/src/main/resources/globalTypes/onap/data.yml
common/onap-tosca-datatype/src/main/resources/globalTypes/onap/nodes.yml
common/onap-tosca-datatype/src/main/resources/globalTypes/onap/relationships.yml
openecomp-be/lib/openecomp-sdc-enrichment-lib/openecomp-sdc-enrichment-impl/src/test/resources/mock/toscaGlobalServiceTemplates/openecomp/nodes.yml

index b647651..384b7e1 100644 (file)
@@ -233,9 +233,11 @@ tosca.capabilities.nfv.VirtualCompute:
     logical_node:
       type: tosca.datatypes.nfv.LogicalNodeData
       required: false
-#    compute_requirements: Type is TBD
-#      type: map
-#      required: false
+    compute_requirements:
+      type: map
+      entry_schema:
+        type: string
+      required: false
     requested_additional_capabilities:
       type: map
       entry_schema:
index 169ecb0..0a8a37b 100644 (file)
@@ -1399,6 +1399,7 @@ tosca.datatypes.nfv.VirtualNetworkInterfaceRequirements:
       required: true
     requirement:
       type: string      # not specified
+      required: false
     network_interface_requirements:
       type: map
       entry_schema:
@@ -1448,11 +1449,13 @@ tosca.datatypes.nfv.L3AddressData:
         type: string
       required: false
 tosca.datatypes.nfv.AddressData:
+  derived_from: tosca.datatypes.Root
   properties: 
     address_type: 
       constraints: 
       - valid_values: [mac_address, ip_address]
       type: string
+      required: true
     l2_address_data: 
       required: false
       type: tosca.datatypes.nfv.L2AddressData
@@ -1556,7 +1559,7 @@ tosca.datatypes.nfv.VduProfile:
       required: true
     vmBootUpTimeOut: #Align with ONAP R2 IM. not defined in IFA011 v2.4.1 and SOL001 v.6.0
       type: integer
-      required: optional
+      required: false
 tosca.datatypes.nfv.LinkBitRateRequirements:
   derived_from: tosca.datatypes.Root
   properties:
@@ -1577,6 +1580,8 @@ tosca.datatypes.nfv.Qos:
       required: true
     packet_loss_ratio:
       type: float #Number [0 ..1]
+      constraints:
+        - in_range: [ 0.0, 1.0 ]
       required: false
 tosca.datatypes.nfv.VlProfile:
   derived_from: tosca.datatypes.Root
@@ -1752,16 +1757,24 @@ tosca.datatypes.nfv.VnfConfigurableProperties:
 #    additional_configurable_properties:
 #      type: tosca.datatypes.nfv.VnfAdditionalConfigurableProperties
 #      required: false
-#tosca.datatypes.nfv.VnfInfoModifiableAttributesExtensions:
-#  derived_from: tosca.datatypes.Root
-#tosca.datatypes.nfv.VnfInfoModifiableAttributesMetadata:
-#  derived_from: tosca.datatypes.Root
-#tosca.datatypes.nfv.VnfInfoModifiableAttributes:
-#  derived_from: tosca.datatypes.Root
-#  properties:
-#    extensions:
-#      type: tosca.datatypes.nfv.VnfInfoModifiableAttributesExtensions
-#      required: false
-#    metadata:
-#      type: tosca.datatypes.nfv.VnfInfoModifiableAttributesMetadata
-#      required: false
+tosca.datatypes.nfv.VnfInfoModifiableAttributesExtensions:
+  derived_from: tosca.datatypes.Root
+  properties:
+    description:
+      type: string
+      required: false
+tosca.datatypes.nfv.VnfInfoModifiableAttributesMetadata:
+  derived_from: tosca.datatypes.Root
+  properties:
+    description:
+      type: string
+      required: false
+tosca.datatypes.nfv.VnfInfoModifiableAttributes:
+  derived_from: tosca.datatypes.Root
+  properties:
+    extensions:
+      type: tosca.datatypes.nfv.VnfInfoModifiableAttributesExtensions
+      required: false
+    metadata:
+      type: tosca.datatypes.nfv.VnfInfoModifiableAttributesMetadata
+      required: false
index f0800a8..5eeedba 100644 (file)
@@ -40,16 +40,16 @@ node_types:
         configurable_properties:
           type: tosca.datatypes.nfv.VnfConfigurableProperties
           required: false
-#        modifiable_attributes:
-#          type: tosca.datatypes.nfv.VnfInfoModifiableAttributes
-#          required: false  # true in IFA011, but all of members are false. Align with the IM, it is false
+        modifiable_attributes:
+          type: tosca.datatypes.nfv.VnfInfoModifiableAttributes
+          required: false  # true in IFA011, but all of members are false. Align with the IM, it is false
         flavour_id:
           type: string
           required: true 
         flavour_description:
           type: string
           required: true 
-      capabilities:
+      #capabilities:
           # monitoring_parameter:
           # modelled as ad hoc capabilities in the VNF node template
       requirements:
@@ -62,4 +62,4 @@ node_types:
             - UNBOUNDED
       interfaces:
         Nfv:
-          type: tosca.interfaces.node.lifecycle.Standard
+          type: tosca.interfaces.nfv.vnf.lifecycle.Nfv
index 37e4c5e..64bf536 100644 (file)
@@ -55,11 +55,11 @@ node_types:
         - virtual_storage:
             capability: tosca.capabilities.nfv.VirtualStorage
             relationship: tosca.relationships.nfv.Vdu.AttachedTo
-            node: tosca.nodes.nfv.VDU.VirtualStorage
+            node: tosca.nodes.nfv.Vdu.VirtualStorage
             occurences:
             - 0
             - UNBOUNDED
-      artifacts:   
-        - sw_image:
-            file:   
-            type: tosca.artifacts.nfv.SwImage
\ No newline at end of file
+      #artifacts: artifacts should be defined in template file instead of node type  
+      #  - sw_image:
+      #      file:   
+      #      type: tosca.artifacts.nfv.SwImage
index 12fb306..2b3c1dc 100644 (file)
@@ -24,7 +24,7 @@ node_types:
       capabilities:
         virtual_storage:
           type: tosca.capabilities.nfv.VirtualStorage
-      artifacts: 
-        - sw_image:
-            file:      
-            type: tosca.artifacts.Deployment.Image
+     # artifacts: artifacts should be defined in template file instead of node type 
+     #   - sw_image:
+     #       file:      
+     #       type: tosca.artifacts.Deployment.Image
index 2ed8c0e..4506fa1 100644 (file)
@@ -126,4 +126,8 @@ tosca.relationships.nfv.VirtualBindsTo:
 tosca.relationships.nfv.VirtualLinksTo:
     derived_from: tosca.relationships.DependsOn
     valid_target_types:
-    - tosca.capabilities.nfv.VirtualLinkable
\ No newline at end of file
+    - tosca.capabilities.nfv.VirtualLinkable
+
+tosca.relationships.nfv.Vdu.AttachedTo:
+  derived_from: tosca.relationships.DependsOn
+  valid_target_types: [ tosca.capabilities.nfv.VirtualStorage ]
index e37169b..9338276 100644 (file)
@@ -42,9 +42,11 @@ capability_types:
       logical_node:
         type: tosca.datatypes.nfv.LogicalNodeData
         required: false
-        #compute_requirements: Type is TBD
-        #type: map
-        #required: false
+      compute_requirements:
+        type: map
+        entry_schema:
+          type: string
+        required: false
       requested_additional_capabilities:
         type: map
         entry_schema:
@@ -82,4 +84,5 @@ capability_types:
     derived_from: tosca.capabilities.Root
 
   tosca.capabilities.nfv.ext.LocalAttachment:
-    derived_from: tosca.capabilities.Root
\ No newline at end of file
+    derived_from: tosca.capabilities.Root
+
index 36f2ae3..b5cdaec 100644 (file)
@@ -48,7 +48,7 @@ data_types:
     derived_from: tosca.datatypes.Root
     properties:
       virtual_mem_size:
-        type: string
+        type: scalar-unit.size
         required: true
       virtual_mem_oversubscription_policy:
         type: string
@@ -106,6 +106,7 @@ data_types:
           type: string
         required: false
   tosca.datatypes.nfv.VnfcConfigurableProperties:
+    derived_from: tosca.datatypes.Root
     properties:
       additional_vnfc_configurable_properties:
         entry_schema:
@@ -162,12 +163,15 @@ data_types:
         required: true
       dest_path:
         type: string
+        required: true
   tosca.datatype.nfv.AddressData:
+    derived_from: tosca.datatypes.Root
     properties:
       address_type:
         constraints:
         - valid_values: [mac_address, ip_address]
         type: string
+        required: true
       l2_address_data:
         required: false
         type: tosca.datatypes.nfv.L2AddressData
@@ -181,17 +185,13 @@ data_types:
         type: boolean
         required: true
   tosca.datatypes.nfv.ConnectivityType:
+    derived_from: tosca.datatypes.Root
     properties:
       layer_protocol:
         constraints:
-        - valid_values:
-          - ethernet
-          - mpls
-          - odu2
-          - ipv4
-          - ipv6
-          - pseudo_wire
+          - valid_values: [ethernet, mpls, odu2, ipv4, ipv6, pseudo_wire ]
         type: string
+        required: true
       flow_pattern:
         required: false
         type: string
@@ -277,7 +277,7 @@ data_types:
         required: true
       vmBootUpTimeOut: #Align with ONAP R2 IM. not defined in IFA011 v2.4.1 and SOL001 v.6.0
         type: integer
-        required: optional
+        required: false
   tosca.datatypes.nfv.LinkBitRateRequirements:
     derived_from: tosca.datatypes.Root
     properties:
@@ -298,6 +298,8 @@ data_types:
         required: true
       packet_loss_ratio:
         type: float #Number [0 ..1]
+        constraints:
+          - in_range: [ 0.0, 1.0 ]
         required: false
   tosca.datatypes.nfv.VlProfile:
     derived_from: tosca.datatypes.Root
@@ -391,9 +393,12 @@ data_types:
         required: false
         entry_schema:
           type: tosca.datatypes.nfv.ScaleInfo
-  #tosca.datatypes.nfv.VnfInstantiateOperationConfiguration:
-  #  derived_from: tosca.datatypes.Root
-    #properties:
+  tosca.datatypes.nfv.VnfInstantiateOperationConfiguration:
+    derived_from: tosca.datatypes.Root
+    properties:
+      description:
+        type: string
+        required: false
       #parameters:
          #modeled as part of operation parameter list
   tosca.datatypes.nfv.VnfScaleOperationConfiguration:
@@ -436,8 +441,8 @@ data_types:
   tosca.datatypes.nfv.VnfLcmOperationsConfiguration:
     derived_from: tosca.datatypes.Root
     properties:
-      #    instantiate:
-      #      type: tosca.datatypes.nfv.VnfInstantiateOperationConfiguration
+      instantiate:
+        type: tosca.datatypes.nfv.VnfInstantiateOperationConfiguration
       scale:
         type: tosca.datatypes.nfv.VnfScaleOperationConfiguration
       scale_to_level:
@@ -459,8 +464,12 @@ data_types:
       address_data:
         type: tosca.datatypes.nfv.AddressData
         required: false
-  #tosca.datatypes.nfv.VnfAdditionalConfigurableProperties:
-  #  derived_from: tosca.datatypes.Root
+  tosca.datatypes.nfv.VnfAdditionalConfigurableProperties:
+    derived_from: tosca.datatypes.Root
+    properties:
+      description:
+        type: string
+        required: false
   tosca.datatypes.nfv.VnfConfigurableProperties:
     derived_from: tosca.datatypes.Root
     properties:
@@ -470,19 +479,27 @@ data_types:
       is_autoheal_enabled:
         type: boolean
         required: false
-  #    additional_configurable_properties:
-  #      type: tosca.datatypes.nfv.VnfAdditionalConfigurableProperties
-  #      required: false
-  #tosca.datatypes.nfv.VnfInfoModifiableAttributesExtensions:
-  #  derived_from: tosca.datatypes.Root
-  #tosca.datatypes.nfv.VnfInfoModifiableAttributesMetadata:
-  #  derived_from: tosca.datatypes.Root
-  #tosca.datatypes.nfv.VnfInfoModifiableAttributes:
-  #  derived_from: tosca.datatypes.Root
-  #  properties:
-  #    extensions:
-  #      type: tosca.datatypes.nfv.VnfInfoModifiableAttributesExtensions
-  #      required: false
-  #    metadata:
-  #      type: tosca.datatypes.nfv.VnfInfoModifiableAttributesMetadata
-  #      required: false
+      additional_configurable_properties:
+        type: tosca.datatypes.nfv.VnfAdditionalConfigurableProperties
+        required: false
+  tosca.datatypes.nfv.VnfInfoModifiableAttributesExtensions:
+    derived_from: tosca.datatypes.Root
+    properties:
+      description:
+        type: string
+        required: false
+  tosca.datatypes.nfv.VnfInfoModifiableAttributesMetadata:
+    derived_from: tosca.datatypes.Root
+    properties:
+      description:
+        type: string
+        required: false
+  tosca.datatypes.nfv.VnfInfoModifiableAttributes:
+    derived_from: tosca.datatypes.Root
+    properties:
+      extensions:
+        type: tosca.datatypes.nfv.VnfInfoModifiableAttributesExtensions
+        required: false
+      metadata:
+        type: tosca.datatypes.nfv.VnfInfoModifiableAttributesMetadata
+        required: false
index f6a7c90..369dfb0 100644 (file)
@@ -17,7 +17,7 @@ tosca_definitions_version: tosca_simple_yaml_1_1
 metadata:
   filename: onap/nodes.yml
   version: '1.0'
-  
+
 imports:
 - onap_index:
     file: _index.yml
@@ -142,21 +142,21 @@ node_types:
           type: string
         required: false
       configurable_properties:
-         type: map   #In the IM, the multipilicity of VnfcConfigurableProperties is 1, not a map.
-         entry_schema:
-            type: tosca.datatypes.nfv.VnfcConfigurableProperties
-         required: true
+        type: map   #In the IM, the multipilicity of VnfcConfigurableProperties is 1, not a map.
+        entry_schema:
+          type: tosca.datatypes.nfv.VnfcConfigurableProperties
+        required: true
       vdu_profile:
-         type: tosca.datatypes.nfv.VduProfile
-         required: true
+        type: tosca.datatypes.nfv.VduProfile
+        required: true
       inject_files: # Used for vCPE usecase Aligned with ONAP R2 IM. not defined in IFA011 v2.4.1 and SOL001 v0.6.0.
-         type: tosca.datatypes.nfv.injectFile
-         required: false  #Aligned with ONAP R2 IM. it should be false.
+        type: tosca.datatypes.nfv.injectFile
+        required: false  #Aligned with ONAP R2 IM. it should be false.
       meta_data: #metadata attached to the VM or container
-         type: map
-         entry_schema:
-           type: string
-         required: false
+        type: map
+        entry_schema:
+          type: string
+        required: false
       user_data: #cloudinit userdata script support
         type: string
         required: false
@@ -174,17 +174,17 @@ node_types:
         - 0
         - UNBOUNDED
     requirements:
-    - virtual_storage:
-        capability: tosca.capabilities.nfv.VirtualStorage
-        relationship: tosca.relationships.nfv.Vdu.AttachedTo
-        node: tosca.nodes.nfv.VDU.VirtualStorage
-        occurences:
-        - 0
-        - UNBOUNDED 
-    artifacts:
-      sw_image:
-        file:
-        type: tosca.artifacts.nfv.SwImage
+      - virtual_storage:
+          capability: tosca.capabilities.nfv.VirtualStorage
+          relationship: tosca.relationships.nfv.Vdu.AttachedTo
+          node: tosca.nodes.nfv.Vdu.VirtualStorage
+          occurences:
+          - 0
+          - UNBOUNDED
+    #artifacts: artifacts should be defined in template file instead of node type
+    #  sw_image:
+    #    file:
+    #    type: tosca.artifacts.nfv.SwImage
 
 
   tosca.nodes.nfv.Vdu.VirtualStorage:
@@ -211,10 +211,10 @@ node_types:
     capabilities:
       virtual_storage:
         type: tosca.capabilities.nfv.VirtualStorage
-    artifacts:
-      sw_image:
-        file:
-        type: tosca.artifacts.Deployment.Image
+    #artifacts: artifacts should be defined in template file instead of node type
+    #  sw_image:
+    #    file:
+    #    type: tosca.artifacts.Deployment.Image
 
   tosca.nodes.nfv.ext.zte.VNF:
     capabilities:
@@ -361,16 +361,16 @@ node_types:
       configurable_properties:
         type: tosca.datatypes.nfv.VnfConfigurableProperties
         required: false
-        #        modifiable_attributes:
-        #          type: tosca.datatypes.nfv.VnfInfoModifiableAttributes
-        #          required: false  # true in IFA011, but all of members are false. Align with the IM, it is false
+      modifiable_attributes:
+        type: tosca.datatypes.nfv.VnfInfoModifiableAttributes
+        required: false  # true in IFA011, but all of members are false. Align with the IM, it is false
       flavour_id:
         type: string
         required: true
       flavour_description:
         type: string
         required: true
-    capabilities:
+    #capabilities:
       # monitoring_parameter:
       # modelled as ad hoc capabilities in the VNF node template
     requirements:
@@ -383,7 +383,7 @@ node_types:
         - UNBOUNDED
     interfaces:
       Nfv:
-        type: tosca.interfaces.node.lifecycle.Standard
+        type: tosca.interfaces.nfv.vnf.lifecycle.Nfv
 
   tosca.nodes.nfv.VduCp:
     derived_from: tosca.nodes.nfv.Cp
index cad5e96..ca74e84 100644 (file)
@@ -23,14 +23,6 @@ imports:
     file: _index.yml
 
 relationship_types:
-  
-  tosca.relationships.nfv.VDU.AttachedTo:
-    derived_from: tosca.relationships.Root
-    properties:
-      location:
-        required: false
-        type: string
-
   tosca.relationships.nfv.VirtualBindsTo:
     derived_from: tosca.relationships.DependsOn
     valid_target_types:
@@ -39,4 +31,8 @@ relationship_types:
   tosca.relationships.nfv.VirtualLinksTo:
     derived_from: tosca.relationships.DependsOn
     valid_target_types:
-    - tosca.capabilities.nfv.VirtualLinkable
\ No newline at end of file
+    - tosca.capabilities.nfv.VirtualLinkable
+
+  tosca.relationships.nfv.Vdu.AttachedTo:
+    derived_from: tosca.relationships.DependsOn
+    valid_target_types: [ tosca.capabilities.nfv.VirtualStorage ]
index dad7feb..7c5c453 100644 (file)
@@ -1005,41 +1005,59 @@ node_types:
         - 0
         - UNBOUNDED
 
-  tosca.nodes.nfv.VDU.Compute:
-    attributes:
-      private_address:
-        type: string
-      public_address:
-        type: string
-      networks:
-        type: string
-      ports:
-        type: string
+  tosca.nodes.nfv.Vdu.Compute:
+    #attributes:
+    #  private_address:
+    #    type: string
+    #  public_address:
+    #    type: string
+    #  networks:
+    #    type: string
+    #  ports:
+    #    type: string
     capabilities:
-      scalable:
-        type: tosca.capabilities.Scalable
+      #scalable:
+      #  type: tosca.capabilities.Scalable
       virtual_compute:
         type: tosca.capabilities.nfv.VirtualCompute
-      endpoint:
-        type: tosca.capabilities.Endpoint.Admin
-      os:
-        type: tosca.capabilities.OperatingSystem
+      #endpoint:
+      #  type: tosca.capabilities.Endpoint.Admin
+      #os:
+      #  type: tosca.capabilities.OperatingSystem
       virtual_binding:
         type: tosca.capabilities.nfv.VirtualBindable
-      host:
-        type: tosca.capabilities.Container
-      binding:
-        type: tosca.capabilities.network.Bindable
+        occurrences: [1, UNBOUNDED]
+      #host:
+      #  type: tosca.capabilities.Container
+      #binding:
+      #  type: tosca.capabilities.network.Bindable
       monitoring_parameter:
         type: tosca.capabilities.nfv.Metric
+        occurrences: [0, UNBOUNDED]
     derived_from: tosca.nodes.Root
     properties:
+      vdu_profile:
+        type: tosca.datatypes.nfv.VduProfile
+        required: true
+      inject_files: # Used for vCPE usecase Aligned with ONAP R2 IM. not defined in IFA011 v2.4.1 and SOL001 v0.6.0.
+        type: tosca.datatypes.nfv.injectFile
+        required: false
+      meta_data: #metadata attached to the VM or container
+        type: map
+        entry_schema:
+          type: string
+        required: false
+      user_data: #cloudinit userdata script support
+        type: string
+        required: false
       configurable_properties:
         entry_schema:
           type: tosca.datatypes.nfv.VnfcConfigurableProperties
         type: map
+        required: true
       name:
         type: string
+        required: true
       nfvi_constraints:
         entry_schema:
           type: string
@@ -1047,38 +1065,78 @@ node_types:
         type: list
       descrption:
         type: string
+        required: true
       boot_order:
         entry_schema:
           type: string
         required: false
         type: list
     requirements:
-    - local_storage:
-        capability: tosca.capabilities.Attachment
-        occurrences:
-        - 0
-        - UNBOUNDED
-    - virtual_storage:
-        capability: tosca.capabilities.nfv.VirtualStorage
-        occurrences:
-        - 0
-        - UNBOUNDED
+    #- local_storage:
+    #    capability: tosca.capabilities.Attachment
+    #    occurrences:
+    #    - 0
+    #    - UNBOUNDED
+      - virtual_storage:
+          capability: tosca.capabilities.nfv.VirtualStorage
+          relationship: tosca.relationships.nfv.Vdu.AttachedTo
+          node: tosca.nodes.nfv.VDU.VirtualStorage
+          occurences: [ 0, UNBOUNDED ]
 
-  tosca.nodes.nfv.VDU.VirtualStorage:
+  tosca.nodes.nfv.Vdu.VirtualStorage:
     capabilities:
       virtual_storage:
         type: tosca.capabilities.nfv.VirtualStorage
     derived_from: tosca.nodes.Root
     properties:
-      id:
-        type: string
+      #id:
+      #  type: string
       size_of_storage:
-        type: string
+        type: scalar-unit.size
+        required: true
+      vdu_storage_requirements:
+        type: map
+        entry_schema:
+          type: string
+        required: false
       rdma_enabled:
         required: false
         type: boolean
       type_of_storage:
         type: string
+        constraints:
+          - valid_values: [volume, object, root, block]
+        required: true
+
+  tosca.nodes.nfv.Cp:
+    derived_from: tosca.nodes.Root
+    properties:
+      layer_protocol:
+        type: list
+        entry_schema:
+          constraints:
+            - valid_values: [ethernet, mpls, odu2, ipv4, ipv6, pseudo_wire ]
+          type: string
+        required: true
+      role: #Name in ETSI NFV IFA011 v0.7.3 cpRole
+        type: string
+        constraints:
+          - valid_values: [ root, leaf ]
+        required: false
+      description:
+        type: string
+        required: false
+      protocol_data:
+        type: list
+        entry_schema:
+          type: tosca.datatypes.nfv.CpProtocolData
+        required: true
+      trunk_mode:
+        type: boolean
+        required: true
+      allowedAddressData: # Aligned with ONAP R2 Im.not defined in IFA011 v2.4.1 and SOL001 v0.6.0
+        type: tosca.datatypes.nfv.AddressData
+        required: false
 
   tosca.nodes.nfv.VduCpd:
     derived_from: tosca.nodes.Root
@@ -1088,45 +1146,140 @@ node_types:
           type: tosca.datatypes.nfv.VirtualNetworkInterfaceRequirements
         required: false
         type: list
-      role:
-        constraints:
-        - valid_values:
-          - root
-          - leaf
-        required: false
-        type: string
+      #role:
+      #  constraints:
+      #  - valid_values:
+      #    - root
+      #    - leaf
+      #  required: false
+      #  type: string
       bitrate_requirement:
         required: false
         type: integer
-      description:
+      #description:
+      #  required: false
+      #  type: string
+      #layer_protocol:
+      #  constraints:
+      #  - valid_values:
+      #    - ethernet
+      #    - mpls
+      #    - odu2
+      #    - ipv4
+      #    - ipv6
+      #    - pseudo_wire
+      #  type: string
+      #address_data:
+      #  entry_schema:
+      #    type: tosca.datatype.nfv.AddressData
+      #  required: false
+      #  type: list
+      vnic_name: #  Aligned with ONAP R2 Im.not defined in IFA011 v2.4.1 and SOL001 v0.6.0
+        type: string
+        required: false
+      vnic_order: # Aligned with ONAP R2 Im. not defined in IFA011 v2.4.1 and SOL001 v0.6.0
+        type: integer
         required: false
+      vnic_type: # Aligned with ONAP R2 Im. not defined in IFA011 v2.4.1 and SOL001 v0.6.0
         type: string
-      layer_protocol:
         constraints:
-        - valid_values:
-          - ethernet
-          - mpls
-          - odu2
-          - ipv4
-          - ipv6
-          - pseudo_wire
-        type: string
-      address_data:
+          - valid_values: [normal, macvtap, direct, baremetal, direct-physical, virtio-forwarder]
+        required: false
+    requirements:
+      - virtual_binding:
+          capability: tosca.capabilities.nfv.VirtualBindable
+          relationship: tosca.relationships.nfv.VirtualBindsTo
+          node: tosca.nodes.nfv.Vdu.Compute
+      - virtual_link:
+          capability: tosca.capabilities.nfv.VirtualLinkable
+          relationship: tosca.relationships.nfv.VirtualLinksTo
+          node: tosca.nodes.nfv.VnfVirtualLink
+
+  tosca.nodes.nfv.VnfVirtualLink:
+    derived_from: tosca.nodes.Root
+    properties:
+      connectivity_type:
+        type: tosca.datatypes.nfv.ConnectivityType
+        required: true
+      description:
+        type: string
+        required: false
+      test_access:
+        type: list
         entry_schema:
-          type: tosca.datatype.nfv.AddressData
+          type: string
+        required: false
+      vl_profile:
+        type: tosca.datatypes.nfv.VlProfile
+        required: true
+    capabilities:
+      monitoring_parameter:
+        type: tosca.capabilities.nfv.Metric
+        occurrences: [0, UNBOUNDED]
+      virtual_linkable:
+        type: tosca.capabilities.nfv.VirtualLinkable
+
+  tosca.nodes.nfv.VNF:
+    derived_from: tosca.nodes.Root
+    properties:
+      descriptor_id: # instead of vnfd_id
+        type: string # GUID
+        required: true
+      descriptor_version: # instead of vnfd_version
+        type: string
+        required: true
+      provider: # instead of vnf_provider
+        type: string
+        required: true
+      product_name: # instead of vnf_product_name
+        type: string
+        required: true
+      software_version: # instead of vnf_software_version
+        type: string
+        required: true
+      product_info_name: # instead of vnf_product_info_name
+        type: string
+        required: false
+      product_info_description: # instead of vnf_product_info_description
+        type: string
         required: false
+      vnfm_info:
         type: list
+        entry_schema:
+          type: string
+        required: true
+      localization_languages:
+        type: list
+        entry_schema:
+          type: string
+        required: false
+      default_localization_language:
+        type: string
+        required: false
+      configurable_properties:
+        type: tosca.datatypes.nfv.VnfConfigurableProperties
+        required: false
+      modifiable_attributes:
+        type: tosca.datatypes.nfv.VnfInfoModifiableAttributes
+        required: false  # true in IFA011, but all of members are false
+      flavour_id:
+        type: string
+        required: true
+      flavour_description:
+        type: string
+        required: true
+    #capabilities:
+      # monitoring_parameter:
+        # modelled as ad hoc capabilities in the VNF node template
     requirements:
-    - virtual_binding:
-        capability: tosca.capabilities.nfv.VirtualBindable
-        occurrences:
-        - 0
-        - UNBOUNDED
-    - virtual_link:
-        capability: tosca.capabilities.nfv.VirtualBindable
-        occurrences:
-        - 0
-        - UNBOUNDED
+      - virtual_link:
+          capability: tosca.capabilities.nfv.VirtualLinkable
+          relationship: tosca.relationships.nfv.VirtualLinksTo
+          node: tosca.nodes.nfv.VnfVirtualLink
+          occurrences: [ 0, UNBOUNDED ]
+    interfaces:
+      Nfv:
+        type: tosca.interfaces.nfv.vnf.lifecycle.Nfv
   tosca.nodes.nfv.ext.ImageFile:
     capabilities:
       guest_os:
@@ -1463,4 +1616,4 @@ node_types:
         required: false
         type: list
       connectivity_type:
-        type: tosca.datatypes.nfv.ConnectivityType
\ No newline at end of file
+        type: tosca.datatypes.nfv.ConnectivityType