* YANG to TOSCA VNFFG Support
[osm/SO.git] / common / python / rift / mano / yang_translator / riftiotypes.yaml
1 tosca_definitions_version: tosca_simple_profile_for_nfv_1_0
2 description: Extended types
3
4
5 data_types:
6   tosca.datatypes.nfv.riftio.dashboard_params:
7     properties:
8       path:
9         type: string
10         description: >-
11           The HTTP path for the dashboard
12       port:
13         type: tosca.datatypes.network.PortDef
14         description: >-
15           The HTTP port for the dashboard
16         default: 80
17       https:
18         type: boolean
19         description: >-
20           Pick HTTPS instead of HTTP , Default is false
21         default: false
22         required: false
23   tosca.datatypes.nfv.riftio.monitoring_param_ui:
24     properties:
25       description:
26         type: string
27         required: false
28       group_tag:
29         type: string
30         description: >-
31           A simple tag to group monitoring parameters
32         required: false
33       widget_type:
34         type: string
35         description: >-
36           Type of the widget
37         default: counter
38         constraints:
39           - valid_values:
40               - histogram
41               - bar
42               - gauge
43               - slider
44               - counter
45               - textbox
46       units:
47         type: string
48         required: false
49   tosca.datatypes.nfv.riftio.monitoring_param_value:
50     properties:
51       value_type:
52         type: string
53         default: integer
54         constraints:
55           - valid_values:
56               - integer
57               - float
58               - string
59       numeric_min:
60         type: integer
61         description: >-
62           Minimum value for the parameter
63         required: false
64       numeric_max:
65         type: integer
66         description: >-
67           Maxium value for the parameter
68         required: false
69       string_min:
70         type: integer
71         description: >-
72           Minimum string length for the parameter
73         required: false
74         constraints:
75           - greater_or_equal: 0
76       string_max:
77         type: integer
78         description: >-
79           Maximum string length for the parameter
80         required: false
81         constraints:
82           - greater_or_equal: 0
83   tosca.datatypes.compute.Container.Architecture.CPUAllocation:
84     derived_from: tosca.datatypes.Root
85     properties:
86       cpu_affinity:
87         type: string
88         required: false
89         constraints:
90           - valid_values: [shared, dedicated, any]
91       thread_allocation:
92         type: string
93         required: false
94         constraints:
95           - valid_values: [avoid, separate, isolate, prefer]
96       socket_count:
97         type: integer
98         required: false
99       core_count:
100         type: integer
101         required: false
102       thread_count:
103         type: integer
104         required: false
105
106   tosca.datatypes.compute.Container.Architecture.NUMA:
107     derived_from: tosca.datatypes.Root
108     properties:
109       id:
110         type: integer
111         constraints:
112           - greater_or_equal: 0
113       vcpus:
114         type: list
115         entry_schema:
116           type: integer
117           constraints:
118             -  greater_or_equal: 0
119       mem_size:
120         type: scalar-unit.size
121         constraints:
122           - greater_or_equal: 0 MB
123   tosca.datatypes.nfv.riftio.paired_thread_map:
124     properties:
125       thread_a:
126         type: integer
127         required: true
128         constraints:
129           - greater_or_equal: 0
130       thread_b:
131         type: integer
132         required: true
133         constraints:
134           - greater_or_equal: 0
135
136   tosca.datatypes.nfv.riftio.paired_threads:
137     properties:
138       num_paired_threads:
139         type: integer
140         constraints:
141           - greater_or_equal: 1
142       paired_thread_ids:
143         type: list
144         entry_schema:
145           type: tosca.datatypes.nfv.riftio.paired_thread_map
146         constraints:
147           - max_length: 16
148         required: false
149
150   tosca.datatypes.compute.riftio.numa:
151     properties:
152       id:
153         type: integer
154         constraints:
155           - greater_or_equal: 0
156       vcpus:
157         type: list
158         entry_schema:
159           type: integer
160           constraints:
161             -  greater_or_equal: 0
162         required: false
163       mem_size:
164         type: scalar-unit.size
165         constraints:
166           - greater_or_equal: 0 MB
167         required: false
168       om_numa_type:
169         type: string
170         description: Openmano Numa type selection
171         constraints:
172           - valid_values: [cores, paired-threads, threads]
173         required: false
174       num_cores:
175         type: integer
176         description: Use when om_numa_type is cores
177         constraints:
178           - greater_or_equal: 1
179         required: false
180       paired_threads:
181         type: tosca.datatypes.nfv.riftio.paired_threads
182         description: Use when om_numa_type is paired-threads
183         required: false
184       num_threads:
185         type: integer
186         description: Use when om_numa_type is threads
187         constraints:
188           - greater_or_equal: 1
189         required: false
190   
191   tosca.nfv.datatypes.pathType:
192     properties:
193       forwarder:
194         type: string
195         required: true
196       capability:
197         type: string
198         required: true
199
200   tosca.nfv.datatypes.aclType:
201     properties:
202       eth_type:
203         type: string
204         required: false
205       eth_src:
206         type: string
207         required: false
208       eth_dst:
209         type: string
210         required: false
211       vlan_id:
212         type: integer
213         constraints:
214           - in_range: [ 1, 4094 ]
215         required: false
216       vlan_pcp:
217         type: integer
218         constraints:
219           - in_range: [ 0, 7 ]
220         required: false
221       mpls_label:
222         type: integer
223         constraints:
224           - in_range: [ 16, 1048575]
225         required: false
226       mpls_tc:
227         type: integer
228         constraints:
229           - in_range: [ 0, 7 ]
230         required: false
231       ip_dscp:
232         type: integer
233         constraints:
234           - in_range: [ 0, 63 ]
235         required: false
236       ip_ecn:
237         type: integer
238         constraints:
239           - in_range: [ 0, 3 ]
240         required: false
241       ip_src_prefix:
242         type: string
243         required: false
244       ip_dst_prefix:
245         type: string
246         required: false
247       ip_proto:
248         type: integer
249         constraints:
250           - in_range: [ 1, 254 ]
251         required: false
252       destination_port_range:
253         type: integer
254         required: false
255       source_port_range:
256         type: integer
257         required: false
258       network_src_port_id:
259         type: string
260         required: false
261       network_dst_port_id:
262         type: string
263         required: false
264       network_id:
265         type: string
266         required: false
267       network_name:
268         type: string
269         required: false
270       tenant_id:
271         type: string
272         required: false
273       icmpv4_type:
274         type: integer
275         constraints:
276           - in_range: [ 0, 254 ]
277         required: false
278       icmpv4_code:
279         type: integer
280         constraints:
281           - in_range: [ 0, 15 ]
282         required: false
283       arp_op:
284         type: integer
285         constraints:
286           - in_range: [ 1, 25 ]
287         required: false
288       arp_spa:
289         type: string
290         required: false
291       arp_tpa:
292         type: string
293         required: false
294       arp_sha:
295         type: string
296         required: false
297       arp_tha:
298         type: string
299         required: false
300       ipv6_src:
301         type: string
302         required: false
303       ipv6_dst:
304         type: string
305         required: false
306       ipv6_flabel:
307         type: integer
308         constraints:
309           - in_range: [ 0, 1048575]
310         required: false
311       icmpv6_type:
312         type: integer
313         constraints:
314           - in_range: [ 0, 255]
315         required: false
316       icmpv6_code:
317         type: integer
318         constraints:
319           - in_range: [ 0, 7]
320         required: false
321       ipv6_nd_target:
322         type: string
323         required: false
324       ipv6_nd_sll:
325         type: string
326         required: false
327       ipv6_nd_tll:
328         type: string
329         required: false
330
331   
332   tosca.datatypes.nfv.riftio.vnf_configuration:
333     properties:
334       config_type:
335         type: string
336         description: >-
337           Type of the configuration agent to use
338         constraints:
339           - valid_values: [script, netconf, rest, juju]
340       config_details:
341         type: map
342         description: >-
343           Specify the details for the config agent, like
344           script type, juju charm to use, etc.
345       config_template:
346         required: false
347         type: string
348       config_delay:
349         type: integer
350         constraints:
351         - greater_or_equal: 0
352         default: 0
353         required: false
354       config_priority:
355         type: integer
356         constraints:
357         - greater_than: 0
358
359   tosca.datatypes.nfv.riftio.parameter_value:
360     properties:
361       name:
362         type: string
363         description: Name of the parameter
364       value:
365         type: string
366         description: Value of the parameter
367
368   tosca.datatypes.nfv.riftio.config_primitive:
369     properties:
370       name:
371         type: string
372       seq:
373         type: integer
374         description: >-
375           Order in which to apply, when multiple ones are defined
376         default: 0
377         constraints:
378           - greater_or_equal: 0
379       parameter:
380         type: list
381         entry_schema:
382           type: tosca.datatypes.nfv.riftio.parameter_value
383       user_defined_script:
384         type: string
385   tosca.datatypes.nfv.riftio.primitive_parameter:
386     properties:
387       data_type:
388         type: string
389         description: >-
390           Data type associated with the name
391         constraints:
392           - valid_values: [string, integer, boolean]
393       mandatory:
394         type: boolean
395         description: >-
396           If this field is mandatory
397         default: false
398         required: false
399       default_value:
400         type: string
401         description: >-
402           The default value for this field
403         required: false
404       parameter_pool:
405         type: string
406         description: >-
407           Parameter pool name to use for this parameter
408         required: false
409       read_only:
410         type: boolean
411         description: >-
412           The value should be greyed out by the UI.
413           Only applies to parameters with default values.
414         required: false
415         default: false
416       hidden:
417         type: boolean
418         description: >-
419           The field should be hidden by the UI.
420           Only applies to parameters with default values.
421         required: false
422         default: false
423   tosca.datatypes.nfv.riftio.primitive_parameter_group:
424     properties:
425       name:
426         type: string
427         description: >-
428           Name of the parameter group
429       mandatory:
430         type: boolean
431         description: >-
432           If this group is mandatory
433         default: false
434         required: false
435       parameter:
436         type: map
437         description: >-
438           List of parameters for the service primitive
439         entry_schema: osca.datatypes.riftio.primitive_parameter
440
441   tosca.datatypes.nfv.riftio.vnf_primitive_group:
442     properties:
443       vnf_name:
444         type: string
445         description: >-
446           Name of the VNF in the NS
447       primitive:
448         type: map
449         entry_schema:
450           type: string
451         description: >-
452           Index and name of the primitive
453
454
455 capability_types:
456   tosca.capabilities.nfv.riftio.mgmt_interface:
457     derived_from: tosca.capabilities.Endpoint
458     properties:
459       static_ip:
460         type: string
461         required: false
462         description: >-
463           Specifies the static IP address for managing the VNF
464       connection_point:
465         type: string
466         required: false
467         description: >-
468           Use the ip address associated with this connection point
469       dashboard_params:
470         type: tosca.datatypes.nfv.riftio.dashboard_params
471         required: false
472         description: >-
473           Parameters for the VNF dashboard
474   tosca.capabilities.nfv.riftio.monitoring_param:
475     derived_from: tosca.capabilities.nfv.Metric
476     properties:
477       name:
478         type: string
479         required: false
480       description:
481         type: string
482         required: false
483       protocol:
484         type: string
485         default: http
486         constraints:
487           - equal: http
488       polling_interval:
489         type: scalar-unit.time
490         description: >-
491           The HTTP polling interval in seconds
492         default: 2 s
493       username:
494         type: string
495         description: >-
496           The HTTP basic auth username
497         required: false
498       password:
499         type: string
500         description: >-
501           The HTTP basic auth password
502         required: false
503       method:
504         type: string
505         description: >-
506           This is the method to be performed at the uri.
507           GET by default for action
508         default: get
509         constraints:
510           - valid_values: [post, put, get, delete, options, patch]
511       headers:
512         type: map
513         entry_schema:
514           type: string
515         description: >-
516           Custom HTTP headers to put on HTTP request
517         required: false
518       json_query_method:
519         type: string
520         description: >-
521           The method to extract a value from a JSON response
522             namekey    - Use the name as the key for a non-nested value.
523             jsonpath   - Use jsonpath-rw implemenation to extract a value.
524             objectpath - Use objectpath implemenation to extract a value.
525         constraints:
526           - valid_values: [namekey, jsonpath, objectpath]
527         default: namekey
528       json_query_path:
529         type: string
530         description: >-
531           The json path to use to extract value from JSON structure
532         required: false
533       json_object_path:
534         type: string
535         description: >-
536           The object path to use to extract value from JSON structure
537         required: false
538       ui_data:
539         type: tosca.datatypes.nfv.riftio.monitoring_param_ui
540         required: false
541       constraints:
542         type: tosca.datatypes.nfv.riftio.monitoring_param_value
543         required: false
544   tosca.capabilities.nfv.riftio.numa_extension:
545     derived_from: tosca.capabilities.Root
546     properties:
547       node_cnt:
548         type: integer
549         description: >-
550           The number of numa nodes to expose to the VM
551         constraints:
552           - greater_or_equal: 0
553       mem_policy:
554         type: string
555         description: >-
556           This policy specifies how the memory should
557                    be allocated in a multi-node scenario.
558                    STRICT    - The memory must be allocated
559                                strictly from the memory attached
560                                to the NUMA node.
561                    PREFERRED - The memory should be allocated
562                                preferentially from the memory
563                                attached to the NUMA node
564         constraints:
565           - valid_values: [strict, preferred, STRICT, PREFERRED]
566       node:
567         type: list
568         entry_schema:
569           type: tosca.datatypes.compute.riftio.numa
570   tosca.capabilities.nfv.riftio.vswitch_epa:
571     derived_from: tosca.capabilities.Root
572     properties:
573       ovs_acceleration:
574         type: string
575         description: |-
576           Specifies Open vSwitch acceleration mode.
577              MANDATORY - OVS acceleration is required
578              PREFERRED - OVS acceleration is preferred
579         constraints:
580           - valid_values: [mandatory, preferred, disabled, MANDATORY, PREFERRED, DISABLED]
581       ovs_offload:
582         type: string
583         description: |-
584           Specifies Open vSwitch hardware offload mode.
585              MANDATORY - OVS offload is required
586              PREFERRED - OVS offload is preferred
587         constraints:
588           - valid_values: [mandatory, preferred, disabled, MANDATORY, PREFERRED, DISABLED]
589
590   tosca.capabilities.nfv.riftio.hypervisor_epa:
591     derived_from: tosca.capabilities.Root
592     properties:
593       type:
594         type: string
595         description: |-
596           Specifies the type of hypervisor.
597         constraints:
598           - valid_values: [prefer_kvm, require_kvm, PREFER_KVM, REQUIRE_KVM]
599       version:
600         type: string
601
602   tosca.capabilities.nfv.riftio.host_epa:
603     derived_from: tosca.capabilities.Root
604     properties:
605       cpu_model:
606         type: string
607         description: >-
608           Host CPU model. Examples include SandyBridge,
609           IvyBridge, etc.
610         required: false
611         constraints:
612           - valid_values:
613               - prefer_westmere
614               - require_westmere
615               - prefer_sandbridge
616               - require_sandybridge
617               - prefer_ivybridge
618               - require_ivybridge
619               - prefer_haswell
620               - require_haswell
621               - prefer_broadwell
622               - require_broadwell
623               - prefer_nehalem
624               - require_nehalem
625               - prefer_penryn
626               - require_penryn
627               - prefer_conroe
628               - require_conroe
629               - prefer_core2duo
630               - require_core2duo
631               - PREFER_WESTMERE
632               - REQUIRE_WESTMERE
633               - PREFER_SANDBRIDGE
634               - REQUIRE_SANDYBRIDGE
635               - PREFER_IVYBRIDGE
636               - REQUIRE_IVYBRIDGE
637               - PREFER_HASWELL
638               - REQUIRE_HASWELL
639               - PREFER_BROADWELL
640               - REQUIRE_BROADWELL
641               - PREFER_NEHALEM
642               - REQUIRE_NEHALEM
643               - PREFER_PENRYN
644               - REQUIRE_PENRYN
645               - PREFER_CONROE
646               - REQUIRE_CONROE
647               - PREFER_CORE2DUO
648               - REQUIRE_CORE2DUO
649       cpu_arch:
650         type: string
651         description: >-
652           Host CPU architecture
653         required: false
654         constraints:
655           - valid_values:
656               - prefer_x86
657               - require_x86
658               - prefer_x86_64
659               - require_x86_64
660               - prefer_i686
661               - require_i686
662               - prefer_ia64
663               - require_ia64
664               - prefer_armv7
665               - require_armv7
666               - prefer_armv8
667               - require_armv8
668               - PREFER_X86
669               - REQUIRE_X86
670               - PREFER_X86_64
671               - REQUIRE_X86_64
672               - PREFER_I686
673               - REQUIRE_I686
674               - PREFER_IA64
675               - REQUIRE_IA64
676               - PREFER_ARMV7
677               - REQUIRE_ARMV7
678               - PREFER_ARMV8
679               - REQUIRE_ARMV8
680       cpu_vendor:
681         type: string
682         description: >-
683           Host CPU vendor
684         required: false
685         constraints:
686           - valid_values:
687               - prefer_intel
688               - require_intel
689               - prefer_amd
690               - requie_amd
691               - PREFER_INTEL
692               - REQUIRE_INTEL
693               - PREFER_AMD
694               - REQUIE_AMD
695       cpu_socket_count:
696         type: integer
697         description: >-
698           Number of sockets on the host
699         required: false
700         constraints:
701           - greater_than : 0
702       cpu_core_count:
703         type: integer
704         description: >-
705           Number of cores on the host
706         required: false
707         constraints:
708           - greater_than : 0
709       cpu_core_thread_count:
710         type: integer
711         description: >-
712           Number of threads per core on the host
713         required: false
714         constraints:
715           - greater_than : 0
716       cpu_feature:
717         type: list
718         entry_schema:
719           type: string
720         description: |-
721           Enumeration for CPU features.
722
723           AES- CPU supports advanced instruction set for
724           AES (Advanced Encryption Standard).
725
726           CAT- Cache Allocation Technology (CAT) allows
727           an Operating System, Hypervisor, or similar
728           system management agent to specify the amount
729           of L3 cache (currently the last-level cache
730           in most server and client platforms) space an
731           application can fill (as a hint to hardware
732           functionality, certain features such as power
733           management may override CAT settings).
734
735           CMT- Cache Monitoring Technology (CMT) allows
736           an Operating System, Hypervisor, or similar
737           system management agent to determine the
738           usage of cache based on applications running
739           on the platform. The implementation is
740           directed at L3 cache monitoring (currently
741           the last-level cache in most server and
742           client platforms).
743
744           DDIO- Intel Data Direct I/O (DDIO) enables
745           Ethernet server NICs and controllers talk
746           directly to the processor cache without a
747           detour via system memory. This enumeration
748           specifies if the VM requires a DDIO
749           capable host.
750         required: false
751         constraints:
752           -valid_values:
753             - prefer_aes
754             - require_aes
755             - prefer_cat
756             - require_cat
757             - prefer_cmt
758             - require_cmt
759             - prefer_ddio
760             - require_ddio
761             - prefer_vme
762             - require_vme
763             - prefer_de
764             - require_de
765             - prefer_pse
766             - require_pse
767             - prefer_tsc
768             - require_tsc
769             - prefer_msr
770             - require_msr
771             - prefer_pae
772             - require_pae
773             - prefer_mce
774             - require_mce
775             - prefer_cx8
776             - require_cx8
777             - prefer_apic
778             - require_apic
779             - prefer_sep
780             - require_sep
781             - prefer_mtrr
782             - require_mtrr
783             - prefer_pge
784             - require_pge
785             - prefer_mca
786             - require_mca
787             - prefer_cmov
788             - require_cmov
789             - prefer_pat
790             - require_pat
791             - prefer_pse36
792             - require_pse36
793             - prefer_clflush
794             - require_clflush
795             - prefer_dts
796             - require_dts
797             - prefer_acpi
798             - require_acpi
799             - prefer_mmx
800             - require_mmx
801             - prefer_fxsr
802             - require_fxsr
803             - prefer_sse
804             - require_sse
805             - prefer_sse2
806             - require_sse2
807             - prefer_ss
808             - require_ss
809             - prefer_ht
810             - require_ht
811             - prefer_tm
812             - require_tm
813             - prefer_ia64
814             - require_ia64
815             - prefer_pbe
816             - require_pbe
817             - prefer_rdtscp
818             - require_rdtscp
819             - prefer_pni
820             - require_pni
821             - prefer_pclmulqdq
822             - require_pclmulqdq
823             - prefer_dtes64
824             - require_dtes64
825             - prefer_monitor
826             - require_monitor
827             - prefer_ds_cpl
828             - require_ds_cpl
829             - prefer_vmx
830             - require_vmx
831             - prefer_smx
832             - require_smx
833             - prefer_est
834             - require_est
835             - prefer_tm2
836             - require_tm2
837             - prefer_ssse3
838             - require_ssse3
839             - prefer_cid
840             - require_cid
841             - prefer_fma
842             - require_fma
843             - prefer_cx16
844             - require_cx16
845             - prefer_xtpr
846             - require_xtpr
847             - prefer_pdcm
848             - require_pdcm
849             - prefer_pcid
850             - require_pcid
851             - prefer_dca
852             - require_dca
853             - prefer_sse4_1
854             - require_sse4_1
855             - prefer_sse4_2
856             - require_sse4_2
857             - prefer_x2apic
858             - require_x2apic
859             - prefer_movbe
860             - require_movbe
861             - prefer_popcnt
862             - require_popcnt
863             - prefer_tsc_deadline_timer
864             - require_tsc_deadline_timer
865             - prefer_xsave
866             - require_xsave
867             - prefer_avx
868             - require_avx
869             - prefer_f16c
870             - require_f16c
871             - prefer_rdrand
872             - require_rdrand
873             - prefer_fsgsbase
874             - require_fsgsbase
875             - prefer_bmi1
876             - require_bmi1
877             - prefer_hle
878             - require_hle
879             - prefer_avx2
880             - require_avx2
881             - prefer_smep
882             - require_smep
883             - prefer_bmi2
884             - require_bmi2
885             - prefer_erms
886             - require_erms
887             - prefer_invpcid
888             - require_invpcid
889             - prefer_rtm
890             - require_rtm
891             - prefer_mpx
892             - require_mpx
893             - prefer_rdseed
894             - require_rdseed
895             - prefer_adx
896             - require_adx
897             - prefer_smap
898             - require_smap
899             - PREFER_AES
900             - REQUIRE_AES
901             - PREFER_CAT
902             - REQUIRE_CAT
903             - PREFER_CMT
904             - REQUIRE_CMT
905             - PREFER_DDIO
906             - REQUIRE_DDIO
907             - PREFER_VME
908             - REQUIRE_VME
909             - PREFER_DE
910             - REQUIRE_DE
911             - PREFER_PSE
912             - REQUIRE_PSE
913             - PREFER_TSC
914             - REQUIRE_TSC
915             - PREFER_MSR
916             - REQUIRE_MSR
917             - PREFER_PAE
918             - REQUIRE_PAE
919             - PREFER_MCE
920             - REQUIRE_MCE
921             - PREFER_CX8
922             - REQUIRE_CX8
923             - PREFER_APIC
924             - REQUIRE_APIC
925             - PREFER_SEP
926             - REQUIRE_SEP
927             - PREFER_MTRR
928             - REQUIRE_MTRR
929             - PREFER_PGE
930             - REQUIRE_PGE
931             - PREFER_MCA
932             - REQUIRE_MCA
933             - PREFER_CMOV
934             - REQUIRE_CMOV
935             - PREFER_PAT
936             - REQUIRE_PAT
937             - PREFER_PSE36
938             - REQUIRE_PSE36
939             - PREFER_CLFLUSH
940             - REQUIRE_CLFLUSH
941             - PREFER_DTS
942             - REQUIRE_DTS
943             - PREFER_ACPI
944             - REQUIRE_ACPI
945             - PREFER_MMX
946             - REQUIRE_MMX
947             - PREFER_FXSR
948             - REQUIRE_FXSR
949             - PREFER_SSE
950             - REQUIRE_SSE
951             - PREFER_SSE2
952             - REQUIRE_SSE2
953             - PREFER_SS
954             - REQUIRE_SS
955             - PREFER_HT
956             - REQUIRE_HT
957             - PREFER_TM
958             - REQUIRE_TM
959             - PREFER_IA64
960             - REQUIRE_IA64
961             - PREFER_PBE
962             - REQUIRE_PBE
963             - PREFER_RDTSCP
964             - REQUIRE_RDTSCP
965             - PREFER_PNI
966             - REQUIRE_PNI
967             - PREFER_PCLMULQDQ
968             - REQUIRE_PCLMULQDQ
969             - PREFER_DTES64
970             - REQUIRE_DTES64
971             - PREFER_MONITOR
972             - REQUIRE_MONITOR
973             - PREFER_DS_CPL
974             - REQUIRE_DS_CPL
975             - PREFER_VMX
976             - REQUIRE_VMX
977             - PREFER_SMX
978             - REQUIRE_SMX
979             - PREFER_EST
980             - REQUIRE_EST
981             - PREFER_TM2
982             - REQUIRE_TM2
983             - PREFER_SSSE3
984             - REQUIRE_SSSE3
985             - PREFER_CID
986             - REQUIRE_CID
987             - PREFER_FMA
988             - REQUIRE_FMA
989             - PREFER_CX16
990             - REQUIRE_CX16
991             - PREFER_XTPR
992             - REQUIRE_XTPR
993             - PREFER_PDCM
994             - REQUIRE_PDCM
995             - PREFER_PCID
996             - REQUIRE_PCID
997             - PREFER_DCA
998             - REQUIRE_DCA
999             - PREFER_SSE4_1
1000             - REQUIRE_SSE4_1
1001             - PREFER_SSE4_2
1002             - REQUIRE_SSE4_2
1003             - PREFER_X2APIC
1004             - REQUIRE_X2APIC
1005             - PREFER_MOVBE
1006             - REQUIRE_MOVBE
1007             - PREFER_POPCNT
1008             - REQUIRE_POPCNT
1009             - PREFER_TSC_DEADLINE_TIMER
1010             - REQUIRE_TSC_DEADLINE_TIMER
1011             - PREFER_XSAVE
1012             - REQUIRE_XSAVE
1013             - PREFER_AVX
1014             - REQUIRE_AVX
1015             - PREFER_F16C
1016             - REQUIRE_F16C
1017             - PREFER_RDRAND
1018             - REQUIRE_RDRAND
1019             - PREFER_FSGSBASE
1020             - REQUIRE_FSGSBASE
1021             - PREFER_BMI1
1022             - REQUIRE_BMI1
1023             - PREFER_HLE
1024             - REQUIRE_HLE
1025             - PREFER_AVX2
1026             - REQUIRE_AVX2
1027             - PREFER_SMEP
1028             - REQUIRE_SMEP
1029             - PREFER_BMI2
1030             - REQUIRE_BMI2
1031             - PREFER_ERMS
1032             - REQUIRE_ERMS
1033             - PREFER_INVPCID
1034             - REQUIRE_INVPCID
1035             - PREFER_RTM
1036             - REQUIRE_RTM
1037             - PREFER_MPX
1038             - REQUIRE_MPX
1039             - PREFER_RDSEED
1040             - REQUIRE_RDSEED
1041             - PREFER_ADX
1042             - REQUIRE_ADX
1043             - PREFER_SMAP
1044             - REQUIRE_SMAP
1045       om_cpu_model_string:
1046         type: string
1047         description: >-
1048           Openmano CPU model string
1049         required: false
1050       om_cpu_feature:
1051         type: list
1052         entry_schema:
1053           type: string
1054         description: >-
1055           List of openmano CPU features
1056         required: false
1057
1058   tosca.capabilities.nfv.riftio.sfc:
1059     derived_from: tosca.capabilities.Root
1060     description: >-
1061       Service Function Chaining support on this VDU
1062     properties:
1063       sfc_type:
1064         type: string
1065         description: >-
1066           Type of node in Service Function Chaining Architecture
1067         constraints:
1068           - valid_values: [unaware, classifier, sf, sff, UNAWARE, CLASSIFIER, SF, SFF]
1069         default: unaware
1070       sf_type:
1071         type: string
1072         description: >-
1073           Type of Service Function.
1074              NOTE- This needs to map with Service Function Type in ODL to
1075              support VNFFG. Service Function Type is manadatory param in ODL
1076              SFC.
1077         required: false
1078   tosca.capabilities.Compute.Container.Architecture:
1079     derived_from: tosca.capabilities.Container
1080     properties:
1081       mem_page_size:
1082         type: string
1083         description: >-
1084           Memory page allocation size. If a VM requires
1085           hugepages, it should choose huge or size_2MB
1086           or size_1GB. If the VM prefers hugepages, it
1087           should chose prefer_huge.
1088              huge/large         - Require hugepages (either 2MB or 1GB)
1089              normal       - Does not require hugepages
1090              size_2MB     - Requires 2MB hugepages
1091              size_1GB     - Requires 1GB hugepages
1092              prefer_huge  - Application perfers hugepages
1093           NOTE - huge and normal is only defined in standards as of
1094                  now.
1095         required: false
1096         constraints:
1097           - valid_values: [normal, large, huge, size_2MB, size_1GB, prefer_huge, NORMAL,LARGE, HUGE, SIZE_2MB, SIZE_1GB, PREFER_HUGE]
1098       cpu_allocation:
1099         type: tosca.datatypes.compute.Container.Architecture.CPUAllocation
1100         required: false
1101       numa_nodes:
1102         type: map
1103         required: false
1104         entry_schema:
1105           type: tosca.datatypes.compute.Container.Architecture.NUMA
1106
1107
1108 node_types:
1109   tosca.nodes.nfv.riftio.VDU1:
1110     derived_from: tosca.nodes.nfv.VDU
1111     properties:
1112       description:
1113         type: string
1114         required: false
1115       image:
1116         description: >-
1117           If an image is specified here, it is assumed that the image
1118           is already present in the RO or VIM and not in the package.
1119         type: string
1120         required: false
1121       image_checksum:
1122         type: string
1123         description: >-
1124           Image checksum for the image in RO or VIM.
1125         required: false
1126       cloud_init:
1127         description: >-
1128           Inline cloud-init specification
1129         required: false
1130         type: string
1131       count:
1132         default: 1
1133         type: integer
1134     capabilities:
1135       virtualLink:
1136         type: tosca.capabilities.nfv.VirtualLinkable
1137       monitoring_param_1:
1138         type: tosca.capabilities.nfv.riftio.monitoring_param
1139       mgmt_interface:
1140         type: tosca.capabilities.nfv.riftio.mgmt_interface
1141       monitoring_param:
1142         type: tosca.capabilities.nfv.riftio.monitoring_param
1143       numa_extension:
1144         type: tosca.capabilities.nfv.riftio.numa_extension
1145       vswitch_epa:
1146         type: tosca.capabilities.nfv.riftio.vswitch_epa
1147       hypervisor_epa:
1148         type: tosca.capabilities.nfv.riftio.hypervisor_epa
1149       host_epa:
1150         type: tosca.capabilities.nfv.riftio.host_epa
1151   tosca.nodes.nfv.riftio.CP1:
1152     derived_from: tosca.nodes.nfv.CP
1153     properties:
1154       cp_type:
1155         description: Type of the connection point
1156         type: string
1157         default: VPORT
1158         constraints:
1159           - valid_values: [VPORT]
1160       name:
1161         description: Name of the connection point
1162         type: string
1163         required: false
1164       vdu_intf_name:
1165         description: Name of the interface on VDU
1166         type: string
1167       vdu_intf_type:
1168         description: >-
1169           Specifies the type of virtual interface
1170              between VM and host.
1171              VIRTIO          - Use the traditional VIRTIO interface.
1172              PCI-PASSTHROUGH - Use PCI-PASSTHROUGH interface.
1173              SR-IOV          - Use SR-IOV interface.
1174              E1000           - Emulate E1000 interface.
1175              RTL8139         - Emulate RTL8139 interface.
1176              PCNET           - Emulate PCNET interface.
1177              OM-MGMT         - Used to specify openmano mgmt external-connection type
1178         type: string
1179         constraints:
1180           - valid_values: [OM-MGMT, VIRTIO, E1000, SR-IOV]
1181       bandwidth:
1182         type: integer
1183         description: Aggregate bandwidth of the NIC
1184         constraints:
1185           - greater_or_equal: 0
1186         required: false
1187       vpci:
1188         type: string
1189         description: >-
1190           Specifies the virtual PCI address. Expressed in
1191           the following format dddd:dd:dd.d. For example
1192           0000:00:12.0. This information can be used to
1193           pass as metadata during the VM creation.
1194         required: false
1195     capabilities:
1196       sfc:
1197         type: tosca.capabilities.nfv.riftio.sfc
1198   tosca.nodes.nfv.riftio.VNF1:
1199     derived_from: tosca.nodes.nfv.VNF
1200     properties:
1201       member_index:
1202         type: integer
1203         constraints:
1204           - greater_or_equal: 1
1205         description: Index of the VNF in the NS
1206         required: false
1207       start_by_default:
1208         type: boolean
1209         default: true
1210         description: Start this VNF on NS instantiate
1211       logo:
1212         type: string
1213         description: >-
1214           Logo to display with the VNF in the orchestrator
1215         required: false
1216     capabilities:      
1217       mgmt_interface:
1218         type: tosca.capabilities.nfv.riftio.mgmt_interface
1219       monitoring_param:
1220         type: tosca.capabilities.nfv.riftio.monitoring_param
1221       sfc:
1222         type: tosca.capabilities.nfv.riftio.sfc
1223   tosca.nodes.nfv.riftio.ELAN:
1224     derived_from: tosca.nodes.nfv.VL.ELAN
1225     properties:
1226       description:
1227         type: string
1228         required: false
1229       network_name:
1230         type: string
1231         description: >-
1232           Name of network in VIM account. This is used to indicate
1233           pre-provisioned network name in cloud account.
1234         required: false
1235       root_bandwidth:
1236         type: integer
1237         description: >-
1238           This is the aggregate bandwidth
1239         constraints:
1240           - greater_or_equal: 0
1241         required: false
1242       leaf_bandwidth:
1243         type: integer
1244         description: >-
1245           This is the bandwidth of branches
1246         constraints:
1247           - greater_or_equal: 0
1248         required: false
1249   tosca.nodes.nfv.riftio.FP1:
1250     derived_from: tosca.nodes.nfv.FP
1251     properties:
1252       id:
1253         type: integer
1254         required: false
1255       policy:
1256         type: tosca.nfv.datatypes.policyType
1257         required: true
1258         description: policy to use to match traffic for this FP
1259       path:
1260         type: list
1261         required: true
1262         entry_schema:
1263           type: tosca.nfv.datatypes.pathType
1264       cp:
1265         type: tosca.nfv.datatypes.pathType
1266         required: true
1267
1268
1269
1270 artifact_types:
1271   tosca.artifacts.Deployment.riftio.cloud_init_file:
1272     derived_from: tosca.artifacts.Deployment
1273     file:
1274       type: string
1275
1276   tosca.artifacts.Deployment.Image.riftio.QCOW2:
1277     derived_from: tosca.artifacts.Deployment.Image.VM.QCOW2
1278     image_checksum:
1279       required: false
1280       type: string
1281
1282 group_types:
1283   tosca.groups.nfv.VNFFG:
1284     derived_from: tosca.groups.Root
1285     properties:
1286       vendor:
1287         type: string
1288         required: true
1289         description: name of the vendor who generate this VNFFG
1290       version:
1291         type: string
1292         required: true
1293         description: version of this VNFFG
1294       number_of_endpoints:
1295         type: integer
1296         required: true
1297         description: count of the external endpoints included in this VNFFG
1298       dependent_virtual_link:
1299         type: list
1300         entry_schema:
1301           type: string
1302         required: true
1303         description: Reference to a VLD used in this Forwarding Graph
1304       connection_point:
1305         type: list
1306         entry_schema:
1307           type: string
1308         required: true
1309         description: Reference to Connection Points forming the VNFFG
1310       constituent_vnfs:
1311         type: list
1312         entry_schema:
1313           type: string
1314         required: true
1315         description: Reference to a list of VNFD used in this VNF Forwarding Graph
1316     members: [ tosca.nodes.nfv.FP ]
1317
1318   tosca.groups.nfv.riftio.scaling:
1319     derived_from: tosca.groups.Root
1320     properties:
1321       name:
1322         type: string
1323       min_instances:
1324         type: integer
1325         description: >-
1326           Minimum instances of the scaling group which are allowed.
1327           These instances are created by default when the network service
1328           is instantiated.
1329       max_instances:
1330         type: integer
1331         description: >-
1332           Maximum instances of this scaling group that are allowed
1333           in a single network service. The network service scaling
1334           will fail, when the number of service group instances
1335           exceed the max-instance-count specified.
1336       cooldown_time:
1337         type: integer
1338         description: >-
1339           The duration after a scaling-in/scaling-out action has been
1340           triggered, for which there will be no further optional
1341       ratio:
1342         type: map
1343         entry_schema:
1344           type: integer
1345         description: >-
1346           Specify the number of instances of each VNF to instantiate
1347           for a scaling action
1348     members: [tosca.nodes.nfv.VNF]
1349     interfaces:
1350       action:
1351         type: tosca.interfaces.nfv.riftio.scaling.action
1352
1353 interface_types:
1354   tosca.interfaces.nfv.riftio.scaling.action:
1355     pre_scale_in:
1356       description: Operation to execute before a scale in
1357     post_scale_in:
1358       description: Operation to execute after a scale in
1359     pre_scale_out:
1360       description: Operation to execute before a scale out
1361     post_scale_out:
1362       description: Operation to execute after a scale out
1363
1364 policy_types:
1365   tosca.policies.nfv.riftio.placement:
1366     derived_from: tosca.policies.Placement
1367     properties:
1368       name:
1369         type: string
1370         description: >-
1371           Place group construct to define the compute resource placement strategy
1372           in cloud environment
1373       requirement:
1374         type: string
1375         description: >-
1376           This is free text space used to describe the intent/rationale
1377           behind this placement group. This is for human consumption only
1378       strategy:
1379         type: string
1380         description: >-
1381           Strategy associated with this placement group
1382              Following values are possible
1383                COLOCATION - Colocation strategy imply intent to share the physical
1384                             infrastructure (hypervisor/network) among all members
1385                             of this group.
1386                ISOLATION - Isolation strategy imply intent to not share the physical
1387                            infrastructure (hypervisor/network) among the members
1388                            of this group.
1389         constraints:
1390           valid_values:
1391             - COLOCATION
1392             - ISOLATION
1393   tosca.policies.nfv.riftio.vnf_configuration:
1394     derived_from: tosca.policies.Root
1395     properties:
1396       config:
1397         type: tosca.datatypes.nfv.riftio.vnf_configuration
1398       initial_config:
1399         type: list
1400         entry_schema:
1401           type: tosca.datatypes.nfv.riftio.config_primitive
1402   tosca.policies.nfv.riftio.vnf_service_primitives:
1403     derived_from: tosca.policies.Root
1404     properties:
1405       parameter:
1406         type: map
1407         entry_schema:
1408           type: primitive_parameter
1409   tosca.policies.nfv.riftio.ns_service_primitives:
1410     derived_from: tosca.policies.Root
1411     properties:
1412       parameter:
1413         type: map
1414         entry_schema:
1415           type: primitive_parameter
1416       parameter_group:
1417         type: tosca.datatypes.nfv.riftio.primitive_parameter_group
1418         description: >-
1419           Grouping of parameters which are logically grouped in UI
1420         required: false
1421       vnf_primitive_group:
1422         type: tosca.datatypes.nfv.riftio.vnf_primitive_group
1423         description: >-
1424           List of service primitives grouped by VNF
1425         required: false
1426       user_defined_script:
1427         type: string
1428         description: >-
1429           A user defined script
1430         required: false
1431   tosca.policies.nfv.riftio.initial_config_primitive:
1432     derived_from: tosca.policies.Root
1433     properties:
1434       name:
1435         type: string
1436       seq:
1437         type: integer
1438         description: >-
1439           Order in which to apply, when multiple ones are defined
1440         default: 0
1441         constraints:
1442           - greater_or_equal: 0
1443       parameter:
1444         type: map
1445         entry_schema:
1446           type: string
1447       user_defined_script:
1448         type: string
1449   tosca.policies.nfv.riftio.users:
1450     derived_from: tosca.policies.Root
1451     description: >-
1452       Specify list of public keys to be injected as
1453       part of NS instantitation. Use default as entry,
1454       to specify the key pairs for default user.
1455     properties:
1456       user_info:
1457         type: string
1458         description: >-
1459           The user\'s real name
1460         required: false
1461       key_pairs:
1462         type: map
1463         description: >-
1464           List of public keys for the user
1465         entry_schema:
1466           type: string
1467         required: true
1468   tosca.policies.nfv.riftio.dependency:
1469     derived_from: tosca.policies.Root
1470     description: >-
1471       Map dependency between VDUs or VNFs
1472     properties:
1473       parameter:
1474         type: map
1475         entry_schema:
1476           type: string
1477         description: >-
1478           Parameter and value for the config
1479   tosca.nfv.datatypes.policyType:
1480     properties:
1481       type:
1482         type: string
1483         required: false
1484         constraints:
1485           - valid_values: [ ACL ]
1486       criteria:
1487         type: list
1488         required: true
1489         entry_schema:
1490           type: tosca.nfv.datatypes.aclType
1491
1492   
1493