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