6462c3d66c30ee11c5ffdc7ee3e11f388bc3cea0
[sdc.git] / catalog-be / src / main / resources / import / tosca / models / init / etsi-SOL001-v2.5.1 / imports / etsi_nfv_sol001_nsd_types.yaml
1 tosca_definitions_version: tosca_simple_yaml_1_2
2 description: ETSI NFV SOL 001 nsd types definitions version 2.5.1
3
4 imports:
5   - etsi_nfv_sol001_vnfd_types.yaml
6
7 data_types:
8   tosca.datatypes.nfv.ServiceAvailability:
9     derived_from: tosca.datatypes.Root
10     description: service availability
11     properties:
12       level:
13         type: string
14         description: service availability levels
15         required: true
16         constraints:
17           - valid_values: [ level1, level2, level3 ]
18
19   tosca.datatypes.nfv.L2AddressData:
20     derived_from: tosca.datatypes.Root
21     description: Describes the information on the MAC addresses to be assigned to a connection point.
22     properties:
23       mac_address_assignment:
24         type: boolean
25         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
26         required: true
27
28   tosca.datatypes.nfv.L3AddressData:
29     derived_from: tosca.datatypes.Root
30     description: Provides information about Layer 3 level addressing scheme and parameters applicable to a CP
31     properties:
32       ip_address_assignment:
33         type: boolean
34         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
35         required: true
36       floating_ip_activated:
37         type: boolean
38         description: Specifies if the floating IP scheme is activated on the Connection Point or not
39         required: true
40       ip_address_type:
41         type: string
42         description: Defines address type. The address type should be aligned with the address type supported by the layer_protocols properties of the parent VnfExtCp
43         required: false
44         constraints:
45           - valid_values: [ ipv4, ipv6 ]
46       number_of_ip_address:
47         type: integer
48         description: Minimum number of IP addresses to be assigned
49         required: false
50         constraints:
51           - greater_than: 0
52
53   tosca.datatypes.nfv.AddressData:
54     derived_from: tosca.datatypes.Root
55     description: Describes information about the addressing scheme and parameters applicable to a CP
56     properties:
57       address_type:
58         type: string
59         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
60         required: true
61         constraints:
62           - valid_values: [ mac_address, ip_address ]
63       l2_address_data:
64         type: tosca.datatypes.nfv.L2AddressData
65         description: Provides the information on the MAC addresses to be assigned to a connection point.
66         required: false
67       l3_address_data:
68         type: tosca.datatypes.nfv.L3AddressData
69         description: Provides the information on the IP addresses to be assigned to a connection point
70         required: false
71
72   tosca.datatypes.nfv.ConnectivityType:
73     derived_from: tosca.datatypes.Root
74     description: describes additional connectivity information of a virtualLink
75     properties:
76       layer_protocols:
77         type: list
78         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.
79         required: true
80         entry_schema:
81           type: string
82           constraints:
83             - valid_values: [ ethernet, mpls, odu2, ipv4, ipv6, pseudo-wire ]
84       flow_pattern:
85         type: string
86         description: Identifies the flow pattern of the connectivity
87         required: false
88         constraints:
89           - valid_values: [ line, tree, mesh ]
90
91   tosca.datatypes.nfv.NsVlProfile:
92     derived_from: tosca.datatypes.Root
93     description: Describes additional instantiation data for a given NsVirtualLink used in a specific NS deployment flavour.
94     properties:
95       max_bitrate_requirements:
96         type: tosca.datatypes.nfv.LinkBitrateRequirements
97         description: Specifies the maximum bitrate requirements for a VL instantiated according to this profile.
98         required: true
99       min_bitrate_requirements:
100         type: tosca.datatypes.nfv.LinkBitrateRequirements
101         description: Specifies the minimum bitrate requirements for a VL instantiated according to this profile.
102         required: true
103       qos:
104         type: tosca.datatypes.nfv.NsVirtualLinkQos
105         description: Specifies the QoS requirements of a VL instantiated according to this profile.
106         required: false
107       service_availability:
108         type: tosca.datatypes.nfv.ServiceAvailability
109         description: Network service virtual link service availability levels, as described in ETSI GS NFV-REL 001
110         required: false
111
112   tosca.datatypes.nfv.VirtualLinkProtocolData:
113     derived_from: tosca.datatypes.Root
114     description: describes one protocol layer and associated protocol data for a given virtual link used in a specific VNF deployment flavour
115     properties:
116       associated_layer_protocol:
117         type: string
118         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.
119         required: true
120         constraints:
121           - valid_values: [ ethernet, mpls, odu2, ipv4, ipv6, pseudo-wire ]
122       l2_protocol_data:
123         type: tosca.datatypes.nfv.L2ProtocolData
124         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.
125         required: false
126       l3_protocol_data:
127         type: tosca.datatypes.nfv.L3ProtocolData
128         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.
129         required: false
130
131   tosca.datatypes.nfv.L2ProtocolData:
132     derived_from: tosca.datatypes.Root
133     description: describes L2 protocol data for a given virtual link used in a specific VNF deployment flavour.
134     properties:
135       name:
136         type: string
137         description: Identifies the network name associated with this L2 protocol.
138         required: false
139       network_type:
140         type: string
141         description: Specifies the network type for this L2 protocol.The value may be overridden at run-time.
142         required: false
143         constraints:
144           - valid_values: [ flat, vlan, vxlan, gre ]
145       vlan_transparent:
146         type: boolean
147         description: Specifies whether to support VLAN transparency for this L2 protocol or not.
148         required: false
149         default: false
150       mtu:
151         type: integer
152         description: Specifies the maximum transmission unit (MTU) value for this L2 protocol.
153         required: false
154         constraints:
155           - greater_than: 0
156
157   tosca.datatypes.nfv.L3ProtocolData:
158     derived_from: tosca.datatypes.Root
159     description: describes L3 protocol data for a given virtual link used in a specific VNF deployment flavour.
160     properties:
161       name:
162         type: string
163         description: Identifies the network name associated with this L3 protocol.
164         required: false
165       ip_version:
166         type: string
167         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.
168         required: true
169         constraints:
170           - valid_values: [ ipv4, ipv6 ]
171       cidr:
172         type: string
173         description: Specifies the CIDR (Classless Inter-Domain Routing) of this L3 protocol. The value may be overridden at run-time.
174         required: true
175       ip_allocation_pools:
176         type: list
177         description: Specifies the allocation pools with start and end IP addresses for this L3 protocol. The value may be overridden at run-time.
178         required: false
179         entry_schema:
180           type: tosca.datatypes.nfv.IpAllocationPool
181       gateway_ip:
182         type: string
183         description: Specifies the gateway IP address for this L3 protocol. The value may be overridden at run-time.
184         required: false
185       dhcp_enabled:
186         type: boolean
187         description: Indicates whether DHCP (Dynamic Host Configuration Protocol) is enabled or disabled for this L3 protocol. The value may be overridden at run-time.
188         required: false
189       ipv6_address_mode:
190         type: string
191         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.
192         required: false
193         constraints:
194           - valid_values: [ slaac, dhcpv6-stateful, dhcpv6-stateless ]
195
196   tosca.datatypes.nfv.IpAllocationPool:
197     derived_from: tosca.datatypes.Root
198     description: Specifies a range of IP addresses
199     properties:
200       start_ip_address:
201         type: string
202         description: The IP address to be used as the first one in a pool of addresses derived from the cidr block full IP range
203         required: true
204       end_ip_address:
205         type: string
206         description: The IP address to be used as the last one in a pool of addresses derived from the cidr block full IP range
207         required: true
208
209   tosca.datatypes.nfv.LinkBitrateRequirements:
210     derived_from: tosca.datatypes.Root
211     description: describes the requirements in terms of bitrate for a virtual link
212     properties:
213       root:
214         type: integer # in bits per second
215         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).
216         required: true
217         constraints:
218           - greater_or_equal: 0
219       leaf:
220         type: integer # in bits per second
221         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).
222         required: false
223         constraints:
224           - greater_or_equal: 0
225
226   tosca.datatypes.nfv.NsVirtualLinkQos:
227     derived_from: tosca.datatypes.nfv.Qos
228     description: describes QoS data for a given VL used in a VNF deployment flavour
229     properties:
230       priority:
231         type: integer
232         description: Specifies the priority level in case of congestion on the underlying physical links
233         required: false
234
235   tosca.datatypes.nfv.CpProtocolData:
236     derived_from: tosca.datatypes.Root
237     description: Describes and associates the protocol layer that a CP uses together with other protocol and connection point information
238     properties:
239       associated_layer_protocol:
240         type: string
241         required: true
242         description: One of the values of the property layer_protocols of the CP
243         constraints:
244           - valid_values: [ ethernet, mpls, odu2, ipv4, ipv6, pseudo-wire ]
245       address_data:
246         type: list
247         description: Provides information on the addresses to be assigned to the CP
248         entry_schema:
249           type: tosca.datatypes.nfv.AddressData
250
251   tosca.datatypes.nfv.VnfProfile:
252     derived_from: tosca.datatypes.Root
253     description: describes a profile for instantiating VNFs of a particular NS DF according to a specific VNFD and VNF DF.
254     properties:
255       instantiation_level:
256         type: string
257         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.
258         required: false
259       min_number_of_instances:
260         type: integer
261         description: Minimum number of instances of the VNF based on this VNFD that is permitted to exist for this VnfProfile.
262         required: true
263         constraints:
264           - greater_or_equal: 0
265       max_number_of_instances:
266         type: integer
267         description: Maximum number of instances of the VNF based on this VNFD that is permitted to exist for this VnfProfile.
268         required: true
269         constraints:
270           - greater_or_equal: 0
271
272   tosca.datatypes.nfv.Qos:
273     derived_from: tosca.datatypes.Root
274     description: describes QoS data for a given VL used in a VNF deployment flavour
275     properties:
276       latency:
277         type: scalar-unit.time #Number
278         description: Specifies the maximum latency
279         required: true
280         constraints:
281           - greater_than: 0 s
282       packet_delay_variation:
283         type: scalar-unit.time #Number
284         description: Specifies the maximum jitter
285         required: true
286         constraints:
287           - greater_or_equal: 0 s
288       packet_loss_ratio:
289         type: float
290         description: Specifies the maximum packet loss ratio
291         required: false
292         constraints:
293           - in_range: [ 0.0, 1.0 ]
294
295 capability_types:
296   tosca.capabilities.nfv.VirtualLinkable:
297     derived_from: tosca.capabilities.Node
298     description: A node type that includes the VirtualLinkable capability indicates that it can be pointed by tosca.relationships.nfv.VirtualLinksTo relationship type
299
300 relationship_types:
301   tosca.relationships.nfv.VirtualLinksTo:
302     derived_from: tosca.relationships.DependsOn
303     description: Represents an association relationship between the VNF or PNF or Sap of a Nested NS and NsVirtualLink node types
304     valid_target_types: [ tosca.capabilities.nfv.VirtualLinkable ]
305
306 interface_types:
307   tosca.interfaces.nfv.Nslcm:
308     derived_from: tosca.interfaces.Root
309     description: This interface encompasses a set of TOSCA operations corresponding to NS LCM operations defined in ETSI GS NFV-IFA 013. as well as to preamble and postamble procedures to the execution of the NS LCM operations.
310     instantiate_start:
311       description: Preamble to execution of the instantiate operation
312     instantiate:
313       description: Base procedure for instantiating an NS, corresponding to the Instantiate NS operation defined in GS NFV-IFA 013.
314     instantiate_end:
315       description: Postamble to the execution of the instantiate operation
316     terminate_start:
317       description: Preamble to execution of the terminate operation
318     terminate:
319       description: Base procedure for terminating an NS, corresponding to the Terminate NS operation defined in GS NFV-IFA 013.
320     terminate _end:
321       description: Postamble to the execution of the terminate operation
322     update_start:
323       description: Preamble to execution of the update operation
324     update:
325       description: Base procedure for updating an NS, corresponding to the Update NS operation defined in GS NFV-IFA 013.
326     update_end:
327       description: Postamble to the execution of the update operation
328     scale_start:
329       description: Preamble to execution of the scale operation
330     scale:
331       description: Base procedure for scaling an NS, corresponding to the Scale NS operation defined in GS NFV-IFA 013.
332     scale _end:
333       description: Postamble to the execution of the scale operation
334     heal_start:
335       description: Preamble to execution of the heal operation
336     heal:
337       description: Base procedure for healing an NS, corresponding to the Heal NS operation defined in GS NFV-IFA 013.
338     heal _end:
339       description: Postamble to the execution of the heal operation
340 group_types:
341   tosca.groups.nfv.PlacementGroup:
342     derived_from: tosca.groups.Root
343     description: PlacementGroup is used for describing the affinity or anti-affinity relationship applicable between VNF instances created using different VNFDs, the Virtual Link instances created using different VLDs or the nested NS instances created using different NSDs
344     properties:
345       description:
346         type: string
347         description: Human readable description of the group
348         required: true
349     members: [ tosca.nodes.nfv.VNF, tosca.nodes.nfv.NsVirtualLink, tosca.nodes.nfv.NS ]
350
351 node_types:
352   tosca.nodes.nfv.Cp:
353     derived_from: tosca.nodes.Root
354     description: Provides information regarding the purpose of the connection point
355     properties:
356       layer_protocols:
357         type: list
358         description: Identifies which protocol the connection point uses for connectivity purposes
359         required: true
360         entry_schema:
361           type: string
362           constraints:
363             - valid_values: [ ethernet, mpls, odu2, ipv4, ipv6, pseudo-wire ]
364       role: #Name in ETSI NFV IFA011 v0.7.3: cpRole
365         type: string
366         description: Identifies the role of the port in the context of the traffic flow patterns in the VNF or parent NS
367         required: false
368         constraints:
369           - valid_values: [ root, leaf ]
370       description:
371         type: string
372         description: Provides human-readable information on the purpose of the connection point
373         required: false
374       protocol:
375         type: list
376         description: Provides information on the addresses to be assigned to the connection point(s) instantiated from this Connection Point Descriptor
377         required: true
378         entry_schema:
379           type: tosca.datatypes.nfv.CpProtocolData
380       trunk_mode:
381         type: boolean
382         description: Provides information about whether the CP instantiated from this Cp is in Trunk mode (802.1Q or other)
383         required: true
384
385   tosca.nodes.nfv.NS:
386     derived_from: tosca.nodes.Root
387     properties:
388       descriptor_id:
389         type: string # GUID
390         description: Identifier of this NS descriptor
391         required: true
392       designer:
393         type: string
394         description: Identifies the designer of the NSD.
395         required: true
396       version:
397         type: string
398         description: Identifies the version of the NSD.
399         required: true
400       name:
401         type: string
402         description: Provides the human readable name of the NSD.
403         required: true
404       invariant_id:
405         type: string
406         description: Identifies an NSD in a version independent manner. This attribute is invariant across versions of NSD.
407         required: true
408     requirements:
409       - virtual_link:
410           capability: tosca.capabilities.nfv.VirtualLinkable
411           relationship: tosca.relationships.nfv.VirtualLinksTo
412           node: tosca.nodes.nfv.NsVirtualLink
413           occurrences: [ 0, 1 ]
414     interfaces:
415       Nslcm:
416         type: tosca.interfaces.nfv.Nslcm
417
418
419   tosca.nodes.nfv.Sap:
420     derived_from: tosca.nodes.nfv.Cp
421     description: node definition of SAP.
422     requirements:
423       - external_virtual_link:
424           capability: tosca.capabilities.nfv.VirtualLinkable
425           relationship: tosca.relationships.nfv.VirtualLinksTo
426       - internal_virtual_link:
427           capability: tosca.capabilities.nfv.VirtualLinkable
428           relationship: tosca.relationships.nfv.VirtualLinksTo
429
430   tosca.nodes.nfv.NsVirtualLink:
431     derived_from: tosca.nodes.Root
432     description: node definition of Virtual Links
433     properties:
434       vl_profile:
435         type: tosca.datatypes.nfv.NsVlProfile # only covers min/max bitrate requirements
436         description: Specifies instantiation parameters for a virtual link of a particular NS deployment flavour.
437         required: true
438       connectivity_type:
439         type: tosca.datatypes.nfv.ConnectivityType
440         required: true
441       test_access:
442         type: list
443         description: Test access facilities available on the VL
444         required: false
445         entry_schema:
446           type: string
447           constraints:
448             - valid_values: [ passive_monitoring, active_loopback ]
449       description:
450         type: string
451         required: false
452         description: Human readable information on the purpose of the virtual link (e.g. VL for control plane traffic).
453     capabilities:
454       virtual_linkable:
455         type: tosca.capabilities.nfv.VirtualLinkable
456
457 policy_types:
458   tosca.policies.nfv.AffinityRule:
459     derived_from: tosca.policies.Placement
460     description: The AffinityRule describes the affinity rules applicable for the defined targets
461     properties:
462       scope:
463         type: string
464         description: scope of the rule is an NFVI_node, an NFVI_PoP, etc.
465         required: true
466         constraints:
467           - valid_values: [ nfvi_node, zone, zone_group, nfvi_pop ]
468     targets: [ tosca.nodes.nfv.VNF, tosca.nodes.nfv.NsVirtualLink, tosca.nodes.nfv.NS, tosca.groups.nfv.PlacementGroup ]
469
470   tosca.policies.nfv.AntiAffinityRule:
471     derived_from: tosca.policies.Placement
472     description: The AntiAffinityRule describes the anti-affinity rules applicable for the defined targets
473     properties:
474       scope:
475         type: string
476         description: scope of the rule is an NFVI_node, an NFVI_PoP, etc.
477         required: true
478         constraints:
479           - valid_values: [ nfvi_node, zone, zone_group, nfvi_pop ]
480     targets: [ tosca.nodes.nfv.VNF, tosca.nodes.nfv.NsVirtualLink, tosca.nodes.nfv.NS, tosca.groups.nfv.PlacementGroup ]
481
482   tosca.policies.nfv.SecurityGroupRule:
483     derived_from: tosca.policies.Root
484     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].
485     properties:
486       description:
487         type: string
488         description: Human readable description of the security group rule.
489         required: false
490       direction:
491         type: string
492         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.
493         required: false
494         constraints:
495           - valid_values: [ ingress, egress ]
496         default: ingress
497       ether_type:
498         type: string
499         description: Indicates the protocol carried over the Ethernet layer.
500         required: false
501         constraints:
502           - valid_values: [ ipv4, ipv6 ]
503         default: ipv4
504       protocol:
505         type: string
506         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.
507         required: false
508         constraints:
509           - 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 ]
510         default: tcp
511       port_range_min:
512         type: integer
513         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.
514         required: false
515         constraints:
516           - greater_or_equal: 0
517           - less_or_equal: 65535
518         default: 0
519       port_range_max:
520         type: integer
521         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.
522         required: false
523         constraints:
524           - greater_or_equal: 0
525           - less_or_equal: 65535
526         default: 65535
527     targets: [ tosca.nodes.nfv.Sap ]