c645e275719c7c9fad4cd8b0d491b091ce051b82
[sdc/sdc-tosca.git] /
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 NFV Profile in YAML version
15 # 1.0.0. It describes the definition for TOSCA NFV types including Node Type,
16 # Relationship Type, CapabilityAssignment Type and Interfaces.
17 ##########################################################################
18 tosca_definitions_version: tosca_simple_yaml_1_0_0
19
20 ##########################################################################
21 # Node Type.
22 # A Node Type is a reusable entity that defines the type of one or more
23 # Node Templates.
24 ##########################################################################
25 node_types:
26   tosca.nodes.nfv.VNF:
27     derived_from: tosca.nodes.Root   # Or should this be its own top - level type?
28     properties:
29       id:
30         type: string
31         description: ID of this VNF
32       vendor:
33         type: string
34         description: name of the vendor who generate this VNF
35       version:
36         type: version
37         description: version of the software for this VNF
38     requirements:
39       - virtualLink:
40           capability: tosca.capabilities.nfv.VirtualLinkable
41           relationship: tosca.relationships.nfv.VirtualLinksTo
42           node: tosca.nodes.nfv.VL
43
44   tosca.nodes.nfv.VDU:
45     derived_from: tosca.nodes.Compute
46     capabilities:
47       high_availability:
48         type: tosca.capabilities.nfv.HA
49       virtualbinding:
50         type: tosca.capabilities.nfv.VirtualBindable
51       monitoring_parameter:
52         type: tosca.capabilities.nfv.Metric
53     requirements:
54       - high_availability:
55           capability: tosca.capabilities.nfv.HA
56           relationship: tosca.relationships.nfv.HA
57           node: tosca.nodes.nfv.VDU
58           occurrences: [ 0, 1 ]
59
60   tosca.nodes.nfv.CP:
61     derived_from: tosca.nodes.network.Port
62     properties:
63       type:
64         type: string
65         required: false
66     requirements:
67       - virtualLink:
68           capability: tosca.capabilities.nfv.VirtualLinkable
69           relationship: tosca.relationships.nfv.VirtualLinksTo
70           node: tosca.nodes.nfv.VL
71       - virtualBinding:
72           capability: tosca.capabilities.nfv.VirtualBindable
73           relationship: tosca.relationships.nfv.VirtualBindsTo
74           node: tosca.nodes.nfv.VDU
75     attributes:
76       address:
77         type: string
78
79   tosca.nodes.nfv.VL:
80     derived_from: tosca.nodes.network.Network
81     properties:
82       vendor:
83         type: string
84         required: true
85         description: name of the vendor who generate this VL
86     capabilities:
87       virtual_linkable:
88         type: tosca.capabilities.nfv.VirtualLinkable
89
90   tosca.nodes.nfv.VL.ELine:
91     derived_from: tosca.nodes.nfv.VL
92     capabilities:
93       virtual_linkable:
94         occurrences: 2
95
96   tosca.nodes.nfv.VL.ELAN:
97     derived_from: tosca.nodes.nfv.VL
98
99   tosca.nodes.nfv.VL.ETree:
100     derived_from: tosca.nodes.nfv.VL
101
102   tosca.nodes.nfv.FP:
103     derived_from: tosca.nodes.Root
104     properties:
105       policy:
106         type: string
107         required: false
108         description: name of the vendor who generate this VL
109     requirements:
110       - forwarder:
111           capability: tosca.capabilities.nfv.Forwarder
112           relationship: tosca.relationships.nfv.ForwardsTo
113
114 ##########################################################################
115 # Relationship Type.
116 # A Relationship Type is a reusable entity that defines the type of one
117 # or more relationships between Node Types or Node Templates.
118 ##########################################################################
119
120 relationship_types:
121   tosca.relationships.nfv.VirtualLinksTo:
122     derived_from: tosca.relationships.network.LinksTo
123     valid_target_types: [ tosca.capabilities.nfv.VirtualLinkable ]
124
125   tosca.relationships.nfv.VirtualBindsTo:
126     derived_from: tosca.relationships.network.BindsTo
127     valid_target_types: [ tosca.capabilities.nfv.VirtualBindable ]
128
129   tosca.relationships.nfv.HA:
130     derived_from: tosca.relationships.Root
131     valid_target_types: [ tosca.capabilities.nfv.HA ]
132
133   tosca.relationships.nfv.Monitor:
134     derived_from: tosca.relationships.ConnectsTo
135     valid_target_types: [ tosca.capabilities.nfv.Metric ]
136
137   tosca.relationships.nfv.ForwardsTo:
138     derived_from: tosca.relationships.root
139     valid_target_types: [ tosca.capabilities.nfv.Forwarder]
140
141 ##########################################################################
142 # CapabilityAssignment Type.
143 # A CapabilityAssignment Type is a reusable entity that describes a kind of
144 # capability that a Node Type can declare to expose.
145 ##########################################################################
146
147 capability_types:
148   tosca.capabilities.nfv.VirtualLinkable:
149     derived_from: tosca.capabilities.network.Linkable
150
151   tosca.capabilities.nfv.VirtualBindable:
152     derived_from: tosca.capabilities.network.Bindable
153
154   tosca.capabilities.nfv.HA:
155     derived_from: tosca.capabilities.Root
156     valid_source_types: [ tosca.nodes.nfv.VDU ]
157
158   tosca.capabilities.nfv.HA.ActiveActive:
159     derived_from: tosca.capabilities.nfv.HA
160
161   tosca.capabilities.nfv.HA.ActivePassive:
162     derived_from: tosca.capabilities.nfv.HA
163
164   tosca.capabilities.nfv.Metric:
165     derived_from: tosca.capabilities.Root
166
167   tosca.capabilities.nfv.Forwarder:
168     derived_from: tosca.capabilities.Root
169
170 ##########################################################################
171  # Interfaces Type.
172  # The Interfaces element describes a list of one or more interface
173  # definitions for a modelable entity (e.g., a Node or Relationship Type)
174  # as defined within the TOSCA Simple Profile specification.
175 ##########################################################################
176
177 ##########################################################################
178  # Data Type.
179  # A Datatype is a complex data type declaration which contains other
180  # complex or simple data types.
181 ##########################################################################
182
183 ##########################################################################
184  # Artifact Type.
185  # An Artifact Type is a reusable entity that defines the type of one or more
186  # files which Node Types or Node Templates can have dependent relationships
187  # and used during operations such as during installation or deployment.
188 ##########################################################################
189
190 ##########################################################################
191  # Policy Type.
192  # TOSCA Policy Types represent logical grouping of TOSCA nodes that have
193  # an implied relationship and need to be orchestrated or managed together
194  # to achieve some result.
195 ##########################################################################
196
197 ##########################################################################
198  # Group Type
199  #
200 ##########################################################################
201 group_types:
202   tosca.groups.nfv.VNFFG:
203     derived_from: tosca.groups.Root
204
205     properties:
206       vendor:
207         type: string
208         required: true
209         description: name of the vendor who generate this VNFFG
210
211       version:
212         type: string
213         required: true
214         description: version of this VNFFG
215
216       number_of_endpoints:
217         type: integer
218         required: true
219         description: count of the external endpoints included in this VNFFG
220
221       dependent_virtual_link:
222         type: list
223         entry_schema:
224           type: string
225         required: true
226         description: Reference to a VLD  used in this Forwarding Graph
227
228       connection_point:
229         type: list
230         entry_schema:
231           type: string
232         required: true
233         description: Reference to Connection Points forming the VNFFG
234
235       constituent_vnfs:
236         type: list
237         entry_schema:
238           type: string
239         required: true
240         description: Reference to a list of  VNFD used in this VNF Forwarding Graph