etsi_nfv_sol001_vnfd_types.yaml 90.3 KB
Newer Older
tosca_definitions_version: tosca_simple_yaml_1_3
description: ETSI NFV SOL 001 vnfd types definitions version 3.5.1
metadata:
  template_name: etsi_nfv_sol001_vnfd_types
  template_author: ETSI_NFV
   - https://forge.etsi.org/rep/nfv/SOL001/raw/v3.5.1/etsi_nfv_sol001_common_types.yaml
# editor's note: During the development of the SOL001ed351 GS, to enable this file to be verified by a TOSCA parser, the imports statement has to be replaced with a reference to a local copy of the common definitions YAML file
data_types:
  tosca.datatypes.nfv.VirtualNetworkInterfaceRequirements:
admin_forge's avatar
admin_forge committed
   derived_from: tosca.datatypes.Root
   description: Describes requirements on a virtual network interface 
   properties:
     name:
       type: string
       description: Provides a human readable name for the requirement.    
       required: false
     description:
       type: string
       description: Provides a human readable description of the requirement.
       required: false
     support_mandatory:
       type: boolean
       description: Indicates whether fulfilling the constraint is mandatory (TRUE) for successful operation or desirable (FALSE).
       required: true
     network_interface_requirements:
       type: map
       description: The network interface requirements. A map of strings that contain a set of key-value pairs that describes the hardware platform specific  network interface deployment requirements.
       required: true
       entry_schema:
         type: string 
     nic_io_requirements:
       type: tosca.datatypes.nfv.LogicalNodeData
       description: references (couples) the CP with any logical node I/O requirements (for network devices) that may have been created. Linking these attributes is necessary so that so that I/O requirements that need to be articulated at the logical node level can be associated with the network interface requirements associated with the CP.
       required: false

  tosca.datatypes.nfv.RequestedAdditionalCapability:
admin_forge's avatar
admin_forge committed
   derived_from: tosca.datatypes.Root
   description: describes requested additional capability for a particular VDU
   properties:
     requested_additional_capability_name:
       type: string
       description: Identifies a requested additional capability for the VDU.
       required: true
     support_mandatory:
       type: boolean
       description: Indicates whether the requested additional capability is mandatory for successful operation.
       required: true
     min_requested_additional_capability_version:
       type: string
       description: Identifies the minimum version of the requested additional capability.
       required: false
     preferred_requested_additional_capability_version:
       type: string
       description: Identifies the preferred version of the requested additional capability.
       required: false
     target_performance_parameters:
       type: map
       description: Identifies specific attributes, dependent on the requested additional capability type.
       required: true
       entry_schema:
         type: string
       

  tosca.datatypes.nfv.VirtualMemory:
admin_forge's avatar
admin_forge committed
     derived_from: tosca.datatypes.Root
     description: supports the specification of requirements related to virtual memory of a virtual compute resource
     properties:
       virtual_mem_size:
         type: scalar-unit.size 
         description: Amount of virtual memory.
         required: true
       virtual_mem_oversubscription_policy:
         type: string
         description: The memory core oversubscription policy in terms of virtual memory to physical memory on the platform.
         required: false
       vdu_mem_requirements:
         type: map
         description: The hardware platform specific VDU memory requirements. A map of strings that contains a set of key-value pairs that describes hardware platform specific VDU memory requirements.
         required: false
         entry_schema:
           type: string
       numa_enabled:
         type: boolean
         description: It specifies the memory allocation to be cognisant of the relevant process/core allocation.
admin_forge's avatar
admin_forge committed
         default: false

  tosca.datatypes.nfv.VirtualCpu:
admin_forge's avatar
admin_forge committed
   derived_from: tosca.datatypes.Root
   description: Supports the specification of requirements related to virtual CPU(s) of a virtual compute resource
   properties:
     cpu_architecture:
       type: string
       description: CPU architecture type. Examples are x86, ARM
       required: false
     num_virtual_cpu:
       type: integer
       description: Number of virtual CPUs
       required: true
       constraints:
         - greater_than: 0
     virtual_cpu_clock:
       type: scalar-unit.frequency
       description: Minimum virtual CPU clock rate
       required: false
     virtual_cpu_oversubscription_policy:
       type: string
       description: CPU core oversubscription policy e.g. the relation of virtual CPU cores to physical CPU cores/threads.
       required: false
     vdu_cpu_requirements:
       type: map
       description: The hardware platform specific VDU CPU requirements. A map of strings that contains a set of key-value pairs describing VDU CPU specific hardware platform requirements.
       required: false
       entry_schema:
         type: string 
     virtual_cpu_pinning:
       type: tosca.datatypes.nfv.VirtualCpuPinning
       description: The virtual CPU pinning configuration for the virtualised compute resource.
       required: false

  tosca.datatypes.nfv.VirtualCpuPinning:
admin_forge's avatar
admin_forge committed
   derived_from: tosca.datatypes.Root
   description: Supports the specification of requirements related to the virtual CPU pinning configuration of a virtual compute resource 
   properties:
     virtual_cpu_pinning_policy:
       type: string 
       description: Indicates the policy for CPU pinning. The policy can take values of "static" or "dynamic". In case of "dynamic" the allocation of virtual CPU cores to logical CPU cores is decided by the VIM. (e.g. SMT (Simultaneous Multi-Threading) requirements). In case of "static" the allocation is requested to be according to the virtual_cpu_pinning_rule.
       required: false
       constraints:
         - valid_values: [ static, dynamic ]
     virtual_cpu_pinning_rule:
       type: list
       description: Provides the list of rules for allocating virtual CPU cores to logical  CPU cores/threads 
       required: false
       entry_schema:
         type: string
       

  tosca.datatypes.nfv.VnfcConfigurableProperties:
admin_forge's avatar
admin_forge committed
   derived_from: tosca.datatypes.Root
   description: Defines the configurable properties of a VNFC 
   #properties:
     # additional_vnfc_configurable_properties:
     #   type: tosca.datatypes.nfv.VnfcAdditionalConfigurableProperties  
     #   description: Describes additional configuration for VNFC that can be modified using the ModifyVnfInfo operation 
     #   required: false
     # derived types are expected to introduce
     # additional_vnfc_configurable_properties with its type derived from
     # tosca.datatypes.nfv.VnfcAdditionalConfigurableProperties

  tosca.datatypes.nfv.VnfcAdditionalConfigurableProperties:
admin_forge's avatar
admin_forge committed
   derived_from: tosca.datatypes.Root
   description: VnfcAdditionalConfigurableProperties type is an empty base type for deriving data types for describing additional configurable properties for a given VNFC.

  tosca.datatypes.nfv.VduProfile:
admin_forge's avatar
admin_forge committed
   derived_from: tosca.datatypes.Root
   description: describes additional instantiation data for a given Vdu.Compute used in a specific deployment flavour.
   properties:
     min_number_of_instances:
       type: integer
       description: Minimum number of instances of the VNFC based on this Vdu.Compute that is permitted to exist for a particular VNF deployment flavour.
       required: true
       constraints:
         - greater_or_equal: 0
     max_number_of_instances:
       type: integer
       description: Maximum number of instances of the VNFC based on this Vdu.Compute that is permitted to exist for a particular VNF deployment flavour. 
       required: true
       constraints:
         - greater_or_equal: 0

  tosca.datatypes.nfv.VlProfile:
admin_forge's avatar
admin_forge committed
   derived_from: tosca.datatypes.Root
   description: Describes additional instantiation data for a given VL used in a specific VNF deployment flavour.
   properties:
     max_bitrate_requirements:
       type: tosca.datatypes.nfv.LinkBitrateRequirements
       description: Specifies the maximum bitrate requirements for a VL instantiated according to this profile.
       required: true
     min_bitrate_requirements:
       type: tosca.datatypes.nfv.LinkBitrateRequirements
       description: Specifies the minimum bitrate requirements for a VL instantiated according to this profile.
       required: true
     qos:
       type: tosca.datatypes.nfv.Qos
       description: Specifies the QoS requirements of a VL instantiated according to this profile.
       required: false
     virtual_link_protocol_data:
       type: list
       description: Specifies the protocol data for a virtual link.
       required: false
       entry_schema:
         type: tosca.datatypes.nfv.VirtualLinkProtocolData

  tosca.datatypes.nfv.VirtualLinkProtocolData:
admin_forge's avatar
admin_forge committed
   derived_from: tosca.datatypes.Root
   description: describes one protocol layer and associated protocol data for a given virtual link used in a specific VNF deployment flavour
   properties:
     associated_layer_protocol:
admin_forge's avatar
admin_forge committed
        description: Identifies one of the protocols a virtualLink gives access to (ethernet, mpls, odu2, ipv4, ipv6, pseudo-wire) as specified by the connectivity_type property.
        required: true
admin_forge's avatar
admin_forge committed
          - valid_values: [ ethernet, mpls, odu2, ipv4, ipv6, pseudo-wire ]
     l2_protocol_data:
        type: tosca.datatypes.nfv.L2ProtocolData
        description: Specifies the L2 protocol data for a virtual link. Shall be present when the associatedLayerProtocol attribute indicates a L2 protocol and shall be absent otherwise.
        required: false
admin_forge's avatar
admin_forge committed
     l3_protocol_data:
        type: tosca.datatypes.nfv.L3ProtocolData
        description: Specifies the L3 protocol data for this virtual link.  Shall be present when the associatedLayerProtocol attribute indicates a L3 protocol and shall be absent otherwise.
        required: false
admin_forge's avatar
admin_forge committed

  tosca.datatypes.nfv.L2ProtocolData:
   derived_from: tosca.datatypes.Root
   description: describes L2 protocol data for a given virtual link used in a specific VNF deployment flavour.
   properties:
     name:
       type: string
       description: Identifies the network name associated with this L2 protocol.
       required: false
     network_type:
       type: string
       description: Specifies the network type for this L2 protocol. The value may be overridden at run-time.
       required: false
       constraints:
         - valid_values: [ flat, vlan, vxlan, gre ]
     vlan_transparent:
       type: boolean
       description: Specifies whether to support VLAN transparency for this L2 protocol or not.
admin_forge's avatar
admin_forge committed
       default: false
     mtu:
       type: integer
       description: Specifies the maximum transmission unit (MTU) value for this L2 protocol.
       required: false
       constraints:
         - greater_than: 0 
     segmentation_id:
       type: string
       description: Specifies a specific virtualised network segment, which depends on the network type. For e.g., VLAN ID for VLAN network type and tunnel ID for GRE/VXLAN network types
       required: false


  tosca.datatypes.nfv.L3ProtocolData:
admin_forge's avatar
admin_forge committed
   derived_from: tosca.datatypes.Root
   description: describes L3 protocol data for a given virtual link used in a specific VNF deployment flavour.
   properties:
     name:
       type: string
       description: Identifies the network name associated with this L3 protocol.
       required: false
     ip_version:
       type: string
       description: Specifies IP version of this L3 protocol. The value of the ip_version property shall be consistent with the value of the layer_protocol in the connectivity_type property of the virtual link node.
       required: true
       constraints:
         - valid_values: [ ipv4, ipv6 ]
     cidr:
       type: string
       description: Specifies the CIDR (Classless Inter-Domain Routing) of this L3 protocol. The value may be overridden at run-time.
       required: true  
     ip_allocation_pools:
       type: list
       description: Specifies the allocation pools with start and end IP addresses for this L3 protocol. The value may be overridden at run-time.
       required: false
       entry_schema:
         type: tosca.datatypes.nfv.IpAllocationPool
     gateway_ip:
       type: string
       description: Specifies the gateway IP address for this L3 protocol. The value may be overridden at run-time.
       required: false
     dhcp_enabled:
       type: boolean
       description: Indicates whether DHCP (Dynamic Host Configuration Protocol) is enabled or disabled for this L3 protocol. The value may be overridden at run-time.
       required: false
     ipv6_address_mode:
       type: string
       description: Specifies IPv6 address mode. May be present when the value of the ipVersion attribute is "ipv6" and shall be absent otherwise. The value may be overridden at run-time.
       required: false
       constraints:
         - valid_values: [ slaac, dhcpv6-stateful, dhcpv6-stateless ] 

  tosca.datatypes.nfv.IpAllocationPool:
admin_forge's avatar
admin_forge committed
   derived_from: tosca.datatypes.Root
   description: Specifies a range of IP addresses
   properties:
     start_ip_address:
       type: string
       description: The IP address to be used as the first one in a pool of addresses derived from the cidr block full IP range
       required: true
     end_ip_address:
       type: string
       description: The IP address to be used as the last one in a pool of addresses derived from the cidr block full IP range
       required: true

  tosca.datatypes.nfv.InstantiationLevel:
admin_forge's avatar
admin_forge committed
   derived_from: tosca.datatypes.Root
   description: Describes the scale level for each aspect that corresponds to a given level of resources to be instantiated within a deployment flavour in term of the number VNFC instances 
   properties:
     description:
       type: string
       description: Human readable description of the level 
       required: true
     scale_info:
       type: map # key: aspectId
       description: Represents for each aspect the scale level that corresponds to this instantiation level. scale_info shall be present if the VNF supports scaling.
       required: false
       entry_schema:
         type: tosca.datatypes.nfv.ScaleInfo

  tosca.datatypes.nfv.VduLevel:
admin_forge's avatar
admin_forge committed
   derived_from: tosca.datatypes.Root
   description: Indicates for a given Vdu.Compute in a given level the number of instances to deploy 
   properties:
     number_of_instances:
       type: integer
       description: Number of instances of VNFC based on this VDU to deploy for this level.  
       required: true
       constraints:
         - greater_or_equal: 0

  tosca.datatypes.nfv.VnfLcmOperationsConfiguration:
admin_forge's avatar
admin_forge committed
   derived_from: tosca.datatypes.Root
   description: Represents information to configure lifecycle management operations  
   properties:
     instantiate:
       type: tosca.datatypes.nfv.VnfInstantiateOperationConfiguration
       description: Configuration parameters for the InstantiateVnf operation 
       required: false
     scale:
       type: tosca.datatypes.nfv.VnfScaleOperationConfiguration
       description: Configuration parameters for the ScaleVnf operation 
       required: false
     scale_to_level:
       type: tosca.datatypes.nfv.VnfScaleToLevelOperationConfiguration
       description: Configuration parameters for the ScaleVnfToLevel operation 
       required: false
     change_flavour:
       type: tosca.datatypes.nfv.VnfChangeFlavourOperationConfiguration
       description: Configuration parameters for the changeVnfFlavourOpConfig operation 
       required: false
     heal:
       type: tosca.datatypes.nfv.VnfHealOperationConfiguration
       description: Configuration parameters for the HealVnf operation 
       required: false
     terminate:
       type: tosca.datatypes.nfv.VnfTerminateOperationConfiguration
       description: Configuration parameters for the TerminateVnf operation 
       required: false
     operate:
       type: tosca.datatypes.nfv.VnfOperateOperationConfiguration
       description: Configuration parameters for the OperateVnf operation 
       required: false
     change_ext_connectivity:
       type:   tosca.datatypes.nfv.VnfChangeExtConnectivityOperationConfiguration
       description: Configuration parameters for the changeExtVnfConnectivityOpConfig operation 
       required: false
     change_current_package:
       type: tosca.datatypes.nfv.VnfChangeCurrentPackageOperationConfiguration
       description: Configuration parameters for the ChangeCurrentVnfPackage operation
       required: false
       # derived types are expected to introduce new properties, with their type derived from
       # tosca.datatypes.nfv.VnfChangeCurrentPackageOperationConfiguration,
       # with the same name as the operation designated to the ChangeCurrentVnfPackage request
     create_snapshot:
       type: tosca.datatypes.nfv.VnfCreateSnapshotOperationConfiguration
       description: Configuration parameters for the CreateVnfSnapshot operation 
       required: false
     revert_to_snapshot:
       type: tosca.datatypes.nfv.VnfRevertToSnapshotOperationConfiguration
       description: Configuration parameters for the RevertToVnfSnapshot operation 
       required: false

  tosca.datatypes.nfv.VnfInstantiateOperationConfiguration:
admin_forge's avatar
admin_forge committed
   derived_from: tosca.datatypes.Root
   description: represents information that affect the invocation of the InstantiateVnf operation.
   # This data type definition is reserved for future use in the present document.
   # properties:

  tosca.datatypes.nfv.VnfScaleOperationConfiguration:
admin_forge's avatar
admin_forge committed
   derived_from: tosca.datatypes.Root
   description: Represents information that affect the invocation of the ScaleVnf operation 
   properties:
     scaling_by_more_than_one_step_supported:
       type: boolean
       description: Signals whether passing a value larger than one in the numScalingSteps parameter of the ScaleVnf operation is supported by this VNF.
admin_forge's avatar
admin_forge committed
       default: false 

  tosca.datatypes.nfv.VnfScaleToLevelOperationConfiguration:
admin_forge's avatar
admin_forge committed
   derived_from: tosca.datatypes.Root
   description: represents information that affect the invocation of the ScaleVnfToLevel operation
   properties:
     arbitrary_target_levels_supported:
       type: boolean
       description: Signals whether scaling according to the parameter "scaleInfo" is supported by this VNF
       required: true

  tosca.datatypes.nfv.VnfHealOperationConfiguration:
admin_forge's avatar
admin_forge committed
   derived_from: tosca.datatypes.Root
   description: represents information that affect the invocation of the HealVnf operation 
   properties:
     causes:
       type: list
       description: Supported "cause" parameter values 
       required: false
       entry_schema:
         type: string

  tosca.datatypes.nfv.VnfTerminateOperationConfiguration:
admin_forge's avatar
admin_forge committed
   derived_from: tosca.datatypes.Root
   description: represents information that affect the invocation of the TerminateVnf 
   properties:
     min_graceful_termination_timeout:
       type: scalar-unit.time
       description: Minimum timeout value for graceful termination of a VNF instance 
       required: true
     max_recommended_graceful_termination_timeout:
       type: scalar-unit.time
       description: Maximum recommended timeout value that can be needed to gracefully terminate a VNF instance of a particular type under certain conditions, such as maximum load condition. This is provided by VNF provider as information for the operator facilitating the selection of optimal timeout value. This value is not used as constraint
       required: false

  tosca.datatypes.nfv.VnfOperateOperationConfiguration:
admin_forge's avatar
admin_forge committed
   derived_from: tosca.datatypes.Root
   description: represents information that affect the invocation of the OperateVnf operation 
   properties:
     min_graceful_stop_timeout:
       type: scalar-unit.time
       description: Minimum timeout value for graceful stop of a VNF instance 
       required: true
     max_recommended_graceful_stop_timeout:
       type: scalar-unit.time
       description: Maximum recommended timeout value that can be needed to gracefully stop a VNF instance of a particular type under certain conditions, such as maximum load condition. This is provided by VNF provider as information for the operator facilitating the selection of optimal timeout value. This value is not used as constraint
       required: false

  tosca.datatypes.nfv.ScaleInfo:
admin_forge's avatar
admin_forge committed
   derived_from: tosca.datatypes.Root
   description: Indicates for a given scaleAspect the corresponding scaleLevel 
   properties:
     scale_level:
       type: integer
       description: The scale level for a particular aspect 
       required: true
       constraints:
         - greater_or_equal: 0

  tosca.datatypes.nfv.ScalingAspect:
admin_forge's avatar
admin_forge committed
   derived_from: tosca.datatypes.Root
   description: describes the details of an aspect used for horizontal scaling
   properties:
     name:
       type: string
       description: Human readable name of the aspect
       required: true
     description:
       type: string
       description: Human readable description of the aspect
       required: true
     max_scale_level:
       type: integer # positiveInteger
       description: Total number of scaling steps that can be applied w.r.t. this aspect. The value of this property corresponds to the number of scaling steps can be applied to this aspect when scaling it from the minimum scale level (i.e. 0) to the maximum scale level defined by this property
       required: true
       constraints:
         - greater_or_equal: 0
     step_deltas:
       type: list
       description: List of scaling deltas to be applied for the different subsequent scaling steps of this aspect. The first entry in the array shall correspond to the first scaling step (between scale levels 0 to 1) and the last entry in the array shall correspond to the last scaling step (between maxScaleLevel-1 and maxScaleLevel)
       required: false
       entry_schema:
         type: string # Identifier

  tosca.datatypes.nfv.VnfConfigurableProperties:
admin_forge's avatar
admin_forge committed
   derived_from: tosca.datatypes.Root
   description: indicates configuration properties for a given VNF (e.g. related to auto scaling and auto healing).
   properties:
     is_autoscale_enabled:
       type: boolean
       description: It permits to enable (TRUE)/disable (FALSE) the auto-scaling functionality. If the property is not present, then configuring this VNF property is not supported 
       required: false
     is_autoheal_enabled:
       type: boolean
       description: It permits to enable (TRUE)/disable (FALSE) the auto-healing functionality. If the property is not present, then configuring this VNF property is not supported 
       required: false
     vnfm_interface_info:
       type: tosca.datatypes.nfv.VnfmInterfaceInfo
       description: Contains information enabling access to the NFV-MANO interfaces produced by the VNFM (e.g. URIs and credentials), If the property is not present, then configuring this VNF property is not supported.
       required: false
     vnfm_oauth_server_info:
       type: tosca.datatypes.nfv.OauthServerInfo
       description: Contains information to enable discovery of the authorization server protecting access to VNFM interfaces. If the property is not present, then configuring this VNF property is not supported.
       required: false
     vnf_oauth_server_info:
       type: tosca.datatypes.nfv.OauthServerInfo
       description: Contains information to enable discovery of the authorization server to validate the access tokens provided by the VNFM when  the VNFM accesses the VNF interfaces, if that functionality (token introspection) is supported by the authorization server. If the property is not present, then configuring this VNF property is not supported.
       required: false
     # additional_configurable_properties:
       # description: It provides VNF specific configurable properties that can be
       # modified using the ModifyVnfInfo operation 
       # required: false
       # type: tosca.datatypes.nfv.VnfAdditionalConfigurableProperties
     # derived types are expected to introduce
     # additional_configurable_properties with its type derived from
     # tosca.datatypes.nfv.VnfAdditionalConfigurableProperties

  tosca.datatypes.nfv.VnfAdditionalConfigurableProperties:
admin_forge's avatar
admin_forge committed
   derived_from: tosca.datatypes.Root 
   description: is an empty base type for deriving data types for describing additional configurable properties for a given VNF
   properties:
     is_writable_anytime:
       type: boolean
       description: It specifies whether these additional configurable properties are writeable (TRUE) at any time (i.e. prior to / at instantiation time as well as after instantiation).or (FALSE) only prior to / at instantiation time. If this property is not present, the additional configurable properties are writable anytime.
  tosca.datatypes.nfv.VnfInfoModifiableAttributes:
admin_forge's avatar
admin_forge committed
   derived_from: tosca.datatypes.Root
   description: Describes VNF-specific extension and metadata for a given VNF 
   #properties:
     #extensions:
       #type: tosca.datatypes.nfv.VnfInfoModifiableAttributesExtensions
       #description: "Extension" properties of VnfInfo that are writeable 
       #required: false
       # derived types are expected to introduce
       # extensions with its type derived from
       # tosca.datatypes.nfv.VnfInfoModifiableAttributesExtensions
     #metadata:
       #type: tosca.datatypes.nfv.VnfInfoModifiableAttributesMetadata
       #description: "Metadata" properties of VnfInfo that are writeable 
       #required: false
       # derived types are expected to introduce
       # metadata with its type derived from
       # tosca.datatypes.nfv.VnfInfoModifiableAttributesMetadata

  tosca.datatypes.nfv.VnfInfoModifiableAttributesExtensions:
admin_forge's avatar
admin_forge committed
   derived_from: tosca.datatypes.Root 
   description: is an empty base type for deriving data types for describing VNF-specific extension

  tosca.datatypes.nfv.VnfInfoModifiableAttributesMetadata:
admin_forge's avatar
admin_forge committed
   derived_from: tosca.datatypes.Root
   description: is an empty base type for deriving data types for describing VNF-specific metadata

  tosca.datatypes.nfv.LogicalNodeData:
admin_forge's avatar
admin_forge committed
   derived_from: tosca.datatypes.Root
   description: Describes compute, memory and I/O requirements associated with a particular VDU.
   properties:
     logical_node_requirements:
       type: map
       description: The logical node-level compute, memory and I/O requirements. A map  of strings that contains a set of key-value pairs that describes hardware platform specific deployment requirements, including the number of CPU cores on this logical node, a memory configuration specific to a logical node  or a requirement related to the association of an I/O device with the logical node.
       required: false
       entry_schema:
         type: string 

  tosca.datatypes.nfv.SwImageData:
admin_forge's avatar
admin_forge committed
   derived_from: tosca.datatypes.Root
   description: describes information  related to a software image artifact 
   properties: 
     name:
       type: string
       description: Name of this software image 
       required: true
     version:
       type: string
       description: Version of this software image 
       required: true
     provider:
       type: string
       description: Provider of this software image
       required: false
     checksum:
       type: tosca.datatypes.nfv.ChecksumData
       description:  Checksum of the software image file 
       required: true
     container_format:
       type: string
       description: The container format describes the container file format in which software image is provided 
       required: true
       constraints:
         - valid_values: [ aki, ami, ari, bare, docker, ova, ovf ]
     disk_format:
       type: string
       description: The disk format of a software image is the format of the underlying disk image 
       required: true
       constraints:
         - valid_values: [ aki, ami, ari, iso, qcow2, raw, vdi, vhd, vhdx, vmdk ]  
     min_disk:
       type: scalar-unit.size # Number
       description:  The minimal disk size requirement for this software image 
       required: true
       constraints:
         - greater_or_equal: 0 B
     min_ram:
       type: scalar-unit.size # Number
       description: The minimal RAM requirement for this software image 
       required: false
       constraints:
         - greater_or_equal: 0 B
     size:
       type: scalar-unit.size # Number
       description: The size of this software image 
       required: true
     operating_system:
       type: string
       description: Identifies the operating system used in the software image 
       required: false
     supported_virtualisation_environments:
       type: list
       description: Identifies the virtualisation environments (e.g. hypervisor) compatible with this software image 
       required: false
       entry_schema:
         type: string

  tosca.datatypes.nfv.VirtualBlockStorageData:
admin_forge's avatar
admin_forge committed
   derived_from: tosca.datatypes.Root
   description: VirtualBlockStorageData describes block storage requirements associated with compute resources in a particular VDU, either as a local disk or as virtual attached storage
   properties:
     size_of_storage:
       type: scalar-unit.size
       description: Size of virtualised storage resource
       required: true
       constraints:
         - greater_or_equal: 0 B
     vdu_storage_requirements:
       type: map
       description: The hardware platform specific storage requirements. A map of strings that contains a set of key-value pairs that represents the hardware platform specific storage deployment requirements 
       required: false 
       entry_schema:
         type: string
     rdma_enabled:
       type: boolean
       description: Indicates if the storage support RDMA 
admin_forge's avatar
admin_forge committed
       default: false

  tosca.datatypes.nfv.VirtualObjectStorageData:
admin_forge's avatar
admin_forge committed
     derived_from: tosca.datatypes.Root
     description: VirtualObjectStorageData describes object storage requirements associated with compute resources in a particular VDU
     properties:
       max_size_of_storage:
         type: scalar-unit.size
         description: Maximum size of virtualized  storage resource 
         required: false
         constraints:
           - greater_or_equal: 0 B

  tosca.datatypes.nfv.VirtualFileStorageData:
admin_forge's avatar
admin_forge committed
       derived_from: tosca.datatypes.Root
       description: VirtualFileStorageData describes file storage requirements associated with compute resources in a particular VDU
       properties:
         size_of_storage:
           type: scalar-unit.size
           description: Size of virtualized storage resource
           required: true
           constraints:
             - greater_or_equal: 0 B
         file_system_protocol:
           type: string
           description: The shared file system protocol (e.g. NFS, CIFS)
           required: true

  tosca.datatypes.nfv.VirtualLinkBitrateLevel:
    derived_from: tosca.datatypes.Root
    description: Describes bitrate requirements applicable to the virtual link instantiated from a particicular VnfVirtualLink 
    properties:
      bitrate_requirements:
admin_forge's avatar
admin_forge committed
       type: tosca.datatypes.nfv.LinkBitrateRequirements
       description: Virtual link bitrate requirements for an instantiation level or bitrate delta for a scaling step 
       required: true

  tosca.datatypes.nfv.VnfOperationAdditionalParameters:
    derived_from: tosca.datatypes.Root
    description: Is an empty base type for deriving data type for describing VNF-specific parameters to be passed when invoking lifecycle management operations 
admin_forge's avatar
admin_forge committed
    # properties:

  tosca.datatypes.nfv.VnfChangeFlavourOperationConfiguration:
    derived_from: tosca.datatypes.Root
    description: represents information that affect the invocation of the ChangeVnfFlavour operation 
admin_forge's avatar
admin_forge committed
    # This data type definition is reserved for future use in the present document.
    # properties:

  tosca.datatypes.nfv.VnfChangeExtConnectivityOperationConfiguration:
    derived_from: tosca.datatypes.Root
    description: represents information that affect the invocation of the ChangeExtVnfConnectivity operation 
admin_forge's avatar
admin_forge committed
    # This data type definition is reserved for future use in the present document.
    # properties:
    
  tosca.datatypes.nfv.VnfcMonitoringParameter:
    derived_from: tosca.datatypes.Root
    description: Represents information on virtualised resource related performance metrics applicable to the VNF.
    properties:
      name:
admin_forge's avatar
admin_forge committed
       type: string
       description: Human readable name of the monitoring parameter
       required: true
      performance_metric:
admin_forge's avatar
admin_forge committed
       type: string
       description: Identifies a performance metric to be monitored, according to ETSI GS NFV-IFA 027. 
       required: true
       constraints:
         - valid_values: [ v_cpu_usage_mean_vnf, v_cpu_usage_peak_vnf, v_memory_usage_mean_vnf, v_memory_usage_peak_vnf, v_disk_usage_mean_vnf, v_disk_usage_peak_vnf, byte_incoming_vnf_int_cp, byte_outgoing_vnf_int_cp, packet_incoming_vnf_int_cp, packet_outgoing_vnf_int_cp, v_cpu_usage_mean, v_cpu_usage_peak,v_memory_usage_mean,v_memory_usage_peak, v_disk_usage_mean, v_disk_usage_peak, v_net_byte_incoming, v_net_byte_outgoing, v_net_packet_incoming, v_net_packet_outgoing, usage_mean_vStorage, usage_peak_vStorage ] 
      collection_period:
admin_forge's avatar
admin_forge committed
       type: scalar-unit.time
       description: Describes the  periodicity at which to collect the performance information. 
       required: false
       constraints: 
        - greater_than: 0 s
admin_forge's avatar
admin_forge committed
  tosca.datatypes.nfv.VirtualLinkMonitoringParameter:
    derived_from: tosca.datatypes.Root
    description: Represents information on virtualised resource related performance metrics applicable to the VNF.
    properties:
      name:
admin_forge's avatar
admin_forge committed
       type: string
       description: Human readable name of the monitoring parameter
       required: true
      performance_metric:
admin_forge's avatar
admin_forge committed
       type: string
       description: Identifies a performance metric to be monitored.
       required: true
       constraints:
         - valid_values: [ byte_incoming, byte_outgoing, packet_incoming, packet_outgoing ] 
      collection_period:
admin_forge's avatar
admin_forge committed
       type: scalar-unit.time
       description: Describes the periodicity at which to collect the performance information. 
       required: false
       constraints: 
        - greater_than: 0 s
admin_forge's avatar
admin_forge committed
  tosca.datatypes.nfv.InterfaceDetails:
    derived_from: tosca.datatypes.Root
admin_forge's avatar
admin_forge committed
    description: information used to access an interface exposed by a VNF
admin_forge's avatar
admin_forge committed
      uri_components:
       type: tosca.datatypes.nfv.UriComponents
       description: Provides components to build a Uniform Ressource Identifier (URI) where to access the interface end point.
       required: false
      interface_specific_data:
       type: map
       description: Provides additional details that are specific to the type of interface considered.
       required: false
       entry_schema:
admin_forge's avatar
admin_forge committed
  tosca.datatypes.nfv.UriComponents:
    derived_from: tosca.datatypes.Root
    description: information used to build a URI that complies with IETF RFC 3986 [8].
    properties:
      scheme:
       type: string # shall comply with IETF RFC 3986
       description: scheme component of a URI.
       required: true
      authority: 
       type: tosca.datatypes.nfv.UriAuthority
       description: Authority component of a URI
       required: false
      path:
       type: string # shall comply with IETF RFC 3986
       description: path component of a URI.
       required: false
      query:
       type: string # shall comply with IETF RFC 3986
       description: query component of a URI.
       required: false
      fragment:
       type: string # shall comply with IETF RFC 3986
       description: fragment component of a URI.
       required: false

  tosca.datatypes.nfv.UriAuthority:
    derived_from: tosca.datatypes.Root
    description: information that corresponds to the authority component of a URI as specified in IETF RFC 3986 [8]
    properties:
     user_info:
      type: string # shall comply with IETF RFC 3986 
      description: user_info field of the authority component of a URI
      required: false
     host:
      type: string # shall comply with IETF RFC 3986
      description: host field of the authority component of a URI
      required: false
     port:
      type: string # shall comply with IETF RFC 3986
      description: port field of the authority component of a URI
      required: false

  tosca.datatypes.nfv.ChecksumData:
     derived_from: tosca.datatypes.Root
     description: Describes information about the result of performing a checksum operation over some arbitrary data 
     properties:
       algorithm:
         type: string
         description: Describes the algorithm used to obtain the checksum value
         required: true
         constraints:
           - valid_values: [sha-224, sha-256, sha-384, sha-512 ]
       hash:
         type: string
         description: Contains the result of applying the algorithm indicated by the algorithm property to the data to which this ChecksumData refers 
         required: true

  tosca.datatypes.nfv.VnfmInterfaceInfo:
    derived_from: tosca.datatypes.Root
admin_forge's avatar
admin_forge committed
    description: describes information enabling the VNF instance to access the NFV-MANO interfaces produced by the VNFM
admin_forge's avatar
admin_forge committed
      interface_name: 
        type: string 
        description: Identifies an interface produced by the VNFM. 
        required: true 
        constraints: 
          - valid_values: [ vnf_lcm, vnf_pm, vnf_fm ] 
      details: 
        type: tosca.datatypes.nfv.InterfaceDetails 
        description: Provide additional data to access the interface endpoint 
        required: false  
      credentials: 
admin_forge's avatar
admin_forge committed
        description: Provides credential enabling access to the interface
        required: false
        entry_schema:
          type: string

admin_forge's avatar
admin_forge committed
  tosca.datatypes.nfv.OauthServerInfo:
    derived_from: tosca.datatypes.Root
admin_forge's avatar
admin_forge committed
    description: information to enable discovery of the authorization server
    #properties: FFS
    #This data type definition is reserved for future use in the present document

  tosca.datatypes.nfv.BootData:
    derived_from: tosca.datatypes.Root
    description: describes the information used to customize a virtualised compute resource at boot time.
admin_forge's avatar
admin_forge committed
      vim_specific_properties:
        type: tosca.datatypes.nfv.BootDataVimSpecificProperties
        description: Properties used for selecting VIM specific capabilities when setting the boot data.
        required: false
admin_forge's avatar
admin_forge committed
      kvp_data:
        type: tosca.datatypes.nfv.KvpData
        description: A set of key-value pairs for configuring a virtual compute resource.
        required: false
admin_forge's avatar
admin_forge committed
      content_or_file_data:
        type: tosca.datatypes.nfv.ContentOrFileData
        description: A string content or a file for configuring a virtual compute resource. 
        required: false
admin_forge's avatar
admin_forge committed

  tosca.datatypes.nfv.KvpData:
    derived_from: tosca.datatypes.Root
    description: describes a set of key-value pairs information used to customize a virtualised compute resource at boot time by using only key-value pairs data.
    properties:
      data:
        type: map
        description: A map of strings that contains a set of key-value pairs that describes the information for configuring the virtualised compute resource.
        required: false
admin_forge's avatar
admin_forge committed
        entry_schema:
          type: string
admin_forge's avatar
admin_forge committed
  tosca.datatypes.nfv.ContentOrFileData:
    derived_from: tosca.datatypes.Root
admin_forge's avatar
admin_forge committed
    description: describes a string content or a file information used to customize a virtualised compute resource at boot time by using string content or file.
admin_forge's avatar
admin_forge committed
      data:
        type: map
        description: A map of strings that contains a set of key-value pairs that carries the dynamic deployment values which used to replace the corresponding variable parts in the file as identify by a URL as described in source_path. Shall be present if "source_path" is present and shall be absent otherwise..
        required: false
        entry_schema:
          type: string
      content:
        type: string
        description: The string information used to customize a virtualised compute resource at boot time.
        required: false
admin_forge's avatar
admin_forge committed
      source_path:
        type: string
        description: The URL to a file contained in the VNF package used to customize a virtualised compute resource. The content shall comply with IETF RFC 3986 [8].
        required: false
admin_forge's avatar
admin_forge committed
      destination_path:
        type: string
        description: The URL address when inject a file into the virtualised compute resource. The content shall comply with IETF RFC 3986 [8].
admin_forge's avatar
admin_forge committed
  tosca.datatypes.nfv.BootDataVimSpecificProperties:
    derived_from: tosca.datatypes.Root
admin_forge's avatar
admin_forge committed
    description: describes the VIM specific information used for selecting VIM specific capabilities when setting the boot data.
admin_forge's avatar
admin_forge committed
      vim_type:
        type: string 
        description: Discriminator for the different types of the VIM information.
admin_forge's avatar
admin_forge committed
      properties:
        type: map
        description: Properties used for selecting VIM specific capabilities when setting the boot data
        entry_schema:
          type: string
  tosca.datatypes.nfv.VnfPackageChangeSelector:
    derived_from: tosca.datatypes.Root
    description: data type describes the source and destination VNFDs as well as source deployment flavour for a change current VNF Package.
    properties:
      source_descriptor_id:
        type: string
        description: Identifier of the source VNFD and the source VNF package.
        required: true
      destination_descriptor_id:
        type: string
        description: Identifier of the destination VNFD and the destination VNF package.
        required: true
      source_flavour_id:
        type: string
        description: Identifier of the deployment flavour in the source VNF package for which this data type applies.
        required: true

  tosca.datatypes.nfv.VnfPackageChangeComponentMapping:
    derived_from: tosca.datatypes.Root
    description: A mapping between the identifier of a components or property in the source VNFD and the identifier of the corresponding component or property in the destination VNFD.
    properties:
      component_type:
        type: string
        description: The type of component or property. Possible values differentiate whether changes concern to some VNF component (e.g. VDU, internal VLD, etc.) or property (e.g. a Scaling Aspect, etc.).
        constraints:
          - valid_values: [ vdu, cp, virtual_link, virtual_storage, deployment_flavour, instantiation_level, scaling_aspect ]
        required: true
      source_id:
        type: string
        description: Identifier of the component or property in the source VNFD.
        required: true
      destination_id:
        type: string
        description: Identifier of the component or property in the destination VNFD.
        required: true
      description:
        type: string
        description: Human readable description of the component changes.
        required: false

  tosca.datatypes.nfv.VnfChangeCurrentPackageOperationConfiguration:
    derived_from: tosca.datatypes.Root
    description: represents information that affect the invocation of the change current VNF Package operation.
    # This data type definition is reserved for future use in the present document.
    # properties:
      # derived types are expected to introduce new properties, with their type derived from tosca.datatypes.nfv.VnfChangeCurrentPackageOperationConfiguration, with the same name as the operation designated to the ChangeCurrentVnfPackage request

  tosca.datatypes.nfv.VnfCreateSnapshotOperationConfiguration:
    derived_from: tosca.datatypes.Root
    description: represents information that affect the invocation of the CreateVnfSnapshot operation 
  # This data type definition is reserved for future use in the present document.
  # properties:

  tosca.datatypes.nfv.VnfRevertToSnapshotOperationConfiguration:
    derived_from: tosca.datatypes.Root
    description: represents information that affect the invocation of the RevertToVnfSnapshot operation 
  # This data type definition is reserved for future use in the present document.
  # properties:

  tosca.datatypes.nfv.VnfLcmOpCoord:
    derived_from: tosca.datatypes.Root
    description: describes a set of information used for a coordination action in a VNF lifecycle management operation for a given VNF.
    properties:
      description:
        type: string
        description: Human readable description of the coordination action. 
        required: false
      endpoint_type:
        type: string
        description: Specifies the type of the endpoint exposing the LCM operation coordination such as other operations supporting or management systems (e.g. an EM) or the VNF instance. If the VNF produces the LCM coordination interface, this property may be omitted or may have the value "vnf". If this attribute is omitted, the type of endpoint that provides the interface is determined at deployment time. If the VNF does not produce the LCM coordination interface but coordination via this interface is needed, it is expected that a management entity such as the EM exposes the coordination interface, and consequently, this attribute shall be present and shall have the value “mgmt”.
        required: false
        constraints:
          - valid_values: [ mgmt, vnf ]
      coordination_stage:
        type: string
        description: Indicates whether the coordination action is invoked before or after all other changes performed by the VNF LCM operation. coordination_stage property shall be omitted if the coordination action is intended to be invoked at an intermediate stage of the LCM operation, i.e. neither at the start nor at the end. In this case, the time at which to invoke  the coordination during the execution of  the LCM operation is determined by means outside the scope of the present document such as VNFM-internal logic or LCM script.
        required: false
        constraints:
          - valid_values: [ start, end  ]
      # input_parameters:
        # type: tosca.datatypes.nfv.InputOpCoordParams
        # description: Input parameters to be provided in the LCM coordination request.
        # required: false
      # output_parameters:
        # type: tosca.datatypes.nfv.OutputOpCoordParams
        # description: Output parameters provided in the LCM coordination response.
        # required: false

  tosca.datatypes.nfv.OutputOpCoordParams:
    derived_from: tosca.datatypes.Root 
    description: is an empty base type for deriving data types for describing additional Output operation coordination parameters for a given coordination action
        
  tosca.artifacts.nfv.SwImage:
    derived_from: tosca.artifacts.Deployment.Image
admin_forge's avatar
admin_forge committed
    description: describes the software image which is directly loaded on the virtualisation container realizing of the VDU or is to be loaded on a virtual storage resource
    properties:
      name:
        type: string
        description: Name of this software image 
        required: true
      version:
        type: string
        description: Version of this software image