NSLifecycleManagement.yaml 81.4 KB
Newer Older
1 2
swagger: "2.0"
info:
3
  version: "1.2.0-impl:etsi.org:ETSI_NFV_OpenAPI:1"
4
  title: "SOL005 - NS Lifecycle Management Interface"
5
  description: >
rameshnaraya's avatar
rameshnaraya committed
6
    SOL005 - NS Lifecycle Management Interface
7 8 9 10 11 12 13 14
    IMPORTANT: Please note that this file might be not aligned to the current
    version of the ETSI Group Specification it refers to and has not been
    approved by the ETSI NFV ISG. In case of discrepancies the published ETSI
    Group Specification takes precedence.
    Please report bugs to https://forge.etsi.org/bugzilla/buglist.cgi?component=Nfv-Openapis
  license:
    name: "ETSI Forge copyright notice"
    url: https://forge.etsi.org/etsi-forge-copyright-notice.txt
15
  contact:
16 17
    name: "NFV-SOL WG"
externalDocs:
18 19
  description: ETSI GS NFV-SOL 005 V2.6.1
  url: https://www.etsi.org/deliver/etsi_gs/NFV-SOL/001_099/005/02.06.01_60/gs_NFV-SOL005v020601p.pdf
20
basePath: /nslcm/v1
21
schemes:
22
  - http
23 24
  - https
consumes:
25
  - application/json
26
produces:
27
  - application/json
28
paths:
29
  ###############################################################################
30 31 32
  # API Versions                                                                #
  ###############################################################################
  '/api-versions':
33 34
    $ref: '../endpoints/SOL005_endpoints.yaml#/endpoints/api-versions'

35
  ###############################################################################
36 37
  # NSInstances                                                                 #
  ###############################################################################
38 39
  '/ns_instances':
    #ETSI GS NFV-SOL 005 V2.4.1 location: 6.4.2
40 41 42 43 44 45 46 47 48 49 50 51 52 53
    parameters:
      - name: Authorization
        description: >
          The authorization token for the request.
          Reference: IETF RFC 7235.
        in: header
        required: false
        type: string
      - name: Version
        description: >
          Version of the API requested to use when responding to this request.
        in: header
        required: true
        type: string  
54
    post:
55
      summary: Create a NS instance resource.
56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71
      description: >
        The POST method creates a new NS instance resource.
      parameters:
        - name: Accept
          description: >
            Content-Types that are acceptable for the response.
            Reference: IETF RFC 7231
          in: header
          required: true
          type: string
        - name: Content-Type
          description: >
            The MIME type of the body of the request.
            Reference: IETF RFC 7231
          in: header
          required: true
72
          type: string
73 74
        - name: body
          in: body
rameshnaraya's avatar
rameshnaraya committed
75 76
          required: true
          schema:
77 78 79
            $ref: "definitions/SOL005NSLifecycleManagement_def.yaml#/definitions/CreateNsRequest"
          description: >
            The NS creation parameters, as defined in clause 6.5.2.7.
80
      responses:
81
        201:
82 83
          description: >
            201 Created
84

85 86
            A NS Instance identifier has been created
            successfully.
87 88 89 90 91
            The response body shall contain a representation of
            the created NS instance, as defined in clause 6.5.2.8.
            The HTTP response shall include a "Location" HTTP
            header that contains the resource URI of the created
            NS instance.
rameshnaraya's avatar
rameshnaraya committed
92
          schema:
93
            $ref: "definitions/SOL005NSLifecycleManagement_def.yaml#/definitions/NsInstance"
94
          headers:
rameshnaraya's avatar
rameshnaraya committed
95
            Content-Type:
96
              type: string
rameshnaraya's avatar
rameshnaraya committed
97 98 99 100
              description: >
                The MIME type of the body of the response.This header
                field shall be present if the response has a non-empty message
                body.
101
            WWW-Authenticate:
102
              type: string
103 104
              description: >
                Challenge if the corresponding HTTP request has not provided
rameshnaraya's avatar
rameshnaraya committed
105 106
                authorization, or error details if the corresponding HTTP request
                has provided an invalid authorization token.
107 108
              maximum: 1
              minimum: 0
109 110 111 112 113
            Version:
              description: >
                Version of the API used in the response.
              type: string
              maximum: 1
114
              minimum: 1
115
        400:
116
          $ref: "../responses/SOL005_resp.yaml#/responses/400"
117
        401:
118
          $ref: "../responses/SOL005_resp.yaml#/responses/401"
119
        403:
120
          $ref: "../responses/SOL005_resp.yaml#/responses/403"
121
        404:
122
          $ref: "../responses/SOL005_resp.yaml#/responses/404"
123
        405:
124
          $ref: "../responses/SOL005_resp.yaml#/responses/405"
125
        406:
126
          $ref: "../responses/SOL005_resp.yaml#/responses/406"
127
        409:
128
          $ref: "../responses/SOL005_resp.yaml#/responses/409"
129
        416:
130
          $ref: "../responses/SOL005_resp.yaml#/responses/416"
131
        500:
132
          $ref: "../responses/SOL005_resp.yaml#/responses/500"
133
        503:
134
          $ref: "../responses/SOL005_resp.yaml#/responses/503"
135 136
        504:
          $ref: "../responses/SOL005_resp.yaml#/responses/504"
137
    get:
138
      summary: Query multiple NS instances.
139
      description: >
140
        Query NS Instances.
141

142 143 144 145
        The GET method queries information about multiple NS instances.
        This method shall support the URI query parameters, request and response data structures, and response codes, as
        specified in the Tables 6.4.2.3.2-1 and 6.4.2.3.2-2.
      parameters:
146 147
        - name: filter
          in: query
148
          required: false
149
          type: string
150
          description: >
151
            Attribute-based filtering expression according to clause 5.2 of ETSI GS NFV-SOL 013.
152 153
            The NFVO shall support receiving this parameter as part of the URI
            query string. The OSS/BSS may supply this parameter.
154
            All attribute names that appear in the NsInstance and in data types
155 156 157
            referenced from it shall be supported by the NFVO in the filter expression.
        - name: all_fields
          in: query
158
          required: false
159
          type: string
160
          description: >
161
            Include all complex attributes in the response. See clause 5.3 of ETSI GS NFV-SOL 013 for details.
162 163 164
            The NFVO shall support this parameter.
        - name: fields
          in: query
165
          required: false
166
          type: string
167
          description: >
168
            "Complex attributes to be included into the response. See clause 5.3 of ETSI GS NFV-SOL 013 for
169
            details. The NFVO should support this parameter."          
170 171
        - name: exclude_fields
          in: query
172
          required: false
173
          type: string
174
          description: >
175
            "Complex attributes to be excluded from the response. See clause 5.3 of ETSI GS NFV-SOL 013 for
176
            details. The NFVO should support this parameter."
177 178
        - name: exclude_default
          in: query
179
          required: false
180
          type: string
181
          description: >
182
            "Indicates to exclude the following complex attributes from the response.
183
            See clause 5.3 of ETSI GS NFV-SOL 013 for details. The NFVO shall support this parameter.
184 185 186 187 188 189 190 191 192 193
            The following attributes shall be excluded from the NsInstance structure in
            the response body if this parameter is provided, or none of the parameters
            "all_fields," "fields", "exclude_fields", "exclude_default" are provided:
            - vnfInstances
            - pnfInfo
            - virtualLinkInfo
            - vnffgInfo
            - sapInfo
            - nsScaleStatus
            - additionalAffinityOrAntiAffinityRules"
194 195 196 197
        - name: nextpage_opaque_marker
          in: query
          description: >
            Marker to obtain the next page of a paged response. Shall be supported by the NFVO
198 199
            if the NFVO supports alternative 2 (paging) according to clause 5.4.2.1 of
            ETSI GS NFV-SOL 013 for this resource.
200 201
          required: false
          type: string
202 203 204 205 206 207 208 209 210 211
        - name: Accept
          description: >
            Content-Types that are acceptable for the response.
            Reference: IETF RFC 7231
          in: header
          required: true
          type: string
      responses:
        200:
          description: >
212
            200 OK
213

214 215 216 217 218 219 220 221 222 223
            Information about zero or more NS instances has
            been queried successfully.
            The response body shall contain in an array the
            representations of zero or more NS instances, as
            defined in clause 6.5.2.8.
            If the NFVO supports alternative 2 (paging)
            according to clause 4.7.2.1 for this resource,
            inclusion of the Link HTTP header in this response
            shall follow the provisions in clause 5.4.2.3 of ETSI
            GS NFV-SOL 013.
224 225 226 227 228 229 230
          headers:
            Content-Type:
              description: The MIME type of the body of the response.
              type: string
              maximum: 1
              minimum: 1
            WWW-Authenticate:
231
              type: string
232 233
              description: >
                Challenge if the corresponding HTTP request has not provided
234 235 236
                authorization, or error details if the corresponding HTTP request
                has provided an invalid authorization token.
              maximum: 1
237
              minimum: 0
238 239 240 241 242
            Version:
              description: >
                Version of the API used in the response.
              type: string
              maximum: 1
243
              minimum: 1
244 245 246 247 248 249
            Link:
              description: >
                Reference to other resources. Used for paging in the present document, see clause 4.7.2.1.
              type: string
              maximum: 1
              minimum: 0
250 251 252
          schema:
            type: array
            items:
rameshnaraya's avatar
rameshnaraya committed
253 254
              properties:
                NsInstance:
255
                  $ref: "definitions/SOL005NSLifecycleManagement_def.yaml#/definitions/NsInstance"
256
        400:
257
          $ref: "../responses/SOL005_resp.yaml#/responses/400"
258
        401:
259
          $ref: "../responses/SOL005_resp.yaml#/responses/401"
260
        403:
261
          $ref: "../responses/SOL005_resp.yaml#/responses/403"
262
        404:
263
          $ref: "../responses/SOL005_resp.yaml#/responses/404"
264
        405:
265
          $ref: "../responses/SOL005_resp.yaml#/responses/405"
266
        406:
267
          $ref: "../responses/SOL005_resp.yaml#/responses/406"
268
        409:
269
          $ref: "../responses/SOL005_resp.yaml#/responses/409"
270
        416:
271
          $ref: "../responses/SOL005_resp.yaml#/responses/416"
272
        500:
273
          $ref: "../responses/SOL005_resp.yaml#/responses/500"
274
        503:
275
          $ref: "../responses/SOL005_resp.yaml#/responses/503"
276 277
        504:
          $ref: "../responses/SOL005_resp.yaml#/responses/504"
278 279 280 281

  ###############################################################################
  # Individual NS instance                                                      #
  ###############################################################################
282 283 284 285 286 287 288 289 290
  '/ns_instances/{nsInstanceId}':
    #ETSI GS NFV-SOL 005 V2.4.1 location: 6.4.3
    parameters:
      - name: nsInstanceId
        description: >
          Identifier of the NS instance.
        in: path
        type: string
        required: true
291 292 293 294 295 296 297 298 299 300 301 302 303
      - name: Authorization
        description: >
          The authorization token for the request.
          Reference: IETF RFC 7235.
        in: header
        required: false
        type: string
      - name: Version
        description: >
          Version of the API requested to use when responding to this request.
        in: header
        required: true
        type: string
304
    get:
rameshnaraya's avatar
rameshnaraya committed
305
      summary: Read an individual NS instance resource.
306 307 308 309 310 311 312 313 314 315 316 317 318 319 320 321 322 323 324 325
      description: >
        The GET method retrieves information about a NS instance by 
        reading an individual NS instance resource.   
      parameters:
        - name: Accept
          description: >
            Content-Types that are acceptable for the response.
            Reference: IETF RFC 7231
          in: header
          required: true
          type: string
        - name: Content-Type
          description: >
            The MIME type of the body of the request.
            Reference: IETF RFC 7231
          in: header
          required: true
          type: string
      responses:
        200:
326 327
          description: >
            200 OK
328

329
            Information about an individual NS instance has been queried successfully.
330
            The response body shall contain a representation of the NS instance.
rameshnaraya's avatar
rameshnaraya committed
331
          schema:
332
            $ref: "definitions/SOL005NSLifecycleManagement_def.yaml#/definitions/NsInstance"
333 334
          headers:
            Content-Type:
335
              type: string
rameshnaraya's avatar
rameshnaraya committed
336 337 338
              description: >
                The MIME type of the body of the response.This header
                field shall be present if the response has a non-empty message body.
339
              maximum: 1
340
              minimum: 1
341
            WWW-Authenticate:
342
              type: string
343 344
              description: >
                Challenge if the corresponding HTTP request has not provided
rameshnaraya's avatar
rameshnaraya committed
345
                authorization, or error details if the corresponding HTTP request
346
                has provided an invalid authorization token.
347 348
              maximum: 1
              minimum: 0
349 350 351 352 353
            Version:
              description: >
                Version of the API used in the response.
              type: string
              maximum: 1
354
              minimum: 1
355
        400:
356
          $ref: "../responses/SOL005_resp.yaml#/responses/400"
357
        401:
358
          $ref: "../responses/SOL005_resp.yaml#/responses/401"
359
        403:
360
          $ref: "../responses/SOL005_resp.yaml#/responses/403"
361
        404:
362
          $ref: "../responses/SOL005_resp.yaml#/responses/404"
363
        405:
364
          $ref: "../responses/SOL005_resp.yaml#/responses/405"
365
        406:
366
          $ref: "../responses/SOL005_resp.yaml#/responses/406"
367
        416:
368
          $ref: "../responses/SOL005_resp.yaml#/responses/416"
369
        500:
370
          $ref: "../responses/SOL005_resp.yaml#/responses/500"
371
        503:
372
          $ref: "../responses/SOL005_resp.yaml#/responses/503"
373 374
        504:
          $ref: "../responses/SOL005_resp.yaml#/responses/504"
375

376
    delete:
rameshnaraya's avatar
rameshnaraya committed
377
      summary: Delete NS instance resource.
378 379
      description: >
        Delete NS Identifier
380

381 382 383 384 385
        This method deletes an individual NS instance resource.
      responses:
        204:
          description: >
            204 No Content
386

387 388 389 390 391
            The NS instance resource and the associated NS
            identifier were deleted successfully.
            The response body shall be empty.
          headers:
            WWW-Authenticate:
392
              type: string
393 394
              description: >
                Challenge if the corresponding HTTP request has not provided
395 396
                authorization, or error details if the corresponding HTTP request
                has provided an invalid authorization token.
397 398
              maximum: 1
              minimum: 0
399 400 401 402 403
            Version:
              description: >
                Version of the API used in the response.
              type: string
              maximum: 1
404
              minimum: 1
405
        400:
406
          $ref: "../responses/SOL005_resp.yaml#/responses/400"
407
        401:
408
          $ref: "../responses/SOL005_resp.yaml#/responses/401"
409
        403:
410
          $ref: "../responses/SOL005_resp.yaml#/responses/403"
411
        404:
412
          $ref: "../responses/SOL005_resp.yaml#/responses/404"
413
        405:
414
          $ref: "../responses/SOL005_resp.yaml#/responses/405"
415
        406:
416
          $ref: "../responses/SOL005_resp.yaml#/responses/406"
417
        409:
418 419 420 421 422 423 424 425 426 427
          description: >
            409 CONFLICT

            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 NS instance
            resource is in INSTANTIATED state.
            The response body shall contain a ProblemDetails
            structure, in which the "detail" attribute shall convey
            more information about the error.
428
          $ref: "../responses/SOL005_resp.yaml#/responses/409"
429
        412:
430
          $ref: "../responses/SOL005_resp.yaml#/responses/412"
431
        500:
432
          $ref: "../responses/SOL005_resp.yaml#/responses/500"
433
        503:
434
          $ref: "../responses/SOL005_resp.yaml#/responses/503"
435 436
        504:
          $ref: "../responses/SOL005_resp.yaml#/responses/504"
437

438 439 440
  ###############################################################################
  # Instantiate NS task                                                         #
  ###############################################################################
441 442 443 444 445 446 447 448 449
  '/ns_instances/{nsInstanceId}/instantiate':
    #ETSI GS NFV-SOL 005 V2.4.1 location: 6.4.4
    parameters:
      - name: nsInstanceId
        description: >
          Identifier of the NS instance to be instantiated.
        in: path
        type: string
        required: true
450
    post:
rameshnaraya's avatar
rameshnaraya committed
451
      summary: Instantiate a NS.
452 453 454
      description: >
        The POST method requests to instantiate a NS instance resource.
      parameters:
455 456 457 458 459 460 461 462 463 464 465 466 467 468 469 470 471 472 473 474 475
        - name: Accept
          description: >
            Content-Types that are acceptable for the response.
            Reference: IETF RFC 7231
          in: header
          required: true
          type: string
        - name: Authorization
          description: >
            The authorization token for the request.
            Reference: IETF RFC 7235
          in: header
          required: false
          type: string
        - name: Content-Type
          description: >
            The MIME type of the body of the request.
            Reference: IETF RFC 7231
          in: header
          required: true
          type: string
476 477 478 479 480 481
        - name: Version
          description: >
            Version of the API requested to use when responding to this request.
          in: header
          required: true
          type: string
482 483
        - name: body
          in: body
484 485
          required: true
          schema:
486 487 488
            $ref: "definitions/SOL005NSLifecycleManagement_def.yaml#/definitions/InstantiateNsRequest"
          description: >
            Parameters for the instantiate NS operation, as defined in clause 6.5.2.10.
489 490
      responses:
        202:
491 492 493 494 495 496 497 498 499 500 501
          description: >
            202 ACCEPTED

            The request has been accepted for processing, but
            the processing has not been completed.
            The response body shall be empty.
            The HTTP response shall include a "Location" HTTP
            header that contains the URI of the newly-created
            "NS LCM operation occurrence" resource
            corresponding to the operation.
          $ref: "../responses/SOL005_resp.yaml#/responses/202"
502
        400:
503
          $ref: "../responses/SOL005_resp.yaml#/responses/400"
504
        401:
505
          $ref: "../responses/SOL005_resp.yaml#/responses/401"
506
        403:
507
          $ref: "../responses/SOL005_resp.yaml#/responses/403"
508
        404:
509
          $ref: "../responses/SOL005_resp.yaml#/responses/404"
510
        405:
511
          $ref: "../responses/SOL005_resp.yaml#/responses/405"
512
        406:
513
          $ref: "../responses/SOL005_resp.yaml#/responses/406"
514
        409:
515 516 517 518 519 520 521 522 523 524 525
          description: >
            409 CONFLICT

            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 NS instance
            resource is in the INSTANTIATED state, or that
            another lifecycle management operation is ongoing.
            The response body shall contain a ProblemDetails
            structure, in which the "detail" attribute shall convey
            more information about the error.
526
          $ref: "../responses/SOL005_resp.yaml#/responses/409"
527
        416:
528
          $ref: "../responses/SOL005_resp.yaml#/responses/416"
529
        500:
530
          $ref: "../responses/SOL005_resp.yaml#/responses/500"
531
        503:
532
          $ref: "../responses/SOL005_resp.yaml#/responses/503"
533 534
        504:
          $ref: "../responses/SOL005_resp.yaml#/responses/504"
535 536 537 538

  ###############################################################################
  # Scale NS task                                                               #
  ###############################################################################
539 540 541 542 543 544 545 546 547
  '/ns_instances/{nsInstanceId}/scale':
    #ETSI GS NFV-SOL 005 V2.4.1 location: 6.4.5
    parameters:
      - name: nsInstanceId
        description: >
          Identifier of the NS instance to be scaled.
        in: path
        type: string
        required: true
548
    post:
rameshnaraya's avatar
rameshnaraya committed
549
      summary: Scale a NS instance.
550 551
      description: >
        The POST method requests to scale a NS instance resource.
552 553 554 555 556 557 558 559 560 561 562 563 564 565 566 567 568 569 570 571 572 573
      parameters:
        - name: Accept
          description: >
            Content-Types that are acceptable for the response.
            Reference: IETF RFC 7231
          in: header
          required: true
          type: string
        - name: Authorization
          description: >
            The authorization token for the request.
            Reference: IETF RFC 7235
          in: header
          required: false
          type: string
        - name: Content-Type
          description: >
            The MIME type of the body of the request.
            Reference: IETF RFC 7231
          in: header
          required: true
          type: string
574 575 576 577 578 579
        - name: Version
          description: >
            Version of the API requested to use when responding to this request.
          in: header
          required: true
          type: string
580 581
        - name: body
          in: body
582 583
          required: true
          schema:
584 585 586
            $ref: "definitions/SOL005NSLifecycleManagement_def.yaml#/definitions/ScaleNsRequest"
          description: >
            Parameters for the scale NS operation, as defined in clause 6.5.2.13.
587 588
      responses:
        202:
589 590 591 592 593 594 595 596 597 598 599
          description: >
            202 ACCEPTED

            The request has been accepted for processing, but
            the processing has not been completed.
            The response body shall be empty.
            The HTTP response shall include a "Location" HTTP
            header that contains the URI of the newly-created
            "NS lifecycle operation occurrence" resource
            corresponding to the operation.
          $ref: "../responses/SOL005_resp.yaml#/responses/202"
600
        400:
601
          $ref: "../responses/SOL005_resp.yaml#/responses/400"
602
        401:
603
          $ref: "../responses/SOL005_resp.yaml#/responses/401"
604
        403:
605
          $ref: "../responses/SOL005_resp.yaml#/responses/403"
606
        404:
607
          $ref: "../responses/SOL005_resp.yaml#/responses/404"
608
        405:
609
          $ref: "../responses/SOL005_resp.yaml#/responses/405"
610
        406:
611
          $ref: "../responses/SOL005_resp.yaml#/responses/406"
612
        409:
613 614 615 616 617 618 619 620 621 622 623
          description: >
            409 CONFLICT

            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 NS instance
            resource is in NOT_INSTANTIATED state, or that
            another lifecycle management operation is ongoing.
            The response body shall contain a ProblemDetails
            structure, in which the "detail" attribute shall convey
            more information about the error.
624
          $ref: "../responses/SOL005_resp.yaml#/responses/409"
625
        500:
626
          $ref: "../responses/SOL005_resp.yaml#/responses/500"
627
        503:
628
          $ref: "../responses/SOL005_resp.yaml#/responses/503"
629 630
        504:
          $ref: "../responses/SOL005_resp.yaml#/responses/504"
631 632 633 634

  ###############################################################################
  # Update NS task                                                              #
  ###############################################################################
635 636 637 638 639 640 641 642 643
  '/ns_instances/{nsInstanceId}/update':
    #ETSI GS NFV-SOL 005 V2.4.1 location: 6.4.6
    parameters:
      - name: nsInstanceId
        description: >
          Identifier of the NS instance to be updated.
        in: path
        type: string
        required: true
644
    post:
rameshnaraya's avatar
rameshnaraya committed
645
      summary: Updates a NS instance.
646 647 648
      description: >
        Scale NS instance.
        The POST method requests to scale a NS instance resource.
649 650 651 652 653 654 655 656 657 658 659 660 661 662 663 664 665 666 667 668 669 670
      parameters:
        - name: Accept
          description: >
            Content-Types that are acceptable for the response.
            Reference: IETF RFC 7231
          in: header
          required: true
          type: string
        - name: Authorization
          description: >
            The authorization token for the request.
            Reference: IETF RFC 7235
          in: header
          required: false
          type: string
        - name: Content-Type
          description: >
            The MIME type of the body of the request.
            Reference: IETF RFC 7231
          in: header
          required: true
          type: string
671 672 673 674 675 676
        - name: Version
          description: >
            Version of the API requested to use when responding to this request.
          in: header
          required: true
          type: string
677 678
        - name: body
          in: body
679 680
          required: true
          schema:
681 682 683
            $ref: "definitions/SOL005NSLifecycleManagement_def.yaml#/definitions/UpdateNsRequest"
          description: >
            Parameters for the update NS operation, as defined in clause 6.5.2.11.
684 685
      responses:
        202:
686 687 688 689 690 691 692 693 694 695 696
          description: >
            202 ACCEPTED

            The request has been accepted for processing, but
            the processing has not been completed.
            The response body shall be empty.
            The HTTP response shall include a "Location" HTTP
            header that contains the URI of the newly-created
            "NS lifecycle operation occurrence" resource
            corresponding to the operation.
          $ref: "../responses/SOL005_resp.yaml#/responses/202"
697
        400:
698
          $ref: "../responses/SOL005_resp.yaml#/responses/400"
699
        401:
700
          $ref: "../responses/SOL005_resp.yaml#/responses/401"
701
        403:
702
          $ref: "../responses/SOL005_resp.yaml#/responses/403"
703
        404:
704
          $ref: "../responses/SOL005_resp.yaml#/responses/404"
705
        405:
706
          $ref: "../responses/SOL005_resp.yaml#/responses/405"
707
        406:
708
          $ref: "../responses/SOL005_resp.yaml#/responses/406"
709
        409:
710 711 712 713 714 715 716 717 718 719 720
          description: >
            409 CONFLICT

            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 NS instance
            resource is in NOT_INSTANTIATED state, or that
            another lifecycle management operation is ongoing.
            The response body shall contain a ProblemDetails
            structure, in which the "detail" attribute shall convey
            more information about the error.
721
          $ref: "../responses/SOL005_resp.yaml#/responses/409"
722
        500:
723
          $ref: "../responses/SOL005_resp.yaml#/responses/500"
724
        503:
725
          $ref: "../responses/SOL005_resp.yaml#/responses/503"
726 727
        504:
          $ref: "../responses/SOL005_resp.yaml#/responses/504"
728 729 730 731

  ###############################################################################
  # Heal NS task                                                                #
  ###############################################################################
732 733
  '/ns_instances/{nsInstanceId}/heal':
    #ETSI GS NFV-SOL 005 V2.4.1 location: 6.4.7
734 735 736
    parameters:
      - name: nsInstanceId
        description: >
737
          Identifier of the NS instance to be healed.
738 739 740 741
        in: path
        type: string
        required: true
    post:
742 743
      summary: Heal a NS instance.
      description: >
744 745 746 747
        The POST method requests to heal a NS instance resource.
        This method shall follow the provisions specified in the Tables 6.4.7.3.1-1 and 
        6.4.7.3.1-2 for URI query parameters,
        request and response data structures, and response codes.
748
      parameters:
749 750 751 752 753 754 755 756 757 758 759 760 761 762 763 764 765 766 767 768 769
        - name: Accept
          description: >
            Content-Types that are acceptable for the response.
            Reference: IETF RFC 7231
          in: header
          required: true
          type: string
        - name: Authorization
          description: >
            The authorization token for the request.
            Reference: IETF RFC 7235
          in: header
          required: false
          type: string
        - name: Content-Type
          description: >
            The MIME type of the body of the request.
            Reference: IETF RFC 7231
          in: header
          required: true
          type: string
770 771 772 773 774 775
        - name: Version
          description: >
            Version of the API requested to use when responding to this request.
          in: header
          required: true
          type: string
776 777
        - name: body
          in: body
778 779
          required: true
          schema:
780
            $ref: "definitions/SOL005NSLifecycleManagement_def.yaml#/definitions/HealNsRequest"
781 782
          description: >
            Parameters for the heal NS operation, as defined in clause 6.5.2.12.
783 784
      responses:
        202:
785 786 787 788 789 790 791 792 793 794 795
          description: >
            202 ACCEPTED

            The request has been accepted for processing, but
            the processing has not been completed.
            The response body shall be empty.
            The HTTP response shall include a "Location" HTTP
            header that contains the URI of the newly-created
            "NS lifecycle operation occurrence" resource
            corresponding to the operation.
          $ref: "../responses/SOL005_resp.yaml#/responses/202"
796
        400:
797
          $ref: "../responses/SOL005_resp.yaml#/responses/400"
798
        401:
799
          $ref: "../responses/SOL005_resp.yaml#/responses/401"
800
        403:
801
          $ref: "../responses/SOL005_resp.yaml#/responses/403"
802
        404:
803
          $ref: "../responses/SOL005_resp.yaml#/responses/404"
804
        405:
805
          $ref: "../responses/SOL005_resp.yaml#/responses/405"
806
        406:
807
          $ref: "../responses/SOL005_resp.yaml#/responses/406"
808
        409:
809 810 811 812 813 814 815 816 817 818 819
          description: >
            409 CONFLICT

            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 NS instance
            resource is in NOT_INSTANTIATED state, or that
            another lifecycle management operation is ongoing.
            The response body shall contain a ProblemDetails
            structure, in which the "detail" attribute shall convey
            more information about the error.
820
          $ref: "../responses/SOL005_resp.yaml#/responses/409"
821
        500:
822
          $ref: "../responses/SOL005_resp.yaml#/responses/500"
823
        503:
824
          $ref: "../responses/SOL005_resp.yaml#/responses/503"
825 826
        504:
          $ref: "../responses/SOL005_resp.yaml#/responses/504"
827

828 829 830
  ###############################################################################
  # Terminate NS task                                                           #
  ###############################################################################
831 832
  '/ns_instances/{nsInstanceId}/terminate':
    #ETSI GS NFV-SOL 005 V2.4.1 location: 6.4.8
833 834 835
    parameters:
      - name: nsInstanceId
        description: >
836
          The identifier of the NS instance to be terminated.
837 838 839 840
        in: path
        type: string
        required: true
    post:
841 842 843 844 845 846 847 848 849 850
      summary: Terminate a NS instance.
      description: >
        Terminate NS task.  
        The POST method terminates a NS instance. This method can only be 
        used with a NS instance in the INSTANTIATED
        state. Terminating a NS instance does not delete the NS instance identifier, 
        but rather transitions the NS into the NOT_INSTANTIATED state.
        This method shall support the URI query parameters, request and 
        response data structures, and response codes, as
        specified in the Tables 6.4.8.3.1-1 and 6.8.8.3.1-2.
851
      parameters:
852 853 854 855 856 857 858 859 860 861 862 863 864 865 866 867 868 869 870 871 872
        - name: Accept
          description: >
            Content-Types that are acceptable for the response.
            Reference: IETF RFC 7231
          in: header
          required: true
          type: string
        - name: Authorization
          description: >
            The authorization token for the request.
            Reference: IETF RFC 7235
          in: header
          required: false
          type: string
        - name: Content-Type
          description: >
            The MIME type of the body of the request.
            Reference: IETF RFC 7231
          in: header
          required: true
          type: string
873 874 875 876 877 878
        - name: Version
          description: >
            Version of the API requested to use when responding to this request.
          in: header
          required: true
          type: string
879 880
        - name: body
          in: body
881 882
          required: true
          schema:
883
            $ref: "definitions/SOL005NSLifecycleManagement_def.yaml#/definitions/TerminateNsRequest"
884 885
          description: >
            The terminate NS request parameters, as defined in  clause 6.5.2.14.
886 887
      responses:
        202:
888 889 890 891 892 893 894 895 896 897 898
          description: >
            202 ACCEPTED

            Shall be returned when the request has been
            accepted for processing.
            The response body shall be empty.
            The HTTP response shall include a "Location" HTTP
            header that contains the URI of the newly-created
            "NS lifecycle operation occurrence" resource
            corresponding to the operation.
          $ref: "../responses/SOL005_resp.yaml#/responses/202"
899
        400:
900
          $ref: "../responses/SOL005_resp.yaml#/responses/400"
901
        401:
902
          $ref: "../responses/SOL005_resp.yaml#/responses/401"
903
        403:
904
          $ref: "../responses/SOL005_resp.yaml#/responses/403"
905
        404:
906
          $ref: "../responses/SOL005_resp.yaml#/responses/404"
907
        405:
908
          $ref: "../responses/SOL005_resp.yaml#/responses/405"
909
        406:
910
          $ref: "../responses/SOL005_resp.yaml#/responses/406"
911
        409:
912 913 914 915 916 917 918 919 920 921 922
          description: >
            409 CONFLICT

            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 NS instance
            resource is in NOT_INSTANTIATED state, or that
            another lifecycle management operation is ongoing.
            The response body shall contain a ProblemDetails
            structure, in which the "detail" attribute shall convey
            more information about the error.
923
          $ref: "../responses/SOL005_resp.yaml#/responses/409"
924
        500:
925
          $ref: "../responses/SOL005_resp.yaml#/responses/500"
926
        503:
927
          $ref: "../responses/SOL005_resp.yaml#/responses/503"
928 929
        504:
          $ref: "../responses/SOL005_resp.yaml#/responses/504"
930

931 932 933
  ###############################################################################
  # NS LCM operation occurrences                                                #
  ###############################################################################
934 935 936
  '/ns_lcm_op_occs':
    #ETSI GS NFV-SOL 005 V2.4.1 location: 6.4.9
    get:
rameshnaraya's avatar
rameshnaraya committed
937
      summary: Query multiple NS LCM operation occurrences.
938
      description: >
939
        Get Operation Status.
940 941 942 943 944
        The client can use this method to query status information about multiple NS lifecycle management operation
        occurrences.
        This method shall follow the provisions specified in the Tables 6.4.9.3.2-1 and 6.4.9.3.2-2 for URI query parameters,
        request and response data structures, and response codes.
      parameters:
945 946
        - name: filter
          in: query
947
          required: false
948
          type: string
949
          description: >
950
            Attribute-based filtering expression according to clause 5.2 of ETSI GS NFV SOL 013.
951 952
            The NFVO shall support receiving this parameter as part of the URI query string.
            The OSS/BSS may supply this parameter.
953
            All attribute names that appear in the NsLcmOpOcc and in data types referenced
954
            from it shall be supported by the NFVO in the filter expression.
955 956
        - name: fields
          in: query
957
          required: false
958
          type: string
959
          description: >
960
            Complex attributes to be included into the response. See clause 5.3 of ETSI GS NFV SOL 013 for details. The
961
            NFVO should support this parameter.
962 963
        - name: exclude_fields
          in: query
964
          required: false
965
          type: string
966
          description: >
967
            Complex attributes to be excluded from the response. See clause 5.3 of ETSI GS NFV SOL 013 for details.
968
            The NFVO should support this parameter.
969 970
        - name: exclude_default
          in: query
971
          required: false
972
          type: string
973
          description: >
974
            Indicates to exclude the following complex attributes from the response. See
975
            clause 5.3 of ETSI GS NFV SOL 013 for details. The NFVO shall support this parameter.
976 977 978 979 980 981
            The following attributes shall be excluded from the NsLcmOpOcc structure in the
            response body if this parameter is provided:
            - operationParams
            - changedVnfInfo
            - error
            - resourceChanges
982 983 984 985
        - name: nextpage_opaque_marker
          in: query
          description: >
            Marker to obtain the next page of a paged response. Shall be supported by the NFVO
986 987
            if the NFVO supports alternative 2 (paging) according to clause 5.4.2.1 of
            ETSI GS NFV SOL 013 for this resource.
988 989
          required: false
          type: string
990 991 992 993
        - name: Accept
          description: >
            Content-Types that are acceptable for the response.
            Reference: IETF RFC 7231
994 995 996
          in: header
          required: true
          type: string
997 998 999 1000 1001 1002 1003
        - name: Authorization
          description: >
            The authorization token for the request.
            Reference: IETF RFC 7235
          in: header
          required: false
          type: string
1004 1005 1006 1007 1008 1009
        - name: Version
          description: >
            Version of the API requested to use when responding to this request.
          in: header
          required: true
          type: string
1010 1011 1012
      responses:
        200:
          description: >
1013
            200 OK
1014

1015
            Status information for zero or more NS lifecycle management operation 
1016
            occurrences has been queried successfully.
1017
            The response body shall contain in an array the representations of
1018 1019 1020 1021 1022 1023 1024 1025
            zero or more NS instances, as defined in clause 6.5.2.3.

            If the "filter" URI parameter or one of the "all_fields", "fields",
            "exclude_fields" or "exclude_default" URI parameters was supplied in
            the request and is supported, the data in the response body shall have
            been transformed according to the rules specified in clauses 5.2.2 and
            5.3.2 of ETSI GS NFV SOL 013, respectively.

1026
            If the NFVO supports alternative 2 (paging) according to 
1027 1028
            clause 5.4.2.1 of ETSI GS NFV SOL 013 for this resource, inclusion of the Link HTTP header
            in this response shall follow the provisions in clause 5.4.2.3 of ETSI GS NFV SOL 013.
1029 1030 1031 1032 1033 1034 1035
          headers:
            Content-Type:
              description: The MIME type of the body of the response.
              type: string
              maximum: 1
              minimum: 1
            WWW-Authenticate:
1036
              type: string
1037 1038
              description: >
                Challenge if the corresponding HTTP request has not provided
1039 1040 1041
                authorization, or error details if the corresponding HTTP request
                has provided an invalid authorization token.
              maximum: 1
1042
              minimum: 0
1043 1044 1045 1046 1047
            Version:
              description: >
                Version of the API used in the response.
              type: string
              maximum: 1
1048
              minimum: 1
1049 1050 1051 1052 1053 1054
            Link:
              description: >
                Reference to other resources. Used for paging in the present document, see clause 4.7.2.1.
              type: string
              maximum: 1
              minimum: 0
1055 1056 1057
          schema:
            type: array
            items:
rameshnaraya's avatar
rameshnaraya committed
1058 1059
              properties:
                NsLcmOpOcc:
1060
                  $ref: "definitions/SOL005NSLifecycleManagement_def.yaml#/definitions/NsLcmOpOcc"
1061
        400:
1062
          $ref: "../responses/SOL005_resp.yaml#/responses/400"
1063
        401:
1064
          $ref: "../responses/SOL005_resp.yaml#/responses/401"
1065
        403:
1066
          $ref: "../responses/SOL005_resp.yaml#/responses/403"
1067
        404:
1068
          $ref: "../responses/SOL005_resp.yaml#/responses/404"
1069
        405:
1070
          $ref: "../responses/SOL005_resp.yaml#/responses/405"
1071
        406:
1072
          $ref: "../responses/SOL005_resp.yaml#/responses/406"
1073
        500:
1074
          $ref: "../responses/SOL005_resp.yaml#/responses/500"
1075
        503:
1076
          $ref: "../responses/SOL005_resp.yaml#/responses/503"
1077 1078
        504:
          $ref: "../responses/SOL005_resp.yaml#/responses/504"
1079

1080 1081 1082
  ###############################################################################
  # Individual NS lifecycle operation occurrence                                #
  ###############################################################################
1083
  '/ns_lcm_op_occs/{nsLcmOpOccId}':
1084
    #ETSI GS NFV-SOL 005 V2.4.1 location: 6.4.10     
1085 1086 1087 1088 1089 1090 1091
    parameters:
      - name: nsLcmOpOccId
        description: >
          Identifier of a NS lifecycle management operation occurrence.
        in: path
        type: string
        required: true
1092
    get:
rameshnaraya's avatar
rameshnaraya committed
1093
      summary: Read an individual NS LCM operation occurrence resource.
1094
      description: >
1095 1096 1097 1098 1099 1100
        The client can use this method to retrieve status information about
        a NS lifecycle management operation occurrence by
        reading an individual "NS LCM operation occurrence" resource.
        This method shall follow the provisions specified in the
        Tables 6.4.10.3.2-1 and 6.4.10.3.2-2 for URI query parameters,
        request and response data structures, and response codes.
1101 1102 1103 1104 1105 1106 1107 1108 1109 1110 1111 1112 1113 1114 1115 1116 1117 1118 1119 1120 1121 1122
      parameters:
        - name: Accept
          description: >
            Content-Types that are acceptable for the response.
            Reference: IETF RFC 7231
          in: header
          required: true
          type: string
        - name: Authorization
          description: >
            The authorization token for the request.
            Reference: IETF RFC 7235
          in: header
          required: false
          type: string
        - name: Content-Type
          description: >
            The MIME type of the body of the request.
            Reference: IETF RFC 7231
          in: header
          required: true
          type: string
1123 1124 1125 1126 1127 1128
        - name: Version
          description: >
            Version of the API requested to use when responding to this request.
          in: header
          required: true
          type: string
1129 1130
      responses:
        200:
1131 1132
          description: >
            200 OK
1133

1134
            Information about a NS LCM operation occurrence has been
1135 1136 1137
            queried successfully.
            The response body shall contain status information about a NS 
            lifecycle management operation occurrence (see clause 6.5.2.3).
rameshnaraya's avatar
rameshnaraya committed
1138
          schema:
1139
            $ref: "definitions/SOL005NSLifecycleManagement_def.yaml#/definitions/NsLcmOpOcc"
1140 1141
          headers:
            Content-Type:
1142
              type: string
1143
              description: >
rameshnaraya's avatar
rameshnaraya committed
1144 1145
                The MIME type of the body of the response.This header
                field shall be present if the response has a non-empty message body.
1146
              maximum: 1
1147
              minimum: 1
1148
            WWW-Authenticate:
1149
              type: string
1150 1151
              description: >
                Challenge if the corresponding HTTP request has not provided
rameshnaraya's avatar
rameshnaraya committed
1152 1153
                authorization, or error details if the corresponding HTTP request
                has provided an invalid authorization token.
1154
              maximum: 1
1155
              minimum: 0
1156 1157 1158 1159 1160
            Version:
              description: >
                Version of the API used in the response.
              type: string
              maximum: 1
1161
              minimum: 1
1162
        400:
1163
          $ref: "../responses/SOL005_resp.yaml#/responses/400"
1164
        401:
1165
          $ref: "../responses/SOL005_resp.yaml#/responses/401"
1166
        403:
1167
          $ref: "../responses/SOL005_resp.yaml#/responses/403"
1168
        404:
1169
          $ref: "../responses/SOL005_resp.yaml#/responses/404"
1170
        405:
1171
          $ref: "../responses/SOL005_resp.yaml#/responses/405"
1172
        406:
1173
          $ref: "../responses/SOL005_resp.yaml#/responses/406"
1174
        416:
1175
          $ref: "../responses/SOL005_resp.yaml#/responses/416"
1176
        500:
1177
          $ref: "../responses/SOL005_resp.yaml#/responses/500"
1178
        503:
1179
          $ref: "../responses/SOL005_resp.yaml#/responses/503"
1180 1181
        504:
          $ref: "../responses/SOL005_resp.yaml#/responses/504"
1182

1183 1184 1185
  ###############################################################################
  # Retry operation task                                                        #
  ###############################################################################
1186 1187 1188 1189 1190 1191
  '/ns_lcm_op_occs/{nsLcmOpOccId}/retry':
    #ETSI GS NFV-SOL 005 V2.4.1 location: 6.4.11
    parameters:
      - name: nsLcmOpOccId
        description: >
          Identifier of a NS lifecycle management operation occurrence to be retried.
1192

1193 1194
          This identifier can be retrieved from the resource referenced by the "Location" HTTP header in the response
          to a POST request triggering a NS LCM operation. It can also be retrieved from the "nsLcmOpOccId"
rameshnaraya's avatar
rameshnaraya committed
1195
          attribute in the NsLcmOperationOccurrenceNotification.
1196 1197 1198 1199
        in: path
        type: string
        required: true
    post:
rameshnaraya's avatar
rameshnaraya committed
1200
      summary: Retry a NS lifecycle management operation occurrence.
1201 1202 1203 1204 1205 1206 1207 1208 1209 1210 1211 1212 1213 1214 1215
      description: >
        The POST method initiates retrying a NS lifecycle management operation 
        if that operation has experienced a temporary
        failure, i.e. the related "NS LCM operation occurrence" is in "FAILED_TEMP" state.
        This method shall follow the provisions specified in the 
        Tables 6.4.11.3.1-1 and 6.4.11.3.1-2 for URI query parameters,
        request and response data structures, and response codes.
      parameters:
        - name: Authorization
          description: >
            The authorization token for the request.
            Reference: IETF RFC 7235
          in: header
          required: false
          type: string
1216 1217 1218 1219 1220 1221
        - name: Version
          description: >
            Version of the API requested to use when responding to this request.
          in: header
          required: true
          type: string
1222 1223
      responses:
        202:
1224 1225 1226 1227 1228 1229 1230
          description: >
            202 ACCEPTED

            The request has been accepted for processing, but
            processing has not been completed.
            The response shall have an empty payload body.
          $ref: "../responses/SOL005_resp.yaml#/responses/202"
1231
        400:
1232
          $ref: "../responses/SOL005_resp.yaml#/responses/400"
1233
        401:
1234
          $ref: "../responses/SOL005_resp.yaml#/responses/401"
1235
        403:
1236
          $ref: "../responses/SOL005_resp.yaml#/responses/403"
1237
        404:
1238 1239 1240 1241 1242 1243 1244 1245 1246 1247 1248 1249 1250 1251 1252 1253 1254 1255
          description: >
            404 NOT FOUND

            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 reason
            can also be that the task is not supported for the NS
            LCM operation occurrence represented by the parent
            resource, and that the task resource consequently
            does not exist.
            In this case, the response body shall be present, and
            shall contain a ProblemDetails structure, in which the
            "detail" attribute shall convey more information about
            the error.
1256
          $ref: "../responses/SOL005_resp.yaml#/responses/404"
1257
        405:
1258
          $ref: "../responses/SOL005_resp.yaml#/responses/405"
1259
        406:
1260
          $ref: "../responses/SOL005_resp.yaml#/responses/406"
1261
        409:
1262 1263 1264 1265 1266 1267 1268 1269 1270 1271 1272 1273 1274
          description: >
            409 CONFLICT

            Error: The operation cannot be executed currently,
            due to a conflict with the state of the NS LCM
            operation occurrence resource.
            Typically, this is due to the fact that the NS LCM
            operation occurrence is not in FAILED_TEMP state, or
            another error handling action is starting, such as
            rollback or fail.
            The response body shall contain a ProblemDetails
            structure, in which the "detail" attribute shall convey
            more information about the error.
1275
          $ref: "../responses/SOL005_resp.yaml#/responses/409"
1276
        500:
1277
          $ref: "../responses/SOL005_resp.yaml#/responses/500"
1278
        503: