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