NSLifecycleManagement.yaml 65.1 KB
Newer Older
  title: SOL005 - NS Lifecycle Management Interface
  description: |
    SOL005 - NS Lifecycle Management Interface 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
  contact:
    name: NFV-SOL WG
    url: https://forge.etsi.org/etsi-forge-copyright-notice.txt
  version: 1.3.0-impl:etsi.org:ETSI_NFV_OpenAPI:1

  description: ETSI GS NFV-SOL 005 V3.3.1
  url: https://www.etsi.org/deliver/etsi_gs/NFV-SOL/001_099/005/02.07.01_60/gs_NFV-SOL005v020701p.pdf

servers:
  - url: http://127.0.0.1/nslcm/v1
  - url: https://127.0.0.1/nslcm/v1

  '/api_versions':
    $ref: ../endpoints/SOL005_endpoints.yaml#/endpoints/api-versions
      - $ref: ../components/SOL005_params.yaml#/components/parameters/Version
      - $ref: ../components/SOL005_params.yaml#/components/parameters/Authorization
      summary: Query multiple NS instances.
        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.
        - $ref: ../components/SOL005_params.yaml#/components/parameters/filter
        - $ref: ../components/SOL005_params.yaml#/components/parameters/all_fields
        - $ref: ../components/SOL005_params.yaml#/components/parameters/fields
        - $ref: ../components/SOL005_params.yaml#/components/parameters/exclude_fields
        - $ref: ../components/SOL005_params.yaml#/components/parameters/exclude_default
        - $ref: ../components/SOL005_params.yaml#/components/parameters/nextpage_opaque_marker
        - $ref: ../components/SOL005_params.yaml#/components/parameters/Accept
        "200":
          $ref: '#/components/responses/NsInstances.Get'
        "400":
          $ref: ../responses/SOL005_resp.yaml#/responses/400
        "401":
          $ref: ../responses/SOL005_resp.yaml#/responses/401
        "403":
          $ref: ../responses/SOL005_resp.yaml#/responses/403
        "404":
          $ref: ../responses/SOL005_resp.yaml#/responses/404
        "405":
          $ref: ../responses/SOL005_resp.yaml#/responses/405
        "406":
          $ref: ../responses/SOL005_resp.yaml#/responses/406
        "409":
          $ref: ../responses/SOL005_resp.yaml#/responses/409
        "416":
          $ref: ../responses/SOL005_resp.yaml#/responses/416
        "500":
          $ref: ../responses/SOL005_resp.yaml#/responses/500
        "503":
          $ref: ../responses/SOL005_resp.yaml#/responses/503
        "504":
          $ref: ../responses/SOL005_resp.yaml#/responses/504
    post:
      summary: Create a NS instance resource.
      description: |
        The POST method creates a new NS instance resource. As the result of successfully executing this method, a new
        "Individual NS instance" resource as defined in clause 6.4.3 shall have been created, and the value of the
        "instantiationState" attribute in the representation of that resource shall be "NOT_INSTANTIATED". A notification
        of type NsIdentifierCreationNotification shall be triggered as part of successfully executing this method as defined
        in clause 6.5.2.6.
      parameters:
        - $ref: ../components/SOL005_params.yaml#/components/parameters/Accept
        - $ref: ../components/SOL005_params.yaml#/components/parameters/ContentType
      requestBody:
        $ref: '#/components/requestBodies/NsInstanceCreateRequest'
      responses:
        "201":
          $ref: '#/components/responses/NsInstances.Post'
        "400":
          $ref: ../responses/SOL005_resp.yaml#/responses/400
        "401":
          $ref: ../responses/SOL005_resp.yaml#/responses/401
        "403":
          $ref: ../responses/SOL005_resp.yaml#/responses/403
        "404":
          $ref: ../responses/SOL005_resp.yaml#/responses/404
        "405":
          $ref: ../responses/SOL005_resp.yaml#/responses/405
        "406":
          $ref: ../responses/SOL005_resp.yaml#/responses/406
        "409":
          $ref: ../responses/SOL005_resp.yaml#/responses/409
        "416":
          $ref: ../responses/SOL005_resp.yaml#/responses/416
        "500":
          $ref: ../responses/SOL005_resp.yaml#/responses/500
        "503":
          $ref: ../responses/SOL005_resp.yaml#/responses/503
        "504":
          $ref: ../responses/SOL005_resp.yaml#/responses/504
      - $ref: '#/components/parameters/NsInstanceId'
      - $ref: ../components/SOL005_params.yaml#/components/parameters/Version
      - $ref: ../components/SOL005_params.yaml#/components/parameters/Authorization
rameshnaraya's avatar
rameshnaraya committed
      summary: Read an individual NS instance resource.
      description: |
        The GET method retrieves information about a NS instance by  reading an individual NS instance resource.
        - $ref: ../components/SOL005_params.yaml#/components/parameters/Accept
        - $ref: ../components/SOL005_params.yaml#/components/parameters/ContentType
        "200":
          $ref: '#/components/responses/IndividualNsInstance.Get'
        "400":
          $ref: ../responses/SOL005_resp.yaml#/responses/400
        "401":
          $ref: ../responses/SOL005_resp.yaml#/responses/401
        "403":
          $ref: ../responses/SOL005_resp.yaml#/responses/403
        "404":
          $ref: ../responses/SOL005_resp.yaml#/responses/404
        "405":
          $ref: ../responses/SOL005_resp.yaml#/responses/405
        "406":
          $ref: ../responses/SOL005_resp.yaml#/responses/406
        "416":
          $ref: ../responses/SOL005_resp.yaml#/responses/416
        "500":
          $ref: ../responses/SOL005_resp.yaml#/responses/500
        "503":
          $ref: ../responses/SOL005_resp.yaml#/responses/503
        "504":
          $ref: ../responses/SOL005_resp.yaml#/responses/504
rameshnaraya's avatar
rameshnaraya committed
      summary: Delete NS instance resource.
        Delete NS Identifier
        This method deletes an individual NS instance resource. As the result of successfully executing this method, the
        "Individual NS instance" resource shall not exist any longer. A notification of type "NsIdentifierDeletionNotification"
        shall be triggered as part of successfully executing this method as defined in clause 6.5.2.7.
        "204":
          $ref: '#/components/responses/IndividualNsInstance.Delete'
        "400":
          $ref: ../responses/SOL005_resp.yaml#/responses/400
        "401":
          $ref: ../responses/SOL005_resp.yaml#/responses/401
        "403":
          $ref: ../responses/SOL005_resp.yaml#/responses/403
        "404":
          $ref: ../responses/SOL005_resp.yaml#/responses/404
        "405":
          $ref: ../responses/SOL005_resp.yaml#/responses/405
        "406":
          $ref: ../responses/SOL005_resp.yaml#/responses/406
        "409":
          $ref: ../responses/SOL005_resp.yaml#/responses/409
        "412":
          $ref: ../responses/SOL005_resp.yaml#/responses/412
        "500":
          $ref: ../responses/SOL005_resp.yaml#/responses/500
        "503":
          $ref: ../responses/SOL005_resp.yaml#/responses/503
        "504":
          $ref: ../responses/SOL005_resp.yaml#/responses/504
  /ns_instances/{nsInstanceId}/instantiate:
      - $ref: '#/components/parameters/NsInstanceId'
      - $ref: ../components/SOL005_params.yaml#/components/parameters/Version
      - $ref: ../components/SOL005_params.yaml#/components/parameters/Authorization
rameshnaraya's avatar
rameshnaraya committed
      summary: Instantiate a NS.
      description: |
        The POST method requests to instantiate a NS instance resource. The steps and conditions that apply as the result
        of successfully executing this method are specified in clause 6.4.1.2. In addition, once the NFVO has successfully
        completed the underlying NS LCM operation occurrence, it shall set the "nsState" attribute to the value "INSTANTIATED"
        in the representation of the "Individual NS instance" resource.
        - $ref: ../components/SOL005_params.yaml#/components/parameters/Accept
        - $ref: ../components/SOL005_params.yaml#/components/parameters/ContentType
      requestBody:
        $ref: '#/components/requestBodies/NsInstanceInstantiateRequest'
        "202":
          $ref: '#/components/responses/InstantiateNsInstance.Post'
        "400":
          $ref: ../responses/SOL005_resp.yaml#/responses/400
        "401":
          $ref: ../responses/SOL005_resp.yaml#/responses/401
        "403":
          $ref: ../responses/SOL005_resp.yaml#/responses/403
        "404":
          $ref: ../responses/SOL005_resp.yaml#/responses/404
        "405":
          $ref: ../responses/SOL005_resp.yaml#/responses/405
        "406":
          $ref: ../responses/SOL005_resp.yaml#/responses/406
        "409":
          $ref: ../responses/SOL005_resp.yaml#/responses/409
        "416":
          $ref: ../responses/SOL005_resp.yaml#/responses/416
        "500":
          $ref: ../responses/SOL005_resp.yaml#/responses/500
        "503":
          $ref: ../responses/SOL005_resp.yaml#/responses/503
        "504":
          $ref: ../responses/SOL005_resp.yaml#/responses/504
  /ns_instances/{nsInstanceId}/scale:
      - $ref: '#/components/parameters/NsInstanceId'
      - $ref: ../components/SOL005_params.yaml#/components/parameters/Version
      - $ref: ../components/SOL005_params.yaml#/components/parameters/Authorization
rameshnaraya's avatar
rameshnaraya committed
      summary: Scale a NS instance.
      description: |
        The POST method requests to scale a NS instance resource. The steps and conditions that apply as the result of
        successfully executing this method are specified in clause 6.4.1.2. In addition, once the NFVO has successfully
        completed the underlying NS LCM operation occurrence, it shall reflect the result of scaling the NS instance by
        updating the "nsScaleStatus" attribute in the representation of the "Individual NS instance" resource.
        - $ref: ../components/SOL005_params.yaml#/components/parameters/Accept
        - $ref: ../components/SOL005_params.yaml#/components/parameters/ContentType
      requestBody:
        $ref: '#/components/requestBodies/NsInstanceScaleRequest'
        "202":
          $ref: '#/components/responses/ScaleNsInstance.Post'
        "400":
          $ref: ../responses/SOL005_resp.yaml#/responses/400
        "401":
          $ref: ../responses/SOL005_resp.yaml#/responses/401
        "403":
          $ref: ../responses/SOL005_resp.yaml#/responses/403
        "404":
          $ref: ../responses/SOL005_resp.yaml#/responses/404
        "405":
          $ref: ../responses/SOL005_resp.yaml#/responses/405
        "406":
          $ref: ../responses/SOL005_resp.yaml#/responses/406
        "409":
          $ref: ../responses/SOL005_resp.yaml#/responses/409
        "416":
          $ref: ../responses/SOL005_resp.yaml#/responses/416
        "500":
          $ref: ../responses/SOL005_resp.yaml#/responses/500
        "503":
          $ref: ../responses/SOL005_resp.yaml#/responses/503
        "504":
          $ref: ../responses/SOL005_resp.yaml#/responses/504
  /ns_instances/{nsInstanceId}/update:
      - $ref: '#/components/parameters/NsInstanceId'
      - $ref: ../components/SOL005_params.yaml#/components/parameters/Version
      - $ref: ../components/SOL005_params.yaml#/components/parameters/Authorization
rameshnaraya's avatar
rameshnaraya committed
      summary: Updates a NS instance.
        The POST method updates an NS instance.
        - $ref: ../components/SOL005_params.yaml#/components/parameters/Accept
        - $ref: ../components/SOL005_params.yaml#/components/parameters/ContentType
      requestBody:
        $ref: '#/components/requestBodies/NsInstanceUpdateRequest'
        "202":
          $ref: '#/components/responses/UpdateNsInstance.Post'
        "400":
          $ref: ../responses/SOL005_resp.yaml#/responses/400
        "401":
          $ref: ../responses/SOL005_resp.yaml#/responses/401
        "403":
          $ref: ../responses/SOL005_resp.yaml#/responses/403
        "404":
          $ref: ../responses/SOL005_resp.yaml#/responses/404
        "405":
          $ref: ../responses/SOL005_resp.yaml#/responses/405
        "406":
          $ref: ../responses/SOL005_resp.yaml#/responses/406
        "409":
          $ref: ../responses/SOL005_resp.yaml#/responses/409
        "416":
          $ref: ../responses/SOL005_resp.yaml#/responses/416
        "500":
          $ref: ../responses/SOL005_resp.yaml#/responses/500
        "503":
          $ref: ../responses/SOL005_resp.yaml#/responses/503
        "504":
          $ref: ../responses/SOL005_resp.yaml#/responses/504
      - $ref: '#/components/parameters/NsInstanceId'
      - $ref: ../components/SOL005_params.yaml#/components/parameters/Version
      - $ref: ../components/SOL005_params.yaml#/components/parameters/Authorization
      description: |
        The POST method requests to heal an NS instance. 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.
        The steps and conditions that apply as the result of successfully executing this method are specified in clause
        6.4.1.2.
        - $ref: ../components/SOL005_params.yaml#/components/parameters/Accept
        - $ref: ../components/SOL005_params.yaml#/components/parameters/ContentType
      requestBody:
        $ref: '#/components/requestBodies/NsInstanceHealRequest'
        "202":
          $ref: '#/components/responses/HealNsInstance.Post'
        "400":
          $ref: ../responses/SOL005_resp.yaml#/responses/400
        "401":
          $ref: ../responses/SOL005_resp.yaml#/responses/401
        "403":
          $ref: ../responses/SOL005_resp.yaml#/responses/403
        "404":
          $ref: ../responses/SOL005_resp.yaml#/responses/404
        "405":
          $ref: ../responses/SOL005_resp.yaml#/responses/405
        "406":
          $ref: ../responses/SOL005_resp.yaml#/responses/406
        "409":
          $ref: ../responses/SOL005_resp.yaml#/responses/409
        "416":
          $ref: ../responses/SOL005_resp.yaml#/responses/416
        "500":
          $ref: ../responses/SOL005_resp.yaml#/responses/500
        "503":
          $ref: ../responses/SOL005_resp.yaml#/responses/503
        "504":
          $ref: ../responses/SOL005_resp.yaml#/responses/504
  /ns_instances/{nsInstanceId}/terminate:
      - $ref: '#/components/parameters/NsInstanceId'
      - $ref: ../components/SOL005_params.yaml#/components/parameters/Version
      - $ref: ../components/SOL005_params.yaml#/components/parameters/Authorization
      summary: Terminate a NS instance.
      description: |
        Terminate NS task.   The POST method terminates an NS instance. This method shall follow the provisions specified
        in the Tables 6.4.8.3.1-1 and 6.4.8.3.1-2 for URI query parameters, request and response data structures, and
        response codes. The steps and conditions that apply as the result of successfully executing this method are
        specified in clause 6.4.1.2. In addition, once the NFVO has successfully completed the underlying NS LCM operation
        occurrence, it shall set the "nsState" attribute in the representation of the "Individual NS instance" resource
        to the value "NOT_INSTANTIATED". This method can only be used with an NS instance in the INSTANTIATED state.
        Terminating an NS instance does not delete the NS instance identifier, but rather transitions the NS into the
        NOT_INSTANTIATED state.
        - $ref: ../components/SOL005_params.yaml#/components/parameters/Accept
        - $ref: ../components/SOL005_params.yaml#/components/parameters/ContentType
      requestBody:
        $ref: '#/components/requestBodies/NsInstanceTerminateRequest'
        "202":
          $ref: '#/components/responses/TerminateNsInstance.Post'
        "400":
          $ref: ../responses/SOL005_resp.yaml#/responses/400
        "401":
          $ref: ../responses/SOL005_resp.yaml#/responses/401
        "403":
          $ref: ../responses/SOL005_resp.yaml#/responses/403
        "404":
          $ref: ../responses/SOL005_resp.yaml#/responses/404
        "405":
          $ref: ../responses/SOL005_resp.yaml#/responses/405
        "406":
          $ref: ../responses/SOL005_resp.yaml#/responses/406
        "409":
          $ref: ../responses/SOL005_resp.yaml#/responses/409
        "416":
          $ref: ../responses/SOL005_resp.yaml#/responses/416
        "500":
          $ref: ../responses/SOL005_resp.yaml#/responses/500
        "503":
          $ref: ../responses/SOL005_resp.yaml#/responses/503
        "504":
          $ref: ../responses/SOL005_resp.yaml#/responses/504
  /ns_lcm_op_occs:
    parameters:
      - $ref: ../components/SOL005_params.yaml#/components/parameters/Version
      - $ref: ../components/SOL005_params.yaml#/components/parameters/Authorization
rameshnaraya's avatar
rameshnaraya committed
      summary: Query multiple NS LCM operation occurrences.
      description: |
        Get Operation Status. Shall be returned upon the following error: The operation cannot be executed currently,
        due to a conflict with the state of the resource. Typically, this is due to the fact that the 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.
        - $ref: ../components/SOL005_params.yaml#/components/parameters/filter
        - $ref: ../components/SOL005_params.yaml#/components/parameters/fields
        - $ref: ../components/SOL005_params.yaml#/components/parameters/exclude_fields
        - $ref: ../components/SOL005_params.yaml#/components/parameters/exclude_default
        - $ref: ../components/SOL005_params.yaml#/components/parameters/nextpage_opaque_marker
        - $ref: ../components/SOL005_params.yaml#/components/parameters/Accept
        "200":
          $ref: '#/components/responses/NsLcmOpOccs.Get'
        "400":
          $ref: ../responses/SOL005_resp.yaml#/responses/400
        "401":
          $ref: ../responses/SOL005_resp.yaml#/responses/401
        "403":
          $ref: ../responses/SOL005_resp.yaml#/responses/403
        "404":
          $ref: ../responses/SOL005_resp.yaml#/responses/404
        "405":
          $ref: ../responses/SOL005_resp.yaml#/responses/405
        "406":
          $ref: ../responses/SOL005_resp.yaml#/responses/406
        "500":
          $ref: ../responses/SOL005_resp.yaml#/responses/500
        "503":
          $ref: ../responses/SOL005_resp.yaml#/responses/503
        "504":
          $ref: ../responses/SOL005_resp.yaml#/responses/504
      - $ref: '#/components/parameters/NsLcmOpOccId'
      - $ref: ../components/SOL005_params.yaml#/components/parameters/Version
      - $ref: ../components/SOL005_params.yaml#/components/parameters/Authorization
rameshnaraya's avatar
rameshnaraya committed
      summary: Read an individual NS LCM operation occurrence resource.
      description: |
        The API consumer can use this method to read 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.
        - $ref: ../components/SOL005_params.yaml#/components/parameters/Accept
        - $ref: ../components/SOL005_params.yaml#/components/parameters/ContentType
        "200":
          $ref: '#/components/responses/IndividualNsLcmOpOcc.Get'
        "400":
          $ref: ../responses/SOL005_resp.yaml#/responses/400
        "401":
          $ref: ../responses/SOL005_resp.yaml#/responses/401
        "403":
          $ref: ../responses/SOL005_resp.yaml#/responses/403
        "404":
          $ref: ../responses/SOL005_resp.yaml#/responses/404
        "405":
          $ref: ../responses/SOL005_resp.yaml#/responses/405
        "406":
          $ref: ../responses/SOL005_resp.yaml#/responses/406
        "416":
          $ref: ../responses/SOL005_resp.yaml#/responses/416
        "500":
          $ref: ../responses/SOL005_resp.yaml#/responses/500
        "503":
          $ref: ../responses/SOL005_resp.yaml#/responses/503
        "504":
          $ref: ../responses/SOL005_resp.yaml#/responses/504
  /ns_lcm_op_occs/{nsLcmOpOccId}/retry:
      - $ref: '#/components/parameters/NsLcmOpOccId'
      - $ref: ../components/SOL005_params.yaml#/components/parameters/Version
      - $ref: ../components/SOL005_params.yaml#/components/parameters/Authorization
rameshnaraya's avatar
rameshnaraya committed
      summary: Retry a NS lifecycle management operation occurrence.
      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.
        "202":
          $ref: '#/components/responses/NsLcmOpOccRetry.Post'
        "400":
          $ref: ../responses/SOL005_resp.yaml#/responses/400
        "401":
          $ref: ../responses/SOL005_resp.yaml#/responses/401
        "403":
          $ref: ../responses/SOL005_resp.yaml#/responses/403
        "404":
          $ref: ../responses/SOL005_resp.yaml#/responses/404
        "405":
          $ref: ../responses/SOL005_resp.yaml#/responses/405
        "406":
          $ref: ../responses/SOL005_resp.yaml#/responses/406
        "409":
          $ref: ../responses/SOL005_resp.yaml#/responses/409
        "416":
          $ref: ../responses/SOL005_resp.yaml#/responses/416
        "500":
          $ref: ../responses/SOL005_resp.yaml#/responses/500
        "503":
          $ref: ../responses/SOL005_resp.yaml#/responses/503
        "504":
          $ref: ../responses/SOL005_resp.yaml#/responses/504
  /ns_lcm_op_occs/{nsLcmOpOccId}/rollback:
      - $ref: '#/components/parameters/NsLcmOpOccId'
      - $ref: ../components/SOL005_params.yaml#/components/parameters/Version
      - $ref: ../components/SOL005_params.yaml#/components/parameters/Authorization
rameshnaraya's avatar
rameshnaraya committed
      summary: Rollback a NS lifecycle management operation occurrence.
      description: |
        The POST method initiates rolling back a NS lifecycle 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.12.3.1-1 and 6.4.12.3.1-2 for URI query parameters, request and response
        data structures, and response codes.
        "202":
          $ref: '#/components/responses/NsLcmOpOccRollback.Post'
        "400":
          $ref: ../responses/SOL005_resp.yaml#/responses/400
        "401":
          $ref: ../responses/SOL005_resp.yaml#/responses/401
        "403":
          $ref: ../responses/SOL005_resp.yaml#/responses/403
        "404":
          $ref: ../responses/SOL005_resp.yaml#/responses/404
        "405":
          $ref: ../responses/SOL005_resp.yaml#/responses/405
        "406":
          $ref: ../responses/SOL005_resp.yaml#/responses/406
        "409":
          $ref: ../responses/SOL005_resp.yaml#/responses/409
        "416":
          $ref: ../responses/SOL005_resp.yaml#/responses/416
        "500":
          $ref: ../responses/SOL005_resp.yaml#/responses/500
        "503":
          $ref: ../responses/SOL005_resp.yaml#/responses/503
        "504":
          $ref: ../responses/SOL005_resp.yaml#/responses/504
  /ns_lcm_op_occs/{nsLcmOpOccId}/continue:
      - $ref: '#/components/parameters/NsLcmOpOccId'
      - $ref: ../components/SOL005_params.yaml#/components/parameters/Version
      - $ref: ../components/SOL005_params.yaml#/components/parameters/Authorization
rameshnaraya's avatar
rameshnaraya committed
      summary: Continue a NS lifecycle management operation occurrence.
      description: |
        The POST method initiates continuing an NS lifecycle 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.13.3.1-1 and 6.4.13.3.1-2 for URI query parameters, request and response
        data structures, and response codes.
        "202":
          $ref: '#/components/responses/NsLcmOpOccContinue.Post'
        "400":
          $ref: ../responses/SOL005_resp.yaml#/responses/400
        "401":
          $ref: ../responses/SOL005_resp.yaml#/responses/401
        "403":
          $ref: ../responses/SOL005_resp.yaml#/responses/403
        "404":
          $ref: ../responses/SOL005_resp.yaml#/responses/404
        "405":
          $ref: ../responses/SOL005_resp.yaml#/responses/405
        "406":
          $ref: ../responses/SOL005_resp.yaml#/responses/406
        "409":
          $ref: ../responses/SOL005_resp.yaml#/responses/409
        "416":
          $ref: ../responses/SOL005_resp.yaml#/responses/416
        "500":
          $ref: ../responses/SOL005_resp.yaml#/responses/500
        "503":
          $ref: ../responses/SOL005_resp.yaml#/responses/503
        "504":
          $ref: ../responses/SOL005_resp.yaml#/responses/504
  /nslcm/v1/ns_lcm_op_occs/{nsLcmOpOccId}/fail:
      - $ref: '#/components/parameters/NsLcmOpOccId'
      - $ref: ../components/SOL005_params.yaml#/components/parameters/Version
      - $ref: ../components/SOL005_params.yaml#/components/parameters/Authorization
rameshnaraya's avatar
rameshnaraya committed
      summary: Mark a NS lifecycle management operation occurrence as failed.
      description: |
        The POST method marks a NS lifecycle management operation  occurrence as "finally failed" if that operation
        occurrence is in "FAILED_TEMP" state.
      parameters:
        - $ref: ../components/SOL005_params.yaml#/components/parameters/Accept
        "200":
          $ref: '#/components/responses/NsLcmOpOccFail.Post'
        "400":
          $ref: ../responses/SOL005_resp.yaml#/responses/400
        "401":
          $ref: ../responses/SOL005_resp.yaml#/responses/401
        "403":
          $ref: ../responses/SOL005_resp.yaml#/responses/403
        "404":
          $ref: ../responses/SOL005_resp.yaml#/responses/404
        "405":
          $ref: ../responses/SOL005_resp.yaml#/responses/405
        "406":
          $ref: ../responses/SOL005_resp.yaml#/responses/406
        "409":
          $ref: ../responses/SOL005_resp.yaml#/responses/409
        "416":
          $ref: ../responses/SOL005_resp.yaml#/responses/416
        "500":
          $ref: ../responses/SOL005_resp.yaml#/responses/500
        "503":
          $ref: ../responses/SOL005_resp.yaml#/responses/503
        "504":
          $ref: ../responses/SOL005_resp.yaml#/responses/504
  /nslcm/v1/ns_lcm_op_occs/{nsLcmOpOccId}/cancel:
      - $ref: '#/components/parameters/NsLcmOpOccId'
      - $ref: ../components/SOL005_params.yaml#/components/parameters/Version
      - $ref: ../components/SOL005_params.yaml#/components/parameters/Authorization
rameshnaraya's avatar
rameshnaraya committed
      summary: Cancel a NS lifecycle management operation occurrence.
        The POST method initiates cancelling an ongoing NS lifecycle management operation while it is being executed or
        rolled back, i.e. the related NS LCM operation occurrence\" is either in "PROCESSING" or "ROLLING_BACK" state.
        This method shall follow the provisions specified in the Tables 6.4.15.3.1-1 and 6.4.15.3.1-2 for URI query
        parameters, request and response data structures, and response codes. Before returning the "202 Accepted" response,
        the NFVO shall update the "isCancelPending" and "cancelMode" attributes in the representation of the parent resource
        according to the provisions in clause 6.5.2.3. In case of success of processing the asynchronous request:
        1) If the request has been processed in "PROCESSING" or "ROLLING_BACK" state, the "operationState" attribute in
           the representation of the parent resource shall be changed to "FAILED_TEMP". In both cases, the NFVO shall update
           the "isCancelPending" and "cancelMode" attributes in the representation of the parent resource according to the
           provisions in clause 6.5.2.3 to reflect the new status, and the applicable "result" notification according to
           clause 6.6.2.2 shall be emitted to indicate that the execution of the underlying NS LCM operation occurrence
           has temporarily failed. Due to race conditions, the processing of the actual operation that is to be cancelled
           may eventually still succeed, in which case the "operationState" attribute in the representation of the parent
           resource shall represent the result of that operation, rather than the result of the cancellation.
        - $ref: ../components/SOL005_params.yaml#/components/parameters/Accept
        - $ref: ../components/SOL005_params.yaml#/components/parameters/ContentType
      requestBody:
        $ref: '#/components/requestBodies/NsLcmOpOccCancelRequest'
        "202":
          $ref: '#/components/responses/NsLcmOpOccCancel.Post'
        "400":
          $ref: ../responses/SOL005_resp.yaml#/responses/400
        "401":
          $ref: ../responses/SOL005_resp.yaml#/responses/401
        "403":
          $ref: ../responses/SOL005_resp.yaml#/responses/403
        "404":
          $ref: ../responses/SOL005_resp.yaml#/responses/404
        "405":
          $ref: ../responses/SOL005_resp.yaml#/responses/405
        "406":
          $ref: ../responses/SOL005_resp.yaml#/responses/406
        "409":
          $ref: ../responses/SOL005_resp.yaml#/responses/409
        "416":
          $ref: ../responses/SOL005_resp.yaml#/responses/416
        "500":
          $ref: ../responses/SOL005_resp.yaml#/responses/500
        "503":
          $ref: ../responses/SOL005_resp.yaml#/responses/503
        "504":
          $ref: ../responses/SOL005_resp.yaml#/responses/504
      - $ref: ../components/SOL005_params.yaml#/components/parameters/Version
      - $ref: ../components/SOL005_params.yaml#/components/parameters/Authorization
rameshnaraya's avatar
rameshnaraya committed
      summary: Query multiple subscriptions.
        The GET method queries the list of active subscriptions of the functional block that invokes the method. It can
        be used e.g. for resynchronization after error situations.
        - $ref: ../components/SOL005_params.yaml#/components/parameters/filter
        - $ref: ../components/SOL005_params.yaml#/components/parameters/nextpage_opaque_marker
        - $ref: ../components/SOL005_params.yaml#/components/parameters/Accept
        "200":
          $ref: '#/components/responses/NsLcmSubscriptions.Get'
        "400":
          $ref: ../responses/SOL005_resp.yaml#/responses/400
        "401":
          $ref: ../responses/SOL005_resp.yaml#/responses/401
        "403":
          $ref: ../responses/SOL005_resp.yaml#/responses/403
        "404":
          $ref: ../responses/SOL005_resp.yaml#/responses/404
        "405":
          $ref: ../responses/SOL005_resp.yaml#/responses/405
        "406":
          $ref: ../responses/SOL005_resp.yaml#/responses/406
        "500":
          $ref: ../responses/SOL005_resp.yaml#/responses/500
        "503":
          $ref: ../responses/SOL005_resp.yaml#/responses/503
        "504":
          $ref: ../responses/SOL005_resp.yaml#/responses/504
    post:
      summary: Subscribe to NS lifecycle change notifications.
      description: |
        The POST method creates a new subscription. This method shall support the URI query parameters, request and
        response data structures, and response codes, as specified in the Tables 6.4.16.3.1-1 and 6.4.16.3.1-2. Creation
        of two subscription resources with the same callbackURI and the same filter can result in performance degradation
        and will provide duplicates of notifications to the OSS, and might make sense only in very rare use cases.
        Consequently, the NFVO may either allow creating a subscription resource if another subscription resource with
        the same filter and callbackUri already exists (in which case it shall return the "201 Created" response code),
        or may decide to not create a duplicate subscription resource (in which case it shall return a "303 See Other"
        response code referencing the existing subscription resource with the same filter and callbackUri).
      parameters:
        - $ref: ../components/SOL005_params.yaml#/components/parameters/Accept
        - $ref: ../components/SOL005_params.yaml#/components/parameters/ContentType
      requestBody:
        $ref: '#/components/requestBodies/NsLcmSubscriptionRequest'
      responses:
        "201":
          $ref: '#/components/responses/NsLcmSubscriptions.Post'
        "303":
          $ref: ../responses/SOL005_resp.yaml#/responses/303
        "400":
          $ref: ../responses/SOL005_resp.yaml#/responses/400
        "401":
          $ref: ../responses/SOL005_resp.yaml#/responses/401
        "403":
          $ref: ../responses/SOL005_resp.yaml#/responses/403
        "404":
          $ref: ../responses/SOL005_resp.yaml#/responses/404
        "405":
          $ref: ../responses/SOL005_resp.yaml#/responses/405
        "406":
          $ref: ../responses/SOL005_resp.yaml#/responses/406
        "422":
          $ref: ../responses/SOL005_resp.yaml#/responses/422
        "500":
          $ref: ../responses/SOL005_resp.yaml#/responses/500
        "503":
          $ref: ../responses/SOL005_resp.yaml#/responses/503
        "504":
          $ref: ../responses/SOL005_resp.yaml#/responses/504
      - $ref: '#/components/parameters/SubscriptionId'
      - $ref: ../components/SOL005_params.yaml#/components/parameters/Version
      - $ref: ../components/SOL005_params.yaml#/components/parameters/Authorization
rameshnaraya's avatar
rameshnaraya committed
      summary: Read an individual subscription resource.
      description: |
        The GET method retrieves information about a subscription by reading an individual subscription resource. This
        method shall support the URI query parameters, request and response data structures, and response codes, as
        specified in the Tables 6.4.17.3.2-1 and 6.4.17.3.2-2
      parameters:
        - $ref: ../components/SOL005_params.yaml#/components/parameters/Accept
        "200":
          $ref: '#/components/responses/IndividualNsLcmSubscription.Get'
        "400":
          $ref: ../responses/SOL005_resp.yaml#/responses/400
        "401":
          $ref: ../responses/SOL005_resp.yaml#/responses/401
        "403":
          $ref: ../responses/SOL005_resp.yaml#/responses/403
        "404":
          $ref: ../responses/SOL005_resp.yaml#/responses/404
        "405":
          $ref: ../responses/SOL005_resp.yaml#/responses/405
        "406":
          $ref: ../responses/SOL005_resp.yaml#/responses/406
        "500":
          $ref: ../responses/SOL005_resp.yaml#/responses/500
        "503":
          $ref: ../responses/SOL005_resp.yaml#/responses/503
        "504":
          $ref: ../responses/SOL005_resp.yaml#/responses/504
rameshnaraya's avatar
rameshnaraya committed
      summary: Terminate a subscription.
      description: |
        The DELETE method terminates an individual subscription. This method shall support the URI query parameters,
        request and response data structures, and response codes, as specified in the Tables 6.4.17.3.5-1 and 6.4.17.3.5-2.
        As the result of successfully executing this method, the "Individual subscription" resource shall not exist any
        longer. This means that no notifications for that subscription shall be sent to the formerly-subscribed API consumer.
        NOTE: Due to race conditions, some notifications might still be received by the formerly-subscribed API consumer for
        a certain time period after the deletion.
        "204":
          $ref: '#/components/responses/IndividualNsLcmSubscription.Delete'
        "400":
          $ref: ../responses/SOL005_resp.yaml#/responses/400
        "401":
          $ref: ../responses/SOL005_resp.yaml#/responses/401
        "403":
          $ref: ../responses/SOL005_resp.yaml#/responses/403
        "404":
          $ref: ../responses/SOL005_resp.yaml#/responses/404
        "405":
          $ref: ../responses/SOL005_resp.yaml#/responses/405
        "406":
          $ref: ../responses/SOL005_resp.yaml#/responses/406
        "500":
          $ref: ../responses/SOL005_resp.yaml#/responses/500
        "503":
          $ref: ../responses/SOL005_resp.yaml#/responses/503
        "504":
          $ref: ../responses/SOL005_resp.yaml#/responses/504

components:
  parameters:
    NsInstanceId:
      name: nsInstanceId
      in: path
      description: |
        Identifier of the NS instance.
      required: true
      style: simple
      explode: false
      schema:
        type: string

    NsLcmOpOccId:
      name: nsLcmOpOccId
      in: path
      description: |
        Identifier of a NS lifecycle management operation occurrence.
      required: true
      style: simple
      explode: false
      schema:
        type: string

    SubscriptionId:
      name: subscriptionId
      in: path
      description: |
        Identifier of this subscription.
      required: true
      style: simple
      explode: false
      schema:
        type: string

  requestBodies:
    NsInstanceCreateRequest:
      description: |
        The NS creation parameters, as defined in clause 6.5.2.7.
      content:
        application/json:
          schema:
            $ref: ./definitions/SOL005NSLifecycleManagement_def.yaml#/definitions/CreateNsRequest
      required: true
    NsInstanceInstantiateRequest:
      description: |
        Parameters for the instantiate NS operation, as defined in clause 6.5.2.11.
      content:
        application/json:
          schema:
            $ref: ./definitions/SOL005NSLifecycleManagement_def.yaml#/definitions/InstantiateNsRequest
      required: true

    NsInstanceScaleRequest:
      description: |
        Parameters for the scale NS operation, as defined in clause 6.5.2.14.
      content:
        application/json:
          schema:
            $ref: ./definitions/SOL005NSLifecycleManagement_def.yaml#/definitions/ScaleNsRequest
      required: true

    NsInstanceUpdateRequest:
      description: |
        Parameters for the update NS operation, as defined in clause 6.5.2.12.
      content:
        application/json:
          schema:
            $ref: ./definitions/SOL005NSLifecycleManagement_def.yaml#/definitions/UpdateNsRequest
      required: true

    NsInstanceHealRequest:
      description: |
        Parameters for the heal NS operation, as defined in clause 6.5.2.13.
      content:
        application/json:
          schema:
            $ref: ./definitions/SOL005NSLifecycleManagement_def.yaml#/definitions/HealNsRequest
      required: true

    NsInstanceTerminateRequest:
      description: |
        The terminate NS request parameters, as defined in  clause 6.5.2.15.
      content:
        application/json:
          schema:
            $ref: ./definitions/SOL005NSLifecycleManagement_def.yaml#/definitions/TerminateNsRequest
      required: true

    NsLcmOpOccCancelRequest:
      description: |
        The POST request to this resource shall include a CancelMode structure in the payload body to choose between
        "graceful" and "forceful" cancellation.
      content:
        application/json:
          schema:
            $ref: ./definitions/SOL005NSLifecycleManagement_def.yaml#/definitions/CancelMode
      required: true

    NsLcmSubscriptionRequest:
      description: |
        Details of the subscription to be created, as defined in clause 6.5.2.2.
      content:
        application/json:
          schema:
            $ref: ./definitions/SOL005NSLifecycleManagement_def.yaml#/definitions/LccnSubscriptionRequest
      required: true

  responses:
    NsInstances.Get:
      description: |
        200 OK
        Shall be returned when 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 "filter" URI parameter or one of the "all_fields", "fields" (if supported), "exclude_fields" (if supported)
        or "exclude_default" URI parameters was supplied in the request, 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 [16], respectively.
        If the NFVO supports alternative 2 (paging) according to clause 5.4.2.1 of ETSI GS NFV-SOL 013 [16] 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 [16].
      headers:
        Version:
          description: |
            Version of the API used in the response.
          style: simple
          explode: false
          schema:
            type: string
        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.
          style: simple
          explode: false
          schema:
            type: string
        Link:
          description: |
            Reference to other resources. Used for paging in the present document, see clause 4.7.2.1.
          style: simple
          explode: false
          schema:
            type: string
        Content-Type:
          description: The MIME type of the body of the response.
          style: simple
          explode: false
          schema:
            type: string
      content:
        application/json:
          schema:
            type: array
            items:
              $ref: ./definitions/SOL005NSLifecycleManagement_def.yaml#/definitions/NsInstance

    NsInstances.Post:
      description: |
        201 Created
        Shall be returned when a new "Individual NS instance" resource and the associated NS instance identifier has
        been created successfully. The response body shall contain a representation of the created NS instance, as
        defined in clause 6.5.2.10. The HTTP response shall include a "Location" HTTP header that contains the resource
        URI of the created NS instance.
      headers:
        Version:
          description: |
            Version of the API used in the response.
          style: simple
          explode: false
          schema:
            type: string
        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.
          style: simple