summaryrefslogtreecommitdiffstats
path: root/docs/ONAP Model Spec/dm
diff options
context:
space:
mode:
authorVictor Gao <victor.gao@huawei.com>2018-06-04 16:05:09 +0800
committerVictor Gao <victor.gao@huawei.com>2018-06-04 16:05:09 +0800
commit709de031ede9d9407a4830317b2c6c5f8969025b (patch)
tree89412859fd15d9d785c405df327707ff6a1e8f27 /docs/ONAP Model Spec/dm
parent78f70a2be21b22775d11a312b6bde26b31beb7c6 (diff)
handle model spec by branches2.0.0-ONAPbeijing2.0.0-ONAP
Change-Id: I4ac13c55261be3e347b00c46fc21d721f8c3332b Issue-ID: MODELING-79 Signed-off-by: Victor Gao <victor.gao@huawei.com>
Diffstat (limited to 'docs/ONAP Model Spec/dm')
-rw-r--r--docs/ONAP Model Spec/dm/ArtifactTypes.rst9
-rw-r--r--docs/ONAP Model Spec/dm/CapabilitiesTypes.rst39
-rw-r--r--docs/ONAP Model Spec/dm/DataTypes.rst466
-rw-r--r--docs/ONAP Model Spec/dm/InterfaceTypes.rst65
-rw-r--r--docs/ONAP Model Spec/dm/NodeTypes.rst263
-rw-r--r--docs/ONAP Model Spec/dm/RelationshipTypes.rst15
-rw-r--r--docs/ONAP Model Spec/dm/index.rst20
7 files changed, 877 insertions, 0 deletions
diff --git a/docs/ONAP Model Spec/dm/ArtifactTypes.rst b/docs/ONAP Model Spec/dm/ArtifactTypes.rst
new file mode 100644
index 0000000..36a9759
--- /dev/null
+++ b/docs/ONAP Model Spec/dm/ArtifactTypes.rst
@@ -0,0 +1,9 @@
+.. Copyright 2018 (China Mobile)
+.. This file is licensed under the CREATIVE COMMONS ATTRIBUTION 4.0 INTERNATIONAL LICENSE
+.. Full license text at https://creativecommons.org/licenses/by/4.0/legalcode
+
+Artifact Types
+==============
+
+| tosca.artifacts.nfv.SwImage: #don't need move to clean version
+| derived_from: tosca.artifacts.Deployment.Image \ No newline at end of file
diff --git a/docs/ONAP Model Spec/dm/CapabilitiesTypes.rst b/docs/ONAP Model Spec/dm/CapabilitiesTypes.rst
new file mode 100644
index 0000000..d8ed14e
--- /dev/null
+++ b/docs/ONAP Model Spec/dm/CapabilitiesTypes.rst
@@ -0,0 +1,39 @@
+.. Copyright 2018 (China Mobile)
+.. This file is licensed under the CREATIVE COMMONS ATTRIBUTION 4.0 INTERNATIONAL LICENSE
+.. Full license text at https://creativecommons.org/licenses/by/4.0/legalcode
+
+Capabilities Types
+==================
+
+| **tosca.capabilities.nfv.VirtualBindable:**
+| derived_from: tosca.capabilities.root
+
+| **tosca.capabilities.nfv.VirtualCompute:**
+| derived_from: tosca.capabilities.Root
+| properties:
+| logical_node:
+| type: tosca.datatypes.nfv.LogicalNodeData
+| required: false
+| compute_requirements:
+| type: map
+| required: false
+| requested_additional_capabilities:
+| type: map
+| entry_schema:
+| type: tosca.datatypes.nfv.RequestedAdditionalCapability
+| required: false
+| virtual_memory:
+| type: tosca.datatypes.nfv.VirtualMemory
+| required: true
+| virtual_cpu:
+| type: tosca.datatypes.nfv.VirtualCpu
+| required: true
+
+| **tosca.capabilities.nfv.VirtualLinkable:**
+| derived_from: tosca.capabilities.root
+
+| **tosca.capabilities.nfv.ExtVirtualLinkable:**
+| derived_from: tosca.capabilities.root
+
+| **tosca.capabilities.nfv.VirtualStorage:**
+| derived_from: tosca.capabilities.root
diff --git a/docs/ONAP Model Spec/dm/DataTypes.rst b/docs/ONAP Model Spec/dm/DataTypes.rst
new file mode 100644
index 0000000..3821cf5
--- /dev/null
+++ b/docs/ONAP Model Spec/dm/DataTypes.rst
@@ -0,0 +1,466 @@
+.. Copyright 2018 (China Mobile)
+.. This file is licensed under the CREATIVE COMMONS ATTRIBUTION 4.0 INTERNATIONAL LICENSE
+.. Full license text at https://creativecommons.org/licenses/by/4.0/legalcode
+
+Data Types
+==========
+
+| **tosca.datatypes.nfv.L2AddressData:**
+| derived_from: tosca.datatypes.Root
+| properties:
+| mac_address_assignment:
+| type: Boolean
+| required: true
+|
+|
+| **tosca.datatypes.nfv.injectFile: #used for vCPE usecase**
+| derived_from: tosca.datatypes.Root
+| properties:
+| source_path:
+| type: string
+| required: true
+| dest_path:
+| type:string
+| required: true
+|
+|
+| **tosca.datatypes.nfv.L3AddressData:**
+| derived_from: tosca.datatypes.Root
+| properties:
+| ip_address_assignment:
+| type: Boolean
+| required: true
+| floating_ip_activated:
+| type: Boolean
+| required: true
+| ip_address_type:
+| type: string
+| required: false
+| constraints:
+| - valid_values: [ipv4, ipv6]
+| number_of_ip_address:
+| type: integer
+| required: false
+| fixed_ip_address: #used for vCPE usecase
+| type:list
+| entry_schema:
+| type:string
+| required: false
+|
+|
+| **tosca.datatypes.nfv.AddressData:**
+| derived_from: tosca.datatypes.Root
+| properties:
+| address_type:
+| type: string
+| required: true
+| constraints:
+| - valid_values: [mac_address, ip_address]
+| l2_address_data:
+| type: tosca.datatypes.nfv.L2AddressData # empty in "GS NFV IFA011 V0.7.3"
+| required: false
+| l3_address_data:
+| type: tosca.datatypes.nfv.L3AddressData
+| required: false
+|
+|
+| **tosca.datatypes.nfv.VirtualNetworkInterfaceRequirements:**
+| derived_from: tosca.datatypes.Root
+| properties:
+| name:
+| type: string
+| required: false
+| description:
+| type: string
+| required: false
+| support_mandatory:
+| type: boolean
+| required: true
+| network_interface_requirements:
+| type: Map
+| required: true
+| nic_io_requirements:
+| type: tosca.datatypes.nfv.LogicalNodeData
+| required: false
+|
+|
+| **tosca.datatypes.nfv.ConnectivityType:**
+| derived_from: tosca.datatypes.Root
+| properties:
+| layer_protocol:
+| type: string
+| required: true
+| constraints:
+| - valid_values: [ethernet, mpls, odu2, ipv4, ipv6, pseudo_wire ]
+| flow_pattern:
+| type: string
+| required: false
+| constraints: # not defined in IFA011 v2.4.1 and SOL001 v.6.0
+| - valid_values: [Line, Tree, Mesh]
+|
+|
+| **tosca.datatypes.nfv.RequestedAdditionalCapability:**
+| derived_from: tosca.datatypes.Root
+| properties:
+| #name:
+| # key of containing map
+| support_mandatory:
+| type: boolean
+| required: true
+| min_requested_additional_capability_version:
+| type: string
+| required: false
+| preferred_requested_additional_capability_version:
+| type: string
+| required: false
+| requested_additional_capability_name:
+| type: string
+| required: true
+| target_performance_parameters:
+| type: map
+| entry_schema:
+| type: string
+| required: true
+|
+|
+| **tosca.datatypes.nfv.VirtualMemory:**
+| derived_from: tosca.datatypes.Root
+| properties:
+| virtual_mem_size:
+| type: scalar-unit.size # Number
+| required: true
+| virtual_mem_oversubscription_policy:
+| type: string
+| required: false
+| vdu_memory_requirements:
+| type: map
+| required: false
+| numa_enabled:
+| type: boolean
+| required: false
+|
+|
+| **tosca.datatypes.nfv.VirtualCpu:**
+| derived_from: tosca.datatypes.Root
+| properties:
+| cpu_architecture:
+| type: string
+| required: false
+| num_virtual_cpu:
+| type: integer
+| required: true
+| virtual_cpu_clock:
+| type: scalar-unit.frequency
+| required: false
+| virtual_cpu_oversubscription_policy:
+| type: string
+| required: false
+| vdu_cpu_requirements:
+| type: map
+| required: false
+| virtual_cpu_pinning:
+| type: tosca.datatypes.nfv.VirtualCpuPinning
+| required: false
+|
+|
+| **tosca.datatypes.nfv.VirtualCpuPinning:**
+| derived_from: tosca.datatypes.Root
+| properties:
+| cpu_pinning_policy:
+| type: string # CpuPinningPolicy
+| constraints:
+| - valid_values: [ static, dynamic ]
+| required: false
+| cpu_pinning_map:
+| type: map
+| entry_schema:
+| type: string
+| required: false
+|
+|
+| **tosca.datatypes.nfv.VnfcConfigurableProperties:**
+| derived_from: tosca.datatypes.Root
+| properties:
+| additional_vnfc_configurable_properties:
+| type: map
+| entry_schema:
+| type: string
+| required: false
+|
+|
+| **tosca.datatypes.nfv.VduProfile:**
+| derived_from: tosca.datatypes.Root
+| properties:
+| min_number_of_instances:
+| type: integer
+| required: true
+| max_number_of_instances:
+| type: integer
+| required: true
+| #localAffinityOrAntiAffinityRule: # not defined in SOL001 v.6.0
+| # type: tosca.datatypes.nfv.LocalAffinityOrAntiAffinityRule
+| # required: true
+| #affinityOrAntiAffinityGroupId: # not defined in SOL001 v.6.0
+| # type: string
+| # required: true
+| watchdog: #Align with ONAP R2 IM. not defined in IFA011 v2.4.1 and SOL001 v.6.0
+| type: string
+| required: true
+| vmBootUpTimeOut: #Align with ONAP R2 IM. not defined in IFA011 v2.4.1 and SOL001 v.6.0
+| type: integer
+| required: optional
+|
+|
+| **tosca.datatypes.nfv.VlProfile:**
+| derived_from: tosca.datatypes.Root
+| properties:
+| max_bit_rate_requirements:
+| type: tosca.datatypes.nfv.LinkBitRateRequirements
+| required: true
+| min_bit_rate_requirements:
+| type: tosca.datatypes.nfv.LinkBitRateRequirements
+| required: true
+| qos:
+| type: tosca.datatypes.nfv.Qos
+| required: false
+| initiationParameters: #Align with ONAP R2 IM. not defined in IFA011 v2.4.1 and SOL001 v.6.0
+| type: map
+| entry_schema:
+| type: string
+| required: false
+| cidr: #Align with ONAP R2 IM. not defined in IFA011 v2.4.1 and SOL001 v.6.0
+| type: String
+| required: false
+| networkName: #Align with ONAP R2 IM. not defined in IFA011 v2.4.1 and SOL001 v.6.0
+| type: String
+| required: false
+| startIp: #Align with ONAP R2 IM. not defined in IFA011 v2.4.1 and SOL001 v.6.0
+| type: String
+| required: false
+| endIp: #Align with ONAP R2 IM. not defined in IFA011 v2.4.1 and SOL001 v.6.0
+| type: String
+| required: false
+| gatewayIp: #Align with ONAP R2 IM. not defined in IFA011 v2.4.1 and SOL001 v.6.0
+| type: String
+| required: false
+| segmentationId: #Align with ONAP R2 IM. not defined in IFA011 v2.4.1 and SOL001 v.6.0
+| type: Integer
+| required: false
+| physicalNetwork: #Align with ONAP R2 IM. not defined in IFA011 v2.4.1 and SOL001 v.6.0
+| type: String
+| required: false
+| networkType: #Align with ONAP R2 IM. not defined in IFA011 v2.4.1 and SOL001 v.6.0
+| type: String
+| required: false
+| constraints:
+| - valid_values: [VLAN, VXLAN]
+| dhcpEnabled: # not defined in IFA011 v2.4.1 and SOL001 v.6.0
+| type: Boolean
+| required: false
+| vlanTransparent: #Align with ONAP R2 IM. not defined in IFA011 v2.4.1 and SOL001 v.6.0
+| type: Boolean
+| required: false
+|
+|
+| **tosca.datatypes.nfv.InstantiationLevel:**
+| derived_from: tosca.datatypes.Root
+| properties:
+| description:
+| type: string
+| required: true
+| vdu_levels:
+| type: map # key: vduId
+| required: true
+| entry_schema:
+| type: tosca.datatypes.nfv.VduLevel
+| scale_info:
+| type: map # key: aspectId
+| required: false
+| entry_schema:
+| type: tosca.datatypes.nfv.ScaleInfo
+|
+|
+| **tosca.datatypes.nfv.VduLevel:**
+| derived_from: tosca.datatypes.Root
+| properties:
+| number_of_instances:
+| type: integer
+| required: true
+
+| **tosca.datatypes.nfv.VnfLcmOperationsConfiguration:**
+| derived_from: tosca.datatypes.Root
+| properties:
+| instantiate:
+| type: tosca.datatypes.nfv.VnfInstantiateOperationConfiguration
+| scale:
+| type: tosca.datatypes.nfv.VnfScaleOperationConfiguration
+| scale_to_level:
+| type: tosca.datatypes.nfv.VnfScaleToLevelOperationConfiguration
+| heal:
+| type: tosca.datatypes.nfv.VnfHealOperationConfiguratin
+| terminate:
+| type: tosca.datatypes.nfv.VnfTerminateOperationConfiguration
+| operate:
+| type: tosca.datatypes.nfv.VnfOperateOperationConfiguration
+|
+|
+| **tosca.datatypes.nfv.VnfInstantiateOperationConfiguration:**
+| derived_from: tosca.datatypes.Root
+| properties:
+| #parameters:
+| #modeled as part of operation parameter list
+|
+|
+| **tosca.datatypes.nfv.VnfScaleOperationConfiguration:**
+| derived_from: tosca.datatypes.Root
+| properties:
+| #parameters:
+| #modeled as part of the operation parameter list
+| scaling_by_more_than_one_step_supported:
+| type: boolean
+|
+|
+| **tosca.datatypes.nfv.VnfScaleToLevelOperationConfiguration:**
+| derived_from: tosca.datatypes.Root
+| properties:
+| #parameters:
+| #modeled as part of the operation parameter list
+| arbitrary_target_levels_supported:
+| type: boolean
+|
+|
+| **tosca.datatypes.nfv.VnfHealOperationConfiguration**
+| derived_from: tosca.datatypes.Root
+| properties:
+| #parameters:
+| #modeled as part of the operation parameter list
+| causes:
+| type: list
+| entry_schema:
+| type: string
+|
+|
+| **tosca.datatypes.nfv.VnfTerminateOperationConfiguration**
+| derived_from: tosca.datatypes.Root
+| properties:
+| min_graceful_termination_timeout:
+| type: integer
+| max_recommended_graceful_termination_timeout:
+| type: integer
+|
+|
+|
+| **tosca.datatypes.nfv.VnfOperateOperationConfiguration**
+| derived_from: tosca.datatypes.Root
+| properties:
+| min_graceful_termination_timeout:
+| type: integer
+| max_recommended_graceful_termination_timeout:
+| type: integer
+|
+|
+| **tosca.datatypes.nfv.ScaleInfo**
+| derived_from: tosca.datatypes.Root
+| properties:
+| scaleLevel:
+| type: integer
+| required: true
+|
+|
+| **tosca.datatypes.nfv.ScaleAspect:**
+| derived_from: tosca.datatypes.Root
+| properties:
+| name:
+| type: string
+| required: true
+| description:
+| type: string
+| required: true
+| associated_group:
+| type: string #Identifier
+| required: false
+| max_scale_level:
+| type: integer #PositiveInteger
+| required: true
+|
+|
+| **tosca.datatypes.nfv.LinkBitRateRequirements:**
+| derived_from: tosca.datatypes.Root
+| properties:
+| root:
+| type: integer
+| required: true
+| leaf:
+| type: integer
+| required: true
+|
+|
+| **tosca.datatypes.nfv.Qos:**
+| derived_from: tosca.datatypes.Root
+| properties:
+| latency:
+| type: integer #Number [ms]
+| required: true
+| packet_delay_variation:
+| type: integer #Number [ms]
+| required: true
+| packet_loss_ratio:
+| type: Scalar #Number [0 ..1]
+| required: false
+|
+|
+| **tosca.datatypes.nfv.CpProtocolData:**
+| derived_from: tosca.datatypes.Root
+| properties:
+| asscociated_layer_protocol:
+| type: string
+| constraints:
+| - valid_values: [ethernet, mpls, odu2, ipv4, ipv6, pseudo-wire ]
+| required: true
+| address_data:
+| type: tosca.datatypes.nfv.AddressData
+| required: false
+|
+|
+| **tosca.datatypes.nfv.VnfConfigurableProperties:**
+| derived_from: tosca.datatypes.Root
+| properties:
+| is_autoscale_enabled:
+| type: boolean
+| required: false
+| is_autoheal_enabled:
+| type: boolean
+| required: false
+| additional_configurable_properties:
+| type: tosca.datatypes.nfv.VnfAdditionalConfigurableProperties
+| required: false
+
+| **tosca.datatypes.nfv.VnfAdditionalConfigurableProperties:**
+| 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
+|
+|
+| **tosca.datatypes.nfv.VnfInfoModifiableAttributesMetadata:**
+| derived_from: tosca.datatypes.Root
+|
+|
+| **tosca.datatypes.nfv.LogicalNodeData:**
+| derived_from: tosca.datatypes.Root
+| properties:
+| logical_node_requirements:
+| type: map # not defined in SOL001 v.6.0
+| required: false \ No newline at end of file
diff --git a/docs/ONAP Model Spec/dm/InterfaceTypes.rst b/docs/ONAP Model Spec/dm/InterfaceTypes.rst
new file mode 100644
index 0000000..f4783a9
--- /dev/null
+++ b/docs/ONAP Model Spec/dm/InterfaceTypes.rst
@@ -0,0 +1,65 @@
+.. Copyright 2018 (China Mobile)
+.. This file is licensed under the CREATIVE COMMONS ATTRIBUTION 4.0 INTERNATIONAL LICENSE
+.. Full license text at https://creativecommons.org/licenses/by/4.0/legalcode
+
+Interface Types
+===============
+
+| **tosca.interfaces.nfv.vnf.lifecycle.Nfv**
+| derived_from: tosca.interfaces.Root
+| instantiate:
+| description: Invoked upon receipt of an Instantiate VNF request
+| instantiate_start:
+| description: Invoked before instantiate
+| instantiate_end:
+| description: Invoked after instantiate
+| terminate:
+| description: Invoked upon receipt Terminate VNF request
+| terminate_start:
+| description: Invoked before terminate
+| terminate_end:
+| description: Invoked after terminate
+| modify_information:
+| description: Invoked upon receipt of a Modify VNF Information request
+| modify_information_start:
+| description: Invoked before modify_information
+| modify_information_end:
+| description: Invoked after modify_information
+| change_flavour:
+| description: Invoked upon receipt of a Change VNF Flavour request
+| change_flavour_start:
+| description: Invoked before change_flavour
+| change_flavour_end:
+| description: Invoked after change_flavour
+| change_external_connectivity:
+| description: Invoked upon receipt of a Change External VNF Connectivity request
+| change_external_connectivity_start:
+| description: Invoked before change_external_connectivity
+| change_external_connectivity_end:
+| description: Invoked after change_external_connectivity
+| operate:
+| description: Invoked upon receipt of an Operate VNF request
+| operate_start:
+| description: Invoked before operate
+| operate_end:
+| description: Invoked after operate
+| heal:
+| description: Invoked upon receipt of a Heal VNF request
+| heal_start:
+| description: Invoked before heal
+| heal_end:
+| description: Invoked after heal
+| scale:
+| description: Invoked upon receipt of a Scale VNF request
+| scale_start:
+| description: Invoked before scale
+| scale_end:
+| description: Invoked after scale
+| scale_to_level:
+| description: Invoked upon receipt of a Scale VNF to Level request
+| scale_to_level_start:
+| description: Invoked before scale_to_level
+| scale_to_level_end:
+| description: Invoked after scale_to_level
+| # indicator_changed:
+| # description: On receiving a VNF indicator value change notification \ No newline at end of file
diff --git a/docs/ONAP Model Spec/dm/NodeTypes.rst b/docs/ONAP Model Spec/dm/NodeTypes.rst
new file mode 100644
index 0000000..bdbdce5
--- /dev/null
+++ b/docs/ONAP Model Spec/dm/NodeTypes.rst
@@ -0,0 +1,263 @@
+.. Copyright 2018 (China Mobile)
+.. This file is licensed under the CREATIVE COMMONS ATTRIBUTION 4.0 INTERNATIONAL LICENSE
+.. Full license text at https://creativecommons.org/licenses/by/4.0/legalcode
+
+Node Types
+==========
+
+| **tosca.nodes.nfv.Vdu.Compute:**
+| derived_from: tosca.nodes.Root
+| properties:
+| #id:
+| # node name
+| name: # align with the IM, please refer to https://wiki.onap.org/display/DW/Design+Time+Model+Clean+Version#DesignTimeModelCleanVersion-Class:VDU/VDUDesc
+| type: string
+| required: true
+| description:
+| type: string
+| required: true
+| boot_order:
+| type: map # explicit index (boot index) not necessary, contrary to IFA011. In the IM, it shoul be a array of KeyValuePair/NameValuePair
+| entry_schema:
+| type: string
+| required: false
+| nfvi_constraints:
+| type: map # Align with IM, it shoul be a array of KeyValuePair/NameValuePair
+| entry_schema:
+| 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
+| 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 #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
+| user_data: #cloudinit userdata script support
+| type: string
+| required: false
+| #attributes: NOT DEFINED IN ONAP IM and SOL001
+| #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
+| occurrences: [1, UNBOUND]
+| monitoring_parameter:
+| type: tosca.capabilities.nfv.Metric # this is not a very clear data structure enough to be coded, suggest to be annotated.
+| 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 ]
+| artifacts:
+| - sw_image:
+| file:
+| type: tosca.artifacts.nfv.SwImage
+|
+|
+| **tosca.nodes.nfv.Vdu.VirtualStorage:**
+| derived_from: tosca.nodes.Root
+| properties:
+| #id:
+| # node name
+| type_of_storage:
+| type: string
+| constraints:
+| - valid_values: [volume, object, root, block]
+| required: true
+| size_of_storage:
+| type: scalar-unit.size
+| required: true
+| vdu_storage_requirements:
+| type: map
+| required: false
+| rdma_enabled:
+| type: boolean
+| required: false
+| capabilities:
+| virtual_storage:
+| type: tosca.capabilities.nfv.VirtualStorage
+| artifacts:
+| - sw_image:
+| file:
+| type: tosca.artifacts.Deployment.Image
+| #interfaces: # not needed for virtualstroage. it doesn't support cloudinit.
+| # cloudinit:
+| # type:tosca.interfaces.nfv.vdu.cloudinit
+|
+|
+| **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 ]
+| 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
+| allowed_address_data: # Aligned with ONAP R2 Im.not defined in IFA011 v2.4.1 and SOL001 v0.6.0.
+| type: tosca.datatypes.nfv.AddressData # In the IM, it is a array, but here it is not a array. TBD.
+| required: false
+|
+|
+| **tosca.nodes.nfv.VduCp:**
+| derived_from: tosca.nodes.nfv.Cp
+| properties:
+| bitrate_requirement:
+| type: integer
+| required:false
+| 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
+| constraints:
+| - valid_values: [normal, macvtap, direct, baremetal, direct-physical, virtio-forwarder]
+| required:false
+| virtual_network_interface_requirements:
+| type: list
+| entry_schema:
+| type: VirtualNetworkInterfaceRequirements
+| required:false
+| # order: #there is no this attribute in IM.
+| # type: integer
+| # required: false
+| # constraints:
+| # - greater_or_equal: 0
+| requirements:
+| - virtual_link:
+| capability: tosca.capabilities.nfv.VirtualLinkable
+| relationship: tosca.relationships.nfv.VirtualLinksTo
+| node: tosca.nodes.nfv.VnfVirtualLink
+| - virtual_binding:
+| capability: tosca.capabilities.nfv.VirtualBindable
+| relationship: tosca.relationships.nfv.VirtualBindsTo
+| node: tosca.nodes.nfv.Vdu.Compute
+|
+|
+| **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: string
+| required: false
+| vl_profile:
+| type: tosca.datatypes.nfv.VlProfile
+| required: true
+| capabilities:
+| monitoring_parameter: # this is not a very clear data structure enough to be coded, suggest to be annotated.
+| type: tosca.capabilities.nfv.Metric
+| occurrences: [0,UNBOUND]
+| 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. Align with the IM, it is 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_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
+| \ No newline at end of file
diff --git a/docs/ONAP Model Spec/dm/RelationshipTypes.rst b/docs/ONAP Model Spec/dm/RelationshipTypes.rst
new file mode 100644
index 0000000..1c9965b
--- /dev/null
+++ b/docs/ONAP Model Spec/dm/RelationshipTypes.rst
@@ -0,0 +1,15 @@
+.. Copyright 2018 (China Mobile)
+.. This file is licensed under the CREATIVE COMMONS ATTRIBUTION 4.0 INTERNATIONAL LICENSE
+.. Full license text at https://creativecommons.org/licenses/by/4.0/legalcode
+
+Relationships Types
+===================
+
+| **tosca.relationships.nfv.VirtualBindsTo:**
+| derived_from: tosca.relationships.DependsOn
+| valid_target_types: [ tosca.capabilities.nfv.VirtualBindable]
+|
+|
+| **tosca.relationships.nfv.VirtualLinksTo:**
+| derived_from: tosca.relationships.DependsOn
+| valid_target_types: [ tosca.capabilities.nfv.VirtualLinkable]
diff --git a/docs/ONAP Model Spec/dm/index.rst b/docs/ONAP Model Spec/dm/index.rst
new file mode 100644
index 0000000..bc44519
--- /dev/null
+++ b/docs/ONAP Model Spec/dm/index.rst
@@ -0,0 +1,20 @@
+.. Copyright 2018 (China Mobile)
+.. This file is licensed under the CREATIVE COMMONS ATTRIBUTION 4.0 INTERNATIONAL LICENSE
+.. Full license text at https://creativecommons.org/licenses/by/4.0/legalcode
+.. onap-documentation documentation master file, created by
+ sphinx-quickstart on Mon Sep 18 15:12:14 2017.
+ You can adapt this file completely to your liking, but it should at least
+ contain the root `toctree` directive.
+
+ONAP Data Model Specifications
+==============================
+
+.. toctree::
+ :titlesonly:
+
+ ArtifactTypes
+ CapabilitiesTypes
+ DataTypes
+ InterfaceTypes
+ NodeTypes
+ RelationshipTypes