VNFLifecycleManagement.yaml 124 KB
Newer Older
1
openapi: 3.0.2
2
3

info:
4
  title: SOL003 - VNF Lifecycle Management interface
5
6
  description: |
    SOL003 - VNF Lifecycle Management interface
7

8
    IMPORTANT: Please note that this file might be not aligned to the current
9
10
11
    version of the ETSI Group Specification it refers to. In case of
    discrepancies the published ETSI Group Specification takes precedence.

12
    Please report bugs to https://forge.etsi.org/rep/nfv/SOL002-SOL003/issues
13
14
  contact:
    name: NFV-SOL WG
15
  license:
16
    name: ETSI Forge copyright notice
17
    url: https://forge.etsi.org/etsi-forge-copyright-notice.txt
18
  version: "2.0.0-impl:etsi.org:ETSI_NFV_OpenAPI:1"
19
20

externalDocs:
21
22
  description: ETSI GS NFV-SOL 003 V3.5.1
  url: https://www.etsi.org/deliver/etsi_gs/NFV-SOL/001_099/003/03.05.01_60/gs_NFV-SOL003v030501p.pdf
23

24
servers:
Giacomo Bernini's avatar
Giacomo Bernini committed
25
26
  - url: http://127.0.0.1/vnflcm/v2
  - url: https://127.0.0.1/vnflcm/v2
27
28

paths:
29
30
31
  ###############################################################################
  # API Versions                                                                #
  ###############################################################################
32
33
  /api_versions:
    $ref: ../../endpoints/SOL002SOL003_endpoints.yaml#/endpoints/api-versions
34

35
36
37
  ###############################################################################
  # VNF instances                                                               #
  ###############################################################################
38
  /vnf_instances:
39
    #SOL003 location: 5.4.2
40
41
42
43
    parameters:
      - $ref: ../../components/SOL002SOL003_params.yaml#/components/parameters/Accept
      - $ref: ../../components/SOL002SOL003_params.yaml#/components/parameters/Authorization
      - $ref: ../../components/SOL002SOL003_params.yaml#/components/parameters/Version
44
    post:
45
      description: |
46
47
        The POST method creates a new VNF instance resource based on a VNF package that is onboarded
        and in "ENABLED" state. See clause 5.4.2.3.1.
48
49
      requestBody:
        $ref: '#/components/requestBodies/CreateVnfRequest'
50
51
      responses:
        201:
52
          $ref: '#/components/responses/VNFInstances.Post.201'
53
        400:
Francesca Moscatelli's avatar
Francesca Moscatelli committed
54
          $ref: "../../responses/SOL002SOL003_resp.yaml#/components/responses/400"
55
        401:
Francesca Moscatelli's avatar
Francesca Moscatelli committed
56
          $ref: "../../responses/SOL002SOL003_resp.yaml#/components/responses/401"
57
        403:
Francesca Moscatelli's avatar
Francesca Moscatelli committed
58
          $ref: "../../responses/SOL002SOL003_resp.yaml#/components/responses/403"
59
        404:
Francesca Moscatelli's avatar
Francesca Moscatelli committed
60
          $ref: "../../responses/SOL002SOL003_resp.yaml#/components/responses/404"
61
        405:
Francesca Moscatelli's avatar
Francesca Moscatelli committed
62
          $ref: "../../responses/SOL002SOL003_resp.yaml#/components/responses/405"
63
        406:
Francesca Moscatelli's avatar
Francesca Moscatelli committed
64
          $ref: "../../responses/SOL002SOL003_resp.yaml#/components/responses/406"
65
        422:
Francesca Moscatelli's avatar
Francesca Moscatelli committed
66
          $ref: "../../responses/SOL002SOL003_resp.yaml#/components/responses/422"
67
        500:
Francesca Moscatelli's avatar
Francesca Moscatelli committed
68
          $ref: "../../responses/SOL002SOL003_resp.yaml#/components/responses/500"
69
        503:
Francesca Moscatelli's avatar
Francesca Moscatelli committed
70
          $ref: "../../responses/SOL002SOL003_resp.yaml#/components/responses/503"
71
        504:
Francesca Moscatelli's avatar
Francesca Moscatelli committed
72
          $ref: "../../responses/SOL002SOL003_resp.yaml#/components/responses/504"
73

74
    get:
75
      description: |
76
        The GET method queries information about multiple VNF instances. See clause 5.4.2.3.2.
77
      parameters:
78
79
80
81
82
83
        - $ref: ../../components/SOL002SOL003_params.yaml#/components/parameters/filter
        - $ref: ../../components/SOL002SOL003_params.yaml#/components/parameters/all_fields
        - $ref: ../../components/SOL002SOL003_params.yaml#/components/parameters/fields
        - $ref: ../../components/SOL002SOL003_params.yaml#/components/parameters/exclude_fields
        - $ref: ../../components/SOL002SOL003_params.yaml#/components/parameters/exclude_default
        - $ref: ../../components/SOL002SOL003_params.yaml#/components/parameters/nextpage_opaque_marker
84
85
      responses:
        200:
86
          $ref: '#/components/responses/VNFInstances.Get.200'
87
        400:
Francesca Moscatelli's avatar
Francesca Moscatelli committed
88
          $ref: "../../responses/SOL002SOL003_resp.yaml#/components/responses/400"
89
        401:
Francesca Moscatelli's avatar
Francesca Moscatelli committed
90
          $ref: "../../responses/SOL002SOL003_resp.yaml#/components/responses/401"
91
        403:
Francesca Moscatelli's avatar
Francesca Moscatelli committed
92
          $ref: "../../responses/SOL002SOL003_resp.yaml#/components/responses/403"
93
        404:
Francesca Moscatelli's avatar
Francesca Moscatelli committed
94
          $ref: "../../responses/SOL002SOL003_resp.yaml#/components/responses/404"
95
        405:
Francesca Moscatelli's avatar
Francesca Moscatelli committed
96
          $ref: "../../responses/SOL002SOL003_resp.yaml#/components/responses/405"
97
        406:
Francesca Moscatelli's avatar
Francesca Moscatelli committed
98
          $ref: "../../responses/SOL002SOL003_resp.yaml#/components/responses/406"
99
        416:
Francesca Moscatelli's avatar
Francesca Moscatelli committed
100
          $ref: "../../responses/SOL002SOL003_resp.yaml#/components/responses/416"
101
        500:
Francesca Moscatelli's avatar
Francesca Moscatelli committed
102
          $ref: "../../responses/SOL002SOL003_resp.yaml#/components/responses/500"
103
        503:
Francesca Moscatelli's avatar
Francesca Moscatelli committed
104
          $ref: "../../responses/SOL002SOL003_resp.yaml#/components/responses/503"
105
        504:
Francesca Moscatelli's avatar
Francesca Moscatelli committed
106
          $ref: "../../responses/SOL002SOL003_resp.yaml#/components/responses/504"
107

108
109
110
  ###############################################################################
  # Individual VNF instance                                                     #
  ###############################################################################
111
  /vnf_instances/{vnfInstanceId}:
112
113
    #SOL003 location: 5.4.3.2
    parameters:
114
115
116
      - $ref: '#/components/parameters/VnfInstanceId'
      - $ref: ../../components/SOL002SOL003_params.yaml#/components/parameters/Authorization
      - $ref: ../../components/SOL002SOL003_params.yaml#/components/parameters/Version
117
    get:
118
      description: |
119
        The GET method retrieves information about a VNF instance by reading an "Individual VNF instance" resource.
120
        See clause 5.4.3.3.2.
Gergely Csatari's avatar
Gergely Csatari committed
121
      parameters:
122
        - $ref: ../../components/SOL002SOL003_params.yaml#/components/parameters/Accept
123
124
      responses:
        200:
125
          $ref: '#/components/responses/IndividualVnfInstance.Get.200'
126
        400:
Francesca Moscatelli's avatar
Francesca Moscatelli committed
127
          $ref: "../../responses/SOL002SOL003_resp.yaml#/components/responses/400"
128
        401:
Francesca Moscatelli's avatar
Francesca Moscatelli committed
129
          $ref: "../../responses/SOL002SOL003_resp.yaml#/components/responses/401"
130
        403:
Francesca Moscatelli's avatar
Francesca Moscatelli committed
131
          $ref: "../../responses/SOL002SOL003_resp.yaml#/components/responses/403"
132
        404:
Francesca Moscatelli's avatar
Francesca Moscatelli committed
133
          $ref: "../../responses/SOL002SOL003_resp.yaml#/components/responses/404"
134
        405:
Francesca Moscatelli's avatar
Francesca Moscatelli committed
135
          $ref: "../../responses/SOL002SOL003_resp.yaml#/components/responses/405"
136
        406:
Francesca Moscatelli's avatar
Francesca Moscatelli committed
137
          $ref: "../../responses/SOL002SOL003_resp.yaml#/components/responses/406"
138
        416:
Francesca Moscatelli's avatar
Francesca Moscatelli committed
139
          $ref: "../../responses/SOL002SOL003_resp.yaml#/components/responses/416"
140
        500:
Francesca Moscatelli's avatar
Francesca Moscatelli committed
141
          $ref: "../../responses/SOL002SOL003_resp.yaml#/components/responses/500"
142
        503:
Francesca Moscatelli's avatar
Francesca Moscatelli committed
143
          $ref: "../../responses/SOL002SOL003_resp.yaml#/components/responses/503"
144
        504:
Francesca Moscatelli's avatar
Francesca Moscatelli committed
145
          $ref: "../../responses/SOL002SOL003_resp.yaml#/components/responses/504"
146

147
148
    patch:
      #SOL003 location: 5.4.3.3.4
149
      description: |
150
        This method modifies an "Individual VNF instance" resource. See clause 5.4.3.3.4.
151
152
      requestBody:
        $ref: '#/components/requestBodies/VnfInfoModificationRequest'
153
154
      responses:
        202:
155
          $ref: '#/components/responses/IndividualVnfInstance.Patch.202'
156
        400:
Francesca Moscatelli's avatar
Francesca Moscatelli committed
157
          $ref: "../../responses/SOL002SOL003_resp.yaml#/components/responses/400"
158
        401:
Francesca Moscatelli's avatar
Francesca Moscatelli committed
159
          $ref: "../../responses/SOL002SOL003_resp.yaml#/components/responses/401"
160
        403:
Francesca Moscatelli's avatar
Francesca Moscatelli committed
161
          $ref: "../../responses/SOL002SOL003_resp.yaml#/components/responses/403"
162
        404:
Francesca Moscatelli's avatar
Francesca Moscatelli committed
163
          $ref: "../../responses/SOL002SOL003_resp.yaml#/components/responses/404"
164
        405:
Francesca Moscatelli's avatar
Francesca Moscatelli committed
165
          $ref: "../../responses/SOL002SOL003_resp.yaml#/components/responses/405"
166
        406:
Francesca Moscatelli's avatar
Francesca Moscatelli committed
167
          $ref: "../../responses/SOL002SOL003_resp.yaml#/components/responses/406"
168
        409:
169
          #description: |
170
            #409 CONFLICT
171

172
173
174
            #Shall be returned upon the following error: The operation cannot be executed currently,
            #due to a conflict with the state of the "Individual VNF instance" resource.
            #Typically, this is due to the fact that another LCM operation is ongoing.
Francesca Moscatelli's avatar
Francesca Moscatelli committed
175
          $ref: "../../responses/SOL002SOL003_resp.yaml#/components/responses/409"
176
        412:
Francesca Moscatelli's avatar
Francesca Moscatelli committed
177
          $ref: "../../responses/SOL002SOL003_resp.yaml#/components/responses/412"
178
        500:
Francesca Moscatelli's avatar
Francesca Moscatelli committed
179
          $ref: "../../responses/SOL002SOL003_resp.yaml#/components/responses/500"
180
        503:
Francesca Moscatelli's avatar
Francesca Moscatelli committed
181
          $ref: "../../responses/SOL002SOL003_resp.yaml#/components/responses/503"
182

183
184
    delete:
      #SOL003 location: 5.4.3.3.5
185
      description: |
186
        This method deletes an "Individual VNF instance" resource. See clause 5.4.3.3.5.
187
188
      responses:
        204:
189
          $ref: '#/components/responses/IndividualVnfInstance.Delete.204'
190
        400:
Francesca Moscatelli's avatar
Francesca Moscatelli committed
191
          $ref: "../../responses/SOL002SOL003_resp.yaml#/components/responses/400"
192
        401:
Francesca Moscatelli's avatar
Francesca Moscatelli committed
193
          $ref: "../../responses/SOL002SOL003_resp.yaml#/components/responses/401"
194
        403:
Francesca Moscatelli's avatar
Francesca Moscatelli committed
195
          $ref: "../../responses/SOL002SOL003_resp.yaml#/components/responses/403"
196
        404:
Francesca Moscatelli's avatar
Francesca Moscatelli committed
197
          $ref: "../../responses/SOL002SOL003_resp.yaml#/components/responses/404"
198
        405:
Francesca Moscatelli's avatar
Francesca Moscatelli committed
199
          $ref: "../../responses/SOL002SOL003_resp.yaml#/components/responses/405"
200
        406:
Francesca Moscatelli's avatar
Francesca Moscatelli committed
201
          $ref: "../../responses/SOL002SOL003_resp.yaml#/components/responses/406"
202
        409:
203
          #description: |
204
            #409 CONFLICT
205

206
207
208
            #Shall be returned upon the following error: The operation cannot be executed currently,
            #due to a conflict with the state of the resource.
            #Typically, this is due to the fact that the "Individual VNF instance" resource is in INSTANTIATED state.
Francesca Moscatelli's avatar
Francesca Moscatelli committed
209
          $ref: "../../responses/SOL002SOL003_resp.yaml#/components/responses/409"
210
        412:
Francesca Moscatelli's avatar
Francesca Moscatelli committed
211
          $ref: "../../responses/SOL002SOL003_resp.yaml#/components/responses/412"
212
        500:
Francesca Moscatelli's avatar
Francesca Moscatelli committed
213
          $ref: "../../responses/SOL002SOL003_resp.yaml#/components/responses/500"
214
        503:
Francesca Moscatelli's avatar
Francesca Moscatelli committed
215
          $ref: "../../responses/SOL002SOL003_resp.yaml#/components/responses/503"
216

217
218
219
  ###############################################################################
  # Instantiate VNF task                                                        #
  ###############################################################################
220
  /vnf_instances/{vnfInstanceId}/instantiate:
221
222
    #SOL003 location: 5.4.4.2
    parameters:
223
      - $ref: '#/components/parameters/VnfInstanceId'
224
    post:
225
      #SOL003 location: 5.4.4.3.1
226
      description: |
227
        The POST method instantiates a VNF instance. See clause 5.4.4.3.1.
228
      parameters:
229
230
231
232
233
        - $ref: ../../components/SOL002SOL003_params.yaml#/components/parameters/Accept
        - $ref: ../../components/SOL002SOL003_params.yaml#/components/parameters/Authorization
        - $ref: ../../components/SOL002SOL003_params.yaml#/components/parameters/Version
      requestBody:
        $ref: '#/components/requestBodies/InstantiateVnfRequest'
234
      responses:
235
        202:
236
          $ref: '#/components/responses/InstantiateVnfInstance.Post.202'
237
        400:
Francesca Moscatelli's avatar
Francesca Moscatelli committed
238
          $ref: "../../responses/SOL002SOL003_resp.yaml#/components/responses/400"
239
        401:
Francesca Moscatelli's avatar
Francesca Moscatelli committed
240
          $ref: "../../responses/SOL002SOL003_resp.yaml#/components/responses/401"
241
        403:
Francesca Moscatelli's avatar
Francesca Moscatelli committed
242
          $ref: "../../responses/SOL002SOL003_resp.yaml#/components/responses/403"
243
        404:
Francesca Moscatelli's avatar
Francesca Moscatelli committed
244
          $ref: "../../responses/SOL002SOL003_resp.yaml#/components/responses/404"
245
        405:
Francesca Moscatelli's avatar
Francesca Moscatelli committed
246
          $ref: "../../responses/SOL002SOL003_resp.yaml#/components/responses/405"
247
        406:
Francesca Moscatelli's avatar
Francesca Moscatelli committed
248
          $ref: "../../responses/SOL002SOL003_resp.yaml#/components/responses/406"
249
        409:
250
          #description: |
251
252
253
254
255
256
257
            #409 CONFLICT

            #Shall be returned upon the following error: The operation cannot be executed currently,
            #due to a conflict with the state of the resource.
            #Typically, this is due to the fact that the "Individual VNF instance" resource is in INSTANTIATED state,
            #or that a required child attribute of the "extensions" attribute has not been set.
            #Those attributes are marked as "required" in the VNFD.
Francesca Moscatelli's avatar
Francesca Moscatelli committed
258
          $ref: "../../responses/SOL002SOL003_resp.yaml#/components/responses/409"
259
        416:
Francesca Moscatelli's avatar
Francesca Moscatelli committed
260
          $ref: "../../responses/SOL002SOL003_resp.yaml#/components/responses/416"
261
        500:
Francesca Moscatelli's avatar
Francesca Moscatelli committed
262
          $ref: "../../responses/SOL002SOL003_resp.yaml#/components/responses/500"
263
        503:
Francesca Moscatelli's avatar
Francesca Moscatelli committed
264
          $ref: "../../responses/SOL002SOL003_resp.yaml#/components/responses/503"
265
        504:
Francesca Moscatelli's avatar
Francesca Moscatelli committed
266
          $ref: "../../responses/SOL002SOL003_resp.yaml#/components/responses/504"
267

268
269
270
  ###############################################################################
  # Scale VNF task                                                              #
  ###############################################################################
271
  /vnf_instances/{vnfInstanceId}/scale:
272
273
    #SOL003 location: 5.4.5.2
    parameters:
274
      - $ref: '#/components/parameters/VnfInstanceId'
275
    post:
276
      #SOL003 location: 5.4.5.3.1
277
      description: |
278
        The POST method requests to scale a VNF instance resource incrementally. See clause 5.4.5.3.1.
279
      parameters:
280
281
282
283
284
        - $ref: ../../components/SOL002SOL003_params.yaml#/components/parameters/Accept
        - $ref: ../../components/SOL002SOL003_params.yaml#/components/parameters/Authorization
        - $ref: ../../components/SOL002SOL003_params.yaml#/components/parameters/Version
      requestBody:
        $ref: '#/components/requestBodies/ScaleVnfRequest'
285
286
      responses:
        202:
287
          $ref: '#/components/responses/ScaleVnfInstance.Post.202'
288
        400:
Francesca Moscatelli's avatar
Francesca Moscatelli committed
289
          $ref: "../../responses/SOL002SOL003_resp.yaml#/components/responses/400"
290
        401:
Francesca Moscatelli's avatar
Francesca Moscatelli committed
291
          $ref: "../../responses/SOL002SOL003_resp.yaml#/components/responses/401"
292
        403:
Francesca Moscatelli's avatar
Francesca Moscatelli committed
293
          $ref: "../../responses/SOL002SOL003_resp.yaml#/components/responses/403"
294
        404:
295
          #description: |
296
297
298
299
300
301
302
303
304
            #404 NOT FOUND

            #Shall be returned upon the following error: The API producer did not find a current representation
            #for the target resource or is not willing to disclose that one exists.
            #The general cause for this error and its handling is specified in clause 6.4 of ETSI GS NFV-SOL 013,
            #including rules for the presence of the response body.
            #Specifically in case of this task resource, the response code 404 shall also returned if
            #the task is not supported for the VNF instance represented by the parent resource, which means that the
            #task resource consequently does not exist.
Francesca Moscatelli's avatar
Francesca Moscatelli committed
305
          $ref: "../../responses/SOL002SOL003_resp.yaml#/components/responses/404"
306
        405:
Francesca Moscatelli's avatar
Francesca Moscatelli committed
307
          $ref: "../../responses/SOL002SOL003_resp.yaml#/components/responses/405"
308
        406:
Francesca Moscatelli's avatar
Francesca Moscatelli committed
309
          $ref: "../../responses/SOL002SOL003_resp.yaml#/components/responses/406"
310
        409:
311
          #description: |
312
313
314
315
316
317
318
319
            #409 CONFLICT

            #Shall be returned upon the following error: The operation cannot be executed currently,
            #due to a conflict with the state of the resource.
            #Typically, this is due to the fact that the "Individual VNF instance" resource is in
            #NOT_INSTANTIATED state, or that another lifecycle management operation is ongoing, or that
            #a required child attribute of the "extensions" attribute has not been set.
            #Those attributes are marked as "required" in the VNFD.
Francesca Moscatelli's avatar
Francesca Moscatelli committed
320
          $ref: "../../responses/SOL002SOL003_resp.yaml#/components/responses/409"
321
        500:
Francesca Moscatelli's avatar
Francesca Moscatelli committed
322
          $ref: "../../responses/SOL002SOL003_resp.yaml#/components/responses/500"
323
        503:
Francesca Moscatelli's avatar
Francesca Moscatelli committed
324
          $ref: "../../responses/SOL002SOL003_resp.yaml#/components/responses/503"
325
        504:
Francesca Moscatelli's avatar
Francesca Moscatelli committed
326
          $ref: "../../responses/SOL002SOL003_resp.yaml#/components/responses/504"
327

328
329
330
  ###############################################################################
  # Scale VNF to Level task                                                     #
  ###############################################################################
331
  /vnf_instances/{vnfInstanceId}/scale_to_level:
332
333
    #SOL003 location: 5.4.6.2
    parameters:
334
      - $ref: '#/components/parameters/VnfInstanceId'
335
    post:
336
      #SOL003 location: 5.4.6.3.1
337
      description: |
338
        The POST method requests to scale a VNF instance resource to a target level. See clause 5.4.6.3.1.
339
      parameters:
340
341
342
343
344
        - $ref: ../../components/SOL002SOL003_params.yaml#/components/parameters/Accept
        - $ref: ../../components/SOL002SOL003_params.yaml#/components/parameters/Authorization
        - $ref: ../../components/SOL002SOL003_params.yaml#/components/parameters/Version
      requestBody:
        $ref: '#/components/requestBodies/ScaleVnfToLevelRequest'
345
346
      responses:
        202:
347
          $ref: '#/components/responses/ScaleToLevelVnfInstance.Post.202'
348
        400:
Francesca Moscatelli's avatar
Francesca Moscatelli committed
349
          $ref: "../../responses/SOL002SOL003_resp.yaml#/components/responses/400"
350
        401:
Francesca Moscatelli's avatar
Francesca Moscatelli committed
351
          $ref: "../../responses/SOL002SOL003_resp.yaml#/components/responses/401"
352
        403:
Francesca Moscatelli's avatar
Francesca Moscatelli committed
353
          $ref: "../../responses/SOL002SOL003_resp.yaml#/components/responses/403"
354
        404:
355
          #description: |
356
357
358
359
360
361
362
363
364
            #404 NOT FOUND

            #Shall be returned upon the following error: The API producer did not find a current representation
            #for the target resource or is not willing to disclose that one exists.
            #The general cause for this error and its handling is specified in clause 6.4 of ETSI GS NFV-SOL 013,
            #including rules for the presence of the response body.
            #Specifically in case of this task resource, the response code 404 shall also returned if the task
            #is not supported for the VNF instance represented by the parent resource, which means that the task resource
            #consequently does not exist.
Francesca Moscatelli's avatar
Francesca Moscatelli committed
365
          $ref: "../../responses/SOL002SOL003_resp.yaml#/components/responses/404"
366
        405:
Francesca Moscatelli's avatar
Francesca Moscatelli committed
367
          $ref: "../../responses/SOL002SOL003_resp.yaml#/components/responses/405"
368
        406:
Francesca Moscatelli's avatar
Francesca Moscatelli committed
369
          $ref: "../../responses/SOL002SOL003_resp.yaml#/components/responses/406"
370
        409:
371
          #description: |
372
373
374
375
376
377
378
379
            #409 CONFLICT

            #Shall be returned upon the following error: The operation cannot be executed currently,
            #due to a conflict with the state of the resource.
            #Typically, this is due to the fact that the VNF instance resource is in NOT_INSTANTIATED state,
            #that another lifecycle management operation is ongoing, or that a required child attribute of
            #the "extensions" attribute has not been set.
            #Those attributes are marked as "required" in the VNFD.
Francesca Moscatelli's avatar
Francesca Moscatelli committed
380
          $ref: "../../responses/SOL002SOL003_resp.yaml#/components/responses/409"
381
        500:
Francesca Moscatelli's avatar
Francesca Moscatelli committed
382
          $ref: "../../responses/SOL002SOL003_resp.yaml#/components/responses/500"
383
        503:
Francesca Moscatelli's avatar
Francesca Moscatelli committed
384
          $ref: "../../responses/SOL002SOL003_resp.yaml#/components/responses/503"
385
        504:
Francesca Moscatelli's avatar
Francesca Moscatelli committed
386
          $ref: "../../responses/SOL002SOL003_resp.yaml#/components/responses/504"
387

388
389
390
  ###############################################################################
  # Change VNF Flavour task                                                     #
  ###############################################################################
391
  /vnf_instances/{vnfInstanceId}/change_flavour:
392
393
    #SOL003 location: 5.4.7.2
    parameters:
394
      - $ref: '#/components/parameters/VnfInstanceId'
395
    post:
396
      description: |
397
        The POST method changes the deployment flavour of a VNF instance. See clause 5.4.7.3.1.
398
      parameters:
399
400
401
402
403
        - $ref: ../../components/SOL002SOL003_params.yaml#/components/parameters/Accept
        - $ref: ../../components/SOL002SOL003_params.yaml#/components/parameters/Authorization
        - $ref: ../../components/SOL002SOL003_params.yaml#/components/parameters/Version
      requestBody:
        $ref: '#/components/requestBodies/ChangeVnfFlavourRequest'
404
405
      responses:
        202:
406
          $ref: '#/components/responses/ChangeFlavourVnfInstance.Post.202'
407
        400:
Francesca Moscatelli's avatar
Francesca Moscatelli committed
408
          $ref: "../../responses/SOL002SOL003_resp.yaml#/components/responses/400"
409
        401:
Francesca Moscatelli's avatar
Francesca Moscatelli committed
410
          $ref: "../../responses/SOL002SOL003_resp.yaml#/components/responses/401"
411
        403:
Francesca Moscatelli's avatar
Francesca Moscatelli committed
412
          $ref: "../../responses/SOL002SOL003_resp.yaml#/components/responses/403"
413
        404:
414
          #description: |
415
416
417
418
419
420
421
422
423
            #404 NOT FOUND

            #Shall be returned upon the following error: The API producer did not find a current representation
            #for the target resource or is not willing to disclose that one exists.
            #The general cause for this error and its handling is specified in clause 6.4 of ETSI GS NFV-SOL 013,
            #including rules for the presence of the response body.
            #Specifically in case of this task resource, the response code 404 shall also returned if the task
            #is not supported for the VNF instance represented by the parent resource, which means that the task resource
            #consequently does not exist.
Francesca Moscatelli's avatar
Francesca Moscatelli committed
424
          $ref: "../../responses/SOL002SOL003_resp.yaml#/components/responses/404"
425
        405:
Francesca Moscatelli's avatar
Francesca Moscatelli committed
426
          $ref: "../../responses/SOL002SOL003_resp.yaml#/components/responses/405"
427
        406:
Francesca Moscatelli's avatar
Francesca Moscatelli committed
428
          $ref: "../../responses/SOL002SOL003_resp.yaml#/components/responses/406"
429
        409:
430
          #description: |
431
432
433
434
435
436
437
438
            #409 CONFLICT

            #Shall be returned upon the following error: The operation cannot be executed currently,
            #due to a conflict with the state of the resource.
            #Typically, this is due to the fact that the VNF instance resource is in NOT_INSTANTIATED state,
            #that another lifecycle management operation is ongoing, or that a required child attribute of
            #the "extensions" attribute has not been set.
            #Those attributes are marked as "required" in the VNFD.
Francesca Moscatelli's avatar
Francesca Moscatelli committed
439
          $ref: "../../responses/SOL002SOL003_resp.yaml#/components/responses/409"
440
        500:
Francesca Moscatelli's avatar
Francesca Moscatelli committed
441
          $ref: "../../responses/SOL002SOL003_resp.yaml#/components/responses/500"
442
        503:
Francesca Moscatelli's avatar
Francesca Moscatelli committed
443
          $ref: "../../responses/SOL002SOL003_resp.yaml#/components/responses/503"
444
        504:
Francesca Moscatelli's avatar
Francesca Moscatelli committed
445
          $ref: "../../responses/SOL002SOL003_resp.yaml#/components/responses/504"
446

447
448
449
  ###############################################################################
  # Terminate VNF task                                                         #
  ###############################################################################
450
  /vnf_instances/{vnfInstanceId}/terminate:
451
452
    #SOL003 location: 5.4.8.2
    parameters:
453
      - $ref: '#/components/parameters/VnfInstanceId'
454
    post:
455
      description: |
456
457
        The POST method triggers the VNFM to terminate a VNF instance and to request to the VIM the
        release of its used virtualised resources. See clause 5.4.8.3.1.
458
      parameters:
459
460
461
462
463
        - $ref: ../../components/SOL002SOL003_params.yaml#/components/parameters/Accept
        - $ref: ../../components/SOL002SOL003_params.yaml#/components/parameters/Authorization
        - $ref: ../../components/SOL002SOL003_params.yaml#/components/parameters/Version
      requestBody:
        $ref: '#/components/requestBodies/TerminateVnfRequest'
464
465
      responses:
        202:
466
          $ref: '#/components/responses/TerminateVnfInstance.Post.202'
467
        400:
Francesca Moscatelli's avatar
Francesca Moscatelli committed
468
          $ref: "../../responses/SOL002SOL003_resp.yaml#/components/responses/400"
469
        401:
Francesca Moscatelli's avatar
Francesca Moscatelli committed
470
          $ref: "../../responses/SOL002SOL003_resp.yaml#/components/responses/401"
471
        403:
Francesca Moscatelli's avatar
Francesca Moscatelli committed
472
          $ref: "../../responses/SOL002SOL003_resp.yaml#/components/responses/403"
473
        404:
Francesca Moscatelli's avatar
Francesca Moscatelli committed
474
          $ref: "../../responses/SOL002SOL003_resp.yaml#/components/responses/404"
475
        405:
Francesca Moscatelli's avatar
Francesca Moscatelli committed
476
          $ref: "../../responses/SOL002SOL003_resp.yaml#/components/responses/405"
477
        406:
Francesca Moscatelli's avatar
Francesca Moscatelli committed
478
          $ref: "../../responses/SOL002SOL003_resp.yaml#/components/responses/406"
479
        409:
480
          #description: |
481
482
483
484
485
486
487
488
            #409 CONFLICT

            #Shall be returned upon the following error: The operation cannot be executed currently,
            #due to a conflict with the state of the resource.
            #Typically, this is due to the fact that the VNF instance resource is in NOT_INSTANTIATED state,
            #that another lifecycle management operation is ongoing, or that a required child attribute of
            #the "extensions" attribute has not been set.
            #Those attributes are marked as "required" in the VNFD.
Francesca Moscatelli's avatar
Francesca Moscatelli committed
489
          $ref: "../../responses/SOL002SOL003_resp.yaml#/components/responses/409"
490
        500:
Francesca Moscatelli's avatar
Francesca Moscatelli committed
491
          $ref: "../../responses/SOL002SOL003_resp.yaml#/components/responses/500"
492
        503:
Francesca Moscatelli's avatar
Francesca Moscatelli committed
493
          $ref: "../../responses/SOL002SOL003_resp.yaml#/components/responses/503"
494
        504:
Francesca Moscatelli's avatar
Francesca Moscatelli committed
495
          $ref: "../../responses/SOL002SOL003_resp.yaml#/components/responses/504"
496

497
498
499
  ###############################################################################
  # Heal VNF task                                                               #
  ###############################################################################
500
  /vnf_instances/{vnfInstanceId}/heal:
501
502
    #SOL003 location: 5.4.9.2
    parameters:
503
      - $ref: '#/components/parameters/VnfInstanceId'
504
    post:
505
      description: |
506
        The POST method requests to heal a VNF instance. See clause 5.4.9.3.1.
507
      parameters:
508
509
510
511
512
        - $ref: ../../components/SOL002SOL003_params.yaml#/components/parameters/Accept
        - $ref: ../../components/SOL002SOL003_params.yaml#/components/parameters/Authorization
        - $ref: ../../components/SOL002SOL003_params.yaml#/components/parameters/Version
      requestBody:
        $ref: '#/components/requestBodies/HealVnfRequest'
513
514
      responses:
        202:
515
          $ref: '#/components/responses/HealVnfInstance.Post.202'
516
        400:
Francesca Moscatelli's avatar
Francesca Moscatelli committed
517
          $ref: "../../responses/SOL002SOL003_resp.yaml#/components/responses/400"
518
        401:
Francesca Moscatelli's avatar
Francesca Moscatelli committed
519
          $ref: "../../responses/SOL002SOL003_resp.yaml#/components/responses/401"
520
        403:
Francesca Moscatelli's avatar
Francesca Moscatelli committed
521
          $ref: "../../responses/SOL002SOL003_resp.yaml#/components/responses/403"
522
        404:
523
          #description: |
524
525
526
527
528
529
530
531
532
            #404 NOT FOUND

            #Shall be returned upon the following error: The API producer did not find a current representation
            #for the target resource or is not willing to disclose that one exists.
            #The general cause for this error and its handling is specified in clause 6.4 of ETSI GS NFV-SOL 013,
            #including rules for the presence of the response body.
            #Specifically in case of this task resource, the response code 404 shall also returned if the task is
            #not supported for the VNF instance represented by the parent resource, which means that the task resource
            #consequently does not exist.
Francesca Moscatelli's avatar
Francesca Moscatelli committed
533
          $ref: "../../responses/SOL002SOL003_resp.yaml#/components/responses/404"
534
        405:
Francesca Moscatelli's avatar
Francesca Moscatelli committed
535
          $ref: "../../responses/SOL002SOL003_resp.yaml#/components/responses/405"
536
        406:
Francesca Moscatelli's avatar
Francesca Moscatelli committed
537
          $ref: "../../responses/SOL002SOL003_resp.yaml#/components/responses/406"
538
        409:
539
          #description: |
540
541
542
543
544
545
546
547
            #409 CONFLICT

            #Shall be returned upon the following error: The operation cannot be executed currently,
            #due to a conflict with the state of the resource.
            #Typically, this is due to the fact that the VNF instance resource is in NOT_INSTANTIATED state,
            #that another lifecycle management operation is ongoing, or that a required child attribute of
            #the "extensions" attribute has not been set.
            #Those attributes are marked as "required" in the VNFD.
Francesca Moscatelli's avatar
Francesca Moscatelli committed
548
          $ref: "../../responses/SOL002SOL003_resp.yaml#/components/responses/409"
549
        500:
Francesca Moscatelli's avatar
Francesca Moscatelli committed
550
          $ref: "../../responses/SOL002SOL003_resp.yaml#/components/responses/500"
551
        503:
Francesca Moscatelli's avatar
Francesca Moscatelli committed
552
          $ref: "../../responses/SOL002SOL003_resp.yaml#/components/responses/503"
553
        504:
Francesca Moscatelli's avatar
Francesca Moscatelli committed
554
          $ref: "../../responses/SOL002SOL003_resp.yaml#/components/responses/504"
555

556
557
558
  ###############################################################################
  # Operate VNF task                                                            #
  ###############################################################################
559
  /vnf_instances/{vnfInstanceId}/operate:
560
    #SOL003 location: 5.4.10.2
561
    parameters:
562
      - $ref: '#/components/parameters/VnfInstanceId'
563
    post:
564
      description: |
565
        The POST method changes the operational state of a VNF instance. See clause 5.4.10.3.1.
566
      parameters:
567
568
569
570
571
        - $ref: ../../components/SOL002SOL003_params.yaml#/components/parameters/Accept
        - $ref: ../../components/SOL002SOL003_params.yaml#/components/parameters/Authorization
        - $ref: ../../components/SOL002SOL003_params.yaml#/components/parameters/Version
      requestBody:
        $ref: '#/components/requestBodies/OperateVnfRequest'
572
573
      responses:
        202:
574
          $ref: '#/components/responses/OperateVnfInstance.Post.202'
575
        400:
Francesca Moscatelli's avatar
Francesca Moscatelli committed
576
          $ref: "../../responses/SOL002SOL003_resp.yaml#/components/responses/400"
577
        401:
Francesca Moscatelli's avatar
Francesca Moscatelli committed
578
          $ref: "../../responses/SOL002SOL003_resp.yaml#/components/responses/401"
579
        403:
Francesca Moscatelli's avatar
Francesca Moscatelli committed
580
          $ref: "../../responses/SOL002SOL003_resp.yaml#/components/responses/403"
581
        404:
582
          #description: |
583
584
585
586
587
588
589
590
591
            #404 NOT FOUND

            #Shall be returned upon the following error: The API producer did not find a current representation
            #for the target resource or is not willing to disclose that one exists.
            #The general cause for this error and its handling is specified in clause 6.4 of ETSI GS NFV-SOL 013,
            #including rules for the presence of the response body.
            #Specifically in case of this task resource, the response code 404 shall also returned if the task is
            #not supported for the VNF instance represented by the parent resource, which means that the task resource
            #consequently does not exist.
Francesca Moscatelli's avatar
Francesca Moscatelli committed
592
          $ref: "../../responses/SOL002SOL003_resp.yaml#/components/responses/404"
593
        405:
Francesca Moscatelli's avatar
Francesca Moscatelli committed
594
          $ref: "../../responses/SOL002SOL003_resp.yaml#/components/responses/405"
595
        406:
Francesca Moscatelli's avatar
Francesca Moscatelli committed
596
          $ref: "../../responses/SOL002SOL003_resp.yaml#/components/responses/406"
597
        409:
598
          #description: |
599
600
601
602
603
604
605
606
            #409 CONFLICT

            #Shall be returned upon the following error: The operation cannot be executed currently,
            #due to a conflict with the state of the resource.
            #Typically, this is due to the fact that the VNF instance resource is in NOT_INSTANTIATED state,
            #that another lifecycle management operation is ongoing, or that a required child attribute of
            #the "extensions" attribute has not been set.
            #Those attributes are marked as "required" in the VNFD.
Francesca Moscatelli's avatar
Francesca Moscatelli committed
607
          $ref: "../../responses/SOL002SOL003_resp.yaml#/components/responses/409"
608
        500:
Francesca Moscatelli's avatar
Francesca Moscatelli committed
609
          $ref: "../../responses/SOL002SOL003_resp.yaml#/components/responses/500"
610
        503:
Francesca Moscatelli's avatar
Francesca Moscatelli committed
611
          $ref: "../../responses/SOL002SOL003_resp.yaml#/components/responses/503"
612
        504:
Francesca Moscatelli's avatar
Francesca Moscatelli committed
613
          $ref: "../../responses/SOL002SOL003_resp.yaml#/components/responses/504"
614

615
616
617
  ###############################################################################
  # Change external VNF connectivity task                                       #
  ###############################################################################
618
  /vnf_instances/{vnfInstanceId}/change_ext_conn:
619
    #SOL003 location: 5.4.11.2
620
    parameters:
621
      - $ref: '#/components/parameters/VnfInstanceId'
622
    post:
623
      description: |
624
        The POST method changes the external connectivity of a VNF instance. See clause 5.4.11.3.1.
625
      parameters:
626
627
628
629
630
        - $ref: ../../components/SOL002SOL003_params.yaml#/components/parameters/Accept
        - $ref: ../../components/SOL002SOL003_params.yaml#/components/parameters/Authorization
        - $ref: ../../components/SOL002SOL003_params.yaml#/components/parameters/Version
      requestBody:
        $ref: '#/components/requestBodies/ChangeExtVnfConnectivityRequest'
631
632
      responses:
        202:
633
          $ref: '#/components/responses/ChangeExtConnVnfInstance.Post.202'
634
        400:
Francesca Moscatelli's avatar
Francesca Moscatelli committed
635
          $ref: "../../responses/SOL002SOL003_resp.yaml#/components/responses/400"
636
        401:
Francesca Moscatelli's avatar
Francesca Moscatelli committed
637
          $ref: "../../responses/SOL002SOL003_resp.yaml#/components/responses/401"
638
        403:
Francesca Moscatelli's avatar
Francesca Moscatelli committed
639
          $ref: "../../responses/SOL002SOL003_resp.yaml#/components/responses/403"
640
        404:
Francesca Moscatelli's avatar
Francesca Moscatelli committed
641
          $ref: "../../responses/SOL002SOL003_resp.yaml#/components/responses/404"
642
        405:
Francesca Moscatelli's avatar
Francesca Moscatelli committed
643
          $ref: "../../responses/SOL002SOL003_resp.yaml#/components/responses/405"
644
        406:
Francesca Moscatelli's avatar
Francesca Moscatelli committed
645
          $ref: "../../responses/SOL002SOL003_resp.yaml#/components/responses/406"
646
        409:
647
          #description: |
648
649
650
651
652
653
654
            #409 CONFLICT

            #Shall be returned upon the following error: The operation cannot be executed currently,
            #due to a conflict with the state of the resource.
            #Typically, this is due to the fact that another lifecycle management operation is ongoing,
            #or that a required child attribute of the "extensions" attribute has not been set.
            #Those attributes are marked as "required" in the VNFD.
Francesca Moscatelli's avatar
Francesca Moscatelli committed
655
          $ref: "../../responses/SOL002SOL003_resp.yaml#/components/responses/409"
656
        500:
Francesca Moscatelli's avatar
Francesca Moscatelli committed
657
          $ref: "../../responses/SOL002SOL003_resp.yaml#/components/responses/500"
658
        503:
Francesca Moscatelli's avatar
Francesca Moscatelli committed
659
          $ref: "../../responses/SOL002SOL003_resp.yaml#/components/responses/503"
660
        504:
Francesca Moscatelli's avatar
Francesca Moscatelli committed
661
          $ref: "../../responses/SOL002SOL003_resp.yaml#/components/responses/504"
662

663
664
665
  ###############################################################################
  # Change current VNF package task                                             #
  ###############################################################################
666
  /vnf_instances/{vnfInstanceId}/change_vnfpkg:
667
668
    #SOL003 location: 5.4.11a.2
    parameters:
669
      - $ref: '#/components/parameters/VnfInstanceId'
670
    post:
671
      description: |
672
        The POST method changes the current VNF package on which the VNF instance is based. See clause 5.4.11a.3.1.
673
      parameters:
674
675
676
677
678
        - $ref: ../../components/SOL002SOL003_params.yaml#/components/parameters/Accept
        - $ref: ../../components/SOL002SOL003_params.yaml#/components/parameters/Authorization
        - $ref: ../../components/SOL002SOL003_params.yaml#/components/parameters/Version
      requestBody:
        $ref: '#/components/requestBodies/ChangeCurrentVnfPkgRequest'
679
680
      responses:
        202:
681
          $ref: '#/components/responses/ChangeVnfpkgVnfInstance.Post.202'
682
683
684
685
686
687
688
689
690
691
692
693
694
        400:
          $ref: "../../responses/SOL002SOL003_resp.yaml#/components/responses/400"
        401:
          $ref: "../../responses/SOL002SOL003_resp.yaml#/components/responses/401"
        403:
          $ref: "../../responses/SOL002SOL003_resp.yaml#/components/responses/403"
        404:
          $ref: "../../responses/SOL002SOL003_resp.yaml#/components/responses/404"
        405:
          $ref: "../../responses/SOL002SOL003_resp.yaml#/components/responses/405"
        406:
          $ref: "../../responses/SOL002SOL003_resp.yaml#/components/responses/406"
        409:
695
          #description: |
696
697
698
699
700
701
702
703
704
705
706
707
708
709
710
            #409 CONFLICT

            #Shall be returned upon the following error: The operation cannot be executed currently,
            #due to a conflict with the state of the resource.
            #Typically, this is due to the fact that another lifecycle management operation is ongoing,
            #or that a required child attribute of the "extensions" attribute has not been set.
            #Those attributes are marked as "required" in the VNFD.
          $ref: "../../responses/SOL002SOL003_resp.yaml#/components/responses/409"
        500:
          $ref: "../../responses/SOL002SOL003_resp.yaml#/components/responses/500"
        503:
          $ref: "../../responses/SOL002SOL003_resp.yaml#/components/responses/503"
        504:
          $ref: "../../responses/SOL002SOL003_resp.yaml#/components/responses/504"

711
712
713
  ###############################################################################
  # VNF LCM operation occurrences                                               #
  ###############################################################################
714
  /vnf_lcm_op_occs:
715
    #SOL003 location: 5.4.12
716
    get:
717
      description: |
718
719
        The API consumer can use this method to query status information about multiple VNF lifecycle management
        operation occurrences. See clause 5.4.12.3.2.
Gergely Csatari's avatar
Gergely Csatari committed
720
      parameters:
721
722
723
724
725
        - $ref: ../../components/SOL002SOL003_params.yaml#/components/parameters/Accept
        - $ref: ../../components/SOL002SOL003_params.yaml#/components/parameters/Authorization
        - $ref: ../../components/SOL002SOL003_params.yaml#/components/parameters/filter
        - $ref: ../../components/SOL002SOL003_params.yaml#/components/parameters/all_fields
        - $ref: ../../components/SOL002SOL003_params.yaml#/components/parameters/fields
726
727
728
729
730
731
732
733
734
735
736
737
738
739
740
741
742
743
744
        - in: query
          name: exclude_default
          description: >
              Indicates to exclude the following complex attributes from the response.
              See clause 5.3 of ETSI GS NFV-SOL 013 for details. The VNFM shall support this parameter.
              The following attributes shall be excluded from the VnfLcmOpOcc structure in the response
              body if this parameter is provided, or none of the parameters "all_fields," "fields",
              "exclude_fields", "exclude_default" are provided:
              -	operationParams
              -	error
              -	resourceChanges
              -	changedInfo
              -	changedExtConnectivity.
              -	lcmCoordinations
              -	modificationsTriggeredByVnfPkgChange
              -	warnings
              required: false
          schema:
             type: string
745
746
747
        - $ref: ../../components/SOL002SOL003_params.yaml#/components/parameters/exclude_default
        - $ref: ../../components/SOL002SOL003_params.yaml#/components/parameters/nextpage_opaque_marker
        - $ref: ../../components/SOL002SOL003_params.yaml#/components/parameters/Version
748
749
      responses:
        200:
750
          $ref: '#/components/responses/VnfLcmOpOccs.Get.200'
751
        400:
Francesca Moscatelli's avatar
Francesca Moscatelli committed
752
          $ref: "../../responses/SOL002SOL003_resp.yaml#/components/responses/400"
753
        401:
Francesca Moscatelli's avatar
Francesca Moscatelli committed
754
          $ref: "../../responses/SOL002SOL003_resp.yaml#/components/responses/401"
755
        403:
Francesca Moscatelli's avatar
Francesca Moscatelli committed
756
          $ref: "../../responses/SOL002SOL003_resp.yaml#/components/responses/403"
757
        404:
Francesca Moscatelli's avatar
Francesca Moscatelli committed
758
          $ref: "../../responses/SOL002SOL003_resp.yaml#/components/responses/404"
759
        405:
Francesca Moscatelli's avatar
Francesca Moscatelli committed
760
          $ref: "../../responses/SOL002SOL003_resp.yaml#/components/responses/405"
761
        406:
Francesca Moscatelli's avatar
Francesca Moscatelli committed
762
          $ref: "../../responses/SOL002SOL003_resp.yaml#/components/responses/406"
763
        500:
Francesca Moscatelli's avatar
Francesca Moscatelli committed
764
          $ref: "../../responses/SOL002SOL003_resp.yaml#/components/responses/500"
765
        503:
Francesca Moscatelli's avatar
Francesca Moscatelli committed
766
          $ref: "../../responses/SOL002SOL003_resp.yaml#/components/responses/503"
767
        504:
Francesca Moscatelli's avatar
Francesca Moscatelli committed
768
          $ref: "../../responses/SOL002SOL003_resp.yaml#/components/responses/504"
769

770

771
772
773
  ###############################################################################
  # Individual VNF LCM operation occurrence                                     #
  ###############################################################################
774
  /vnf_lcm_op_occs/{vnfLcmOpOccId}:
775
776
    #SOL003 location: 5.4.13
    parameters:
777
      - $ref: '#/components/parameters/VnfLcmOpOccId'