NFVManoConfigurationAndInformationManagement.yaml 160 KB
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:
  description: ETSI GS NFV-SOL 009 V0.8.0
  url: https://docbox.etsi.org/ISG/NFV/Open/Drafts/SOL009ed331_MANO_mgmt_stage_3/NFV-SOL009ed331v080.zip

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:

  /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}:
    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:
    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/CreateSubscriptionRequest"
      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}:
    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}:
    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}:
    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.
              $ref: "#/components/schemas/OperationalStateEnumType"
            administrativeState:
              description: >
                The administrative state of the NFV-MANO functional entity application.
              $ref: "#/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: >
            New content of certain entries in the "clockSyncs" attribute array in 
            the "ManoEntityConfigurableParams", as defined below this table. 
          type: array
          items:
            $ref: "#/components/schemas/ClockSyncInfo"
        clockSyncsDeleteIds:
          description: >
            List of identifiers entries to be deleted from the "clockSyncs" 
            attribute array in the "ManoEntityConfigurableParams", as defined 
            below this table.
          type: array
          items:
            $ref: "../components/SOL009_schemas.yaml#/components/schemas/Identifier"
        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
          items:
            $ref: "#/components/schemas/ClockSyncInfo"
        clockSyncsDeleteIds: 
          description: >
            If present, this attribute signals modifications of certain entries in 
            "clockSyncs" attribute in "ManoEntityConfigurableParams", as defined 
            in clause 5.6.2.3.
          type: array
          items:
            $ref: "../components/SOL009_schemas.yaml#/components/schemas/Identifier"
        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

    InformationChangedNotification:
      description: >
        This type represents a notification that is sent when data about 
        configuration and information of the NFV-MANO functional entity 
        have been changed. 
      type: object
      properties:
        id:
          description: >
            Identifier of this notification. If a notification is sent multiple 
            times due to multiple subscriptions, the "id" attribute of all these
            notifications shall have the same value.
          $ref: "../components/SOL009_schemas.yaml#/components/schemas/Identifier"
        notificationType:
          description: >
            Discriminator for the different notification types. Shall be set to 
            "InformationChangedNotification" for this notification type.
          type: string
        subscriptionId:
          description: >
            Identifier of the subscription that this notification relates to.
          $ref: "../components/SOL009_schemas.yaml#/components/schemas/Identifier"
        timeStamp:
          description: >
            Date and time of the generation of the notification.
          $ref: "../components/SOL009_schemas.yaml#/components/schemas/DateTime"
        informationChangedTime:
          description: >
            Timestamp indicating when the information was changed.
          $ref: "../components/SOL009_schemas.yaml#/components/schemas/DateTime"
        manoEntityId:
          description: >
            Identifier of the MANO entity of which the information was changed.
          $ref: "../components/SOL009_schemas.yaml#/components/schemas/Identifier"
        changedInfo:
          description: >
            Data about the changed configuration and information of the NFV-MANO 
            functional entity.
          $ref: "../components/SOL009_schemas.yaml#/components/schemas/KeyValuePairs"
        _links:
          description: >
            Links to resources related to this notification.
          type: object
          properties:
            self:
              description: >
                Link to the related subscription.
              $ref: "../components/SOL009_schemas.yaml#/components/schemas/NotificationLink"
            subscription:
              description: >
                Link to the related subscription.
              $ref: "../components/SOL009_schemas.yaml#/components/schemas/NotificationLink"
          required:
            - self
      required:
        - id
        - notificationType
        - subscriptionId
        - timeStamp
        - informationChangedTime
        - manoEntityId
        - changedInfo
        - _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".
          $ref: "#/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

    ChangeStateNotification:
      description: >
        This type represents a Change state operation occurrence. 
      type: object
      properties:
        id:
          description: >
            Identifier of this notification. If a notification is sent multiple times 
            due to multiple subscriptions, the "id" attribute of all these notifications 
            shall have the same value.
          $ref: "../components/SOL009_schemas.yaml#/components/schemas/Identifier"
        notificationType:
          description: >
            Discriminator for the different notification types. Shall be set to 
            "ChangeStateNotification" for this notification type.
          type: string
        subscriptionId:
          description: >
            Identifier of the subscription that this notification relates to.
          $ref: "../components/SOL009_schemas.yaml#/components/schemas/Identifier"
        timestamp:
          description: >
            Date-time of the generation of the notification.
          $ref: "../components/SOL009_schemas.yaml#/components/schemas/DateTime"
        changeStateOpOccId:
          description: >
            Identifier of the change state operation occurrence associated to the 
            notification.