NFVManoConfigurationAndInformationManagement.yaml 152 KB
Newer Older
openapi: 3.0.2
info:
Giacomo Bernini's avatar
Giacomo Bernini committed
  version: 2.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:
  description: ETSI GS NFV-SOL 009 V3.5.1
  url: https://www.etsi.org/deliver/etsi_gs/NFV-SOL/001_099/009/03.05.01_60/gs_NFV-SOL009v030501p.pdf
Giacomo Bernini's avatar
Giacomo Bernini committed
  - url: http://0.0.0.0/nfvmanocim/v2
    description: >
      API HTTP Server
Giacomo Bernini's avatar
Giacomo Bernini committed
  - url: https://0.0.0.0/nfvmanocim/v2
    description: >
      API HTTPS Server

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

  /mano_entity:
    get:
      description: >
        The GET method retrieves information about an NFV-MANO functional entity by reading the NFV-MANO entity resource.
        See clause 5.5.3.3.2.
        - $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: >
        The PATCH method modifies the NFV-MANO entity resource. See clause 5.5.3.3.4.
        - $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: >
        The POST method requests to change the state of the NFV-MANO functional entity application.
        See clause 5.5.7.3.1.
        - $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: >
        The GET method queries information about multiple NFV-MANO service interfaces
        of the NFV-MANO functional entity. See clause 5.5.10.3.2.
      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: >
        The GET method retrieves information about an NFV-MANO service interface of the producer
        NFV-MANO functional entity by reading an "Individual NFV-MANO service interface" resource.
        See clause 5.5.11.3.2.
        - $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: >
        This method is used to modify an "Individual NFV-MANO service interface" resource. See clause 5.5.11.3.4.
        - $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: >
        The POST method requests to change the state of the NFV-MANO service interface
        produced by the NFV-MANO functional entity. See clause 5.5.12.3.1.
        - $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: >
        The POST method creates a new subscription. See clause 5.5.4.3.1.
        - $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: >
        The GET method 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.
        See clause 5.5.4.3.2.
      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: >
        The GET method retrieves information about a subscription by reading an "Individual subscription" resource.
        See clause 5.5.5.3.2.
        - $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: >
        The DELETE method terminates an individual subscription. See clause 5.5.5.3.5.
        - $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. See clause 5.5.8.3.2.
      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. See clause 5.5.9.3.2.
        - $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: >
        The POST method 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. See clause 5.5.13.3.1
        - $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: >
        The GET method queries information and configuration in the producer NFV-MANO functional
        entity with regards to multiple peer entities. See clause 5.5.13.3.2.
      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: >
        The GET method 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. See clause 5.5.14.3.2.
        - $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: >
        This method 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. See clause 5.5.14.3.4.
        - $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: >
        This method deletes 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. See clause 5.5.14.3.5.
        - $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.
        *  NOTE 1:	It shall be present when "type" attribute is "NFVO", and it shall be absent in any other case.
        *  NOTE 2:	It shall be present when "type" attribute is "VNFM", and it shall be absent in any other case.
        *  NOTE 3:	It shall be present when "type" attribute is "VIM", and it shall be absent in any other case.
        *  NOTE 4:	The information about the NFV-MANO services offered by a specific type of NFV-MANO functional
                    entity is specified by the manoServices attribute.
        *  NOTE 5:	It is optional for the API producer to support the "manoEntityComponents" attribute.
        *  NOTE 6:	It shall be present when "type" attribute is "WIM", and it shall be absent in any other case.
      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.
Sana Zulfiqar's avatar
Sana Zulfiqar committed
          $ref: "../components/SOL009_schemas.yaml#/components/schemas/Version"
        manoEntityComponents:
          description: >
            The deployed NFV-MANO functional entity components which realize the 
            NFV-MANO functional entity. See note 5.
          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. See note 1 and not 4.
          $ref: "#/components/schemas/NfvoSpecificInfo"
        vnfmSpecificInfo:
          description: >
            The information specific to a VNFM entity. See note 2 and not 4.
          $ref: "#/components/schemas/VnfmSpecificInfo"
        vimSpecificInfo:
          description: >
            The information specific to an VIM entity. See note 3 and not 4.
          $ref: "#/components/schemas/VimSpecificInfo"
        wimSpecificInfo:
          description: >
Sana Zulfiqar's avatar
Sana Zulfiqar committed
            The information specific to a WIM entity. See notes 4 and note 6.
Sana Zulfiqar's avatar
Sana Zulfiqar committed
          $ref: "#/components/schemas/WimSpecificInfo"
        _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.
        * NOTE:	At least one of these attributes shall be provided if requesting a modification
                of the NFV-MANO service identified by "id".
      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.
            The following provisions shall apply when modifying an attribute that is an array of structured
            "manoServiceModifications".
            Assumptions:
              A)	"oldList" is the array to be modified, "newList" is the array that contains the changes.
              B)	"oldEntry" is an entry in "oldList" and "newEntry" is an entry in "newList".
              C)	A "newEntry" has a "corresponding entry" if there exists an "oldEntry" that has the same
                    content of "id" attribute as the "newEntry".
              D)	In any array of objects, the content of "id" is unique (i.e. there are no two entries
                    with the same content of "id").
            Provisions:
              1)	For each "newEntry" in "newList" that has a corresponding "oldEntry" in "oldList", the values of
                    the sub-attributes of "oldEntry" shall be replaced by the value of the sub-attributes in the "newEntry".
              2)	If the "newEntry" in "newList" has no corresponding "oldEntry" in "oldList" (i.e. the "id" is
                    not found), the modification operation will fail as a whole and an error message shall be raised.
          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". See note.
                type: string
              description:
                description: >
                  New value for the "description" attribute in the "ManoService". See note.

    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.