48f8e6478cf772f273939f5a689db57aebeecef0
[sdc.git] / catalog-be / src / main / resources / import / tosca / models / init / etsi-SOL001-v2.5.1 / imports / etsi_nfv_sol001_vnfd_types.yaml
1 tosca_definitions_version: tosca_simple_yaml_1_2
2 description: ETSI NFV SOL 001 vnfd types definitions version 2.5.1
3
4 data_types:
5   tosca.datatypes.nfv.L2AddressData:
6     derived_from: tosca.datatypes.Root
7     description: Describes the information on the MAC addresses to be assigned to a connection point.
8     properties:
9       mac_address_assignment:
10         type: boolean
11         description: Specifies if the address assignment is the responsibility of management and orchestration function or not. If it is set to True, it is the management and orchestration function responsibility
12         required: true
13
14   tosca.datatypes.nfv.L3AddressData:
15     derived_from: tosca.datatypes.Root
16     description: Provides information about Layer 3 level addressing scheme and parameters applicable to a CP
17     properties:
18       ip_address_assignment:
19         type: boolean
20         description: Specifies if the address assignment is the responsibility of management and orchestration function or not. If it is set to True, it is the management and orchestration function responsibility
21         required: true
22       floating_ip_activated:
23         type: boolean
24         description: Specifies if the floating IP scheme is activated on the Connection Point or not
25         required: true
26       ip_address_type:
27         type: string
28         description: Defines address type. The address type should be aligned with the address type supported by the layer_protocols properties of the parent VnfExtCp
29         required: false
30         constraints:
31           - valid_values: [ ipv4, ipv6 ]
32       number_of_ip_address:
33         type: integer
34         description: Minimum number of IP addresses to be assigned
35         required: false
36         constraints:
37           - greater_than: 0
38
39   tosca.datatypes.nfv.AddressData:
40     derived_from: tosca.datatypes.Root
41     description: Describes information about the addressing scheme and parameters applicable to a CP
42     properties:
43       address_type:
44         type: string
45         description: Describes the type of the address to be assigned to a connection point. The content type shall be aligned with the address type supported by the layerProtocol property of the connection point
46         required: true
47         constraints:
48           - valid_values: [ mac_address, ip_address ]
49       l2_address_data:
50         type: tosca.datatypes.nfv.L2AddressData
51         description: Provides the information on the MAC addresses to be assigned to a connection point.
52         required: false
53       l3_address_data:
54         type: tosca.datatypes.nfv.L3AddressData
55         description: Provides the information on the IP addresses to be assigned to a connection point
56         required: false
57
58   tosca.datatypes.nfv.VirtualNetworkInterfaceRequirements:
59     derived_from: tosca.datatypes.Root
60     description: Describes requirements on a virtual network interface
61     properties:
62       name:
63         type: string
64         description: Provides a human readable name for the requirement.
65         required: false
66       description:
67         type: string
68         description: Provides a human readable description of the requirement.
69         required: false
70       support_mandatory:
71         type: boolean
72         description: Indicates whether fulfilling the constraint is mandatory (TRUE) for successful operation or desirable (FALSE).
73         required: true
74       network_interface_requirements:
75         type: map
76         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.
77         required: true
78         entry_schema:
79           type: string
80       nic_io_requirements:
81         type: tosca.datatypes.nfv.LogicalNodeData
82         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.
83         required: false
84
85   tosca.datatypes.nfv.ConnectivityType:
86     derived_from: tosca.datatypes.Root
87     description: describes additional connectivity information of a virtualLink
88     properties:
89       layer_protocols:
90         type: list
91         description: Identifies the protocol a virtualLink gives access to (ethernet, mpls, odu2, ipv4, ipv6, pseudo-wire).The top layer protocol of the virtualLink protocol stack shall always be provided. The lower layer protocols may be included when there are specific requirements on these layers.
92         required: true
93         entry_schema:
94           type: string
95           constraints:
96             - valid_values: [ ethernet, mpls, odu2, ipv4, ipv6, pseudo-wire ]
97       flow_pattern:
98         type: string
99         description: Identifies the flow pattern of the connectivity
100         required: false
101         constraints:
102           - valid_values: [ line, tree, mesh ]
103
104   tosca.datatypes.nfv.RequestedAdditionalCapability:
105     derived_from: tosca.datatypes.Root
106     description: describes requested additional capability for a particular VDU
107     properties:
108       requested_additional_capability_name:
109         type: string
110         description: Identifies a requested additional capability for the VDU.
111         required: true
112       support_mandatory:
113         type: boolean
114         description: Indicates whether the requested additional capability is mandatory for successful operation.
115         required: true
116       min_requested_additional_capability_version:
117         type: string
118         description: Identifies the minimum version of the requested additional capability.
119         required: false
120       preferred_requested_additional_capability_version:
121         type: string
122         description: Identifies the preferred version of the requested additional capability.
123         required: false
124       target_performance_parameters:
125         type: map
126         description: Identifies specific attributes, dependent on the requested additional capability type.
127         required: true
128         entry_schema:
129           type: string
130
131   tosca.datatypes.nfv.VirtualMemory:
132     derived_from: tosca.datatypes.Root
133     description: supports the specification of requirements related to virtual memory of a virtual compute resource
134     properties:
135       virtual_mem_size:
136         type: scalar-unit.size
137         description: Amount of virtual memory.
138         required: true
139       virtual_mem_oversubscription_policy:
140         type: string
141         description: The memory core oversubscription policy in terms of virtual memory to physical memory on the platform.
142         required: false
143       vdu_mem_requirements:
144         type: map
145         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.
146         required: false
147         entry_schema:
148           type: string
149       numa_enabled:
150         type: boolean
151         description: It specifies the memory allocation to be cognisant of the relevant process/core allocation.
152         required: false
153         default: false
154
155   tosca.datatypes.nfv.VirtualCpu:
156     derived_from: tosca.datatypes.Root
157     description: Supports the specification of requirements related to virtual CPU(s) of a virtual compute resource
158     properties:
159       cpu_architecture:
160         type: string
161         description: CPU architecture type. Examples are x86, ARM
162         required: false
163       num_virtual_cpu:
164         type: integer
165         description: Number of virtual CPUs
166         required: true
167         constraints:
168           - greater_than: 0
169       virtual_cpu_clock:
170         type: scalar-unit.frequency
171         description: Minimum virtual CPU clock rate
172         required: false
173       virtual_cpu_oversubscription_policy:
174         type: string
175         description: CPU core oversubscription policy e.g. the relation of virtual CPU cores to physical CPU cores/threads.
176         required: false
177       vdu_cpu_requirements:
178         type: map
179         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.
180         required: false
181         entry_schema:
182           type: string
183       virtual_cpu_pinning:
184         type: tosca.datatypes.nfv.VirtualCpuPinning
185         description: The virtual CPU pinning configuration for the virtualised compute resource.
186         required: false
187
188   tosca.datatypes.nfv.VirtualCpuPinning:
189     derived_from: tosca.datatypes.Root
190     description: Supports the specification of requirements related to the virtual CPU pinning configuration of a virtual compute resource
191     properties:
192       virtual_cpu_pinning_policy:
193         type: string
194         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.'
195         required: false
196         constraints:
197           - valid_values: [ static, dynamic ]
198       virtual_cpu_pinning_rule:
199         type: list
200         description: Provides the list of rules for allocating virtual CPU cores to logical CPU cores/threads
201         required: false
202         entry_schema:
203           type: string
204
205   tosca.datatypes.nfv.VnfcConfigurableProperties:
206     derived_from: tosca.datatypes.Root
207     description: Defines the configurable properties of a VNFC
208       # properties:
209       # additional_vnfc_configurable_properties:
210       #   type: tosca.datatypes.nfv.VnfcAdditionalConfigurableProperties  
211       #   description: Describes additional configuration for VNFC that
212       #   can be modified using the ModifyVnfInfo operation 
213       #   required: false
214       # derived types are expected to introduce
215       # additional_vnfc_configurable_properties with its type derived from
216     # tosca.datatypes.nfv.VnfcAdditionalConfigurableProperties
217
218   tosca.datatypes.nfv.VnfcAdditionalConfigurableProperties:
219     derived_from: tosca.datatypes.Root
220     description: VnfcAdditionalConfigurableProperties type is an empty base type for deriving data types for describing additional configurable properties for a given VNFC.
221
222   tosca.datatypes.nfv.VduProfile:
223     derived_from: tosca.datatypes.Root
224     description: describes additional instantiation data for a given Vdu.Compute used in a specific deployment flavour.
225     properties:
226       min_number_of_instances:
227         type: integer
228         description: Minimum number of instances of the VNFC based on this Vdu.Compute that is permitted to exist for a particular VNF deployment flavour.
229         required: true
230         constraints:
231           - greater_or_equal: 0
232       max_number_of_instances:
233         type: integer
234         description: Maximum number of instances of the VNFC based on this Vdu.Compute that is permitted to exist for a particular VNF deployment flavour.
235         required: true
236         constraints:
237           - greater_or_equal: 0
238
239   tosca.datatypes.nfv.VlProfile:
240     derived_from: tosca.datatypes.Root
241     description: Describes additional instantiation data for a given VL used in a specific VNF deployment flavour.
242     properties:
243       max_bitrate_requirements:
244         type: tosca.datatypes.nfv.LinkBitrateRequirements
245         description: Specifies the maximum bitrate requirements for a VL instantiated according to this profile.
246         required: true
247       min_bitrate_requirements:
248         type: tosca.datatypes.nfv.LinkBitrateRequirements
249         description: Specifies the minimum bitrate requirements for a VL instantiated according to this profile.
250         required: true
251       qos:
252         type: tosca.datatypes.nfv.Qos
253         description: Specifies the QoS requirements of a VL instantiated according to this profile.
254         required: false
255       virtual_link_protocol_data:
256         type: list
257         description: Specifies the protocol data for a virtual link.
258         required: false
259         entry_schema:
260           type: tosca.datatypes.nfv.VirtualLinkProtocolData
261
262   tosca.datatypes.nfv.VirtualLinkProtocolData:
263     derived_from: tosca.datatypes.Root
264     description: describes one protocol layer and associated protocol data for a given virtual link used in a specific VNF deployment flavour
265     properties:
266       associated_layer_protocol:
267         type: string
268         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.
269         required: true
270         constraints:
271           - valid_values: [ ethernet, mpls, odu2, ipv4, ipv6, pseudo-wire ]
272       l2_protocol_data:
273         type: tosca.datatypes.nfv.L2ProtocolData
274         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.
275         required: false
276       l3_protocol_data:
277         type: tosca.datatypes.nfv.L3ProtocolData
278         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.
279         required: false
280
281   tosca.datatypes.nfv.L2ProtocolData:
282     derived_from: tosca.datatypes.Root
283     description: describes L2 protocol data for a given virtual link used in a specific VNF deployment flavour.
284     properties:
285       name:
286         type: string
287         description: Identifies the network name associated with this L2 protocol.
288         required: false
289       network_type:
290         type: string
291         description: Specifies the network type for this L2 protocol.The value may be overridden at run-time.
292         required: false
293         constraints:
294           - valid_values: [ flat, vlan, vxlan, gre ]
295       vlan_transparent:
296         type: boolean
297         description: Specifies whether to support VLAN transparency for this L2 protocol or not.
298         required: false
299         default: false
300       mtu:
301         type: integer
302         description: Specifies the maximum transmission unit (MTU) value for this L2 protocol.
303         required: false
304         constraints:
305           - greater_than: 0
306
307   tosca.datatypes.nfv.L3ProtocolData:
308     derived_from: tosca.datatypes.Root
309     description: describes L3 protocol data for a given virtual link used in a specific VNF deployment flavour.
310     properties:
311       name:
312         type: string
313         description: Identifies the network name associated with this L3 protocol.
314         required: false
315       ip_version:
316         type: string
317         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.
318         required: true
319         constraints:
320           - valid_values: [ ipv4, ipv6 ]
321       cidr:
322         type: string
323         description: Specifies the CIDR (Classless Inter-Domain Routing) of this L3 protocol. The value may be overridden at run-time.
324         required: true
325       ip_allocation_pools:
326         type: list
327         description: Specifies the allocation pools with start and end IP addresses for this L3 protocol. The value may be overridden at run-time.
328         required: false
329         entry_schema:
330           type: tosca.datatypes.nfv.IpAllocationPool
331       gateway_ip:
332         type: string
333         description: Specifies the gateway IP address for this L3 protocol. The value may be overridden at run-time.
334         required: false
335       dhcp_enabled:
336         type: boolean
337         description: Indicates whether DHCP (Dynamic Host Configuration Protocol) is enabled or disabled for this L3 protocol. The value may be overridden at run-time.
338         required: false
339       ipv6_address_mode:
340         type: string
341         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.
342         required: false
343         constraints:
344           - valid_values: [ slaac, dhcpv6-stateful, dhcpv6-stateless ]
345
346   tosca.datatypes.nfv.IpAllocationPool:
347     derived_from: tosca.datatypes.Root
348     description: Specifies a range of IP addresses
349     properties:
350       start_ip_address:
351         type: string
352         description: The IP address to be used as the first one in a pool of addresses derived from the cidr block full IP range
353         required: true
354       end_ip_address:
355         type: string
356         description: The IP address to be used as the last one in a pool of addresses derived from the cidr block full IP range
357         required: true
358
359   tosca.datatypes.nfv.InstantiationLevel:
360     derived_from: tosca.datatypes.Root
361     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
362     properties:
363       description:
364         type: string
365         description: Human readable description of the level
366         required: true
367       scale_info:
368         type: map # key: aspectId
369         description: Represents for each aspect the scale level that corresponds to this instantiation level. scale_info shall be present if the VNF supports scaling.
370         required: false
371         entry_schema:
372           type: tosca.datatypes.nfv.ScaleInfo
373
374   tosca.datatypes.nfv.VduLevel:
375     derived_from: tosca.datatypes.Root
376     description: Indicates for a given Vdu.Compute in a given level the number of instances to deploy
377     properties:
378       number_of_instances:
379         type: integer
380         description: Number of instances of VNFC based on this VDU to deploy for this level.
381         required: true
382         constraints:
383           - greater_or_equal: 0
384
385   tosca.datatypes.nfv.VnfLcmOperationsConfiguration:
386     derived_from: tosca.datatypes.Root
387     description: Represents information to configure lifecycle management operations
388     properties:
389       instantiate:
390         type: tosca.datatypes.nfv.VnfInstantiateOperationConfiguration
391         description: Configuration parameters for the InstantiateVnf operation
392         required: false
393       scale:
394         type: tosca.datatypes.nfv.VnfScaleOperationConfiguration
395         description: Configuration parameters for the ScaleVnf operation
396         required: false
397       scale_to_level:
398         type: tosca.datatypes.nfv.VnfScaleToLevelOperationConfiguration
399         description: Configuration parameters for the ScaleVnfToLevel operation
400         required: false
401       change_flavour:
402         type: tosca.datatypes.nfv.VnfChangeFlavourOperationConfiguration
403         description: Configuration parameters for the changeVnfFlavourOpConfig operation
404         required: false
405       heal:
406         type: tosca.datatypes.nfv.VnfHealOperationConfiguration
407         description: Configuration parameters for the HealVnf operation
408         required: false
409       terminate:
410         type: tosca.datatypes.nfv.VnfTerminateOperationConfiguration
411         description: Configuration parameters for the TerminateVnf operation
412         required: false
413       operate:
414         type: tosca.datatypes.nfv.VnfOperateOperationConfiguration
415         description: Configuration parameters for the OperateVnf operation
416         required: false
417       change_ext_connectivity:
418         type: tosca.datatypes.nfv.VnfChangeExtConnectivityOperationConfiguration
419         description: Configuration parameters for the changeExtVnfConnectivityOpConfig operation
420         required: false
421
422   tosca.datatypes.nfv.VnfInstantiateOperationConfiguration:
423     derived_from: tosca.datatypes.Root
424     description: represents information that affect the invocation of the InstantiateVnf operation.
425
426   tosca.datatypes.nfv.VnfScaleOperationConfiguration:
427     derived_from: tosca.datatypes.Root
428     description: Represents information that affect the invocation of the ScaleVnf operation
429     properties:
430       scaling_by_more_than_one_step_supported:
431         type: boolean
432         description: Signals whether passing a value larger than one in the numScalingSteps parameter of the ScaleVnf operation is supported by this VNF.
433         required: false
434         default: false
435
436   tosca.datatypes.nfv.VnfScaleToLevelOperationConfiguration:
437     derived_from: tosca.datatypes.Root
438     description: represents information that affect the invocation of the ScaleVnfToLevel operation
439     properties:
440       arbitrary_target_levels_supported:
441         type: boolean
442         description: Signals whether scaling according to the parameter "scaleInfo" is supported by this VNF
443         required: true
444
445   tosca.datatypes.nfv.VnfHealOperationConfiguration:
446     derived_from: tosca.datatypes.Root
447     description: represents information that affect the invocation of the HealVnf operation
448     properties:
449       causes:
450         type: list
451         description: Supported "cause" parameter values
452         required: false
453         entry_schema:
454           type: string
455
456   tosca.datatypes.nfv.VnfTerminateOperationConfiguration:
457     derived_from: tosca.datatypes.Root
458     description: represents information that affect the invocation of the TerminateVnf
459     properties:
460       min_graceful_termination_timeout:
461         type: scalar-unit.time
462         description: Minimum timeout value for graceful termination of a VNF instance
463         required: true
464       max_recommended_graceful_termination_timeout:
465         type: scalar-unit.time
466         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
467         required: false
468
469   tosca.datatypes.nfv.VnfOperateOperationConfiguration:
470     derived_from: tosca.datatypes.Root
471     description: represents information that affect the invocation of the OperateVnf operation
472     properties:
473       min_graceful_stop_timeout:
474         type: scalar-unit.time
475         description: Minimum timeout value for graceful stop of a VNF instance
476         required: true
477       max_recommended_graceful_stop_timeout:
478         type: scalar-unit.time
479         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
480         required: false
481
482   tosca.datatypes.nfv.ScaleInfo:
483     derived_from: tosca.datatypes.Root
484     description: Indicates for a given scaleAspect the corresponding scaleLevel
485     properties:
486       scale_level:
487         type: integer
488         description: The scale level for a particular aspect
489         required: true
490         constraints:
491           - greater_or_equal: 0
492
493   tosca.datatypes.nfv.ScalingAspect:
494     derived_from: tosca.datatypes.Root
495     properties:
496       name:
497         type: string
498         required: true
499       description:
500         type: string
501         required: true
502       max_scale_level:
503         type: integer # positiveInteger
504         required: true
505         constraints:
506           - greater_or_equal: 0
507       step_deltas:
508         type: list
509         required: false
510         entry_schema:
511           type: string # Identifier
512
513   tosca.datatypes.nfv.LinkBitrateRequirements:
514     derived_from: tosca.datatypes.Root
515     description: describes the requirements in terms of bitrate for a virtual link
516     properties:
517       root:
518         type: integer # in bits per second
519         description: Specifies the throughput requirement in bits per second of the link (e.g. bitrate of E-Line, root bitrate of E-Tree, aggregate capacity of E-LAN).
520         required: true
521         constraints:
522           - greater_or_equal: 0
523       leaf:
524         type: integer # in bits per second
525         description: Specifies the throughput requirement in bits per second of leaf connections to the link when applicable to the connectivity type (e.g. for E-Tree and E LAN branches).
526         required: false
527         constraints:
528           - greater_or_equal: 0
529
530   tosca.datatypes.nfv.Qos:
531     derived_from: tosca.datatypes.Root
532     description: describes QoS data for a given VL used in a VNF deployment flavour
533     properties:
534       latency:
535         type: scalar-unit.time #Number
536         description: Specifies the maximum latency
537         required: true
538         constraints:
539           - greater_than: 0 s
540       packet_delay_variation:
541         type: scalar-unit.time #Number
542         description: Specifies the maximum jitter
543         required: true
544         constraints:
545           - greater_or_equal: 0 s
546       packet_loss_ratio:
547         type: float
548         description: Specifies the maximum packet loss ratio
549         required: false
550         constraints:
551           - in_range: [ 0.0, 1.0 ]
552
553   tosca.datatypes.nfv.VnfConfigurableProperties:
554     derived_from: tosca.datatypes.Root
555     description: indicates configuration properties for a given VNF (e.g. related to auto scaling and auto healing).
556     properties:
557       is_autoscale_enabled:
558         type: boolean
559         description: It permits to enable (TRUE)/disable (FALSE) the auto-scaling functionality. If the properties is not present for configuring, then VNF property is not supported
560         required: false
561       is_autoheal_enabled:
562         type: boolean
563         description: It permits to enable (TRUE)/disable (FALSE) the auto-healing functionality. If the properties is not present for configuring, then VNF property is not supported
564         required: false
565         # additional_configurable_properties:
566         # description: It provides VNF specific configurable properties that
567         # can be modified using the ModifyVnfInfo operation 
568         # required: false
569         # type: tosca.datatypes.nfv.VnfAdditionalConfigurableProperties
570       # derived types are expected to introduce
571       # additional_configurable_properties with its type derived from
572       # tosca.datatypes.nfv.VnfAdditionalConfigurableProperties
573
574   tosca.datatypes.nfv.VnfAdditionalConfigurableProperties:
575     derived_from: tosca.datatypes.Root
576     description: is an empty base type for deriving data types for describing additional configurable properties for a given VNF
577
578   tosca.datatypes.nfv.VnfInfoModifiableAttributes:
579     derived_from: tosca.datatypes.Root
580     description: Describes VNF-specific extension and metadata for a given VNF
581       #properties:
582       #extensions:
583       #type: tosca.datatypes.nfv.VnfInfoModifiableAttributesExtensions
584       #description: "Extension" properties of VnfInfo that are writeable
585       #required: false
586       # derived types are expected to introduce
587       # extensions with its type derived from
588       # tosca.datatypes.nfv.VnfInfoModifiableAttributesExtensions
589       #metadata:
590       #type: tosca.datatypes.nfv.VnfInfoModifiableAttributesMetadata
591       #description: "Metadata" properties of VnfInfo that are writeable
592       #required: false
593       # derived types are expected to introduce
594       # metadata with its type derived from
595     # tosca.datatypes.nfv.VnfInfoModifiableAttributesMetadata
596
597   tosca.datatypes.nfv.VnfInfoModifiableAttributesExtensions:
598     derived_from: tosca.datatypes.Root
599     description: is an empty base type for deriving data types for describing VNF-specific extension
600
601   tosca.datatypes.nfv.VnfInfoModifiableAttributesMetadata:
602     derived_from: tosca.datatypes.Root
603     description: is an empty base type for deriving data types for describing VNF-specific metadata
604
605   tosca.datatypes.nfv.CpProtocolData:
606     derived_from: tosca.datatypes.Root
607     description: Describes and associates the protocol layer that a CP uses together with other protocol and connection point information
608     properties:
609       associated_layer_protocol:
610         type: string
611         required: true
612         description: One of the values of the property layer_protocols of the CP
613         constraints:
614           - valid_values: [ ethernet, mpls, odu2, ipv4, ipv6, pseudo-wire ]
615       address_data:
616         type: list
617         description: Provides information on the addresses to be assigned to the CP
618         entry_schema:
619           type: tosca.datatypes.nfv.AddressData
620         required: false
621
622   tosca.datatypes.nfv.LogicalNodeData:
623     derived_from: tosca.datatypes.Root
624     description: Describes compute, memory and I/O requirements associated with a particular VDU.
625     properties:
626       logical_node_requirements:
627         type: map
628         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.
629         required: false
630         entry_schema:
631           type: string
632
633   tosca.datatypes.nfv.SwImageData:
634     derived_from: tosca.datatypes.Root
635     description: describes information  related to a software image artifact
636     properties: # in SOL001 v0.8.0: "properties or metadata:"
637       name:
638         type: string
639         description: Name of this software image
640         required: true
641       version:
642         type: string
643         description: Version of this software image
644         required: true
645       checksum:
646         type: string
647         description: Checksum of the software image file
648         required: true
649       container_format:
650         type: string
651         description: The container format describes the container file format in which software image is provided
652         required: true
653         constraints:
654           - valid_values: [ aki, ami, ari, bare, docker, ova, ovf ]
655       disk_format:
656         type: string
657         description: The disk format of a software image is the format of the underlying disk image
658         required: true
659         constraints:
660           - valid_values: [ aki, ami, ari, iso, qcow2, raw, vdi, vhd, vhdx, vmdk ]
661       min_disk:
662         type: scalar-unit.size # Number
663         description: The minimal disk size requirement for this software image
664         required: true
665       min_ram:
666         type: scalar-unit.size # Number
667         description: The minimal RAM requirement for this software image
668         required: false
669       size:
670         type: scalar-unit.size # Number
671         description: The size of this software image
672         required: true
673       operating_system:
674         type: string
675         description: Identifies the operating system used in the software image
676         required: false
677       supported_virtualisation_environments:
678         type: list
679         description: Identifies the virtualisation environments (e.g. hypervisor) compatible with this software image
680         required: false
681         entry_schema:
682           type: string
683
684   tosca.datatypes.nfv.VirtualBlockStorageData:
685     derived_from: tosca.datatypes.Root
686     description: VirtualBlockStorageData describes block storage requirements associated with compute resources in a particular VDU, either as a local disk or as virtual attached storage
687     properties:
688       size_of_storage:
689         type: scalar-unit.size
690         description: Size of virtualised storage resource
691         required: true
692       vdu_storage_requirements:
693         type: map
694         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.
695         required: false
696         entry_schema:
697           type: string
698       rdma_enabled:
699         type: boolean
700         description: Indicates if the storage support RDMA
701         required: false
702         default: false
703
704   tosca.datatypes.nfv.VirtualObjectStorageData:
705     derived_from: tosca.datatypes.Root
706     description: VirtualObjectStorageData describes object storage requirements associated with compute resources in a particular VDU
707     properties:
708       max_size_of_storage:
709         type: scalar-unit.size
710         description: Maximum size of virtualized storage resource
711         required: false
712
713   tosca.datatypes.nfv.VirtualFileStorageData:
714     derived_from: tosca.datatypes.Root
715     description: VirtualFileStorageData describes file storage requirements associated with compute resources in a particular VDU
716     properties:
717       size_of_storage:
718         type: scalar-unit.size
719         description: Size of virtualized storage resource
720         required: true
721       file_system_protocol:
722         type: string
723         description: The shared file system protocol (e.g. NFS, CIFS)
724         required: true
725
726   tosca.datatypes.nfv.VirtualLinkBitrateLevel:
727     derived_from: tosca.datatypes.Root
728     description: Describes bitrate requirements applicable to the virtual link instantiated from a particicular VnfVirtualLink
729     properties:
730       bitrate_requirements:
731         type: tosca.datatypes.nfv.LinkBitrateRequirements
732         description: Virtual link bitrate requirements for an instantiation level or bitrate delta for a scaling step
733         required: true
734
735   tosca.datatypes.nfv.VnfOperationAdditionalParameters:
736     derived_from: tosca.datatypes.Root
737     description: Is an empty base type for deriving data type for describing VNF-specific parameters to be passed when invoking lifecycle management operations
738     #properties:
739
740   tosca.datatypes.nfv.VnfChangeFlavourOperationConfiguration:
741     derived_from: tosca.datatypes.Root
742     description: represents information that affect the invocation of the ChangeVnfFlavour operation
743     #properties:
744
745   tosca.datatypes.nfv.VnfChangeExtConnectivityOperationConfiguration:
746     derived_from: tosca.datatypes.Root
747     description: represents information that affect the invocation of the ChangeExtVnfConnectivity operation
748     #properties:   
749
750   tosca.datatypes.nfv.VnfMonitoringParameter:
751     derived_from: tosca.datatypes.Root
752     description: Represents information on virtualised resource related performance metrics applicable to the VNF.
753     properties:
754       name:
755         type: string
756         description: Human readable name of the monitoring parameter
757         required: true
758       performance_metric:
759         type: string
760         description: Identifies the performance metric, according to ETSI GS NFV-IFA 027.
761         required: true
762         constraints:
763           - 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_ext_cp, byte_outgoing_vnf_ext_cp,
764                             packet_incoming_vnf_ext_cp, packet_outgoing_vnf_ext_cp ]
765       collection_period:
766         type: scalar-unit.time
767         description: Describes the recommended periodicity at which to collect the performance information.
768         required: false
769         constraints:
770           - greater_than: 0 s
771
772   tosca.datatypes.nfv.VnfcMonitoringParameter:
773     derived_from: tosca.datatypes.Root
774     description: Represents information on virtualised resource related performance metrics applicable to the VNF.
775     properties:
776       name:
777         type: string
778         description: Human readable name of the monitoring parameter
779         required: true
780       performance_metric:
781         type: string
782         description: Identifies the performance metric, according to ETSI GS NFV-IFA 027.
783         required: true
784         constraints:
785           - 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 ]
786       collection_period:
787         type: scalar-unit.time
788         description: Describes the recommended periodicity at which to collect the performance information.
789         required: false
790         constraints:
791           - greater_than: 0 s
792
793   tosca.datatypes.nfv.VirtualLinkMonitoringParameter:
794     derived_from: tosca.datatypes.Root
795     description: Represents information on virtualised resource related performance metrics applicable to the VNF.
796     properties:
797       name:
798         type: string
799         description: Human readable name of the monitoring parameter
800         required: true
801       performance_metric:
802         type: string
803         description: Identifies a performance metric derived from those defined in ETSI GS NFV-IFA 027.The packetOutgoingVirtualLink and packetIncomingVirtualLink metrics shall be obtained by aggregation the PacketOutgoing and PacketIncoming measurements defined in clause 7.1 of GS NFV-IFA 027 of all virtual link ports attached to the virtual link to which the metrics apply.
804         required: true
805         constraints:
806           - valid_values: [ packet_outgoing_virtual_link, packet_incoming_virtual_link ]
807       collection_period:
808         type: scalar-unit.time
809         description: Describes the recommended periodicity at which to collect the performance information.
810         required: false
811         constraints:
812           - greater_than: 0 s
813
814   tosca.datatypes.nfv.InterfaceDetails:
815     derived_from: tosca.datatypes.Root
816     description: information used to access an interface exposed by a VNF
817     properties:
818       uri_components:
819         type: tosca.datatypes.nfv.UriComponents
820         description: Provides components to build a Uniform Ressource Identifier (URI) where to access the interface end point.
821         required: false
822       interface_specific_data:
823         type: map
824         description: Provides additional details that are specific to the type of interface considered.
825         required: false
826         entry_schema:
827           type: string
828
829   tosca.datatypes.nfv.UriComponents:
830     derived_from: tosca.datatypes.Root
831     description: information used to build a URI that complies with IETF RFC 3986 [8].
832     properties:
833       scheme:
834         type: string # shall comply with IETF RFC3986
835         description: scheme component of a URI.
836         required: true
837       authority:
838         type: tosca.datatypes.nfv.UriAuthority
839         description: Authority component of a URI
840         required: false
841       path:
842         type: string # shall comply with IETF RFC 3986
843         description: path component of a URI.
844         required: false
845       query:
846         type: string # shall comply with IETF RFC 3986
847         description: query component of a URI.
848         required: false
849       fragment:
850         type: string # shall comply with IETF RFC 3986
851         description: fragment component of a URI.
852         required: false
853
854   tosca.datatypes.nfv.UriAuthority:
855     derived_from: tosca.datatypes.Root
856     description: information that corresponds to the authority component of a URI as specified in IETF RFC 3986 [8]
857     properties:
858       user_info:
859         type: string # shall comply with IETF RFC 3986
860         description: user_info field of the authority component of a URI
861         required: false
862       host:
863         type: string # shall comply with IETF RFC 3986
864         description: host field of the authority component of a URI
865         required: false
866       port:
867         type: string # shall comply with IETF RFC 3986
868         description: port field of the authority component of a URI
869         required: false
870
871   tosca.datatypes.nfv.VnfProfile:
872     derived_from: tosca.datatypes.Root
873     description: describes a profile for instantiating VNFs of a particular NS DF according to a specific VNFD and VNF DF.
874     properties:
875       instantiation_level:
876         type: string
877         description: Identifier of the instantiation level of the VNF DF to be used for instantiation. If not present, the default instantiation level as declared in the VNFD shall be used.
878         required: false
879       min_number_of_instances:
880         type: integer
881         description: Minimum number of instances of the VNF based on this VNFD that is permitted to exist for this VnfProfile.
882         required: true
883         constraints:
884           - greater_or_equal: 0
885       max_number_of_instances:
886         type: integer
887         description: Maximum number of instances of the VNF based on this VNFD that is permitted to exist for this VnfProfile.
888         required: true
889         constraints:
890           - greater_or_equal: 0
891
892 artifact_types:
893   tosca.artifacts.nfv.SwImage:
894     derived_from: tosca.artifacts.Deployment.Image
895     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.
896
897   tosca.artifacts.Implementation.nfv.Mistral:
898     derived_from: tosca.artifacts.Implementation
899     description: artifacts for Mistral workflows
900     mime_type: application/x-yaml
901     file_ext: [ yaml ]
902
903 capability_types:
904   tosca.capabilities.nfv.VirtualBindable:
905     derived_from: tosca.capabilities.Node
906     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
907
908   tosca.capabilities.nfv.VirtualLinkable:
909     derived_from: tosca.capabilities.Root
910     description: A node type that includes the VirtualLinkable capability indicates that it can be pointed by tosca.relationships.nfv.VirtualLinksTo relationship type
911
912   tosca.capabilities.nfv.VirtualCompute:
913     derived_from: tosca.capabilities.Node
914     description: Describes the capabilities related to virtual compute resources
915     properties:
916       logical_node:
917         type: map
918         description: Describes the Logical Node requirements
919         required: false
920         entry_schema:
921           type: tosca.datatypes.nfv.LogicalNodeData
922       requested_additional_capabilities:
923         type: map
924         description: Describes additional capability for a particular VDU
925         required: false
926         entry_schema:
927           type: tosca.datatypes.nfv.RequestedAdditionalCapability
928       compute_requirements:
929         type: map
930         required: false
931         entry_schema:
932           type: string
933       virtual_memory:
934         type: tosca.datatypes.nfv.VirtualMemory
935         description: Describes virtual memory of the virtualized compute
936         required: true
937       virtual_cpu:
938         type: tosca.datatypes.nfv.VirtualCpu
939         description: Describes virtual CPU(s) of the virtualized compute
940         required: true
941       virtual_local_storage:
942         type: list
943         description: A list of virtual system disks created and destroyed as part of the VM lifecycle
944         required: false
945         entry_schema:
946           type: tosca.datatypes.nfv.VirtualBlockStorageData
947           description: virtual system disk definition
948
949   tosca.capabilities.nfv.VirtualStorage:
950     derived_from: tosca.capabilities.Root
951     description: Describes the attachment capabilities related to Vdu.Storage
952
953 relationship_types:
954   tosca.relationships.nfv.VirtualBindsTo:
955     derived_from: tosca.relationships.DependsOn
956     description: Represents an association relationship between Vdu.Compute and VduCp node types
957     valid_target_types: [ tosca.capabilities.nfv.VirtualBindable ]
958
959   tosca.relationships.nfv.VirtualLinksTo:
960     derived_from: tosca.relationships.DependsOn
961     description: Represents an association relationship between the VduCp and VnfVirtualLink node types
962     valid_target_types: [ tosca.capabilities.nfv.VirtualLinkable ]
963
964   tosca.relationships.nfv.AttachesTo:
965     derived_from: tosca.relationships.Root
966     description: Represents an association relationship between the Vdu.Compute and one of the node types, Vdu.VirtualBlockStorage, Vdu.VirtualObjectStorage or Vdu.VirtualFileStorage
967     valid_target_types: [ tosca.capabilities.nfv.VirtualStorage ]
968
969 interface_types:
970   tosca.interfaces.nfv.Vnflcm:
971     derived_from: tosca.interfaces.Root
972     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.
973     instantiate:
974       description: Invoked upon receipt of an Instantiate VNF request
975         # inputs:
976         # additional_parameters:
977         # type: tosca.datatypes.nfv.VnfOperationAdditionalParameters
978         # required: false
979         # derived types are expected to introduce additional_parameters with
980         # its type derived from 
981       # tosca.datatypes.nfv.VnfOperationAdditionalParameters
982     instantiate_start:
983       description: Invoked before instantiate
984     instantiate_end:
985       description: Invoked after instantiate
986     terminate:
987       description: Invoked upon receipt Terminate VNF request
988         # inputs:
989         # additional_parameters:
990         # type: tosca.datatypes.nfv.VnfOperationAdditionalParameters
991         # required: false
992         # derived types are expected to introduce additional_parameters with
993         # its type derived from
994       # tosca.datatypes.nfv.VnfOperationAdditionalParameters
995     terminate_start:
996       description: Invoked before terminate
997     terminate_end:
998       description: Invoked after terminate
999     modify_information:
1000       description: Invoked upon receipt of a Modify VNF Information request
1001     modify_information_start:
1002       description: Invoked before modify_information
1003     modify_information_end:
1004       description: Invoked after modify_information
1005     change_flavour:
1006       description: Invoked upon receipt of a Change VNF Flavour request
1007         # inputs:
1008         # additional_parameters:
1009         # type: tosca.datatypes.nfv.VnfOperationAdditionalParameters
1010         # required: false
1011         # derived types are expected to introduce additional_parameters with 
1012         # its type derived from 
1013       # tosca.datatypes.nfv.VnfOperationAdditionalParameters
1014     change_flavour_start:
1015       description: Invoked before change_flavour
1016     change_flavour_end:
1017       description: Invoked after change_flavour
1018     change_external_connectivity:
1019       description: Invoked upon receipt of a Change External VNF Connectivity   request
1020         # inputs:
1021         # additional_parameters:
1022         # type: tosca.datatypes.nfv.VnfOperationAdditionalParameters
1023         # required: false
1024         # derived types are expected to introduce additional_parameters with 
1025         # its type derived from 
1026       # tosca.datatypes.nfv.VnfOperationAdditionalParameters
1027     change_external_connectivity_start:
1028       description: Invoked before change_external_connectivity
1029     change_external_connectivity_end:
1030       description: Invoked after change_external_connectivity
1031     operate:
1032       description: Invoked upon receipt of an Operate VNF request
1033         # inputs:
1034         # additional_parameters:
1035         # type: tosca.datatypes.nfv.VnfOperationAdditionalParameters
1036         # required: false
1037         # derived types are expected to introduce additional_parameters with 
1038         # its type derived from 
1039       # tosca.datatypes.nfv.VnfOperationAdditionalParameters
1040     operate_start:
1041       description: Invoked before operate
1042     operate_end:
1043       description: Invoked after operate
1044     heal:
1045       description: Invoked upon receipt of a Heal VNF request
1046         # inputs:
1047         # additional_parameters:
1048         # type: tosca.datatypes.nfv.VnfOperationAdditionalParameters
1049         # required: false
1050         # derived types are expected to introduce additional_parameters with 
1051         # its type derived from 
1052       # tosca.datatypes.nfv.VnfOperationAdditionalParameters
1053     heal_start:
1054       description: Invoked before heal
1055     heal_end:
1056       description: Invoked after heal
1057     scale:
1058       description: Invoked upon receipt of a Scale VNF request
1059         # inputs:
1060         # additional_parameters:
1061         # type: tosca.datatypes.nfv.VnfOperationAdditionalParameters
1062         # required: false
1063         # derived types are expected to introduce additional_parameters with
1064         # its type derived from 
1065       # tosca.datatypes.nfv.VnfOperationAdditionalParameters
1066     scale_start:
1067       description: Invoked before scale
1068     scale_end:
1069       description: Invoked after scale
1070     scale_to_level:
1071       description: Invoked upon receipt of a Scale VNF to Level request
1072         # inputs:
1073         # additional_parameters:
1074         # type: tosca.datatypes.nfv.VnfOperationAdditionalParameters
1075         # required: false
1076         # derived types are expected to introduce additional_parameters with
1077         # its type derived from
1078       # tosca.datatypes.nfv.VnfOperationAdditionalParameters
1079     scale_to_level_start:
1080       description: Invoked before scale_to_level
1081     scale_to_level_end:
1082       description: Invoked after scale_to_level
1083
1084 node_types:
1085   tosca.nodes.nfv.VNF:
1086     derived_from: tosca.nodes.Root
1087     description: The generic abstract type from which all VNF specific abstract node types shall be derived to form, together with other node types, the TOSCA service template(s) representing the VNFD
1088     properties:
1089       descriptor_id: # instead of vnfd_id
1090         type: string # GUID
1091         description: Globally unique identifier of the VNFD
1092         required: true
1093       descriptor_version: # instead of vnfd_version
1094         type: string
1095         description: Identifies the version of the VNFD
1096         required: true
1097       provider: # instead of vnf_provider
1098         type: string
1099         description: Provider of the VNF and of the VNFD
1100         required: true
1101       product_name: # instead of vnf_product_name
1102         type: string
1103         description: Human readable name for the VNF Product
1104         required: true
1105       software_version: # instead of vnf_software_version
1106         type: string
1107         description: Software version of the VNF
1108         required: true
1109       product_info_name: # instead of vnf_product_info_name
1110         type: string
1111         description: Human readable name for the VNF Product
1112         required: false
1113       product_info_description: # instead of vnf_product_info_description
1114         type: string
1115         description: Human readable description of the VNF Product
1116         required: false
1117       vnfm_info:
1118         type: list
1119         required: true
1120         description: Identifies VNFM(s) compatible with the VNF
1121         entry_schema:
1122           type: string
1123       localization_languages:
1124         type: list
1125         description: Information about localization languages of the VNF
1126         required: false
1127         entry_schema:
1128           type: string #IETF RFC 5646 string
1129       default_localization_language:
1130         type: string #IETF RFC 5646 string
1131         description: Default localization language that is instantiated if no information about selected localization language is available
1132         required: false
1133         #configurable_properties:
1134         #type: tosca.datatypes.nfv.VnfConfigurableProperties
1135         #description: Describes the configurable properties of the VNF
1136         #required: false
1137         # derived types are expected to introduce configurable_properties 
1138         # with its type derived from 
1139         # tosca.datatypes.nfv.VnfConfigurableProperties
1140         #modifiable_attributes:
1141         #type: tosca.datatypes.nfv.VnfInfoModifiableAttributes
1142         #description: Describes the modifiable attributes of the VNF
1143         #required: false 
1144         # derived types are expected to introduce modifiable_attributes
1145         # with its type derived from
1146         # tosca.datatypes.nfv.VnfInfoModifiableAttributes
1147       lcm_operations_configuration:
1148         type: tosca.datatypes.nfv.VnfLcmOperationsConfiguration
1149         description: Describes the configuration parameters for the VNF LCM operations
1150         required: false
1151       monitoring_parameters:
1152         type: list
1153         entry_schema:
1154           type: tosca.datatypes.nfv.VnfMonitoringParameter
1155         description: Describes monitoring parameters applicable to the VNF.
1156         required: false
1157       flavour_id:
1158         type: string
1159         description: Identifier of the Deployment Flavour within the VNFD
1160         required: true
1161       flavour_description:
1162         type: string
1163         description: Human readable description of the DF
1164         required: true
1165       #vnf_profile:
1166       #  type: tosca.datatypes.nfv.VnfProfile
1167       #  description: Describes a profile for instantiating VNFs of a particular NS DF according to a specific VNFD and VNF DF
1168       #  required: false
1169     requirements:
1170       - virtual_link:
1171           capability: tosca.capabilities.nfv.VirtualLinkable
1172           relationship: tosca.relationships.nfv.VirtualLinksTo
1173           occurrences: [ 0, 1 ]
1174     # 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
1175     interfaces:
1176       Vnflcm:
1177         type: tosca.interfaces.nfv.Vnflcm
1178
1179   tosca.nodes.nfv.VnfExtCp:
1180     derived_from: tosca.nodes.nfv.Cp
1181     description: Describes a logical external connection point, exposed by the VNF enabling connection with an external Virtual Link
1182     properties:
1183       virtual_network_interface_requirements:
1184         type: list
1185         description: The actual virtual NIC requirements that is been assigned when instantiating the connection point
1186         required: false
1187         entry_schema:
1188           type: tosca.datatypes.nfv.VirtualNetworkInterfaceRequirements
1189     requirements:
1190       - external_virtual_link:
1191           capability: tosca.capabilities.nfv.VirtualLinkable
1192           relationship: tosca.relationships.nfv.VirtualLinksTo
1193       - internal_virtual_link: #name in ETSI NFV IFA011 v0.7.3: intVirtualLinkDesc
1194           capability: tosca.capabilities.nfv.VirtualLinkable
1195           relationship: tosca.relationships.nfv.VirtualLinksTo
1196
1197   tosca.nodes.nfv.Vdu.Compute:
1198     derived_from: tosca.nodes.Root
1199     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
1200     properties:
1201       name:
1202         type: string
1203         description: Human readable name of the VDU
1204         required: true
1205       description:
1206         type: string
1207         description: Human readable description of the VDU
1208         required: true
1209       boot_order:
1210         type: list # explicit index (boot index) not necessary, contrary to IFA011
1211         description: References a node template name from which a valid boot device is created
1212         required: false
1213         entry_schema:
1214           type: string
1215       nfvi_constraints:
1216         type: list
1217         description: Describes constraints on the NFVI for the VNFC instance(s) created from this VDU
1218         required: false
1219         entry_schema:
1220           type: string
1221       monitoring_parameters:
1222         type: list
1223         description: Describes monitoring parameters applicable to a VNFC instantiated from this VDU
1224         required: false
1225         entry_schema:
1226           type: tosca.datatypes.nfv.VnfcMonitoringParameter
1227           #configurable_properties:
1228           #type: tosca.datatypes.nfv.VnfcConfigurableProperties
1229           #required: false
1230           # derived types are expected to introduce
1231           # configurable_properties with its type derived from
1232           # tosca.datatypes.nfv.VnfcConfigurableProperties
1233       vdu_profile:
1234         type: tosca.datatypes.nfv.VduProfile
1235         description: Defines additional instantiation data for the VDU.Compute node
1236         required: true
1237       sw_image_data:
1238         type: tosca.datatypes.nfv.SwImageData
1239         description: Defines information related to a SwImage artifact used by this Vdu.Compute node
1240         required: false # property is required when the node template has an associated artifact of type tosca.artifacts.nfv.SwImage and not required otherwise
1241       boot_data:
1242         type: string
1243         description: Contains a string or a URL to a file contained in the VNF package 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.
1244         required: false
1245     capabilities:
1246       virtual_compute:
1247         type: tosca.capabilities.nfv.VirtualCompute
1248         occurrences: [ 1, 1 ]
1249       virtual_binding:
1250         type: tosca.capabilities.nfv.VirtualBindable
1251         occurrences: [ 1, UNBOUNDED ]
1252     requirements:
1253       - virtual_storage:
1254           capability: tosca.capabilities.nfv.VirtualStorage
1255           relationship: tosca.relationships.nfv.AttachesTo
1256           occurrences: [ 0, UNBOUNDED ]
1257
1258   tosca.nodes.nfv.Vdu.VirtualBlockStorage:
1259     derived_from: tosca.nodes.Root
1260     description: This node type describes the specifications of requirements related to virtual block storage resources
1261     properties:
1262       virtual_block_storage_data:
1263         type: tosca.datatypes.nfv.VirtualBlockStorageData
1264         description: Describes the block storage characteristics.
1265         required: true
1266       sw_image_data:
1267         type: tosca.datatypes.nfv.SwImageData
1268         description: Defines information related to a SwImage artifact used by this Vdu.Compute node.
1269         required: false # property is required when the node template has an associated artifact of type tosca.artifacts.nfv.SwImage and not required otherwise
1270     capabilities:
1271       virtual_storage:
1272         type: tosca.capabilities.nfv.VirtualStorage
1273         description: Defines the capabilities of virtual_storage.
1274
1275   tosca.nodes.nfv.Vdu.VirtualObjectStorage:
1276     derived_from: tosca.nodes.Root
1277     description: This node type describes the specifications of requirements related to virtual object storage resources
1278     properties:
1279       virtual_object_storage_data:
1280         type: tosca.datatypes.nfv.VirtualObjectStorageData
1281         description: Describes the object  storage characteristics.
1282         required: true
1283     capabilities:
1284       virtual_storage:
1285         type: tosca.capabilities.nfv.VirtualStorage
1286         description: Defines the capabilities of virtual_storage.
1287
1288   tosca.nodes.nfv.Vdu.VirtualFileStorage:
1289     derived_from: tosca.nodes.Root
1290     description: This node type describes the specifications of requirements related to virtual file storage resources
1291     properties:
1292       virtual_file_storage_data:
1293         type: tosca.datatypes.nfv.VirtualFileStorageData
1294         description: Describes the file  storage characteristics.
1295         required: true
1296     capabilities:
1297       virtual_storage:
1298         type: tosca.capabilities.nfv.VirtualStorage
1299         description: Defines the capabilities of virtual_storage.
1300     requirements:
1301       - virtual_link:
1302           capability: tosca.capabilities.nfv.VirtualLinkable
1303           relationship: tosca.relationships.nfv.VirtualLinksTo
1304           #description: Describes the requirements for linking to virtual link
1305
1306   tosca.nodes.nfv.Cp:
1307     derived_from: tosca.nodes.Root
1308     description: Provides information regarding the purpose of the connection point
1309     properties:
1310       layer_protocols:
1311         type: list
1312         description: Identifies which protocol the connection point uses for connectivity purposes
1313         required: true
1314         entry_schema:
1315           type: string
1316           constraints:
1317             - valid_values: [ ethernet, mpls, odu2, ipv4, ipv6, pseudo-wire ]
1318       role: #Name in ETSI NFV IFA011 v0.7.3: cpRole
1319         type: string
1320         description: Identifies the role of the port in the context of the traffic flow patterns in the VNF or parent NS
1321         required: false
1322         constraints:
1323           - valid_values: [ root, leaf ]
1324       description:
1325         type: string
1326         description: Provides human-readable information on the purpose of the connection point
1327         required: false
1328       protocol:
1329         type: list
1330         description: Provides information on the addresses to be assigned to the connection point(s) instantiated from this Connection Point Descriptor
1331         required: false
1332         entry_schema:
1333           type: tosca.datatypes.nfv.CpProtocolData
1334       trunk_mode:
1335         type: boolean
1336         description: Provides information about whether the CP instantiated from this Cp is in Trunk mode (802.1Q or other), When operating in "trunk mode", the Cp is capable of carrying traffic for several VLANs. Absence of this property implies that trunkMode is not configured for the Cp i.e. It is equivalent to boolean value "false".
1337         required: false
1338
1339   tosca.nodes.nfv.VduCp:
1340     derived_from: tosca.nodes.nfv.Cp
1341     description: describes network connectivity between a VNFC instance based on this VDU and an internal VL
1342     properties:
1343       bitrate_requirement:
1344         type: integer   # in bits per second
1345         description: Bitrate requirement in bit per second on this connection point
1346         required: false
1347         constraints:
1348           - greater_or_equal: 0
1349       virtual_network_interface_requirements:
1350         type: list
1351         description: Specifies requirements on a virtual network interface realising the CPs instantiated from this CPD
1352         required: false
1353         entry_schema:
1354           type: tosca.datatypes.nfv.VirtualNetworkInterfaceRequirements
1355       order:
1356         type: integer
1357         description: The order of the NIC on the compute instance (e.g.eth2)
1358         required: false
1359         constraints:
1360           - greater_or_equal: 0
1361       vnic_type:
1362         type: string
1363         description: Describes the type of the virtual network interface realizing the CPs instantiated from this CPD
1364         required: false
1365         constraints:
1366           - valid_values: [ normal, virtio, direct-physical ]
1367     requirements:
1368       - virtual_link:
1369           capability: tosca.capabilities.nfv.VirtualLinkable
1370           relationship: tosca.relationships.nfv.VirtualLinksTo
1371       - virtual_binding:
1372           capability: tosca.capabilities.nfv.VirtualBindable
1373           relationship: tosca.relationships.nfv.VirtualBindsTo
1374           node: tosca.nodes.nfv.Vdu.Compute
1375
1376   tosca.nodes.nfv.VnfVirtualLink:
1377     derived_from: tosca.nodes.Root
1378     description: Describes the information about an internal VNF VL
1379     properties:
1380       connectivity_type:
1381         type: tosca.datatypes.nfv.ConnectivityType
1382         description: Specifies the protocol exposed by the VL and the flow pattern supported by the VL
1383         required: true
1384       description:
1385         type: string
1386         description: Provides human-readable information on the purpose of the VL
1387         required: false
1388       test_access:
1389         type: list
1390         description: Test access facilities available on the VL
1391         required: false
1392         entry_schema:
1393           type: string
1394           constraints:
1395             - valid_values: [ passive_monitoring, active_loopback ]
1396       vl_profile:
1397         type: tosca.datatypes.nfv.VlProfile
1398         description: Defines additional data for the VL
1399         required: true
1400       monitoring_parameters:
1401         type: list
1402         description: Describes monitoring parameters applicable to the VL
1403         required: false
1404         entry_schema:
1405           type: tosca.datatypes.nfv.VirtualLinkMonitoringParameter
1406     capabilities:
1407       virtual_linkable:
1408         type: tosca.capabilities.nfv.VirtualLinkable
1409
1410 group_types:
1411   tosca.groups.nfv.PlacementGroup:
1412     derived_from: tosca.groups.Root
1413     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)
1414     properties:
1415       description:
1416         type: string
1417         description: Human readable description of the group
1418         required: true
1419     members: [ tosca.nodes.nfv.Vdu.Compute, tosca.nodes.nfv.VnfVirtualLink ]
1420
1421 policy_types:
1422   tosca.policies.nfv.InstantiationLevels:
1423     derived_from: tosca.policies.Root
1424     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].
1425     properties:
1426       levels:
1427         type: map # key: levelId
1428         description: Describes the various levels of resources that can be used to instantiate the VNF using this flavour.
1429         required: true
1430         entry_schema:
1431           type: tosca.datatypes.nfv.InstantiationLevel
1432       default_level:
1433         type: string # levelId
1434         description: The default instantiation level for this flavour.
1435         required: false # required if multiple entries in levels
1436
1437   tosca.policies.nfv.VduInstantiationLevels:
1438     derived_from: tosca.policies.Root
1439     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]
1440     properties:
1441       levels:
1442         type: map # key: levelId
1443         description: Describes the Vdu.Compute levels of resources that can be used to instantiate the VNF using this flavour
1444         required: true
1445         entry_schema:
1446           type: tosca.datatypes.nfv.VduLevel
1447     targets: [ tosca.nodes.nfv.Vdu.Compute ]
1448
1449   tosca.policies.nfv.VirtualLinkInstantiationLevels:
1450     derived_from: tosca.policies.Root
1451     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].
1452     properties:
1453       levels:
1454         type: map # key: levelId
1455         description: Describes the virtual link levels of resources that can be used to instantiate the VNF using this flavour.
1456         required: true
1457         entry_schema:
1458           type: tosca.datatypes.nfv.VirtualLinkBitrateLevel
1459     targets: [ tosca.nodes.nfv.VnfVirtualLink ]
1460
1461   tosca.policies.nfv.ScalingAspects:
1462     derived_from: tosca.policies.Root
1463     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].
1464     properties:
1465       aspects:
1466         type: map # key: aspectId
1467         description: Describe maximum scale level for total number of scaling steps that can be applied to a particular aspect
1468         required: true
1469         entry_schema:
1470           type: tosca.datatypes.nfv.ScalingAspect
1471
1472   tosca.policies.nfv.VduScalingAspectDeltas:
1473     derived_from: tosca.policies.Root
1474     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].
1475     properties:
1476       aspect:
1477         type: string
1478         description: Represents the scaling aspect to which this policy applies
1479         required: true
1480       deltas:
1481         type: map # key: scalingDeltaId
1482         description: Describes the Vdu.Compute scaling deltas to be applied for every scaling steps of a particular aspect.
1483         required: true
1484         entry_schema:
1485           type: tosca.datatypes.nfv.VduLevel
1486     targets: [ tosca.nodes.nfv.Vdu.Compute ]
1487
1488   tosca.policies.nfv.VirtualLinkBitrateScalingAspectDeltas:
1489     derived_from: tosca.policies.Root
1490     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].
1491     properties:
1492       aspect:
1493         type: string
1494         description: Represents the scaling aspect to which this policy applies.
1495         required: true
1496       deltas:
1497         type: map # key: scalingDeltaId
1498         description: Describes the VnfVirtualLink scaling deltas to be applied for every scaling steps of a particular aspect.
1499         required: true
1500         entry_schema:
1501           type: tosca.datatypes.nfv.VirtualLinkBitrateLevel
1502     targets: [ tosca.nodes.nfv.VnfVirtualLink ]
1503
1504   tosca.policies.nfv.VduInitialDelta:
1505     derived_from: tosca.policies.Root
1506     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].
1507     properties:
1508       initial_delta:
1509         type: tosca.datatypes.nfv.VduLevel
1510         description: Represents the initial minimum size of the VNF.
1511         required: true
1512     targets: [ tosca.nodes.nfv.Vdu.Compute ]
1513
1514   tosca.policies.nfv.VirtualLinkBitrateInitialDelta:
1515     derived_from: tosca.policies.Root
1516     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].
1517     properties:
1518       initial_delta:
1519         type: tosca.datatypes.nfv.VirtualLinkBitrateLevel
1520         description: Represents the initial minimum size of the VNF.
1521         required: true
1522     targets: [ tosca.nodes.nfv.VnfVirtualLink ]
1523
1524   tosca.policies.nfv.AffinityRule:
1525     derived_from: tosca.policies.Placement
1526     description: The AffinityRule describes the affinity rules applicable for the defined targets
1527     properties:
1528       scope:
1529         type: string
1530         description: scope of the rule is an NFVI_node, an NFVI_PoP, etc.
1531         required: true
1532         constraints:
1533           - valid_values: [ nfvi_node, zone, zone_group, nfvi_pop ]
1534     targets: [ tosca.nodes.nfv.Vdu.Compute, tosca.nodes.nfv.VnfVirtualLink, tosca.groups.nfv.PlacementGroup ]
1535
1536   tosca.policies.nfv.AntiAffinityRule:
1537     derived_from: tosca.policies.Placement
1538     description: The AntiAffinityRule describes the anti-affinity rules applicable for the defined targets
1539     properties:
1540       scope:
1541         type: string
1542         description: scope of the rule is an NFVI_node, an NFVI_PoP, etc.
1543         required: true
1544         constraints:
1545           - valid_values: [ nfvi_node, zone, zone_group, nfvi_pop ]
1546     targets: [ tosca.nodes.nfv.Vdu.Compute, tosca.nodes.nfv.VnfVirtualLink, tosca.groups.nfv.PlacementGroup ]
1547
1548   tosca.policies.nfv.SecurityGroupRule:
1549     derived_from: tosca.policies.Root
1550     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].
1551     properties:
1552       description:
1553         type: string
1554         description: Human readable description of the security group rule.
1555         required: false
1556       direction:
1557         type: string
1558         description: The direction in which the security group rule is applied. The direction of 'ingress' or 'egress' is specified against the associated CP. I.e., 'ingress' means the packets entering a CP, while 'egress' means the packets sent out of a CP.
1559         required: false
1560         constraints:
1561           - valid_values: [ ingress, egress ]
1562         default: ingress
1563       ether_type:
1564         type: string
1565         description: Indicates the protocol carried over the Ethernet layer.
1566         required: false
1567         constraints:
1568           - valid_values: [ ipv4, ipv6 ]
1569         default: ipv4
1570       protocol:
1571         type: string
1572         description: Indicates the protocol carried over the IP layer. Permitted values include any protocol defined in the IANA protocol registry, e.g. TCP, UDP, ICMP, etc.
1573         required: false
1574         constraints:
1575           - valid_values: [ hopopt, icmp, igmp, ggp, ipv4, st, tcp, cbt, egp, igp, bbn_rcc_mon, nvp_ii, pup, argus, emcon, xnet, chaos, udp, mux, dcn_meas, hmp, prm, xns_idp, trunk_1, trunk_2, leaf_1, leaf_2, rdp, irtp, iso_tp4, netblt, mfe_nsp, merit_inp, dccp, 3pc, idpr, xtp, ddp, idpr_cmtp, tp++, il, ipv6, sdrp, ipv6_route, ipv6_frag, idrp, rsvp, gre, dsr, bna, esp, ah, i_nlsp, swipe, narp, mobile, tlsp, skip, ipv6_icmp, ipv6_no_nxt, ipv6_opts, cftp, sat_expak, kryptolan, rvd, ippc, sat_mon, visa, ipcv, cpnx, cphb, wsn, pvp, br_sat_mon, sun_nd, wb_mon, wb_expak, iso_ip, vmtp, secure_vmtp, vines, ttp, iptm, nsfnet_igp, dgp, tcf, eigrp, ospfigp, sprite_rpc, larp, mtp, ax.25, ipip, micp, scc_sp, etherip, encap, gmtp, ifmp, pnni, pim, aris, scps, qnx, a/n, ip_comp, snp, compaq_peer, ipx_in_ip, vrrp, pgm, l2tp, ddx, iatp, stp, srp, uti, smp, sm, ptp, isis, fire, crtp, crudp, sscopmce, iplt, sps, pipe, sctp, fc, rsvp_e2e_ignore, mobility, udp_lite, mpls_in_ip, manet, hip, shim6, wesp, rohc ]
1576         default: tcp
1577       port_range_min:
1578         type: integer
1579         description: Indicates minimum port number in the range that is matched by the security group rule. If a value is provided at design-time, this value may be overridden at run-time based on other deployment requirements or constraints.
1580         required: false
1581         constraints:
1582           - greater_or_equal: 0
1583           - less_or_equal: 65535
1584         default: 0
1585       port_range_max:
1586         type: integer
1587         description: Indicates maximum port number in the range that is matched by the security group rule. If a value is provided at design-time, this value may be overridden at run-time based on other deployment requirements or constraints.
1588         required: false
1589         constraints:
1590           - greater_or_equal: 0
1591           - less_or_equal: 65535
1592         default: 65535
1593     targets: [ tosca.nodes.nfv.VduCp, tosca.nodes.nfv.VnfExtCp ]
1594
1595   tosca.policies.nfv.SupportedVnfInterface:
1596     derived_from: tosca.policies.Root
1597     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
1598     properties:
1599       interface_name:
1600         type: string
1601         description: Identifies an interface produced by the VNF.
1602         required: true
1603         constraints:
1604           - valid_values: [ vnf_indicator, vnf_configuration ]
1605       details:
1606         type: tosca.datatypes.nfv.InterfaceDetails
1607         description: Provide additional data to access the interface endpoint
1608         required: false
1609     targets: [ tosca.nodes.nfv.VnfExtCp, tosca.nodes.nfv.VduCp ]