remove the keystone and openstack common plugins
[so.git] / aria / multivim-plugin / src / main / python / multivim-plugin / plugin.yaml
1 #
2 # Copyright (c) 2017 GigaSpaces Technologies Ltd. All rights reserved.
3 #
4 # Licensed under the Apache License, Version 2.0 (the "License"); you may
5 # not use this file except in compliance with the License. You may obtain
6 # a copy of the License at
7 #
8 #      http://www.apache.org/licenses/LICENSE-2.0
9 #
10 # Unless required by applicable law or agreed to in writing, software
11 # distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
12 # WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
13 # License for the specific language governing permissions and limitations
14 # under the License.
15 #
16 tosca_definitions_version: tosca_simple_yaml_1_0
17
18
19 topology_template:
20   policies:
21     onap-multivim-plugin:
22       description: >-
23         multivim plugin executes operations.
24       type: aria.Plugin
25       properties:
26         version: 2.0.1
27
28
29 data_types:
30
31   onap.multivim.datatypes.Config:
32     description: >-
33       multivim configuration
34     properties:
35       username:
36         type: string
37       password:
38         type: string
39       tenant_name:
40         type: string
41       auth_url:
42         type: string
43       region:
44         type: string
45         required: false
46       nova_url:
47         type: string
48         required: false
49       neutron_url:
50         type: string
51         required: false
52
53   onap.multivim.datatypes.Rules:
54     description: >-
55       multivim security group rules
56     properties:
57       remote_ip_prefix:
58         type: string
59         default: 0.0.0.0/0
60       port:
61         type: integer
62         default:
63
64   # source: https://developer.multivim.org/api-ref/compute/
65
66   onap.multivim.datatypes.Server:
67     description: >-
68       multivim Server args.
69     properties:
70       security_groups:
71         type: list
72         entry_schema: string
73         required: false
74       availability_zone:
75         type: string
76         required: false
77       userdata:
78         type: string
79         required: false
80       metadata:
81         type: map
82         entry_schema: string
83         required: false
84
85   onap.multivim.datatypes.Keypair:
86     description: >-
87       multivim keypair args.
88     properties:
89       public_key:
90         type: string
91         required: false
92       type:
93         type: string
94         required: false
95       user_id:
96         type: string
97         required: false
98
99   # source: https://developer.multivim.org/api-ref/block-storage/v2/index.html
100
101   onap.multivim.datatypes.Volume:
102     description: >-
103       multivim volume args.
104     properties:
105       size:
106         type: integer
107         required: false
108       description:
109         type: string
110         required: false
111       availability_zone:
112         type: string
113         required: false
114       consistencygroup_id:
115         type: string
116         required: false
117       volume_type:
118         type: string
119         required: false
120       snapshot_id:
121         type: string
122         required: false
123       source_replica:
124         type: string
125         required: false
126       tenant_id:
127         type: string
128         required: false
129
130   # source: https://developer.multivim.org/api-ref/image/
131
132   onap.multivim.datatypes.Image:
133     description: >-
134       multivim image args.
135     properties:
136       id:
137         type: string
138         required: false
139       min_disk:
140         type: integer
141         required: false
142       min_ram:
143         type: integer
144         required: false
145       name:
146         type: string
147         required: false
148       protected:
149         type: boolean
150         required: false
151       tags:
152         type: list
153         entry_schema: string
154         required: false
155       visibility:
156         type: string
157         required: false
158
159   # source: https://developer.multivim.org/api-ref/identity/v3/
160
161   onap.multivim.datatypes.Project:
162     description: >-
163       multivim image args.
164     properties:
165       is_domain:
166         type: boolean
167         required: false
168       description:
169         type: string
170         required: false
171       domain_id:
172         type: string
173         required: false
174       name:
175         type: string
176         required: false
177       enabled:
178         type: boolean
179         required: false
180       parent_id:
181         type: string
182         required: false
183
184   # source: https://developer.multivim.org/api-ref/networking/v2/index.html
185
186   onap.multivim.datatypes.Subnet:
187     description: >-
188       multivim subnet args.
189     properties:
190       network_id:
191         type: string
192         required: false
193       ip_version:
194         type: integer
195         required: false
196         default: 4
197       cidr:
198         type: string
199         required: false
200       gateway_ip:
201         type: string
202         required: false
203       dns_nameservers:
204         type: list
205         entry_schema: string
206         required: false
207       enable_dhcp:
208         type: boolean
209         required: false
210       tenant_id:
211         type: string
212         required: false
213
214   onap.multivim.datatypes.Port:
215     description: >-
216       multivim port args
217     properties:
218       network_id:
219         type: string
220         required: false
221       admin_state_up:
222         type: boolean
223         required: false
224       status:
225         type: string
226         required: false
227       mac_address:
228         type: string
229         required: false
230       device_id:
231         type: string
232         required: false
233       device_owner:
234         type: string
235         required: false
236       tenant_id:
237         type: string
238         required: false
239
240   onap.multivim.datatypes.Network:
241     description: >-
242       multivim network args
243     properties:
244       admin_state_up:
245         type: boolean
246         required: false
247       status:
248         type: string
249         required: false
250       subnets:
251         type: list
252         entry_schema: string
253         required: false
254       shared:
255         type: boolean
256         required: false
257       tenant_id:
258         type: string
259         required: false
260
261   onap.multivim.datatypes.SecurityGroup:
262     description: >-
263       multivim network args
264     properties:
265       admin_state_up:
266         type: boolean
267         required: false
268       port_security_enabled:
269         type: boolean
270         required: false
271       project_id:
272         type: string
273         required: false
274       qos_policy_id:
275         type: string
276         required: false
277       segments:
278         type: list
279         entry_schema: string
280         required: false
281       shared:
282         type: boolean
283         required: false
284       vlan_transparent:
285         type: boolean
286         required: false
287       tenant_id:
288         type: string
289         required: false
290
291   onap.multivim.datatypes.Router:
292     description: >-
293       multivim network args
294     properties:
295       bgpvpn_id:
296         type: string
297         required: false
298       router_id:
299         type: string
300         required: false
301
302   onap.multivim.datatypes.FloatingIP:
303     description: >-
304       multivim network args
305     properties:
306       tenant_id:
307         type: string
308         required: false
309       project_id:
310         type: string
311         required: false
312       floating_network_id:
313         type: string
314         required: false
315       floating_network_name:
316         type: string
317         required: false
318       fixed_ip_address:
319         type: string
320         required: false
321       floating_ip_address:
322         type: string
323         required: false
324       port_id:
325         type: string
326         required: false
327       subnet_id:
328         type: string
329         required: false
330
331
332 interface_types:
333
334   onap.multivim.interfaces.validation:
335     derived_from: tosca.interfaces.Root
336     creation:
337       description: >-
338         creation operation for the multivim validation interface
339     deletion:
340       description: >-
341         deletion operation for the multivim validation interface
342
343
344 node_types:
345
346   onap.multivim.nodes.Server:
347     derived_from: tosca.nodes.Compute
348     properties:
349       server:
350         default: {}
351         type: onap.multivim.datatypes.Server
352         required: false
353       ip:
354         default:
355         type: string
356       os_family:
357         description: >-
358           Property specifying what type of operating system family
359           this compute node will run.
360         default: linux
361         type: string
362       use_external_resource:
363         type: boolean
364         default: false
365         description: >-
366           a boolean for setting whether to create the resource or use an existing one.
367           See the using existing resources section.
368       create_if_missing:
369         default: false
370         type: boolean
371         description: >-
372           If use_external_resource is ``true`` and the resource is missing,
373           create it instead of failing.
374       resource_id:
375         default: ''
376         type: string
377         description: >-
378           name to give to the new resource or the name or ID of an existing resource when the ``use_external_resource`` property is set to ``true`` (see the using existing resources section). Defaults to '' (empty string).
379       image:
380         default: ''
381         type: string
382         description: >-
383           The image for the server.
384           May receive either the ID or the name of the image.
385           note: This property is currently optional for backwards compatibility,
386           but will be modified to become a required property in future versions
387           (Default: '').
388       flavor:
389         default: ''
390         type: string
391         description: >-
392           The flavor for the server.
393           May receive either the ID or the name of the flavor.
394           note: This property is currently optional for backwards compatibility,
395           but will be modified to become a required property in future versions
396           (Default: '').
397       use_password:
398         default: false
399         type: boolean
400         description: >-
401           A boolean describing whether this server image supports user-password authentication.
402           Images that do should post the administrator user's password to the Openstack metadata service (e.g. via cloudbase);
403           The password would then be retrieved by the plugin,
404           decrypted using the server's keypair and then saved in the server's runtime properties.
405       management_network_name:
406         type: string
407         description: >-
408           The current implementation of the multivim plugin requires this field. The value of
409           this field should be set to the multivim name of a network this server is attached to.
410       multivim_config:
411         type: onap.multivim.datatypes.Config
412         required: false
413         description: >-
414             see Openstack Configuraion
415     interfaces:
416       Standard:
417         create:
418           implementation: onap-multivim-plugin > nova_plugin.server.create
419           inputs:
420             args:
421               required: false
422               default: {}
423               type: onap.multivim.datatypes.Server
424         start:
425           implementation: onap-multivim-plugin > nova_plugin.server.start
426           inputs:
427             start_retry_interval:
428               default: 30
429               type: integer
430             private_key_path:
431               type: string
432               default: ''
433               required: true
434         stop: onap-multivim-plugin > nova_plugin.server.stop
435         delete: onap-multivim-plugin > nova_plugin.server.delete
436       Validation:
437         type: onap.multivim.interfaces.validation
438         creation:
439           implementation: onap-multivim-plugin > nova_plugin.server.creation_validation
440           inputs:
441             args:
442               required: false
443               default: {}
444               type: onap.multivim.datatypes.Server
445
446     requirements:
447       - floating_ip:
448           capability: tosca.capabilities.Node
449           node: onap.multivim.nodes.FloatingIP
450           relationship: onap.multivim.server_connected_to_floating_ip
451           occurrences: [ 0, UNBOUNDED ]
452       - security_group:
453           capability: tosca.capabilities.Node
454           node: onap.multivim.nodes.SecurityGroup
455           relationship: onap.multivim.server_connected_to_security_group
456           occurrences: [ 0, UNBOUNDED ]
457       - port:
458           capability: tosca.capabilities.Node
459           node: onap.multivim.nodes.Port
460           relationship: onap.multivim.server_connected_to_port
461           occurrences: [ 0, UNBOUNDED ]
462       - key_pair:
463           capability: tosca.capabilities.Node
464           node: onap.multivim.nodes.KeyPair
465           relationship: onap.multivim.server_connected_to_keypair
466           occurrences: [ 0, UNBOUNDED ]
467     capabilities:
468       multivim_container:
469         type: Node
470
471   onap.multivim.nodes.WindowsServer:
472     derived_from: onap.multivim.nodes.Server
473     properties:
474       use_password:
475         default: true
476         type: boolean
477         description: >-
478           Default changed for derived type
479           because Windows instances need a password for agent installation
480       os_family:
481         default: windows
482         type: string
483         description: >-
484           (updates the os_family default as a convenience)
485
486   onap.multivim.nodes.KeyPair:
487     derived_from: tosca.nodes.Root
488     properties:
489       keypair:
490         default: {}
491         type: onap.multivim.datatypes.Keypair
492         required: false
493         description: >-
494           the path (on the machine the plugin is running on) to
495           where the private key should be stored. If
496           use_external_resource is set to "true", the existing
497           private key is expected to be at this path.
498       private_key_path:
499         description: >
500           the path (on the machine the plugin is running on) to
501           where the private key should be stored. If
502           use_external_resource is set to "true", the existing
503           private key is expected to be at this path.
504         type: string
505       use_external_resource:
506         type: boolean
507         default: false
508         description: >-
509           a boolean describing whether this resource should be
510           created or rather that it already exists on Openstack
511           and should be used as-is.
512       create_if_missing:
513         default: false
514         type: boolean
515         description: >-
516           If use_external_resource is ``true`` and the resource is missing,
517           create it instead of failing.
518       resource_id:
519         default: ''
520         type: string
521         description: >-
522           the name that will be given to the resource on Openstack (excluding optional prefix).
523           If not provided, a default name will be given instead.
524           If use_external_resource is set to "true", this exact
525           value (without any prefixes applied) will be looked for
526           as either the name or id of an existing keypair to be used.
527       multivim_config:
528         type: onap.multivim.datatypes.Config
529         required: false
530     interfaces:
531       Standard:
532         create:
533           implementation: onap-multivim-plugin > nova_plugin.keypair.create
534           inputs:
535             args:
536               required: false
537               default: {}
538               type: onap.multivim.datatypes.Keypair
539
540         delete: onap-multivim-plugin > nova_plugin.keypair.delete
541
542       Validation:
543         type: onap.multivim.interfaces.validation
544         creation: onap-multivim-plugin > nova_plugin.keypair.creation_validation
545
546     capabilities:
547       keypair:
548         type: tosca.capabilities.Node
549
550   onap.multivim.nodes.Subnet:
551     derived_from: tosca.nodes.Root
552     properties:
553       subnet:
554         type: onap.multivim.datatypes.Subnet
555         required: false
556         default:
557           cidr: 172.16.0.0/16
558       use_external_resource:
559         type: boolean
560         default: false
561         description: >-
562           a boolean for setting whether to create the resource or use an existing one.
563           See the using existing resources section.
564       create_if_missing:
565         default: false
566         type: boolean
567         description: >-
568           If use_external_resource is ``true`` and the resource is missing,
569           create it instead of failing.
570       resource_id:
571         default: ''
572         type: string
573         description: >-
574           name to give to the new resource or the name or ID of an existing resource when the ``use_external_resource`` property is set to ``true`` (see the using existing resources section). Defaults to '' (empty string).
575       multivim_config:
576         type: onap.multivim.datatypes.Config
577         required: false
578     interfaces:
579       Standard:
580         create:
581           implementation: onap-multivim-plugin > neutron_plugin.subnet.create
582           inputs:
583             args:
584               required: false
585               type: onap.multivim.datatypes.Subnet
586               default:
587                 cidr: 172.16.0.0/16
588         delete: onap-multivim-plugin > neutron_plugin.subnet.delete
589       Validation:
590         type: onap.multivim.interfaces.validation
591         creation:
592           implementation: onap-multivim-plugin > neutron_plugin.subnet.creation_validation
593           inputs:
594             args:
595               type: onap.multivim.datatypes.Subnet
596               required: false
597               default:
598                 cidr: 172.16.0.0/16
599
600     requirements:
601       - router:
602           capability: tosca.capabilities.Node
603           node: onap.multivim.nodes.Router
604           relationship: onap.multivim.subnet_connected_to_router
605           occurrences: [ 0, UNBOUNDED ]
606       - network:
607           capability: tosca.capabilities.Node
608           node: onap.multivim.nodes.Network
609     capabilities:
610       subnet:
611         type: tosca.capabilities.Node
612
613   onap.multivim.nodes.SecurityGroup:
614     derived_from: tosca.nodes.Root
615     properties:
616       security_group:
617         type: onap.multivim.datatypes.SecurityGroup
618         required: false
619         default: {}
620       description:
621         type: string
622         default: ''
623         description: >-
624           SecurityGroup description.
625       create_if_missing:
626         default: false
627         type: boolean
628         description: >-
629           If use_external_resource is ``true`` and the resource is missing,
630           create it instead of failing.
631       use_external_resource:
632         type: boolean
633         default: false
634         description: >-
635           a boolean for setting whether to create the resource or use an existing one.
636           See the using existing resources section.
637       resource_id:
638         default: ''
639         type: string
640         description: >-
641           name to give to the new resource or the name or ID of an existing resource when the ``use_external_resource`` property is set to ``true`` (see the using existing resources section). Defaults to '' (empty string).
642       multivim_config:
643         type: onap.multivim.datatypes.Config
644         required: false
645       rules:
646         default: []
647         type: list
648         entry_schema: onap.multivim.datatypes.Rules
649       disable_default_egress_rules:
650         default: false
651         type: boolean
652         description: >-
653           a flag for removing the default rules which https://wiki.multivim.org/wiki/Neutron/SecurityGroups#Behavior. If not set to `true`, these rules will remain, and exist alongside any additional rules passed using the `rules` property.
654     interfaces:
655       Standard:
656         create:
657           implementation: onap-multivim-plugin > neutron_plugin.security_group.create
658           inputs:
659             args:
660               type: onap.multivim.datatypes.SecurityGroup
661               required: false
662               default: {}
663         delete: onap-multivim-plugin > neutron_plugin.security_group.delete
664
665       Validation:
666         type: onap.multivim.interfaces.validation
667         creation: onap-multivim-plugin > neutron_plugin.security_group.creation_validation
668
669     capabilities:
670       security:
671         type: tosca.capabilities.Node
672
673   onap.multivim.nodes.Router:
674     derived_from: tosca.nodes.Root
675     properties:
676       router:
677         type: onap.multivim.datatypes.Router
678         required: false
679         default: {}
680       external_network:
681         default: ''
682         type: string
683         description: >-
684           An external network name or ID.
685           If given, the router will use this external network as a gateway.
686       use_external_resource:
687         type: boolean
688         default: false
689         description: >-
690           a boolean for setting whether to create the resource or use an existing one.
691           See the using existing resources section.
692       create_if_missing:
693         default: false
694         type: boolean
695         description: >-
696           If use_external_resource is ``true`` and the resource is missing,
697           create it instead of failing.
698       resource_id:
699         default: ''
700         description: >-
701           name to give to the new resource or the name or ID of an existing resource when the ``use_external_resource`` property is set to ``true`` (see the using existing resources section). Defaults to '' (empty string).
702         type: string
703       multivim_config:
704         type: onap.multivim.datatypes.Config
705         required: false
706
707     interfaces:
708       Standard:
709         create:
710           implementation: onap-multivim-plugin > neutron_plugin.router.create
711           inputs:
712             args:
713               default: {}
714               type: onap.multivim.datatypes.Router
715               required: false
716         delete: onap-multivim-plugin > neutron_plugin.router.delete
717       Validation:
718         type: onap.multivim.interfaces.validation
719         creation: onap-multivim-plugin > neutron_plugin.router.creation_validation
720
721     capabilities:
722       gateway:
723         type: tosca.capabilities.Node
724
725   onap.multivim.nodes.Port:
726     derived_from: tosca.nodes.Root
727     properties:
728       port:
729         type: onap.multivim.datatypes.Port
730         required: false
731         default: {}
732       fixed_ip:
733         default: ''
734         type: string
735         description: >-
736           may be used to request a specific fixed IP for the port.
737           If the IP is unavailable
738           (either already taken or does not belong to a subnet the port is on)
739           an error will be raised.
740       use_external_resource:
741         type: boolean
742         default: false
743         description: >-
744           a boolean for setting whether to create the resource or use an existing one.
745           See the using existing resources section.
746       create_if_missing:
747         default: false
748         type: boolean
749         description: >-
750           If use_external_resource is ``true`` and the resource is missing,
751           create it instead of failing.
752       resource_id:
753         default: ''
754         type: string
755         description: >-
756           name to give to the new resource or the name or ID of an existing resource when the ``use_external_resource`` property is set to ``true`` (see the using existing resources section). Defaults to '' (empty string).
757       multivim_config:
758         type: onap.multivim.datatypes.Config
759         required: false
760
761     interfaces:
762       Standard:
763         create:
764           implementation: onap-multivim-plugin > neutron_plugin.port.create
765           inputs:
766             args:
767               default: {}
768               type: onap.multivim.datatypes.Port
769               required: false
770
771         delete: onap-multivim-plugin > neutron_plugin.port.delete
772
773       Validation:
774         type: onap.multivim.interfaces.validation
775         creation: onap-multivim-plugin > neutron_plugin.port.creation_validation
776
777     requirements:
778       - security_group:
779           capability: tosca.capabilities.Node
780           node: onap.multivim.nodes.SecurityGroup
781           relationship: onap.multivim.port_connected_to_security_group
782           occurrences: [ 0, UNBOUNDED ]
783       - floating_ip:
784           capability: tosca.capabilities.Node
785           node: onap.multivim.nodes.FloatingIP
786           relationship: onap.multivim.port_connected_to_floating_ip
787           occurrences: [ 0, UNBOUNDED ]
788       - subnet:
789           capability: tosca.capabilities.Node
790           node: onap.multivim.nodes.Subnet
791           relationship: onap.multivim.port_connected_to_subnet
792       - network:
793           capability: tosca.capabilities.Node
794           node: onap.multivim.nodes.Network
795           occurrences: [ 0, UNBOUNDED ]
796     capabilities:
797       entry_point:
798         type: tosca.capabilities.Node
799
800   onap.multivim.nodes.Network:
801     derived_from: tosca.nodes.Root
802     properties:
803       network:
804         type: onap.multivim.datatypes.Network
805         required: false
806         default: {}
807       use_external_resource:
808         type: boolean
809         default: false
810         description: >-
811           a boolean for setting whether to create the resource or use an existing one.
812           See the using existing resources section.
813       create_if_missing:
814         default: false
815         type: boolean
816         description: >-
817           If use_external_resource is ``true`` and the resource is missing,
818           create it instead of failing.
819       resource_id:
820         default: ''
821         type: string
822         description: >-
823           name to give to the new resource or the name or ID of an existing resource when the ``use_external_resource`` property is set to ``true`` (see the using existing resources section). Defaults to '' (empty string).
824       multivim_config:
825         type: onap.multivim.datatypes.Config
826         required: false
827     interfaces:
828       Standard:
829         create:
830           implementation: onap-multivim-plugin > neutron_plugin.network.create
831           inputs:
832             args:
833               default: {}
834               type: onap.multivim.datatypes.Network
835               required: false
836
837         delete: onap-multivim-plugin > neutron_plugin.network.delete
838
839       Validation:
840         type: onap.multivim.interfaces.validation
841         creation: onap-multivim-plugin > neutron_plugin.network.creation_validation
842
843     capabilities:
844       address_space:
845         type: tosca.capabilities.Node
846
847   onap.multivim.nodes.FloatingIP:
848     derived_from: tosca.nodes.Root
849     attributes:
850       floating_ip_address:
851         type: string
852     properties:
853       floatingip:
854         type: onap.multivim.datatypes.FloatingIP
855         required: false
856         default: {}
857       use_external_resource:
858         type: boolean
859         default: false
860         description: >-
861           a boolean for setting whether to create the resource or use an existing one.
862           See the using existing resources section.
863       create_if_missing:
864         default: false
865         type: boolean
866         description: >-
867           If use_external_resource is ``true`` and the resource is missing,
868           create it instead of failing.
869       resource_id:
870         description: IP address of the floating IP
871         default: ''
872         type: string
873         description: >-
874           name to give to the new resource or the name or ID of an existing resource when the ``use_external_resource`` property is set to ``true`` (see the using existing resources section). Defaults to '' (empty string).
875       multivim_config:
876         type: onap.multivim.datatypes.Config
877         required: false
878
879     interfaces:
880       Standard:
881         create:
882           implementation: onap-multivim-plugin > neutron_plugin.floatingip.create
883           inputs:
884             args:
885               default: {}
886               type: onap.multivim.datatypes.FloatingIP
887               required: false
888
889         delete: onap-multivim-plugin > neutron_plugin.floatingip.delete
890
891       Validation:
892         type: onap.multivim.interfaces.validation
893         creation: onap-multivim-plugin > neutron_plugin.floatingip.creation_validation
894
895     capabilities:
896       address:
897         type: tosca.capabilities.Node
898
899   onap.multivim.nodes.Volume:
900     derived_from: tosca.nodes.Root
901     properties:
902       volume:
903         default: {}
904         type: onap.multivim.datatypes.Volume
905         description: >-
906           key-value volume configuration as described in http://developer.multivim.org/api-ref-blockstorage-v1.html#volumes-v1. (**DEPRECATED - Use the `args` input in create operation instead**)
907       use_external_resource:
908         type: boolean
909         default: false
910         description: >-
911           a boolean for setting whether to create the resource or use an existing one.
912           See the using existing resources section.
913       create_if_missing:
914         default: false
915         type: boolean
916         description: >-
917           If use_external_resource is ``true`` and the resource is missing,
918           create it instead of failing.
919       resource_id:
920         default:
921         type: string
922         description: >-
923           name to give to the new resource or the name or ID of an existing resource when the ``use_external_resource`` property is set to ``true`` (see the using existing resources section). Defaults to '' (empty string).
924       device_name:
925         default: auto
926         type: string
927         description: >-
928           The device name this volume will be attached to.
929           Default value is *auto*,
930           which means multivim will auto-assign a device.
931           Note that if you do explicitly set a value,
932           this value may not be the actual device name assigned.
933           Sometimes the device requested will not be available and multivim will assign it to a different device,
934           this is why we recommend using *auto*.
935       multivim_config:
936         type: onap.multivim.datatypes.Config
937         required: false
938       boot:
939         type: boolean
940         default: false
941         description: >-
942           If a Server instance is connected to this Volume by a relationship,
943           this volume will be used as the boot volume for that Server.
944     interfaces:
945       Standard:
946         create:
947           implementation: onap-multivim-plugin > cinder_plugin.volume.create
948           inputs:
949             args:
950               default: {}
951               type: onap.multivim.datatypes.Volume
952               required: false
953
954             status_attempts:
955               description: >-
956                 Number of times to check for the creation's status before failing
957               type: integer
958               default: 20
959             status_timeout:
960               description: >-
961                 Interval (in seconds) between subsequent inquiries of the creation's
962                 status
963               type: integer
964               default: 15
965         delete: onap-multivim-plugin > cinder_plugin.volume.delete
966
967       Validation:
968         type: onap.multivim.interfaces.validation
969         creation: onap-multivim-plugin > cinder_plugin.volume.creation_validation
970
971     requirements:
972       - server:
973           capability: tosca.capabilities.Node
974           node: onap.multivim.nodes.Server
975           relationship: onap.multivim.volume_attached_to_server
976
977   onap.multivim.nodes.Image:
978     derived_from: tosca.nodes.Root
979     properties:
980       image:
981         description: >-
982           Required parameters are (container_format, disk_format). Accepted
983           types are available on
984           http://docs.multivim.org/developer/glance/formats.html
985           To create an image from the local file its path should be added
986           in data parameter.
987         default: {}
988         type: map
989         entry_schema: string
990       image_url:
991         default: ''
992         type: string
993         description: >-
994           The multivim resource URL for the image.
995       use_external_resource:
996         default: false
997         type: boolean
998         description: >-
999           a boolean for setting whether to create the resource or use an existing one.
1000           See the using existing resources section.
1001       create_if_missing:
1002         default: false
1003         type: boolean
1004         description: >-
1005           If use_external_resource is ``true`` and the resource is missing,
1006           create it instead of failing.
1007       resource_id:
1008         default: ''
1009         type: string
1010         description: >-
1011           name to give to the new resource or the name or ID of an existing resource when the ``use_external_resource`` property is set to ``true`` (see the using existing resources section). Defaults to '' (empty string).
1012       multivim_config:
1013         type: onap.multivim.datatypes.Config
1014         required: false
1015     interfaces:
1016       Standard:
1017         create: onap-multivim-plugin > glance_plugin.image.create
1018
1019         start:
1020           implementation: onap-multivim-plugin > glance_plugin.image.start
1021           inputs:
1022             start_retry_interval:
1023               default: 30
1024               type: integer
1025
1026         delete: onap-multivim-plugin > glance_plugin.image.delete
1027
1028       Validation:
1029         type: onap.multivim.interfaces.validation
1030         creation: onap-multivim-plugin > glance_plugin.image.creation_validation
1031
1032   onap.multivim.nodes.Project:
1033     derived_from: tosca.nodes.Root
1034     properties:
1035       project:
1036         default: {}
1037         type: onap.multivim.datatypes.Project
1038         description: >-
1039           key-value project configuration.
1040       users:
1041         default: []
1042         type: list
1043         entry_schema: string
1044         description: >-
1045           List of users assigned to this project in the following format:
1046             { name: string, roles: [string] }
1047       quota:
1048         default: {}
1049         type: map
1050         entry_schema: string
1051         description: |
1052           A dictionary mapping service names to quota definitions for a proejct
1053
1054           e.g::
1055
1056             quota:
1057               neutron: <quota>
1058               nova: <quota>
1059       use_external_resource:
1060         default: false
1061         type: boolean
1062         description: >-
1063           a boolean for setting whether to create the resource or use an existing one.
1064           See the using existing resources section.
1065       create_if_missing:
1066         default: false
1067         type: boolean
1068         description: >-
1069           If use_external_resource is ``true`` and the resource is missing,
1070           create it instead of failing.
1071       resource_id:
1072         default: ''
1073         type: string
1074         description: >-
1075           name to give to the new resource or the name or ID of an existing resource when the ``use_external_resource`` property is set to ``true`` (see the using existing resources section). Defaults to '' (empty string).
1076       multivim_config:
1077         type: onap.multivim.datatypes.Config
1078         required: false
1079     interfaces:
1080       Standard:
1081         create: multivim.keystone_plugin.project.create
1082         start: multivim.keystone_plugin.project.start
1083         delete: multivim.keystone_plugin.project.delete
1084       Validation:
1085         type: onap.multivim.interfaces.validation
1086         creation: multivim.keystone_plugin.project.creation_validation
1087
1088
1089 relationship_types:
1090
1091   onap.multivim.port_connected_to_security_group:
1092     derived_from: ConnectsTo
1093     interfaces:
1094       Configure:
1095         add_source: onap-multivim-plugin > neutron_plugin.port.connect_security_group
1096
1097   onap.multivim.subnet_connected_to_router:
1098     derived_from: ConnectsTo
1099     interfaces:
1100       Configure:
1101         add_target: onap-multivim-plugin > neutron_plugin.router.connect_subnet
1102         remove_target: onap-multivim-plugin > neutron_plugin.router.disconnect_subnet
1103
1104   onap.multivim.server_connected_to_floating_ip:
1105     derived_from: ConnectsTo
1106     interfaces:
1107       Configure:
1108         add_source:
1109           implementation: onap-multivim-plugin > nova_plugin.server.connect_floatingip
1110           inputs:
1111             fixed_ip:
1112               description: >
1113                 The fixed IP to be associated with the floating IP.
1114                 If omitted, Openstack will choose which port to associate.
1115               type: string
1116               default: ''
1117         remove_source: onap-multivim-plugin > nova_plugin.server.disconnect_floatingip
1118
1119   onap.multivim.port_connected_to_floating_ip:
1120     derived_from: ConnectsTo
1121     interfaces:
1122       Configure:
1123         add_source: onap-multivim-plugin > neutron_plugin.floatingip.connect_port
1124         remove_source: onap-multivim-plugin > neutron_plugin.floatingip.disconnect_port
1125
1126   onap.multivim.server_connected_to_security_group:
1127     derived_from: ConnectsTo
1128     interfaces:
1129       Configure:
1130         add_source: onap-multivim-plugin > nova_plugin.server.connect_security_group
1131         remove_source: onap-multivim-plugin > nova_plugin.server.disconnect_security_group
1132
1133   onap.multivim.server_connected_to_port:
1134     derived_from: ConnectsTo
1135     interfaces:
1136       Configure:
1137         remove_source: onap-multivim-plugin > neutron_plugin.port.detach
1138
1139   onap.multivim.server_connected_to_keypair:
1140     derived_from: ConnectsTo
1141
1142   onap.multivim.port_connected_to_subnet:
1143     derived_from: ConnectsTo
1144
1145   onap.multivim.volume_attached_to_server:
1146     derived_from: ConnectsTo
1147     interfaces:
1148       Configure:
1149         add_target:
1150           implementation: onap-multivim-plugin > nova_plugin.server.attach_volume
1151           inputs:
1152
1153             status_attempts:
1154               description: >
1155                 Number of times to check for the attachment's status before failing
1156               type: integer
1157               default: 10
1158             status_timeout:
1159               description: >
1160                 Interval (in seconds) between subsequent inquiries of the attachment's
1161                 status
1162               type: integer
1163               default: 2
1164         remove_target:
1165           implementation: onap-multivim-plugin > nova_plugin.server.detach_volume
1166           inputs:
1167
1168             status_attempts:
1169               description: >
1170                 Number of times to check for the detachment's status before failing
1171               type: integer
1172               default: 10
1173             status_timeout:
1174               description: >
1175                 Interval (in seconds) between subsequent inquiries of the detachment's
1176                 status
1177               type: integer
1178               default: 2