Skip to content
Snippets Groups Projects
VNFLifecycleManagement.yaml 60.3 KiB
Newer Older
  • Learn to ignore specific revisions
  •   title: "SOL002 - VNF Configuration interface"
    
        VNF Configuration interface of ETSI NFV SOL002
    
    
        IMPORTANT: Please note that this file might be not aligned to the current
    
        version of the ETSI Group Specification it refers to. 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&list_id=61&product=NFV&resolution=---
      license:
        name: "ETSI Forge copyright notice"
        url: https://forge.etsi.org/etsi-forge-copyright-notice.txt
    
    
    externalDocs:
      description: ETSI GS NFV-SOL 002 V2.4.1
    
      url: http://www.etsi.org/deliver/etsi_gs/NFV-SOL/001_099/002/02.04.01_60/gs_NFV-SOL002v020401p.pdf
    
    
    schemes: 
      - http
      - https
    
    consumes: 
      - application/json
    
    produces: 
      - application/json
    
    
    paths:
    
    ###############################################################################
    # VNF instances                                                               #
    ###############################################################################
      '/vnf_instances':
        #SOL003 location: 5.4.2
        post:
          #TODO: Add headers defined in 4.3.4.2
          description: "The POST method creates a new VNF instance resource."
          parameters:
            - name: createVnfRequest
              description: The VNF creation parameters
              in: body
              required: true
              schema:
                $ref: "../../definitions/SOL002SOL003VNFLifecycleManagement_def.yaml#/definitions/CreateVnfRequest"
            - 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: 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:
            201:
              description: A VNF Instance identifier was created successfully
              headers:
                #TODO: Add headers defined in 4.3.4.3
                Content-Type:
                  description: The MIME type of the body of the response.
                  type: string
                  maximum: 1
                  minimum: 1
                Location:
                  description: The resource URI of the created VNF instance
                  type: string
                  format: url
                WWW-Authenticate:
                  description: >
    
                    Challenge if the corresponding HTTP request has not provided
                    authorization, or error details if the corresponding HTTP
                    request has provided an invalid authorization token.
                  type: string
                  maximum: 1
                  minimum: 0
              schema:
                $ref: "definitions/VNFLifecycleManagement_def.yaml#/definitions/VnfInstance"
            400:
              $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/400"
            401:
              $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/401"
            403:
              $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/403"
            404:
              $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/404"
            405:
              $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/404"
            406:
              $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/406"
            409:
              $ref: "responses/VNFLifecycleManagement_resp.yaml#/responses/409-inconsistent-state"
            416:
              $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/416"
            422:
              $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/422"
            500:
              $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/500"
            503:
              $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/503"
        get:
          description: >
            The GET method queries information about multiple VNF instances.
          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: true
              type: string
    
            - name: filter
              description: >
                Attribute-based filtering expression according to clause 4.3.2.
                The VNFM shall support receiving this parameter as part of the URI query string.
                The EM may supply this parameter. All attribute names that appear in the VnfInstance
                and in data types referenced from it shall be supported by the VNFM in the filter expression.
                EXAMPLE
                objects
                obj1: {"id":123, "weight":100, "parts":[{"id":1, "color":"red"}, {"id":2, "color":"green"}]}
                obj2: {"id":456, "weight":500, "parts":[{"id":3, "color":"green"}, {"id":4, "color":"blue"}]}
    
                Request 1:
                GET …/container
    
                Response 1:
                [
                    {"id":123, "weight":100, "parts":[{"id":1, "color":"red"}, {"id":2, "color":"green"}]},
                    {"id":456, "weight":500, "parts":[{"id":3, "color":"green"}, {"id":4, "color":"blue"}]}
                ]
    
                Request 2:
                GET …/container?filter=(eq.weight,100)
    
                Response 2:
                [
                    {"id":123, "weight":100, "parts":[{"id":1, "color":"red"}, {"id":2, "color":"green"}]}
                ]
              #Request 2 in EXAMPLE from clause 4.3.2 probably wrong, since "," should be used after opOne (eq), "." is used
              in: query
              required: false
              type: string
            - name: all_fields
              description: >
                Include all complex attributes in the response.
                See clause 4.3.3 for details. The VNFM shall support this parameter.
              in: query
              required: false
              type: string
            - name: fields
              description: >
                Complex attributes to be included into the response.
                See clause 4.3.3 for details. The VNFM should support this parameter.
              in: query
              required: false
              type: string
            - name: exclude_fields
              description: >
                Complex attributes to be excluded from the response.
                See clause 4.3.3 for details. The VNFM should support this parameter.
              in: query
              required: false
              type: string
            - name: exclude_default
              description: >
                Indicates to exclude the following complex attributes from the response.
                See clause 4.3.3 for details. The VNFM shall support this parameter.
                The following attributes shall be excluded from the VnfInstance structure
                in the response body if this parameter is provided, or none of the parameters
                "all_fields," "fields", "exclude_fields", "exclude_default" are provided:
                -	vnfConfigurableProperties
                -	instantiatedVnfInfo
                -	metadata
                -	extensions
              in: query
              required: false
              type: string
    
                Information about zero or more VNF instances was queried
    
                successfully. The response body shall contain in an array the
    
                representations of zero or more VNF instances.
              headers:
                Content-Type:
                  description: The MIME type of the body of the response.
                  type: string
                  maximum: 1
                  minimum: 1
                WWW-Authenticate:
                  description: >
                    Challenge if the corresponding HTTP request has not provided
                    authorization, or error details if the corresponding HTTP
                    request has provided an invalid authorization token.
                  type: string
                  maximum: 1
                  minimum: 0
              schema:
                type: array
                items:
                  $ref: "definitions/VNFLifecycleManagement_def.yaml#/definitions/VnfInstance"
            400:
              $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/400-attr-selector"
            401:
              $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/401"
            403:
              $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/403"
            404:
              $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/404"
            405:
              $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/404"
            406:
              $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/406"
            409:
              $ref: "responses/VNFLifecycleManagement_resp.yaml#/responses/409-inconsistent-state"
            416:
              $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/416"
            500:
              $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/500"
            503:
              $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/503"
    ###############################################################################
    # Individual VNF instance                                                     #
    ###############################################################################
      '/vnf_instances/{vnfInstanceId}':
        #SOL003 location: 5.4.3.2
        parameters:
          - name: vnfInstanceId
            description: >
              Identifier of the VNF instance. This identifier can be retrieved from
              the resource referenced by the "Location" HTTP header in the response
              to a POST request creating a new VNF instance resource. It can also
              be retrieved from the "id" attribute in the payload body of that
              response.
            in: path
            type: string
            required: true
        get:
          description: >
            Information about an individual VNF instance was queried successfully.
          responses:
            200:
              description: > 
    
                Information about zero or more VNF instances was queried
                successfully. The response body shall contain
                representations of zero or more VNF instances.
              headers:
                Content-Type:
                  description: The MIME type of the body of the response.
                  type: string
                  maximum: 1
                  minimum: 1
                WWW-Authenticate:
                  description: >
                    Challenge if the corresponding HTTP request has not provided
                    authorization, or error details if the corresponding HTTP
                    request has provided an invalid authorization token.
                  type: string
                  maximum: 1
                  minimum: 0
              schema:
                $ref: "definitions/VNFLifecycleManagement_def.yaml#/definitions/VnfInstance"
            400:
              $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/400"
            401:
              $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/401"
            403:
              $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/403"
            404:
              $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/404"
            405:
              $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/404"
            406:
              $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/406"
            409:
              $ref: "responses/VNFLifecycleManagement_resp.yaml#/responses/409-inconsistent-state"
            416:
              $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/416"
            500:
              $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/500"
            503:
              $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/503"
        patch:
          #SOL003 location: 5.4.3.3.4
          description: >
            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
          parameters:
            - name: vnfInfoModifications
              description: Input parameters for VNF info modification
              required: true
              in: body
              schema:
    
                $ref: "../../definitions/SOL002SOL003VNFLifecycleManagement_def.yaml#/definitions/VnfInfoModificationRequest"
    
          responses:
            202:
              $ref: "responses/VNFLifecycleManagement_resp.yaml#/responses/202-with-Location"
            400:
              $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/400-attr-selector"
            401:
              $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/401"
            403:
              $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/403"
            404:
              $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/404"
            405:
              $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/404"
            406:
              $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/406"
            409:
              $ref: "responses/VNFLifecycleManagement_resp.yaml#/responses/409-another-lcm-operation-ongoing"
            412:
              $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/412"
            500:
              $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/500"
            503:
              $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/503"
        delete:
          #SOL003 location: 5.4.3.3.5
          description: >
            This method deletes an individual VNF instance resource.
          responses:
            204:
              description: > 
    
                The VNF instance resource and the associated VNF identifier were
                deleted successfully.
                The response body shall be empty.
              headers:
                WWW-Authenticate:
                  description: >
                    Challenge if the corresponding HTTP request has not provided
                    authorization, or error details if the corresponding HTTP
                    request has provided an invalid authorization token.
                  type: string
                  maximum: 1
                  minimum: 0
            400:
              $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/400-attr-selector"
            401:
              $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/401"
            403:
              $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/403"
            404:
              $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/404"
            405:
              $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/404"
            406:
              $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/406"
            409:
              $ref: "responses/VNFLifecycleManagement_resp.yaml#/responses/409-state-conflict-INSTANTIATED"
            412:
              $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/412"
            500:
              $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/500"
            503:
              $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/503"
    ###############################################################################
    # Instantiate VNF task                                                        #
    ###############################################################################
      '/vnf_instances/{vnfInstanceId}/instantiate':
        #SOL003 location: 5.4.4.2
        parameters:
          - name: vnfInstanceId
            description: >
              Identifier of the VNF instance. This identifier can be retrieved from
              the resource referenced by the "Location" HTTP header in the response
              to a POST request creating a new VNF instance resource. It can also
              be retrieved from the "id" attribute in the payload body of that
              response.
            in: path
            type: string
            required: true
        post: 
          #SOL003 location: 5.4.4.3.1
          description: >
            The POST method instantiates a VNF instance.
          parameters:
            - name: InstantiateVnfRequest
              description: Parameters for the VNF instantiation.
              in: body
              required: true
              schema:
                $ref: "definitions/VNFLifecycleManagement_def.yaml#/definitions/InstantiateVnfRequest"
          responses:
            200:
              description: > 
    
    427 428 429 430 431 432 433 434 435 436 437 438 439 440 441 442 443 444 445 446 447 448 449 450 451 452 453 454 455 456 457 458 459 460 461 462 463 464 465 466 467 468 469 470 471 472 473 474 475 476 477 478 479 480 481 482 483 484 485 486 487 488 489 490 491 492 493 494 495 496 497 498 499 500 501 502 503 504 505 506 507 508 509 510 511 512 513 514 515 516 517 518 519 520 521 522 523 524 525 526 527 528 529 530 531 532 533 534 535 536 537 538 539 540 541 542 543 544 545 546 547 548 549 550 551 552 553 554 555 556 557 558 559 560 561 562 563 564 565 566 567 568 569 570 571 572 573 574 575 576 577 578 579 580 581 582 583 584 585 586 587 588 589 590 591 592 593 594 595 596 597 598 599 600 601 602 603 604 605 606 607 608 609 610 611 612 613 614 615 616 617 618 619 620 621 622 623 624 625 626 627 628 629 630 631 632 633 634 635 636 637 638 639 640 641 642 643 644 645 646 647 648 649 650 651 652 653 654 655 656 657 658 659 660 661 662 663 664 665 666 667 668 669 670 671 672 673 674 675 676 677 678 679 680 681 682 683 684 685 686 687 688 689 690 691 692 693 694 695 696 697 698 699 700 701 702 703 704 705 706 707 708 709 710 711 712 713 714 715 716 717 718 719 720 721 722 723 724 725 726 727 728 729 730 731 732 733 734 735 736 737 738 739 740 741 742 743 744 745 746 747 748 749 750 751 752 753 754 755 756 757 758 759 760 761 762 763 764 765 766 767 768 769 770 771 772 773 774 775 776 777 778 779 780 781 782 783 784 785 786 787 788 789 790 791 792 793 794 795 796 797 798 799 800 801 802 803 804 805 806 807 808 809 810
                Information about zero or more VNF instances was queried
                successfully. The response body shall contain
                representations of zero or more VNF instances.
              headers:
                Content-Type:
                  description: The MIME type of the body of the response.
                  type: string
                  maximum: 1
                  minimum: 1
                WWW-Authenticate:
                  description: >
                    Challenge if the corresponding HTTP request has not provided
                    authorization, or error details if the corresponding HTTP
                    request has provided an invalid authorization token.
                  type: string
                  maximum: 1
                  minimum: 0
              schema:
                $ref: "definitions/VNFLifecycleManagement_def.yaml#/definitions/VnfInstance"
            400:
              $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/400"
            401:
              $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/401"
            403:
              $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/403"
            404:
              $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/404"
            405:
              $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/404"
            406:
              $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/406"
            409:
              $ref: "responses/VNFLifecycleManagement_resp.yaml#/responses/409-state-conflict-INSTANTIATED"
            416:
              $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/416"
            500:
              $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/500"
            503:
              $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/503"
    ###############################################################################
    # Scale VNF task                                                              #
    ###############################################################################
      '/vnf_instances/{vnfInstanceId}/scale':
        #SOL003 location: 5.4.5.2
        parameters:
          - name: vnfInstanceId
            description: >
              Identifier of the VNF instance to be scaled. This identifier can be
              retrieved from the resource referenced by the "Location" HTTP header
              in the response to a POST request creating a new VNF instance
              resource. It can also be retrieved from the "id" attribute in the
              payload body of that response.
            in: path
            type: string
            required: true
        post: 
          #SOL003 location: 5.4.5.3.1
          description: >
            The POST method requests to scale a VNF instance resource
            incrementally.
          parameters:
            - name: ScaleVnfRequest
              description: Parameters for the scale VNF operation.
              in: body
              required: true
              schema:
                $ref: "../../definitions/SOL002SOL003VNFLifecycleManagement_def.yaml#/definitions/ScaleVnfRequest"
          responses:
            202:
              $ref: "responses/VNFLifecycleManagement_resp.yaml#/responses/202-with-Location"
            400:
              $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/400"
            401:
              $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/401"
            403:
              $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/403"
            404:
              $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/404-task-not-suported"
            405:
              $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/404"
            406:
              $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/406"
            409:
              $ref: "responses/VNFLifecycleManagement_resp.yaml#/responses/409-state-conflict-NOT-INSTANTIATED"
            500:
              $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/500"
            503:
              $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/503"
    ###############################################################################
    # Scale VNF to Level task                                                     #
    ###############################################################################
      '/vnf_instances/{vnfInstanceId}/scale_to_level':
        #SOL003 location: 5.4.6.2
        parameters:
          - name: vnfInstanceId
            description: >
              Identifier of the VNF instance to be scaled to a target level. This
              identifier can be retrieved from the resource referenced by the
              "Location" HTTP header in the response to a POST request creating a
              new VNF instance resource. It can also be retrieved from the "id"
              attribute in the payload body of that response.
            in: path
            type: string
            required: true
        post: 
          #SOL003 location: 5.4.6.3.1
          description: >
            The POST method requests to scale a VNF instance resource to a target
            level.
          parameters:
            - name: ScaleVnfToLevelRequest
              description: Parameters for the scale VNF to Level operation.
              in: body
              required: true
              schema:
                $ref: "../../definitions/SOL002SOL003VNFLifecycleManagement_def.yaml#/definitions/ScaleVnfToLevelRequest"
          responses:
            202:
              $ref: "responses/VNFLifecycleManagement_resp.yaml#/responses/202-with-Location"
            400:
              $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/400"
            401:
              $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/401"
            403:
              $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/403"
            404:
              $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/404-task-not-suported"
            405:
              $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/404"
            406:
              $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/406"
            409:
              $ref: "responses/VNFLifecycleManagement_resp.yaml#/responses/409-state-conflict-NOT-INSTANTIATED"
            500:
              $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/500"
            503:
              $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/503"
    ###############################################################################
    # Change VNF Flavour task                                                     #
    ###############################################################################
      '/vnf_instances/{vnfInstanceId}/change_flavour':
        #SOL003 location: 5.4.7.2
        parameters:
          - name: vnfInstanceId
            description: >
              The identifier of the VNF instance of which the deployment flavour
              is requested to be changed. This identifier can be retrieved from
              the resource referenced by the "Location" HTTP header in the
              response to a POST request creating a new VNF instance resource. It
              can also be retrieved from the "id" attribute in the payload body of
              that response.
            in: path
            type: string
            required: true
        post: 
          description: >
            The POST method changes the deployment flavour of a VNF instance.
          parameters:
            - name: ChangeVnfFlavourRequest
              description: Parameters for the Change VNF Flavour operation.
              in: body
              required: true
              schema:
                $ref: "definitions/VNFLifecycleManagement_def.yaml#/definitions/ChangeVnfFlavourRequest"
          responses:
            202:
              $ref: "responses/VNFLifecycleManagement_resp.yaml#/responses/202-with-Location"
            400:
              $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/400"
            401:
              $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/401"
            403:
              $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/403"
            404:
              $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/404-task-not-suported"
            405:
              $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/404"
            406:
              $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/406"
            409:
              $ref: "responses/VNFLifecycleManagement_resp.yaml#/responses/409-state-conflict-NOT-INSTANTIATED"
            500:
              $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/500"
            503:
              $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/503"
    ###############################################################################
    # Terminate VNF task                                                         #
    ###############################################################################
      '/vnf_instances/{vnfInstanceId}/terminate':
        #SOL003 location: 5.4.8.2
        parameters:
          - name: vnfInstanceId
            description: >
              The identifier of the VNF instance to be terminated. This identifier
              can be retrieved from the resource referenced by the "Location" HTTP
              header in the response to a POST request creating a new VNF instance
              resource. It can also be retrieved from the "id" attribute in the
              payload body of that response.
            in: path
            type: string
            required: true
        post: 
          description: >
            The POST method terminates a VNF instance.
          parameters:
            - name: TerminateVnfRequest
              description: Parameters for the VNF termination.
              in: body
              required: true
              schema:
                $ref: "definitions/VNFLifecycleManagement_def.yaml#/definitions/TerminateVnfRequest"
          responses:
            202:
              $ref: "responses/VNFLifecycleManagement_resp.yaml#/responses/202-with-Location"
            400:
              $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/400"
            401:
              $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/401"
            403:
              $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/403"
            404:
              $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/404"
            405:
              $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/404"
            406:
              $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/406"
            409:
              $ref: "responses/VNFLifecycleManagement_resp.yaml#/responses/409-state-conflict-NOT-INSTANTIATED"
            500:
              $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/500"
            503:
              $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/503"
    ###############################################################################
    # Heal VNF task                                                               #
    ###############################################################################
      '/vnf_instances/{vnfInstanceId}/heal':
        #SOL003 location: 5.4.9.2
        parameters:
          - name: vnfInstanceId
            description: >
              Identifier of the VNF instance to be healed. This identifier can be
              retrieved from the resource referenced by the "Location" HTTP
              header in the response to a POST request creating a new VNF instance
              resource. It can also be retrieved from the "id" attribute in the
              payload body of that response.
            in: path
            type: string
            required: true
        post: 
          description: >
            The POST method requests to heal a VNF instance resource.
          parameters:
            - name: HealVnfRequest
              description: Parameters for the Heal VNF operation.
              in: body
              required: true
              schema:
                $ref: "definitions/VNFLifecycleManagement_def.yaml#/definitions/HealVnfRequest"
          responses:
            202:
              $ref: "responses/VNFLifecycleManagement_resp.yaml#/responses/202-with-Location"
            400:
              $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/400"
            401:
              $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/401"
            403:
              $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/403"
            404:
              $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/404-task-not-suported"
            405:
              $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/404"
            406:
              $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/406"
            409:
              $ref: "responses/VNFLifecycleManagement_resp.yaml#/responses/409-state-conflict-NOT-INSTANTIATED"
            500:
              $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/500"
            503:
              $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/503"
    ###############################################################################
    # Operate VNF task                                                            #
    ###############################################################################
      '/vnf_instances/{vnfInstanceId}/operate':
        #SOL003 location: 5.4.9.2
        parameters:
          - name: vnfInstanceId
            description: >
              Identifier of the VNF instance to be operated. This identifier can
              be retrieved from the resource referenced by the "Location" HTTP
              header in the response to a POST request creating a new VNF instance
              resource. It can also be retrieved from the "id" attribute in the
              payload body of that response.
            in: path
            type: string
            required: true
        post: 
          description: >
            The POST method changes the operational state of a VNF instance resource.
          parameters:
            - name: OperateVnfRequest
              description: Parameters for the Operate VNF operation.
              in: body
              required: true
              schema:
                $ref: "definitions/VNFLifecycleManagement_def.yaml#/definitions/OperateVnfRequest"
          responses:
            202:
              $ref: "responses/VNFLifecycleManagement_resp.yaml#/responses/202-with-Location"
            400:
              $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/400"
            401:
              $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/401"
            403:
              $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/403"
            404:
              $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/404-task-not-suported"
            405:
              $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/404"
            406:
              $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/406"
            409:
              $ref: "responses/VNFLifecycleManagement_resp.yaml#/responses/409-state-conflict-NOT-INSTANTIATED"
            500:
              $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/500"
            503:
              $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/503"
    ###############################################################################
    # Change external VNF connectivity task                                       #
    ###############################################################################
      '/vnf_instances/{vnfInstanceId}/change_ext_vls':
        #SOL003 location: 5.4.9.2
        parameters:
          - name: vnfInstanceId
            description: >
              Identifier of the VNF instance of which the external connectivity is
              requested to be changed. This identifier can be retrieved from the
              resource referenced by the "Location" HTTP header in the response to
              a POST request creating a new VNF instance resource. It can also be
              retrieved from the "id" attribute in the payload body of that
              response.
            in: path
            type: string
            required: true
        post: 
          description: >
            The POST method changes the external connectivity of a VNF instance.
          parameters:
            - name: ChangeExtVnfConnectivityRequest
              description: > 
                Parameters for the Change external VNF connectivity operation.
              in: body
              required: true
              schema:
                $ref: "definitions/VNFLifecycleManagement_def.yaml#/definitions/ChangeExtVnfConnectivityRequest"
          responses:
            202:
              $ref: "responses/VNFLifecycleManagement_resp.yaml#/responses/202-with-Location"
            400:
              $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/400"
            401:
              $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/401"
            403:
              $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/403"
            404:
              $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/404"
            405:
              $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/404"
            406:
              $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/406"
            409:
              $ref: "responses/VNFLifecycleManagement_resp.yaml#/responses/409-another-lcm-operation-ongoing"
            500:
              $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/500"
            503:
              $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/503"
    ###############################################################################
    # VNF LCM operation occurrences                                               #
    ###############################################################################
      '/vnf_lcm_op_occs':
        #SOL003 location: 5.4.12
        get: 
          description: >
            The client can use this method to query status information about
            multiple VNF lifecycle management operation occurrences.
    
          parameters:
            - name: filter
              description: >
                Attribute-based filtering expression according to clause 4.3.2.
                The VNFM shall support receiving this parameter as part of the URI query string.
                The EM/VNF may supply this parameter. All attribute names that appear in the VnfLcmOpOcc
                and in data types referenced from it shall be supported by the VNFM in the filter expression.
    
                EXAMPLE
                objects
                obj1: {"id":123, "weight":100, "parts":[{"id":1, "color":"red"}, {"id":2, "color":"green"}]}
                obj2: {"id":456, "weight":500, "parts":[{"id":3, "color":"green"}, {"id":4, "color":"blue"}]}
    
                Request 1:
                GET …/container
    
                Response 1:
                [
                    {"id":123, "weight":100, "parts":[{"id":1, "color":"red"}, {"id":2, "color":"green"}]},
                    {"id":456, "weight":500, "parts":[{"id":3, "color":"green"}, {"id":4, "color":"blue"}]}
                ]
    
                Request 2:
                GET …/container?filter=(eq.weight,100)
    
                Response 2:
                [
                    {"id":123, "weight":100, "parts":[{"id":1, "color":"red"}, {"id":2, "color":"green"}]}
                ]
              #Request 2 in EXAMPLE from clause 4.3.2 probably wrong, since "," should be used after opOne (eq), "." is used
              in: query
              required: false
              type: string
            - name: all_fields
              description: >
                Include all complex attributes in the response.
                See clause 4.3.3 for details. The VNFM shall support this parameter.
              in: query
              required: false
              type: string
            - name: fields
              description: >
                Complex attributes to be included into the response.
                See clause 4.3.3 for details. The VNFM should support this parameter.
              in: query
              required: false
              type: string
            - name: exclude_fields
              description: >
                Complex attributes to be excluded from the response.
                See clause 4.3.3 for details. The VNFM should support this parameter.
              in: query
              required: false
              type: string
            - name: exclude_default
              description: >
                Indicates to exclude the following complex attributes from the response.
                See clause 4.3.3 for details. The VNFM shall support this parameter.
                The following attributes shall be excluded from the VnfLcmOpOcc structure
                in the response body if this parameter is provided, or none of the parameters
                "all_fields", "fields", "exclude_fields", "exclude_default" are provided:
                -	operationParams
                -	error
                -	resourceChanges
                -	changedInfo
                -	changedExtConnectivity
              in: query
              required: false
              type: string
            - name: nextpage_opaque_marker
              description: >
                Marker to obtain the next page of a paged response.
                Shall be supported by the VNFM if the VNFM supports alternative 2
                (paging) according to clause 4.7.2.1 for this resource.
              in: query
              required: false
              type: string
    
                Status information for zero or more VNF lifecycle management operation occurrences was queried successfully.
                The response body shall contain in an array the status information about zero or more VNF lifecycle
                operation occurrences, as defined in clause 5.5.2.13.
                If the VNFM 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 4.7.2.3.
    
              headers:
                #TODO: Add headers defined in 4.3.4.3
                Content-Type:
                  description: The MIME type of the body of the response.
                  type: string
                  maximum: 1
                  minimum: 1
                WWW-Authenticate:
                  description: >
                    Challenge if the corresponding HTTP request has not provided
                    authorization, or error details if the corresponding HTTP
                    request has provided an invalid authorization token.
                  type: string
                  maximum: 1
                  minimum: 0
              schema:
                $ref: "definitions/VNFLifecycleManagement_def.yaml#/definitions/VnfLcmOpOcc"
            400:
              $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/400"
            401:
              $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/401"
            403:
              $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/403"
            404:
              $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/404"
            405:
              $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/404"
            406:
              $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/406"
            409:
              $ref: "responses/VNFLifecycleManagement_resp.yaml#/responses/409-inconsistent-state"
            500:
              $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/500"
            503:
              $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/503"
    ###############################################################################
    # Individual VNF LCM operation occurrence                                     #
    ###############################################################################
      '/vnf_lcm_op_occs/{vnfLcmOpOccId}':
        #SOL003 location: 5.4.13
        parameters:
          - name: vnfLcmOpOccId
            description: >
              Identifier of a VNF lifecycle management operation occurrence.
              This identifier can be retrieved from the resource referenced by the
              "Location" HTTP header in the response to a PATCH or POST request
              triggering a VNF LCM operation. It can also be retrieved from the
              "vnfLcmOpOccId" attribute in the
              VnfLcmOperationOccurrenceNotification.
            in: path
            required: true
            type: string
        get: 
          description: >
            The client can use this method to retrieve status information about a
            VNF lifecycle management operation occurrence by reading an individual
            "VNF LCM operation occurrence" resource.
          responses:
            200:
              description: >
    
                Information about an individual VNF instance was queried
                successfully. The response body shall contain status
                information about a VNF lifecycle management operation
                occurrence.
              headers:
                #TODO: Add headers defined in 4.3.4.3
                Content-Type:
                  description: The MIME type of the body of the response.
                  type: string
                  maximum: 1
                  minimum: 1
                WWW-Authenticate:
                  description: >
                    Challenge if the corresponding HTTP request has not provided
                    authorization, or error details if the corresponding HTTP
                    request has provided an invalid authorization token.
                  type: string
                  maximum: 1
                  minimum: 0
              schema:
                $ref: "definitions/VNFLifecycleManagement_def.yaml#/definitions/VnfLcmOpOcc"
            400:
              $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/400"
            401:
              $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/401"
            403:
              $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/403"
            404:
              $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/404"
            405:
              $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/404"
            406:
              $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/406"
            409:
              $ref: "responses/VNFLifecycleManagement_resp.yaml#/responses/409-inconsistent-state"
            500:
              $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/500"
            503:
              $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/503"
    ###############################################################################
    # Retry operation task                                                        #