NFVManoConfigurationAndInformationManagement.yaml 154 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:
Giacomo Bernini's avatar
Giacomo Bernini committed
  description: ETSI GS NFV-SOL 009 V3.3.1
  url: https://www.etsi.org/deliver/etsi_gs/NFV-SOL/001_099/009/03.03.01_60/gs_NFV-SOL009v030301p.pdf

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

                This attribute can be modified with the PATCH method.
              $ref: "../components/SOL009_schemas.yaml#/components/schemas/Uri"
            apiName:
              description: >
                Indicates the interface name in an abbreviated form. Shall be present 
                for ETSI NFV specified RESTful NFV-MANO APIs. The {apiName} of each 
                interface is defined in the standard the interface is compliant to 
                (see also clause 4.1 of ETSI GS NFV-SOL 013). May be present otherwise.
              type: string
            apiMajorVersion:
              description: >
                Indicates the current major version of the API. Shall be present for 
                ETSI NFV specified RESTful NFV-MANO APIs. The major version is defined 
                in the standard the interface is compliant to (see also clause 4.1 of 
                ETSI GS NFV-SOL 013). May be present otherwise.
              type: string
            apiUri:
              description: >
                URL of the API endpoint. For ETSI NFV specified RESTful NFV-MANO APIs, 
                the following prefix structure is used (see also clause 4.1 of ETSI 
                GS NFV-SOL 013): {apiRoot}/{apiName}/{apiMajorVersion}
                For APIs not specified by ETSI NFV as part of the RESTful NFV-MANO APIs, 
                this attribute can be modified with the PATCH method. For RESTful NFV-MANO 
                APIs specified by ETSI NFV, this attribute shall not be modified. Instead, 
                changes are handled indirectly via patching of the "apiRoot" attribute’s 
                value.
              $ref: "../components/SOL009_schemas.yaml#/components/schemas/Uri"
          required:
            - apiUri
        maxConcurrentIntOpNumber:
          description: >
            Maximum number of concurrent operation requests supported on this interface. 
            
            NOTE:	If this attribute is not present, the value of this parameter 
            is undefined. Overload is handled by the error handling schemes defined 
            by the applicable API specification.
          type: integer
        supportedOperations:
          description: >
            Information about supported operations of this interface.
          type: array
          items:
            type: object
            properties:
              operationName:
                description: >
                  Name of the operation supported on the interface.
                type: string
              maxConcurrentOpNumber:
                description: >
                  Maximum number of concurrent requests supported by the interface operation. 
                  
                  NOTE:	If this attribute is not present, the value of this parameter 
                  is undefined. Overload is handled by the error handling schemes defined 
                  by the applicable API specification.
                type: integer
            required:
              - operationName
          minItems: 1
        interfaceState:
          description: >
            State of the NFV-MANO service interface.
          properties:
            operationalState:
              description: >
                The operational state of the NFV-MANO service interface.
              $ref: "#/components/schemas/InterfaceOperationalStateEnumType"
            administrativeState:
              description: >
                The administrative state of the NFV-MANO service interface.
Giacomo Bernini's avatar
Giacomo Bernini committed
              $ref: "../components/SOL009_schemas.yaml#/components/schemas/AdministrativeStateEnumType"
            usageState:
              description: >
                The usage state of the NFV-MANO service interface.
              $ref: "#/components/schemas/UsageStateEnumType"
          required:
            - operationalState
            - administrativeState
            - usageState
        securityInfo:
          description: >
            Security related information.
            This attribute can be modified with the PATCH method. 
            
            NOTE:	Due to the security sensitive information associated to the attribute, 
            based on access control policies, the API consumer might have read only, 
            write only, read/write, or no access at all to the attribute’s value. 
            In case the API consumer is not allowed to read the value of the security 
            sensitive attribute, the attribute shall be omitted when the information 
            is to be provided in a response message, and shall be provided otherwise. 
            In case the API consumer is not allowed to modify the value of the security 
            sensitive attribute, and the modification request includes new attribute 
            values, the whole modification request shall be rejected, and proper error 
            information returned.
          $ref: "#/components/schemas/ServerInterfaceSecurityInfo"
        metadata:
          description: >
            Additional attributes that provide metadata describing the NFV-MANO 
            service interface.
            These attributes can be created, modified or removed with the PATCH 
            method.
          $ref: "../components/SOL009_schemas.yaml#/components/schemas/KeyValuePairs"
      required:
        - id
        - name
        - type
        - standardVersion
        - providerSpecificApiVersion
        - apiVersion
        - apiEndpoint
        - supportedOperations
        - interfaceState

    ManoServiceInterfaceModificationRequest:
      description: >
        This type represents attribute modifications for configuration parameters of 
        an NFV-MANO service interface of the producer NFV-MANO functional entity. 
      type: object
      properties:
        name:
          description: >
            New value of the "name" attribute in "ManoServiceInterface". 
            
            NOTE:	Changing the name does not change the corresponding standardized 
            API name in the resource URI (refer to "{apiName}" defined in clause 4.1 
            of ETSI GS NFV-SOL 013).
          type: string
        apiRoot:
          description: >
            New value of the "apiRoot" attribute in "ManoServiceInterface". 
            
            NOTE:	The change of apiRoot or apiUri on an enabled and in use API may 
            be service disruptive. Also, that change invalidates any related URI that 
            might have been cached at API consumers.
          $ref: "../components/SOL009_schemas.yaml#/components/schemas/Uri"
        apiUri:
          description: >
            New value of the "apiUri" attribute in "ManoServiceInterface". 
            
            NOTE:	The change of apiRoot or apiUri on an enabled and in use API may 
            be service disruptive. Also, that change invalidates any related URI that 
            might have been cached at API consumers.
            
            Shall not be provided if a change of "apiRoot" is present in the request.
          $ref: "../components/SOL009_schemas.yaml#/components/schemas/Uri"
        securityInfo:
          description: >
            New value of the "securityInfo" attribute in "ManoServiceInterface".
            
            NOTE:	Due to the security sensitive information associated to the attribute, 
            based on access control policies, the API consumer might have read only, 
            write only, read/write, or no access at all to the attribute’s value. 
            In case the API consumer is not allowed to modify the value of the security 
            sensitive attribute, and the modification request includes new attribute 
            values, the whole modification request shall be rejected, and proper error 
            information returned.
          $ref: "#/components/schemas/ServerInterfaceSecurityInfo"
        metadata:
          description: >
            Modifications of the "metadata" attribute in "ManoServiceInterface". 
            If present, these modifications shall be applied according to the rules 
            of JSON Merge PATCH (see IETF RFC 7396).
          $ref: "../components/SOL009_schemas.yaml#/components/schemas/KeyValuePairs"
    ManoServiceInterfaceModifications:
      description: >
        This type represents attribute modifications that were performed on an 
        Individual NFV-MANO service interface" resource. The attributes that can 
        be included consist of those requested to be modified explicitly in the 
        "ManoServiceInterfaceModificationRequest" data structure. If applicable, 
        additional attributes of the "ManoServiceInterface" data structure that 
        were modified implicitly shall also be provided. 
      type: object
      properties:
        name:
          description: >
            If present, this attribute signals modifications of the "name" attribute in 
            "ManoServiceInterface", as defined in clause 5.6.2.11.
          type: string
        apiRoot:
          description: >
            If present, this attribute signals modifications of the "apiRoot" attribute 
            in "ManoServiceInterface", as defined in clause 5.6.2.11.
          $ref: "../components/SOL009_schemas.yaml#/components/schemas/Uri"
        apiUri:
          description: >
            If present, this attribute signals modifications of the "apiUri" attribute 
            in "ManoServiceInterface", as defined in clause 5.6.2.11.
          $ref: "../components/SOL009_schemas.yaml#/components/schemas/Uri"
        securityInfo:
          description: >
            If present, this attribute signals modifications of the "securityInfo" 
            attribute in "ManoServiceInterface", as defined in clause 5.6.2.11. 
            
            NOTE:	Due to the security sensitive information associated to the attribute, 
            based on access control policies, the API consumer might have read only, 
            write only, read/write, or no access at all to the attribute’s value. 
            In case the API consumer is not allowed to read the value of the security 
            sensitive attribute, the attribute shall be omitted when the information 
            is to be provided in a response message.
          $ref: "#/components/schemas/ServerInterfaceSecurityInfo"
        metadata:
          description: >
            If present, this attribute signals modifications of the "metadata" attribute 
            in "ManoServiceInterface", as defined in clause 5.6.2.11.
          $ref: "../components/SOL009_schemas.yaml#/components/schemas/KeyValuePairs"

    CreatePeerEntityRequest:
      description: >
        This type represents request parameters for the creation of a new peer entity resource. 
      type: object
      properties:
        peerEntityId:
          description: >
            Identifier of the peer functional entity. 
            
            NOTE:	The value of the "peerEntityId" attribute is the same as the value of 
            the "id" attribute in the "ManoEntity" of the corresponding NFV-MANO functional 
            entity that acts as peer entity, and shall follow the uniqueness requirements 
            set out in clause 5.6.2.2 for the "id" attribute.
          $ref: "../components/SOL009_schemas.yaml#/components/schemas/Identifier" 
        name:
          description: >
            Human-readable name of the peer functional entity.
          type: string
        type:
          description: >
            Type of the peer functional entity.
          $ref: "#/components/schemas/PeerEntityEnumType" 
        description:
          description: >
            Human-readable description of the peer functional entity.
          type: string
        consumedManoInterfaces:
          description: >
            Initial information of the interface consumed by the NFV-MANO functional entity
            from the peer functional entity.
          type: object
          additionalProperties:
            $ref: "#/components/schemas/ConsumedManoInterfaceInfo"
        peerEntityState:
          description: >
            Current values of the state of the peer functional entity.
          type: object
          properties:
            operationalState:
              description: >
                TThe operation state of the peer functional entity’s application.
Giacomo Bernini's avatar
Giacomo Bernini committed
              $ref: "../components/SOL009_schemas.yaml#/components/schemas/OperationalStateEnumType"
            administrativeState:
              description: >
                The administrative state of the peer functional entity’s application.
Giacomo Bernini's avatar
Giacomo Bernini committed
              $ref: "../components/SOL009_schemas.yaml#/components/schemas/AdministrativeStateEnumType"
          required:
            - operationalState
            - administrativeState
      required:
        - peerEntityId
        - name
        - type

    PeerEntity:
      description: >
        This type represents an individual peer entity. 
      type: object
      properties:
        id:
          description: >
            Identifier of the resource representing the peer functional entity. 
            This identifier is allocated by the producer NFV-MANO functional entity.
          $ref: "../components/SOL009_schemas.yaml#/components/schemas/Identifier" 
        peerEntityId:
          description: >
            Identifier of the peer functional entity. 
            
            NOTE :	The value of the "peerEntityId" attribute is the same as the value 
            of the "id" attribute in the "ManoEntity" of the corresponding NFV-MANO 
            functional entity that acts as peer entity, and shall follow the uniqueness 
            requirements set out in clause 5.6.2.2 for the "id" attribute.
          $ref: "../components/SOL009_schemas.yaml#/components/schemas/Identifier" 
        name:
          description: >
            Human-readable name of the peer functional entity.
            This attribute can be modified with the PATCH method.
          type: string
        type:
          description: >
            Type of the peer functional entity.
          $ref: "#/components/schemas/PeerEntityEnumType" 
        description:
          description: >
            Human-readable description of the peer functional entity.

            This attribute can be modified with the PATCH method.
          type: string
        consumedManoInterfaces:
          description: >
            Information of the interface consumed by the NFV-MANO functional entity 
            from the peer functional entity.

            This attribute can be modified with the PATCH method.

            The keys of the map, each of which identifies information about a particular
            consumed NFV-MANO interface, are managed by the API consumer and referenced
            from other data structures via the "consumedManoInterfaceIds" attribute.
          type: object
          additionalProperties:
            $ref: "#/components/schemas/ConsumedManoInterfaceInfo" 
        peerEntityState:
          description: >
            State of the peer functional entity as provided by the API consumer when 
            creating the resource or when updating it with the PATCH method.
          type: object
          properties:
            operationalState:
              description: >
                The operational state of the peer functional entity’s application.
Giacomo Bernini's avatar
Giacomo Bernini committed
              $ref: "../components/SOL009_schemas.yaml#/components/schemas/OperationalStateEnumType"
            administrativeState:
              description: 
                The administrative state of the peer functional entity’s application.
Giacomo Bernini's avatar
Giacomo Bernini committed
              $ref: "../components/SOL009_schemas.yaml#/components/schemas/AdministrativeStateEnumType"
          required:
            - operationalState
            - administrativeState
      required:
        - id
        - peerEntityId
        - name
        - type
        - peerEntityState

    PeerEntityConfigModificationRequest:
      description: >
        This type represents attribute modifications for configuration parameters 
        of a peer entity. 
      type: object
      properties:
        name:
          description: >
            New value of the "name" attribute in "PeerEntity".
          type: string
        description:
          description: >
            New value of the "description" attribute in "PeerEntity", or "null" to 
            remove the attribute.
          type: string
        consumedManoInterfaces:
          description: >
            Modification of the "consumedManoInterfaces" attribute
            in the "PeerEntity", as defined below this table.

            If present, these modifications shall be applied according to the rules of
            JSON Merge PATCH (see IETF RFC 7396).
            
            NOTE:	Due to the security sensitive information contained within the attribute 
            (refer to "securityInfo" within the "ConsumedManoInterfaceInfo"), based on 
            access control policies, the API consumer might have read only, write only, 
            read/write, or no access at all to the attribute’s value. In case the 
            API consumer is not allowed to modify the value of the security sensitive 
            attribute, and the modification request includes new attribute values, 
            the whole modification request shall be rejected, and proper error information 
            returned.
            $ref: "#/components/schemas/ConsumedManoInterfaceInfo"
        operationalState:
          description: >
            New content of the "operationalState" attribute in the "peerEntityState" 
            structure in the "PeerEntity".
Giacomo Bernini's avatar
Giacomo Bernini committed
          $ref: "../components/SOL009_schemas.yaml#/components/schemas/OperationalStateEnumType"
        administrativeState:
          description: >
            New content of the "administrativeState" attribute in the "peerEntityState" 
            structure in the "PeerEntity".
Giacomo Bernini's avatar
Giacomo Bernini committed
          $ref: "../components/SOL009_schemas.yaml#/components/schemas/AdministrativeStateEnumType"

    PeerEntityConfigModifications:
      description: >
        This type represents attribute modifications that were performed on an 
        "Individual peer entity" resource. The attributes that can be included 
        consist of those requested to be modified explicitly in the 
        "PeerEntityConfigModificationRequest" data structure. If applicable, 
        additional attributes of the "PeerEntity" data structure that were 
        modified implicitly shall also be provided.
      type: object
      properties:
        name:
          description: >
            If present, this attribute signals modifications of the "name" attribute 
            in "PeerEntity", as defined in clause 5.6.2.15.
          type: string
        description:
          description: >
            If present, this attribute signals modifications of the "description" 
            attribute in "PeerEntity", as defined in clause 5.6.2.15.
          type: string
        consumedManoInterfaces:
          description: >
            If present, this attribute signals modifications of certain entries in 
            "consumedManoInterfaces" attribute in "PeerEntity", as defined in 
            clause 5.6.2.15. 
            
            NOTE:	Due to the security sensitive information contained within the 
            attribute (refer to "securityInfo" within the "ConsumedManoInterfaceInfo"), 
            based on access control policies, the API consumer might have read only, 
            write only, read/write, or no access at all to the attribute’s value. 
            In case the API consumer is not allowed to read the value of the security 
            sensitive attribute, the attribute shall be omitted when the information 
            is to be provided in a response message.
          type: array
          items:
            $ref: "#/components/schemas/ConsumedManoInterfaceInfo"
        operationalState:
          description: >
            If present, this attribute signals modifications of the "operationalState" 
            attribute in the "peerEntityState" structure in the "PeerEntity", as defined 
            in clause 5.6.2.15.
Giacomo Bernini's avatar
Giacomo Bernini committed
          $ref: "../components/SOL009_schemas.yaml#/components/schemas/OperationalStateEnumType"
        administrativeState:
          description: >
            If present, this attribute signals modifications of the "administrativeState" 
            attribute in the "peerEntityState" structure in the "PeerEntity", as defined 
            in clause 5.6.2.15. 
Giacomo Bernini's avatar
Giacomo Bernini committed
          $ref: "../components/SOL009_schemas.yaml#/components/schemas/AdministrativeStateEnumType"
    ManoConfigurableParams:
      description: >
        # Warning: No definition found in the document
        ManoConfigurableParams

    #referenced
    ManoEntityComponent:
      description: >
        This type represents information of a deployed component realizing part of an 
        NFV-MANO functional entity. It is optional for the API producer to support 
        this type. 
      type: object
      properties:
          id:
            description: >
              Identifier of the NFV-MANO functional entity component.
            $ref: "../components/SOL009_schemas.yaml#/components/schemas/IdentifierInManoEntity"
          manoServiceIds:
            description: >
              References to the NFV-MANO services that depend on the NFV-MANO functional 
              entity component. The identifier of the ManoService is referred. A service 
              may depend on multiple components. Multiple services may depend on the same 
              component.
            type: array
            items:
              $ref: "../components/SOL009_schemas.yaml#/components/schemas/IdentifierInManoEntity"

    ManoService:
      description: >
        This type represents information about an NFV-MANO service provided by the 
        NFV-MANO functional entity.
      type: object
      properties:
        id:
          description: >
            Identifier of the NFV-MANO service.
          $ref: "../components/SOL009_schemas.yaml#/components/schemas/IdentifierInManoEntity"
        name:
          description: >
            Human-readable name of the NFV-MANO service.
            This attribute can be modified with the PATCH method.
          type: string
        description:
          description: >
            Human-readable description of the NFV-MANO service.

            This attribute can be modified with the PATCH method.
          type: string     
        manoServiceInterfaceIds:
          description: >
            Reference to the NFV-MANO interfaces associated to the NFV-MANO service. 
            If cardinality is greater than one, the type of ManoServiceInterface 
            (see clause 5.6.3.3) shall be the same. The identifier of the 
            ManoServiceInterface is referred. 

            NOTE:	A cardinality greater than one supports having different interface 
            versions or apiEndpoints to be used for accessing the same instance of a 
            NFV-MANO service.
          type: array
          items:
            $ref: "../components/SOL009_schemas.yaml#/components/schemas/IdentifierInManoEntity"
          minItems: 1       
        _links:
          description: >
            Links to resources related to this resource.
          type: object
          properties:
            manoServiceInterfaces:
              description: >
                Link to the "individual NFV-MANO service interface" resources with 
                information about the associated interfaces to the NFV-MANO service.
              type: array
              items:
                $ref: "../components/SOL009_schemas.yaml#/components/schemas/Link"
              minItems: 1
          required:
            - manoServiceInterfaces
      required:
        - id
        - name
        - description
        - manoServiceInterfaceIds
        - _links

    NfvoSpecificInfo:
      description: >
        This type represents information attributes specific to an NFVO entity, 
        and that can be relevant to more than one NFV-MANO service offered by an 
        NFVO entity. 
      type: object
      properties:
        maxOnboardedNsdNum:
          description: >
            Maximum number of NSDs that can be on-boarded on the NFVO. 
            
            NOTE: If this attribute is not present, the value of this parameter 
            is undefined.
          type: integer
        maxOnboardedVnfPkgNum:
          description: >
            Maximum number of VNF Packages that can be on-boarded on the NFVO. 
            NOTE: If this attribute is not present, the value of this parameter 
            is undefined.
          type: integer
        supportedVnfdFormats:
          description: >
            Supported VNFD data formats.
          type: object
          properties:
            vnfdFormat:
              description: >
                Name of the VNFD format.

                Permitted values:
                  - TOSCA: The VNFD follows TOSCA definition, according to ETSI 
                  GS NFV-SOL 001 standard.
                  - YANG: The VNFD follows YANG definition according to ETSI 
                  GS NFV-SOL 006 standard.
              type: string
              enum:
                - TOSCA
                - YANG
            standardVersion:
              description: >
                Name and version of the standard the VNFD is compliant to. 
                
                NOTE: The information to be provided in this attribute shall relate 
                to the specification and version of the specification. For instance, 
                "ETSI GS NFV-SOL 001 (V2.5.1)".
              $ref: "../components/SOL009_schemas.yaml#/components/schemas/Version"
          required:
            - vnfdFormat
            - standardVersion
        supportedNsdFormats:
          description: >
            Supported NSD data formats.
          type: object
          properties:
            nsdFormat:
              description: >
                Name of the NSD format.

                Permitted values:
                  - TOSCA: The VNFD follows TOSCA definition, according to ETSI 
                  GS NFV-SOL 001 standard.
                  - YANG: The VNFD follows YANG definition according to ETSI 
                  GS NFV-SOL 006 standard.
              type: string
              enum:
                - TOSCA
                - YANG
            standardVersion:
              description: >
                Name and version of the standard the NSD is compliant to. 
                
                NOTE: The information to be provided in this attribute shall relate 
                to the specification and version of the specification. For instance, 
                "ETSI GS NFV-SOL 001 (V2.5.1)".
              $ref: "../components/SOL009_schemas.yaml#/components/schemas/Version"
          required:
            - nsdFormat
            - standardVersion
      required:
        - supportedVnfdFormats
        - supportedNsdFormats
        
    VnfmSpecificInfo:
      description: >
        This type represents information attributes specific to a VNFM entity, 
        and that can be relevant to more than one NFV-MANO service offered by 
        a VNFM entity.
      type: object
      properties:
        resoruceMgmtModeSupport:
          description: >
            The supported resource management modes of the VNFM.
            Permitted values:
              - DIRECT: The VNFM supports direct mode only.
              - INDIRECT: The VNFM supports indirect mode only.
              - BOTH: The VNFM supports both direct and indirect mode.
          type: string
          enum:
            - DIRECT
            - INDIRECT
            - BOTH
        managedVnfInstanceInfos:
          description: >
            The kinds of VNF instances that can be managed, e.g. to determine the 
            compatibility of a VNF with certain VNFM according to the vnfmInfo 
            attribute in the VNFD (see table 7.1.2.2-1 in ETSI GS NFV-IFA 011).
          type: array
          items:
            type: string
          minItems: 1
        supportedVnfdFormats:
          description: >
            Supported VNFD data formats.
          type: array
          items:
            type: object
            properties:
              vnfdFormat:
                description: >
                  Name of the VNFD format.

                  Permitted values:
                    - TOSCA: The VNFD follows TOSCA definition, according to ETSI 
                    GS NFV-SOL 001 standard.
                    - YANG: The VNFD follows YANG definition according to ETSI 
                    GS NFV-SOL 006 standard.
                type: string
                enum:
                  - TOSCA
                  - YANG
              standardVersion:
                description: >
                  Name and version of the standard the VNFD is compliant to. 

                  NOTE: The information to be provided in this attribute shall relate 
                  to the specification and version of the specification. For instance, 
                  "ETSI GS NFV-SOL 001 (V2.5.1)".
                $ref: "../components/SOL009_schemas.yaml#/components/schemas/Version"
            required:
              - vnfdFormat
              - standardVersion
          minItems: 1
      required:
        - resoruceMgmtModeSupport
        - managedVnfInstanceInfos
        - supportedVnfdFormats

    VimSpecificInfo:
      description: >
        This type represents information attributes specific to a VIM entity, 
        and that can be relevant to more than one NFV-MANO service offered by 
        a VIM entity.
      type: object
        
    ManoEntityConfigurableParams:
      description: >
        This type represents list of parameters that can be configured on the 
        NFV MANO functional entity. 
      type: object
      properties:
        clockSyncs:
          description: 
            Properties of the clock synchronization to be used by the NFV-MANO 
            functional entity.
          type: array
          items:
            $ref: "#/components/schemas/ClockSyncInfo"
          minItems: 1
        defaultLogCompileBySizeValue:
          description: 
            Default value for the log compilation by size to be used.
          $ref: "../components/SOL009_schemas.yaml#/components/schemas/UnsignedInt"
        defaultLogCompileByTimerValue:
          description: 
            Default value for the log compilation by timer to be used.
          $ref: "../components/SOL009_schemas.yaml#/components/schemas/UnsignedInt"
      required:
        - clockSyncs
        - defaultLogCompileBySizeValue
        - defaultLogCompileByTimerValue
        
    ConsumedManoInterfaceInfo:
      description: >
        This type represents an interface consumed by the producer NFV MANO 
        functional entity from another peer functional entity. 
      type: object
      properties:
        id:
          description: >
            Identifier of the consumed NFV-MANO interface. This identifier is
            managed by the API consumer.
          $ref: "../components/SOL009_schemas.yaml#/components/schemas/Identifier"
        name:
          description: >
            Human-readable name of the NFV-MANO interface.
          type: string
        type:
          description: >
            Type of the NFV-MANO service interface consumed by the NFV-MANO 
            functional entity. Valid values are defined in clause 5.6.4.3.
          type: string
        standardVersion:
          description: >
            Version of the standard the interface is compliant to.
            
            NOTE: The information to be provided in this attribute shall relate 
            to the specification and its version. For instance, 
            "ETSI GS NFV-SOL 003 (V2.4.1)".
          $ref: "../components/SOL009_schemas.yaml#/components/schemas/Version"
        apiVersion:
          description: >
            API version, in compliance with the version identifiers and parameters 
            format specified in clause 9.1 of ETSI GS NFV-SOL 013.
          $ref: "../components/SOL009_schemas.yaml#/components/schemas/Version"
        apiEndpoint:
          description: >
            Consumable API endpoint of the interface.
            It provides the information relevant about the protocol, host and port, 
            and path where the interface API can be accessed.
          type: object
          properties:
            apiRoot:
              description: >
                Indicates the scheme ("http" or "https"), the host name and optional 
                port, and an optional sequence of path segments that together 
                represent a prefix path. Shall be present for ETSI NFV specified 
                RESTful NFV-MANO APIs (see also clause 4.1 of ETSI GS NFV-SOL 013). 
                May be present otherwise.
              $ref: "../components/SOL009_schemas.yaml#/components/schemas/Uri" 
            apiName:
              description: >
                Indicates the interface name in an abbreviated form. Shall be present 
                for ETSI NFV specified RESTful NFV-MANO APIs. The {apiName} of each 
                interface is defined in the standard the interface is compliant to 
                (see also clause 4.1 of ETSI GS NFV-SOL 013). May be present otherwise.
              type: string
            apiMajorVersion:
              description: >
                Indicates the current major version of the API. Shall be present for 
                ETSI NFV specified RESTful NFV-MANO APIs. The major version is defined 
                in the standard the interface is compliant to (see also clause 4.1 
                of ETSI GS NFV-SOL 013). May be present otherwise.
              type: string 
            apiUri:
              description: >
                URL of the API endpoint. For ETSI NFV specified RESTful NFV-MANO APIs, 
                the following prefix structure is used (see also clause 4.1 of ETSI 
                GS NFV-SOL 013): {apiRoot}/{apiName}/{apiMajorVersion}
              $ref: "../components/SOL009_schemas.yaml#/components/schemas/Uri" 
          required:
            - apiUri
        securityInfo:
          description: >
            Security related information including credentials information if needed 
            for consuming the API.

            NOTE: Due to the security sensitive information associated to the attribute, 
            based on access control policies, the API consumer might have read only, 
            write only, read/write, or no access at all to the attribute’s value. 
            In case the API consumer is not allowed to read the value of the security 
            sensitive attribute, the attribute shall be omitted when the information 
            is to be provided in a response message, and shall be provided otherwise. 
            In case the API consumer is not allowed to modify the value of the security 
            sensitive attribute, and the modification request includes new attribute values, 
            the whole modification request shall be rejected, and proper error information 
            returned.
          $ref: "#/components/schemas/ClientInterfaceSecurityInfo"
      required:
        - id
        - name
        - type
        - standardVersion
        - apiVersion
        - apiEndpoint
        
    CimNotificationsFilter:
      description: >
        This type represents a subscription filter related to notifications 
        about NFV-MANO configuration and information management. 
      type: object
      properties:
        manoEntitySubscriptionFilter:
          description: >
            Filter criteria to select the NFV-MANO functional entity and its 
            associated managed objects.
          $ref: "../components/SOL009_schemas.yaml#/components/schemas/ManoEntitySubscriptionFilter"
        notificationTypes:
          description: >
            Match particular notification types. 
            Permitted values:
              - InformationChangedNotification
              - ChangeStateNotification

            NOTE:	The permitted values of the "notificationTypes" attribute are 
            spelled exactly as the names of the notification types to facilitate 
            automated code generation systems.
          type: array
          items:
            type: string
            enum:
              - InformationChangedNotification
              - ChangeStateNotification

    ClockSyncInfo:
      description: >
        This type represents parameters for connecting to an NTP server. 
      type: object
      properties:
        type:
          description: >
            Type of clock synchronization.
            Permitted values:
              - NTP: For Network Time Protocol (NTP) based clock synchronization.
              - OTHER: For other types of clock synchronization.
          type: string
          enum:
            - NTP
            - OTHER
        ntpServerInfo:
          description: >
            Information for the NTP based clock synchronization. 
            Shall be present if type = "NTP".
          type: object
          properties:
            ipAddress:
              description: >
                0..1	IP address of the NTP server. 
                
                NOTE:	Either ipAddress or hostname shall be set, but not both 
                at the same time.
              $ref: "../components/SOL009_schemas.yaml#/components/schemas/IpAddress"
            hostname:
              description: >
                Indicates the hostname of the NTP server. 
                
                NOTE:	Either ipAddress or hostname shall be set, but not both 
                at the same time.
              type: string
        otherClockSyncParams:
          description: >
            Information for the other types of clock synchronization. 
            May be present if type = "OTHER".
          $ref: "../components/SOL009_schemas.yaml#/components/schemas/KeyValuePairs"
        
    ServerInterfaceSecurityInfo:
      description: >
        This type represents security related information of an NFV-MANO 
        service interface produced by an NFV-MANO functional entity. 
      type: object
      properties:
        authType:
          description: >
            Type of API request authorization to be used by the API producer.
            The support of authorization methods for the API producer is specified 
            in clause 8.3.6 of ETSI GS NFV-SOL 013.
            Permitted values:
              - TLS_TUNNEL: Using TLS tunnel, as defined by TLS 1.2 in IETF RFC 5246.
              - OAUTH2: Using access token, as defined by the OAuth 2.0 specification 
              in IETF RFC 6749. 
          type: array
          items:
            type: string
            enum:
              - TLS_TUNNEL
              - OAUTH2
          minItems: 1
        oauthServerInfo:
          description: >
            OAuth 2.0 authorization server information and configuration.
          type: object
          properties:
            dynamicDiscovery:
              description: >
                Configuration data used when performing dynamic discovery of 
                the authorization server identifier. 
                
                NOTE:	Provided configuration of the OAuth 2.0 authorization 
                server information and configuration shall be supported, and 
                dynamic configuration may be supported.
              type: object
              properties:
                webFingerHost:
                  description: >
                    Server where the WebFinger service is hosted. When used, 
                    the request to the WebFinger resource shall conform as specified 
                    in clause 5.1.3 of ETSI GS NFV-SEC 022.
                  $ref: "../components/SOL009_schemas.yaml#/components/schemas/Uri"
              required:
                - webFingerHost
            providedConfiguration:
              description: >
                Configuration data used to setup the authorization server identifier. 
                
                NOTE:	Provided configuration of the OAuth 2.0 authorization 
                server information and configuration shall be supported, and 
                dynamic configuration may be supported.
              type: object
              properties:
                authServerId:
                  description: >
                    Authorization server identifier as defined in ETSI GS NFV-SEC 022.
                  $ref: "../components/SOL009_schemas.yaml#/components/schemas/Uri"
              required:
                - authServerId
            tlsCipherSuites:
              description: >
                List of cipher suites that shall be declared as supported by the 
                API producer when performing the SSL or TLS negotiation with the 
                authorization server. Valid values of cipher suites are defined 
                in IETF RFC 8447.
              type: array
              items:
                type: string
              minItems: 1
          required:
            - providedConfiguration
            - tlsCipherSuites
        tlsTunnelInfo:
          description: >
            Information and configuration related to the use of TLS tunnel. 
            Shall be present if authType contains "TLS_TUNNEL".
          type: object
          properties:
            tlsTunnelCipherSuites:
              description: 
                List of cipher suites that shall be declared as supported by the API 
                producer when performing the SSL or TLS negotiation with the API client. 
                Valid values of cipher suites are defined in IETF RFC 8447.
              type: array
              items:
                type: string
              minItems: 1
          required:
            - tlsTunnelCipherSuites
      required:
        - authType
        - oauthServerInfo
        
    ClientInterfaceSecurityInfo:
      description: >
        This type represents security related information for accessing an NFV-MANO 
        service interface produced by an NFV-MANO functional entity.
      type: object
      required:
        - authType
        - oauthServerInfo
      properties:
        authType: 
          description: >
            Type of API request authorization to be used by the API consumer accessing 
            the API.

            The support of authorization methods for the API consumer is specified in 
            clause 8.3.6 of ETSI GS NFV-SOL 013.

            Permitted values:
            - TLS_TUNNEL: Using TLS tunnel, as defined by TLS 1.2 in IETF RFC 5246.
            - OAUTH2: Using access token, as defined by the OAuth 2.0 specification 
            in IETF RFC 6749. 
          type: array
          items:
            type: string
            enum:
              - TLS_TUNNEL
              - OAUTH2
          minItems: 1
        oauthServerInfo:
          description: >
            OAuth 2.0 authorization server information and configuration.
          type: object
          properties:
            dynamicDiscovery:
              description: >
                Configuration data used when performing dynamic discovery of the authorization 
                server identifier. 

                NOTE:	Provided configuration of the OAuth 2.0 authorization server information 
                and configuration shall be supported, and dynamic configuration may be supported.
              type: object
              required:
                - webFingerHost
              properties:
                webFingerHost:
                  description: >
                    Server where the WebFinger service is hosted. When used, the request to 
                    the WebFinger resource shall conform as specified in clause 5.1.3 of 
                    ETSI GS NFV-SEC 022.
                  type: string
                  format: uri
            providedConfiguration:
              description: >
                Configuration data used to setup the authorization server identifier. 

                NOTE:	Provided configuration of the OAuth 2.0 authorization server information 
                and configuration shall be supported, and dynamic configuration may be supported.
              type: object
              required:
                - authServerId
              properties:
                authServerId:
                  description: >
                    Authorization server identifier as defined in ETSI GS NFV-SEC 022.
                  type: string
                  format: uri
            tlsCipherSuites:
              description: >
                List of cipher suites that shall be declared as supported by the API consumer when 
                performing the SSL or TLS negotiation with the authorization server. Valid values 
                of cipher suites are defined in IETF RFC 8447.
              type: array
              items:
                type: string
                minItems: 1
        tlsTunnelInfo:
          description: >
            Information and configuration related to the use of TLS tunnel. Shall be 
            present if authType contains "TLS_TUNNEL".
          type: object
          properties:
            tlsTunnelCipherSuites:
              description: >
                List of cipher suites that shall be declared as supported by the API 
                consumer when performing the SSL or TLS negotiation with the API producer. 
                Valid values of cipher suites are defined in IETF RFC 8447.
              type: array
              items:
                type: string
                minItems: 1

    #referenced simple data types
    ManoServiceInterfaceTypeShortName:
      description: >
        For the RESTful NFV-MANO APIs, valid values are all values for "apiName" as defined 
        in ETSI GS NFV-SOL 002, ETSI GS NFV-SOL 003, and ETSI GS NFV-SOL 005.
        
        For the NFV-MANO service interfaces for which no API is specified by ETSI NFV, valid 
        values are defined in table 5.6.4.3-1.

        NOTE:	The table is expected to be updated, by removing the corresponding listed entries, 
        once the interfaces are specified as a RESTful NFV-MANO API. 
      type: string

    UsageStateEnumType:
      description: >
        The enumeration UsageStateEnumType defines values representing the usage 
        state of a managed entity. 
        The UsageStateEnumType shall comply with the provisions:
          - IN_USE	The managed entity is currently being used.
          - NOT_IN_USE	The managed entity is currently not being used.
      type: string
      enum:
        - IN_USE
        - NOT_IN_USE

    ChangeOperationalStateEnumType:
      description: >
        The enumeration ChangeOperationalStateEnumType defines permitted values 
        for the change state operation. 
        The ChangeOperationalStateEnumType shall comply with the provisions:
          - START	To start the managed entity.
          - STOP	To stop the managed entity.
          - RESTART	To stop and start again the managed entity.
      type: string
      enum:
        - START 
        - STOP
        - RESTART

    ChangeAdministrativeStateEnumType:
      description: >
        The enumeration ChangeAdministrativeStateEnumType defines permitted values 
        for the change of administrative state operation. 
        The ChangeAdministrativeStateEnumType shall comply with the provisions:
          - LOCK	To lock the managed entity.
          - UNLOCK	To unlock the managed entity.
      type: string
      enum:
        - LOCK
        - UNLOCK

    InterfaceOperationalStateEnumType:
      description: >
        The enumeration InterfaceOperationalStateEnumType defines values representing 
        the operational state of an NFV-MANO service interface type of managed entity. 
        The InterfaceOperationalStateEnumType shall comply with the provisions :
           - STARTED	The managed entity is operational.
           - STOPPED	The managed entity is not operational.
           - STOPPING	The managed entity is in the transition to stop.
           - STARTING	The managed entity is in the transition to start and become operational.
      type: string
      enum:
        - STARTED
        - STOPPED
        - STOPPING
        - STARTING

    StopEnumType:
      description: >
        The enumeration ChangeStateOpOccStateEnumType defines permitted values 
        for the change state operation. It shall comply with the provisions:
          - GRACEFUL	To stop the managed entity immediately after accepting the request.
          - FORCEFUL	To stop the managed entity attempting to gracefully discharge the entity from service.
      type: string
      enum:
        - GRACEFUL
        - FORCEFUL

    ManoEntityEnumType:
        The enumeration ManoEntityEnumType defines the permitted values to 
        represent NFV-MANO functional entities. It shall comply with 
        the provisions :
          - NFVO	The NFV-MANO functional entity is an NFVO.
          - VNFM	The NFV-MANO functional entity is a VNFM.
          - VIM	The NFV-MANO functional entity is a VIM.
      type: string
      enum:
        - NFVO
        - VNFM
        - VIM

    PeerEntityEnumType:
      description: >
        The enumeration PeerEntityEnumType defines the permitted values 
        to represent peer functional entities. it shall complains with 
        the provisions : 
        - NFVO	The peer functional entity is an NFVO.
        - VNFM	The peer functional entity is a VNFM.
        - VIM	  The peer functional entity is a VIM.
        - WIM	  The peer functional entity is a WIM.
        - EM	  The peer functional entity is an EM.
        - OSS	  The peer functional entity is an OSS/BSS.
      type: string
      enum:
        - NFVO
        - VNFM
        - VIM
        - WIM
        - EM
        - OSS

  parameters:
    filter.ManoServiceInterface:
      name: filter
      description: >
        Attribute-based filtering expression according to clause 5.2 of 
        ETSI GS NFV-SOL 013. 

        The NFV-MANO functional entity shall support receiving this parameter 
        as part of the URI query string. The API consumer may supply this 
        parameter. 

        All attribute names that appear in the ManoServiceInterface and in data 
        types referenced from it shall be supported by the NFV-MANO functional 
        entity in the expression. 
      in: query
      required: false
      schema:
        type: string
    filter.CimSubscription:
      name: filter
      description: >
        Attribute-based filtering expression according to clause 5.2 of 
        ETSI GS NFV-SOL 013. 

        The NFV-MANO functional entity shall support receiving this parameter 
        as part of the URI query string. The API consumer may supply this 
        parameter. 

        All attribute names that appear in the CimSubscription and in data 
        types referenced from it shall be supported by the NFV-MANO functional 
        entity in the expression. 
      in: query
      required: false
      schema:
        type: string
    filter.ChangeStateOpOcc:
      name: filter
      description: >
        Attribute-based filtering expression according to clause 5.2 of 
        ETSI GS NFV-SOL 013. 

        The NFV-MANO functional entity shall support receiving this parameter 
        as part of the URI query string. The API consumer may supply this 
        parameter. 

        All attribute names that appear in the ChangeStateOpOcc and in data 
        types referenced from it shall be supported by the NFV-MANO functional 
        entity in the expression. 
      in: query
      required: false
      schema:
        type: string
    filter.PeerEntity:
      name: filter
      description: >
        Attribute-based filtering expression according to clause 5.2 of 
        ETSI GS NFV-SOL 013. 

        The NFV-MANO functional entity shall support receiving this parameter 
        as part of the URI query string. The API consumer may supply this 
        parameter. 

        All attribute names that appear in the PeerEntity and in data 
        types referenced from it shall be supported by the NFV-MANO functional 
        entity in the expression. 
      in: query
      required: false
      schema:
        type: string

    exclude_default.ManoServiceInterface:
      name: exclude_default
      description: >
        Indicates to exclude the following complex attributes from the 
        response. See clause 5.3 of ETSI GS NFV-SOL 013 for details. 
        The NFV-MANO functional entity shall support this parameter.

        The following attributes shall be excluded from the ManoServiceInterface 
        structure in the response body if this parameter is provided, or none of 
        the parameters "all_fields," "fields", "exclude_fields", "exclude_default" 
        are provided:
        - none
      in: query
      required: false
      schema:
        type: string
    exclude_default.CimSubscription:
      name: exclude_default
      description: >
        Indicates to exclude the following complex attributes from the 
        response. See clause 5.3 of ETSI GS NFV-SOL 013 for details. 
        The NFV-MANO functional entity shall support this parameter.

        The following attributes shall be excluded from the CimSubscription 
        structure in the response body if this parameter is provided, or none of 
        the parameters "all_fields," "fields", "exclude_fields", "exclude_default" 
        are provided:
        - none
      in: query
      required: false
      schema:
        type: string
    exclude_default.ChangeStateOpOcc:
      name: exclude_default
      description: >
        Indicates to exclude the following complex attributes from the 
        response. See clause 5.3 of ETSI GS NFV-SOL 013 for details. 
        The NFV-MANO functional entity shall support this parameter.

        The following attributes shall be excluded from the ChangeStateOpOcc 
        structure in the response body if this parameter is provided, or none of 
        the parameters "all_fields," "fields", "exclude_fields", "exclude_default" 
        are provided:
        - none
      in: query
      required: false
      schema:
        type: string
    exclude_default.PeerEntity:
      name: exclude_default
      description: >
        Indicates to exclude the following complex attributes from the 
        response. See clause 5.3 of ETSI GS NFV-SOL 013 for details. 
        The NFV-MANO functional entity shall support this parameter.

        The following attributes shall be excluded from the PeerEntity 
        structure in the response body if this parameter is provided, or none of 
        the parameters "all_fields," "fields", "exclude_fields", "exclude_default" 
        are provided:
        - none
      in: query
      required: false
      schema:
        type: string

    manoServiceInterfaceId:
      name: manoServiceInterfaceId
      in: path
      description: >-
        Identifier of the MANO service interface.
      required: true
      schema:
        $ref: '../components/SOL009_schemas.yaml#/components/schemas/Identifier'

    subscriptionId:
      name: subscriptionId
      in: path
      description: >-
        Identifier of the subscription
      required: true
      schema:
        $ref: '../components/SOL009_schemas.yaml#/components/schemas/Identifier'

    changeStateOpOccId:
      name: changeStateOpOccId
      in: path
      description: >-
        Identifier of the change state operation occurrence
      required: true
      schema:
        $ref: '../components/SOL009_schemas.yaml#/components/schemas/Identifier'

    peerEntityId:
      name: peerEntityId
      in: path
      description: >-
        Identifier of the peer entity
      required: true
      schema:
        $ref: '../components/SOL009_schemas.yaml#/components/schemas/Identifier'

  requestBodies:
    ModifyManoEntityRequest:
      description: >
        Parameters for the NFV-MANO configuration and information 
        modification, as defined in clause 5.6.2.3.
        The Content-Type header shall be set to "application/merge-patch+json" 
        according to IETF RFC 7396.
      content:
        application/merge-patch+json:
          schema:
            $ref: "#/components/schemas/ManoConfigModificationRequest"
      required: true
    
    ChangeManoEntityStateRequest:
      description: >
        Parameters for the change state operation, as defined in clause 5.6.2.8.
      content:
        application/json:
          schema:
            $ref: "#/components/schemas/ChangeStateRequest"
      required: true
    
    ModifyManoEnityInterfaceRequest:
      description: >
        Parameters for the modification of configuration parameters of 
        the NFV-MANO service interface, as defined in clause 5.6.2.12.

        The Content-Type header shall be set to "application/merge-patch+json"
        according to IETF RFC 7396.
      content:
        application/merge-patch+json:
          schema:
            $ref: "#/components/schemas/ManoServiceInterfaceModificationRequest" 
      required: true
    
    ChangeManoEntityInterfaceStateRequest:
      description: >
        Parameters for the change state operation, as defined in 
        clause 5.6.2.8.
      content:
        application/json:
          schema:
            $ref: "#/components/schemas/ChangeStateRequest"
      required: true
      description: >
        Details of the subscription to be created, as defined in 
        clause 5.6.2.5-1.
      content:
        application/json:
          schema:
            $ref: "#/components/schemas/CimSubscriptionRequest"
      required: true
    
    CreatePeerEntityRequest:
      description: >
        The peer entity creation parameters, as defined in clause 5.6.2.14.
      content:
        application/json:
          schema:
            $ref: "#/components/schemas/CreatePeerEntityRequest"
      required: true
    
    ModifyPeerEntityRequest:
      description: >
        Parameters for the modification of configuration parameters of 
        the peer functional entity, as defined in clause 5.6.2.16

        The Content-Type header shall be set to "application/merge-patch+json" 
        according to IETF RFC 7396.
      content:
        application/merge-patch+json:
          schema:
            $ref: "#/components/schemas/PeerEntityConfigModificationRequest"
      required: true

  responses:
    mano_entity.get.200:
      description: >
        200 OK

        Shall be returned when configuration and information about 
        the NFV-MANO functional entity has been read successfully.
        The response body shall contain a representation of the NFV-MANO
        functional entity, as defined in clause 5.6.2.2.
      headers:
        WWW-Authenticate:
          description: >
            Challenge if the corresponding HTTP request has not provided
            authorization, or error details if the corresponding HTTP
            request has provided an invalid authorization token.
          schema:
            type: string
        Version:
          description: >
            Version of the API used in the response.
          schema:
            type: string
      content:
        application/json:
          schema:
            $ref: "#/components/schemas/ManoEntity"

    mano_entity.patch.200:
      description: >
        200 OK

        Shall be returned when the modification of configuration on the 
        NFV-MANO functional entity has been accepted and completed.
      headers:
        WWW-Authenticate:
          description: >
            Challenge if the corresponding HTTP request has not provided
            authorization, or error details if the corresponding HTTP
            request has provided an invalid authorization token.
          schema:
            type: string
        Version:
          description: >
            Version of the API used in the response.
          schema:
            type: string
      content:
        application/json:
          schema:
            $ref: "#/components/schemas/ManoConfigModifications"
    mano_entity.patch.409:
      description: >
        409 CONFLICT

        Shall be returned upon the following error: The operation cannot 
        be executed currently, due to a conflict with the state of the 
        "NFV-MANO entity" resource.

        Typically, this is due to the fact that another configuration and 
        information modification is ongoing.

        The response body shall contain a ProblemDetails structure, in which 
        the "detail" attribute should convey more information about the error.
      headers:
        WWW-Authenticate:
          description: >
            Challenge if the corresponding HTTP request has not provided
            authorization, or error details if the corresponding HTTP
            request has provided an invalid authorization token.
          schema:
            type: string
        Version:
          description: >
            Version of the API used in the response.
          schema:
            type: string
      content:
        application/json:
          schema:
            $ref: "../components/SOL009_schemas.yaml#/components/schemas/ProblemDetails"
    mano_entity.patch.412:
      description: >
        412 PRECONDITION FAILED

        Shall be returned upon the following error: A precondition given in 
        an HTTP request header is not fulfilled.

        Typically, this is due to an ETag mismatch, indicating that the resource 
        was modified by another entity.

        The response body should contain a ProblemDetails structure, in which 
        the "detail" attribute should convey more information about the error
      headers:
        WWW-Authenticate:
          description: >
            Challenge if the corresponding HTTP request has not provided
            authorization, or error details if the corresponding HTTP
            request has provided an invalid authorization token.
          schema:
            type: string
        Version:
          description: >
            Version of the API used in the response.
          schema:
            type: string
      content:
        application/json:
          schema:
            $ref: "../components/SOL009_schemas.yaml#/components/schemas/ProblemDetails"

    mano_entity-change_state.post.202:
      description: >
        202 ACCEPTED

        Shall be returned when the request has been accepted for processing.

        The response body shall be empty.

        The HTTP response shall include a "Location" HTTP header that contains 
        the URI of the newly-created "Individual change state operation occurrence"
        resource corresponding to the operation.
      headers:
        WWW-Authenticate:
          description: >
            Challenge if the corresponding HTTP request has not provided
            authorization, or error details if the corresponding HTTP
            request has provided an invalid authorization token.
          schema:
            type: string
        Version:
          description: >
            Version of the API used in the response.
          schema:
            type: string
        Location:
          description: >
            The resource URI of the created "Individual change state operation occurence" resource.
          schema:
            type: string
            format: url
            minimum: 1
            maximum: 1
    mano_entity-change_state.post.409:
      description: >
        409 CONFLICT

        Shall be returned upon the following error: The operation cannot be 
        executed currently, due to a conflict with the state of the resource.

        Typically, this is due to the fact that the resource is in an incompatible 
        state, or that another change state operation is ongoing.

        The response body shall contain a ProblemDetails structure, in which the 
        "detail" attribute shall convey more information about the error.
      headers:
        WWW-Authenticate:
          description: >
            Challenge if the corresponding HTTP request has not provided
            authorization, or error details if the corresponding HTTP
            request has provided an invalid authorization token.
          schema:
            type: string
        Version:
          description: >
            Version of the API used in the response.
          schema:
            type: string
      content:
        application/json:
          schema:
            $ref: "../components/SOL009_schemas.yaml#/components/schemas/ProblemDetails"
        
    mano_entity-mano_interfaces.get.200:
      description: >
        200 OK

        Shall be returned when information about zero or more NFV-MANO 
        service interfaces has been queried successfully.

        The response body shall contain in an array the representations 
        of zero or more NFV-MANO service interfaces, as defined in 
        clause 5.6.2.11.

        If the “filter" URI parameter or one of the "all_fields", "fields" 
        (if supported), "exclude_fields" (if supported) or "exclude_default" 
        URI parameters was supplied in the request, the data in the response 
        body shall have been transformed according to the rules specified in 
        clauses 5.2.2 and 5.3.2 of ETSI GS NFV-SOL 013, respectively.

        If the NFV-MANO functional entity supports alternative N°2 (paging) 
        according to clause 5.4.2.1 of ETSI GS NFV-SOL 013 for this resource, 
        inclusion of the Link HTTP header in this response shall follow the 
        provisions in clause 5.4.2.3 of ETSI GS NFV-SOL 013.
      headers:
        WWW-Authenticate:
          description: >
            Challenge if the corresponding HTTP request has not provided
            authorization, or error details if the corresponding HTTP
            request has provided an invalid authorization token.
          schema:
            type: string
        Version:
          description: >
            Version of the API used in the response.
          schema:
            type: string
        Link:
          description: >
            Reference to other resources. Link HTTP header in this response 
            shall follow the provisions in clause 5.4.2.3 of ETSI GS NFV-SOL 013.
          schema:
            type: string
            minimum: 0
            maximum: 1
      content:
        application/json:
          schema:
            type: array
            items:
              $ref: "#/components/schemas/ManoServiceInterface"
    mano_entity-mano_interfaces.get.400:
      description: >
        400 BAD REQUEST

        Shall be returned upon the following errors: 
          - Invalid attribute-based filtering expression.
            The response body shall contain a ProblemDetails structure, in which 
            the "detail" attribute should convey more information about the error.
          - Invalid attribute selector.
            The response body shall contain a ProblemDetails structure, in which 
            the "detail" attribute should convey more information about the error.
          - Response too big.
            If the NFV-MANO functional entity supports alternative N°1 (error) 
            according to clause 5.4.2.1 of ETSI GS NFV-SOL 013 for this resource, 
            this error response shall follow the provisions in clause 5.4.2.2 of 
            ETSI GS NFV-SOL 013.
      headers:
        WWW-Authenticate:
          description: >
            Challenge if the corresponding HTTP request has not provided
            authorization, or error details if the corresponding HTTP
            request has provided an invalid authorization token.
          schema:
            type: string
        Version:
          description: >
            Version of the API used in the response.
          schema:
            type: string
      content:
        application/json:
          schema:
            $ref: "../components/SOL009_schemas.yaml#/components/schemas/ProblemDetails"
    
    mano_entity-mano_interface.get.200:
      description: >
        200 OK

        Shall be returned when information about an individual NFV-MANO 
        service interface has been read successfully.

        The response body shall contain a representation of the NFV-MANO 
        service interface, as defined in clause 5.6.2.11.
      headers:
        WWW-Authenticate:
          description: >
            Challenge if the corresponding HTTP request has not provided
            authorization, or error details if the corresponding HTTP
            request has provided an invalid authorization token.
          schema:
            type: string
        Version:
          description: >
            Version of the API used in the response.
          schema:
            type: string
      content:
        application/json:
          schema:
            $ref: "#/components/schemas/ManoServiceInterface"
    mano_entity-mano_interface.patch.200:
      description: >
        200 OK

        Shall be returned when the request has been accepted and completed.

        The response body shall contain a representation of the attribute 
        modifications for the "Individual NFV-MANO service interface" resource,
        as defined in clause 5.6.2.13.
      headers:
        WWW-Authenticate:
          description: >
            Challenge if the corresponding HTTP request has not provided
            authorization, or error details if the corresponding HTTP
            request has provided an invalid authorization token.
          schema:
            type: string
        Version:
          description: >
            Version of the API used in the response.
          schema:
            type: string
      content:
        application/json:
          schema:
            $ref: "#/components/schemas/ManoServiceInterfaceModifications"
    mano_entity-mano_interface.patch.409:
      description: >
        409 CONFLICT

        Shall be returned upon the following error: The operation cannot 
        be executed currently, due to a conflict with the state of the 
        "Individual NFV-MANO service interface" resource.

        Typically, this is due to the fact that another operation is 
        ongoing.

        The response body shall contain a ProblemDetails structure, 
        in which the "detail" attribute should convey more information 
        about the error.
      headers:
        WWW-Authenticate:
          description: >
            Challenge if the corresponding HTTP request has not provided
            authorization, or error details if the corresponding HTTP
            request has provided an invalid authorization token.
          schema:
            type: string
        Version:
          description: >
            Version of the API used in the response.
          schema:
            type: string      
      content:
        application/json:
          schema:
            $ref: "../components/SOL009_schemas.yaml#/components/schemas/ProblemDetails"
    mano_entity-mano_interface.patch.412:
      description: >
        412 PRECONDITION FAILED

        Shall be returned upon the following error: A precondition given 
        in an HTTP request header is not fulfilled.

        Typically, this is due to an ETag mismatch, indicating that the 
        resource was modified by another entity.

        The response body should contain a ProblemDetails structure, 
        in which the "detail" attribute should convey more information 
        about the error.
      headers:
        WWW-Authenticate:
          description: >
            Challenge if the corresponding HTTP request has not provided
            authorization, or error details if the corresponding HTTP
            request has provided an invalid authorization token.
          schema:
            type: string
        Version:
          description: >
            Version of the API used in the response.
          schema:
            type: string
      content:
        application/json:
          schema:
            $ref: "../components/SOL009_schemas.yaml#/components/schemas/ProblemDetails"
    
    mano_entity-mano_interface-change_state.post.202:
      description: >
        202 ACCEPTED

        Shall be returned when the request has been accepted for 
        processing.

        The response body shall be empty.

        The HTTP response shall include a “Location” HTTP header that 
        contains the URI of the newly-created "Individual change state 
        operation occurrence" resource corresponding to the operation.
      headers:
        WWW-Authenticate:
          description: >
            Challenge if the corresponding HTTP request has not provided
            authorization, or error details if the corresponding HTTP
            request has provided an invalid authorization token.
          schema:
            type: string
        Version:
          description: >
            Version of the API used in the response.
          schema:
            type: string
        Location:
          description: >
            The resource URI of the created "Individual change state 
            operation occurence" resource.
          schema:
            type: string
            format: url
            minimum: 1
            maximum: 1
    mano_entity-mano_interface-change_state.post.409:
      description: >
        409 CONFLICT

        Shall be returned upon the following error: The operation cannot be 
        executed currently, due to a conflict with the state of the resource.

        Typically, this is due to the fact that the resource is in an incompatible 
        state, or that another change state operation is ongoing.

        The response body shall contain a ProblemDetails structure, in which the 
        "detail" attribute shall convey more information about the error.
      headers:
        WWW-Authenticate:
          description: >
            Challenge if the corresponding HTTP request has not provided
            authorization, or error details if the corresponding HTTP
            request has provided an invalid authorization token.
          schema:
            type: string
        Version:
          description: >
            Version of the API used in the response.
          schema:
            type: string
      content:
        application/json:
          schema:
            $ref: "../components/SOL009_schemas.yaml#/components/schemas/ProblemDetails"
    
    subscriptions.post.201:
      description: >
        201 CREATED

        Shall be returned when the subscription has been created 
        successfully.

        The response body shall contain a representation of the 
        created "Individual subscription" resource.

        The HTTP response shall include a "Location" HTTP header 
        that points to the created "Individual subscription" resource.
      headers:
        WWW-Authenticate:
          description: >
            Challenge if the corresponding HTTP request has not provided
            authorization, or error details if the corresponding HTTP
            request has provided an invalid authorization token.
          schema:
            type: string
        Version:
          description: >
            Version of the API used in the response.
          schema:
            type: string
        Location:
          description: >
            The resource URI of the created "Individual subscription" resource.
          schema:
            type: string
            format: url
            minimum: 1
            maximum: 1
      content:
        application/json:
          schema:
            $ref: "#/components/schemas/CimSubscription"
    subscriptions.post.303:
      description: >
        303 SEE OTHER

        SShall be returned when a subscription with the same 
        callbackURI and the same filter already exists and the 
        policy of NFV-MANO functional entity is to not create 
        redundant subscriptions.

        The HTTP response shall include a "Location" HTTP header 
        that contains the resource URI of the existing "Individual 
        subscription" resource.

        The response body shall be empty.
      headers:
        WWW-Authenticate:
          description: >
            Challenge if the corresponding HTTP request has not provided
            authorization, or error details if the corresponding HTTP
            request has provided an invalid authorization token.
          schema:
            type: string
        Version:
          description: >
            Version of the API used in the response.
          schema:
            type: string
        Location:
          description: >
            The resource URI of the created "Individual subscription" resource.
          schema:
            type: string
            format: url
            minimum: 1
            maximum: 1
    subscriptions.post.422:
      description: >
        422 Unprocessable Entity

        Shall be returned upon the following error: The content type
        of the payload body is supported and the payload body of a request
        contains syntactically correct data but the data cannot be processed.

        The general cause for this error and its handling is specified in
        clause 6.4 of ETSI GS NFV-SOL 013, including rules for the presence
        of the response body.

        Specifically in case of this resource, the response code 422 shall also
        be returned if the API producer has tested the Notification endpoint as
        described in clause 5.5.6.3.2 and the test has failed.

        In this case, the "detail" attribute in the "ProblemDetails" structure
        shall convey more information about the error.
      headers:
        WWW-Authenticate:
          description: >
            Challenge if the corresponding HTTP request has not provided
            authorization, or error details if the corresponding HTTP
            request has provided an invalid authorization token.
          schema:
            type: string
        Version:
          description: >
            Version of the API used in the response.
          schema:
            type: string
      content:
        application/json:
          schema:
            $ref: "../components/SOL009_schemas.yaml#/components/schemas/ProblemDetails"

    subscriptions.get.200:
      description: >
        200 OK

        Shall be returned when the list of subscriptions has been queried 
        successfully.

        The response body shall contain in an array the representations of 
        all active subscriptions of the functional block that invokes the 
        method, i.e., zero or more representations of NFV-MANO configuration 
        and information management subscriptions as defined in clause 5.6.2.6.

        If the "filter" URI parameter was supplied in the request, the data in 
        the response body shall have been transformed according to the rules 
        specified in clause 5.2.2 of ETSI GS NFV-SOL 013.

        If the NFV-MANO functional entity supports alternative N°2 (paging) 
        according to clause 5.4.2.1 of ETSI GS NFV-SOL 013 for this resource, 
        inclusion of the Link HTTP header in this response shall follow the 
        provisions in clause 5.4.2.3 of ETSI GS NFV-SOL 013.
      headers:
        WWW-Authenticate:
          description: >
            Challenge if the corresponding HTTP request has not provided
            authorization, or error details if the corresponding HTTP
            request has provided an invalid authorization token.
          schema:
            type: string
        Version:
          description: >
            Version of the API used in the response.
          schema:
            type: string
        Link:
          description: >
            Reference to other resources. Link HTTP header in this response 
            shall follow the provisions in clause 5.4.2.3 of ETSI GS NFV-SOL 013.
          schema:
            type: string
            minimum: 0
            maximum: 1
      content:
        application/json:
          schema:
            type: array
            items:
              $ref: "#/components/schemas/CimSubscription"
    subscriptions.get.400:
      description: >
        400 BAD REQUEST

        Shall be returned upon the following errors: 
          - Invalid attribute-based filtering expression.
            The response body shall contain a ProblemDetails structure, in which 
            the "detail" attribute should convey more information about the error.
          - Response too big.
            If the NFV-MANO functional entity supports alternative N°1 (error) 
            according to clause 5.4.2.1 of ETSI GS NFV-SOL 013 for this resource, 
            this error response shall follow the provisions in clause 5.4.2.2 of 
            ETSI GS NFV-SOL 013.
      headers:
        WWW-Authenticate:
          description: >
            Challenge if the corresponding HTTP request has not provided
            authorization, or error details if the corresponding HTTP
            request has provided an invalid authorization token.
          schema:
            type: string
        Version:
          description: >
            Version of the API used in the response.
          schema:
            type: string
      content:
        application/json:
          schema:
            $ref: "../components/SOL009_schemas.yaml#/components/schemas/ProblemDetails"
    
    subscription.get.200:
      description: >
        200 OK

        Shall be returned when information about an individual subscription 
        has been read successfully.

        The response body shall contain a representation of the "Individual 
        subscription" resource.
            headers:
        WWW-Authenticate:
          description: >
            Challenge if the corresponding HTTP request has not provided
            authorization, or error details if the corresponding HTTP
            request has provided an invalid authorization token.
          schema:
            type: string
        Version:
          description: >
            Version of the API used in the response.
          schema:
            type: string
      content:
        application/json:
          schema:
            $ref: "#/components/schemas/CimSubscription"
    subscription.delete.204:
      description: >
        204 NO CONTENT

        Shall be returned when the "Individual subscription" resource 
        has been deleted successfully.

        The response body shall be empty.
      headers:
        WWW-Authenticate:
          description: >
            Challenge if the corresponding HTTP request has not provided
            authorization, or error details if the corresponding HTTP
            request has provided an invalid authorization token.
          schema:
            type: string
        Version:
          description: >
            Version of the API used in the response.
          schema:
            type: string
    
    change_state_ops.get.200:
      description: >
        200 OK

        Shall be returned when status information for zero or more 
        "change state operation occurrences" has been queried successfully.

        The response body shall contain in an array the status information 
        about zero or more "Individual change state operation occurrences", 
        as defined in clause 5.6.2.9.

        If the “filter" URI parameter or one of the "all_fields", "fields" 
        (if supported), "exclude_fields" (if supported) or "exclude_default" 
        URI parameters was supplied in the request, the data in the response 
        body shall have been transformed according to the rules specified in 
        clauses 5.2.2 and 5.3.2 of ETSI GS NFV-SOL 013, respectively.

        If the NFV-MANO functional entity supports alternative N°2 (paging) 
        according to clause 5.4.2.1 of ETSI GS NFV-SOL 013 for this resource, 
        inclusion of the Link HTTP header in this response shall follow the 
        provisions in clause 5.4.2.3 of ETSI GS NFV-SOL 013.
      headers:
        WWW-Authenticate:
          description: >
            Challenge if the corresponding HTTP request has not provided
            authorization, or error details if the corresponding HTTP
            request has provided an invalid authorization token.
          schema:
            type: string
        Version:
          description: >
            Version of the API used in the response.
          schema:
            type: string
        Link:
          description: >
            Reference to other resources. Link HTTP header in this response 
            shall follow the provisions in clause 5.4.2.3 of ETSI GS NFV-SOL 013.
          schema:
            type: string
            minimum: 0
            maximum: 1
      content:
        application/json:
          schema:
            type: array
            items:
              $ref: "#/components/schemas/ChangeStateOpOcc"
    change_state_ops.get.400:
      description: >
        400 BAD REQUEST

        Shall be returned upon the following errors: 
          - Invalid attribute-based filtering expression.
            The response body shall contain a ProblemDetails structure, in which 
            the "detail" attribute should convey more information about the error.
          - Invalid attribute selector.
            The response body shall contain a ProblemDetails structure, in which 
            the "detail" attribute should convey more information about the error.
          - Response too big.
            If the NFV-MANO functional entity supports alternative N°1 (error) 
            according to clause 5.4.2.1 of ETSI GS NFV-SOL 013 for this resource, 
            this error response shall follow the provisions in clause 5.4.2.2 of 
            ETSI GS NFV-SOL 013.
            headers:
        WWW-Authenticate:
          description: >
            Challenge if the corresponding HTTP request has not provided
            authorization, or error details if the corresponding HTTP
            request has provided an invalid authorization token.
          schema:
            type: string
        Version:
          description: >
            Version of the API used in the response.
          schema:
            type: string
      content:
        application/json:
          schema:
            $ref: "../components/SOL009_schemas.yaml#/components/schemas/ProblemDetails"
    
    change_state_op.get.200:
      description: >
        200 OK

        Shall be returned when information about an "Individual change 
        state operation occurrence" resource has been read successfully.

        The response body shall contain status information about a change 
        state operation occurrence, as defined in clause 5.6.2.9.
      headers:
        WWW-Authenticate:
          description: >
            Challenge if the corresponding HTTP request has not provided
            authorization, or error details if the corresponding HTTP
            request has provided an invalid authorization token.
          schema:
            type: string
        Version:
          description: >
            Version of the API used in the response.
          schema:
            type: string
      content:
        application/json:
          schema:
            $ref: "#/components/schemas/ChangeStateOpOcc"
    
    peer_entities.post.201:
      description: >
        201 CREATED

        Shall be returned when a new "Individual peer entity" resource 
        has been created successfully.

        The response body shall contain a representation of the created 
        resource with regards to a peer entity, as defined in 
        clause 5.6.2.15.

        The HTTP response shall include a “Location” HTTP header that 
        points to the created "Individual peer entity" resource.
      headers:
        WWW-Authenticate:
          description: >
            Challenge if the corresponding HTTP request has not provided
            authorization, or error details if the corresponding HTTP
            request has provided an invalid authorization token.
          schema:
            type: string
        Version:
          description: >
            Version of the API used in the response.
          schema:
            type: string
        Location:
          description: >
            The resource URI of the created "Individual peer entity" resource.
          schema:
            type: string
            format: url
            minimum: 1
            maximum: 1
      content:
        application/json:
          schema:
            $ref: "#/components/schemas/PeerEntity"
    peer_entities.get.200:
      description: >
        200 OK

        Shall be returned when information about zero or more peer 
        entities has been queried successfully.

        The response body shall contain in an array the resource 
        representations of zero or more peer entities, as defined 
        in clause 5.6.2.15.

        If the “filter" URI parameter or one of the "all_fields", "fields" 
        (if supported), "exclude_fields" (if supported) or "exclude_default" 
        URI parameters was supplied in the request, the data in the response 
        body shall have been transformed according to the rules specified in 
        clauses 5.2.2 and 5.3.2 of ETSI GS NFV-SOL 013, respectively.

        If the NFV-MANO functional entity supports alternative N°2 (paging) 
        according to clause 5.4.2.1 of ETSI GS NFV-SOL 013 for this resource, 
        inclusion of the Link HTTP header in this response shall follow the 
        provisions in clause 5.4.2.3 of ETSI GS NFV-SOL 013.
      headers:
        WWW-Authenticate:
          description: >
            Challenge if the corresponding HTTP request has not provided
            authorization, or error details if the corresponding HTTP
            request has provided an invalid authorization token.
          schema:
            type: string
        Version:
          description: >
            Version of the API used in the response.
          schema:
            type: string
        Link:
          description: >
            Reference to other resources. Link HTTP header in this response 
            shall follow the provisions in clause 5.4.2.3 of ETSI GS NFV-SOL 013.
          schema:
            type: string
            minimum: 0
            maximum: 1
      content:
        application/json:
          schema:
            type: array
            items:
              $ref: "#/components/schemas/PeerEntity"
    peer_entities.get.400:
      description: >
        400 BAD REQUEST

        Shall be returned upon the following errors: 
          - Invalid attribute-based filtering expression.
            The response body shall contain a ProblemDetails structure, in which 
            the "detail" attribute should convey more information about the error.
          - Invalid attribute selector.
            The response body shall contain a ProblemDetails structure, in which 
            the "detail" attribute should convey more information about the error.
          - Response too big.
            If the NFV-MANO functional entity supports alternative N°1 (error) 
            according to clause 5.4.2.1 of ETSI GS NFV-SOL 013 for this resource, 
            this error response shall follow the provisions in clause 5.4.2.2 of 
            ETSI GS NFV-SOL 013.
      headers:
        WWW-Authenticate:
          description: >
            Challenge if the corresponding HTTP request has not provided
            authorization, or error details if the corresponding HTTP
            request has provided an invalid authorization token.
          schema:
            type: string
        Version:
          description: >
            Version of the API used in the response.
          schema:
            type: string
      content:
        application/json:
          schema:
            $ref: "../components/SOL009_schemas.yaml#/components/schemas/ProblemDetails"
    
    peer_entitie.get.200:
      description: >
        200 OK

        Shall be returned when information about an individual peer 
        functional entity has been read successfully.

        The response body shall contain a resource representation of 
        the peer functional entity, as defined in clause 5.6.2.15.
      headers:
        WWW-Authenticate:
          description: >
            Challenge if the corresponding HTTP request has not provided
            authorization, or error details if the corresponding HTTP
            request has provided an invalid authorization token.
          schema:
            type: string
        Version:
          description: >
            Version of the API used in the response.
          schema:
            type: string
      content:
        application/json:
          schema:
            $ref: "#/components/schemas/PeerEntity"
    peer_entitie.patch.200:
      description: >
        200 OK

        Shall be returned when the request has been accepted and completed.

        The response body shall contain a representation of the attribute 
        modifications for the "Individual peer entity" resource, as defined 
        in clause 5.6.2.17.
      headers:
        WWW-Authenticate:
          description: >
            Challenge if the corresponding HTTP request has not provided
            authorization, or error details if the corresponding HTTP
            request has provided an invalid authorization token.
          schema:
            type: string
        Version:
          description: >
            Version of the API used in the response.
          schema:
            type: string
      content:
        application/json:
          schema:
            $ref: "#/components/schemas/PeerEntityConfigModifications"
    peer_entitie.patch.409:
      description: >
        409 CONFLICT.

        Shall be returned upon the following error: The operation cannot be 
        executed currently, due to a conflict with the state of the 
        "Individual peer entity" resource.

        Typically, this is due to the fact that another operation is ongoing.

        The response body shall contain a ProblemDetails structure, in which 
        the "detail" attribute should convey more information about the error.
      headers:
        WWW-Authenticate:
          description: >
            Challenge if the corresponding HTTP request has not provided
            authorization, or error details if the corresponding HTTP
            request has provided an invalid authorization token.
          schema:
            type: string
        Version:
          description: >
            Version of the API used in the response.
          schema:
            type: string
      content:
        application/json:
          schema:
            $ref: "../components/SOL009_schemas.yaml#/components/schemas/ProblemDetails"
    peer_entitie.patch.412:
      description: >
        412 PRECONDITION FAILED

        Shall be returned upon the following error: A precondition given in 
        an HTTP request header is not fulfilled.

        Typically, this is due to an ETag mismatch, indicating that the 
        resource was modified by another entity.

        The response body should contain a ProblemDetails structure, in which 
        the "detail" attribute should convey more information about the error.
      headers:
        WWW-Authenticate:
          description: >
            Challenge if the corresponding HTTP request has not provided
            authorization, or error details if the corresponding HTTP
            request has provided an invalid authorization token.
          schema:
            type: string
        Version:
          description: >
            Version of the API used in the response.
          schema:
            type: string
      content:
        application/json:
          schema:
            $ref: "../components/SOL009_schemas.yaml#/components/schemas/ProblemDetails"
    peer_entitie.delete.204:
      description: >
        204 NO CONTENT

        Shall be returned when the "Individual peer entity" resource 
        has been deleted successfully.

        The response body shall be empty.
      headers:
        WWW-Authenticate:
          description: >
            Challenge if the corresponding HTTP request has not provided
            authorization, or error details if the corresponding HTTP
            request has provided an invalid authorization token.
          schema:
            type: string
        Version:
          description: >
            Version of the API used in the response.
          schema:
            type: string
    peer_entitie.delete.409:
      description: >
        409 CONFLICT.

        Shall be returned upon the following error: The operation cannot be 
        executed currently, due to a conflict with the state of the 
        "Individual peer entity" resource.

        Typically, this is due to the fact that another operation is ongoing.

        The response body shall contain a ProblemDetails structure, in which 
        the "detail" attribute should convey more information about the error.
      headers:
        WWW-Authenticate:
          description: >
            Challenge if the corresponding HTTP request has not provided
            authorization, or error details if the corresponding HTTP
            request has provided an invalid authorization token.
          schema:
            type: string
        Version:
          description: >
            Version of the API used in the response.
          schema:
            type: string
      content:
        application/json:
          schema:
            $ref: "../components/SOL009_schemas.yaml#/components/schemas/ProblemDetails"
    peer_entitie.delete.412:
      description: >
        412 PRECONDITION FAILED

        Shall be returned upon the following error: A precondition given in 
        an HTTP request header is not fulfilled.

        Typically, this is due to an ETag mismatch, indicating that the 
        resource was modified by another entity.

        The response body should contain a ProblemDetails structure, in which 
        the "detail" attribute should convey more information about the error.
      headers:
        WWW-Authenticate:
          description: >
            Challenge if the corresponding HTTP request has not provided
            authorization, or error details if the corresponding HTTP
            request has provided an invalid authorization token.
          schema:
            type: string
        Version:
          description: >
            Version of the API used in the response.
          schema:
            type: string
      content:
        application/json:
          schema:
            $ref: "../components/SOL009_schemas.yaml#/components/schemas/ProblemDetails"