VNFLifecycleManagement.yaml 61.7 KB
Newer Older
###############################################################################
  '/vnf_lcm_op_occs/{vnfLcmOpOccId}/retry':
    #SOL003 location: 5.4.14
    parameters:
      - name: vnfLcmOpOccId
        description: >
          Identifier of a VNF lifecycle management operation occurrence to be
          retried. 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
    post: 
      description: >
        The POST method initiates retrying a VNF lifecycle operation if that
        operation has experienced a temporary failure, i.e. the related
        "VNF LCM operation occurrence" resource is in "FAILED_TEMP" state.
      responses:
        202:
          $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/202"
        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-VNF-LCM"
        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-FAILED_TEMP"
        500:
          $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/500"
        503:
          $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/503"
###############################################################################
# Rollback operation task                                                     #
###############################################################################
  '/vnf_lcm_op_occs/{vnfLcmOpOccId}/rollback':
    #SOL003 location: 5.4.15  
    parameters:
      - name: vnfLcmOpOccId
        description: >
          Identifier of a VNF lifecycle management operation occurrence to be
          be rolled back. 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
    post: 
      description: >
        The POST method initiates rolling back a VNF lifecycle operation if
        that operation has experienced a temporary failure, i.e. the related
        "VNF LCM operation occurrence" resource is in "FAILED_TEMP" state.
      responses:
        202:
          $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/202"
        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-VNF-LCM"
        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-FAILED_TEMP"
        500:
          $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/500"
        503:
          $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/503"
###############################################################################
# Fail operation task                                                         #
###############################################################################
  '/vnf_lcm_op_occs/{vnfLcmOpOccId}/fail':
    #SOL003 location: 5.4.16  
    parameters:
      - name: vnfLcmOpOccId
        description: >
          Identifier of a VNF lifecycle management operation occurrence to be
          be marked as "failed". 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
    post: 
      description: >
        The POST method marks a VNF lifecycle management operation occurrence
        as "finally failed" if that operation occurrence is in "FAILED_TEMP"
        state.
      responses:
        200:
          description: > 
            The state of the VNF lifecycle management operation occurrence was
            changed successfully. The response shall include a representation
            of the VNF lifecycle operation occurrence resource.
          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/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-task-not-suported-VNF-LCM"
        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-FAILED_TEMP"
        500:
          $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/500"
        503:
          $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/503"
###############################################################################
# Cancel operation task                                                       #
###############################################################################
  '/vnf_lcm_op_occs/{vnfLcmOpOccId}/cancel':
    #SOL003 location: 5.4.17
    parameters:
      - name: vnfLcmOpOccId
        description: >
          Identifier of a VNF lifecycle management operation occurrence to be
          be cancelled. 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
    post: 
      description: >
        The POST method initiates cancelling an ongoing VNF lifecycle
        operation while it is being executed or rolled back, i.e. the related
        "VNF LCM operation occurrence" is either in "PROCESSING" or
        "ROLLING_BACK" state.
      responses:
        202:
          $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/202"
        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-VNF-LCM"
        405:
          $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/404"
        406:
          $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/406"
        409:
          description: > 
            The operation cannot be executed currently, due to a conflict with
            the state of the VNF LCM operation occurrence resource.
            Typically, this is due to the fact that the operation occurrence
            is not in STARTING, PROCESSING or ROLLING_BACK state.
            The response body shall contain a ProblemDetails structure, in
            which the "detail" attribute shall convey more information about
            the error.
          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/SOL002SOL003_def.yaml#/definitions/ProblemDetails"
        500:
          $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/500"
        503:
          $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/503"
###############################################################################
# Subscriptions                                                               #
###############################################################################
  '/subscriptions':
    #SOL003 location: 5.4.18
    post: 
      description: >
        The POST method creates a new subscription.
      parameters:
        - name: LccnSubscriptionRequest
          description: > 
            Details of the subscription to be created.
          in: body
          required: true
          schema:
            $ref: "../../definitions/SOL002SOL003VNFLifecycleManagement_def.yaml#/definitions/LccnSubscriptionRequest"
      responses:
        201:
          description: > 
            The subscription was created successfully. The response body shall
            contain a representation of the created subscription resource.
            The HTTP response shall include a "Location" HTTP header that
            points to the created subscription resource.
          headers:
            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/SOL002SOL003VNFLifecycleManagement_def.yaml#/definitions/LccnSubscription"
        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-VNF-LCM"
        405:
          $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/404"
        406:
          $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/406"
        500:
          $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/500"
        503:
          $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/503"
    get: 
      description: >
        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.
      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 may supply this parameter. All attribute names that appear in the LccnSubscription
            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
            The list of subscriptions was queried successfully.
            The response body shall contain in an array the representations of all active subscriptions
            of the functional block that invokes the method, i.e. zero or more representations of lifecycle
            change notification subscriptions as defined in clause 5.5.2.16.
          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/SOL002SOL003VNFLifecycleManagement_def.yaml#/definitions/LccnSubscription"
        400:
          description: > 
            Bad Request

            Invalid attribute-based filtering parameters.
            The response body shall contain a ProblemDetails structure, in
            which the "detail" attribute should convey more information about
            the error.
          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/SOL002SOL003_def.yaml#/definitions/ProblemDetails"
        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-VNF-LCM"
        405:
          $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/404"
        406:
          $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/406"
        500:
          $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/500"
        503:
          $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/503"
###############################################################################
# Individual subscription                                                     #
###############################################################################
  '/subscriptions/{subscriptionId}':
    #SOL003 location: 5.4.19
    parameters:
      - name: subscriptionId
          Identifier of this subscription.
          This identifier can be retrieved from the resource referenced by
          the "Location" HTTP header in the response to a POST request
          creating a new subscription 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: >
        The GET method retrieves information about a subscription by reading
        an individual subscription resource.
      responses:
        200:
          description: > 
            The operation has completed successfully.
            The response body shall contain a representation of the
            subscription resource.
          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/SOL002SOL003VNFLifecycleManagement_def.yaml#/definitions/LccnSubscription"
        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-VNF-LCM"
        405:
          $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/404"
        406:
          $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/406"
        500:
          $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/500"
        503:
          $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/503"
    delete:
      description: >
        The DELETE method terminates an individual subscription.
      responses:
        204:
          description: > 
            The subscription resource was 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"
        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-VNF-LCM"
        405:
          $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/404"
        406:
          $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/406"
        500:
          $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/500"
        503:
          $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/503"