Skip to content
NFVManoConfigurationAndInformationManagement.yaml 153 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: 
          description: >
            If present, this attribute signals modifications of the "clockSyncs" 
            attribute in "ManoEntityConfigurableParams", as defined in 
            clause 5.6.2.3.
          type: array