Update project maturity status
[multicloud/azure.git] / azure / aria / aria-extension-cloudify / src / aria / extensions / aria_extension_tosca / profiles / tosca-simple-1.0 / nodes.yaml
1 # Licensed to the Apache Software Foundation (ASF) under one or more
2 # contributor license agreements.  See the NOTICE file distributed with
3 # this work for additional information regarding copyright ownership.
4 # The ASF licenses this file to You under the Apache License, Version 2.0
5 # (the "License"); you may not use this file except in compliance with
6 # the License.  You may obtain a copy of the License at
7 #
8 #     http://www.apache.org/licenses/LICENSE-2.0
9 #
10 # Unless required by applicable law or agreed to in writing, software
11 # distributed under the License is distributed on an "AS IS" BASIS,
12 # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13 # See the License for the specific language governing permissions and
14 # limitations under the License.
15
16 node_types:
17
18   tosca.nodes.Root:
19     _extensions:
20       shorthand_name: Root
21       type_qualified_name: tosca:Root
22       specification: tosca-simple-1.0
23       specification_section: 5.8.1
24       specification_url: 'http://docs.oasis-open.org/tosca/TOSCA-Simple-Profile-YAML/v1.0/cos01/TOSCA-Simple-Profile-YAML-v1.0-cos01.html#DEFN_TYPE_NODES_ROOT'
25     description: >-
26       The TOSCA Root Node Type is the default type that all other TOSCA base Node Types derive from. This allows for all TOSCA nodes to have a consistent set of features for modeling and management (e.g., consistent definitions for requirements, capabilities and lifecycle interfaces).
27     attributes:
28       tosca_id:
29         description: >-
30           A unique identifier of the realized instance of a Node Template that derives from any TOSCA normative type.
31         type: string
32       tosca_name:
33         description: >-
34           This attribute reflects the name of the Node Template as defined in the TOSCA service template. This name is not unique
35           to the realized instance model of corresponding deployed application as each template in the model can result in one or
36           more instances (e.g., scaled) when orchestrated to a provider environment.
37         type: string
38       state:
39         description: >-
40           The state of the node instance.
41         type: string
42         default: initial
43     interfaces:
44       Standard:
45         type: tosca.interfaces.node.lifecycle.Standard
46     capabilities:
47       feature:
48         type: tosca.capabilities.Node
49     requirements:
50       - dependency:
51           capability: tosca.capabilities.Node
52           node: tosca.nodes.Root
53           relationship: tosca.relationships.DependsOn
54           occurrences: [ 0, UNBOUNDED ]
55
56   tosca.nodes.Compute:
57     _extensions:
58       shorthand_name: Compute
59       type_qualified_name: tosca:Compute
60       specification: tosca-simple-1.0
61       specification_section: 5.8.2
62       specification_url: 'http://docs.oasis-open.org/tosca/TOSCA-Simple-Profile-YAML/v1.0/cos01/TOSCA-Simple-Profile-YAML-v1.0-cos01.html#DEFN_TYPE_NODES_COMPUTE'
63       role: host
64     description: >-
65       The TOSCA Compute node represents one or more real or virtual processors of software applications or services along with
66       other essential local resources. Collectively, the resources the compute node represents can logically be viewed as a (real
67       or virtual) "server".
68     derived_from: tosca.nodes.Root
69     attributes:
70       private_address:
71         description: >-
72           The primary private IP address assigned by the cloud provider that applications may use to access the Compute node.
73         type: string
74       public_address:
75         description: >-
76           The primary public IP address assigned by the cloud provider that applications may use to access the Compute node.
77         type: string
78       networks:
79         description: >-
80           The list of logical networks assigned to the compute host instance and information about them.
81         type: map
82         entry_schema:
83           type: tosca.datatypes.network.NetworkInfo
84       ports:
85         description: >-
86           The list of logical ports assigned to the compute host instance and information about them.
87         type: map
88         entry_schema:
89           type: tosca.datatypes.network.PortInfo
90     capabilities:
91       host:
92          type: tosca.capabilities.Container
93          valid_source_types: [ tosca.nodes.SoftwareComponent ]
94       binding:
95          type: tosca.capabilities.network.Bindable
96       os:
97          type: tosca.capabilities.OperatingSystem
98       scalable:
99          type: tosca.capabilities.Scalable
100     requirements:
101       - local_storage:
102           capability: tosca.capabilities.Attachment
103           node: tosca.nodes.BlockStorage
104           relationship: tosca.relationships.AttachesTo
105           occurrences: [ 0, UNBOUNDED ]
106
107   tosca.nodes.LoadBalancer:
108     _extensions:
109       shorthand_name: LoadBalancer
110       type_qualified_name: tosca:LoadBalancer
111       specification: tosca-simple-1.0
112       specification_section: 5.8.12
113       specification_url: 'http://docs.oasis-open.org/tosca/TOSCA-Simple-Profile-YAML/v1.0/cos01/TOSCA-Simple-Profile-YAML-v1.0-cos01.html#_Toc379548332'
114     description: >-
115       The TOSCA Load Balancer node represents logical function that be used in conjunction with a Floating Address to distribute an
116       application's traffic (load) across a number of instances of the application (e.g., for a clustered or scaled application).
117     derived_from: tosca.nodes.Root
118     properties:
119       algorithm:
120         description: >-
121           No description in spec.
122         type: string
123         required: false
124         status: experimental
125     capabilities:
126       client:
127         description: >-
128           The Floating (IP) client's on the public network can connect to.
129         type: tosca.capabilities.Endpoint.Public
130         occurrences: [ 0, UNBOUNDED ] # ARIA NOTE: it seems unnecessary to specify this, as it is the implied default
131     requirements:
132       - application:
133           capability: tosca.capabilities.Endpoint
134           relationship: tosca.relationships.RoutesTo
135           occurrences: [ 0, UNBOUNDED ]
136
137   #
138   # Software
139   #
140
141   tosca.nodes.SoftwareComponent:
142     _extensions:
143       shorthand_name: SoftwareComponent
144       type_qualified_name: tosca:SoftwareComponent
145       specification: tosca-simple-1.0
146       specification_section: 5.8.3
147       specification_url: 'http://docs.oasis-open.org/tosca/TOSCA-Simple-Profile-YAML/v1.0/cos01/TOSCA-Simple-Profile-YAML-v1.0-cos01.html#DEFN_TYPE_NODES_SOFTWARE_COMPONENT'
148     description: >-
149       The TOSCA SoftwareComponent node represents a generic software component that can be managed and run by a TOSCA Compute Node
150       Type.
151     derived_from: tosca.nodes.Root
152     properties:
153       component_version:
154         description: >-
155           The optional software component's version.
156         type: version
157         required: false
158       admin_credential:
159         description: >-
160           The optional credential that can be used to authenticate to the software component.
161         type: tosca.datatypes.Credential
162         required: false
163     requirements:
164       - host:
165           capability: tosca.capabilities.Container
166           node: tosca.nodes.Compute
167           relationship: tosca.relationships.HostedOn
168
169   tosca.nodes.WebServer:
170     _extensions:
171       shorthand_name: WebServer
172       type_qualified_name: tosca:WebServer
173       specification: tosca-simple-1.0
174       specification_section: 5.8.4
175       specification_url: 'http://docs.oasis-open.org/tosca/TOSCA-Simple-Profile-YAML/v1.0/cos01/TOSCA-Simple-Profile-YAML-v1.0-cos01.html#DEFN_TYPE_NODES_WEBSERVER'
176     description: >-
177       This TOSCA WebServer Node Type represents an abstract software component or service that is capable of hosting and providing
178       management operations for one or more WebApplication nodes.
179     derived_from: tosca.nodes.SoftwareComponent
180     capabilities:
181       data_endpoint:
182         type: tosca.capabilities.Endpoint
183       admin_endpoint:
184         type: tosca.capabilities.Endpoint.Admin
185       host:
186         type: tosca.capabilities.Container
187         valid_source_types: [ tosca.nodes.WebApplication ]
188
189   tosca.nodes.WebApplication:
190     _extensions:
191       shorthand_name: WebApplication
192       type_qualified_name: tosca:WebApplication
193       specification: tosca-simple-1.0
194       specification_section: 5.8.5
195       specification_url: 'http://docs.oasis-open.org/tosca/TOSCA-Simple-Profile-YAML/v1.0/cos01/TOSCA-Simple-Profile-YAML-v1.0-cos01.html#DEFN_TYPE_NODES_WEBAPPLICATION'
196     description: >-
197       The TOSCA WebApplication node represents a software application that can be managed and run by a TOSCA WebServer node.
198       Specific types of web applications such as Java, etc. could be derived from this type.
199     derived_from: tosca.nodes.SoftwareComponent # ARIA NOTE: the spec says tosca.nodes.Root
200     properties:
201       context_root:
202         description: >-
203           The web application's context root which designates the application's URL path within the web server it is hosted on.
204         type: string
205         required: false
206     capabilities:
207       app_endpoint:
208         type: tosca.capabilities.Endpoint
209     requirements:
210       - host:
211           capability: tosca.capabilities.Container
212           node: tosca.nodes.WebServer
213           relationship: tosca.relationships.HostedOn
214
215   tosca.nodes.DBMS:
216     _extensions:
217       shorthand_name: DBMS # ARIA NOTE: omitted in the spec
218       type_qualified_name: tosca:DBMS
219       specification: tosca-simple-1.0
220       specification_section: 5.8.6
221       specification_url: 'http://docs.oasis-open.org/tosca/TOSCA-Simple-Profile-YAML/v1.0/cos01/TOSCA-Simple-Profile-YAML-v1.0-cos01.html#DEFN_TYPE_NODES_DBMS'
222     description: >-
223       The TOSCA DBMS node represents a typical relational, SQL Database Management System software component or service.
224     derived_from: tosca.nodes.SoftwareComponent
225     properties:
226       root_password:
227         description: >-
228           The optional root password for the DBMS server.
229         type: string
230         required: false
231       port:
232         description: >-
233           The DBMS server's port.
234         type: integer
235         required: false
236     capabilities:
237       host:
238         type: tosca.capabilities.Container
239         valid_source_types: [ tosca.nodes.Database ]
240
241   tosca.nodes.Database:
242     _extensions:
243       shorthand_name: Database
244       type_qualified_name: tosca:Database
245       specification: tosca-simple-1.0
246       specification_section: 5.8.7
247       specification_url: 'http://docs.oasis-open.org/tosca/TOSCA-Simple-Profile-YAML/v1.0/cos01/TOSCA-Simple-Profile-YAML-v1.0-cos01.html#DEFN_TYPE_NODES_DATABASE'
248     description: >-
249       The TOSCA Database node represents a logical database that can be managed and hosted by a TOSCA DBMS node.
250     derived_from: tosca.nodes.Root # ARIA NOTE: it's *not* a SoftwareComponent
251     properties:
252       name:
253         description: >-
254           The logical database Name.
255         type: string
256       port:
257         description: >-
258           The port the database service will use to listen for incoming data and requests.
259         type: integer
260         required: false
261       user:
262         description: >-
263           The special user account used for database administration.
264         type: string
265         required: false
266       password:
267         description: >-
268           The password associated with the user account provided in the 'user' property.
269         type: string
270         required: false
271     capabilities:
272       database_endpoint:
273         type: tosca.capabilities.Endpoint.Database
274     requirements:
275       - host:
276           capability: tosca.capabilities.Container
277           node: tosca.nodes.DBMS
278           relationship: tosca.relationships.HostedOn
279
280   #
281   # Container
282   #
283
284   tosca.nodes.Container.Runtime:
285     _extensions:
286       shorthand_name: Container.Runtime
287       type_qualified_name: tosca:Container.Runtime
288       specification: tosca-simple-1.0
289       specification_section: 5.8.10
290       specification_url: 'http://docs.oasis-open.org/tosca/TOSCA-Simple-Profile-YAML/v1.0/cos01/TOSCA-Simple-Profile-YAML-v1.0-cos01.html#DEFN_TYPE_NODES_CONTAINER_RUNTIME'
291     description: >-
292       The TOSCA Container Runtime node represents operating system-level virtualization technology used to run multiple application
293       services on a single Compute host.
294     derived_from: tosca.nodes.SoftwareComponent
295     capabilities:
296       host:
297         type: tosca.capabilities.Container
298       scalable:
299         type: tosca.capabilities.Scalable
300
301   tosca.nodes.Container.Application:
302     _extensions:
303       shorthand_name: Container.Application
304       type_qualified_name: tosca:Container.Application
305       specification: tosca-simple-1.0
306       specification_section: 5.8.11
307       specification_url: 'http://docs.oasis-open.org/tosca/TOSCA-Simple-Profile-YAML/v1.0/cos01/TOSCA-Simple-Profile-YAML-v1.0-cos01.html#DEFN_TYPE_NODES_CONTAINER_APP'
308     description: >-
309       The TOSCA Container Application node represents an application that requires Container-level virtualization technology.
310     derived_from: tosca.nodes.Root
311     requirements:
312       - host:
313           capability: tosca.capabilities.Container
314           # ARIA NOTE: seems a mistake in the spec
315           #node: tosca.nodes.Container
316           relationship: tosca.relationships.HostedOn
317
318   #
319   # Storage
320   #
321
322   tosca.nodes.ObjectStorage:
323     _extensions:
324       shorthand_name: ObjectStorage
325       type_qualified_name: tosca:ObjectStorage
326       specification: tosca-simple-1.0
327       specification_section: 5.8.8
328     description: >-
329       The TOSCA ObjectStorage node represents storage that provides the ability to store data as objects (or BLOBs of data) without
330       consideration for the underlying filesystem or devices.
331     derived_from: tosca.nodes.Root
332     properties:
333       name:
334         description: >-
335           The logical name of the object store (or container).
336         type: string
337       size:
338         description: >-
339           The requested initial storage size (default unit is in Gigabytes).
340         type: scalar-unit.size
341         constraints:
342           - greater_or_equal: 0 GB
343         required: false
344       maxsize:
345         description: >-
346           The requested maximum storage size (default unit is in Gigabytes).
347         type: scalar-unit.size
348         constraints:
349           - greater_or_equal: 0 GB
350         required: false
351     capabilities:
352       storage_endpoint:
353         type: tosca.capabilities.Endpoint
354
355   tosca.nodes.BlockStorage:
356     _extensions:
357       shorthand_name: BlockStorage
358       type_qualified_name: tosca:BlockStorage
359       specification: tosca-simple-1.0
360       specification_section: 5.8.9
361       specification_url: 'http://docs.oasis-open.org/tosca/TOSCA-Simple-Profile-YAML/v1.0/cos01/TOSCA-Simple-Profile-YAML-v1.0-cos01.html#DEFN_TYPE_NODES_BLOCK_STORAGE'
362     description: >-
363     derived_from: tosca.nodes.Root
364     properties:
365       size:
366         description: >-
367           The requested storage size (default unit is MB).
368         type: scalar-unit.size
369         constraints:
370           - greater_or_equal: 1 MB
371       volume_id:
372         description: >-
373           ID of an existing volume (that is in the accessible scope of the requesting application).
374         type: string
375         required: false
376       snapshot_id:
377         description: >-
378           Some identifier that represents an existing snapshot that should be used when creating the block storage (volume).
379         type: string
380         required: false
381     capabilities:
382       attachment:
383         type: tosca.capabilities.Attachment
384
385   #
386   # Network
387   #
388
389   tosca.nodes.network.Network:
390     _extensions:
391       shorthand_name: Network
392       type_qualified_name: tosca:Network
393       specification: tosca-simple-1.0
394       specification_section: 7.5.1
395     description: >-
396       The TOSCA Network node represents a simple, logical network service.
397     derived_from: tosca.nodes.Root
398     properties:
399       ip_version:
400         description: >-
401           The IP version of the requested network.
402         type: integer
403         constraints:
404           - valid_values: [ 4, 6 ]
405         default: 4
406         required: false
407       cidr:
408         description: >-
409           The cidr block of the requested network.
410         type: string
411         required: false
412       start_ip:
413         description: >-
414           The IP address to be used as the 1st one in a pool of addresses derived from the cidr block full IP range.
415         type: string
416         required: false
417       end_ip:
418         description: >-
419           The IP address to be used as the last one in a pool of addresses derived from the cidr block full IP range.
420         type: string
421         required: false
422       gateway_ip:
423         description: >-
424           The gateway IP address.
425         type: string
426         required: false
427       network_name:
428         description: >-
429           An Identifier that represents an existing Network instance in the underlying cloud infrastructure - OR - be used as the
430           name of the new created network.
431         type: string
432         required: false
433       network_id:
434         description: >-
435           An Identifier that represents an existing Network instance in the underlying cloud infrastructure. This property is
436           mutually exclusive with all other properties except network_name.
437         type: string
438         required: false
439       segmentation_id:
440         description: >-
441           A segmentation identifier in the underlying cloud infrastructure (e.g., VLAN id, GRE tunnel id). If the segmentation_id
442           is specified, the network_type or physical_network properties should be provided as well.
443         type: string
444         required: false
445       network_type:
446         description: >-
447           Optionally, specifies the nature of the physical network in the underlying cloud infrastructure. Examples are flat, vlan,
448           gre or vxlan. For flat and vlan types, physical_network should be provided too.
449         type: string
450         required: false
451       physical_network:
452         description: >-
453           Optionally, identifies the physical network on top of which the network is implemented, e.g. physnet1. This property is
454           required if network_type is flat or vlan.
455         type: string
456         required: false
457       dhcp_enabled:
458         description: >-
459           Indicates the TOSCA container to create a virtual network instance with or without a DHCP service.
460         type: boolean
461         default: true
462         required: false
463     capabilities:
464       link:
465         type: tosca.capabilities.network.Linkable
466
467   tosca.nodes.network.Port:
468     _extensions:
469       shorthand_name: Port
470       type_qualified_name: tosca:Port
471       specification: tosca-simple-1.0
472       specification_section: 7.5.2
473     description: >-
474       The TOSCA Port node represents a logical entity that associates between Compute and Network normative types.
475
476       The Port node type effectively represents a single virtual NIC on the Compute node instance.
477     derived_from: tosca.nodes.Root
478     properties:
479       ip_address:
480         description: >-
481           Allow the user to set a fixed IP address. Note that this address is a request to the provider which they will attempt to
482           fulfill but may not be able to dependent on the network the port is associated with.
483         type: string
484         required: false
485       order:
486         description: >-
487           The order of the NIC on the compute instance (e.g. eth2). Note: when binding more than one port to a single compute (aka
488           multi vNICs) and ordering is desired, it is *mandatory* that all ports will be set with an order value and. The order
489           values must represent a positive, arithmetic progression that starts with 0 (e.g. 0, 1, 2, ..., n).
490         type: integer
491         constraints:
492           - greater_or_equal: 0
493         default: 0
494         required: false
495       is_default:
496         description: >-
497           Set is_default=true to apply a default gateway route on the running compute instance to the associated network gateway.
498           Only one port that is associated to single compute node can set as default=true.
499         type: boolean
500         default: false
501         required: false
502       ip_range_start:
503         description: >-
504           Defines the starting IP of a range to be allocated for the compute instances that are associated by this Port. Without
505           setting this property the IP allocation is done from the entire CIDR block of the network.
506         type: string
507         required: false
508       ip_range_end:
509         description: >-
510           Defines the ending IP of a range to be allocated for the compute instances that are associated by this Port. Without
511           setting this property the IP allocation is done from the entire CIDR block of the network.
512         type: string
513         required: false
514     attributes:
515       ip_address:
516         description: >-
517           The IP address would be assigned to the associated compute instance.
518         type: string
519     requirements:
520       - link:
521           capability: tosca.capabilities.network.Linkable
522           relationship: tosca.relationships.network.LinksTo
523       - binding:
524           capability: tosca.capabilities.network.Bindable
525           relationship: tosca.relationships.network.BindsTo