tosca_definitions_version: tosca_simple_yaml_1_0 #Artifact Types #Based on R2 Design-time Resource DM clean version v8 artifact_types: tosca.artifacts.nfv.SwImage: derived_from: tosca.artifacts.Deployment.Image #Capabilities Type #Based on R2 Design-time Resource DM clean version v21 capability_types: tosca.capabilities.nfv.VirtualBindable: derived_from: tosca.capabilities.Root tosca.capabilities.nfv.Metric: 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 entry_schema: type: string 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.VirtualStorage: derived_from: tosca.capabilities.Root tosca.capabilities.nfv.VirtualLinkable: derived_from: tosca.capabilities.Root tosca.capabilities.nfv.ExtVirtualLinkable: derived_from: tosca.capabilities.Root #Data Types #Based on R2 Design-time Resource DM clean version v45 data_types: tosca.datatypes.nfv.L2AddressData: derived_from: tosca.datatypes.Root properties: mac_address_assignment: type: boolean required: true tosca.datatypes.nfv.injectFile: 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: 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 #TODO HPA network_interface_requirements: type: map entry_schema: type: string 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 #TODO HPA vdu_memory_requirements: type: map entry_schema: type: string 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 #TODO HPA vdu_cpu_requirements: type: map entry_schema: type: string 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.datatype.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: false 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.VnfHealOperationConfiguration 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: float constraints: - in_range: [ 0.0, 1.0 ] 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: #TODO HPA logical_node_requirements: type: map # not defined in SOL001 v.6.0 entry_schema: type: string required: false #Interface Types #Based on R2 Design-time Resource DM clean version v10 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 #Node Types #Based on R2 Design-time Resource DM clean version v36 node_types: tosca.nodes.nfv.Vdu.Compute: derived_from: tosca.nodes.Root 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 vdu_profile: type: tosca.datatypes.nfv.VduProfile required: true inject_files: #Aligned with ONAP R2 IM. not defined in IFA011 v2.4.1 and SOL001 v0.6.0 #type: list #entry_schema: #TODO workaround of SDC bug 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 #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, UNBOUNDED] monitoring_parameter: type: tosca.capabilities.nfv.Metric occurrences: [0, UNBOUNDED] requirements: - virtual_storage: capability: tosca.capabilities.nfv.VirtualStorage relationship: tosca.relationships.nfv.Vdu.AttachedTo node: tosca.nodes.nfv.Vdu.VirtualStorage occurrences: [ 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 #TODO HPA vdu_storage_requirements: type: map entry_schema: type: string 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 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.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: tosca.datatypes.nfv.VirtualNetworkInterfaceRequirements required: false #order: # 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: 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_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 #Relationship Types #Based on R2 Design-time Resource DM clean version v4 relationship_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] tosca.relationships.nfv.Vdu.AttachedTo: derived_from: tosca.relationships.DependsOn valid_target_types: [ tosca.capabilities.nfv.VirtualStorage]