16de248a43fa0039a2cce4cc07a4e243faa9d29e
[sdc.git] /
1 tosca.datatypes.Root:
2   description: The TOSCA root Data Type all other TOSCA base Data Types derive from
3
4 integer:
5   derived_from: tosca.datatypes.Root
6
7 string:
8   derived_from: tosca.datatypes.Root
9
10 timestamp:
11   derived_from: tosca.datatypes.Root
12
13 boolean:
14   derived_from: tosca.datatypes.Root
15
16 float:
17   derived_from: tosca.datatypes.Root
18
19 list:
20   derived_from: tosca.datatypes.Root
21
22 map:
23   derived_from: tosca.datatypes.Root
24
25 json:
26   derived_from: tosca.datatypes.Root
27
28 scalar-unit:
29   derived_from: tosca.datatypes.Root
30
31 scalar-unit.size:
32   derived_from: scalar-unit
33
34 scalar-unit.time:
35   derived_from: scalar-unit
36
37 scalar-unit.frequency:
38   derived_from: scalar-unit
39
40 tosca.datatypes.nfv.L2AddressData:
41   derived_from: tosca.datatypes.Root
42   description: Describes the information on the MAC addresses to be assigned to a connection point.
43   properties:
44     mac_address_assignment:
45       type: boolean
46       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
47       required: true
48
49 tosca.datatypes.nfv.L3AddressData:
50   derived_from: tosca.datatypes.Root
51   description: Provides information about Layer 3 level addressing scheme and parameters applicable to a CP
52   properties:
53     ip_address_assignment:
54       type: boolean
55       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
56       required: true
57     floating_ip_activated:
58       type: boolean
59       description: Specifies if the floating IP scheme is activated on the Connection Point or not
60       required: true
61     ip_address_type:
62       type: string
63       description: Defines address type. The address type should be aligned with the address type supported by the layer_protocols properties of the parent VnfExtCp
64       required: false
65       constraints:
66         - valid_values: [ ipv4, ipv6 ]
67     number_of_ip_address:
68       type: integer
69       description: Minimum number of IP addresses to be assigned
70       required: false
71       constraints:
72         - greater_than: 0
73
74 tosca.datatypes.nfv.AddressData:
75   derived_from: tosca.datatypes.Root
76   description: Describes information about the addressing scheme and parameters applicable to a CP
77   properties:
78     address_type:
79       type: string
80       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
81       required: true
82       constraints:
83         - valid_values: [ mac_address, ip_address ]
84     l2_address_data:
85       type: tosca.datatypes.nfv.L2AddressData
86       description: Provides the information on the MAC addresses to be assigned to a connection point.
87       required: false
88     l3_address_data:
89       type: tosca.datatypes.nfv.L3AddressData
90       description: Provides the information on the IP addresses to be assigned to a connection point
91       required: false
92
93 tosca.datatypes.nfv.LogicalNodeData:
94   derived_from: tosca.datatypes.Root
95   description: Describes compute, memory and I/O requirements associated with a particular VDU.
96   properties:
97     logical_node_requirements:
98       type: map
99       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.
100       required: false
101       entry_schema:
102         type: string
103
104 tosca.datatypes.nfv.VirtualNetworkInterfaceRequirements:
105   derived_from: tosca.datatypes.Root
106   description: Describes requirements on a virtual network interface
107   properties:
108     name:
109       type: string
110       description: Provides a human readable name for the requirement.
111       required: false
112     description:
113       type: string
114       description: Provides a human readable description of the requirement.
115       required: false
116     support_mandatory:
117       type: boolean
118       description: Indicates whether fulfilling the constraint is mandatory (TRUE) for successful operation or desirable (FALSE).
119       required: true
120     network_interface_requirements:
121       type: map
122       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.
123       required: true
124       entry_schema:
125         type: string
126     nic_io_requirements:
127       type: tosca.datatypes.nfv.LogicalNodeData
128       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.
129       required: false
130
131 tosca.datatypes.nfv.ConnectivityType:
132   derived_from: tosca.datatypes.Root
133   description: describes additional connectivity information of a virtualLink
134   properties:
135     layer_protocols:
136       type: list
137       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.
138       required: true
139       entry_schema:
140         type: string
141         constraints:
142           - valid_values: [ ethernet, mpls, odu2, ipv4, ipv6, pseudo-wire ]
143     flow_pattern:
144       type: string
145       description: Identifies the flow pattern of the connectivity
146       required: false
147       constraints:
148         - valid_values: [ line, tree, mesh ]
149
150 tosca.datatypes.nfv.RequestedAdditionalCapability:
151   derived_from: tosca.datatypes.Root
152   description: describes requested additional capability for a particular VDU
153   properties:
154     requested_additional_capability_name:
155       type: string
156       description: Identifies a requested additional capability for the VDU.
157       required: true
158     support_mandatory:
159       type: boolean
160       description: Indicates whether the requested additional capability is mandatory for successful operation.
161       required: true
162     min_requested_additional_capability_version:
163       type: string
164       description: Identifies the minimum version of the requested additional capability.
165       required: false
166     preferred_requested_additional_capability_version:
167       type: string
168       description: Identifies the preferred version of the requested additional capability.
169       required: false
170     target_performance_parameters:
171       type: map
172       description: Identifies specific attributes, dependent on the requested additional capability type.
173       required: true
174       entry_schema:
175         type: string
176
177 tosca.datatypes.nfv.VirtualMemory:
178   derived_from: tosca.datatypes.Root
179   description: supports the specification of requirements related to virtual memory of a virtual compute resource
180   properties:
181     virtual_mem_size:
182       type: scalar-unit.size
183       description: Amount of virtual memory.
184       required: true
185     virtual_mem_oversubscription_policy:
186       type: string
187       description: The memory core oversubscription policy in terms of virtual memory to physical memory on the platform.
188       required: false
189     vdu_mem_requirements:
190       type: map
191       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.
192       required: false
193       entry_schema:
194         type: string
195     numa_enabled:
196       type: boolean
197       description: It specifies the memory allocation to be cognisant of the relevant process/core allocation.
198       required: false
199       default: false
200
201 tosca.datatypes.nfv.VirtualCpuPinning:
202   derived_from: tosca.datatypes.Root
203   description: Supports the specification of requirements related to the virtual CPU pinning configuration of a virtual compute resource
204   properties:
205     virtual_cpu_pinning_policy:
206       type: string
207       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.'
208       required: false
209       constraints:
210         - valid_values: [ static, dynamic ]
211     virtual_cpu_pinning_rule:
212       type: list
213       description: Provides the list of rules for allocating virtual CPU cores to logical CPU cores/threads
214       required: false
215       entry_schema:
216         type: string
217
218 tosca.datatypes.nfv.VirtualCpu:
219   derived_from: tosca.datatypes.Root
220   description: Supports the specification of requirements related to virtual CPU(s) of a virtual compute resource
221   properties:
222     cpu_architecture:
223       type: string
224       description: CPU architecture type. Examples are x86, ARM
225       required: false
226     num_virtual_cpu:
227       type: integer
228       description: Number of virtual CPUs
229       required: true
230       constraints:
231         - greater_than: 0
232     virtual_cpu_clock:
233       type: scalar-unit.frequency
234       description: Minimum virtual CPU clock rate
235       required: false
236     virtual_cpu_oversubscription_policy:
237       type: string
238       description: CPU core oversubscription policy e.g. the relation of virtual CPU cores to physical CPU cores/threads.
239       required: false
240     vdu_cpu_requirements:
241       type: map
242       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.
243       required: false
244       entry_schema:
245         type: string
246     virtual_cpu_pinning:
247       type: tosca.datatypes.nfv.VirtualCpuPinning
248       description: The virtual CPU pinning configuration for the virtualised compute resource.
249       required: false
250
251 tosca.datatypes.nfv.VnfcConfigurableProperties:
252   derived_from: tosca.datatypes.Root
253   description: Defines the configurable properties of a VNFC
254     # properties:
255     # additional_vnfc_configurable_properties:
256     #   type: tosca.datatypes.nfv.VnfcAdditionalConfigurableProperties  
257     #   description: Describes additional configuration for VNFC that
258     #   can be modified using the ModifyVnfInfo operation 
259     #   required: false
260     # derived types are expected to introduce
261     # additional_vnfc_configurable_properties with its type derived from
262   # tosca.datatypes.nfv.VnfcAdditionalConfigurableProperties
263
264 tosca.datatypes.nfv.VnfcAdditionalConfigurableProperties:
265   derived_from: tosca.datatypes.Root
266   description: VnfcAdditionalConfigurableProperties type is an empty base type for deriving data types for describing additional configurable properties for a given VNFC.
267
268 tosca.datatypes.nfv.VduProfile:
269   derived_from: tosca.datatypes.Root
270   description: describes additional instantiation data for a given Vdu.Compute used in a specific deployment flavour.
271   properties:
272     min_number_of_instances:
273       type: integer
274       description: Minimum number of instances of the VNFC based on this Vdu.Compute that is permitted to exist for a particular VNF deployment flavour.
275       required: true
276       constraints:
277         - greater_or_equal: 0
278     max_number_of_instances:
279       type: integer
280       description: Maximum number of instances of the VNFC based on this Vdu.Compute that is permitted to exist for a particular VNF deployment flavour.
281       required: true
282       constraints:
283         - greater_or_equal: 0
284
285
286 tosca.datatypes.nfv.L2ProtocolData:
287   derived_from: tosca.datatypes.Root
288   description: describes L2 protocol data for a given virtual link used in a specific VNF deployment flavour.
289   properties:
290     name:
291       type: string
292       description: Identifies the network name associated with this L2 protocol.
293       required: false
294     network_type:
295       type: string
296       description: Specifies the network type for this L2 protocol.The value may be overridden at run-time.
297       required: false
298       constraints:
299         - valid_values: [ flat, vlan, vxlan, gre ]
300     vlan_transparent:
301       type: boolean
302       description: Specifies whether to support VLAN transparency for this L2 protocol or not.
303       required: false
304       default: false
305     mtu:
306       type: integer
307       description: Specifies the maximum transmission unit (MTU) value for this L2 protocol.
308       required: false
309       constraints:
310         - greater_than: 0
311
312 tosca.datatypes.nfv.L3ProtocolData:
313   derived_from: tosca.datatypes.Root
314   description: describes L3 protocol data for a given virtual link used in a specific VNF deployment flavour.
315   properties:
316     name:
317       type: string
318       description: Identifies the network name associated with this L3 protocol.
319       required: false
320     ip_version:
321       type: string
322       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.
323       required: true
324       constraints:
325         - valid_values: [ ipv4, ipv6 ]
326     cidr:
327       type: string
328       description: Specifies the CIDR (Classless Inter-Domain Routing) of this L3 protocol. The value may be overridden at run-time.
329       required: true
330     ip_allocation_pools:
331       type: list
332       description: Specifies the allocation pools with start and end IP addresses for this L3 protocol. The value may be overridden at run-time.
333       required: false
334       entry_schema:
335         type: tosca.datatypes.nfv.IpAllocationPool
336     gateway_ip:
337       type: string
338       description: Specifies the gateway IP address for this L3 protocol. The value may be overridden at run-time.
339       required: false
340     dhcp_enabled:
341       type: boolean
342       description: Indicates whether DHCP (Dynamic Host Configuration Protocol) is enabled or disabled for this L3 protocol. The value may be overridden at run-time.
343       required: false
344     ipv6_address_mode:
345       type: string
346       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.
347       required: false
348       constraints:
349         - valid_values: [ slaac, dhcpv6-stateful, dhcpv6-stateless ]
350
351 tosca.datatypes.nfv.VirtualLinkProtocolData:
352   derived_from: tosca.datatypes.Root
353   description: describes one protocol layer and associated protocol data for a given virtual link used in a specific VNF deployment flavour
354   properties:
355     associated_layer_protocol:
356       type: string
357       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.
358       required: true
359       constraints:
360         - valid_values: [ ethernet, mpls, odu2, ipv4, ipv6, pseudo-wire ]
361     l2_protocol_data:
362       type: tosca.datatypes.nfv.L2ProtocolData
363       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.
364       required: false
365     l3_protocol_data:
366       type: tosca.datatypes.nfv.L3ProtocolData
367       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.
368       required: false
369
370 tosca.datatypes.nfv.IpAllocationPool:
371   derived_from: tosca.datatypes.Root
372   description: Specifies a range of IP addresses
373   properties:
374     start_ip_address:
375       type: string
376       description: The IP address to be used as the first one in a pool of addresses derived from the cidr block full IP range
377       required: true
378     end_ip_address:
379       type: string
380       description: The IP address to be used as the last one in a pool of addresses derived from the cidr block full IP range
381       required: true
382
383 tosca.datatypes.nfv.InstantiationLevel:
384   derived_from: tosca.datatypes.Root
385   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
386   properties:
387     description:
388       type: string
389       description: Human readable description of the level
390       required: true
391     scale_info:
392       type: map # key: aspectId
393       description: Represents for each aspect the scale level that corresponds to this instantiation level. scale_info shall be present if the VNF supports scaling.
394       required: false
395       entry_schema:
396         type: tosca.datatypes.nfv.ScaleInfo
397
398 tosca.datatypes.nfv.VduLevel:
399   derived_from: tosca.datatypes.Root
400   description: Indicates for a given Vdu.Compute in a given level the number of instances to deploy
401   properties:
402     number_of_instances:
403       type: integer
404       description: Number of instances of VNFC based on this VDU to deploy for this level.
405       required: true
406       constraints:
407         - greater_or_equal: 0
408
409 tosca.datatypes.nfv.VnfInstantiateOperationConfiguration:
410   derived_from: tosca.datatypes.Root
411   description: represents information that affect the invocation of the InstantiateVnf operation.
412
413 tosca.datatypes.nfv.VnfScaleOperationConfiguration:
414   derived_from: tosca.datatypes.Root
415   description: Represents information that affect the invocation of the ScaleVnf operation
416   properties:
417     scaling_by_more_than_one_step_supported:
418       type: boolean
419       description: Signals whether passing a value larger than one in the numScalingSteps parameter of the ScaleVnf operation is supported by this VNF.
420       required: false
421       default: false
422
423 tosca.datatypes.nfv.VnfScaleToLevelOperationConfiguration:
424   derived_from: tosca.datatypes.Root
425   description: represents information that affect the invocation of the ScaleVnfToLevel operation
426   properties:
427     arbitrary_target_levels_supported:
428       type: boolean
429       description: Signals whether scaling according to the parameter "scaleInfo" is supported by this VNF
430       required: true
431
432 tosca.datatypes.nfv.VnfHealOperationConfiguration:
433   derived_from: tosca.datatypes.Root
434   description: represents information that affect the invocation of the HealVnf operation
435   properties:
436     causes:
437       type: list
438       description: Supported "cause" parameter values
439       required: false
440       entry_schema:
441         type: string
442
443 tosca.datatypes.nfv.VnfTerminateOperationConfiguration:
444   derived_from: tosca.datatypes.Root
445   description: represents information that affect the invocation of the TerminateVnf
446   properties:
447     min_graceful_termination_timeout:
448       type: scalar-unit.time
449       description: Minimum timeout value for graceful termination of a VNF instance
450       required: true
451     max_recommended_graceful_termination_timeout:
452       type: scalar-unit.time
453       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
454       required: false
455
456 tosca.datatypes.nfv.VnfOperateOperationConfiguration:
457   derived_from: tosca.datatypes.Root
458   description: represents information that affect the invocation of the OperateVnf operation
459   properties:
460     min_graceful_stop_timeout:
461       type: scalar-unit.time
462       description: Minimum timeout value for graceful stop of a VNF instance
463       required: true
464     max_recommended_graceful_stop_timeout:
465       type: scalar-unit.time
466       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
467       required: false
468
469 tosca.datatypes.nfv.ScaleInfo:
470   derived_from: tosca.datatypes.Root
471   description: Indicates for a given scaleAspect the corresponding scaleLevel
472   properties:
473     scale_level:
474       type: integer
475       description: The scale level for a particular aspect
476       required: true
477       constraints:
478         - greater_or_equal: 0
479
480 tosca.datatypes.nfv.ScalingAspect:
481   derived_from: tosca.datatypes.Root
482   properties:
483     name:
484       type: string
485       required: true
486     description:
487       type: string
488       required: true
489     max_scale_level:
490       type: integer # positiveInteger
491       required: true
492       constraints:
493         - greater_or_equal: 0
494     step_deltas:
495       type: list
496       required: false
497       entry_schema:
498         type: string # Identifier
499
500 tosca.datatypes.nfv.LinkBitrateRequirements:
501   derived_from: tosca.datatypes.Root
502   description: describes the requirements in terms of bitrate for a virtual link
503   properties:
504     root:
505       type: integer # in bits per second
506       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).
507       required: true
508       constraints:
509         - greater_or_equal: 0
510     leaf:
511       type: integer # in bits per second
512       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).
513       required: false
514       constraints:
515         - greater_or_equal: 0
516
517 tosca.datatypes.nfv.Qos:
518   derived_from: tosca.datatypes.Root
519   description: describes QoS data for a given VL used in a VNF deployment flavour
520   properties:
521     latency:
522       type: scalar-unit.time #Number
523       description: Specifies the maximum latency
524       required: true
525       constraints:
526         - greater_than: 0 s
527     packet_delay_variation:
528       type: scalar-unit.time #Number
529       description: Specifies the maximum jitter
530       required: true
531       constraints:
532         - greater_or_equal: 0 s
533     packet_loss_ratio:
534       type: float
535       description: Specifies the maximum packet loss ratio
536       required: false
537       constraints:
538         - in_range: [ 0.0, 1.0 ]
539
540 tosca.datatypes.nfv.VnfConfigurableProperties:
541   derived_from: tosca.datatypes.Root
542   description: indicates configuration properties for a given VNF (e.g. related to auto scaling and auto healing).
543   properties:
544     is_autoscale_enabled:
545       type: boolean
546       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
547       required: false
548     is_autoheal_enabled:
549       type: boolean
550       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
551       required: false
552       # additional_configurable_properties:
553       # description: It provides VNF specific configurable properties that
554       # can be modified using the ModifyVnfInfo operation 
555       # required: false
556       # type: tosca.datatypes.nfv.VnfAdditionalConfigurableProperties
557     # derived types are expected to introduce
558     # additional_configurable_properties with its type derived from
559     # tosca.datatypes.nfv.VnfAdditionalConfigurableProperties
560
561 tosca.datatypes.nfv.VnfAdditionalConfigurableProperties:
562   derived_from: tosca.datatypes.Root
563   description: is an empty base type for deriving data types for describing additional configurable properties for a given VNF
564
565 tosca.datatypes.nfv.VnfInfoModifiableAttributes:
566   derived_from: tosca.datatypes.Root
567   description: Describes VNF-specific extension and metadata for a given VNF
568     #properties:
569     #extensions:
570     #type: tosca.datatypes.nfv.VnfInfoModifiableAttributesExtensions
571     #description: "Extension" properties of VnfInfo that are writeable
572     #required: false
573     # derived types are expected to introduce
574     # extensions with its type derived from
575     # tosca.datatypes.nfv.VnfInfoModifiableAttributesExtensions
576     #metadata:
577     #type: tosca.datatypes.nfv.VnfInfoModifiableAttributesMetadata
578     #description: "Metadata" properties of VnfInfo that are writeable
579     #required: false
580     # derived types are expected to introduce
581     # metadata with its type derived from
582   # tosca.datatypes.nfv.VnfInfoModifiableAttributesMetadata
583
584 tosca.datatypes.nfv.VnfInfoModifiableAttributesExtensions:
585   derived_from: tosca.datatypes.Root
586   description: is an empty base type for deriving data types for describing VNF-specific extension
587
588 tosca.datatypes.nfv.VnfInfoModifiableAttributesMetadata:
589   derived_from: tosca.datatypes.Root
590   description: is an empty base type for deriving data types for describing VNF-specific metadata
591
592 tosca.datatypes.nfv.CpProtocolData:
593   derived_from: tosca.datatypes.Root
594   description: Describes and associates the protocol layer that a CP uses together with other protocol and connection point information
595   properties:
596     associated_layer_protocol:
597       type: string
598       required: true
599       description: One of the values of the property layer_protocols of the CP
600       constraints:
601         - valid_values: [ ethernet, mpls, odu2, ipv4, ipv6, pseudo-wire ]
602     address_data:
603       type: list
604       description: Provides information on the addresses to be assigned to the CP
605       entry_schema:
606         type: tosca.datatypes.nfv.AddressData
607       required: false
608
609 tosca.datatypes.nfv.SwImageData:
610   derived_from: tosca.datatypes.Root
611   description: describes information  related to a software image artifact
612   properties: # in SOL001 v0.8.0: "properties or metadata:"
613     name:
614       type: string
615       description: Name of this software image
616       required: true
617     version:
618       type: string
619       description: Version of this software image
620       required: true
621     checksum:
622       type: string
623       description: Checksum of the software image file
624       required: true
625     container_format:
626       type: string
627       description: The container format describes the container file format in which software image is provided
628       required: true
629       constraints:
630         - valid_values: [ aki, ami, ari, bare, docker, ova, ovf ]
631     disk_format:
632       type: string
633       description: The disk format of a software image is the format of the underlying disk image
634       required: true
635       constraints:
636         - valid_values: [ aki, ami, ari, iso, qcow2, raw, vdi, vhd, vhdx, vmdk ]
637     min_disk:
638       type: scalar-unit.size # Number
639       description: The minimal disk size requirement for this software image
640       required: true
641     min_ram:
642       type: scalar-unit.size # Number
643       description: The minimal RAM requirement for this software image
644       required: false
645     size:
646       type: scalar-unit.size # Number
647       description: The size of this software image
648       required: true
649     operating_system:
650       type: string
651       description: Identifies the operating system used in the software image
652       required: false
653     supported_virtualisation_environments:
654       type: list
655       description: Identifies the virtualisation environments (e.g. hypervisor) compatible with this software image
656       required: false
657       entry_schema:
658         type: string
659
660 tosca.datatypes.nfv.VirtualBlockStorageData:
661   derived_from: tosca.datatypes.Root
662   description: VirtualBlockStorageData describes block storage requirements associated with compute resources in a particular VDU, either as a local disk or as virtual attached storage
663   properties:
664     size_of_storage:
665       type: scalar-unit.size
666       description: Size of virtualised storage resource
667       required: true
668     vdu_storage_requirements:
669       type: map
670       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.
671       required: false
672       entry_schema:
673         type: string
674     rdma_enabled:
675       type: boolean
676       description: Indicates if the storage support RDMA
677       required: false
678       default: false
679
680 tosca.datatypes.nfv.VirtualObjectStorageData:
681   derived_from: tosca.datatypes.Root
682   description: VirtualObjectStorageData describes object storage requirements associated with compute resources in a particular VDU
683   properties:
684     max_size_of_storage:
685       type: scalar-unit.size
686       description: Maximum size of virtualized storage resource
687       required: false
688
689 tosca.datatypes.nfv.VirtualFileStorageData:
690   derived_from: tosca.datatypes.Root
691   description: VirtualFileStorageData describes file storage requirements associated with compute resources in a particular VDU
692   properties:
693     size_of_storage:
694       type: scalar-unit.size
695       description: Size of virtualized storage resource
696       required: true
697     file_system_protocol:
698       type: string
699       description: The shared file system protocol (e.g. NFS, CIFS)
700       required: true
701
702 tosca.datatypes.nfv.VirtualLinkBitrateLevel:
703   derived_from: tosca.datatypes.Root
704   description: Describes bitrate requirements applicable to the virtual link instantiated from a particicular VnfVirtualLink
705   properties:
706     bitrate_requirements:
707       type: tosca.datatypes.nfv.LinkBitrateRequirements
708       description: Virtual link bitrate requirements for an instantiation level or bitrate delta for a scaling step
709       required: true
710
711 tosca.datatypes.nfv.VnfOperationAdditionalParameters:
712   derived_from: tosca.datatypes.Root
713   description: Is an empty base type for deriving data type for describing VNF-specific parameters to be passed when invoking lifecycle management operations
714   #properties:
715
716 tosca.datatypes.nfv.VnfChangeFlavourOperationConfiguration:
717   derived_from: tosca.datatypes.Root
718   description: represents information that affect the invocation of the ChangeVnfFlavour operation
719   #properties:
720
721 tosca.datatypes.nfv.VnfChangeExtConnectivityOperationConfiguration:
722   derived_from: tosca.datatypes.Root
723   description: represents information that affect the invocation of the ChangeExtVnfConnectivity operation
724   #properties:   
725
726 tosca.datatypes.nfv.VnfMonitoringParameter:
727   derived_from: tosca.datatypes.Root
728   description: Represents information on virtualised resource related performance metrics applicable to the VNF.
729   properties:
730     name:
731       type: string
732       description: Human readable name of the monitoring parameter
733       required: true
734     performance_metric:
735       type: string
736       description: Identifies the performance metric, according to ETSI GS NFV-IFA 027.
737       required: true
738       constraints:
739         - 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,
740                           packet_incoming_vnf_ext_cp, packet_outgoing_vnf_ext_cp ]
741     collection_period:
742       type: scalar-unit.time
743       description: Describes the recommended periodicity at which to collect the performance information.
744       required: false
745       constraints:
746         - greater_than: 0 s
747
748 tosca.datatypes.nfv.VnfcMonitoringParameter:
749   derived_from: tosca.datatypes.Root
750   description: Represents information on virtualised resource related performance metrics applicable to the VNF.
751   properties:
752     name:
753       type: string
754       description: Human readable name of the monitoring parameter
755       required: true
756     performance_metric:
757       type: string
758       description: Identifies the performance metric, according to ETSI GS NFV-IFA 027.
759       required: true
760       constraints:
761         - 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 ]
762     collection_period:
763       type: scalar-unit.time
764       description: Describes the recommended periodicity at which to collect the performance information.
765       required: false
766       constraints:
767         - greater_than: 0 s
768
769 tosca.datatypes.nfv.VirtualLinkMonitoringParameter:
770   derived_from: tosca.datatypes.Root
771   description: Represents information on virtualised resource related performance metrics applicable to the VNF.
772   properties:
773     name:
774       type: string
775       description: Human readable name of the monitoring parameter
776       required: true
777     performance_metric:
778       type: string
779       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.
780       required: true
781       constraints:
782         - valid_values: [ packet_outgoing_virtual_link, packet_incoming_virtual_link ]
783     collection_period:
784       type: scalar-unit.time
785       description: Describes the recommended periodicity at which to collect the performance information.
786       required: false
787       constraints:
788         - greater_than: 0 s
789
790 tosca.datatypes.nfv.UriAuthority:
791   derived_from: tosca.datatypes.Root
792   description: information that corresponds to the authority component of a URI as specified in IETF RFC 3986 [8]
793   properties:
794     user_info:
795       type: string # shall comply with IETF RFC 3986
796       description: user_info field of the authority component of a URI
797       required: false
798     host:
799       type: string # shall comply with IETF RFC 3986
800       description: host field of the authority component of a URI
801       required: false
802     port:
803       type: string # shall comply with IETF RFC 3986
804       description: port field of the authority component of a URI
805       required: false
806
807 tosca.datatypes.nfv.UriComponents:
808   derived_from: tosca.datatypes.Root
809   description: information used to build a URI that complies with IETF RFC 3986 [8].
810   properties:
811     scheme:
812       type: string # shall comply with IETF RFC3986
813       description: scheme component of a URI.
814       required: true
815     authority:
816       type: tosca.datatypes.nfv.UriAuthority
817       description: Authority component of a URI
818       required: false
819     path:
820       type: string # shall comply with IETF RFC 3986
821       description: path component of a URI.
822       required: false
823     query:
824       type: string # shall comply with IETF RFC 3986
825       description: query component of a URI.
826       required: false
827     fragment:
828       type: string # shall comply with IETF RFC 3986
829       description: fragment component of a URI.
830       required: false
831
832 tosca.datatypes.nfv.InterfaceDetails:
833   derived_from: tosca.datatypes.Root
834   description: information used to access an interface exposed by a VNF
835   properties:
836     uri_components:
837       type: tosca.datatypes.nfv.UriComponents
838       description: Provides components to build a Uniform Ressource Identifier (URI) where to access the interface end point.
839       required: false
840     interface_specific_data:
841       type: map
842       description: Provides additional details that are specific to the type of interface considered.
843       required: false
844       entry_schema:
845         type: string
846
847 tosca.datatypes.nfv.VnfProfile:
848   derived_from: tosca.datatypes.Root
849   description: describes a profile for instantiating VNFs of a particular NS DF according to a specific VNFD and VNF DF.
850   properties:
851     instantiation_level:
852       type: string
853       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.
854       required: false
855     min_number_of_instances:
856       type: integer
857       description: Minimum number of instances of the VNF based on this VNFD that is permitted to exist for this VnfProfile.
858       required: true
859       constraints:
860         - greater_or_equal: 0
861     max_number_of_instances:
862       type: integer
863       description: Maximum number of instances of the VNF based on this VNFD that is permitted to exist for this VnfProfile.
864       required: true
865       constraints:
866         - greater_or_equal: 0
867
868 tosca.datatypes.nfv.ServiceAvailability:
869   derived_from: tosca.datatypes.Root
870   description: service availability
871   properties:
872     level:
873       type: string
874       description: service availability levels
875       required: true
876       constraints:
877         - valid_values: [ level1, level2, level3 ]
878
879 tosca.datatypes.nfv.NsVirtualLinkQos:
880   derived_from: tosca.datatypes.nfv.Qos
881   description: describes QoS data for a given VL used in a VNF deployment flavour
882   properties:
883     priority:
884       type: integer
885       description: Specifies the priority level in case of congestion on the underlying physical links
886       required: false
887       
888 tosca.datatypes.nfv.VlProfile:
889   derived_from: tosca.datatypes.Root
890   description: Describes additional instantiation data for a given VL used in a specific VNF deployment flavour.
891   properties:
892     max_bitrate_requirements:
893       type: tosca.datatypes.nfv.LinkBitrateRequirements
894       description: Specifies the maximum bitrate requirements for a VL instantiated according to this profile.
895       required: true
896     min_bitrate_requirements:
897       type: tosca.datatypes.nfv.LinkBitrateRequirements
898       description: Specifies the minimum bitrate requirements for a VL instantiated according to this profile.
899       required: true
900     qos:
901       type: tosca.datatypes.nfv.Qos
902       description: Specifies the QoS requirements of a VL instantiated according to this profile.
903       required: false
904     virtual_link_protocol_data:
905       type: list
906       description: Specifies the protocol data for a virtual link.
907       required: false
908       entry_schema:
909         type: tosca.datatypes.nfv.VirtualLinkProtocolData
910
911 tosca.datatypes.nfv.NsVlProfile:
912   derived_from: tosca.datatypes.Root
913   description: Describes additional instantiation data for a given NsVirtualLink used in a specific NS deployment flavour.
914   properties:
915     max_bitrate_requirements:
916       type: tosca.datatypes.nfv.LinkBitrateRequirements
917       description: Specifies the maximum bitrate requirements for a VL instantiated according to this profile.
918       required: true
919     min_bitrate_requirements:
920       type: tosca.datatypes.nfv.LinkBitrateRequirements
921       description: Specifies the minimum bitrate requirements for a VL instantiated according to this profile.
922       required: true
923     qos:
924       type: tosca.datatypes.nfv.NsVirtualLinkQos
925       description: Specifies the QoS requirements of a VL instantiated according to this profile.
926       required: false
927     service_availability:
928       type: tosca.datatypes.nfv.ServiceAvailability
929       description: Network service virtual link service availability levels, as described in ETSI GS NFV-REL 001
930       required: false
931
932 tosca.datatypes.nfv.VnfLcmOperationsConfiguration:
933   derived_from: tosca.datatypes.Root
934   description: Represents information to configure lifecycle management operations
935   properties:
936     instantiate:
937       type: tosca.datatypes.nfv.VnfInstantiateOperationConfiguration
938       description: Configuration parameters for the InstantiateVnf operation
939       required: false
940     scale:
941       type: tosca.datatypes.nfv.VnfScaleOperationConfiguration
942       description: Configuration parameters for the ScaleVnf operation
943       required: false
944     scale_to_level:
945       type: tosca.datatypes.nfv.VnfScaleToLevelOperationConfiguration
946       description: Configuration parameters for the ScaleVnfToLevel operation
947       required: false
948     change_flavour:
949       type: tosca.datatypes.nfv.VnfChangeFlavourOperationConfiguration
950       description: Configuration parameters for the changeVnfFlavourOpConfig operation
951       required: false
952     heal:
953       type: tosca.datatypes.nfv.VnfHealOperationConfiguration
954       description: Configuration parameters for the HealVnf operation
955       required: false
956     terminate:
957       type: tosca.datatypes.nfv.VnfTerminateOperationConfiguration
958       description: Configuration parameters for the TerminateVnf operation
959       required: false
960     operate:
961       type: tosca.datatypes.nfv.VnfOperateOperationConfiguration
962       description: Configuration parameters for the OperateVnf operation
963       required: false
964     change_ext_connectivity:
965       type: tosca.datatypes.nfv.VnfChangeExtConnectivityOperationConfiguration
966       description: Configuration parameters for the changeExtVnfConnectivityOpConfig operation
967       required: false