Update the upstream of tosco-parser and heat-translator to stable
[parser.git] / tosca2heat / tosca-parser / toscaparser / elements / TOSCA_definition_1_0.yaml
1 #    Licensed under the Apache License, Version 2.0 (the "License"); you may
2 #    not use this file except in compliance with the License. You may obtain
3 #    a copy of the License at
4 #
5 #         http://www.apache.org/licenses/LICENSE-2.0
6 #
7 #    Unless required by applicable law or agreed to in writing, software
8 #    distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
9 #    WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
10 #    License for the specific language governing permissions and limitations
11 #    under the License.
12
13 ##########################################################################
14 # The content of this file reflects TOSCA Simple Profile in YAML version
15 # 1.0.0. It describes the definition for TOSCA types including Node Type,
16 # Relationship Type, Capability Type and Interfaces.
17 ##########################################################################
18 tosca_definitions_version: tosca_simple_yaml_1_0
19
20 ##########################################################################
21 # Node Type.
22 # A Node Type is a reusable entity that defines the type of one or more
23 # Node Templates.
24 ##########################################################################
25 node_types:
26   tosca.nodes.Root:
27     description: >
28       The TOSCA root node all other TOSCA base node types derive from.
29     attributes:
30       tosca_id:
31         type: string
32       tosca_name:
33         type: string
34       state:
35         type: string
36     capabilities:
37       feature:
38         type: tosca.capabilities.Node
39     requirements:
40       - dependency:
41           capability: tosca.capabilities.Node
42           node: tosca.nodes.Root
43           relationship: tosca.relationships.DependsOn
44           occurrences: [ 0, UNBOUNDED ]
45     interfaces:
46       Standard:
47         type: tosca.interfaces.node.lifecycle.Standard
48
49   tosca.nodes.Compute:
50     derived_from: tosca.nodes.Root
51     attributes:
52       private_address:
53         type: string
54       public_address:
55         type: string
56       networks:
57         type: map
58         entry_schema:
59           type: tosca.datatypes.network.NetworkInfo
60       ports:
61         type: map
62         entry_schema:
63           type: tosca.datatypes.network.PortInfo
64     capabilities:
65         host:
66            type: tosca.capabilities.Container
67         binding:
68            type: tosca.capabilities.network.Bindable
69         os:
70            type: tosca.capabilities.OperatingSystem
71         scalable:
72            type: tosca.capabilities.Scalable
73     requirements:
74       - local_storage:
75           capability: tosca.capabilities.Attachment
76           node: tosca.nodes.BlockStorage
77           relationship: tosca.relationships.AttachesTo
78           occurrences: [0, UNBOUNDED]
79
80   tosca.nodes.SoftwareComponent:
81     derived_from: tosca.nodes.Root
82     properties:
83       # domain-specific software component version
84       component_version:
85         type: version
86         required: false
87         description: >
88           Software component version.
89       admin_credential:
90         type: tosca.datatypes.Credential
91         required: false
92     requirements:
93       - host:
94           capability: tosca.capabilities.Container
95           node: tosca.nodes.Compute
96           relationship: tosca.relationships.HostedOn
97
98   tosca.nodes.DBMS:
99     derived_from: tosca.nodes.SoftwareComponent
100     properties:
101       port:
102         required: false
103         type: integer
104         description: >
105           The port the DBMS service will listen to for data and requests.
106       root_password:
107         required: false
108         type: string
109         description: >
110           The root password for the DBMS service.
111     capabilities:
112       host:
113         type: tosca.capabilities.Container
114         valid_source_types: [tosca.nodes.Database]
115
116   tosca.nodes.Database:
117     derived_from: tosca.nodes.Root
118     properties:
119       user:
120         required: false
121         type: string
122         description: >
123           User account name for DB administration
124       port:
125         required: false
126         type: integer
127         description:  >
128           The port the database service will use to listen for incoming data and
129           requests.
130       name:
131         required: false
132         type: string
133         description: >
134           The name of the database.
135       password:
136         required: false
137         type: string
138         description: >
139           The password for the DB user account
140     requirements:
141       - host:
142           capability: tosca.capabilities.Container
143           node: tosca.nodes.DBMS
144           relationship: tosca.relationships.HostedOn
145     capabilities:
146       database_endpoint:
147         type: tosca.capabilities.Endpoint.Database
148
149   tosca.nodes.WebServer:
150     derived_from: tosca.nodes.SoftwareComponent
151     capabilities:
152       data_endpoint:
153         type: tosca.capabilities.Endpoint
154       admin_endpoint:
155         type: tosca.capabilities.Endpoint.Admin
156       host:
157         type: tosca.capabilities.Container
158         valid_source_types: [tosca.nodes.WebApplication]
159
160   tosca.nodes.WebApplication:
161     derived_from: tosca.nodes.Root
162     properties:
163       context_root:
164         type: string
165         required: false
166     requirements:
167       - host:
168           capability: tosca.capabilities.Container
169           node: tosca.nodes.WebServer
170           relationship: tosca.relationships.HostedOn
171     capabilities:
172       app_endpoint:
173         type: tosca.capabilities.Endpoint
174
175   tosca.nodes.BlockStorage:
176     derived_from: tosca.nodes.Root
177     properties:
178       size:
179         type: scalar-unit.size
180         constraints:
181           - greater_or_equal: 1 MB
182       volume_id:
183         type: string
184         required: false
185       snapshot_id:
186         type: string
187         required: false
188     attributes:
189       volume_id:
190         type: string
191     capabilities:
192       attachment:
193         type: tosca.capabilities.Attachment
194
195   tosca.nodes.network.Network:
196     derived_from: tosca.nodes.Root
197     description: >
198       The TOSCA Network node represents a simple, logical network service.
199     properties:
200       ip_version:
201         type: integer
202         required: false
203         default: 4
204         constraints:
205           - valid_values: [ 4, 6 ]
206         description: >
207           The IP version of the requested network. Valid values are 4 for ipv4
208           or 6 for ipv6.
209       cidr:
210         type: string
211         required: false
212         description: >
213           The cidr block of the requested network.
214       start_ip:
215         type: string
216         required: false
217         description: >
218            The IP address to be used as the start of a pool of addresses within
219            the full IP range derived from the cidr block.
220       end_ip:
221         type: string
222         required: false
223         description: >
224             The IP address to be used as the end of a pool of addresses within
225             the full IP range derived from the cidr block.
226       gateway_ip:
227         type: string
228         required: false
229         description: >
230            The gateway IP address.
231       network_name:
232         type: string
233         required: false
234         description: >
235            An identifier that represents an existing Network instance in the
236            underlying cloud infrastructure or can be used as the name of the
237            newly created network. If network_name is provided and no other
238            properties are provided (with exception of network_id), then an
239            existing network instance will be used. If network_name is provided
240            alongside with more properties then a new network with this name will
241            be created.
242       network_id:
243         type: string
244         required: false
245         description: >
246            An identifier that represents an existing Network instance in the
247            underlying cloud infrastructure. This property is mutually exclusive
248            with all other properties except network_name. This can be used alone
249            or together with network_name to identify an existing network.
250       segmentation_id:
251         type: string
252         required: false
253         description: >
254            A segmentation identifier in the underlying cloud infrastructure.
255            E.g. VLAN ID, GRE tunnel ID, etc..
256       network_type:
257         type: string
258         required: false
259         description: >
260            It specifies the nature of the physical network in the underlying
261            cloud infrastructure. Examples are flat, vlan, gre or vxlan.
262            For flat and vlan types, physical_network should be provided too.
263       physical_network:
264         type: string
265         required: false
266         description: >
267            It identifies the physical network on top of which the network is
268            implemented, e.g. physnet1. This property is required if network_type
269            is flat or vlan.
270       dhcp_enabled:
271         type: boolean
272         required: false
273         default: true
274         description: >
275           Indicates should DHCP service be enabled on the network or not.
276     capabilities:
277       link:
278         type: tosca.capabilities.network.Linkable
279
280   tosca.nodes.network.Port:
281     derived_from: tosca.nodes.Root
282     description: >
283       The TOSCA Port node represents a logical entity that associates between
284       Compute and Network normative types. The Port node type effectively
285       represents a single virtual NIC on the Compute node instance.
286     properties:
287       ip_address:
288         type: string
289         required: false
290         description: >
291           Allow the user to set a static IP.
292       order:
293         type: integer
294         required: false
295         default: 0
296         constraints:
297           - greater_or_equal: 0
298         description: >
299           The order of the NIC on the compute instance (e.g. eth2).
300       is_default:
301         type: boolean
302         required: false
303         default: false
304         description: >
305           If is_default=true this port will be used for the default gateway
306           route. Only one port that is associated to single compute node can
307           set as is_default=true.
308       ip_range_start:
309         type: string
310         required: false
311         description: >
312           Defines the starting IP of a range to be allocated for the compute
313           instances that are associated with this Port.
314       ip_range_end:
315         type: string
316         required: false
317         description: >
318           Defines the ending IP of a range to be allocated for the compute
319           instances that are associated with this Port.
320     attributes:
321       ip_address:
322         type: string
323     requirements:
324       - binding:
325           description: >
326             Binding requirement expresses the relationship between Port and
327             Compute nodes. Effectively it indicates that the Port will be
328             attached to specific Compute node instance
329           capability: tosca.capabilities.network.Bindable
330           relationship: tosca.relationships.network.BindsTo
331           node: tosca.nodes.Compute
332       - link:
333           description: >
334             Link requirement expresses the relationship between Port and Network
335             nodes. It indicates which network this port will connect to.
336           capability: tosca.capabilities.network.Linkable
337           relationship: tosca.relationships.network.LinksTo
338           node: tosca.nodes.network.Network
339
340   tosca.nodes.ObjectStorage:
341     derived_from: tosca.nodes.Root
342     description: >
343       The TOSCA ObjectStorage node represents storage that provides the ability
344       to store data as objects (or BLOBs of data) without consideration for the
345       underlying filesystem or devices
346     properties:
347       name:
348         type: string
349         required: true
350         description: >
351           The logical name of the object store (or container).
352       size:
353         type: scalar-unit.size
354         required: false
355         constraints:
356           - greater_or_equal: 0 GB
357         description: >
358           The requested initial storage size.
359       maxsize:
360         type: scalar-unit.size
361         required: false
362         constraints:
363           - greater_or_equal: 0 GB
364         description: >
365           The requested maximum storage size.
366     capabilities:
367       storage_endpoint:
368         type: tosca.capabilities.Endpoint
369
370   tosca.nodes.LoadBalancer:
371     derived_from: tosca.nodes.Root
372     properties:
373       algorithm:
374         type: string
375         required: false
376         status: experimental
377     capabilities:
378       client:
379         type: tosca.capabilities.Endpoint.Public
380         occurrences: [0, UNBOUNDED]
381         description: the Floating (IP) client’s on the public network can connect to
382     requirements:
383       - application:
384           capability: tosca.capabilities.Endpoint
385           relationship: tosca.relationships.RoutesTo
386           occurrences: [0, UNBOUNDED]
387           description: Connection to one or more load balanced applications
388
389   tosca.nodes.Container.Application:
390     derived_from: tosca.nodes.Root
391     requirements:
392       - host:
393           capability: tosca.capabilities.Container
394           node: tosca.nodes.Container.Runtime
395           relationship: tosca.relationships.HostedOn
396
397   tosca.nodes.Container.Runtime:
398     derived_from: tosca.nodes.SoftwareComponent
399     capabilities:
400       host:
401         type: tosca.capabilities.Container
402       scalable:
403         type: tosca.capabilities.Scalable
404
405   tosca.nodes.Container.Application.Docker:
406     derived_from: tosca.nodes.Container.Application
407     requirements:
408       - host:
409           capability: tosca.capabilities.Container.Docker
410
411 ##########################################################################
412 # Relationship Type.
413 # A Relationship Type is a reusable entity that defines the type of one
414 # or more relationships between Node Types or Node Templates.
415 ##########################################################################
416 relationship_types:
417   tosca.relationships.Root:
418     description: >
419       The TOSCA root Relationship Type all other TOSCA base Relationship Types
420       derive from.
421     attributes:
422       tosca_id:
423         type: string
424       tosca_name:
425         type: string
426     interfaces:
427       Configure:
428         type: tosca.interfaces.relationship.Configure
429
430   tosca.relationships.DependsOn:
431     derived_from: tosca.relationships.Root
432
433   tosca.relationships.HostedOn:
434     derived_from: tosca.relationships.Root
435     valid_target_types: [ tosca.capabilities.Container ]
436
437   tosca.relationships.ConnectsTo:
438     derived_from: tosca.relationships.Root
439     valid_target_types: [ tosca.capabilities.Endpoint ]
440     credential:
441       type: tosca.datatypes.Credential
442       required: false
443
444   tosca.relationships.AttachesTo:
445     derived_from: tosca.relationships.Root
446     valid_target_types: [ tosca.capabilities.Attachment ]
447     properties:
448       location:
449         required: true
450         type: string
451         constraints:
452           - min_length: 1
453       device:
454         required: false
455         type: string
456
457   tosca.relationships.RoutesTo:
458     derived_from: tosca.relationships.ConnectsTo
459     valid_target_types: [ tosca.capabilities.Endpoint ]
460
461   tosca.relationships.network.LinksTo:
462     derived_from: tosca.relationships.DependsOn
463     valid_target_types: [ tosca.capabilities.network.Linkable ]
464
465   tosca.relationships.network.BindsTo:
466     derived_from: tosca.relationships.DependsOn
467     valid_target_types: [ tosca.capabilities.network.Bindable ]
468
469 ##########################################################################
470 # Capability Type.
471 # A Capability Type is a reusable entity that describes a kind of
472 # capability that a Node Type can declare to expose.
473 ##########################################################################
474 capability_types:
475   tosca.capabilities.Root:
476     description: >
477       The TOSCA root Capability Type all other TOSCA base Capability Types
478       derive from.
479
480   tosca.capabilities.Node:
481     derived_from: tosca.capabilities.Root
482
483   tosca.capabilities.Container:
484     derived_from: tosca.capabilities.Root
485     properties:
486       num_cpus:
487         required: false
488         type: integer
489         constraints:
490           - greater_or_equal: 1
491       cpu_frequency:
492         required: false
493         type: scalar-unit.frequency
494         constraints:
495           - greater_or_equal: 0.1 GHz
496       disk_size:
497         required: false
498         type: scalar-unit.size
499         constraints:
500           - greater_or_equal: 0 MB
501       mem_size:
502         required: false
503         type: scalar-unit.size
504         constraints:
505           - greater_or_equal: 0 MB
506
507   tosca.capabilities.Endpoint:
508     derived_from: tosca.capabilities.Root
509     properties:
510       protocol:
511         type: string
512         required: true
513         default: tcp
514       port:
515         type: tosca.datatypes.network.PortDef
516         required: false
517       secure:
518         type: boolean
519         required: false
520         default: false
521       url_path:
522         type: string
523         required: false
524       port_name:
525         type: string
526         required: false
527       network_name:
528         type: string
529         required: false
530       initiator:
531         type: string
532         required: false
533         default: source
534         constraints:
535           - valid_values: [source, target, peer]
536       ports:
537         type: map
538         required: false
539         constraints:
540           - min_length: 1
541         entry_schema:
542           type: tosca.datatypes.network.PortSpec
543     attributes:
544       ip_address:
545         type: string
546
547   tosca.capabilities.Endpoint.Admin:
548     derived_from: tosca.capabilities.Endpoint
549     properties:
550       secure:
551         type: boolean
552         default: true
553         constraints:
554           - equal: true
555
556   tosca.capabilities.Endpoint.Public:
557     derived_from: tosca.capabilities.Endpoint
558     properties:
559       # Change the default network_name to use the first public network found
560       network_name:
561         type: string
562         default: PUBLIC
563         constraints:
564           - equal: PUBLIC
565       floating:
566         description: >
567           Indicates that the public address should be allocated from a pool of
568           floating IPs that are associated with the network.
569         type: boolean
570         default: false
571         status: experimental
572       dns_name:
573         description: The optional name to register with DNS
574         type: string
575         required: false
576         status: experimental
577
578   tosca.capabilities.Scalable:
579     derived_from: tosca.capabilities.Root
580     properties:
581       min_instances:
582         type: integer
583         required: true
584         default: 1
585         description: >
586           This property is used to indicate the minimum number of instances
587           that should be created for the associated TOSCA Node Template by
588           a TOSCA orchestrator.
589       max_instances:
590         type: integer
591         required: true
592         default: 1
593         description: >
594           This property is used to indicate the maximum number of instances
595           that should be created for the associated TOSCA Node Template by
596           a TOSCA orchestrator.
597       default_instances:
598         type: integer
599         required: false
600         description: >
601           An optional property that indicates the requested default number
602           of instances that should be the starting number of instances a
603           TOSCA orchestrator should attempt to allocate.
604           The value for this property MUST be in the range between the values
605           set for min_instances and max_instances properties.
606
607   tosca.capabilities.Endpoint.Database:
608     derived_from: tosca.capabilities.Endpoint
609
610   tosca.capabilities.Attachment:
611     derived_from: tosca.capabilities.Root
612
613   tosca.capabilities.network.Linkable:
614     derived_from: tosca.capabilities.Root
615     description: >
616       A node type that includes the Linkable capability indicates that it can
617       be pointed by tosca.relationships.network.LinksTo relationship type, which
618       represents an association relationship between Port and Network node types.
619
620   tosca.capabilities.network.Bindable:
621     derived_from: tosca.capabilities.Root
622     description: >
623       A node type that includes the Bindable capability indicates that it can
624       be pointed by tosca.relationships.network.BindsTo relationship type, which
625       represents a network association relationship between Port and Compute node
626       types.
627
628   tosca.capabilities.OperatingSystem:
629     derived_from: tosca.capabilities.Root
630     properties:
631       architecture:
632         required: false
633         type: string
634         description: >
635           The host Operating System (OS) architecture.
636       type:
637         required: false
638         type: string
639         description: >
640           The host Operating System (OS) type.
641       distribution:
642         required: false
643         type: string
644         description: >
645           The host Operating System (OS) distribution. Examples of valid values
646           for an “type” of “Linux” would include:
647           debian, fedora, rhel and ubuntu.
648       version:
649         required: false
650         type: version
651         description: >
652           The host Operating System version.
653
654   tosca.capabilities.Container.Docker:
655     derived_from: tosca.capabilities.Container
656     properties:
657       version:
658         type: list
659         required: false
660         entry_schema:
661           type: version
662         description: >
663           The Docker version capability.
664       publish_all:
665         type: boolean
666         default: false
667         required: false
668         description: >
669           Indicates that all ports (ranges) listed in the dockerfile
670           using the EXPOSE keyword be published.
671       publish_ports:
672         type: list
673         entry_schema:
674           type: PortSpec
675         required: false
676         description: >
677           List of ports mappings from source (Docker container)
678           to target (host) ports to publish.
679       expose_ports:
680         type: list
681         entry_schema:
682           type: PortSpec
683         required: false
684         description: >
685           List of ports mappings from source (Docker container) to expose
686           to other Docker containers (not accessible outside host).
687       volumes:
688         type: list
689         entry_schema:
690           type: string
691         required: false
692         description: >
693           The dockerfile VOLUME command which is used to enable access
694           from the Docker container to a directory on the host machine.
695       host_id:
696         type: string
697         required: false
698         description: >
699             The optional identifier of an existing host resource
700             that should be used to run this container on.
701       volume_id:
702         type: string
703         required: false
704         description: >
705           The optional identifier of an existing storage volume (resource)
706           that should be used to create the container's mount point(s) on.
707
708 ##########################################################################
709  # Interfaces Type.
710  # The Interfaces element describes a list of one or more interface
711  # definitions for a modelable entity (e.g., a Node or Relationship Type)
712  # as defined within the TOSCA Simple Profile specification.
713 ##########################################################################
714 interface_types:
715   tosca.interfaces.node.lifecycle.Standard:
716     create:
717       description: Standard lifecycle create operation.
718     configure:
719       description: Standard lifecycle configure operation.
720     start:
721       description: Standard lifecycle start operation.
722     stop:
723       description: Standard lifecycle stop operation.
724     delete:
725       description: Standard lifecycle delete operation.
726
727   tosca.interfaces.relationship.Configure:
728     pre_configure_source:
729       description: Operation to pre-configure the source endpoint.
730     pre_configure_target:
731       description: Operation to pre-configure the target endpoint.
732     post_configure_source:
733       description: Operation to post-configure the source endpoint.
734     post_configure_target:
735       description: Operation to post-configure the target endpoint.
736     add_target:
737       description: Operation to add a target node.
738     remove_target:
739       description: Operation to remove a target node.
740     add_source: >
741       description: Operation to notify the target node of a source node which
742       is now available via a relationship.
743       description:
744     target_changed: >
745       description: Operation to notify source some property or attribute of the
746       target changed
747
748 ##########################################################################
749  # Data Type.
750  # A Datatype is a complex data type declaration which contains other
751  # complex or simple data types.
752 ##########################################################################
753 data_types:
754   tosca.datatypes.Root:
755     description: >
756       The TOSCA root Data Type all other TOSCA base Data Types derive from
757
758   tosca.datatypes.network.NetworkInfo:
759     derived_from: tosca.datatypes.Root
760     properties:
761       network_name:
762         type: string
763       network_id:
764         type: string
765       addresses:
766         type: list
767         entry_schema:
768           type: string
769
770   tosca.datatypes.network.PortInfo:
771     derived_from: tosca.datatypes.Root
772     properties:
773       port_name:
774         type: string
775       port_id:
776         type: string
777       network_id:
778         type: string
779       mac_address:
780         type: string
781       addresses:
782         type: list
783         entry_schema:
784           type: string
785
786   tosca.datatypes.network.PortDef:
787     derived_from: tosca.datatypes.Root
788     type: integer
789     constraints:
790       - in_range: [ 1, 65535 ]
791
792   tosca.datatypes.network.PortSpec:
793     derived_from: tosca.datatypes.Root
794     properties:
795       protocol:
796         type: string
797         required: true
798         default: tcp
799         constraints:
800           - valid_values: [ udp, tcp, igmp ]
801       target:
802         type: PortDef
803         required: false
804       target_range:
805         type: range
806         required: false
807         constraints:
808           - in_range: [ 1, 65535 ]
809       source:
810         type: PortDef
811         required: false
812       source_range:
813         type: range
814         required: false
815         constraints:
816           - in_range: [ 1, 65535 ]
817
818   tosca.datatypes.Credential:
819     derived_from: tosca.datatypes.Root
820     properties:
821       protocol:
822         type: string
823         required: false
824       token_type:
825         type: string
826         default: password
827         required: true
828       token:
829         type: string
830         required: true
831       keys:
832         type: map
833         entry_schema:
834           type: string
835         required: false
836       user:
837         type: string
838         required: false
839
840 ##########################################################################
841  # Artifact Type.
842  # An Artifact Type is a reusable entity that defines the type of one or more
843  # files which Node Types or Node Templates can have dependent relationships
844  # and used during operations such as during installation or deployment.
845 ##########################################################################
846 artifact_types:
847   tosca.artifacts.Root:
848     description: >
849       The TOSCA Artifact Type all other TOSCA Artifact Types derive from
850     properties:
851       version: version
852
853   tosca.artifacts.File:
854     derived_from: tosca.artifacts.Root
855
856   tosca.artifacts.Deployment:
857     derived_from: tosca.artifacts.Root
858     description: TOSCA base type for deployment artifacts
859
860   tosca.artifacts.Deployment.Image:
861     derived_from: tosca.artifacts.Deployment
862
863   tosca.artifacts.Deployment.Image.VM:
864     derived_from: tosca.artifacts.Deployment.Image
865
866   tosca.artifacts.Implementation:
867     derived_from: tosca.artifacts.Root
868     description: TOSCA base type for implementation artifacts
869
870   tosca.artifacts.Implementation.Bash:
871     derived_from: tosca.artifacts.Implementation
872     description: Script artifact for the Unix Bash shell
873     mime_type: application/x-sh
874     file_ext: [ sh ]
875
876   tosca.artifacts.Implementation.Python:
877     derived_from: tosca.artifacts.Implementation
878     description: Artifact for the interpreted Python language
879     mime_type: application/x-python
880     file_ext: [ py ]
881
882   tosca.artifacts.Deployment.Image.Container.Docker:
883     derived_from: tosca.artifacts.Deployment.Image
884     description: Docker container image
885
886   tosca.artifacts.Deployment.Image.VM.ISO:
887     derived_from: tosca.artifacts.Deployment.Image
888     description: Virtual Machine (VM) image in ISO disk format
889     mime_type: application/octet-stream
890     file_ext: [ iso ]
891
892   tosca.artifacts.Deployment.Image.VM.QCOW2:
893     derived_from: tosca.artifacts.Deployment.Image
894     description: Virtual Machine (VM) image in QCOW v2 standard disk format
895     mime_type: application/octet-stream
896     file_ext: [ qcow2 ]
897
898 ##########################################################################
899  # Policy Type.
900  # TOSCA Policy Types represent logical grouping of TOSCA nodes that have
901  # an implied relationship and need to be orchestrated or managed together
902  # to achieve some result.
903 ##########################################################################
904 policy_types:
905   tosca.policies.Root:
906     description: The TOSCA Policy Type all other TOSCA Policy Types derive from.
907
908   tosca.policies.Placement:
909     derived_from: tosca.policies.Root
910     description: The TOSCA Policy Type definition that is used to govern
911       placement of TOSCA nodes or groups of nodes.
912
913   tosca.policies.Placement.Colocate:
914     derived_from: tosca.policies.Placement
915     description: The TOSCA Policy Type definition that is used to govern
916       colocate placement of TOSCA nodes or groups of nodes.
917
918   tosca.policies.Placement.Antilocate:
919     derived_from: tosca.policies.Placement
920     description: The TOSCA Policy Type definition that is used to govern
921       anti-locate placement of TOSCA nodes or groups of nodes.
922
923   tosca.policies.Scaling:
924     derived_from: tosca.policies.Root
925     description: The TOSCA Policy Type definition that is used to govern
926       scaling of TOSCA nodes or groups of nodes.
927
928   tosca.policies.Update:
929     derived_from: tosca.policies.Root
930     description: The TOSCA Policy Type definition that is used to govern
931       update of TOSCA nodes or groups of nodes.
932
933   tosca.policies.Performance:
934     derived_from: tosca.policies.Root
935     description: The TOSCA Policy Type definition that is used to declare
936       performance requirements for TOSCA nodes or groups of nodes.
937
938 ##########################################################################
939  # Group Type.
940  # Group Type represents logical grouping of TOSCA nodes that have an
941  # implied membership relationship and may need to be orchestrated or
942  # managed together to achieve some result.
943 ##########################################################################
944 group_types:
945   tosca.groups.Root:
946     description: The TOSCA Group Type all other TOSCA Group Types derive from
947     interfaces:
948       Standard:
949         type: tosca.interfaces.node.lifecycle.Standard