ActivitySpec - Correcting logger messages
[sdc.git] / common / openecomp-tosca-datatype / src / main / resources / globalTypes / tosca / nodes.yml
1 #
2 # Licensed under the Apache License, Version 2.0 (the "License");
3 # you may not use this file except in compliance with the License.
4 # You may obtain a copy of the License at
5 #
6 #      http://www.apache.org/licenses/LICENSE-2.0
7 #
8 # Unless required by applicable law or agreed to in writing, software
9 # distributed under the License is distributed on an "AS IS" BASIS,
10 # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
11 # See the License for the specific language governing permissions and
12 # limitations under the License.
13 #
14
15 tosca_definitions_version: tosca_simple_yaml_1_1
16
17 metadata:
18   filename: tosca/nodes.yml
19   version: '1.0'
20
21 imports:
22 - tosca_index:
23     file: _index.yml
24
25 node_types:
26   tosca.nodes.Root:
27     description: 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).
28     attributes:
29       tosca_id:
30         description: 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: This attribute reflects the name of the Node Template as defined in the TOSCA service template. This name is not unique to the realized instance model of corresponding deployed application as each template in the model can result in one or more instances (e.g., scaled) when orchestrated to a provider environment.
34         type: string
35       state:
36         description: The state of the node instance.
37         type: string
38         default: initial
39     capabilities:
40       feature:
41         type: tosca.capabilities.Node
42     requirements:
43     - dependency:
44         capability: tosca.capabilities.Node
45         node: tosca.nodes.Root
46         relationship: tosca.relationships.DependsOn
47         occurrences:
48         - 0
49         - UNBOUNDED
50     interfaces:
51       standard:
52         type: tosca.interfaces.node.lifecycle.Standard
53
54   tosca.nodes.ObjectStorage:
55     derived_from: tosca.nodes.Root
56     description: The TOSCA ObjectStorage node represents storage that provides the ability to store data as objects (or BLOBs of data) without consideration for the underlying filesystem or devices.
57     properties:
58       name:
59         description: The logical name of the object store (or container).
60         type: string
61       size:
62         description: The requested initial storage size (default unit is in Gigabytes).
63         type: scalar-unit.size
64         required: false
65         constraints:
66         - greater_or_equal: 0 GB
67       maxsize:
68         description: The requested maximum storage size (default unit is in Gigabytes).
69         type: scalar-unit.size
70         required: false
71         constraints:
72         - greater_or_equal: 0 GB
73     capabilities:
74       storage_endpoint:
75         type: tosca.capabilities.Endpoint
76
77   tosca.nodes.DBMS:
78     derived_from: tosca.nodes.SoftwareComponent
79     description: The TOSCA DBMS node represents a typical relational, SQL Database Management System software component or service.
80     properties:
81       root_password:
82         description: The optional root password for the DBMS server.
83         type: string
84         required: false
85       port:
86         description: The DBMS server's port.
87         type: integer
88         required: false
89     capabilities:
90       host:
91         type: tosca.capabilities.Container
92         valid_source_types:
93         - tosca.nodes.Database
94
95   tosca.nodes.WebApplication:
96     derived_from: tosca.nodes.Root
97     description: The TOSCA WebApplication node represents a software application that can be managed and run by a TOSCA WebServer node. Specific types of web applications such as Java, etc. could be derived from this type.
98     properties:
99       context_root:
100         description: The web application's context root which designates the application's URL path within the web server it is hosted on.
101         type: string
102         required: false
103     capabilities:
104       app_endpoint:
105         type: tosca.capabilities.Endpoint
106     requirements:
107     - host:
108         capability: tosca.capabilities.Container
109         node: tosca.nodes.WebServer
110         relationship: tosca.relationships.HostedOn
111
112   tosca.nodes.Compute:
113     derived_from: tosca.nodes.Root
114     description: The TOSCA Compute node represents one or more real or virtual processors of software applications or services along with other essential local resources. Collectively, the resources the compute node represents can logically be viewed as a (real or virtual) "server".
115     attributes:
116       private_address:
117         description: The primary private IP address assigned by the cloud provider that applications may use to access the Compute node.
118         type: string
119       public_address:
120         description: The primary public IP address assigned by the cloud provider that applications may use to access the Compute node.
121         type: string
122       networks:
123         description: The list of logical networks assigned to the compute host instance and information about them.
124         type: map
125         entry_schema:
126           type: tosca.datatypes.network.NetworkInfo
127       ports:
128         description: The list of logical ports assigned to the compute host instance and information about them.
129         type: map
130         entry_schema:
131           type: tosca.datatypes.network.PortInfo
132     capabilities:
133       host:
134         type: tosca.capabilities.Container
135         valid_source_types:
136         - tosca.nodes.SoftwareComponent
137       binding:
138         type: tosca.capabilities.network.Bindable
139       os:
140         type: tosca.capabilities.OperatingSystem
141       scalable:
142         type: tosca.capabilities.Scalable
143       endpoint:
144             type: tosca.capabilities.Endpoint.Admin
145     requirements:
146     - local_storage:
147         capability: tosca.capabilities.Attachment
148         node: tosca.nodes.BlockStorage
149         relationship: tosca.relationships.AttachesTo
150         occurrences:
151         - 0
152         - UNBOUNDED
153
154   tosca.nodes.network.Network:
155     derived_from: tosca.nodes.Root
156     description: The TOSCA Network node represents a simple, logical network service.
157     properties:
158       ip_version:
159         description: The IP version of the requested network.
160         type: integer
161         default: 4
162         required: false
163         constraints:
164         - valid_values:
165           - 4
166           - 6
167       cidr:
168         description: The cidr block of the requested network.
169         type: string
170         required: false
171       start_ip:
172         description: The IP address to be used as the 1st one in a pool of addresses derived from the cidr block full IP range.
173         type: string
174         required: false
175       end_ip:
176         description: The IP address to be used as the last one in a pool of addresses derived from the cidr block full IP range.
177         type: string
178         required: false
179       gateway_ip:
180         description: The gateway IP address.
181         type: string
182         required: false
183       network_name:
184         description: An Identifier that represents an existing Network instance in the underlying cloud infrastructure - OR - be used as the name of the new created network.
185         type: string
186         required: false
187       network_id:
188         description: An Identifier that represents an existing Network instance in the underlying cloud infrastructure. This property is mutually exclusive with all other properties except network_name.
189         type: string
190         required: false
191       segmentation_id:
192         description: A segmentation identifier in the underlying cloud infrastructure (e.g., VLAN id, GRE tunnel id). If the segmentation_id is specified, the network_type or physical_network properties should be provided as well.
193         type: string
194         required: false
195       network_type:
196         description: Optionally, specifies the nature of the physical network in the underlying cloud infrastructure. Examples are flat, vlan, gre or vxlan. For flat and vlan types, physical_network should be provided too.
197         type: string
198         required: false
199       physical_network:
200         description: Optionally, identifies the physical network on top of which the network is implemented, e.g. physnet1. This property is required if network_type is flat or vlan.
201         type: string
202         required: false
203       dhcp_enabled:
204         description: Indicates the TOSCA container to create a virtual network instance with or without a DHCP service.
205         type: boolean
206         default: true
207         required: false
208     capabilities:
209       link:
210         type: tosca.capabilities.network.Linkable
211
212   tosca.nodes.WebServer:
213     derived_from: tosca.nodes.SoftwareComponent
214     description: This TOSCA WebServer Node Type represents an abstract software component or service that is capable of hosting and providing management operations for one or more WebApplication nodes.
215     capabilities:
216       data_endpoint:
217         type: tosca.capabilities.Endpoint
218       admin_endpoint:
219         type: tosca.capabilities.Endpoint.Admin
220       host:
221         type: tosca.capabilities.Container
222         valid_source_types:
223         - tosca.nodes.WebApplication
224
225   tosca.nodes.Container.Application:
226     derived_from: tosca.nodes.Root
227     description: The TOSCA Container Application node represents an application that requires Container-level virtualization technology.
228     requirements:
229     - host:
230         capability: tosca.capabilities.Container
231         relationship: tosca.relationships.HostedOn
232
233   tosca.nodes.Container.Runtime:
234     derived_from: tosca.nodes.SoftwareComponent
235     description: The TOSCA Container Runtime node represents operating system-level virtualization technology used to run multiple application services on a single Compute host.
236     capabilities:
237       host:
238         type: tosca.capabilities.Container
239       scalable:
240         type: tosca.capabilities.Scalable
241
242   tosca.nodes.SoftwareComponent:
243     derived_from: tosca.nodes.Root
244     description: The TOSCA SoftwareComponent node represents a generic software component that can be managed and run by a TOSCA Compute Node Type.
245     properties:
246       component_version:
247         description: The optional software component's version.
248         type: version
249         required: false
250       admin_credential:
251         description: The optional credential that can be used to authenticate to the software component.
252         type: tosca.datatypes.Credential
253         required: false
254     requirements:
255     - host:
256         capability: tosca.capabilities.Container
257         node: tosca.nodes.Compute
258         relationship: tosca.relationships.HostedOn
259
260   tosca.nodes.BlockStorage:
261     derived_from: tosca.nodes.Root
262     description: ''
263     properties:
264       size:
265         description: The requested storage size (default unit is MB).
266         type: scalar-unit.size
267         constraints:
268         - greater_or_equal: 1 MB
269       volume_id:
270         description: ID of an existing volume (that is in the accessible scope of the requesting application).
271         type: string
272         required: false
273       snapshot_id:
274         description: Some identifier that represents an existing snapshot that should be used when creating the block storage (volume).
275         type: string
276         required: false
277     capabilities:
278       attachment:
279         type: tosca.capabilities.Attachment
280
281   tosca.nodes.network.Port:
282     derived_from: tosca.nodes.Root
283     description: |-
284       The TOSCA Port node represents a logical entity that associates between Compute and Network normative types.
285       The Port node type effectively represents a single virtual NIC on the Compute node instance.
286     properties:
287       ip_address:
288         description: Allow the user to set a fixed IP address. Note that this address is a request to the provider which they will attempt to fulfill but may not be able to dependent on the network the port is associated with.
289         type: string
290         required: false
291       order:
292         description: 'The order of the NIC on the compute instance (e.g. eth2). Note:
293           when binding more than one port to a single compute (aka multi vNICs) and
294           ordering is desired, it is *mandatory* that all ports will be set with an
295           order value and. The order values must represent a positive, arithmetic
296           progression that starts with 0 (e.g. 0, 1, 2, ..., n).'
297         type: integer
298         default: 0
299         required: false
300         constraints:
301         - greater_or_equal: 0
302       is_default:
303         description: Set is_default=true to apply a default gateway route on the running compute instance to the associated network gateway. Only one port that is associated to single compute node can set as default=true.
304         type: boolean
305         default: false
306         required: false
307       ip_range_start:
308         description: Defines the starting IP of a range to be allocated for the compute instances that are associated by this Port. Without setting this property the IP allocation is done from the entire CIDR block of the network.
309         type: string
310         required: false
311       ip_range_end:
312         description: Defines the ending IP of a range to be allocated for the compute instances that are associated by this Port. Without setting this property the IP allocation is done from the entire CIDR block of the network.
313         type: string
314         required: false
315     attributes:
316       ip_address:
317         description: The IP address would be assigned to the associated compute instance.
318         type: string
319     requirements:
320     - link:
321         capability: tosca.capabilities.network.Linkable
322         relationship: tosca.relationships.network.LinksTo
323     - binding:
324         capability: tosca.capabilities.network.Bindable
325         relationship: tosca.relationships.network.BindsTo
326
327   tosca.nodes.LoadBalancer:
328     derived_from: tosca.nodes.Root
329     description: The TOSCA Load Balancer node represents logical function that be used in conjunction with a Floating Address to distribute an application's traffic (load) across a number of instances of the application (e.g., for a clustered or scaled application).
330     capabilities:
331       client:
332         description: The Floating (IP) client's on the public network can connect to.
333         type: tosca.capabilities.Endpoint.Public
334         occurrences:
335         - 0
336         - UNBOUNDED
337     requirements:
338     - application:
339         capability: tosca.capabilities.Endpoint
340         relationship: tosca.relationships.RoutesTo
341         occurrences:
342         - 0
343         - UNBOUNDED
344
345   tosca.nodes.Database:
346     derived_from: tosca.nodes.Root
347     description: The TOSCA Database node represents a logical database that can be managed and hosted by a TOSCA DBMS node.
348     properties:
349       name:
350         description: The logical database Name.
351         type: string
352       port:
353         description: The port the database service will use to listen for incoming data and requests.
354         type: integer
355         required: false
356       user:
357         description: The special user account used for database administration.
358         type: string
359         required: false
360       password:
361         description: The password associated with the user account provided in the 'user' property.
362         type: string
363         required: false
364     capabilities:
365       database_endpoint:
366         type: tosca.capabilities.Endpoint.Database
367     requirements:
368     - host:
369         capability: tosca.capabilities.Container
370         node: tosca.nodes.DBMS
371         relationship: tosca.relationships.HostedOn