Fix StatefulEntityType when entitytype is not define
[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.network.FloatingIP:
343     derived_from: tosca.nodes.Root
344     description: >
345       The TOSCA FloatingIP node represents a floating IP that can associate to a Port.
346     properties:
347       floating_network:
348         type: string
349         required: true
350       floating_ip_address:
351         type: string
352         required: false
353       port_id:
354         type: string
355         required: false
356     requirements:
357       - link:
358           capability: tosca.capabilities.network.Linkable
359           relationship: tosca.relationships.network.LinksTo
360           node: tosca.nodes.network.Port
361
362   tosca.nodes.ObjectStorage:
363     derived_from: tosca.nodes.Root
364     description: >
365       The TOSCA ObjectStorage node represents storage that provides the ability
366       to store data as objects (or BLOBs of data) without consideration for the
367       underlying filesystem or devices
368     properties:
369       name:
370         type: string
371         required: true
372         description: >
373           The logical name of the object store (or container).
374       size:
375         type: scalar-unit.size
376         required: false
377         constraints:
378           - greater_or_equal: 0 GB
379         description: >
380           The requested initial storage size.
381       maxsize:
382         type: scalar-unit.size
383         required: false
384         constraints:
385           - greater_or_equal: 0 GB
386         description: >
387           The requested maximum storage size.
388     capabilities:
389       storage_endpoint:
390         type: tosca.capabilities.Endpoint
391
392   tosca.nodes.LoadBalancer:
393     derived_from: tosca.nodes.Root
394     properties:
395       algorithm:
396         type: string
397         required: false
398         status: experimental
399     capabilities:
400       client:
401         type: tosca.capabilities.Endpoint.Public
402         occurrences: [0, UNBOUNDED]
403         description: the Floating (IP) client’s on the public network can connect to
404     requirements:
405       - application:
406           capability: tosca.capabilities.Endpoint
407           relationship: tosca.relationships.RoutesTo
408           occurrences: [0, UNBOUNDED]
409           description: Connection to one or more load balanced applications
410
411   tosca.nodes.Container.Application:
412     derived_from: tosca.nodes.Root
413     requirements:
414       - host:
415           capability: tosca.capabilities.Container
416           node: tosca.nodes.Container.Runtime
417           relationship: tosca.relationships.HostedOn
418
419   tosca.nodes.Container.Runtime:
420     derived_from: tosca.nodes.SoftwareComponent
421     capabilities:
422       host:
423         type: tosca.capabilities.Container
424       scalable:
425         type: tosca.capabilities.Scalable
426
427   tosca.nodes.Container.Application.Docker:
428     derived_from: tosca.nodes.Container.Application
429     requirements:
430       - host:
431           capability: tosca.capabilities.Container.Docker
432
433 ##########################################################################
434 # Relationship Type.
435 # A Relationship Type is a reusable entity that defines the type of one
436 # or more relationships between Node Types or Node Templates.
437 ##########################################################################
438 relationship_types:
439   tosca.relationships.Root:
440     description: >
441       The TOSCA root Relationship Type all other TOSCA base Relationship Types
442       derive from.
443     attributes:
444       tosca_id:
445         type: string
446       tosca_name:
447         type: string
448     interfaces:
449       Configure:
450         type: tosca.interfaces.relationship.Configure
451
452   tosca.relationships.DependsOn:
453     derived_from: tosca.relationships.Root
454
455   tosca.relationships.HostedOn:
456     derived_from: tosca.relationships.Root
457     valid_target_types: [ tosca.capabilities.Container ]
458
459   tosca.relationships.ConnectsTo:
460     derived_from: tosca.relationships.Root
461     valid_target_types: [ tosca.capabilities.Endpoint ]
462     credential:
463       type: tosca.datatypes.Credential
464       required: false
465
466   tosca.relationships.AttachesTo:
467     derived_from: tosca.relationships.Root
468     valid_target_types: [ tosca.capabilities.Attachment ]
469     properties:
470       location:
471         required: true
472         type: string
473         constraints:
474           - min_length: 1
475       device:
476         required: false
477         type: string
478
479   tosca.relationships.RoutesTo:
480     derived_from: tosca.relationships.ConnectsTo
481     valid_target_types: [ tosca.capabilities.Endpoint ]
482
483   tosca.relationships.network.LinksTo:
484     derived_from: tosca.relationships.DependsOn
485     valid_target_types: [ tosca.capabilities.network.Linkable ]
486
487   tosca.relationships.network.BindsTo:
488     derived_from: tosca.relationships.DependsOn
489     valid_target_types: [ tosca.capabilities.network.Bindable ]
490
491 ##########################################################################
492 # Capability Type.
493 # A Capability Type is a reusable entity that describes a kind of
494 # capability that a Node Type can declare to expose.
495 ##########################################################################
496 capability_types:
497   tosca.capabilities.Root:
498     description: >
499       The TOSCA root Capability Type all other TOSCA base Capability Types
500       derive from.
501
502   tosca.capabilities.Node:
503     derived_from: tosca.capabilities.Root
504
505   tosca.capabilities.Container:
506     derived_from: tosca.capabilities.Root
507     properties:
508       num_cpus:
509         required: false
510         type: integer
511         constraints:
512           - greater_or_equal: 1
513       cpu_frequency:
514         required: false
515         type: scalar-unit.frequency
516         constraints:
517           - greater_or_equal: 0.1 GHz
518       disk_size:
519         required: false
520         type: scalar-unit.size
521         constraints:
522           - greater_or_equal: 0 MB
523       mem_size:
524         required: false
525         type: scalar-unit.size
526         constraints:
527           - greater_or_equal: 0 MB
528
529   tosca.capabilities.Endpoint:
530     derived_from: tosca.capabilities.Root
531     properties:
532       protocol:
533         type: string
534         required: true
535         default: tcp
536       port:
537         type: tosca.datatypes.network.PortDef
538         required: false
539       secure:
540         type: boolean
541         required: false
542         default: false
543       url_path:
544         type: string
545         required: false
546       port_name:
547         type: string
548         required: false
549       network_name:
550         type: string
551         required: false
552         default: PRIVATE
553       initiator:
554         type: string
555         required: false
556         default: source
557         constraints:
558           - valid_values: [source, target, peer]
559       ports:
560         type: map
561         required: false
562         constraints:
563           - min_length: 1
564         entry_schema:
565           type: tosca.datatypes.network.PortSpec
566     attributes:
567       ip_address:
568         type: string
569
570   tosca.capabilities.Endpoint.Admin:
571     derived_from: tosca.capabilities.Endpoint
572     properties:
573       secure:
574         type: boolean
575         default: true
576         constraints:
577           - equal: true
578
579   tosca.capabilities.Endpoint.Public:
580     derived_from: tosca.capabilities.Endpoint
581     properties:
582       # Change the default network_name to use the first public network found
583       network_name:
584         type: string
585         default: PUBLIC
586         constraints:
587           - equal: PUBLIC
588       floating:
589         description: >
590           Indicates that the public address should be allocated from a pool of
591           floating IPs that are associated with the network.
592         type: boolean
593         default: false
594         status: experimental
595       dns_name:
596         description: The optional name to register with DNS
597         type: string
598         required: false
599         status: experimental
600
601   tosca.capabilities.Scalable:
602     derived_from: tosca.capabilities.Root
603     properties:
604       min_instances:
605         type: integer
606         required: true
607         default: 1
608         description: >
609           This property is used to indicate the minimum number of instances
610           that should be created for the associated TOSCA Node Template by
611           a TOSCA orchestrator.
612       max_instances:
613         type: integer
614         required: true
615         default: 1
616         description: >
617           This property is used to indicate the maximum number of instances
618           that should be created for the associated TOSCA Node Template by
619           a TOSCA orchestrator.
620       default_instances:
621         type: integer
622         required: false
623         description: >
624           An optional property that indicates the requested default number
625           of instances that should be the starting number of instances a
626           TOSCA orchestrator should attempt to allocate.
627           The value for this property MUST be in the range between the values
628           set for min_instances and max_instances properties.
629
630   tosca.capabilities.Endpoint.Database:
631     derived_from: tosca.capabilities.Endpoint
632
633   tosca.capabilities.Attachment:
634     derived_from: tosca.capabilities.Root
635
636   tosca.capabilities.network.Linkable:
637     derived_from: tosca.capabilities.Root
638     description: >
639       A node type that includes the Linkable capability indicates that it can
640       be pointed by tosca.relationships.network.LinksTo relationship type, which
641       represents an association relationship between Port and Network node types.
642
643   tosca.capabilities.network.Bindable:
644     derived_from: tosca.capabilities.Root
645     description: >
646       A node type that includes the Bindable capability indicates that it can
647       be pointed by tosca.relationships.network.BindsTo relationship type, which
648       represents a network association relationship between Port and Compute node
649       types.
650
651   tosca.capabilities.OperatingSystem:
652     derived_from: tosca.capabilities.Root
653     properties:
654       architecture:
655         required: false
656         type: string
657         description: >
658           The host Operating System (OS) architecture.
659       type:
660         required: false
661         type: string
662         description: >
663           The host Operating System (OS) type.
664       distribution:
665         required: false
666         type: string
667         description: >
668           The host Operating System (OS) distribution. Examples of valid values
669           for an “type” of “Linux” would include:
670           debian, fedora, rhel and ubuntu.
671       version:
672         required: false
673         type: version
674         description: >
675           The host Operating System version.
676
677   tosca.capabilities.Container.Docker:
678     derived_from: tosca.capabilities.Container
679     properties:
680       version:
681         type: list
682         required: false
683         entry_schema:
684           type: version
685         description: >
686           The Docker version capability.
687       publish_all:
688         type: boolean
689         default: false
690         required: false
691         description: >
692           Indicates that all ports (ranges) listed in the dockerfile
693           using the EXPOSE keyword be published.
694       publish_ports:
695         type: list
696         entry_schema:
697           type: tosca.datatypes.network.PortSpec
698         required: false
699         description: >
700           List of ports mappings from source (Docker container)
701           to target (host) ports to publish.
702       expose_ports:
703         type: list
704         entry_schema:
705           type: tosca.datatypes.network.PortSpec
706         required: false
707         description: >
708           List of ports mappings from source (Docker container) to expose
709           to other Docker containers (not accessible outside host).
710       volumes:
711         type: list
712         entry_schema:
713           type: string
714         required: false
715         description: >
716           The dockerfile VOLUME command which is used to enable access
717           from the Docker container to a directory on the host machine.
718       host_id:
719         type: string
720         required: false
721         description: >
722             The optional identifier of an existing host resource
723             that should be used to run this container on.
724       volume_id:
725         type: string
726         required: false
727         description: >
728           The optional identifier of an existing storage volume (resource)
729           that should be used to create the container's mount point(s) on.
730
731 ##########################################################################
732  # Interfaces Type.
733  # The Interfaces element describes a list of one or more interface
734  # definitions for a modelable entity (e.g., a Node or Relationship Type)
735  # as defined within the TOSCA Simple Profile specification.
736 ##########################################################################
737 interface_types:
738   tosca.interfaces.node.lifecycle.Standard:
739     create:
740       description: Standard lifecycle create operation.
741     configure:
742       description: Standard lifecycle configure operation.
743     start:
744       description: Standard lifecycle start operation.
745     stop:
746       description: Standard lifecycle stop operation.
747     delete:
748       description: Standard lifecycle delete operation.
749
750   tosca.interfaces.relationship.Configure:
751     pre_configure_source:
752       description: Operation to pre-configure the source endpoint.
753     pre_configure_target:
754       description: Operation to pre-configure the target endpoint.
755     post_configure_source:
756       description: Operation to post-configure the source endpoint.
757     post_configure_target:
758       description: Operation to post-configure the target endpoint.
759     add_target:
760       description: Operation to add a target node.
761     remove_target:
762       description: Operation to remove a target node.
763     add_source: >
764       description: Operation to notify the target node of a source node which
765       is now available via a relationship.
766       description:
767     target_changed: >
768       description: Operation to notify source some property or attribute of the
769       target changed
770
771 ##########################################################################
772  # Data Type.
773  # A Datatype is a complex data type declaration which contains other
774  # complex or simple data types.
775 ##########################################################################
776 data_types:
777   tosca.datatypes.Root:
778     description: >
779       The TOSCA root Data Type all other TOSCA base Data Types derive from
780
781   tosca.datatypes.network.NetworkInfo:
782     derived_from: tosca.datatypes.Root
783     properties:
784       network_name:
785         type: string
786       network_id:
787         type: string
788       addresses:
789         type: list
790         entry_schema:
791           type: string
792
793   tosca.datatypes.network.PortInfo:
794     derived_from: tosca.datatypes.Root
795     properties:
796       port_name:
797         type: string
798       port_id:
799         type: string
800       network_id:
801         type: string
802       mac_address:
803         type: string
804       addresses:
805         type: list
806         entry_schema:
807           type: string
808
809   tosca.datatypes.network.PortDef:
810     derived_from: tosca.datatypes.Root
811     type: integer
812     constraints:
813       - in_range: [ 1, 65535 ]
814
815   tosca.datatypes.network.PortSpec:
816     derived_from: tosca.datatypes.Root
817     properties:
818       protocol:
819         type: string
820         required: true
821         default: tcp
822         constraints:
823           - valid_values: [ udp, tcp, igmp ]
824       target:
825         type: tosca.datatypes.network.PortDef
826         required: false
827       target_range:
828         type: range
829         required: false
830         constraints:
831           - in_range: [ 1, 65535 ]
832       source:
833         type: tosca.datatypes.network.PortDef
834         required: false
835       source_range:
836         type: range
837         required: false
838         constraints:
839           - in_range: [ 1, 65535 ]
840
841   tosca.datatypes.Credential:
842     derived_from: tosca.datatypes.Root
843     properties:
844       protocol:
845         type: string
846         required: false
847       token_type:
848         type: string
849         default: password
850         required: true
851       token:
852         type: string
853         required: true
854       keys:
855         type: map
856         entry_schema:
857           type: string
858         required: false
859       user:
860         type: string
861         required: false
862
863 ##########################################################################
864  # Artifact Type.
865  # An Artifact Type is a reusable entity that defines the type of one or more
866  # files which Node Types or Node Templates can have dependent relationships
867  # and used during operations such as during installation or deployment.
868 ##########################################################################
869 artifact_types:
870   tosca.artifacts.Root:
871     description: >
872       The TOSCA Artifact Type all other TOSCA Artifact Types derive from
873     properties:
874       version: version
875
876   tosca.artifacts.File:
877     derived_from: tosca.artifacts.Root
878
879   tosca.artifacts.Deployment:
880     derived_from: tosca.artifacts.Root
881     description: TOSCA base type for deployment artifacts
882
883   tosca.artifacts.Deployment.Image:
884     derived_from: tosca.artifacts.Deployment
885
886   tosca.artifacts.Deployment.Image.VM:
887     derived_from: tosca.artifacts.Deployment.Image
888
889   tosca.artifacts.Implementation:
890     derived_from: tosca.artifacts.Root
891     description: TOSCA base type for implementation artifacts
892
893   tosca.artifacts.Implementation.Bash:
894     derived_from: tosca.artifacts.Implementation
895     description: Script artifact for the Unix Bash shell
896     mime_type: application/x-sh
897     file_ext: [ sh ]
898
899   tosca.artifacts.Implementation.Python:
900     derived_from: tosca.artifacts.Implementation
901     description: Artifact for the interpreted Python language
902     mime_type: application/x-python
903     file_ext: [ py ]
904
905   tosca.artifacts.Deployment.Image.Container.Docker:
906     derived_from: tosca.artifacts.Deployment.Image
907     description: Docker container image
908
909   tosca.artifacts.Deployment.Image.VM.ISO:
910     derived_from: tosca.artifacts.Deployment.Image
911     description: Virtual Machine (VM) image in ISO disk format
912     mime_type: application/octet-stream
913     file_ext: [ iso ]
914
915   tosca.artifacts.Deployment.Image.VM.QCOW2:
916     derived_from: tosca.artifacts.Deployment.Image
917     description: Virtual Machine (VM) image in QCOW v2 standard disk format
918     mime_type: application/octet-stream
919     file_ext: [ qcow2 ]
920
921 ##########################################################################
922  # Policy Type.
923  # TOSCA Policy Types represent logical grouping of TOSCA nodes that have
924  # an implied relationship and need to be orchestrated or managed together
925  # to achieve some result.
926 ##########################################################################
927 policy_types:
928   tosca.policies.Root:
929     description: The TOSCA Policy Type all other TOSCA Policy Types derive from.
930
931   tosca.policies.Placement:
932     derived_from: tosca.policies.Root
933     description: The TOSCA Policy Type definition that is used to govern
934       placement of TOSCA nodes or groups of nodes.
935
936   tosca.policies.Placement.Colocate:
937     derived_from: tosca.policies.Placement
938     description: The TOSCA Policy Type definition that is used to govern
939       colocate placement of TOSCA nodes or groups of nodes.
940
941   tosca.policies.Placement.Antilocate:
942     derived_from: tosca.policies.Placement
943     description: The TOSCA Policy Type definition that is used to govern
944       anti-locate placement of TOSCA nodes or groups of nodes.
945
946   tosca.policies.Scaling:
947     derived_from: tosca.policies.Root
948     description: The TOSCA Policy Type definition that is used to govern
949       scaling of TOSCA nodes or groups of nodes.
950
951   tosca.policies.Monitoring:
952     derived_from: tosca.policies.Root
953     description: The TOSCA Policy Type definition that is used to govern
954       monitoring of TOSCA nodes or groups of nodes.
955
956   tosca.policies.Update:
957     derived_from: tosca.policies.Root
958     description: The TOSCA Policy Type definition that is used to govern
959       update of TOSCA nodes or groups of nodes.
960
961   tosca.policies.Performance:
962     derived_from: tosca.policies.Root
963     description: The TOSCA Policy Type definition that is used to declare
964       performance requirements for TOSCA nodes or groups of nodes.
965
966 ##########################################################################
967  # Group Type.
968  # Group Type represents logical grouping of TOSCA nodes that have an
969  # implied membership relationship and may need to be orchestrated or
970  # managed together to achieve some result.
971 ##########################################################################
972 group_types:
973   tosca.groups.Root:
974     description: The TOSCA Group Type all other TOSCA Group Types derive from
975     interfaces:
976       Standard:
977         type: tosca.interfaces.node.lifecycle.Standard