etsi_nfv_sol001_vnfd_types.yaml 90.3 KB
Newer Older
        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.artifacts.Implementation.nfv.Mistral:
    derived_from: tosca.artifacts.Implementation
    description: artifacts for Mistral workflows 
    mime_type: application/x-yaml
    file_ext: [ yaml ]

  tosca.capabilities.nfv.VirtualBindable:
    derived_from: tosca.capabilities.Node
    description: Indicates that the node that includes it can be pointed by a tosca.relationships.nfv.VirtualBindsTo relationship type which is used to model the VduHasCpd association

  tosca.capabilities.nfv.VirtualCompute:    
    derived_from: tosca.capabilities.Node
    description: Describes the capabilities related to virtual compute resources 
    properties:
      logical_node:
admin_forge's avatar
admin_forge committed
       type: map
       description: Describes the Logical Node requirements 
       required: false
       entry_schema:
         type: tosca.datatypes.nfv.LogicalNodeData
      requested_additional_capabilities:
admin_forge's avatar
admin_forge committed
       type: map
       description: Describes additional capability for a particular VDU 
       required: false
       entry_schema:
         type: tosca.datatypes.nfv.RequestedAdditionalCapability
      compute_requirements:
admin_forge's avatar
admin_forge committed
       type: map
       required: false 
       entry_schema:
         type: string
admin_forge's avatar
admin_forge committed
       type: tosca.datatypes.nfv.VirtualMemory
       description: Describes virtual memory of the virtualized compute 
       required: true
admin_forge's avatar
admin_forge committed
       type: tosca.datatypes.nfv.VirtualCpu
       description: Describes virtual CPU(s) of the virtualized compute 
       required: true
      virtual_local_storage:
admin_forge's avatar
admin_forge committed
       type: list
       description: A list of virtual system disks created and destroyed as part of the VM lifecycle 
       required: false
       entry_schema:
        type: tosca.datatypes.nfv.VirtualBlockStorageData
        description: virtual system disk definition 

  tosca.capabilities.nfv.VirtualStorage:
    derived_from: tosca.capabilities.Root
    description: Describes the attachment capabilities related to Vdu.Storage
  tosca.capabilities.nfv.TrunkBindable:
    derived_from: tosca.capabilities.Node
    description: Indicates that the node that includes it can be pointed by a tosca.relationships.nfv.TrunkBindsTo relationship type which is used to model the trunkPortTopology. 
 
relationship_types:
  tosca.relationships.nfv.VirtualBindsTo:
    derived_from: tosca.relationships.DependsOn
    description: Represents an association relationship between Vdu.Compute and VduCp node types 
admin_forge's avatar
admin_forge committed
    valid_target_types: [ tosca.capabilities.nfv.VirtualBindable ]

  tosca.relationships.nfv.AttachesTo:
    derived_from: tosca.relationships.Root
    description: Represents an association relationship between the Vdu.Compute and one of the node types, Vdu.VirtualBlockStorage, Vdu.VirtualObjectStorage or Vdu.VirtualFileStorage
    valid_target_types: [ tosca.capabilities.nfv.VirtualStorage ]
  tosca.relationships.nfv.TrunkBindsTo:
    derived_from: tosca.relationships.DependsOn
    description: Represents the association relationship between a VduCp node used as a trunk port and other VduSubCp nodes used as subports of the same trunk.
    valid_target_types: [ tosca.capabilities.nfv.TrunkBindable ]   
interface_types:
  tosca.interfaces.nfv.Vnflcm:
    derived_from: tosca.interfaces.Root
    description: This interface encompasses a set of TOSCA operations corresponding to the VNF LCM operations defined in ETSI GS NFV-IFA 007 as well as to preamble and postamble procedures to the execution of the VNF LCM operations.
    operations:
      instantiate:
        description: Invoked upon receipt of an Instantiate VNF request
      # inputs:
        # additional_parameters:
        # type: tosca.datatypes.nfv.VnfOperationAdditionalParameters
        # required: false
admin_forge's avatar
admin_forge committed
     # derived types are expected to introduce additional_parameters with its
     # type derived from tosca.datatypes.nfv.VnfOperationAdditionalParameters
      instantiate_start:
        description: Invoked before instantiate
      instantiate_end:
        description: Invoked after instantiate
      terminate:
        description: Invoked upon receipt Terminate VNF request
      # inputs:
        # additional_parameters:
        # type: tosca.datatypes.nfv.VnfOperationAdditionalParameters
        # required: false
admin_forge's avatar
admin_forge committed
     # derived types are expected to introduce additional_parameters with its
     # type derived from tosca.datatypes.nfv.VnfOperationAdditionalParameters
      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
      # inputs:
        # additional_parameters:
        # type: tosca.datatypes.nfv.VnfOperationAdditionalParameters
        # required: false
admin_forge's avatar
admin_forge committed
     # derived types are expected to introduce additional_parameters with its
     # type derived from tosca.datatypes.nfv.VnfOperationAdditionalParameters
      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
      # inputs:
        # additional_parameters:
        # type: tosca.datatypes.nfv.VnfOperationAdditionalParameters
        # required: false
admin_forge's avatar
admin_forge committed
     # derived types are expected to introduce additional_parameters with its
     # type derived from tosca.datatypes.nfv.VnfOperationAdditionalParameters
      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
      # inputs:
        # additional_parameters:
        # type: tosca.datatypes.nfv.VnfOperationAdditionalParameters
        # required: false
admin_forge's avatar
admin_forge committed
     # derived types are expected to introduce additional_parameters with its
     # type derived from tosca.datatypes.nfv.VnfOperationAdditionalParameters
      operate_start:
        description: Invoked before operate
      operate_end:
        description: Invoked after operate
      heal:
        description: Invoked upon receipt of a Heal VNF request
      # inputs:
      #   additional_parameters:
      #     type: tosca.datatypes.nfv.VnfOperationAdditionalParameters
      #     required: false
      # derived types are expected to introduce additional_parameters with its
      # type derived from tosca.datatypes.nfv.VnfOperationAdditionalParameters
        inputs:
          cause:
            type: string
            description: Indicates the reason why a healing procedure is required.
            required: false
          vnfc_instance_ids:
            type: list
            entry_schema:
              type: string
            description: List of VNFC instances requiring a healing action.
            required: false
      heal_start:
        description: Invoked before heal
      heal_end:
        description: Invoked after heal
      scale:
        description: Invoked upon receipt of a Scale VNF request
      # inputs:
        # additional_parameters:
        # type: tosca.datatypes.nfv.VnfOperationAdditionalParameters
        # required: false
admin_forge's avatar
admin_forge committed
     # derived types are expected to introduce additional_parameters with its
     # type derived from tosca.datatypes.nfv.VnfOperationAdditionalParameters
        inputs:
          type:
            type: string
            description: Indicates the type of the scale operation requested.
            constraints:
              - valid_values: [ scale_out, scale_in ]
          aspect:
            type: string
            description: Identifier of the scaling aspect.
          number_of_steps:
            type: integer
            description: Number of scaling steps to be executed.
            required: true
            constraints:
              - greater_than: 0
            default: 1
      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
      # inputs:
        # additional_parameters:
        # type: tosca.datatypes.nfv.VnfOperationAdditionalParameters
        # required: false
admin_forge's avatar
admin_forge committed
     # derived types are expected to introduce additional_parameters with its
     # type derived from tosca.datatypes.nfv.VnfOperationAdditionalParameters
        inputs:
          instantiation_level:
            type: string
            description: Identifier of the target instantiation level of the current deployment flavour to which the VNF is requested to be scaled. Either instantiation_level or scale_info shall be provided.
            required: false
          scale_info:
            type: map # key: aspectId
            description: For each scaling aspect of the current deployment flavour, indicates the target scale level to which the VNF is to be scaled. Either instantiation_level or scale_info shall be provided.
            required: false
            entry_schema:
              type: tosca.datatypes.nfv.ScaleInfo
      scale_to_level_start:
        description: Invoked before scale_to_level
      scale_to_level_end:
        description: Invoked after scale_to_level
      create_snapshot:
        description: Invoked upon receipt of a Create VNF snapshot request
        # inputs:
          # additional_parameters:
          #   type: tosca.datatypes.nfv.VnfOperationAdditionalParameters
          #   required: false
      # derived types are expected to introduce additional_parameters with its
      # type derived from tosca.datatypes.nfv.VnfOperationAdditionalParameters
      create_snapshot_start:
        description: Invoked before create_snapshot
      create_snapshot_end:
        description: Invoked after create_snapshot
      revert_to_snapshot:
        description: Invoked upon receipt of a Revert to VNF snapshot request
        # inputs:
          # additional_parameters:
          #   type: tosca.datatypes.nfv.VnfOperationAdditionalParameters
          #   required: false
      # derived types are expected to introduce additional_parameters with its
      # type derived from tosca.datatypes.nfv.VnfOperationAdditionalParameters
      revert_to_snapshot_start:
        description: Invoked before revert_to_snapshot
      revert_to_snapshot_end:
        description: Invoked after revert_to_snapshot
      change_current_package:
        description: Invoked by tosca.policies.nfv.VnfPackageChange
        # inputs:
          # additional_parameters:
          #   type: tosca.datatypes.nfv.VnfOperationAdditionalParameters
          #   required: false
      # derived types are expected to introduce additional_parameters with its
      # type derived from tosca.datatypes.nfv.VnfOperationAdditionalParameters
      change_current_package_start:
        description: Invoked by tosca.policies.nfv.VnfPackageChange 
      change_current_package_end:
        description: Invoked by tosca.policies.nfv.VnfPackageChange
    notifications:
      change_current_package_notification:
        description: Invoked upon receipt of a ChangeCurrentVnfPackage request
      change_current_package_start_notification:
        description: Invoked before the operation designated to changing the current VNF package
      change_current_package_end_notification:
        description: Invoked after the operation designated to changing the current VNF package
admin_forge's avatar
admin_forge committed

  tosca.interfaces.nfv.VnfIndicator:
    derived_from: tosca.interfaces.Root
    description: This interface is an empty base interface type for deriving VNF specific interface types that include VNF indicator specific notifications.

  tosca.interfaces.nfv.ChangeCurrentVnfPackage:
    derived_from: tosca.interfaces.Root
    description: This interface is an empty base interface type for deriving VNF specific interface types that include VNF Change Current VNF Package specific operation.
      # operation_name: name of a VNF-specific operation serving the Change current VNF Package request.
        # description: Invoked by tosca.policies.nfv.VnfPackageChange
        # inputs:
          # additional_parameters:
          #   type: tosca.datatypes.nfv.VnfOperationAdditionalParameters
          #   required: false
      # derived types are expected to introduce additional_parameters with its
      # type derived from tosca.datatypes.nfv.VnfOperationAdditionalParameters
node_types:
  tosca.nodes.nfv.VNF:
    derived_from: tosca.nodes.Root
    description: The generic abstract type from which all VNF specific node types shall be derived to form, together with other node types, the TOSCA service template(s) representing the VNFD
    properties:
      descriptor_id: # instead of vnfd_id
admin_forge's avatar
admin_forge committed
       type: string # UUID
       description: Identifier of this VNFD information element. This attribute shall be globally unique
       required: true
      descriptor_version: # instead of vnfd_version
admin_forge's avatar
admin_forge committed
       type: string
       description: Identifies the version of the VNFD
       required: true
      provider: # instead of vnf_provider
admin_forge's avatar
admin_forge committed
       type: string
       description: Provider of the VNF and of the VNFD
       required: true
      product_name: # instead of vnf_product_name
admin_forge's avatar
admin_forge committed
       type: string
       description: Human readable name for the VNF Product
       required: true
      software_version: # instead of vnf_software_version
admin_forge's avatar
admin_forge committed
       type: string
       description: Software version of the VNF
       required: true
      product_info_name: # instead of vnf_product_info_name
admin_forge's avatar
admin_forge committed
       type: string
       description: Human readable name for the VNF Product
       required: false
      product_info_description: # instead of vnf_product_info_description
admin_forge's avatar
admin_forge committed
       type: string
       description: Human readable description of the VNF Product
       required: false
admin_forge's avatar
admin_forge committed
       type: list
       required: true
       description: Identifies VNFM(s) compatible with the VNF
       entry_schema:
        type: string
        constraints:
          - pattern: (^etsivnfm:v[0-9]?[0-9]\.[0-9]?[0-9]\.[0-9]?[0-9]$)|(^[0-9]+:[a-zA-Z0-9.-]+$)
      localization_languages:
admin_forge's avatar
admin_forge committed
       type: list
       description: Information about localization languages of the VNF
       required: false
       entry_schema:
        type: string #IETF RFC 5646 string
admin_forge's avatar
admin_forge committed
      default_localization_language:
       type: string #IETF RFC 5646 string
       description: Default localization language that is instantiated if no information about selected localization language is available
       required: false
      #configurable_properties:
admin_forge's avatar
admin_forge committed
       #type: tosca.datatypes.nfv.VnfConfigurableProperties
       #description: Describes the configurable properties of the VNF
       #required: false
       # derived types are expected to introduce configurable_properties 
       # with its type derived from tosca.datatypes.nfv.VnfConfigurableProperties
      #modifiable_attributes:
admin_forge's avatar
admin_forge committed
       #type: tosca.datatypes.nfv.VnfInfoModifiableAttributes
       #description: Describes the modifiable attributes of the VNF
       #required: false 
       # derived types are expected to introduce modifiable_attributes
       # with its type derived from
       # tosca.datatypes.nfv.VnfInfoModifiableAttributes
      lcm_operations_configuration:
admin_forge's avatar
admin_forge committed
       type: tosca.datatypes.nfv.VnfLcmOperationsConfiguration
       description: Describes the configuration parameters for the VNF LCM operations
       required: false
      monitoring_parameters:
admin_forge's avatar
admin_forge committed
       entry_schema:
        type: tosca.datatypes.nfv.VnfMonitoringParameter
       description: Describes monitoring parameters applicable to the VNF.
       required: false
admin_forge's avatar
admin_forge committed
       type: string
       description: Identifier of the Deployment Flavour within the VNFD
       required: true
      flavour_description:
admin_forge's avatar
admin_forge committed
       type: string
       description: Human readable description of the DF
       required: true
admin_forge's avatar
admin_forge committed
       type: tosca.datatypes.nfv.VnfProfile
       description: Describes a profile for instantiating VNFs of a particular NS DF according to a specific VNFD and VNF DF
       required: false
    attributes:
      scale_status:
        type: map # key: aspectId
        description: Scale status of the VNF, one entry per aspect. Represents for every scaling aspect how "big" the VNF has been scaled w.r.t. that aspect.
        entry_schema:
          type: tosca.datatypes.nfv.ScaleInfo
    requirements:
      - virtual_link:
          capability: tosca.capabilities.nfv.VirtualLinkable
          relationship: tosca.relationships.nfv.VirtualLinksTo
          occurrences: [ 0, 1 ]
admin_forge's avatar
admin_forge committed
    # Additional requirements shall be defined in the VNF specific node type (deriving from tosca.nodes.nfv.VNF) corresponding to NS virtual links that need to connect to VnfExtCps
    interfaces:
      Vnflcm:
        type: tosca.interfaces.nfv.Vnflcm
admin_forge's avatar
admin_forge committed
    # VnfIndicator:
    #   type: tosca.interfaces.nfv.VnfIndicator
    # derived types are expected to introduce Vnf Indicator interfaces 
    # with their type derived from tosca.interfaces.nfv.VnfIndicator

  tosca.nodes.nfv.VnfExtCp:
    derived_from: tosca.nodes.nfv.Cp
    description: Describes a logical external connection point, exposed by the VNF enabling connection with an external Virtual Link 
    properties:
      virtual_network_interface_requirements:
admin_forge's avatar
admin_forge committed
       type: list
       description: The actual virtual NIC requirements that is been assigned when instantiating the connection point 
       required: false
       entry_schema:
        type: tosca.datatypes.nfv.VirtualNetworkInterfaceRequirements
    requirements:
      - external_virtual_link:
          capability: tosca.capabilities.nfv.VirtualLinkable
          relationship: tosca.relationships.nfv.VirtualLinksTo
admin_forge's avatar
admin_forge committed
          occurrences: [0, 1]
      - internal_virtual_link: 
          capability: tosca.capabilities.nfv.VirtualLinkable
          relationship: tosca.relationships.nfv.VirtualLinksTo
admin_forge's avatar
admin_forge committed
          occurrences: [1, 1]

  tosca.nodes.nfv.Vdu.Compute:
    derived_from: tosca.nodes.Root
admin_forge's avatar
admin_forge committed
    description: Describes the virtual compute part of a VDU which is a construct  supporting the description of the deployment and operational behavior of a VNFC 
        type: string
        description: Human readable name of the VDU 
        required: true
        type: string
        description: Human readable description of the VDU 
        required: true
        type: boolean
        description: indicates whether the order of the virtual_storage requirements is used as the boot index (the first requirement represents the lowest index and defines highest boot priority) 
        required: true
        default: false
      nfvi_constraints:
        type: map
        description: Describes constraints on the NFVI for the VNFC instance(s) created from this VDU. This property is reserved for future use in the present document.
        required: false
        entry_schema:
          type: string
      monitoring_parameters:
        description: Describes monitoring parameters applicable to a VNFC instantiated from this VDU
        required: false
        entry_schema: 
          type: tosca.datatypes.nfv.VnfcMonitoringParameter
      #configurable_properties:
admin_forge's avatar
admin_forge committed
        #type: tosca.datatypes.nfv.VnfcConfigurableProperties
        #required: false 
        # derived types are expected to introduce
        # configurable_properties with its type derived from
        # tosca.datatypes.nfv.VnfcConfigurableProperties
        type: tosca.datatypes.nfv.VduProfile
        description: Defines additional instantiation data for the VDU.Compute node 
        required: true
        type: tosca.datatypes.nfv.SwImageData
        description: Defines information related to a SwImage artifact used by this Vdu.Compute node 
        required: false # property is required when the node template has an associated artifact of type tosca.artifacts.nfv.SwImage and not required otherwise
        status: deprecated
        type: tosca.datatypes.nfv.BootData
        description: Contains the information used to customize a virtualised compute resource at boot time. The bootData may contain variable parts that are replaced by deployment specific values before being sent to the VIM.
        required: false  
    capabilities:
      virtual_compute:
        type: tosca.capabilities.nfv.VirtualCompute
        occurrences: [ 1, 1 ]
      virtual_binding:
        type: tosca.capabilities.nfv.VirtualBindable
        occurrences: [ 1, UNBOUNDED ]
    requirements:
      - virtual_storage:
          capability: tosca.capabilities.nfv.VirtualStorage
          relationship: tosca.relationships.nfv.AttachesTo
          occurrences: [ 0, UNBOUNDED ]

  tosca.nodes.nfv.Vdu.VirtualBlockStorage:
    derived_from: tosca.nodes.Root
    description: This node type describes the specifications of requirements related to virtual block storage resources
    properties:
      virtual_block_storage_data:
        type: tosca.datatypes.nfv.VirtualBlockStorageData
        description: Describes the block storage characteristics. 
        required: true
        type: tosca.datatypes.nfv.SwImageData
        description: Defines information related to a SwImage artifact used by this Vdu.Compute node. 
        required: false # property is required when the node template has an associated artifact of type tosca.artifacts.nfv.SwImage and not required otherwise
        status: deprecated
    capabilities:
      virtual_storage:
        type: tosca.capabilities.nfv.VirtualStorage
        description: Defines the capabilities of virtual_storage.

  tosca.nodes.nfv.Vdu.VirtualObjectStorage: 
    derived_from: tosca.nodes.Root
    description: This node type describes the specifications of requirements related to virtual object storage resources
    properties:
      virtual_object_storage_data:
        type: tosca.datatypes.nfv.VirtualObjectStorageData
admin_forge's avatar
admin_forge committed
        description: Describes the object storage characteristics.
        required: true
    capabilities:
      virtual_storage:
        type: tosca.capabilities.nfv.VirtualStorage
        description: Defines the capabilities of virtual_storage.

  tosca.nodes.nfv.Vdu.VirtualFileStorage: 
    derived_from: tosca.nodes.Root
    description: This node type describes the specifications of requirements related to virtual file storage resources
    properties:
      virtual_file_storage_data:
        type: tosca.datatypes.nfv.VirtualFileStorageData
        description: Describes the file  storage characteristics.
        required: true
    capabilities:
      virtual_storage:
        type: tosca.capabilities.nfv.VirtualStorage
        #description: Defines the capabilities of virtual_storage.
    requirements:
      - virtual_link:
          capability: tosca.capabilities.nfv.VirtualLinkable
          relationship: tosca.relationships.nfv.VirtualLinksTo
admin_forge's avatar
admin_forge committed
          occurrences: [1, 1]
          # description: Describes the requirements for linking to virtual link

  tosca.nodes.nfv.VduCp:
     derived_from: tosca.nodes.nfv.Cp
     description: describes network connectivity between a VNFC instance based on this VDU and an internal VL 
     properties:
       bitrate_requirement:
         type: integer   # in bits per second
         description: Bitrate requirement in bit per second on this connection point 
         required: false
         constraints: 
           - greater_or_equal: 0
       virtual_network_interface_requirements:
         type: list
         description: Specifies requirements on a virtual network interface realising  the CPs instantiated from this CPD 
         required: false
         entry_schema:
           type: tosca.datatypes.nfv.VirtualNetworkInterfaceRequirements
       order:
         type: integer
         description: The order of the NIC on the compute instance (e.g.eth2)
         required: false
         constraints:
           - greater_or_equal: 0
       vnic_type: 
         type: string
         description: Describes the type of the virtual network interface realizing the CPs instantiated from this CPD
         required: false
         constraints:
         - valid_values: [ normal, macvtap, direct, baremetal, virtio-forwarder, direct-physical, smart-nic ]
     capabilities: 
       trunk_binding: # This capability is available only the trunk_mode property value of this VduCp is “true” and there is at least one VduSubCp defined as subport of the same trunk.
         type: tosca.capabilities.nfv.TrunkBindable
         occurrences: [ 0, UNBOUNDED ]
admin_forge's avatar
admin_forge committed
     requirements:
       - virtual_link:
           capability: tosca.capabilities.nfv.VirtualLinkable
           relationship: tosca.relationships.nfv.VirtualLinksTo
admin_forge's avatar
admin_forge committed
       - 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
    description: Describes the information about an internal VNF VL 
    properties:
      connectivity_type:
admin_forge's avatar
admin_forge committed
       type: tosca.datatypes.nfv.ConnectivityType
       description: Specifies the protocol exposed by the VL and the flow pattern supported by the VL 
       required: true
admin_forge's avatar
admin_forge committed
       type: string
       description: Provides human-readable information on the purpose of the VL 
       required: false
admin_forge's avatar
admin_forge committed
       type: list
       description: Test access facilities available on the VL 
       required: false
       entry_schema:
        type: string
        constraints:
         - valid_values: [ passive_monitoring, active_loopback ]
admin_forge's avatar
admin_forge committed
       type: tosca.datatypes.nfv.VlProfile
       description: Defines additional data for the VL 
       required: true
      monitoring_parameters:
admin_forge's avatar
admin_forge committed
       entry_schema:
        type: tosca.datatypes.nfv.VirtualLinkMonitoringParameter
       description: Describes monitoring parameters applicable to the VL
       required: false
    capabilities:
      virtual_linkable:
admin_forge's avatar
admin_forge committed
       type: tosca.capabilities.nfv.VirtualLinkable

  tosca.nodes.nfv.VipCp:
    derived_from: tosca.nodes.nfv.Cp
    description: Describes a connection point to allocate one or a set of virtual IP addresses 
    properties:
      dedicated_ip_address:
        type: boolean
        description: Indicates whether the VIP address shall be different from the addresses allocated to all associated VduCp instances or shall be the same as one of them.
        required: true
        default: true    
admin_forge's avatar
admin_forge committed
      vip_function:
        type: string
        description: "Indicates the function the virtual IP address is used for: high availability or load balancing. When used for high availability, only one of the internal VDU CP instances or VNF external CP instances that share the virtual IP is bound to the VIP address at a time. When used for load balancing purposes all CP instances that share the virtual IP are bound to it." 
        required: true
        constraints:
          - valid_values: [ high_availability, load_balance ]
    requirements:
      - target:
          capability: tosca.capabilities.Node
admin_forge's avatar
admin_forge committed
          relationship: tosca.relationships.DependsOn
          occurrences: [ 1, UNBOUNDED ]
      - virtual_link:
          capability: tosca.capabilities.nfv.VirtualLinkable
          relationship: tosca.relationships.nfv.VipVirtualLinksTo
          occurrences: [1, 1]

  tosca.nodes.nfv.VduSubCp:
    derived_from: tosca.nodes.nfv.VduCp
    description: describes network connectivity between a VNFC instance based on this VDU and an internal VL through a trunk port 
    properties:
      segmentation_type:
        type: string
        description: Specifies the encapsulation type for the traffics coming in and out of the trunk subport.
        required: false
        constraints:
          - valid_values: [ vlan, inherit ]
      segmentation_id:
        type: integer
        description: Specifies the segmentation ID for the subport, which is used to differentiate the traffics on different networks coming in and out of the trunk port.
        required: false
        constraints:
          - greater_or_equal: 0
    requirements:
      - trunk_binding:
          capability: tosca.capabilities.nfv.TrunkBindable
          relationship: tosca.relationships.nfv.TrunkBindsTo
          node: tosca.nodes.nfv.VduCp
          occurrences: [1, 1]
          
group_types:
  tosca.groups.nfv.PlacementGroup:
    derived_from: tosca.groups.Root
    description: PlacementGroup is used for describing the affinity or anti-affinity relationship applicable between the virtualization containers to be created based on different VDUs, or between internal VLs to be created based on different VnfVirtualLinkDesc(s)
    properties:
      description:
admin_forge's avatar
admin_forge committed
       type: string
       description: Human readable description of the group
       required: true
    members: [ tosca.nodes.nfv.Vdu.Compute, tosca.nodes.nfv.VnfVirtualLink ]
policy_types:
  tosca.policies.nfv.InstantiationLevels:
    derived_from: tosca.policies.Root
    description: The InstantiationLevels type is a policy type representing all the instantiation levels of resources to be instantiated within a deployment flavour and including default instantiation level in term of the number of VNFC instances to be created as defined in ETSI GS NFV-IFA 011 [1].
    properties:
      levels:
admin_forge's avatar
admin_forge committed
       type: map # key: levelId
       description: Describes the various levels of resources that can be used to instantiate the VNF using this flavour.
       required: true
       entry_schema:
         type: tosca.datatypes.nfv.InstantiationLevel
admin_forge's avatar
admin_forge committed
       constraints:
         - min_length: 1
admin_forge's avatar
admin_forge committed
       type: string # levelId
       description: The default instantiation level for this flavour.
       required: false # required if multiple entries in levels

  tosca.policies.nfv.VduInstantiationLevels:
    derived_from: tosca.policies.Root
admin_forge's avatar
admin_forge committed
    description: The VduInstantiationLevels type is a policy type representing all the instantiation levels of resources to be instantiated within a deployment flavour in term of the number of VNFC instances to be created from each vdu.Compute. as defined in ETSI GS NFV-IFA 011 [1]
admin_forge's avatar
admin_forge committed
       type: map # key: levelId
       description: Describes the Vdu.Compute levels of resources that can be used to instantiate the VNF using this flavour
       required: true
       entry_schema:
        type: tosca.datatypes.nfv.VduLevel
       constraints:
         - min_length: 1
    targets: [ tosca.nodes.nfv.Vdu.Compute ]

  tosca.policies.nfv.VirtualLinkInstantiationLevels:
    derived_from: tosca.policies.Root
admin_forge's avatar
admin_forge committed
    description: The VirtualLinkInstantiationLevels type is a policy type representing all the instantiation levels of virtual link resources to be instantiated within a deployment flavour as defined in ETSI GS NFV-IFA 011 [1].
admin_forge's avatar
admin_forge committed
       type: map # key: levelId
       description: Describes the virtual link levels of resources that can be used to instantiate the VNF using this flavour.
       required: true
       entry_schema:
        type: tosca.datatypes.nfv.VirtualLinkBitrateLevel
       constraints:
         - min_length: 1
    targets: [ tosca.nodes.nfv.VnfVirtualLink ]

  tosca.policies.nfv.ScalingAspects:
    derived_from: tosca.policies.Root
admin_forge's avatar
admin_forge committed
    description: The ScalingAspects type is a policy type representing the scaling aspects used for horizontal scaling as defined in ETSI GS NFV-IFA 011 [1]
admin_forge's avatar
admin_forge committed
       type: map # key: aspectId
       description: Describe maximum scale level for total number of scaling steps that can be applied to a particular aspect
       required: true
       entry_schema:
        type: tosca.datatypes.nfv.ScalingAspect
       constraints:
         - min_length: 1

  tosca.policies.nfv.VduScalingAspectDeltas:
    derived_from: tosca.policies.Root
admin_forge's avatar
admin_forge committed
    description: The VduScalingAspectDeltas type is a policy type representing the Vdu.Compute detail of an aspect deltas used for horizontal scaling, as defined in ETSI GS NFV-IFA 011 [1]
admin_forge's avatar
admin_forge committed
       type: string
       description: Represents the scaling aspect to which this policy applies
       required: true
admin_forge's avatar
admin_forge committed
       type: map # key: scalingDeltaId
       description: Describes the Vdu.Compute scaling deltas to be applied for every scaling steps of a particular aspect.
       required: true
       entry_schema:
        type: tosca.datatypes.nfv.VduLevel
       constraints:
         - min_length: 1
    targets: [ tosca.nodes.nfv.Vdu.Compute ]

  tosca.policies.nfv.VirtualLinkBitrateScalingAspectDeltas:
    derived_from: tosca.policies.Root
    description: The VirtualLinkBitrateScalingAspectDeltas type is a policy type representing the VnfVirtualLink detail of an aspect deltas used for horizontal scaling, as defined in ETSI GS NFV-IFA 011 [1].
    properties:
      aspect:
admin_forge's avatar
admin_forge committed
       type: string
       description: Represents the scaling aspect to which this policy applies.
       required: true
admin_forge's avatar
admin_forge committed
       type: map # key: scalingDeltaId
       description: Describes the VnfVirtualLink scaling deltas to be applied for every scaling steps of a particular aspect.
       required: true
       entry_schema:
        type: tosca.datatypes.nfv.VirtualLinkBitrateLevel
       constraints:
         - min_length: 1
    targets: [ tosca.nodes.nfv.VnfVirtualLink ]

  tosca.policies.nfv.VduInitialDelta:
    derived_from: tosca.policies.Root
    description: The VduInitialDelta type is a policy type representing the Vdu.Compute detail of an initial delta used for horizontal scaling, as defined in ETSI GS NFV-IFA 011 [1].
    properties:
admin_forge's avatar
admin_forge committed
     initial_delta:
      type: tosca.datatypes.nfv.VduLevel
      description: Represents the initial minimum size of the VNF.
      required: true
    targets: [ tosca.nodes.nfv.Vdu.Compute ]

  tosca.policies.nfv.VirtualLinkBitrateInitialDelta:
    derived_from: tosca.policies.Root
    description: The VirtualLinkBitrateInitialDelta type is a policy type representing the VnfVirtualLink detail of an initial deltas used for horizontal scaling, as defined in ETSI GS NFV-IFA 011 [1].
    properties:
      initial_delta:
admin_forge's avatar
admin_forge committed
       type: tosca.datatypes.nfv.VirtualLinkBitrateLevel
       description: Represents the initial minimum size of the VNF.
       required: true
    targets: [ tosca.nodes.nfv.VnfVirtualLink ]

  tosca.policies.nfv.AffinityRule:
    derived_from: tosca.policies.Placement
    description: The AffinityRule describes the affinity rules applicable for the defined targets
    properties:
      scope:
admin_forge's avatar
admin_forge committed
       type: string
       description: scope of the rule is an NFVI_node, an NFVI_PoP, etc.
       required: true
       constraints:
        - valid_values: [ nfvi_node, zone, zone_group, nfvi_pop, network_link_and_node ]
    targets: [ tosca.nodes.nfv.Vdu.Compute, tosca.nodes.nfv.VnfVirtualLink, tosca.groups.nfv.PlacementGroup ]

  tosca.policies.nfv.AntiAffinityRule:
    derived_from: tosca.policies.Placement
    description: The AntiAffinityRule describes the anti-affinity rules applicable for the defined targets
    properties:
      scope:
admin_forge's avatar
admin_forge committed
       type: string
       description: scope of the rule is an NFVI_node, an NFVI_PoP, etc.
       required: true
       constraints:
        - valid_values: [ nfvi_node, zone, zone_group, nfvi_pop, network_link_and_node ]
    targets: [ tosca.nodes.nfv.Vdu.Compute, tosca.nodes.nfv.VnfVirtualLink, tosca.groups.nfv.PlacementGroup ]
admin_forge's avatar
admin_forge committed
  
  tosca.policies.nfv.SupportedVnfInterface:
   derived_from: tosca.policies.Root
   description:  this policy type represents interfaces produced by a VNF, the details to access them and the applicable connection points to use to access these interfaces
   properties:
     interface_name:
       type: string
       description: Identifies an interface produced by the VNF.
       required: true
       constraints:
         - valid_values: [ vnf_indicator, vnf_configuration, vnf_lcm_coordination ]
admin_forge's avatar
admin_forge committed
     details:
       type: tosca.datatypes.nfv.InterfaceDetails
       description: Provide additional data to access the interface endpoint
       required: false 
   targets: [ tosca.nodes.nfv.VnfExtCp, tosca.nodes.nfv.VduCp ]

  tosca.policies.nfv.SecurityGroupRule:
admin_forge's avatar
admin_forge committed
    derived_from: tosca.policies.nfv.Abstract.SecurityGroupRule
    description: The SecurityGroupRule type is a policy type specified the matching criteria for the ingress and/or egress traffic to/from visited connection points as defined in ETSI GS NFV-IFA 011 [1].
admin_forge's avatar
admin_forge committed
    targets: [ tosca.nodes.nfv.VduCp, tosca.nodes.nfv.VnfExtCp ]

  tosca.policies.nfv.VnfIndicator:
    derived_from: tosca.policies.Root
    description: The VnfIndicator policy type is a base policy type for defining VNF indicator specific policies that define the conditions to assess and the action to perform when a VNF indicator changes value as defined in ETSI GS NFV-IFA 011 [1].
    properties:
      source:
        type: string
        description: Describe the source of the indicator.
        required: true
        constraints:
          - valid_values: [ vnf, em, both_vnf_and_em ]
    targets: [ tosca.nodes.nfv.VNF ]

  tosca.policies.nfv.VnfPackageChange:
    derived_from: tosca.policies.Root
    description: policy type specifying the processes and rules to be used for performing the resource related tasks, to change VNF instance to a different VNF Package (destination package)
    properties:
      selector:
        type: tosca.datatypes.nfv.VnfPackageChangeSelector
        description: Information to identify the source and destination VNFD for the change, and the related deployment flavours.
        required: true
      modification_qualifier:
        type: string
        description: Specifies the type of modification resulting from transitioning from srcVnfdId to dstVnfdId. The possible values are UP indicating that the destination VNF version is newer than the source version, DOWN indicating that the destination VNF version is older than the source version.
        constraints: [ valid_values: [ up, down ] ]
        required: true
      additional_modification_description:
        type: string
        description: Additional information to qualify further the change between the two versions.
        required: false
      component_mappings:
        type: list
        entry_schema:
          type: tosca.datatypes.nfv.VnfPackageChangeComponentMapping
        description: Mapping information related to identifiers of components in source VNFD and destination VNFD that concern to the change process.
        required: false
      destination_flavour_id:
        type: string
        description: Identifies the deployment flavour in the destination VNF package for which this change applies. The flavour ID is defined in the destination VNF package.
        required: true
      actions:
        type: list
        description: List of applicable supported LCM coordination action names (action_name) specified in this VNFD as a TOSCA policy of a type derived from tosca.policies.nfv.LcmCoordinationAction.
        required: false
        entry_schema:
          type: string
      referenced_coordination_actions:
        type: list
        description: List of names of coordination actions not specified within this VNFD as a TOSCA policy of a type derived from tosca.policies.nfv.LcmCoordinationAction.
        required: false
        entry_schema:
          type: string

  tosca.policies.nfv.LcmCoordinationAction:
    derived_from: tosca.policies.Root
    description: The LcmCoordinationAction type is a policy type representing the LCM coordination actions supported by a VNF and/or expected to be supported by its EM for a particular VNF LCM operation. This policy concerns the whole VNF (deployment flavour) represented by the topology_template and thus has no explicit target list.
    properties:
      action_name:
        type: string
        description: Coordination action name.
        required: true
      # action:  #represents a place holder for specifying actions of a VNF-specific type derived from tosca.datatypes.nfv.VnfLcmOpCoord
        # type: tosca.datatypes.nfv.VnfLcmOpCoord
        # description: Describes a set of information needed for coordination action in the VNF LCM operation.
        # required: true

  tosca.policies.nfv.LcmCoordinationsForLcmOperation:
    derived_from: tosca.policies.Root
    description: The LcmCoordinationsForLcmOperation type is a policy type representing supported LCM coordination actions associated to a VNF LCM operation. This policy concerns the whole VNF (deployment flavour) represented by the topology_template and thus has no explicit target list.
    properties:
      vnf_lcm_operation:
        type: string
        description: The VNF LCM operation the LCM coordination actions are associated with.
        required: true
        constraints:
          - valid_values: [instantiate, scale, scale_to_level, change_flavour, terminate, heal, operate, change_ext_conn, modify_info, create_snapshot, revert_to_snapshot ]
      actions:
        type: list
        description: List of applicable supported LCM coordination action names (action_name) specified in this VNFD as a TOSCA policy of a type derived from tosca.policies.nfv.LcmCoordinationAction.
        required: false
        entry_schema:
          type: string
      referenced_coordination_actions:
        type: list
        description: List of names of coordination actions not specified within this VNFD as a TOSCA policy of a type derived from tosca.policies.nfv.LcmCoordinationAction.
See note 1, note 2.
        required: false
        entry_schema:
          type: string