| # Licensed to the Apache Software Foundation (ASF) under one or more |
| # contributor license agreements. See the NOTICE file distributed with |
| # this work for additional information regarding copyright ownership. |
| # The ASF licenses this file to You under the Apache License, Version 2.0 |
| # (the "License"); you may not use this file except in compliance with |
| # the License. You may obtain a copy of the License at |
| # |
| # http://www.apache.org/licenses/LICENSE-2.0 |
| # |
| # Unless required by applicable law or agreed to in writing, software |
| # distributed under the License is distributed on an "AS IS" BASIS, |
| # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. |
| # See the License for the specific language governing permissions and |
| # limitations under the License. |
| |
| node_types: |
| |
| tosca.nodes.Root: |
| _extensions: |
| shorthand_name: Root |
| type_qualified_name: tosca:Root |
| specification: tosca-simple-1.0 |
| specification_section: 5.8.1 |
| 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' |
| 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). |
| attributes: |
| tosca_id: |
| description: >- |
| A unique identifier of the realized instance of a Node Template that derives from any TOSCA normative type. |
| type: string |
| tosca_name: |
| 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. |
| type: string |
| state: |
| description: >- |
| The state of the node instance. |
| type: string |
| default: initial |
| interfaces: |
| Standard: |
| type: tosca.interfaces.node.lifecycle.Standard |
| capabilities: |
| feature: |
| type: tosca.capabilities.Node |
| requirements: |
| - dependency: |
| capability: tosca.capabilities.Node |
| node: tosca.nodes.Root |
| relationship: tosca.relationships.DependsOn |
| occurrences: [ 0, UNBOUNDED ] |
| |
| tosca.nodes.Compute: |
| _extensions: |
| shorthand_name: Compute |
| type_qualified_name: tosca:Compute |
| specification: tosca-simple-1.0 |
| specification_section: 5.8.2 |
| 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' |
| role: host |
| 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". |
| derived_from: tosca.nodes.Root |
| attributes: |
| private_address: |
| description: >- |
| The primary private IP address assigned by the cloud provider that applications may use to access the Compute node. |
| type: string |
| public_address: |
| description: >- |
| The primary public IP address assigned by the cloud provider that applications may use to access the Compute node. |
| type: string |
| networks: |
| description: >- |
| The list of logical networks assigned to the compute host instance and information about them. |
| type: map |
| entry_schema: |
| type: tosca.datatypes.network.NetworkInfo |
| ports: |
| description: >- |
| The list of logical ports assigned to the compute host instance and information about them. |
| type: map |
| entry_schema: |
| type: tosca.datatypes.network.PortInfo |
| capabilities: |
| host: |
| type: tosca.capabilities.Container |
| valid_source_types: [ tosca.nodes.SoftwareComponent ] |
| binding: |
| type: tosca.capabilities.network.Bindable |
| os: |
| type: tosca.capabilities.OperatingSystem |
| scalable: |
| type: tosca.capabilities.Scalable |
| requirements: |
| - local_storage: |
| capability: tosca.capabilities.Attachment |
| node: tosca.nodes.BlockStorage |
| relationship: tosca.relationships.AttachesTo |
| occurrences: [ 0, UNBOUNDED ] |
| |
| tosca.nodes.LoadBalancer: |
| _extensions: |
| shorthand_name: LoadBalancer |
| type_qualified_name: tosca:LoadBalancer |
| specification: tosca-simple-1.0 |
| specification_section: 5.8.12 |
| specification_url: 'http://docs.oasis-open.org/tosca/TOSCA-Simple-Profile-YAML/v1.0/cos01/TOSCA-Simple-Profile-YAML-v1.0-cos01.html#_Toc379548332' |
| 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). |
| derived_from: tosca.nodes.Root |
| properties: |
| algorithm: |
| description: >- |
| No description in spec. |
| type: string |
| required: false |
| status: experimental |
| capabilities: |
| client: |
| description: >- |
| The Floating (IP) client's on the public network can connect to. |
| type: tosca.capabilities.Endpoint.Public |
| occurrences: [ 0, UNBOUNDED ] # ARIA NOTE: it seems unnecessary to specify this, as it is the implied default |
| requirements: |
| - application: |
| capability: tosca.capabilities.Endpoint |
| relationship: tosca.relationships.RoutesTo |
| occurrences: [ 0, UNBOUNDED ] |
| |
| # |
| # Software |
| # |
| |
| tosca.nodes.SoftwareComponent: |
| _extensions: |
| shorthand_name: SoftwareComponent |
| type_qualified_name: tosca:SoftwareComponent |
| specification: tosca-simple-1.0 |
| specification_section: 5.8.3 |
| 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' |
| description: >- |
| The TOSCA SoftwareComponent node represents a generic software component that can be managed and run by a TOSCA Compute Node |
| Type. |
| derived_from: tosca.nodes.Root |
| properties: |
| component_version: |
| description: >- |
| The optional software component's version. |
| type: version |
| required: false |
| admin_credential: |
| description: >- |
| The optional credential that can be used to authenticate to the software component. |
| type: tosca.datatypes.Credential |
| required: false |
| requirements: |
| - host: |
| capability: tosca.capabilities.Container |
| node: tosca.nodes.Compute |
| relationship: tosca.relationships.HostedOn |
| |
| tosca.nodes.WebServer: |
| _extensions: |
| shorthand_name: WebServer |
| type_qualified_name: tosca:WebServer |
| specification: tosca-simple-1.0 |
| specification_section: 5.8.4 |
| 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' |
| 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. |
| derived_from: tosca.nodes.SoftwareComponent |
| capabilities: |
| data_endpoint: |
| type: tosca.capabilities.Endpoint |
| admin_endpoint: |
| type: tosca.capabilities.Endpoint.Admin |
| host: |
| type: tosca.capabilities.Container |
| valid_source_types: [ tosca.nodes.WebApplication ] |
| |
| tosca.nodes.WebApplication: |
| _extensions: |
| shorthand_name: WebApplication |
| type_qualified_name: tosca:WebApplication |
| specification: tosca-simple-1.0 |
| specification_section: 5.8.5 |
| 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' |
| 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. |
| derived_from: tosca.nodes.SoftwareComponent # ARIA NOTE: the spec says tosca.nodes.Root |
| properties: |
| context_root: |
| description: >- |
| The web application's context root which designates the application's URL path within the web server it is hosted on. |
| type: string |
| required: false |
| capabilities: |
| app_endpoint: |
| type: tosca.capabilities.Endpoint |
| requirements: |
| - host: |
| capability: tosca.capabilities.Container |
| node: tosca.nodes.WebServer |
| relationship: tosca.relationships.HostedOn |
| |
| tosca.nodes.DBMS: |
| _extensions: |
| shorthand_name: DBMS # ARIA NOTE: omitted in the spec |
| type_qualified_name: tosca:DBMS |
| specification: tosca-simple-1.0 |
| specification_section: 5.8.6 |
| 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' |
| description: >- |
| The TOSCA DBMS node represents a typical relational, SQL Database Management System software component or service. |
| derived_from: tosca.nodes.SoftwareComponent |
| properties: |
| root_password: |
| description: >- |
| The optional root password for the DBMS server. |
| type: string |
| required: false |
| port: |
| description: >- |
| The DBMS server's port. |
| type: integer |
| required: false |
| capabilities: |
| host: |
| type: tosca.capabilities.Container |
| valid_source_types: [ tosca.nodes.Database ] |
| |
| tosca.nodes.Database: |
| _extensions: |
| shorthand_name: Database |
| type_qualified_name: tosca:Database |
| specification: tosca-simple-1.0 |
| specification_section: 5.8.7 |
| 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' |
| description: >- |
| The TOSCA Database node represents a logical database that can be managed and hosted by a TOSCA DBMS node. |
| derived_from: tosca.nodes.Root # ARIA NOTE: it's *not* a SoftwareComponent |
| properties: |
| name: |
| description: >- |
| The logical database Name. |
| type: string |
| port: |
| description: >- |
| The port the database service will use to listen for incoming data and requests. |
| type: integer |
| required: false |
| user: |
| description: >- |
| The special user account used for database administration. |
| type: string |
| required: false |
| password: |
| description: >- |
| The password associated with the user account provided in the 'user' property. |
| type: string |
| required: false |
| capabilities: |
| database_endpoint: |
| type: tosca.capabilities.Endpoint.Database |
| requirements: |
| - host: |
| capability: tosca.capabilities.Container |
| node: tosca.nodes.DBMS |
| relationship: tosca.relationships.HostedOn |
| |
| # |
| # Container |
| # |
| |
| tosca.nodes.Container.Runtime: |
| _extensions: |
| shorthand_name: Container.Runtime |
| type_qualified_name: tosca:Container.Runtime |
| specification: tosca-simple-1.0 |
| specification_section: 5.8.10 |
| 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' |
| description: >- |
| The TOSCA Container Runtime node represents operating system-level virtualization technology used to run multiple application |
| services on a single Compute host. |
| derived_from: tosca.nodes.SoftwareComponent |
| capabilities: |
| host: |
| type: tosca.capabilities.Container |
| scalable: |
| type: tosca.capabilities.Scalable |
| |
| tosca.nodes.Container.Application: |
| _extensions: |
| shorthand_name: Container.Application |
| type_qualified_name: tosca:Container.Application |
| specification: tosca-simple-1.0 |
| specification_section: 5.8.11 |
| 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' |
| description: >- |
| The TOSCA Container Application node represents an application that requires Container-level virtualization technology. |
| derived_from: tosca.nodes.Root |
| requirements: |
| - host: |
| capability: tosca.capabilities.Container |
| # ARIA NOTE: seems a mistake in the spec |
| #node: tosca.nodes.Container |
| relationship: tosca.relationships.HostedOn |
| |
| # |
| # Storage |
| # |
| |
| tosca.nodes.ObjectStorage: |
| _extensions: |
| shorthand_name: ObjectStorage |
| type_qualified_name: tosca:ObjectStorage |
| specification: tosca-simple-1.0 |
| specification_section: 5.8.8 |
| 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. |
| derived_from: tosca.nodes.Root |
| properties: |
| name: |
| description: >- |
| The logical name of the object store (or container). |
| type: string |
| size: |
| description: >- |
| The requested initial storage size (default unit is in Gigabytes). |
| type: scalar-unit.size |
| constraints: |
| - greater_or_equal: 0 GB |
| required: false |
| maxsize: |
| description: >- |
| The requested maximum storage size (default unit is in Gigabytes). |
| type: scalar-unit.size |
| constraints: |
| - greater_or_equal: 0 GB |
| required: false |
| capabilities: |
| storage_endpoint: |
| type: tosca.capabilities.Endpoint |
| |
| tosca.nodes.BlockStorage: |
| _extensions: |
| shorthand_name: BlockStorage |
| type_qualified_name: tosca:BlockStorage |
| specification: tosca-simple-1.0 |
| specification_section: 5.8.9 |
| 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' |
| description: >- |
| derived_from: tosca.nodes.Root |
| properties: |
| size: |
| description: >- |
| The requested storage size (default unit is MB). |
| type: scalar-unit.size |
| constraints: |
| - greater_or_equal: 1 MB |
| volume_id: |
| description: >- |
| ID of an existing volume (that is in the accessible scope of the requesting application). |
| type: string |
| required: false |
| snapshot_id: |
| description: >- |
| Some identifier that represents an existing snapshot that should be used when creating the block storage (volume). |
| type: string |
| required: false |
| capabilities: |
| attachment: |
| type: tosca.capabilities.Attachment |
| |
| # |
| # Network |
| # |
| |
| tosca.nodes.network.Network: |
| _extensions: |
| shorthand_name: Network |
| type_qualified_name: tosca:Network |
| specification: tosca-simple-1.0 |
| specification_section: 7.5.1 |
| description: >- |
| The TOSCA Network node represents a simple, logical network service. |
| derived_from: tosca.nodes.Root |
| properties: |
| ip_version: |
| description: >- |
| The IP version of the requested network. |
| type: integer |
| constraints: |
| - valid_values: [ 4, 6 ] |
| default: 4 |
| required: false |
| cidr: |
| description: >- |
| The cidr block of the requested network. |
| type: string |
| required: false |
| start_ip: |
| description: >- |
| The IP address to be used as the 1st one in a pool of addresses derived from the cidr block full IP range. |
| type: string |
| required: false |
| end_ip: |
| description: >- |
| The IP address to be used as the last one in a pool of addresses derived from the cidr block full IP range. |
| type: string |
| required: false |
| gateway_ip: |
| description: >- |
| The gateway IP address. |
| type: string |
| required: false |
| network_name: |
| 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. |
| type: string |
| required: false |
| network_id: |
| 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. |
| type: string |
| required: false |
| segmentation_id: |
| 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. |
| type: string |
| required: false |
| network_type: |
| 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. |
| type: string |
| required: false |
| physical_network: |
| 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. |
| type: string |
| required: false |
| dhcp_enabled: |
| description: >- |
| Indicates the TOSCA container to create a virtual network instance with or without a DHCP service. |
| type: boolean |
| default: true |
| required: false |
| capabilities: |
| link: |
| type: tosca.capabilities.network.Linkable |
| |
| tosca.nodes.network.Port: |
| _extensions: |
| shorthand_name: Port |
| type_qualified_name: tosca:Port |
| specification: tosca-simple-1.0 |
| specification_section: 7.5.2 |
| description: >- |
| The TOSCA Port node represents a logical entity that associates between Compute and Network normative types. |
| |
| The Port node type effectively represents a single virtual NIC on the Compute node instance. |
| derived_from: tosca.nodes.Root |
| properties: |
| ip_address: |
| 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. |
| type: string |
| required: false |
| order: |
| description: >- |
| The order of the NIC on the compute instance (e.g. eth2). Note: when binding more than one port to a single compute (aka |
| multi vNICs) and ordering is desired, it is *mandatory* that all ports will be set with an order value and. The order |
| values must represent a positive, arithmetic progression that starts with 0 (e.g. 0, 1, 2, ..., n). |
| type: integer |
| constraints: |
| - greater_or_equal: 0 |
| default: 0 |
| required: false |
| is_default: |
| 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. |
| type: boolean |
| default: false |
| required: false |
| ip_range_start: |
| 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. |
| type: string |
| required: false |
| ip_range_end: |
| 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. |
| type: string |
| required: false |
| attributes: |
| ip_address: |
| description: >- |
| The IP address would be assigned to the associated compute instance. |
| type: string |
| requirements: |
| - link: |
| capability: tosca.capabilities.network.Linkable |
| relationship: tosca.relationships.network.LinksTo |
| - binding: |
| capability: tosca.capabilities.network.Bindable |
| relationship: tosca.relationships.network.BindsTo |