Fix spacing issues in YAML files in tosca/
[demo.git] / tosca / pNF / Definitions / etsi_nfv_sol001_vnfd_2_5_1_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, packet_incoming_vnf_ext_cp, packet_outgoing_vnf_ext_cp ]
764       collection_period:
765         type: scalar-unit.time
766         description: Describes the recommended periodicity at which to collect the performance information.
767         required: false
768         constraints:
769           - greater_than: 0 s
770
771   tosca.datatypes.nfv.VnfcMonitoringParameter:
772     derived_from: tosca.datatypes.Root
773     description: Represents information on virtualised resource related performance metrics applicable to the VNF.
774     properties:
775       name:
776         type: string
777         description: Human readable name of the monitoring parameter
778         required: true
779       performance_metric:
780         type: string
781         description: Identifies the performance metric, according to ETSI GS NFV-IFA 027.
782         required: true
783         constraints:
784           - 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 ]
785       collection_period:
786         type: scalar-unit.time
787         description: Describes the recommended periodicity at which to collect the performance information.
788         required: false
789         constraints:
790           - greater_than: 0 s
791
792   tosca.datatypes.nfv.VirtualLinkMonitoringParameter:
793     derived_from: tosca.datatypes.Root
794     description: Represents information on virtualised resource related performance metrics applicable to the VNF.
795     properties:
796       name:
797         type: string
798         description: Human readable name of the monitoring parameter
799         required: true
800       performance_metric:
801         type: string
802         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.
803         required: true
804         constraints:
805            - valid_values: [ packet_outgoing_virtual_link, packet_incoming_virtual_link ]
806       collection_period:
807         type: scalar-unit.time
808         description: Describes the recommended periodicity at which to collect the performance information.
809         required: false
810         constraints:
811           - greater_than: 0 s
812
813   tosca.datatypes.nfv.InterfaceDetails:
814     derived_from: tosca.datatypes.Root
815     description: information used to access an interface exposed by a VNF
816     properties:
817       uri_components:
818         type: tosca.datatypes.nfv.UriComponents
819         description: Provides components to build a Uniform Ressource Identifier (URI) where to access the interface end point.
820         required: false
821       interface_specific_data:
822         type: map
823         description: Provides additional details that are specific to the type of interface considered.
824         required: false
825         entry_schema:
826           type: string
827
828   tosca.datatypes.nfv.UriComponents:
829     derived_from: tosca.datatypes.Root
830     description: information used to build a URI that complies with IETF RFC 3986 [8].
831     properties:
832       scheme:
833         type: string # shall comply with IETF RFC3986
834         description: scheme component of a URI.
835         required: true
836       authority:
837         type: tosca.datatypes.nfv.UriAuthority
838         description: Authority component of a URI
839         required: false
840       path:
841         type: string # shall comply with IETF RFC 3986
842         description: path component of a URI.
843         required: false
844       query:
845         type: string # shall comply with IETF RFC 3986
846         description: query component of a URI.
847         required: false
848       fragment:
849         type: string # shall comply with IETF RFC 3986
850         description: fragment component of a URI.
851         required: false
852
853   tosca.datatypes.nfv.UriAuthority:
854     derived_from: tosca.datatypes.Root
855     description: information that corresponds to the authority component of a URI as specified in IETF RFC 3986 [8]
856     properties:
857       user_info:
858         type: string # shall comply with IETF RFC 3986
859         description: user_info field of the authority component of a URI
860         required: false
861       host:
862         type: string # shall comply with IETF RFC 3986
863         description: host field of the authority component of a URI
864         required: false
865       port:
866         type: string # shall comply with IETF RFC 3986
867         description: port field of the authority component of a URI
868         required: false
869
870   tosca.datatypes.nfv.VnfProfile:
871     derived_from: tosca.datatypes.Root
872     description: describes a profile for instantiating VNFs of a particular NS DF according to a specific VNFD and VNF DF.
873     properties:
874       instantiation_level:
875         type: string
876         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.
877         required: false
878       min_number_of_instances:
879         type: integer
880         description: Minimum number of instances of the VNF based on this VNFD that is permitted to exist for this VnfProfile.
881         required: true
882         constraints:
883           - greater_or_equal: 0
884       max_number_of_instances:
885         type: integer
886         description: Maximum number of instances of the VNF based on this VNFD that is permitted to exist for this VnfProfile.
887         required: true
888         constraints:
889           - greater_or_equal: 0
890
891 artifact_types:
892   tosca.artifacts.nfv.SwImage:
893     derived_from: tosca.artifacts.Deployment.Image
894     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.
895
896   tosca.artifacts.Implementation.nfv.Mistral:
897     derived_from: tosca.artifacts.Implementation
898     description: artifacts for Mistral workflows
899     mime_type: application/x-yaml
900     file_ext: [ yaml ]
901
902 capability_types:
903   tosca.capabilities.nfv.VirtualBindable:
904     derived_from: tosca.capabilities.Node
905     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
906
907   tosca.capabilities.nfv.VirtualLinkable:
908     derived_from: tosca.capabilities.Root
909     description: A node type that includes the VirtualLinkable capability indicates that it can be pointed by tosca.relationships.nfv.VirtualLinksTo relationship type
910
911   tosca.capabilities.nfv.VirtualCompute:
912     derived_from: tosca.capabilities.Node
913     description: Describes the capabilities related to virtual compute resources
914     properties:
915       logical_node:
916         type: map
917         description: Describes the Logical Node requirements
918         required: false
919         entry_schema:
920            type: tosca.datatypes.nfv.LogicalNodeData
921       requested_additional_capabilities:
922         type: map
923         description: Describes additional capability for a particular VDU
924         required: false
925         entry_schema:
926            type: tosca.datatypes.nfv.RequestedAdditionalCapability
927       compute_requirements:
928         type: map
929         required: false
930         entry_schema:
931            type: string
932       virtual_memory:
933         type: tosca.datatypes.nfv.VirtualMemory
934         description: Describes virtual memory of the virtualized compute
935         required: true
936       virtual_cpu:
937         type: tosca.datatypes.nfv.VirtualCpu
938         description: Describes virtual CPU(s) of the virtualized compute
939         required: true
940       virtual_local_storage:
941         type: list
942         description: A list of virtual system disks created and destroyed as part of the VM lifecycle
943         required: false
944         entry_schema:
945           type: tosca.datatypes.nfv.VirtualBlockStorageData
946           description: virtual system disk definition
947
948   tosca.capabilities.nfv.VirtualStorage:
949     derived_from: tosca.capabilities.Root
950     description: Describes the attachment capabilities related to Vdu.Storage
951
952 relationship_types:
953   tosca.relationships.nfv.VirtualBindsTo:
954     derived_from: tosca.relationships.DependsOn
955     description: Represents an association relationship between Vdu.Compute and VduCp node types
956     valid_target_types: [ tosca.capabilities.nfv.VirtualBindable ]
957
958   tosca.relationships.nfv.VirtualLinksTo:
959     derived_from: tosca.relationships.DependsOn
960     description: Represents an association relationship between the VduCp and VnfVirtualLink node types
961     valid_target_types: [ tosca.capabilities.nfv.VirtualLinkable ]
962
963   tosca.relationships.nfv.AttachesTo:
964     derived_from: tosca.relationships.Root
965     description: Represents an association relationship between the Vdu.Compute and one of the node types, Vdu.VirtualBlockStorage, Vdu.VirtualObjectStorage or Vdu.VirtualFileStorage
966     valid_target_types: [ tosca.capabilities.nfv.VirtualStorage ]
967
968 interface_types:
969   tosca.interfaces.nfv.Vnflcm:
970     derived_from: tosca.interfaces.Root
971     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.
972     instantiate:
973       description: Invoked upon receipt of an Instantiate VNF request
974       # inputs:
975         # additional_parameters:
976           # type: tosca.datatypes.nfv.VnfOperationAdditionalParameters
977           # required: false
978         # derived types are expected to introduce additional_parameters with
979         # its type derived from
980         # tosca.datatypes.nfv.VnfOperationAdditionalParameters
981     instantiate_start:
982       description: Invoked before instantiate
983     instantiate_end:
984       description: Invoked after instantiate
985     terminate:
986       description: Invoked upon receipt Terminate VNF request
987       # inputs:
988         # additional_parameters:
989           # type: tosca.datatypes.nfv.VnfOperationAdditionalParameters
990           # required: false
991         # derived types are expected to introduce additional_parameters with
992         # its type derived from
993         # tosca.datatypes.nfv.VnfOperationAdditionalParameters
994     terminate_start:
995       description: Invoked before terminate
996     terminate_end:
997       description: Invoked after terminate
998     modify_information:
999       description: Invoked upon receipt of a Modify VNF Information request
1000     modify_information_start:
1001       description: Invoked before modify_information
1002     modify_information_end:
1003       description: Invoked after modify_information
1004     change_flavour:
1005       description: Invoked upon receipt of a Change VNF Flavour request
1006       # inputs:
1007         # additional_parameters:
1008           # type: tosca.datatypes.nfv.VnfOperationAdditionalParameters
1009           # required: false
1010         # derived types are expected to introduce additional_parameters with
1011         # its type derived from
1012         # tosca.datatypes.nfv.VnfOperationAdditionalParameters
1013     change_flavour_start:
1014       description: Invoked before change_flavour
1015     change_flavour_end:
1016       description: Invoked after change_flavour
1017     change_external_connectivity:
1018       description: Invoked upon receipt of a Change External VNF Connectivity   request
1019       # inputs:
1020         # additional_parameters:
1021           # type: tosca.datatypes.nfv.VnfOperationAdditionalParameters
1022           # required: false
1023         # derived types are expected to introduce additional_parameters with
1024         # its type derived from
1025         # tosca.datatypes.nfv.VnfOperationAdditionalParameters
1026     change_external_connectivity_start:
1027       description: Invoked before change_external_connectivity
1028     change_external_connectivity_end:
1029       description: Invoked after change_external_connectivity
1030     operate:
1031       description: Invoked upon receipt of an Operate VNF request
1032       # inputs:
1033         # additional_parameters:
1034           # type: tosca.datatypes.nfv.VnfOperationAdditionalParameters
1035           # required: false
1036         # derived types are expected to introduce additional_parameters with
1037         # its type derived from
1038         # tosca.datatypes.nfv.VnfOperationAdditionalParameters
1039     operate_start:
1040       description: Invoked before operate
1041     operate_end:
1042       description: Invoked after operate
1043     heal:
1044       description: Invoked upon receipt of a Heal VNF request
1045       # inputs:
1046         # additional_parameters:
1047           # type: tosca.datatypes.nfv.VnfOperationAdditionalParameters
1048           # required: false
1049         # derived types are expected to introduce additional_parameters with
1050         # its type derived from
1051         # tosca.datatypes.nfv.VnfOperationAdditionalParameters
1052     heal_start:
1053       description: Invoked before heal
1054     heal_end:
1055       description: Invoked after heal
1056     scale:
1057       description: Invoked upon receipt of a Scale VNF request
1058       # inputs:
1059         # additional_parameters:
1060           # type: tosca.datatypes.nfv.VnfOperationAdditionalParameters
1061           # required: false
1062         # derived types are expected to introduce additional_parameters with
1063         # its type derived from
1064         # tosca.datatypes.nfv.VnfOperationAdditionalParameters
1065     scale_start:
1066       description: Invoked before scale
1067     scale_end:
1068       description: Invoked after scale
1069     scale_to_level:
1070       description: Invoked upon receipt of a Scale VNF to Level request
1071       # inputs:
1072         # additional_parameters:
1073           # type: tosca.datatypes.nfv.VnfOperationAdditionalParameters
1074           # required: false
1075         # derived types are expected to introduce additional_parameters with
1076         # its type derived from
1077         # tosca.datatypes.nfv.VnfOperationAdditionalParameters
1078     scale_to_level_start:
1079       description: Invoked before scale_to_level
1080     scale_to_level_end:
1081       description: Invoked after scale_to_level
1082
1083 node_types:
1084   tosca.nodes.nfv.VNF:
1085     derived_from: tosca.nodes.Root
1086     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
1087     properties:
1088       descriptor_id: # instead of vnfd_id
1089         type: string # GUID
1090         description: Globally unique identifier of the VNFD
1091         required: true
1092       descriptor_version: # instead of vnfd_version
1093         type: string
1094         description: Identifies the version of the VNFD
1095         required: true
1096       provider: # instead of vnf_provider
1097         type: string
1098         description: Provider of the VNF and of the VNFD
1099         required: true
1100       product_name: # instead of vnf_product_name
1101         type: string
1102         description: Human readable name for the VNF Product
1103         required: true
1104       software_version: # instead of vnf_software_version
1105         type: string
1106         description: Software version of the VNF
1107         required: true
1108       product_info_name: # instead of vnf_product_info_name
1109         type: string
1110         description: Human readable name for the VNF Product
1111         required: false
1112       product_info_description: # instead of vnf_product_info_description
1113         type: string
1114         description: Human readable description of the VNF Product
1115         required: false
1116       vnfm_info:
1117         type: list
1118         required: true
1119         description: Identifies VNFM(s) compatible with the VNF
1120         entry_schema:
1121           type: string
1122       localization_languages:
1123         type: list
1124         description: Information about localization languages of the VNF
1125         required: false
1126         entry_schema:
1127           type: string #IETF RFC 5646 string
1128       default_localization_language:
1129         type: string #IETF RFC 5646 string
1130         description: Default localization language that is instantiated if no information about selected localization language is available
1131         required: false
1132       #configurable_properties:
1133         #type: tosca.datatypes.nfv.VnfConfigurableProperties
1134         #description: Describes the configurable properties of the VNF
1135         #required: false
1136         # derived types are expected to introduce configurable_properties
1137         # with its type derived from
1138         # tosca.datatypes.nfv.VnfConfigurableProperties
1139       #modifiable_attributes:
1140         #type: tosca.datatypes.nfv.VnfInfoModifiableAttributes
1141         #description: Describes the modifiable attributes of the VNF
1142         #required: false
1143         # derived types are expected to introduce modifiable_attributes
1144         # with its type derived from
1145         # tosca.datatypes.nfv.VnfInfoModifiableAttributes
1146       lcm_operations_configuration:
1147         type: tosca.datatypes.nfv.VnfLcmOperationsConfiguration
1148         description: Describes the configuration parameters for the VNF LCM operations
1149         required: false
1150       monitoring_parameters:
1151         type: list
1152         entry_schema:
1153           type: tosca.datatypes.nfv.VnfMonitoringParameter
1154         description: Describes monitoring parameters applicable to the VNF.
1155         required: false
1156       flavour_id:
1157         type: string
1158         description: Identifier of the Deployment Flavour within the VNFD
1159         required: true
1160       flavour_description:
1161         type: string
1162         description: Human readable description of the DF
1163         required: true
1164       #vnf_profile:
1165       #  type: tosca.datatypes.nfv.VnfProfile
1166       #  description: Describes a profile for instantiating VNFs of a particular NS DF according to a specific VNFD and VNF DF
1167       #  required: false
1168     requirements:
1169       - virtual_link:
1170           capability: tosca.capabilities.nfv.VirtualLinkable
1171           relationship: tosca.relationships.nfv.VirtualLinksTo
1172           occurrences: [ 0, 1 ]
1173   # 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
1174     interfaces:
1175       Vnflcm:
1176         type: tosca.interfaces.nfv.Vnflcm
1177
1178   tosca.nodes.nfv.VnfExtCp:
1179     derived_from: tosca.nodes.nfv.Cp
1180     description: Describes a logical external connection point, exposed by the VNF enabling connection with an external Virtual Link
1181     properties:
1182       virtual_network_interface_requirements:
1183         type: list
1184         description: The actual virtual NIC requirements that is been assigned when instantiating the connection point
1185         required: false
1186         entry_schema:
1187           type: tosca.datatypes.nfv.VirtualNetworkInterfaceRequirements
1188     requirements:
1189       - external_virtual_link:
1190           capability: tosca.capabilities.nfv.VirtualLinkable
1191           relationship: tosca.relationships.nfv.VirtualLinksTo
1192       - internal_virtual_link: #name in ETSI NFV IFA011 v0.7.3: intVirtualLinkDesc
1193           capability: tosca.capabilities.nfv.VirtualLinkable
1194           relationship: tosca.relationships.nfv.VirtualLinksTo
1195
1196   tosca.nodes.nfv.Vdu.Compute:
1197     derived_from: tosca.nodes.Root
1198     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
1199     properties:
1200       name:
1201         type: string
1202         description: Human readable name of the VDU
1203         required: true
1204       description:
1205         type: string
1206         description: Human readable description of the VDU
1207         required: true
1208       boot_order:
1209         type: list # explicit index (boot index) not necessary, contrary to IFA011
1210         description: References a node template name from which a valid boot device is created
1211         required: false
1212         entry_schema:
1213           type: string
1214       nfvi_constraints:
1215         type: list
1216         description: Describes constraints on the NFVI for the VNFC instance(s) created from this VDU
1217         required: false
1218         entry_schema:
1219           type: string
1220       monitoring_parameters:
1221         type: list
1222         description: Describes monitoring parameters applicable to a VNFC instantiated from this VDU
1223         required: false
1224         entry_schema:
1225           type: tosca.datatypes.nfv.VnfcMonitoringParameter
1226       #configurable_properties:
1227          #type: tosca.datatypes.nfv.VnfcConfigurableProperties
1228          #required: false
1229          # derived types are expected to introduce
1230          # configurable_properties with its type derived from
1231          # tosca.datatypes.nfv.VnfcConfigurableProperties
1232       vdu_profile:
1233         type: tosca.datatypes.nfv.VduProfile
1234         description: Defines additional instantiation data for the VDU.Compute node
1235         required: true
1236       sw_image_data:
1237         type: tosca.datatypes.nfv.SwImageData
1238         description: Defines information related to a SwImage artifact used by this Vdu.Compute node
1239         required: false # property is required when the node template has an associated artifact of type tosca.artifacts.nfv.SwImage and not required otherwise
1240       boot_data:
1241         type: string
1242         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.
1243         required: false
1244     capabilities:
1245       virtual_compute:
1246         type: tosca.capabilities.nfv.VirtualCompute
1247         occurrences: [ 1, 1 ]
1248       virtual_binding:
1249         type: tosca.capabilities.nfv.VirtualBindable
1250         occurrences: [ 1, UNBOUNDED ]
1251     requirements:
1252       - virtual_storage:
1253           capability: tosca.capabilities.nfv.VirtualStorage
1254           relationship: tosca.relationships.nfv.AttachesTo
1255           occurrences: [ 0, UNBOUNDED ]
1256
1257   tosca.nodes.nfv.Vdu.VirtualBlockStorage:
1258     derived_from: tosca.nodes.Root
1259     description: This node type describes the specifications of requirements related to virtual block storage resources
1260     properties:
1261       virtual_block_storage_data:
1262         type: tosca.datatypes.nfv.VirtualBlockStorageData
1263         description: Describes the block storage characteristics.
1264         required: true
1265       sw_image_data:
1266         type: tosca.datatypes.nfv.SwImageData
1267         description: Defines information related to a SwImage artifact used by this Vdu.Compute node.
1268         required: false # property is required when the node template has an associated artifact of type tosca.artifacts.nfv.SwImage and not required otherwise
1269     capabilities:
1270       virtual_storage:
1271         type: tosca.capabilities.nfv.VirtualStorage
1272         description: Defines the capabilities of virtual_storage.
1273
1274   tosca.nodes.nfv.Vdu.VirtualObjectStorage:
1275     derived_from: tosca.nodes.Root
1276     description: This node type describes the specifications of requirements related to virtual object storage resources
1277     properties:
1278       virtual_object_storage_data:
1279         type: tosca.datatypes.nfv.VirtualObjectStorageData
1280         description: Describes the object  storage characteristics.
1281         required: true
1282     capabilities:
1283       virtual_storage:
1284         type: tosca.capabilities.nfv.VirtualStorage
1285         description: Defines the capabilities of virtual_storage.
1286
1287   tosca.nodes.nfv.Vdu.VirtualFileStorage:
1288     derived_from: tosca.nodes.Root
1289     description: This node type describes the specifications of requirements related to virtual file storage resources
1290     properties:
1291       virtual_file_storage_data:
1292         type: tosca.datatypes.nfv.VirtualFileStorageData
1293         description: Describes the file  storage characteristics.
1294         required: true
1295     capabilities:
1296       virtual_storage:
1297         type: tosca.capabilities.nfv.VirtualStorage
1298         description: Defines the capabilities of virtual_storage.
1299     requirements:
1300      - virtual_link:
1301          capability: tosca.capabilities.nfv.VirtualLinkable
1302          relationship: tosca.relationships.nfv.VirtualLinksTo
1303          #description: Describes the requirements for linking to virtual link
1304
1305   tosca.nodes.nfv.Cp:
1306     derived_from: tosca.nodes.Root
1307     description: Provides information regarding the purpose of the connection point
1308     properties:
1309       layer_protocols:
1310         type: list
1311         description: Identifies which protocol the connection point uses for connectivity purposes
1312         required: true
1313         entry_schema:
1314           type: string
1315           constraints:
1316             - valid_values: [ ethernet, mpls, odu2, ipv4, ipv6, pseudo-wire ]
1317       role: #Name in ETSI NFV IFA011 v0.7.3: cpRole
1318         type: string
1319         description: Identifies the role of the port in the context of the traffic flow patterns in the VNF or parent NS
1320         required: false
1321         constraints:
1322           - valid_values: [ root, leaf ]
1323       description:
1324         type: string
1325         description: Provides human-readable information on the purpose of the connection point
1326         required: false
1327       protocol:
1328         type: list
1329         description: Provides information on the addresses to be assigned to the connection point(s) instantiated from this Connection Point Descriptor
1330         required: false
1331         entry_schema:
1332           type: tosca.datatypes.nfv.CpProtocolData
1333       trunk_mode:
1334         type: boolean
1335         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".
1336         required: false
1337
1338   tosca.nodes.nfv.VduCp:
1339     derived_from: tosca.nodes.nfv.Cp
1340     description: describes network connectivity between a VNFC instance based on this VDU and an internal VL
1341     properties:
1342       bitrate_requirement:
1343         type: integer   # in bits per second
1344         description: Bitrate requirement in bit per second on this connection point
1345         required: false
1346         constraints:
1347           - greater_or_equal: 0
1348       virtual_network_interface_requirements:
1349         type: list
1350         description: Specifies requirements on a virtual network interface realising the CPs instantiated from this CPD
1351         required: false
1352         entry_schema:
1353           type: tosca.datatypes.nfv.VirtualNetworkInterfaceRequirements
1354       order:
1355         type: integer
1356         description: The order of the NIC on the compute instance (e.g.eth2)
1357         required: false
1358         constraints:
1359           - greater_or_equal: 0
1360       vnic_type:
1361         type: string
1362         description: Describes the type of the virtual network interface realizing the CPs instantiated from this CPD
1363         required: false
1364         constraints:
1365         - valid_values: [ normal, virtio, direct-physical ]
1366     requirements:
1367       - virtual_link:
1368           capability: tosca.capabilities.nfv.VirtualLinkable
1369           relationship: tosca.relationships.nfv.VirtualLinksTo
1370       - virtual_binding:
1371           capability: tosca.capabilities.nfv.VirtualBindable
1372           relationship: tosca.relationships.nfv.VirtualBindsTo
1373           node: tosca.nodes.nfv.Vdu.Compute
1374
1375   tosca.nodes.nfv.VnfVirtualLink:
1376     derived_from: tosca.nodes.Root
1377     description: Describes the information about an internal VNF VL
1378     properties:
1379       connectivity_type:
1380         type: tosca.datatypes.nfv.ConnectivityType
1381         description: Specifies the protocol exposed by the VL and the flow pattern supported by the VL
1382         required: true
1383       description:
1384         type: string
1385         description: Provides human-readable information on the purpose of the VL
1386         required: false
1387       test_access:
1388         type: list
1389         description: Test access facilities available on the VL
1390         required: false
1391         entry_schema:
1392           type: string
1393           constraints:
1394             - valid_values: [ passive_monitoring, active_loopback ]
1395       vl_profile:
1396         type: tosca.datatypes.nfv.VlProfile
1397         description: Defines additional data for the VL
1398         required: true
1399       monitoring_parameters:
1400         type: list
1401         description: Describes monitoring parameters applicable to the VL
1402         required: false
1403         entry_schema:
1404           type: tosca.datatypes.nfv.VirtualLinkMonitoringParameter
1405     capabilities:
1406       virtual_linkable:
1407         type: tosca.capabilities.nfv.VirtualLinkable
1408
1409 group_types:
1410   tosca.groups.nfv.PlacementGroup:
1411     derived_from: tosca.groups.Root
1412     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)
1413     properties:
1414       description:
1415         type: string
1416         description: Human readable description of the group
1417         required: true
1418     members: [ tosca.nodes.nfv.Vdu.Compute, tosca.nodes.nfv.VnfVirtualLink ]
1419
1420 policy_types:
1421   tosca.policies.nfv.InstantiationLevels:
1422     derived_from: tosca.policies.Root
1423     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].
1424     properties:
1425       levels:
1426         type: map # key: levelId
1427         description: Describes the various levels of resources that can be used to instantiate the VNF using this flavour.
1428         required: true
1429         entry_schema:
1430           type: tosca.datatypes.nfv.InstantiationLevel
1431       default_level:
1432         type: string # levelId
1433         description: The default instantiation level for this flavour.
1434         required: false # required if multiple entries in levels
1435
1436   tosca.policies.nfv.VduInstantiationLevels:
1437     derived_from: tosca.policies.Root
1438     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]
1439     properties:
1440       levels:
1441         type: map # key: levelId
1442         description: Describes the Vdu.Compute levels of resources that can be used to instantiate the VNF using this flavour
1443         required: true
1444         entry_schema:
1445           type: tosca.datatypes.nfv.VduLevel
1446     targets: [ tosca.nodes.nfv.Vdu.Compute ]
1447
1448   tosca.policies.nfv.VirtualLinkInstantiationLevels:
1449     derived_from: tosca.policies.Root
1450     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].
1451     properties:
1452       levels:
1453         type: map # key: levelId
1454         description: Describes the virtual link levels of resources that can be used to instantiate the VNF using this flavour.
1455         required: true
1456         entry_schema:
1457           type: tosca.datatypes.nfv.VirtualLinkBitrateLevel
1458     targets: [ tosca.nodes.nfv.VnfVirtualLink ]
1459
1460   tosca.policies.nfv.ScalingAspects:
1461     derived_from: tosca.policies.Root
1462     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].
1463     properties:
1464       aspects:
1465         type: map # key: aspectId
1466         description: Describe maximum scale level for total number of scaling steps that can be applied to a particular aspect
1467         required: true
1468         entry_schema:
1469           type: tosca.datatypes.nfv.ScalingAspect
1470
1471   tosca.policies.nfv.VduScalingAspectDeltas:
1472     derived_from: tosca.policies.Root
1473     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].
1474     properties:
1475       aspect:
1476         type: string
1477         description: Represents the scaling aspect to which this policy applies
1478         required: true
1479       deltas:
1480         type: map # key: scalingDeltaId
1481         description: Describes the Vdu.Compute scaling deltas to be applied for every scaling steps of a particular aspect.
1482         required: true
1483         entry_schema:
1484           type: tosca.datatypes.nfv.VduLevel
1485     targets: [ tosca.nodes.nfv.Vdu.Compute ]
1486
1487   tosca.policies.nfv.VirtualLinkBitrateScalingAspectDeltas:
1488     derived_from: tosca.policies.Root
1489     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].
1490     properties:
1491       aspect:
1492         type: string
1493         description: Represents the scaling aspect to which this policy applies.
1494         required: true
1495       deltas:
1496         type: map # key: scalingDeltaId
1497         description: Describes the VnfVirtualLink scaling deltas to be applied for every scaling steps of a particular aspect.
1498         required: true
1499         entry_schema:
1500           type: tosca.datatypes.nfv.VirtualLinkBitrateLevel
1501     targets: [ tosca.nodes.nfv.VnfVirtualLink ]
1502
1503   tosca.policies.nfv.VduInitialDelta:
1504     derived_from: tosca.policies.Root
1505     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].
1506     properties:
1507       initial_delta:
1508         type: tosca.datatypes.nfv.VduLevel
1509         description: Represents the initial minimum size of the VNF.
1510         required: true
1511     targets: [ tosca.nodes.nfv.Vdu.Compute ]
1512
1513   tosca.policies.nfv.VirtualLinkBitrateInitialDelta:
1514     derived_from: tosca.policies.Root
1515     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].
1516     properties:
1517       initial_delta:
1518         type: tosca.datatypes.nfv.VirtualLinkBitrateLevel
1519         description: Represents the initial minimum size of the VNF.
1520         required: true
1521     targets: [ tosca.nodes.nfv.VnfVirtualLink ]
1522
1523   tosca.policies.nfv.AffinityRule:
1524     derived_from: tosca.policies.Placement
1525     description: The AffinityRule describes the affinity rules applicable for the defined targets
1526     properties:
1527       scope:
1528         type: string
1529         description: scope of the rule is an NFVI_node, an NFVI_PoP, etc.
1530         required: true
1531         constraints:
1532           - valid_values: [ nfvi_node, zone, zone_group, nfvi_pop ]
1533     targets: [ tosca.nodes.nfv.Vdu.Compute, tosca.nodes.nfv.VnfVirtualLink, tosca.groups.nfv.PlacementGroup ]
1534
1535   tosca.policies.nfv.AntiAffinityRule:
1536     derived_from: tosca.policies.Placement
1537     description: The AntiAffinityRule describes the anti-affinity rules applicable for the defined targets
1538     properties:
1539       scope:
1540         type: string
1541         description: scope of the rule is an NFVI_node, an NFVI_PoP, etc.
1542         required: true
1543         constraints:
1544           - valid_values: [ nfvi_node, zone, zone_group, nfvi_pop ]
1545     targets: [ tosca.nodes.nfv.Vdu.Compute, tosca.nodes.nfv.VnfVirtualLink, tosca.groups.nfv.PlacementGroup ]
1546
1547   tosca.policies.nfv.SecurityGroupRule:
1548     derived_from: tosca.policies.Root
1549     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].
1550     properties:
1551       description:
1552         type: string
1553         description: Human readable description of the security group rule.
1554         required: false
1555       direction:
1556         type: string
1557         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.
1558         required: false
1559         constraints:
1560           - valid_values: [ ingress, egress ]
1561         default: ingress
1562       ether_type:
1563         type: string
1564         description: Indicates the protocol carried over the Ethernet layer.
1565         required: false
1566         constraints:
1567           - valid_values: [ ipv4, ipv6 ]
1568         default: ipv4
1569       protocol:
1570         type: string
1571         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.
1572         required: false
1573         constraints:
1574           - 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 ]
1575         default: tcp
1576       port_range_min:
1577         type: integer
1578         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.
1579         required: false
1580         constraints:
1581           - greater_or_equal: 0
1582           - less_or_equal: 65535
1583         default: 0
1584       port_range_max:
1585         type: integer
1586         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.
1587         required: false
1588         constraints:
1589           - greater_or_equal: 0
1590           - less_or_equal: 65535
1591         default: 65535
1592     targets: [ tosca.nodes.nfv.VduCp, tosca.nodes.nfv.VnfExtCp ]
1593
1594   tosca.policies.nfv.SupportedVnfInterface:
1595     derived_from: tosca.policies.Root
1596     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
1597     properties:
1598       interface_name:
1599         type: string
1600         description: Identifies an interface produced by the VNF.
1601         required: true
1602         constraints:
1603           - valid_values: [ vnf_indicator, vnf_configuration ]
1604       details:
1605         type: tosca.datatypes.nfv.InterfaceDetails
1606         description: Provide additional data to access the interface endpoint
1607         required: false
1608     targets: [ tosca.nodes.nfv.VnfExtCp, tosca.nodes.nfv.VduCp ]