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