Plugin to Generate Service ETSI NSD CSAR
[sdc.git] / catalog-be-plugins / etsi-nfv-nsd-csar-plugin / src / main / resources / etsi-nfv-types / etsi_nfv_sol001_nsd_2_7_1_types.yaml
1 tosca_definitions_version: tosca_simple_yaml_1_2
2 description: ETSI NFV SOL 001 nsd types definitions version 2.7.1
3 metadata:
4   template_name: etsi_nfv_sol001_nsd_types
5   template_author: ETSI_NFV
6   template_version: 2.7.1
7
8 imports:
9   - file: etsi_nfv_sol001_common_types.yaml
10
11 data_types:
12   tosca.datatypes.nfv.ServiceAvailability:
13     derived_from: tosca.datatypes.Root
14     description: service availability 
15     properties:
16       level:
17         type: string
18         description: service availability levels
19         required: true
20         constraints:
21           - valid_values: [ level1, level2, level3 ]
22
23   tosca.datatypes.nfv.NsVlProfile:
24     derived_from: tosca.datatypes.Root
25     description: Describes additional instantiation data for a given NsVirtualLink used in a specific NS deployment flavour.
26     properties:
27       max_bitrate_requirements:
28         type: tosca.datatypes.nfv.LinkBitrateRequirements
29         description: Specifies the maximum bitrate requirements for a VL instantiated according to this profile.
30         required: true
31       min_bitrate_requirements:
32         type: tosca.datatypes.nfv.LinkBitrateRequirements
33         description: Specifies the minimum bitrate requirements for a VL instantiated according to this profile.
34         required: true
35       qos:
36         type: tosca.datatypes.nfv.NsVirtualLinkQos
37         description: Specifies the QoS requirements of a VL instantiated according to this profile.
38         required: false
39       service_availability:
40         type: tosca.datatypes.nfv.ServiceAvailability
41         description: Network service virtual link service availability levels, as described in ETSI GS NFV-REL 001
42         required: false 
43
44   tosca.datatypes.nfv.NsVirtualLinkQos:
45     derived_from: tosca.datatypes.nfv.Qos
46     description: describes QoS data for a given VL used in a VNF deployment flavour 
47     properties:
48       priority:
49         type: integer
50         constraints:
51           - greater_or_equal: 0
52         description: Specifies the priority level in case of congestion on the underlying physical links
53         required: false
54
55   tosca.datatypes.nfv.NsProfile:
56     derived_from: tosca.datatypes.Root
57     description: describes a profile for instantiating NSs of a particular NS DF according to a specific NSD and NS DF.
58     properties: 
59       ns_instantiation_level:
60         type: string
61         description: Identifier of the instantiation level of the NS DF to be used for instantiation. If not present, the default instantiation level as declared in the NSD shall be used.
62         required: false
63       min_number_of_instances:
64         type: integer
65         description: Minimum number of instances of the NS based on this NSD that is permitted to exist for this NsProfile.
66         required: true
67         constraints:
68           - greater_or_equal: 0
69       max_number_of_instances:
70         type: integer
71         description: Maximum number of instances of the NS based on this NSD that is permitted to exist for this NsProfile.
72         required: true
73         constraints:
74           - greater_or_equal: 0
75       flavour_id:
76         type: string
77         description: Identifies the applicable network service DF within the scope of the NSD.
78         required: true
79
80   tosca.datatypes.nfv.Mask:
81     derived_from: tosca.datatypes.Root
82     properties:  
83       starting_point: 
84         description: Indicates the offset between the last bit of the source mac address and the first bit of the sequence of bits to be matched.
85         type: integer
86         required: true    
87       length: 
88         description: Indicates the number of bits to be matched.
89         type: integer
90         required: true
91       value:
92         description: Provide the sequence of bit values to be matched.
93         type: string
94         required: true 
95
96   tosca.datatypes.nfv.NsOperationAdditionalParameters:
97     derived_from: tosca.datatypes.Root
98     description: Is an empty base type for deriving data types for describing NS-specific additional parameters to be passed when invoking NS lifecycle management operations 
99     #properties:
100  
101   tosca.datatypes.nfv.NsMonitoringParameter:
102     derived_from: tosca.datatypes.Root
103     description: Represents information on virtualised resource related performance metrics applicable to the NS.
104     properties:
105       name:
106         type: string
107         description: Human readable name of the monitoring parameter
108         required: true
109       performance_metric:
110         type: string
111         description: Identifies a performance metric to be monitored, according to ETSI GS NFV-IFA 027. 
112         required: true
113         constraints:
114            - valid_values: [byte_incoming_sap, byte_outgoing_sap, packet_incoming_sap, packet_outgoing_sap, byte_incoming, byte_outgoing, packet_incoming, packet_outgoing ] 
115       collection_period:  
116         type: scalar-unit.time
117         description: Describes the periodicity at which to collect the performance information.
118         required: false
119
120 interface_types:
121   tosca.interfaces.nfv.Nslcm:
122     derived_from: tosca.interfaces.Root
123     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.
124     instantiate_start:
125       description: Preamble to execution of the instantiate operation
126     instantiate:
127       description: Base procedure for instantiating an NS, corresponding to the Instantiate NS operation defined in ETSI GS NFV-IFA 013.
128       # inputs:
129         # additional_parameters:
130         #   type: tosca.datatypes.nfv.NsOperationAdditionalParameters
131         #   required: false 
132     instantiate_end:
133       description: Postamble to the execution of the instantiate operation
134     terminate_start:
135       description: Preamble to execution of the terminate operation
136     terminate:
137       description: Base procedure for terminating an NS, corresponding to the Terminate NS operation defined in ETSI GS NFV-IFA 013. 
138     terminate_end:
139       description: Postamble to the execution of the terminate operation
140     update_start:
141       description: Preamble to execution of the update operation
142     update:
143       description: Base procedure for updating an NS, corresponding to the Update NS operation defined in ETSI GS NFV-IFA 013. 
144     update_end:
145       description: Postamble to the execution of the update operation
146     scale_start:
147       description: Preamble to execution of the scale operation
148     scale:
149       description: Base procedure for scaling an NS, corresponding to the Scale NS operation defined in ETSI GS NFV-IFA 013.
150       # inputs:
151         # additional_parameters:
152         #   type: tosca.datatypes.nfv.NsOperationAdditionalParameters
153         #   required: false 
154     scale_end:
155       description: Postamble to the execution of the scale operation
156     heal_start:
157       description: Preamble to execution of the heal operation
158     heal:
159       description: Base procedure for healing an NS, corresponding to the Heal NS operation defined in ETSI GS NFV-IFA 013.
160       # inputs:
161         # additional_parameters:
162         #   type: tosca.datatypes.nfv.NsOperationAdditionalParameters
163         #   required: false 
164     heal_end:
165       description: Postamble to the execution of the heal operation
166
167 node_types:
168   tosca.nodes.nfv.NS:
169     derived_from: tosca.nodes.Root
170     properties: 
171       descriptor_id: 
172         type: string # UUID
173         description: Identifier of this NS descriptor
174         required: true
175       designer:
176         type: string
177         description: Identifies the designer of the NSD.
178         required: true
179       version:
180         type: string
181         description: Identifies the version of the NSD.
182         required: true
183       name:
184         type: string
185         description: Provides the human readable name of the NSD.
186         required: true
187       invariant_id: # UUID
188         type: string
189         description: Identifies an NSD in a version independent manner. This attribute is invariant across versions of NSD
190         required: true
191       flavour_id:
192         type: string
193         description: Identifier of the NS Deployment Flavour within the NSD
194         required: true
195       ns_profile:
196         type: tosca.datatypes.nfv.NsProfile
197         description: Specifies a profile of a NS, when this NS is used as nested NS within another NS.
198         required: false
199     requirements:
200       - virtual_link:
201           capability: tosca.capabilities.nfv.VirtualLinkable
202           relationship: tosca.relationships.nfv.VirtualLinksTo
203           node: tosca.nodes.nfv.NsVirtualLink
204           occurrences: [ 0, 1 ]
205     interfaces:
206       Nslcm:
207         type: tosca.interfaces.nfv.Nslcm
208
209   tosca.nodes.nfv.Sap:
210     derived_from: tosca.nodes.nfv.Cp
211     description: node definition of SAP.
212     requirements:
213       - external_virtual_link:
214           capability: tosca.capabilities.nfv.VirtualLinkable
215           relationship: tosca.relationships.nfv.VirtualLinksTo
216           occurrences: [0, 1]
217       - internal_virtual_link:
218           capability: tosca.capabilities.nfv.VirtualLinkable
219           relationship: tosca.relationships.nfv.VirtualLinksTo
220           occurrences: [1, 1]
221
222   tosca.nodes.nfv.NsVirtualLink:
223     derived_from: tosca.nodes.Root
224     description: node definition of Virtual Links
225     properties: 
226       vl_profile:
227         type: tosca.datatypes.nfv.NsVlProfile # only covers min/max bitrate requirements
228         description: Specifies instantiation parameters for a virtual link of a particular NS deployment flavour.
229         required: true
230       connectivity_type:
231         type: tosca.datatypes.nfv.ConnectivityType
232         required: true
233       test_access:
234         type: list
235         description: Test access facilities available on the VL 
236         required: false
237         entry_schema:
238           type: string
239           constraints:
240             - valid_values: [ passive_monitoring, active_loopback ]
241       description:
242         type: string
243         required: false
244         description: Human readable information on the purpose of the virtual link (e.g. VL for control plane traffic).
245     capabilities:
246       virtual_linkable:
247         type: tosca.capabilities.nfv.VirtualLinkable
248
249   tosca.nodes.nfv.NfpPositionElement:
250     derived_from: tosca.nodes.Root
251     description: node definition of NfpPositionElement
252     capabilities:
253       forwarding: 
254         type: tosca.capabilities.nfv.Forwarding
255     requirements:
256       - profile_element:
257           capability: tosca.capabilities.nfv.Forwarding
258           relationship: tosca.relationships.nfv.ForwardTo
259           occurrences: [ 1, 2 ] # When the number of occurrences is 1, the ingress and egress traffic is associated to a single VnfExtCp or Sap; When the number of occurrences is 2, the ingress VnfExtCp or Sap is associated to the first value and the egress VnfExtCp or Sap is associated to the second value.
260
261   tosca.nodes.nfv.NfpPosition:
262     derived_from: tosca.nodes.Root
263     description: node definition of NFP position
264     properties:
265       forwarding_behaviour: 
266         type: string
267         description: Identifies a rule to apply to forward traffic to CP or SAP instances corresponding to the referenced NfpPositionElement(s). 
268         constraints:
269           - valid_values: [ all, lb, ff ]
270         required: false
271 #     forwarding_behaviour_input_parameters: 
272 #       description: Provides input parameters to configure the forwarding behaviour.
273 #       type: map
274 #       required: false
275 #       entry_schema:
276 #         type: strin
277
278     capabilities:
279       forwarding: 
280         type: tosca.capabilities.nfv.Forwarding
281     requirements:
282       - element:
283           capability: tosca.capabilities.nfv.Forwarding
284           node: tosca.nodes.nfv.NfpPositionElement
285           relationship: tosca.relationships.nfv.ForwardTo
286           occurrences: [ 1, UNBOUNDED ]
287
288   tosca.nodes.nfv.NFP:
289     derived_from: tosca.nodes.Root
290     description: node definition of NFP
291     requirements:
292       - nfp_position:
293           capability: tosca.capabilities.nfv.Forwarding
294           node: tosca.nodes.nfv.NfpPosition
295           relationship: tosca.relationships.nfv.ForwardTo
296           occurrences: [ 1, UNBOUNDED ]
297
298   tosca.nodes.nfv.Forwarding:
299     derived_from: tosca.nodes.Root
300     capabilities:
301       virtual_linkable:
302         type: tosca.capabilities.nfv.VirtualLinkable
303       forwarding:
304         type: tosca.capabilities.nfv.Forwarding
305         occurrences: [ 1, 2 ]  #When the number of occurrences is 1, the ingress and egress traffic is associated to a single VnfExtCp, PnfExtCp or Sap; When the number of occurrences is 2, the ingress VnfExtCp, PnfExtCp or Sap is associated to the first value and the egress VnfExtCp, PnfExtCp or Sap is associated to the second value.
306     requirements:
307       - virtual_link:
308           capability: tosca.capabilities.nfv.VirtualLinkable
309           relationship: tosca.relationships.nfv.VirtualLinksTo
310
311 group_types:
312   tosca.groups.nfv.NsPlacementGroup:
313     derived_from: tosca.groups.Root
314     description: NsPlacementGroup 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 when used in a NSD.
315     properties:
316       description:
317         type: string
318         description: Human readable description of the group
319         required: true
320     members: [tosca.nodes.nfv.VNF, tosca.nodes.nfv.NsVirtualLink, tosca.nodes.nfv.NS]
321
322   tosca.groups.nfv.VNFFG:
323     derived_from: tosca.groups.Root
324     description: the VNFFG group type describes a topology of the NS or a portion of the NS, and optionally forwarding rules, applicable to the traffic conveyed over this topology
325     properties:
326       description:
327         type: string
328         description: Human readable description of the group
329         required: true
330     members: [ tosca.nodes.nfv.NFP, tosca.nodes.nfv.VNF, tosca.nodes.nfv.PNF, tosca.nodes.nfv.NS, tosca.nodes.nfv.NsVirtualLink, tosca.nodes.nfv.NfpPositionElement ]
331
332
333 policy_types:
334   tosca.policies.nfv.NsAffinityRule:
335     derived_from: tosca.policies.Placement
336     description: The NsAffinityRule describes the affinity rules applicable for the defined targets
337     properties:
338       scope:
339         type: string
340         description: Specifies the scope of the local affinity rule.
341         required: true
342         constraints:
343           - valid_values: [ nfvi_node, zone, zone_group, nfvi_pop ]
344     targets: [tosca.nodes.nfv.VNF, tosca.nodes.nfv.NsVirtualLink, tosca.nodes.nfv.NS, tosca.groups.nfv.NsPlacementGroup ]
345
346   tosca.policies.nfv.NsAntiAffinityRule:
347     derived_from: tosca.policies.Placement
348     description: The NsAntiAffinityRule describes the anti-affinity rules applicable for the defined targets
349     properties:
350       scope:
351         type: string
352         description: Specifies the scope of the local affinity rule..
353         required: true
354         constraints:
355           - valid_values: [ nfvi_node, zone, zone_group, nfvi_pop ]
356     targets: [tosca.nodes.nfv.VNF, tosca.nodes.nfv.NsVirtualLink, tosca.nodes.nfv.NS, tosca.groups.nfv.NsPlacementGroup ]
357
358   tosca.policies.nfv.NsSecurityGroupRule:
359     derived_from: tosca.policies.nfv.Abstract.SecurityGroupRule
360     description: The NsSecurityGroupRule type is a policy type specified the matching criteria for the ingress and/or egress traffic to/from visited SAPs.
361     targets: [ tosca.nodes.nfv.Sap ]
362
363   tosca.policies.nfv.NfpRule:
364     derived_from: tosca.policies.Root
365     description: policy definition of NfpRule
366     properties:
367       ether_destination_address:
368         description: Indicates a destination Mac address.
369         type: string
370         required: false    
371       ether_source_address:
372         description: Indicates a source Mac address.
373         type: string
374         required: false
375       ether_type:
376         description: Indicates the protocol carried over the Ethernet layer.
377         type: string
378         constraints:
379           - valid_values: [ ipv4, ipv6 ]
380         required: false
381       vlan_tag:
382         description: Indicates a VLAN identifier in an IEEE 802.1Q-2014 tag [14]. Multiple tags can be included for QinQ stacking.
383         type: list
384         entry_schema:
385           type: string
386         required: false            
387       protocol:
388         description: 'Indicates the L4 protocol, For IPv4 [15] this corresponds to the field called "Protocol" to identify the next level protocol. For IPv6 [16] this corresponds to the field is called the "Next Header" field. Permitted values: Any keyword defined in the IANA [17] protocol registry.'
389         type: string
390         required: false
391       dscp:
392         description: For IPv4 [15] a string of "0" and "1" digits that corresponds to the 6-bit Differentiated Services Code Point (DSCP) field of the IP header. For IPv6 [16] a string of "0" and "1" digits that corresponds to the 6 differentiated services bits of the traffic class header field.
393         type: string
394         required: false
395       source_port_range:
396         description: Indicates a range of source ports.
397         type: range
398         required: false
399         constraints:
400           - in_range: [0, 65535]
401       destination_port_range:
402         description: Indicates a range of destination ports.
403         type: range
404         required: false
405         constraints:
406           - in_range: [0, 65535]
407       source_ip_address_prefix:
408         description: Indicates the source IP address range in CIDR format.
409         type: string
410         required: false   
411       destination_ip_address_prefix:
412         description: Indicates the destination IP address range in CIDR format.
413         type: string
414         required: false
415       extended_criteria:
416         description: Indicates values of specific bits in a frame.
417         type: list
418         entry_schema:
419           type: tosca.datatypes.nfv.Mask
420         required: false
421     targets: [ tosca.nodes.nfv.NFP ]
422
423   tosca.policies.nfv.NsMonitoring:
424     derived_from: tosca.policies.Root
425     description: Policy type is used to identify information to be monitored during the lifetime of a network service instance as defined in ETSI GS NFV-IFA 014 [2].
426     properties:
427       ns_monitoring_parameters:
428         type: list
429         description: Specifies a virtualised resource related performance metric to be monitored on the NS level.
430         required: true
431         entry_schema:
432           type: tosca.datatypes.nfv.NsMonitoringParameter
433         constraints:
434           - min_length: 1
435     targets: [ tosca.nodes.nfv.NS ]
436
437   tosca.policies.nfv.VnfMonitoring:
438     derived_from: tosca.policies.Root
439     description: Policy type is used to identify information to be monitored during the lifetime of a VNF instance as defined in ETSI GS NFV-IFA 014 [2].
440     properties:
441       vnf_monitoring_parameters:
442         type: list
443         description: Specifies a virtualised resource related performance metric to be monitored on the NS level.
444         required: true
445         entry_schema:
446           type: tosca.datatypes.nfv.VnfMonitoringParameter
447         constraints:
448           - min_length: 1
449     targets: [ tosca.nodes.nfv.VNF ]
450