Skip to content
NFVManoConfigurationAndInformationManagement.yaml 154 KiB
Newer Older
openapi: 3.0.2
info:
  version: 1.0.0-impl:etsi.org:ETSI_NFV_OpenAPI:1
  title: SOL009 - NFV-MANO Configuration and Information Management Interface
  description: >
    SOL009 - NFV-MANO Configuration and Information 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
  license:
    name: ETSI Forge copyright notice
    url: https://forge.etsi.org/etsi-forge-copyright-notice.txt
  contact:
    name: NFV-SOL WG
externalDocs:
Giacomo Bernini's avatar
Giacomo Bernini committed
  description: ETSI GS NFV-SOL 009 V3.3.1
  url: https://www.etsi.org/deliver/etsi_gs/NFV-SOL/001_099/009/03.03.01_60/gs_NFV-SOL009v030301p.pdf

servers:
  - url: http://0.0.0.0/nfvmanocim/v1
    description: >
      API HTTP Server
  - url: https://0.0.0.0/nfvmanocim/v1
    description: >
      API HTTPS Server

paths:
  /api_versions:
    $ref: ../endpoints/SOL009_endpoints.yaml#/endpoints/api_versions

  /mano_entity:
    get:
      description: >
        Retrives information about an NFV-MANO functional entity 
        by reading the NFV-MANO entity resource.
        This method shall follow the provisions specified in the 
        tables 5.5.3.3.2-1 and 5.5.3.3.2-2 for URI query parameters, 
        request and response data structures, and response codes.       
      parameters:
        - $ref: "../components/SOL009_params.yaml#/components/parameters/Version"
        - $ref: "../components/SOL009_params.yaml#/components/parameters/Accept"
        - $ref: "../components/SOL009_params.yaml#/components/parameters/Authorization"
      responses:
        "200":
          $ref: "#/components/responses/mano_entity.get.200"
        "400":
          $ref: ../components/SOL009_resp.yaml#/components/responses/400
          $ref: ../components/SOL009_resp.yaml#/components/responses/401
          $ref: ../components/SOL009_resp.yaml#/components/responses/403
          $ref: ../components/SOL009_resp.yaml#/components/responses/404
          $ref: ../components/SOL009_resp.yaml#/components/responses/405
          $ref: ../components/SOL009_resp.yaml#/components/responses/406
          $ref: ../components/SOL009_resp.yaml#/components/responses/422
          $ref: ../components/SOL009_resp.yaml#/components/responses/500
          $ref: ../components/SOL009_resp.yaml#/components/responses/503
          $ref: ../components/SOL009_resp.yaml#/components/responses/504
    patch:
      description: >
        Modifies the NFV-MANO entity resource.
        Changes to the various configuration and information 
        attributes are applied to the NFV-MANO functional entity, 
        and are reflected in the representation of this resource.
        This method shall follow the provisions specified in the 
        tables 5.5.3.3.4-1 and 5.5.3.3.4-2 for URI query parameters, 
        request and response data structures, and response codes.
      parameters:
        - $ref: "../components/SOL009_params.yaml#/components/parameters/Version"
        - $ref: "../components/SOL009_params.yaml#/components/parameters/Accept"
        - $ref: "../components/SOL009_params.yaml#/components/parameters/Authorization"
      requestBody:
        $ref: "#/components/requestBodies/ModifyManoEntityRequest"
      responses:
        "200": 
          $ref: "#/components/responses/mano_entity.patch.200"
        "409": 
          $ref: "#/components/responses/mano_entity.patch.409"
        "412":
          $ref: "#/components/responses/mano_entity.patch.412"
        "400":
          $ref: ../components/SOL009_resp.yaml#/components/responses/400
          $ref: ../components/SOL009_resp.yaml#/components/responses/401
          $ref: ../components/SOL009_resp.yaml#/components/responses/403
          $ref: ../components/SOL009_resp.yaml#/components/responses/404
          $ref: ../components/SOL009_resp.yaml#/components/responses/405
          $ref: ../components/SOL009_resp.yaml#/components/responses/406
          $ref: ../components/SOL009_resp.yaml#/components/responses/422
          $ref: ../components/SOL009_resp.yaml#/components/responses/500
          $ref: ../components/SOL009_resp.yaml#/components/responses/503
          $ref: ../components/SOL009_resp.yaml#/components/responses/504

  /mano_entity/change_state:
    post:
      description: >
        Requests to change the state of the NFV-MANO functional 
        entity application.

        This method shall follow the provisions specified in the tables 
        5.5.7.3.1-1 and 5.5.7.3.1-2 for URI query parameters, request and 
        response data structures, and response codes.
      parameters:
        - $ref: "../components/SOL009_params.yaml#/components/parameters/Version"
        - $ref: "../components/SOL009_params.yaml#/components/parameters/Accept"
        - $ref: "../components/SOL009_params.yaml#/components/parameters/Authorization"
      requestBody:
        $ref: "#/components/requestBodies/ChangeManoEntityStateRequest"
      responses:
        "202": 
          $ref: "#/components/responses/mano_entity-change_state.post.202"
        "409": 
          $ref: "#/components/responses/mano_entity-change_state.post.409"
        "400":
          $ref: ../components/SOL009_resp.yaml#/components/responses/400
          $ref: ../components/SOL009_resp.yaml#/components/responses/401
          $ref: ../components/SOL009_resp.yaml#/components/responses/403
          $ref: ../components/SOL009_resp.yaml#/components/responses/404
          $ref: ../components/SOL009_resp.yaml#/components/responses/405
          $ref: ../components/SOL009_resp.yaml#/components/responses/406
          $ref: ../components/SOL009_resp.yaml#/components/responses/422
          $ref: ../components/SOL009_resp.yaml#/components/responses/500
          $ref: ../components/SOL009_resp.yaml#/components/responses/503
          $ref: ../components/SOL009_resp.yaml#/components/responses/504

  /mano_entity/mano_interfaces:
    get:
      description: >
        Queries information about multiple NFV-MANO service interfaces of 
        the NFV-MANO functional entity.
        This method shall follow the provisions specified in the tables 
        5.5.10.3.2-1 and 5.5.10.3.2-2 for URI query parameters, request 
        and response data structures, and response codes.
      parameters:
        - $ref: "#/components/parameters/filter.ManoServiceInterface"
        - $ref: "../components/SOL009_params.yaml#/components/parameters/all_fields"
        - $ref: "../components/SOL009_params.yaml#/components/parameters/fields"
        - $ref: "../components/SOL009_params.yaml#/components/parameters/exclude_fields"
        - $ref: "#/components/parameters/exclude_default.ManoServiceInterface"
        - $ref: "../components/SOL009_params.yaml#/components/parameters/nextpage_opaque_marker"
        - $ref: "../components/SOL009_params.yaml#/components/parameters/Version"
        - $ref: "../components/SOL009_params.yaml#/components/parameters/Accept"
        - $ref: "../components/SOL009_params.yaml#/components/parameters/Authorization"
      responses:
        "200": 
          $ref: "#/components/responses/mano_entity-mano_interfaces.get.200"
        "400": 
          $ref: "#/components/responses/mano_entity-mano_interfaces.get.400"
        "401":
          $ref: ../components/SOL009_resp.yaml#/components/responses/401
          $ref: ../components/SOL009_resp.yaml#/components/responses/403
          $ref: ../components/SOL009_resp.yaml#/components/responses/404
          $ref: ../components/SOL009_resp.yaml#/components/responses/405
          $ref: ../components/SOL009_resp.yaml#/components/responses/406
          $ref: ../components/SOL009_resp.yaml#/components/responses/422
          $ref: ../components/SOL009_resp.yaml#/components/responses/500
          $ref: ../components/SOL009_resp.yaml#/components/responses/503
          $ref: ../components/SOL009_resp.yaml#/components/responses/504
  /mano_entity/mano_interfaces/{manoServiceInterfaceId}:
    parameters:
      - $ref: "#/components/parameters/manoServiceInterfaceId"
    get:
      description: >
        retrieves information about an NFV-MANO service interface of the 
        producer NFV-MANO functional entity by reading an "Individual 
        NFV-MANO service interface" resource.

        This method shall follow the provisions specified in the tables 
        5.5.11.3.2-1 and 5.5.11.3.2-2 for URI query parameters, request 
        and response data structures, and response codes.
      parameters:
        - $ref: "../components/SOL009_params.yaml#/components/parameters/Version"
        - $ref: "../components/SOL009_params.yaml#/components/parameters/Accept"
        - $ref: "../components/SOL009_params.yaml#/components/parameters/Authorization"
      responses:
        "200": 
          $ref: "#/components/responses/mano_entity-mano_interface.get.200"
        "401":
          $ref: ../components/SOL009_resp.yaml#/components/responses/401
          $ref: ../components/SOL009_resp.yaml#/components/responses/403
          $ref: ../components/SOL009_resp.yaml#/components/responses/404
          $ref: ../components/SOL009_resp.yaml#/components/responses/405
          $ref: ../components/SOL009_resp.yaml#/components/responses/406
          $ref: ../components/SOL009_resp.yaml#/components/responses/422
          $ref: ../components/SOL009_resp.yaml#/components/responses/500
          $ref: ../components/SOL009_resp.yaml#/components/responses/503
          $ref: ../components/SOL009_resp.yaml#/components/responses/504
    patch:
      description: >
        Modifies an "Individual NFV-MANO service interface" resource.

        Changes to the configurable parameters of the corresponding 
        NFV-MANO service interface are applied to the information managed 
        by the producer NFV-MANO functional entity and reflected in the 
        representation of this resource.

        This method shall follow the provisions specified in the tables 
        5.5.11.3.4-1 and 5.5.11.3.4-2 for URI query parameters, request 
        and response data structures, and response codes.
      parameters:
        - $ref: "../components/SOL009_params.yaml#/components/parameters/Version"
        - $ref: "../components/SOL009_params.yaml#/components/parameters/Accept"
        - $ref: "../components/SOL009_params.yaml#/components/parameters/Authorization"
      requestBody:
        $ref: "#/components/requestBodies/ModifyManoEnityInterfaceRequest"
      responses:
        "200": 
          $ref: "#/components/responses/mano_entity-mano_interface.patch.200"
        "409": 
          $ref: "#/components/responses/mano_entity-mano_interface.patch.409"
        "412": 
          $ref: "#/components/responses/mano_entity-mano_interface.patch.412"
        "400":
          $ref: ../components/SOL009_resp.yaml#/components/responses/400
          $ref: ../components/SOL009_resp.yaml#/components/responses/401
          $ref: ../components/SOL009_resp.yaml#/components/responses/403
          $ref: ../components/SOL009_resp.yaml#/components/responses/404
          $ref: ../components/SOL009_resp.yaml#/components/responses/405
          $ref: ../components/SOL009_resp.yaml#/components/responses/406
          $ref: ../components/SOL009_resp.yaml#/components/responses/422
          $ref: ../components/SOL009_resp.yaml#/components/responses/500
          $ref: ../components/SOL009_resp.yaml#/components/responses/503
          $ref: ../components/SOL009_resp.yaml#/components/responses/504

  /mano_entity/mano_interfaces/{manoServiceInterfaceId}/change_state:
    parameters:
      - $ref: "#/components/parameters/manoServiceInterfaceId"
    post:
      description: >
        Requests to change the state of the NFV-MANO service interface 
        produced by the NFV-MANO functional entity.

        This method shall follow the provisions specified in the tables 
        5.5.12.3.1-1 and 5.5.12.3.1-2 for URI query parameters, request 
        and response data structures, and response codes.
      parameters:
        - $ref: "../components/SOL009_params.yaml#/components/parameters/Version"
        - $ref: "../components/SOL009_params.yaml#/components/parameters/Accept"
        - $ref: "../components/SOL009_params.yaml#/components/parameters/Authorization"
      requestBody:
        $ref: "#/components/requestBodies/ChangeManoEntityInterfaceStateRequest"
      responses:
        "202": 
          $ref: "#/components/responses/mano_entity-mano_interface-change_state.post.202"
        "409": 
          $ref: "#/components/responses/mano_entity-mano_interface-change_state.post.409"
        "400":
          $ref: ../components/SOL009_resp.yaml#/components/responses/400
          $ref: ../components/SOL009_resp.yaml#/components/responses/401
          $ref: ../components/SOL009_resp.yaml#/components/responses/403
          $ref: ../components/SOL009_resp.yaml#/components/responses/404
          $ref: ../components/SOL009_resp.yaml#/components/responses/405
          $ref: ../components/SOL009_resp.yaml#/components/responses/406
          $ref: ../components/SOL009_resp.yaml#/components/responses/422
          $ref: ../components/SOL009_resp.yaml#/components/responses/500
          $ref: ../components/SOL009_resp.yaml#/components/responses/503
          $ref: ../components/SOL009_resp.yaml#/components/responses/504

  /subscriptions:
    post:
      description: >
        Creates a new subscription.

        This method shall follow the provisions specified in the tables 
        5.5.4.3.1-1 and 5.5.4.3.1-2 for URI query parameters, request and 
        response data structures, and response codes.
      parameters:
        - $ref: "../components/SOL009_params.yaml#/components/parameters/Version"
        - $ref: "../components/SOL009_params.yaml#/components/parameters/Accept"
        - $ref: "../components/SOL009_params.yaml#/components/parameters/Authorization"
      requestBody:
        $ref: "#/components/requestBodies/CimSubscriptionRequest"
      responses:
        "201": 
          $ref: "#/components/responses/subscriptions.post.201"
        "303": 
          $ref: "#/components/responses/subscriptions.post.303"
        "400":
          $ref: ../components/SOL009_resp.yaml#/components/responses/400
          $ref: ../components/SOL009_resp.yaml#/components/responses/401
          $ref: ../components/SOL009_resp.yaml#/components/responses/403
          $ref: ../components/SOL009_resp.yaml#/components/responses/404
          $ref: ../components/SOL009_resp.yaml#/components/responses/405
          $ref: ../components/SOL009_resp.yaml#/components/responses/406
          $ref: ../components/SOL009_resp.yaml#/components/responses/422
          $ref: ../components/SOL009_resp.yaml#/components/responses/500
          $ref: ../components/SOL009_resp.yaml#/components/responses/503
          $ref: ../components/SOL009_resp.yaml#/components/responses/504
    get:
      description: >
        queries the list of active subscriptions of the API consumer that 
        invokes the method. It can be used, e.g., for resynchronization 
        after error situations.

        This method shall follow the provisions specified in the tables 
        5.5.4.3.2-1 and 5.5.4.3.2-2 for URI query parameters, request 
        and response data structures, and response codes.
      parameters:
        - $ref: "#/components/parameters/filter.CimSubscription"
        - $ref: "../components/SOL009_params.yaml#/components/parameters/nextpage_opaque_marker"
        - $ref: "../components/SOL009_params.yaml#/components/parameters/Version"
        - $ref: "../components/SOL009_params.yaml#/components/parameters/Accept"
        - $ref: "../components/SOL009_params.yaml#/components/parameters/Authorization"
      responses:
        "200": 
          $ref: "#/components/responses/subscriptions.get.200"
        "400": 
          $ref: "#/components/responses/subscriptions.get.400"
        "401":
          $ref: ../components/SOL009_resp.yaml#/components/responses/401
          $ref: ../components/SOL009_resp.yaml#/components/responses/403
          $ref: ../components/SOL009_resp.yaml#/components/responses/404
          $ref: ../components/SOL009_resp.yaml#/components/responses/405
          $ref: ../components/SOL009_resp.yaml#/components/responses/406
          $ref: ../components/SOL009_resp.yaml#/components/responses/422
          $ref: ../components/SOL009_resp.yaml#/components/responses/500
          $ref: ../components/SOL009_resp.yaml#/components/responses/503
          $ref: ../components/SOL009_resp.yaml#/components/responses/504

  /subscriptions/{subscriptionId}:
    parameters:
      - $ref: "#/components/parameters/subscriptionId"
    get:
      description: >
        Retrieves information about a subscription by reading an "Individual 
        subscription" resource.

        This method shall follow the provisions specified in the tables 
        5.5.5.3.2-1 and 5.5.5.3.2-2 for URI query parameters, request and 
        response data structures, and response codes.
      parameters:
        - $ref: "../components/SOL009_params.yaml#/components/parameters/Version"
        - $ref: "../components/SOL009_params.yaml#/components/parameters/Accept"
        - $ref: "../components/SOL009_params.yaml#/components/parameters/Authorization"
      responses:
        "200": 
          $ref: "#/components/responses/subscription.get.200"
        "400":
          $ref: ../components/SOL009_resp.yaml#/components/responses/400
          $ref: ../components/SOL009_resp.yaml#/components/responses/401
          $ref: ../components/SOL009_resp.yaml#/components/responses/403
          $ref: ../components/SOL009_resp.yaml#/components/responses/404
          $ref: ../components/SOL009_resp.yaml#/components/responses/405
          $ref: ../components/SOL009_resp.yaml#/components/responses/406
          $ref: ../components/SOL009_resp.yaml#/components/responses/422
          $ref: ../components/SOL009_resp.yaml#/components/responses/500
          $ref: ../components/SOL009_resp.yaml#/components/responses/503
          $ref: ../components/SOL009_resp.yaml#/components/responses/504              
    delete:
      description: >
        Terminates an individual subscription.

        This method shall follow the provisions specified in the tables 
        5.5.5.3.5-1 and 5.5.5.3.5-2 for URI query parameters, request 
        and response data structures, and response codes.
      parameters:
        - $ref: "../components/SOL009_params.yaml#/components/parameters/Version"
        - $ref: "../components/SOL009_params.yaml#/components/parameters/Accept"
        - $ref: "../components/SOL009_params.yaml#/components/parameters/Authorization"
      responses:
        "204": 
          $ref: "#/components/responses/subscription.delete.204"
        "400":
          $ref: ../components/SOL009_resp.yaml#/components/responses/400
          $ref: ../components/SOL009_resp.yaml#/components/responses/401
          $ref: ../components/SOL009_resp.yaml#/components/responses/403
          $ref: ../components/SOL009_resp.yaml#/components/responses/404
          $ref: ../components/SOL009_resp.yaml#/components/responses/405
          $ref: ../components/SOL009_resp.yaml#/components/responses/406
          $ref: ../components/SOL009_resp.yaml#/components/responses/422
          $ref: ../components/SOL009_resp.yaml#/components/responses/500
          $ref: ../components/SOL009_resp.yaml#/components/responses/503
          $ref: ../components/SOL009_resp.yaml#/components/responses/504  

  /change_state_ops:
    get:
      description: >
        The API consumer can use the GET method to query status information 
        about multiple change state operation occurrences.

        This method shall follow the provisions specified in the tables 
        5.5.8.3.2-1 and 5.5.8.3.2-2 for URI query parameters, request and 
        response data structures, and response codes.
      parameters:
        - $ref: "#/components/parameters/filter.ChangeStateOpOcc"
        - $ref: "../components/SOL009_params.yaml#/components/parameters/all_fields"
        - $ref: "../components/SOL009_params.yaml#/components/parameters/fields"
        - $ref: "../components/SOL009_params.yaml#/components/parameters/exclude_fields"
        - $ref: "#/components/parameters/exclude_default.ChangeStateOpOcc"
        - $ref: "../components/SOL009_params.yaml#/components/parameters/nextpage_opaque_marker"
        - $ref: "../components/SOL009_params.yaml#/components/parameters/Version"
        - $ref: "../components/SOL009_params.yaml#/components/parameters/Accept"
        - $ref: "../components/SOL009_params.yaml#/components/parameters/Authorization"
      responses:
        "200": 
          $ref: "#/components/responses/change_state_ops.get.200"
        "400": 
          $ref: "#/components/responses/change_state_ops.get.400"
        "401":
          $ref: ../components/SOL009_resp.yaml#/components/responses/401
          $ref: ../components/SOL009_resp.yaml#/components/responses/403
          $ref: ../components/SOL009_resp.yaml#/components/responses/404
          $ref: ../components/SOL009_resp.yaml#/components/responses/405
          $ref: ../components/SOL009_resp.yaml#/components/responses/406
          $ref: ../components/SOL009_resp.yaml#/components/responses/422
          $ref: ../components/SOL009_resp.yaml#/components/responses/500
          $ref: ../components/SOL009_resp.yaml#/components/responses/503
          $ref: ../components/SOL009_resp.yaml#/components/responses/504

  /change_state_ops/{changeStateOpOccId}:
    parameters:
      - $ref: "#/components/parameters/changeStateOpOccId"
    get:
      description: >
        The API consumer can use the GET method to retrieve status 
        information about a change state operation occurrence by reading 
        an "Individual change state operation occurrence" resource.

        This method shall follow the provisions specified in the tables 
        5.5.9.3.2-1 and 5.5.9.3.2-2 for URI query parameters, request 
        and response data structures, and response codes.
      parameters:
        - $ref: "../components/SOL009_params.yaml#/components/parameters/Version"
        - $ref: "../components/SOL009_params.yaml#/components/parameters/Accept"
        - $ref: "../components/SOL009_params.yaml#/components/parameters/Authorization"
      responses:
        "200": 
          $ref: "#/components/responses/change_state_op.get.200"
        "400":
          $ref: ../components/SOL009_resp.yaml#/components/responses/400
          $ref: ../components/SOL009_resp.yaml#/components/responses/401
          $ref: ../components/SOL009_resp.yaml#/components/responses/403
          $ref: ../components/SOL009_resp.yaml#/components/responses/404
          $ref: ../components/SOL009_resp.yaml#/components/responses/405
          $ref: ../components/SOL009_resp.yaml#/components/responses/406
          $ref: ../components/SOL009_resp.yaml#/components/responses/422
          $ref: ../components/SOL009_resp.yaml#/components/responses/500
          $ref: ../components/SOL009_resp.yaml#/components/responses/503
          $ref: ../components/SOL009_resp.yaml#/components/responses/504

  /peer_entities:
    post:
      description: >
        Creates in the producer NFV-MANO functional entity a new peer 
        entity resource which contains configuration and information 
        with regards to the peer functional entity.

        This method shall follow the provisions specified in the tables 
        5.5.13.3.1-1 and 5.5.13.3.1-2 for URI query parameters, request 
        and response data structures, and response codes.
      parameters:
        - $ref: "../components/SOL009_params.yaml#/components/parameters/Version"
        - $ref: "../components/SOL009_params.yaml#/components/parameters/Accept"
        - $ref: "../components/SOL009_params.yaml#/components/parameters/Authorization"
      requestBody:
        $ref: "#/components/requestBodies/CreatePeerEntityRequest"
      responses:
        "201": 
          $ref: "#/components/responses/peer_entities.post.201"
        "400":
          $ref: ../components/SOL009_resp.yaml#/components/responses/400
          $ref: ../components/SOL009_resp.yaml#/components/responses/401
          $ref: ../components/SOL009_resp.yaml#/components/responses/403
          $ref: ../components/SOL009_resp.yaml#/components/responses/404
          $ref: ../components/SOL009_resp.yaml#/components/responses/405
          $ref: ../components/SOL009_resp.yaml#/components/responses/406
          $ref: ../components/SOL009_resp.yaml#/components/responses/422
          $ref: ../components/SOL009_resp.yaml#/components/responses/500
          $ref: ../components/SOL009_resp.yaml#/components/responses/503
          $ref: ../components/SOL009_resp.yaml#/components/responses/504
    get:
      description: >
        Queries information and configuration in the producer NFV-MANO 
        functional entity with regards to multiple peer entities.

        This method shall follow the provisions specified in the tables 
        5.5.13.3.2-1 and 5.5.13.3.2-2 for URI query parameters, request 
        and response data structures, and response codes.
      parameters:
        - $ref: "#/components/parameters/filter.PeerEntity"
        - $ref: "../components/SOL009_params.yaml#/components/parameters/all_fields"
        - $ref: "../components/SOL009_params.yaml#/components/parameters/fields"
        - $ref: "../components/SOL009_params.yaml#/components/parameters/exclude_fields"
        - $ref: "#/components/parameters/exclude_default.PeerEntity"
        - $ref: "../components/SOL009_params.yaml#/components/parameters/nextpage_opaque_marker"
        - $ref: "../components/SOL009_params.yaml#/components/parameters/Version"
        - $ref: "../components/SOL009_params.yaml#/components/parameters/Accept"
        - $ref: "../components/SOL009_params.yaml#/components/parameters/Authorization"
      responses:
        "200": 
          $ref: "#/components/responses/peer_entities.get.200"
        "400": 
          $ref: "#/components/responses/peer_entities.get.400"
        "401":
          $ref: ../components/SOL009_resp.yaml#/components/responses/401
          $ref: ../components/SOL009_resp.yaml#/components/responses/403
          $ref: ../components/SOL009_resp.yaml#/components/responses/404
          $ref: ../components/SOL009_resp.yaml#/components/responses/405
          $ref: ../components/SOL009_resp.yaml#/components/responses/406
          $ref: ../components/SOL009_resp.yaml#/components/responses/422
          $ref: ../components/SOL009_resp.yaml#/components/responses/500
          $ref: ../components/SOL009_resp.yaml#/components/responses/503
          $ref: ../components/SOL009_resp.yaml#/components/responses/504
  
  /peer_entities/{peerEntityId}:
    parameters:
      - $ref: "#/components/parameters/peerEntityId"
    get:
      description: >
        Retrieves information and configuration hold in the producer NFV-MANO 
        functional entity with regards to a peer entity by reading an individual 
        peer entity resource.

        This method shall follow the provisions specified in the tables 
        5.5.14.3.2-1 and 5.5.14.3.2-2 for URI query parameters, request 
        and response data structures, and response codes.
      parameters:
        - $ref: "../components/SOL009_params.yaml#/components/parameters/Version"
        - $ref: "../components/SOL009_params.yaml#/components/parameters/Accept"
        - $ref: "../components/SOL009_params.yaml#/components/parameters/Authorization"
      responses:
        "200": 
          $ref: "#/components/responses/peer_entitie.get.200"
        "400":
          $ref: ../components/SOL009_resp.yaml#/components/responses/400
          $ref: ../components/SOL009_resp.yaml#/components/responses/401
          $ref: ../components/SOL009_resp.yaml#/components/responses/403
          $ref: ../components/SOL009_resp.yaml#/components/responses/404
          $ref: ../components/SOL009_resp.yaml#/components/responses/405
          $ref: ../components/SOL009_resp.yaml#/components/responses/406
          $ref: ../components/SOL009_resp.yaml#/components/responses/422
          $ref: ../components/SOL009_resp.yaml#/components/responses/500
          $ref: ../components/SOL009_resp.yaml#/components/responses/503
          $ref: ../components/SOL009_resp.yaml#/components/responses/504
    patch:
      description: >
        Modifies configuration and information of the producer NFV-MANO 
        functional entity with regards to a peer functional entity by 
        updating the corresponding "Individual peer entity" resource.

        Changes to the configurable parameters of the corresponding peer 
        entity are applied to the information managed by the producer 
        NFV-MANO functional entity and reflected in the representation 
        of this resource.

        This method shall follow the provisions specified in the tables 
        5.5.14.3.4-1 and 5.5.14.3.4-2 for URI query parameters, request 
        and response data structures, and response codes.
      parameters:
        - $ref: "../components/SOL009_params.yaml#/components/parameters/Version"
        - $ref: "../components/SOL009_params.yaml#/components/parameters/Accept"
        - $ref: "../components/SOL009_params.yaml#/components/parameters/Authorization"
      requestBody:
        $ref: "#/components/requestBodies/ModifyPeerEntityRequest"
      responses:
        "200": 
          $ref: "#/components/responses/peer_entitie.patch.200"
        "409": 
          $ref: "#/components/responses/peer_entitie.patch.409"
        "412": 
          $ref: "#/components/responses/peer_entitie.patch.412"
        "401":
          $ref: ../components/SOL009_resp.yaml#/components/responses/401
          $ref: ../components/SOL009_resp.yaml#/components/responses/403
          $ref: ../components/SOL009_resp.yaml#/components/responses/404
          $ref: ../components/SOL009_resp.yaml#/components/responses/405
          $ref: ../components/SOL009_resp.yaml#/components/responses/406
          $ref: ../components/SOL009_resp.yaml#/components/responses/422
          $ref: ../components/SOL009_resp.yaml#/components/responses/500
          $ref: ../components/SOL009_resp.yaml#/components/responses/503
          $ref: ../components/SOL009_resp.yaml#/components/responses/504
    delete:
      description: >
        Ddeletes an individual peer entity resource. By deleting such 
        a resource in the producer NFV-MANO functional entity representing 
        a peer NFV-MANO entity, the configuration and information with 
        regards to such peer entity is deleted. Consequently, the peering 
        relationship between the producer NFV-MANO functional entity and 
        the peer entity is terminated, i.e., the producer NFV-MANO functional 
        entity does not have the necessary information to communicate/interact 
        with the peer entity.

        This method shall follow the provisions specified in the tables 
        5.5.14.3.5-1 and 5.5.14.3.5-2 for URI query parameters, request 
        and response data structures, and response codes.
      parameters:
        - $ref: "../components/SOL009_params.yaml#/components/parameters/Version"
        - $ref: "../components/SOL009_params.yaml#/components/parameters/Accept"
        - $ref: "../components/SOL009_params.yaml#/components/parameters/Authorization"
      responses:
        "204": 
          $ref: "#/components/responses/peer_entitie.delete.204"
        "409": 
          $ref: "#/components/responses/peer_entitie.delete.409"
        "412": 
          $ref: "#/components/responses/peer_entitie.delete.412"
        "401":
          $ref: ../components/SOL009_resp.yaml#/components/responses/401
          $ref: ../components/SOL009_resp.yaml#/components/responses/403
          $ref: ../components/SOL009_resp.yaml#/components/responses/404
          $ref: ../components/SOL009_resp.yaml#/components/responses/405
          $ref: ../components/SOL009_resp.yaml#/components/responses/406
          $ref: ../components/SOL009_resp.yaml#/components/responses/422
          $ref: ../components/SOL009_resp.yaml#/components/responses/500
          $ref: ../components/SOL009_resp.yaml#/components/responses/503
          $ref: ../components/SOL009_resp.yaml#/components/responses/504

components:
  schemas:   
    ManoEntity:
      description: >
        This type represents an NFV-MANO functional entity.
      type: object
      required:
        - id
        - type
        - name
        - description
        - provider
        - softwareVersion
        - manoConfigurableParams
        - manoApplicationState
        - _links
      properties:
        id:
          description: >
            Identifier of the NFV-MANO functional entity. The identifier shall be set during 
            the initial deployment of the NFV-MANO functional entity and its value allocated 
            based on network operator policies. The value of this identifier shall be unique 
            at least in the scope of the NFV-MANO deployment.
          $ref: "../components/SOL009_schemas.yaml#/components/schemas/Identifier"
        type:
          description: >
            Type of NFV-MANO functional entity.
          $ref: "#/components/schemas/ManoEntityEnumType"
        name:
          description: >
            Human-readable name of the NFV-MANO functional entity.
            
            This attribute can be modified with the PATCH method.
          type: string
        description:
          description: >
            Human-readable description of the NFV-MANO functional entity.
            
            This attribute can be modified with the PATCH method.
          type: string
        provider:
          description: >
            Information about the provider of the NFV-MANO functional entity. 
            It typically includes the name of the provider.
          type: string
        softwareVersion:
          description: >
            The version of the software of the NFV-MANO functional entity.
            $ref: "../components/SOL009_schemas.yaml#/components/schemas/Version"
        manoEntityComponents:
          description: >
            The deployed NFV-MANO functional entity components which realize the 
            NFV-MANO functional entity. 

            NOTE:	It is optional for the API producer to support the "manoEntityComponents" 
            attribute.
          type: array
          items: 
            $ref: "#/components/schemas/ManoEntityComponent"
        manoServices:
          description: >
            Information about the NFV-MANO services provided by the NFV-MANO 
            functional entity.
          type: array
          items: 
            $ref: "#/components/schemas/ManoService"
        manoConfigurableParams:
          description: >
            Information and current values of the configurable parameters.

            This attribute can be modified with the PATCH method.
          $ref: "#/components/schemas/ManoConfigurableParams"
        manoApplicationState:
          description: >
            Information and current values of the NFV-MANO functional entity’s application state. 
          type: object
          required:
            - operationalState
            - administrativeState
            - usageState
          properties:
            operationalState:
              description: >
                The operational state of the NFV-MANO functional entity application.
Giacomo Bernini's avatar
Giacomo Bernini committed
              $ref: "../components/SOL009_schemas.yaml#/components/schemas/OperationalStateEnumType"
            administrativeState:
              description: >
                The administrative state of the NFV-MANO functional entity application.
Giacomo Bernini's avatar
Giacomo Bernini committed
              $ref: "../components/SOL009_schemas.yaml#/components/schemas/AdministrativeStateEnumType"
            usageState:
              description: >
                The usage state of the NFV-MANO functional entity application.
              $ref: "#/components/schemas/UsageStateEnumType"
        nfvoSpecificInfo:
          description: >
            The information specific to an NFVO entity.

            NOTE: It shall be present when "type" attribute is "NFVO", and it 
            shall be absent in any other case.

            NOTE: The information about the NFV-MANO services offered by a 
            specific type of NFV-MANO functional entity is specified by the 
            manoServices attribute.
          $ref: "#/components/schemas/NfvoSpecificInfo"
        vnfmSpecificInfo:
          description: >
            The information specific to a VNFM entity.

            NOTE: It shall be present when "type" attribute is "VNFM", and 
            it shall be absent in any other case.
            NOTE: The information about the NFV-MANO services offered by a 
            specific type of NFV-MANO functional entity is specified by the 
            manoServices attribute.
          $ref: "#/components/schemas/VnfmSpecificInfo"
        vimSpecificInfo:
          description: >
            The information specific to an VIM entity.

            NOTE: It shall be present when "type" attribute is "VIM", and 
            it shall be absent in any other case.
            NOTE: The information about the NFV-MANO services offered by a 
            specific type of NFV-MANO functional entity is specified by the 
            manoServices attribute.
          $ref: "#/components/schemas/VimSpecificInfo"
        _links:
          description: >
            Links to resources related to this resource.
          type: object
          required:
            - self
            - manoServiceInterfaces
            - peerEntities
            - changeState
            - changeStateOpOccs
          properties:
            self:
              description: URI of this resource.
              $ref: "../components/SOL009_schemas.yaml#/components/schemas/Link"
            manoServiceInterfaces:
              description: Link to the "NFV-MANO service interfaces" resource.
              $ref: "../components/SOL009_schemas.yaml#/components/schemas/Link"
            peerEntities:
              description: Link to "Peer entities" resource.
              $ref: "../components/SOL009_schemas.yaml#/components/schemas/Link"
            changeState:
              description: Link to the "Change state" task resource.
              $ref: "../components/SOL009_schemas.yaml#/components/schemas/Link"
            changeStateOpOccs:
              description: Link to the "Change state operation occurrences" resource.
              $ref: "../components/SOL009_schemas.yaml#/components/schemas/Link"        

    ManoConfigModificationRequest:
      description: >
        This type represents attribute modifications for configuration parameters 
        of an NFV-MANO functional entity. 
      type: object
      properties:
        name:
          description: >
            New value of the "name" attribute in "ManoEntity".
          type: string
        description:
          description: >
            New value of the "description" attribute in "ManoEntity".
          type: string
        clockSyncs:
          description: >
            Modifications of the "clockSyncs" attribute in the "ManoEntityConfigurableParams".
            If present, these modifications shall be applied according to the rules of JSON Merge PATCH
            (see IETF RFC 7396).
          type: object
          additionalProperties:
            $ref: "#/components/schemas/ClockSyncInfo"
        defaultLogCompileBySizeValue:
          description: >
            New value of the "defaultLogCompileBySizeValue" attribute in the 
            "ManoEntityConfigurableParams".
          $ref: "../components/SOL009_schemas.yaml#/components/schemas/UnsignedInt"
        defaultLogCompileByTimerValue:
          description: >
            New value of the "defaultLogCompileByTimerValue" attribute in the 
            "ManoEntityConfigurableParams".
          $ref: "../components/SOL009_schemas.yaml#/components/schemas/UnsignedInt"
        manoServiceModifications:
          description: >
            New content of certain entries in the "manoServices" attribute array 
            in the "ManoEntity", as defined below this table.
          type: array
          items:
            type: object
            properties:
              id:
                description: >
                  Identifier of the NFV-MANO service to modify.
                $ref: "../components/SOL009_schemas.yaml#/components/schemas/IdentifierInManoEntity"
              name:
                description: >
                  New value for the "name" attribute in the "ManoService". 
                  
                  NOTE:	At least one of these attributes shall be provided if requesting 
                  a modification of the NFV-MANO service identified by "id".
                type: string
              description:
                description: >
                  New value for the "description" attribute in the "ManoService".
                  
                  NOTE:	At least one of these attributes shall be provided if requesting 
                  a modification of the NFV-MANO service identified by "id".
                type: string
            required:
              - id

    ManoConfigModifications:
      description: >
        This type represents attribute modifications that were performed on the 
        "NFV-MANO entity" resource of the producer NFV-MANO functional entity. 
        The attributes that can be included consist of those requested to be 
        modified explicitly in the "ManoConfigModificationRequest" data structure. 
      type: object
      properties:
        name: 
          description: >
            If present, this attribute signals modifications of the "name" 
            attribute in "ManoEntity", as defined in clause 5.6.2.3
          type: string
        description: 
          description: >
            If present, this attribute signals modifications of the "description" 
            attribute in "ManoEntity", as defined in clause 5.6.2.3.
          type: string
        clockSyncs:
            If present, this attribute signals modifications of the "clockSyncs" attribute in
            "ManoEntityConfigurableParams", as defined in clause 5.6.2.3.
          type: object
          additionalProperties:
            $ref: "#/components/schemas/ClockSyncInfo"
        defaultLogCompileBySizeValue: 
          description: >
            If present, this attribute signals modifications of the 
            "defaultLogCompileBySizeValue" attribute in the 
            "ManoEntityConfigurableParams".
          $ref: "../components/SOL009_schemas.yaml#/components/schemas/UnsignedInt"
        defaultLogCompileByTimerValue: 
          description: >
            If present, this attribute signals modifications of the 
            "defaultLogCompileByTimerValue" attribute in the 
            "ManoEntityConfigurableParams".
          $ref: "../components/SOL009_schemas.yaml#/components/schemas/UnsignedInt"
        manoServiceModifications: 
          description: >
            If present, this attribute signals modifications of the "manoServices" 
            attribute array in the "ManoEntity", as defined in clause 5.6.2.3.
          type: array
          items:
            type: object
            properties:
              id:
                description: >
                  Identifier of the NFV-MANO service that has been modified.
                $ref: "../components/SOL009_schemas.yaml#/components/schemas/IdentifierInManoEntity"
              name:
                description: >
                  If present, this attribute signals modification of the "name" 
                  attribute in the "ManoService".
                type: string
              description:
                description: >
                  If present, this attribute signals modification of the 
                  "description" attribute in the "ManoService".
                type: string
            required:
              - id

    CimSubscriptionRequest:
      description: >
        This type represents a subscription request related to notifications 
        about NFV-MANO configuration and information management changes. 
      type: object
      properties:
        filter:
          description: >
            Filter settings for this subscription, to define the subset of all 
            notifications this subscription relates to. A particular notification 
            is sent to the subscriber if the filter matches, or if there is no filter.
          $ref: "#/components/schemas/CimNotificationsFilter"
        callbackUri:
          description: >
            The URI of the endpoint to send the notification to.
          $ref: "../components/SOL009_schemas.yaml#/components/schemas/Uri"
        authentication:
          description: >
            Authentication parameters to configure the use of Authorization when 
            sending notifications corresponding to this subscription, as defined 
            in clause 8.3.4 of ETSI GS NFV-SOL 013.
            This attribute shall only be present if the subscriber requires 
            authorization of notifications.
          $ref: "../components/SOL009_schemas.yaml#/components/schemas/SubscriptionAuthentication"
      required:
        - callbackUri

    CimSubscription:
      description: >
        This type represents a subscription related to notifications about 
        NFV-MANO configuration and information management changes
      type: object
      properties:
        id:
          description: >
            Identifier that identifies the subscription
          $ref: "../components/SOL009_schemas.yaml#/components/schemas/Identifier"
        filter:
          description: >
            Filter settings for this subscription, to define the subset of all 
            notifications this subscription relates to. A particular notification 
            is sent to the subscriber if the filter matches, or if there is no filter.
          $ref: "#/components/schemas/CimNotificationsFilter"
        callbackUri:
          description: >
            The URI of the endpoint to send the notification to.
          $ref: "../components/SOL009_schemas.yaml#/components/schemas/Uri"
        _links:
          description: >
            Links to resources related to this resource.
          type: object 
          properties:
            self: 
              description: >
                URI of this resource.
              $ref: "../components/SOL009_schemas.yaml#/components/schemas/Link"
          required:
            - self
      required:
        - id
        - callbackUri
        - _links

    ChangeStateRequest:
      description: >
        This type represents request parameters for changing the state of a managed entity. 
      type: object
      properties:
        operationalStateChange:
          description: >
            A change of operational state. Shall be present if the state change request
            refers to the operational state. 
            NOTE:	In the present document version, a request shall only include an 
            operational state change (attribute "operationalStateChange") or an 
            administrative state change request (attribute "administrativeStateChange"), 
            but not both.
          type: object
          properties:
            operationalStateAction:
              description: >
                The desired operation state to change the managed object to. In case of 
                changing the state of an NFV-MANO service interface the value 
                "RESTART" shall not be used.
              $ref: "#/components/schemas/ChangeOperationalStateEnumType"
            stopType:
              description: >
                It signals the type of stop. 
                
                NOTE:	The "stopType" shall only be provided when the "operationalStateAction" 
                attribute is equal to "STOP" or "RESTART".  The "gracefulStopTimeout" shall 
                be absent when the "stopType" attribute is equal to "FORCEFUL", and may 
                be provided otherwise.
              $ref: "#/components/schemas/StopEnumType"
            gracefulStopTimeout:
              description: >
                The time internal (in seconds) to wait for the entity to be taken out 
                of service during graceful stop. 
                
                NOTE:	The "stopType" shall only be provided when the "operationalStateAction" 
                attribute is equal to "STOP" or "RESTART".  The "gracefulStopTimeout" shall 
                be absent when the "stopType" attribute is equal to "FORCEFUL", and may 
                be provided otherwise.
              type: integer
          required:
            - operationalStateAction
        administrativeStateChange:
          description: >
            A change of administrative state. Shall be present if the state change request
            refers to the administrative state. 
            
            NOTE:	In the present document version, a request shall only include an 
            operational state change (attribute "operationalStateChange") or an 
            administrative state change request (attribute "administrativeStateChange"), 
            but not both.
          type: object
          properties:
            administrativeStateAction:
              description: > 
                The desired administrative state to change the managed object to.
              $ref: "#/components/schemas/ChangeAdministrativeStateEnumType"
          required:
            - administrativeStateAction

    ChangeStateOpOcc:
      description: >
        This type represents a Change state operation occurrence. 
      type: object
      properties:
        id: 
          description: >
            Identifier of this change state operation occurrence.
          $ref: "../components/SOL009_schemas.yaml#/components/schemas/Identifier"
        operationState: 
          description: >
            The state of the "change state operation occurrence".
Giacomo Bernini's avatar
Giacomo Bernini committed
          $ref: "../components/SOL009_schemas.yaml#/components/schemas/ChangeStateOpOccStateEnumType"
        stateEnteredTime: 
          description: >
            Date-time when the current state was entered.
          $ref: "../components/SOL009_schemas.yaml#/components/schemas/DateTime"
        startTime: 
          description: >
            Date-time of the start of the operation.
          $ref: "../components/SOL009_schemas.yaml#/components/schemas/DateTime"
        managedObjectRef: 
          description: >
            Reference of the managed object to which the change state operation 
            occurrence relates. The value of the "type" attribute shall be 
            "MANO_ENTITY" or "MANO_SERVICE_IF".
          $ref: "../components/SOL009_schemas.yaml#/components/schemas/ManoManagedObjectReference"
        changeOperationalStateRequest: 
          description: >
            The type of the change of operational state that was requested. Shall 
            be present if the change of state operation triggered a change of 
            operational state.
          $ref: "#/components/schemas/ChangeOperationalStateEnumType"
        changeAdministrativeStateRequest: 
          description: >
            The type of the change of administrative state that was requested. Shall 
            be present if the change of state operation triggered a change of 
            administrative state.
          $ref: "#/components/schemas/ChangeAdministrativeStateEnumType"
        operationParams: 
          description: >
            Input parameters of the change state operation. This attribute shall be 
            formatted according to the request data type of the related change state 
            operation. 

            The following mapping between operationType and the data type of this 
            attribute shall apply:
              - CHANGE_STATE: ChangeStateRequest
              
            This attribute shall be present if this data type is returned in a response 
            to reading an individual resource, and may be present according to the chosen 
            attribute selector parameter if this data type is returned in a response to 
            a query of a container resource.
      required:
        - id
        - operationState
        - stateEnteredTime
        - startTime
        - managedObjectRef

    ManoServiceInterface:
      description: >
        This type represents an individual NFV-MANO service interface produced by 
        an NFV-MANO functional entity. 
      type: object
      properties:
        id:
          description: >
            Identifier of the NFV-MANO functional entity interface.
          $ref: "../components/SOL009_schemas.yaml#/components/schemas/IdentifierInManoEntity"
        name:
          description: >
            Human-readable name of the NFV-MANO functional entity interface.
            
            This attribute can be modified with the PATCH method.
          type: string
        type:
          description: >
            Type of the NFV-MANO service interface produced by the NFV-MANO functional 
            entity. Valid values are defined in clause 5.6.4.3.
          type: string
        standardVersion:
          description: >
            Version of the standard the interface is compliant to. 
            
            NOTE 1:	The information to be provided in this attribute shall relate to 
            the specification and version of the specification. For instance, 
            "ETSI GS NFV-SOL 003 (V2.4.1)".
          $ref: "../components/SOL009_schemas.yaml#/components/schemas/Version"
        providerSpecificApiVersion:
          description: >
            Provider-specific software API version.
          $ref: "../components/SOL009_schemas.yaml#/components/schemas/Version"
        apiVersion:
          description: >
            API version, in compliance with the version identifiers and parameters 
            format specified in clause 9.1 of ETSI GS NFV-SOL 013.
          $ref: "../components/SOL009_schemas.yaml#/components/schemas/Version"
        apiEndpoint:
          description: >
            Exposed API endpoint of the interface.
          type: object
          properties:
            apiRoot:
              description: >
                Indicates the scheme ("http" or "https"), the host name and optional port, 
                and an optional sequence of path segments that together represent a prefix 
                path. Shall be present for ETSI NFV specified RESTful NFV-MANO APIs 
                (see also clause 4.1 of ETSI GS NFV-SOL 013). May be present otherwise.

                This attribute can be modified with the PATCH method.
              $ref: "../components/SOL009_schemas.yaml#/components/schemas/Uri"
            apiName:
              description: >
                Indicates the interface name in an abbreviated form. Shall be present 
                for ETSI NFV specified RESTful NFV-MANO APIs. The {apiName} of each 
                interface is defined in the standard the interface is compliant to 
                (see also clause 4.1 of ETSI GS NFV-SOL 013). May be present otherwise.
              type: string
            apiMajorVersion:
              description: >
                Indicates the current major version of the API. Shall be present for 
                ETSI NFV specified RESTful NFV-MANO APIs. The major version is defined 
                in the standard the interface is compliant to (see also clause 4.1 of 
                ETSI GS NFV-SOL 013). May be present otherwise.
              type: string
            apiUri:
              description: >
                URL of the API endpoint. For ETSI NFV specified RESTful NFV-MANO APIs, 
                the following prefix structure is used (see also clause 4.1 of ETSI 
                GS NFV-SOL 013): {apiRoot}/{apiName}/{apiMajorVersion}
                For APIs not specified by ETSI NFV as part of the RESTful NFV-MANO APIs, 
                this attribute can be modified with the PATCH method. For RESTful NFV-MANO 
                APIs specified by ETSI NFV, this attribute shall not be modified. Instead, 
                changes are handled indirectly via patching of the "apiRoot" attribute’s 
                value.
              $ref: "../components/SOL009_schemas.yaml#/components/schemas/Uri"