VNFLifecycleManagement.yaml 146 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
  description: ETSI GS NFV-SOL 003 V3.3.1
22
  url: https://www.etsi.org/deliver/etsi_gs/NFV-SOL/001_099/003/03.03.01_60/gs_NFV-SOL003v030301p.pdf
23

24 25 26
servers:
  - url: http://127.0.0.1/vnflcm/v1
  - url: https://127.0.0.1/vnflcm/v1
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.
48 49 50 51 52 53 54
        This method shall follow the provisions specified in the tables 5.4.2.3.1-1 and 5.4.2.3.1-2
        for URI query parameters, request and response data structures, and response codes.
        As the result of successfully executing this method, a new "Individual VNF instance"
        resource as defined in clause 5.4.3 shall have been created, and the value of the
        "instantiationState" attribute in the representation of that resource shall be "NOT_INSTANTIATED".
        A notification of type VnfIdentifierCreationNotification shall be triggered as part of successfully
        executing this method as defined in clause 5.5.2.18.
55 56 57 58
        When initiating the creation of a VNF instance resource, the passed metadata values can differ from 
        the default values for metadata, if any, declared in the VNFD.
        The VNFM shall apply the "metadata" attributes in the "CreateVnfRequest" data structure in the payload 
        body to the "metadata" attribute in the "VnfInstance" data structure on top of the default values that 
59
        were obtained from the VNFD according to the rules of JSON Merge Patch (see IETF RFC 7396). 
60
        For all metadata keys defined in the VNFD, the VNFM shall ensure that the content of the resulting 
61 62 63 64
        "metadata" attributes is valid against the data type definitions in the VNFD. The absence of a metadata 
        item that is marked "required" in the VNFD shall not be treated as an error. In case a "metadata" child 
        attribute is not defined in the VNFD, the VNFM shall consider it valid in case it is a valid JSON structure. 
        In case of an error, the operation shall be rejected with a "422 Unprocessable Entity" error.
65 66
      requestBody:
        $ref: '#/components/requestBodies/CreateVnfRequest'
67 68
      responses:
        201:
69
          $ref: '#/components/responses/VNFInstances.Post.201'
70
        400:
f.moscatelli's avatar
f.moscatelli committed
71
          $ref: "../../responses/SOL002SOL003_resp.yaml#/components/responses/400"
72
        401:
f.moscatelli's avatar
f.moscatelli committed
73
          $ref: "../../responses/SOL002SOL003_resp.yaml#/components/responses/401"
74
        403:
f.moscatelli's avatar
f.moscatelli committed
75
          $ref: "../../responses/SOL002SOL003_resp.yaml#/components/responses/403"
76
        404:
f.moscatelli's avatar
f.moscatelli committed
77
          $ref: "../../responses/SOL002SOL003_resp.yaml#/components/responses/404"
78
        405:
f.moscatelli's avatar
f.moscatelli committed
79
          $ref: "../../responses/SOL002SOL003_resp.yaml#/components/responses/405"
80
        406:
f.moscatelli's avatar
f.moscatelli committed
81
          $ref: "../../responses/SOL002SOL003_resp.yaml#/components/responses/406"
82
        422:
f.moscatelli's avatar
f.moscatelli committed
83
          $ref: "../../responses/SOL002SOL003_resp.yaml#/components/responses/422"
84
        500:
f.moscatelli's avatar
f.moscatelli committed
85
          $ref: "../../responses/SOL002SOL003_resp.yaml#/components/responses/500"
86
        503:
f.moscatelli's avatar
f.moscatelli committed
87
          $ref: "../../responses/SOL002SOL003_resp.yaml#/components/responses/503"
88
        504:
f.moscatelli's avatar
f.moscatelli committed
89
          $ref: "../../responses/SOL002SOL003_resp.yaml#/components/responses/504"
90

91
    get:
92
      description: |
93
        Query VNF.
94 95
        The GET method queries information about multiple VNF instances.
      parameters:
96 97 98 99 100 101
        - $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
102 103
      responses:
        200:
104
          $ref: '#/components/responses/VNFInstances.Get.200'
105
        400:
f.moscatelli's avatar
f.moscatelli committed
106
          $ref: "../../responses/SOL002SOL003_resp.yaml#/components/responses/400"
107
        401:
f.moscatelli's avatar
f.moscatelli committed
108
          $ref: "../../responses/SOL002SOL003_resp.yaml#/components/responses/401"
109
        403:
f.moscatelli's avatar
f.moscatelli committed
110
          $ref: "../../responses/SOL002SOL003_resp.yaml#/components/responses/403"
111
        404:
f.moscatelli's avatar
f.moscatelli committed
112
          $ref: "../../responses/SOL002SOL003_resp.yaml#/components/responses/404"
113
        405:
f.moscatelli's avatar
f.moscatelli committed
114
          $ref: "../../responses/SOL002SOL003_resp.yaml#/components/responses/405"
115
        406:
f.moscatelli's avatar
f.moscatelli committed
116
          $ref: "../../responses/SOL002SOL003_resp.yaml#/components/responses/406"
117
        416:
f.moscatelli's avatar
f.moscatelli committed
118
          $ref: "../../responses/SOL002SOL003_resp.yaml#/components/responses/416"
119
        500:
f.moscatelli's avatar
f.moscatelli committed
120
          $ref: "../../responses/SOL002SOL003_resp.yaml#/components/responses/500"
121
        503:
f.moscatelli's avatar
f.moscatelli committed
122
          $ref: "../../responses/SOL002SOL003_resp.yaml#/components/responses/503"
123
        504:
f.moscatelli's avatar
f.moscatelli committed
124
          $ref: "../../responses/SOL002SOL003_resp.yaml#/components/responses/504"
125

126 127 128
  ###############################################################################
  # Individual VNF instance                                                     #
  ###############################################################################
129
  /vnf_instances/{vnfInstanceId}:
130 131
    #SOL003 location: 5.4.3.2
    parameters:
132 133 134
      - $ref: '#/components/parameters/VnfInstanceId'
      - $ref: ../../components/SOL002SOL003_params.yaml#/components/parameters/Authorization
      - $ref: ../../components/SOL002SOL003_params.yaml#/components/parameters/Version
135
    get:
136
      description: |
137
        Query VNF.
Gergely Csatari's avatar
Gergely Csatari committed
138

139 140 141
        The GET method retrieves information about a VNF instance by reading an "Individual VNF instance" resource.
        This method shall follow the provisions specified in the tables 5.4.3.3.2-1 and 5.4.3.3.2-2
        for URI query parameters, request and response data structures, and response codes.
Gergely Csatari's avatar
Gergely Csatari committed
142
      parameters:
143
        - $ref: ../../components/SOL002SOL003_params.yaml#/components/parameters/Accept
144 145
      responses:
        200:
146
          $ref: '#/components/responses/IndividualVnfInstance.Get.200'
147
        400:
f.moscatelli's avatar
f.moscatelli committed
148
          $ref: "../../responses/SOL002SOL003_resp.yaml#/components/responses/400"
149
        401:
f.moscatelli's avatar
f.moscatelli committed
150
          $ref: "../../responses/SOL002SOL003_resp.yaml#/components/responses/401"
151
        403:
f.moscatelli's avatar
f.moscatelli committed
152
          $ref: "../../responses/SOL002SOL003_resp.yaml#/components/responses/403"
153
        404:
f.moscatelli's avatar
f.moscatelli committed
154
          $ref: "../../responses/SOL002SOL003_resp.yaml#/components/responses/404"
155
        405:
f.moscatelli's avatar
f.moscatelli committed
156
          $ref: "../../responses/SOL002SOL003_resp.yaml#/components/responses/405"
157
        406:
f.moscatelli's avatar
f.moscatelli committed
158
          $ref: "../../responses/SOL002SOL003_resp.yaml#/components/responses/406"
159
        416:
f.moscatelli's avatar
f.moscatelli committed
160
          $ref: "../../responses/SOL002SOL003_resp.yaml#/components/responses/416"
161
        500:
f.moscatelli's avatar
f.moscatelli committed
162
          $ref: "../../responses/SOL002SOL003_resp.yaml#/components/responses/500"
163
        503:
f.moscatelli's avatar
f.moscatelli committed
164
          $ref: "../../responses/SOL002SOL003_resp.yaml#/components/responses/503"
165
        504:
f.moscatelli's avatar
f.moscatelli committed
166
          $ref: "../../responses/SOL002SOL003_resp.yaml#/components/responses/504"
167

168 169
    patch:
      #SOL003 location: 5.4.3.3.4
170
      description: |
171
        Modify VNF Information.
172 173 174 175 176 177 178 179 180
        This method modifies an "Individual VNF instance" resource.
        Changes to the VNF configurable properties are applied to the configuration in the VNF instance,
        and are reflected in the representation of this resource.
        Other changes are applied to the VNF instance information managed by the VNFM, and are reflected
        in the representation of this resource.
        This method shall follow the provisions specified in the tables 5.4.3.3.4-1 and 5.4.3.3.4-2
        for URI query parameters, request and response data structures, and response codes.
        The steps and conditions that apply as the result of successfully executing this method are
        specified in clause 5.4.1.2.
181

182
        The VNFM shall apply the "metadata", "extensions" and "vnfConfigurableProperties" attributes in the 
183 184
        "VnfInfoModificationRequest" data structure in the payload body to the existing "extensions" and
        "vnfConfigurableProperties" attributes from the "VnfInstance" data structure according to the 
185 186 187 188 189 190 191 192 193 194 195 196 197 198
        rules of JSON Merge Patch (see IETF RFC 7396).
        The VNFM shall ensure that the content of the child attributes of the resulting "metadata", "extensions" 
        and "vnfConfigurableProperties" attributes is valid against the data types definitions of these child 
        attributes in the VNFD. 

        In case a "metadata" child attribute is not defined in the VNFD, the VNFM shall consider it valid in 
        case it is a valid JSON structure.

        NOTE: "Extensions" and "vnfConfigurableProperties" child attributes are always declared in the VNFD.
        
        If the VNF instance is in the "INSTANTIATED" state, the validation shall also include 
        ensuring the presence of all "extensions" and "vnfConfigurableProperties" child attributes that are 
        marked as "required" in the VNFD. 

199 200
        NOTE: This allows to build the set of "extensions" and "vnfConfigurableProperties" incrementally 
        prior VNF instantiation but ensures their completeness for an instantiated VNF instance.
201 202 203

        The absence of a metadata item that is marked "required" in the VNFD shall not be treated as an error.

204 205 206
        In case of an error during validation, the operation shall be automatically rolled back, and 
        appropriate error information shall be provided in the "VnfLcmOperationOccurrenceNotification" 
        message and the "VnfLcmOpOcc" data structure. 
207 208 209
        The processing of changes to the "metadata" / "extensions" / "vnfConfigurableProperties" attributes 
        shall be performed in the "PROCESSING" phase of the LCM operation. The change shall be atomic, i.e. the 
        result of intermediate stages shall not be visible in the API. In case of successful completion of the 
210 211
        processing and validation, the attributes shall be provided in the "VnfInstance" data structure and 
        the operation shall proceed towards successful completion.
212 213
      requestBody:
        $ref: '#/components/requestBodies/VnfInfoModificationRequest'
214 215
      responses:
        202:
216
          $ref: '#/components/responses/IndividualVnfInstance.Patch.202'
217
        400:
f.moscatelli's avatar
f.moscatelli committed
218
          $ref: "../../responses/SOL002SOL003_resp.yaml#/components/responses/400"
219
        401:
f.moscatelli's avatar
f.moscatelli committed
220
          $ref: "../../responses/SOL002SOL003_resp.yaml#/components/responses/401"
221
        403:
f.moscatelli's avatar
f.moscatelli committed
222
          $ref: "../../responses/SOL002SOL003_resp.yaml#/components/responses/403"
223
        404:
f.moscatelli's avatar
f.moscatelli committed
224
          $ref: "../../responses/SOL002SOL003_resp.yaml#/components/responses/404"
225
        405:
f.moscatelli's avatar
f.moscatelli committed
226
          $ref: "../../responses/SOL002SOL003_resp.yaml#/components/responses/405"
227
        406:
f.moscatelli's avatar
f.moscatelli committed
228
          $ref: "../../responses/SOL002SOL003_resp.yaml#/components/responses/406"
229
        409:
230
          #description: |
231
            #409 CONFLICT
232

233 234 235
            #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.
f.moscatelli's avatar
f.moscatelli committed
236
          $ref: "../../responses/SOL002SOL003_resp.yaml#/components/responses/409"
237
        412:
f.moscatelli's avatar
f.moscatelli committed
238
          $ref: "../../responses/SOL002SOL003_resp.yaml#/components/responses/412"
239
        500:
f.moscatelli's avatar
f.moscatelli committed
240
          $ref: "../../responses/SOL002SOL003_resp.yaml#/components/responses/500"
241
        503:
f.moscatelli's avatar
f.moscatelli committed
242
          $ref: "../../responses/SOL002SOL003_resp.yaml#/components/responses/503"
243

244 245
    delete:
      #SOL003 location: 5.4.3.3.5
246
      description: |
247
        Delete VNF Identifier.
248 249 250 251 252 253 254
        This method deletes an "Individual VNF instance" resource.
        This method shall follow the provisions specified in the tables 5.4.3.3.5-1 and 5.4.3.3.5-2
        for URI query parameters, request and response data structures, and response codes.
        As the result of successfully executing this method, the "Individual VNF instance" resource
        shall not exist any longer.
        A notification of type "VnfIdentifierDeletionNotification" shall be triggered as part of successfully
        executing this method as defined in clause 5.5.2.19.
255 256
      responses:
        204:
257
          $ref: '#/components/responses/IndividualVnfInstance.Delete.204'
258
        400:
f.moscatelli's avatar
f.moscatelli committed
259
          $ref: "../../responses/SOL002SOL003_resp.yaml#/components/responses/400"
260
        401:
f.moscatelli's avatar
f.moscatelli committed
261
          $ref: "../../responses/SOL002SOL003_resp.yaml#/components/responses/401"
262
        403:
f.moscatelli's avatar
f.moscatelli committed
263
          $ref: "../../responses/SOL002SOL003_resp.yaml#/components/responses/403"
264
        404:
f.moscatelli's avatar
f.moscatelli committed
265
          $ref: "../../responses/SOL002SOL003_resp.yaml#/components/responses/404"
266
        405:
f.moscatelli's avatar
f.moscatelli committed
267
          $ref: "../../responses/SOL002SOL003_resp.yaml#/components/responses/405"
268
        406:
f.moscatelli's avatar
f.moscatelli committed
269
          $ref: "../../responses/SOL002SOL003_resp.yaml#/components/responses/406"
270
        409:
271
          #description: |
272
            #409 CONFLICT
273

274 275 276
            #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.
f.moscatelli's avatar
f.moscatelli committed
277
          $ref: "../../responses/SOL002SOL003_resp.yaml#/components/responses/409"
278
        412:
f.moscatelli's avatar
f.moscatelli committed
279
          $ref: "../../responses/SOL002SOL003_resp.yaml#/components/responses/412"
280
        500:
f.moscatelli's avatar
f.moscatelli committed
281
          $ref: "../../responses/SOL002SOL003_resp.yaml#/components/responses/500"
282
        503:
f.moscatelli's avatar
f.moscatelli committed
283
          $ref: "../../responses/SOL002SOL003_resp.yaml#/components/responses/503"
284

285 286 287
  ###############################################################################
  # Instantiate VNF task                                                        #
  ###############################################################################
288
  /vnf_instances/{vnfInstanceId}/instantiate:
289 290
    #SOL003 location: 5.4.4.2
    parameters:
291
      - $ref: '#/components/parameters/VnfInstanceId'
292
    post:
293
      #SOL003 location: 5.4.4.3.1
294
      description: |
295
        Instantiate VNF.
296
        The POST method instantiates a VNF instance.
297 298 299 300 301 302 303
        This method shall follow the provisions specified in the tables 5.4.4.3.1-1 and 5.4.4.3.1-2
        for URI query parameters, request and response data structures, and response codes.
        The steps and conditions that apply as the result of successfully executing this method
        are specified in clause 5.4.1.2.
        In addition, once the VNFM has successfully completed the underlying VNF LCM operation occurrence,
        it shall set the "instantiationState" attribute to the value "INSTANTIATED" and the "vnfState"
        attribute to the value "STARTED" in the representation of the "Individual VNF instance" resource.
304 305 306 307 308 309 310
        
        When instantiating a VNF instance, the values of the extensions and/or VNF configurable properties 
        passed in the instantiation request can differ from the values in the "VnfInstance" data structure 
        that were initialized from default values, if any, declared in the VNFD. 
        The VNFM shall apply the "extensions" and "vnfConfigurableProperties" attributes in the 
        "InstantiateVnfRequest" data structure in the payload body to the existing "extensions" and 
        "vnfConfigurableProperties" attributes from the "VnfInstance" data structure according to the rules 
311
        of JSON Merge Patch (see IETF RFC 7396). The VNFM shall ensure that the content of the resulting 
312 313 314 315 316 317 318 319 320
        "extensions" and "vnfConfigurableProperties" attributes is valid against the VNFD (including the 
        presence of all child attributes that are marked as "required" in the VNFD). In case of an error 
        during validation, the operation shall be automatically rolled back, and appropriate error information 
        shall be provided in the "VnfLcmOperationOccurrenceNotification" message and the "VnfLcmOpOcc" 
        data structure. The processing of changes to the "extensions" / "vnfConfigurableProperties" attributes 
        shall be performed in the "STARTING" phase of the LCM operation. The change shall be atomic, i.e. 
        the result of intermediate stages shall not be visible in the API. In case of successful completion 
        of the processing and validation, the attributes shall be provided in the "VnfInstance" data structure 
        and the operation shall proceed to obtain the grant.
321
      parameters:
322 323 324 325 326
        - $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'
327
      responses:
328
        202:
329
          $ref: '#/components/responses/InstantiateVnfInstance.Post.202'
330
        400:
f.moscatelli's avatar
f.moscatelli committed
331
          $ref: "../../responses/SOL002SOL003_resp.yaml#/components/responses/400"
332
        401:
f.moscatelli's avatar
f.moscatelli committed
333
          $ref: "../../responses/SOL002SOL003_resp.yaml#/components/responses/401"
334
        403:
f.moscatelli's avatar
f.moscatelli committed
335
          $ref: "../../responses/SOL002SOL003_resp.yaml#/components/responses/403"
336
        404:
f.moscatelli's avatar
f.moscatelli committed
337
          $ref: "../../responses/SOL002SOL003_resp.yaml#/components/responses/404"
338
        405:
f.moscatelli's avatar
f.moscatelli committed
339
          $ref: "../../responses/SOL002SOL003_resp.yaml#/components/responses/405"
340
        406:
f.moscatelli's avatar
f.moscatelli committed
341
          $ref: "../../responses/SOL002SOL003_resp.yaml#/components/responses/406"
342
        409:
343
          #description: |
344 345 346 347 348 349 350
            #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.
f.moscatelli's avatar
f.moscatelli committed
351
          $ref: "../../responses/SOL002SOL003_resp.yaml#/components/responses/409"
352
        416:
f.moscatelli's avatar
f.moscatelli committed
353
          $ref: "../../responses/SOL002SOL003_resp.yaml#/components/responses/416"
354
        500:
f.moscatelli's avatar
f.moscatelli committed
355
          $ref: "../../responses/SOL002SOL003_resp.yaml#/components/responses/500"
356
        503:
f.moscatelli's avatar
f.moscatelli committed
357
          $ref: "../../responses/SOL002SOL003_resp.yaml#/components/responses/503"
358
        504:
f.moscatelli's avatar
f.moscatelli committed
359
          $ref: "../../responses/SOL002SOL003_resp.yaml#/components/responses/504"
360

361 362 363
  ###############################################################################
  # Scale VNF task                                                              #
  ###############################################################################
364
  /vnf_instances/{vnfInstanceId}/scale:
365 366
    #SOL003 location: 5.4.5.2
    parameters:
367
      - $ref: '#/components/parameters/VnfInstanceId'
368
    post:
369
      #SOL003 location: 5.4.5.3.1
370
      description: |
371
        Scale VNF.
372 373 374 375 376 377 378 379
        The POST method requests to scale a VNF instance resource incrementally.
        This method shall follow the provisions specified in the tables 5.4.5.3.1-1 and 5.4.5.3.1-2
        for URI query parameters, request and response data structures, and response codes.
        The steps and conditions that apply as the result of successfully executing this method are
        specified in clause 5.4.1.2.
        In addition, once the VNFM has successfully completed the underlying VNF LCM operation occurrence,
        it shall reflect the result of scaling the VNF instance by updating the "scaleStatus" attribute
        in the representation of the "Individual VNF instance" resource.
380
      parameters:
381 382 383 384 385
        - $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'
386 387
      responses:
        202:
388
          $ref: '#/components/responses/ScaleVnfInstance.Post.202'
389
        400:
f.moscatelli's avatar
f.moscatelli committed
390
          $ref: "../../responses/SOL002SOL003_resp.yaml#/components/responses/400"
391
        401:
f.moscatelli's avatar
f.moscatelli committed
392
          $ref: "../../responses/SOL002SOL003_resp.yaml#/components/responses/401"
393
        403:
f.moscatelli's avatar
f.moscatelli committed
394
          $ref: "../../responses/SOL002SOL003_resp.yaml#/components/responses/403"
395
        404:
396
          #description: |
397 398 399 400 401 402 403 404 405
            #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.
f.moscatelli's avatar
f.moscatelli committed
406
          $ref: "../../responses/SOL002SOL003_resp.yaml#/components/responses/404"
407
        405:
f.moscatelli's avatar
f.moscatelli committed
408
          $ref: "../../responses/SOL002SOL003_resp.yaml#/components/responses/405"
409
        406:
f.moscatelli's avatar
f.moscatelli committed
410
          $ref: "../../responses/SOL002SOL003_resp.yaml#/components/responses/406"
411
        409:
412
          #description: |
413 414 415 416 417 418 419 420
            #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.
f.moscatelli's avatar
f.moscatelli committed
421
          $ref: "../../responses/SOL002SOL003_resp.yaml#/components/responses/409"
422
        500:
f.moscatelli's avatar
f.moscatelli committed
423
          $ref: "../../responses/SOL002SOL003_resp.yaml#/components/responses/500"
424
        503:
f.moscatelli's avatar
f.moscatelli committed
425
          $ref: "../../responses/SOL002SOL003_resp.yaml#/components/responses/503"
426
        504:
f.moscatelli's avatar
f.moscatelli committed
427
          $ref: "../../responses/SOL002SOL003_resp.yaml#/components/responses/504"
428

429 430 431
  ###############################################################################
  # Scale VNF to Level task                                                     #
  ###############################################################################
432
  /vnf_instances/{vnfInstanceId}/scale_to_level:
433 434
    #SOL003 location: 5.4.6.2
    parameters:
435
      - $ref: '#/components/parameters/VnfInstanceId'
436
    post:
437
      #SOL003 location: 5.4.6.3.1
438
      description: |
439
        Scale VNF to Level.
440 441 442 443 444 445 446 447
        The POST method requests to scale a VNF instance resource to a target level.
        This method shall follow the provisions specified in the tables 5.4.6.3.1-1 and 5.4.6.3.1-2
        for URI query parameters, request and response data structures, and response codes.
        The steps and conditions that apply as the result of successfully executing this method are
        specified in clause 5.4.1.2.
        In addition, once the VNFM has successfully completed the underlying VNF LCM operation occurrence,
        it shall reflect the result of scaling the VNF instance by updating the "scaleStatus" attribute
        in the representation of the "Individual VNF instance" resource.
448
      parameters:
449 450 451 452 453
        - $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'
454 455
      responses:
        202:
456
          $ref: '#/components/responses/ScaleToLevelVnfInstance.Post.202'
457
        400:
f.moscatelli's avatar
f.moscatelli committed
458
          $ref: "../../responses/SOL002SOL003_resp.yaml#/components/responses/400"
459
        401:
f.moscatelli's avatar
f.moscatelli committed
460
          $ref: "../../responses/SOL002SOL003_resp.yaml#/components/responses/401"
461
        403:
f.moscatelli's avatar
f.moscatelli committed
462
          $ref: "../../responses/SOL002SOL003_resp.yaml#/components/responses/403"
463
        404:
464
          #description: |
465 466 467 468 469 470 471 472 473
            #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.
f.moscatelli's avatar
f.moscatelli committed
474
          $ref: "../../responses/SOL002SOL003_resp.yaml#/components/responses/404"
475
        405:
f.moscatelli's avatar
f.moscatelli committed
476
          $ref: "../../responses/SOL002SOL003_resp.yaml#/components/responses/405"
477
        406:
f.moscatelli's avatar
f.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.
f.moscatelli's avatar
f.moscatelli committed
489
          $ref: "../../responses/SOL002SOL003_resp.yaml#/components/responses/409"
490
        500:
f.moscatelli's avatar
f.moscatelli committed
491
          $ref: "../../responses/SOL002SOL003_resp.yaml#/components/responses/500"
492
        503:
f.moscatelli's avatar
f.moscatelli committed
493
          $ref: "../../responses/SOL002SOL003_resp.yaml#/components/responses/503"
494
        504:
f.moscatelli's avatar
f.moscatelli committed
495
          $ref: "../../responses/SOL002SOL003_resp.yaml#/components/responses/504"
496

497 498 499
  ###############################################################################
  # Change VNF Flavour task                                                     #
  ###############################################################################
500
  /vnf_instances/{vnfInstanceId}/change_flavour:
501 502
    #SOL003 location: 5.4.7.2
    parameters:
503
      - $ref: '#/components/parameters/VnfInstanceId'
504
    post:
505
      description: |
506
        Change VNF Flavour.
507 508 509 510 511 512 513 514
        This method shall follow the provisions specified in the tables 5.4.7.3.1-1 and 5.4.7.3.1-2
        for URI query parameters, request and response data structures, and response codes.
        The steps and conditions that apply as the result of successfully executing this method
        are specified in clause 5.4.1.2.
        In addition, once the VNFM has successfully completed the underlying VNF LCM operation occurrence,
        it shall set the "flavourId" attribute in the representation of the "Individual VNF instance"
        resource to the value of the "newFlavourId" attribute passed in the "ChangeVnfFlavourRequest"
        data in the POST request.
515 516 517 518 519 520

        When initiating a change of the current VNF flavour, the values of the extensions and/or VNF 
        configurable properties, can differ between the new flavour and the old flavour of the VNF instance.
        The VNFM shall apply the "extensions" and "vnfConfigurableProperties" attributes in the 
        "ChangeVnfFlavourRequest" data structure in the payload body to the existing "extensions" and 
        "vnfConfigurableProperties" attributes from the "VnfInstance" data structure according to the rules 
521
        of JSON Merge Patch (see IETF RFC 7396). The VNFM shall ensure that the content of the resulting 
522 523 524 525 526 527 528 529 530
        "extensions" and "vnfConfigurableProperties" attributes is valid against the VNFD (which includes 
        ensuring the presence of all child attributes that are marked as "required" in the VNFD). In case
        of an error, the operation shall be automatically rolled back, and appropriate error information 
        shall be provided in the "VnfLcmOperationOccurrenceNotification" message and the "VnfLcmOpOcc" data 
        structure. The processing of changes to the "extensions" / "vnfConfigurableProperties" attributes 
        shall be performed in the "STARTING" phase of the LCM operation. The change shall be atomic, i.e. 
        the result of intermediate stages shall not be visible in the API. In case of successful completion 
        of the processing and validation, the attributes shall be provided in the "VnfInstance" data structure 
        and the operation shall proceed to obtain the grant.
531
      parameters:
532 533 534 535 536
        - $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'
537 538
      responses:
        202:
539
          $ref: '#/components/responses/ChangeFlavourVnfInstance.Post.202'
540
        400:
f.moscatelli's avatar
f.moscatelli committed
541
          $ref: "../../responses/SOL002SOL003_resp.yaml#/components/responses/400"
542
        401:
f.moscatelli's avatar
f.moscatelli committed
543
          $ref: "../../responses/SOL002SOL003_resp.yaml#/components/responses/401"
544
        403:
f.moscatelli's avatar
f.moscatelli committed
545
          $ref: "../../responses/SOL002SOL003_resp.yaml#/components/responses/403"
546
        404:
547
          #description: |
548 549 550 551 552 553 554 555 556
            #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.
f.moscatelli's avatar
f.moscatelli committed
557
          $ref: "../../responses/SOL002SOL003_resp.yaml#/components/responses/404"
558
        405:
f.moscatelli's avatar
f.moscatelli committed
559
          $ref: "../../responses/SOL002SOL003_resp.yaml#/components/responses/405"
560
        406:
f.moscatelli's avatar
f.moscatelli committed
561
          $ref: "../../responses/SOL002SOL003_resp.yaml#/components/responses/406"
562
        409:
563
          #description: |
564 565 566 567 568 569 570 571
            #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.
f.moscatelli's avatar
f.moscatelli committed
572
          $ref: "../../responses/SOL002SOL003_resp.yaml#/components/responses/409"
573
        500:
f.moscatelli's avatar
f.moscatelli committed
574
          $ref: "../../responses/SOL002SOL003_resp.yaml#/components/responses/500"
575
        503:
f.moscatelli's avatar
f.moscatelli committed
576
          $ref: "../../responses/SOL002SOL003_resp.yaml#/components/responses/503"
577
        504:
f.moscatelli's avatar
f.moscatelli committed
578
          $ref: "../../responses/SOL002SOL003_resp.yaml#/components/responses/504"
579

580 581 582
  ###############################################################################
  # Terminate VNF task                                                         #
  ###############################################################################
583
  /vnf_instances/{vnfInstanceId}/terminate:
584 585
    #SOL003 location: 5.4.8.2
    parameters:
586
      - $ref: '#/components/parameters/VnfInstanceId'
587
    post:
588
      description: |
589
        Terminate VNF.
590 591
        The POST method triggers the VNFM to terminate a VNF instance and to request to the VIM
        the release of its used virtualised resources.
592 593 594 595 596 597 598
        This method shall follow the provisions specified in the tables 5.4.8.3.1-1 and 5.4.8.3.1-2
        for URI query parameters, request and response data structures, and response codes.
        The steps and conditions that apply as the result of successfully executing this method
        are specified in clause 5.4.1.2.
        In addition, once the VNFM has successfully completed the underlying VNF LCM operation occurrence,
        it shall set the "instantiationState" attribute in the representation of the "Individual VNF instance"
        resource to the value "NOT_INSTANTIATED".
599
      parameters:
600 601 602 603 604
        - $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'
605 606
      responses:
        202:
607
          $ref: '#/components/responses/TerminateVnfInstance.Post.202'
608
        400:
f.moscatelli's avatar
f.moscatelli committed
609
          $ref: "../../responses/SOL002SOL003_resp.yaml#/components/responses/400"
610
        401:
f.moscatelli's avatar
f.moscatelli committed
611
          $ref: "../../responses/SOL002SOL003_resp.yaml#/components/responses/401"
612
        403:
f.moscatelli's avatar
f.moscatelli committed
613
          $ref: "../../responses/SOL002SOL003_resp.yaml#/components/responses/403"
614
        404:
f.moscatelli's avatar
f.moscatelli committed
615
          $ref: "../../responses/SOL002SOL003_resp.yaml#/components/responses/404"
616
        405:
f.moscatelli's avatar
f.moscatelli committed
617
          $ref: "../../responses/SOL002SOL003_resp.yaml#/components/responses/405"
618
        406:
f.moscatelli's avatar
f.moscatelli committed
619
          $ref: "../../responses/SOL002SOL003_resp.yaml#/components/responses/406"
620
        409:
621
          #description: |
622 623 624 625 626 627 628 629
            #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.
f.moscatelli's avatar
f.moscatelli committed
630
          $ref: "../../responses/SOL002SOL003_resp.yaml#/components/responses/409"
631
        500:
f.moscatelli's avatar
f.moscatelli committed
632
          $ref: "../../responses/SOL002SOL003_resp.yaml#/components/responses/500"
633
        503:
f.moscatelli's avatar
f.moscatelli committed
634
          $ref: "../../responses/SOL002SOL003_resp.yaml#/components/responses/503"
635
        504:
f.moscatelli's avatar
f.moscatelli committed
636
          $ref: "../../responses/SOL002SOL003_resp.yaml#/components/responses/504"
637

638 639 640
  ###############################################################################
  # Heal VNF task                                                               #
  ###############################################################################
641
  /vnf_instances/{vnfInstanceId}/heal:
642 643
    #SOL003 location: 5.4.9.2
    parameters:
644
      - $ref: '#/components/parameters/VnfInstanceId'
645
    post:
646
      description: |
647
        Heal VNF.
648 649 650 651 652
        The POST method requests to heal a VNF instance.
        This method shall follow the provisions specified in the tables 5.4.9.3.1-1 and 5.4.9.3.1-2
        for URI query parameters, request and response data structures, and response codes.
        The steps and conditions that apply as the result of successfully executing this method
        are specified in clause 5.4.1.2.
653
      parameters:
654 655 656 657 658
        - $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'
659 660
      responses:
        202:
661
          $ref: '#/components/responses/HealVnfInstance.Post.202'
662
        400:
f.moscatelli's avatar
f.moscatelli committed
663
          $ref: "../../responses/SOL002SOL003_resp.yaml#/components/responses/400"
664
        401:
f.moscatelli's avatar
f.moscatelli committed
665
          $ref: "../../responses/SOL002SOL003_resp.yaml#/components/responses/401"
666
        403:
f.moscatelli's avatar
f.moscatelli committed
667
          $ref: "../../responses/SOL002SOL003_resp.yaml#/components/responses/403"
668
        404:
669
          #description: |
670 671 672 673 674 675 676 677 678
            #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.
f.moscatelli's avatar
f.moscatelli committed
679
          $ref: "../../responses/SOL002SOL003_resp.yaml#/components/responses/404"
680
        405:
f.moscatelli's avatar
f.moscatelli committed
681
          $ref: "../../responses/SOL002SOL003_resp.yaml#/components/responses/405"
682
        406:
f.moscatelli's avatar
f.moscatelli committed
683
          $ref: "../../responses/SOL002SOL003_resp.yaml#/components/responses/406"
684
        409:
685
          #description: |
686 687 688 689 690 691 692 693
            #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.
f.moscatelli's avatar
f.moscatelli committed
694
          $ref: "../../responses/SOL002SOL003_resp.yaml#/components/responses/409"
695
        500:
f.moscatelli's avatar
f.moscatelli committed
696
          $ref: "../../responses/SOL002SOL003_resp.yaml#/components/responses/500"
697
        503:
f.moscatelli's avatar
f.moscatelli committed
698
          $ref: "../../responses/SOL002SOL003_resp.yaml#/components/responses/503"
699
        504:
f.moscatelli's avatar
f.moscatelli committed
700
          $ref: "../../responses/SOL002SOL003_resp.yaml#/components/responses/504"
701

702 703 704
  ###############################################################################
  # Operate VNF task                                                            #
  ###############################################################################
705
  /vnf_instances/{vnfInstanceId}/operate:
706
    #SOL003 location: 5.4.10.2
707
    parameters:
708
      - $ref: '#/components/parameters/VnfInstanceId'
709
    post:
710
      description: |
711
        Operate VNF.
712
        The POST method changes the operational state of a VNF instance resource.
713 714 715 716 717 718 719
        This method shall follow the provisions specified in the tables 5.4.10.3.1-1 and 5.4.10.3.1-2
        for URI query parameters, request and response data structures, and response codes.
        The steps and conditions that apply as the result of successfully executing this method
        are specified in clause 5.4.1.2.
        In addition, once the VNFM has successfully completed the underlying VNF LCM operation occurrence,
        it shall set the "vnfState" attribute in the representation of the "Individual VNF instance" resource
        to the value of the "changeStateTo" attribute passed in the "OperateVnfRequest" data in the POST request.
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/Version
      requestBody:
        $ref: '#/components/requestBodies/OperateVnfRequest'
726 727
      responses:
        202:
728
          $ref: '#/components/responses/OperateVnfInstance.Post.202'
729
        400:
f.moscatelli's avatar
f.moscatelli committed
730
          $ref: "../../responses/SOL002SOL003_resp.yaml#/components/responses/400"
731
        401:
f.moscatelli's avatar
f.moscatelli committed
732
          $ref: "../../responses/SOL002SOL003_resp.yaml#/components/responses/401"
733
        403:
f.moscatelli's avatar
f.moscatelli committed
734
          $ref: "../../responses/SOL002SOL003_resp.yaml#/components/responses/403"
735
        404:
736
          #description: |
737 738 739 740 741 742 743 744 745
            #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.
f.moscatelli's avatar
f.moscatelli committed
746
          $ref: "../../responses/SOL002SOL003_resp.yaml#/components/responses/404"
747
        405:
f.moscatelli's avatar
f.moscatelli committed
748
          $ref: "../../responses/SOL002SOL003_resp.yaml#/components/responses/405"
749
        406:
f.moscatelli's avatar
f.moscatelli committed
750
          $ref: "../../responses/SOL002SOL003_resp.yaml#/components/responses/406"
751
        409:
752
          #description: |
753 754 755 756 757 758 759 760
            #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.
f.moscatelli's avatar
f.moscatelli committed
761
          $ref: "../../responses/SOL002SOL003_resp.yaml#/components/responses/409"
762
        500:
f.moscatelli's avatar
f.moscatelli committed
763
          $ref: "../../responses/SOL002SOL003_resp.yaml#/components/responses/500"
764
        503:
f.moscatelli's avatar
f.moscatelli committed
765
          $ref: "../../responses/SOL002SOL003_resp.yaml#/components/responses/503"
766
        504:
f.moscatelli's avatar
f.moscatelli committed
767
          $ref: "../../responses/SOL002SOL003_resp.yaml#/components/responses/504"
768

769 770 771
  ###############################################################################
  # Change external VNF connectivity task                                       #
  ###############################################################################
772
  /vnf_instances/{vnfInstanceId}/change_ext_conn:
773
    #SOL003 location: 5.4.11.2
774
    parameters:
775
      - $ref: '#/components/parameters/VnfInstanceId'
776
    post:
777
      description: |
778
        Change External VNF Connectivity.
779
        The POST method changes the external connectivity of a VNF instance.
780 781 782 783
        This method shall follow the provisions specified in the tables 5.4.11.3.1-1 and 5.4.11.3.1-2
        for URI query parameters, request and response data structures, and response codes.
        The steps and conditions that apply as the result of successfully executing this method
        are specified in clause 5.4.1.2.
784
      parameters:
785 786 787 788 789
        - $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'
790 791
      responses:
        202:
792
          $ref: '#/components/responses/ChangeExtConnVnfInstance.Post.202'
793
        400:
f.moscatelli's avatar
f.moscatelli committed
794
          $ref: "../../responses/SOL002SOL003_resp.yaml#/components/responses/400"
795
        401:
f.moscatelli's avatar
f.moscatelli committed
796
          $ref: "../../responses/SOL002SOL003_resp.yaml#/components/responses/401"
797
        403:
f.moscatelli's avatar
f.moscatelli committed
798
          $ref: "../../responses/SOL002SOL003_resp.yaml#/components/responses/403"
799
        404:
f.moscatelli's avatar
f.moscatelli committed
800
          $ref: "../../responses/SOL002SOL003_resp.yaml#/components/responses/404"
801
        405:
f.moscatelli's avatar
f.moscatelli committed
802
          $ref: "../../responses/SOL002SOL003_resp.yaml#/components/responses/405"
803
        406:
f.moscatelli's avatar
f.moscatelli committed
804
          $ref: "../../responses/SOL002SOL003_resp.yaml#/components/responses/406"
805
        409:
806
          #description: |
807 808 809 810 811 812 813
            #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.
f.moscatelli's avatar
f.moscatelli committed
814
          $ref: "../../responses/SOL002SOL003_resp.yaml#/components/responses/409"
815
        500:
f.moscatelli's avatar
f.moscatelli committed
816
          $ref: "../../responses/SOL002SOL003_resp.yaml#/components/responses/500"
817
        503:
f.moscatelli's avatar
f.moscatelli committed
818
          $ref: "../../responses/SOL002SOL003_resp.yaml#/components/responses/503"
819
        504:
f.moscatelli's avatar
f.moscatelli committed
820
          $ref: "../../responses/SOL002SOL003_resp.yaml#/components/responses/504"
821

822 823 824
  ###############################################################################
  # Change current VNF package task                                             #
  ###############################################################################
825
  /vnf_instances/{vnfInstanceId}/change_vnfpkg:
826 827
    #SOL003 location: 5.4.11a.2
    parameters:
828
      - $ref: '#/components/parameters/VnfInstanceId'
829
    post:
830
      description: |
831 832 833 834 835 836 837 838 839 840
        The POST method changes the current VNF package on which the VNF instance is based.
        This method shall follow the provisions specified in the tables 5.4.11a.3.1-1 and 
        5.4.11a.3.1-2 for URI query parameters, request and response data structures, and 
        response codes.
        The steps and conditions that apply as the result of successfully executing this method 
        are specified in clause 5.4.1.2.
        During a change of the current VNF package, the allowed and required extensions and/or 
        VNF configurable properties and their data types, as well as the metadata data types, 
        can differ between the source and the destination VNFD.
      parameters:
841 842 843 844 845
        - $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'
846 847
      responses:
        202:
848
          $ref: '#/components/responses/ChangeVnfpkgVnfInstance.Post.202'
849 850 851 852 853 854 855 856 857 858 859 860 861
        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:
862
          #description: |
863 864 865 866 867 868 869 870 871 872 873 874 875 876 877
            #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"

878 879 880
  ###############################################################################
  # VNF LCM operation occurrences                                               #
  ###############################################################################
881
  /vnf_lcm_op_occs:
882
    #SOL003 location: 5.4.12
883
    get:
884
      description: |
885
        Get Operation Status.
886
        The API consumer can use this method to query status information about multiple
887 888 889
        VNF lifecycle management operation occurrences.
        This method shall follow the provisions specified in the tables 5.4.12.3.2-1 and 5.4.12.3.2-2
        for URI query parameters, request and response data structures, and response codes.
Gergely Csatari's avatar
Gergely Csatari committed
890
      parameters:
891 892 893 894 895 896 897 898 899
        - $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
        - $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
        - $ref: ../../components/SOL002SOL003_params.yaml#/components/parameters/Version
900 901
      responses:
        200:
902
          $ref: '#/components/responses/VnfLcmOpOccs.Get.200'
903
        400:
f.moscatelli's avatar
f.moscatelli committed
904
          $ref: "../../responses/SOL002SOL003_resp.yaml#/components/responses/400"
905
        401:
f.moscatelli's avatar
f.moscatelli committed
906
          $ref: "../../responses/SOL002SOL003_resp.yaml#/components/responses/401"
907
        403:
f.moscatelli's avatar
f.moscatelli committed
908
          $ref: "../../responses/SOL002SOL003_resp.yaml#/components/responses/403"
909
        404:
f.moscatelli's avatar
f.moscatelli committed
910
          $ref: "../../responses/SOL002SOL003_resp.yaml#/components/responses/404"
911
        405:
f.moscatelli's avatar
f.moscatelli committed
912
          $ref: "../../responses/SOL002SOL003_resp.yaml#/components/responses/405"
913
        406:
f.moscatelli's avatar
f.moscatelli committed
914
          $ref: "../../responses/SOL002SOL003_resp.yaml#/components/responses/406"
915
        500:
f.moscatelli's avatar
f.moscatelli committed
916
          $ref: "../../responses/SOL002SOL003_resp.yaml#/components/responses/500"
917
        503:
f.moscatelli's avatar
f.moscatelli committed
918
          $ref: "../../responses/SOL002SOL003_resp.yaml#/components/responses/503"
919
        504:
f.moscatelli's avatar
f.moscatelli committed
920
          $ref: "../../responses/SOL002SOL003_resp.yaml#/components/responses/504"
921

922 923 924
  ###############################################################################
  # Individual VNF LCM operation occurrence                                     #
  ###############################################################################
925
  /vnf_lcm_op_occs/{vnfLcmOpOccId}:
926 927
    #SOL003 location: 5.4.13
    parameters:
928
      - $ref: '#/components/parameters/VnfLcmOpOccId'
929
    get:
930
      description: |
931
        Get Operation Status.
932
        The API consumer can use this method to retrieve status information about a VNF lifecycle
933 934 935
        management operation occurrence by reading an "Individual VNF LCM operation occurrence" resource.
        This method shall follow the provisions specified in the tables 5.4.13.3.2-1 and 5.4.13.3.2-2
        for URI query parameters, request and response data structures, and response codes.
Gergely Csatari's avatar
Gergely Csatari committed
936
      parameters:
937 938 939
        - $ref: ../../components/SOL002SOL003_params.yaml#/components/parameters/Accept
        - $ref: ../../components/SOL002SOL003_params.yaml#/components/parameters/Authorization
        - $ref: ../../components/SOL002SOL003_params.yaml#/components/parameters/Version
940 941
      responses:
        200:
942
          $ref: '#/components/responses/IndividualVnfLcmOpOcc.Get.200'
943
        400:
f.moscatelli's avatar
f.moscatelli committed
944
          $ref: "../../responses/SOL002SOL003_resp.yaml#/components/responses/400"
945
        401:
f.moscatelli's avatar
f.moscatelli committed
946
          $ref: "../../responses/SOL002SOL003_resp.yaml#/components/responses/401"
947
        403:
f.moscatelli's avatar
f.moscatelli committed
948
          $ref: "../../responses/SOL002SOL003_resp.yaml#/components/responses/403"
949
        404:
f.moscatelli's avatar
f.moscatelli committed
950
          $ref: "../../responses/SOL002SOL003_resp.yaml#/components/responses/404"
951
        405:
f.moscatelli's avatar
f.moscatelli committed
952
          $ref: "../../responses/SOL002SOL003_resp.yaml#/components/responses/405"
953
        406:
f.moscatelli's avatar
f.moscatelli committed
954
          $ref: "../../responses/SOL002SOL003_resp.yaml#/components/responses/406"
955
        500:
f.moscatelli's avatar
f.moscatelli committed
956
          $ref: "../../responses/SOL002SOL003_resp.yaml#/components/responses/500"
957
        503:
f.moscatelli's avatar
f.moscatelli committed
958
          $ref: "../../responses/SOL002SOL003_resp.yaml#/components/responses/503"
959
        504:
f.moscatelli's avatar
f.moscatelli committed
960
          $ref: "../../responses/SOL002SOL003_resp.yaml#/components/responses/504"
961

962 963 964
  ###############################################################################
  # Retry operation task                                                        #
  ###############################################################################
965
  /vnf_lcm_op_occs/{vnfLcmOpOccId}/retry:
966 967
    #SOL003 location: 5.4.14
    parameters:
968
      - $ref: '#/components/parameters/VnfLcmOpOccId'
969
    post:
970
      description: |
971 972 973 974 975 976 977 978 979
        The POST method initiates retrying a VNF lifecycle operation if that operation
        has experienced a temporary failure, i.e. the related "Individual VNF LCM operation occurrence"
        resource is in "FAILED_TEMP" state.
        This method shall follow the provisions specified in the tables 5.4.14.3.1-1 and 5.4.14.3.1-2
        for URI query parameters, request and response data structures, and response codes.
        In case of success of processing the asynchronous request, the "operationState" attribute
        in the representation of the parent resource shall be changed to "PROCESSING" and the applicable
        "start" notification according to clause 5.6.2.2 shall be emitted to indicate that the underlying
        VNF LCM operation occurrence proceeds.
Gergely Csatari's avatar
Gergely Csatari committed
980
      parameters:
981 982
        - $ref: ../../components/SOL002SOL003_params.yaml#/components/parameters/Authorization
        - $ref: ../../components/SOL002SOL003_params.yaml#/components/parameters/Version
983 984
      responses:
        202:
985
          $ref: '#/components/responses/RetryVnfLcmOpOcc.Post.202'
986
        400:
f.moscatelli's avatar
f.moscatelli committed
987
          $ref: "../../responses/SOL002SOL003_resp.yaml#/components/responses/400"
988
        401:
f.moscatelli's avatar
f.moscatelli committed
989
          $ref: "../../responses/SOL002SOL003_resp.yaml#/components/responses/401"
990
        403:
f.moscatelli's avatar
f.moscatelli committed
991
          $ref: "../../responses/SOL002SOL003_resp.yaml#/components/responses/403"
992
        404:
993
          #description: |
994 995 996 997 998 999 1000 1001 1002
            #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 be returned if the task
            #is not supported for the VNF LCM operation occurrence represented by the parent resource,
            #which means that the task resource consequently does not exist.
f.moscatelli's avatar
f.moscatelli committed
1003
          $ref: "../../responses/SOL002SOL003_resp.yaml#/components/responses/404"
1004
        405:
f.moscatelli's avatar
f.moscatelli committed
1005
          $ref: "../../responses/SOL002SOL003_resp.yaml#/components/responses/405"
1006
        406:
f.moscatelli's avatar
f.moscatelli committed
1007
          $ref: "../../responses/SOL002SOL003_resp.yaml#/components/responses/406"
1008
        409:
1009
          #description: |
1010
            #409 CONFLICT
1011

1012 1013 1014 1015
            #Shall be returned upon the following error: The operation cannot be executed currently,
            #due to a conflict with the state of the VNF LCM operation occurrence.
            #Typically, this is due to the fact that the VNF LCM operation occurrence is not in FAILED_TEMP state,
            #or another error handling action is starting, such as rollback or fail.
f.moscatelli's avatar
f.moscatelli committed
1016
          $ref: "../../responses/SOL002SOL003_resp.yaml#/components/responses/409"
1017
        500:
f.moscatelli's avatar
f.moscatelli committed
1018
          $ref: "../../responses/SOL002SOL003_resp.yaml#/components/responses/500"
1019
        503:
f.moscatelli's avatar
f.moscatelli committed
1020
          $ref: "../../responses/SOL002SOL003_resp.yaml#/components/responses/503"
1021
        504:
f.moscatelli's avatar
f.moscatelli committed
1022
          $ref: "../../responses/SOL002SOL003_resp.yaml#/components/responses/504"
1023

1024 1025 1026
  ###############################################################################
  # Rollback operation task                                                     #
  ###############################################################################
1027
  /vnf_lcm_op_occs/{vnfLcmOpOccId}/rollback:
1028 1029
    #SOL003 location: 5.4.15  
    parameters:
1030
      - $ref: '#/components/parameters/VnfLcmOpOccId'
1031
    post: