#  ============LICENSE_START=======================================================
#  Copyright (C) 2021-2024 Nordix Foundation
#  Modifications Copyright (C) 2021 Pantheon.tech
#  Modifications Copyright (C) 2022 Bell Canada
#  ================================================================================
#  Licensed under the Apache License, Version 2.0 (the "License");
#  you may not use this file except in compliance with the License.
#  You may obtain a copy of the License at
#
#        http://www.apache.org/licenses/LICENSE-2.0
#
#  Unless required by applicable law or agreed to in writing, software
#  distributed under the License is distributed on an "AS IS" BASIS,
#  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
#  See the License for the specific language governing permissions and
#  limitations under the License.
#
#  SPDX-License-Identifier: Apache-2.0
#  ============LICENSE_END=========================================================

components:
  schemas:
    # Common Schemas
    ErrorMessage:
      type: object
      title: Error
      properties:
        status:
          type: string
        message:
          type: string
        details:
          type: string
    # DMI Server Exception Schema
    DmiErrorMessage:
      title: DMI Error Message
      type: object
      properties:
        message:
          type: string
          example: 'Bad Gateway Error Message NCMP'
        dmi-response:
          type: object
          properties:
            http-code:
              type: integer
              example: 400
            body:
              type: string
              example: Bad Request
    # Request Schemas
    RestDmiPluginRegistration:
      type: object
      properties:
        dmiPlugin:
          type: string
          example: my-dmi-plugin
          default: ""
        dmiDataPlugin:
          type: string
          example: my-dmi-data-plugin
          default: ""
        dmiModelPlugin:
          type: string
          example: my-dmi-model-plugin
          default: ""
        createdCmHandles:
          type: array
          items:
            $ref: '#/components/schemas/RestInputCmHandle'
        updatedCmHandles:
          type: array
          items:
            $ref: '#/components/schemas/RestInputCmHandle'
            example:
              cmHandle: my-cm-handle
              cmHandleProperties:
                add-my-property: add-property
                update-my-property: updated-property
                delete-my-property: '~'
              publicCmHandleProperties:
                add-my-property: add-property
                update-my-property: updated-property
                delete-my-property: '~'
        removedCmHandles:
          type: array
          items:
            type: string
          example: [ my-cm-handle1, my-cm-handle2, my-cm-handle3 ]
        upgradedCmHandles:
          $ref: '#/components/schemas/UpgradedCmHandles'
    DmiPluginRegistrationErrorResponse:
      type: object
      properties:
        failedCreatedCmHandles:
          type: array
          items:
            $ref: '#/components/schemas/CmHandlerRegistrationErrorResponse'
        failedUpdatedCmHandles:
          type: array
          items:
            $ref: '#/components/schemas/CmHandlerRegistrationErrorResponse'
        failedRemovedCmHandles:
          type: array
          items:
            $ref: '#/components/schemas/CmHandlerRegistrationErrorResponse'
        failedUpgradeCmHandles:
          type: array
          items:
            $ref: '#/components/schemas/CmHandlerRegistrationErrorResponse'
    CmHandlerRegistrationErrorResponse:
      type: object
      properties:
        cmHandle:
          type: string
          example: my-cm-handle
        errorCode:
          type: string
          example: '00'
        errorText:
          type: string
          example: 'Unknown error. <error-details>'

    RestInputCmHandle:
      required:
        - cmHandle
      type: object
      properties:
        cmHandle:
          type: string
          example: my-cm-handle
        cmHandleProperties:
          $ref: '#/components/schemas/RestCmHandleProperties'
        publicCmHandleProperties:
          $ref: '#/components/schemas/RestCmHandleProperties'
        moduleSetTag:
          type: string
          example: "my-module-set-tag"
        trustLevel:
            type: string
            enum: [COMPLETE, NONE]
            example: "COMPLETE"
        alternateId:
          type: string
          example: "my-alternate-id"
        dataProducerIdentifier:
          type: string
          example: "my-data-producer-identifier"
    RestCmHandleProperties:
      type: object
      additionalProperties:
        type: string
        example: my-property
    #Module upgrade schema
    UpgradedCmHandles:
      required:
        - cmHandles
      type: object
      properties:
        cmHandles:
          type: array
          items:
            type: string
          example: [ my-cm-handle1, my-cm-handle2, my-cm-handle3 ]
        moduleSetTag:
          type: string
          default: ""
          example: 'my-module-set-tag'

    #Response Schemas
    RestModuleReference:
      type: object
      title: Module reference details
      properties:
        moduleName:
          type: string
          example: my-module-name
        revision:
          type: string
          example: my-module-revision

    RestModuleDefinition:
      type: object
      title: Module definitions
      properties:
        moduleName:
          type: string
          example: my-module-name
        revision:
          type: string
          example: 2020-09-15
        content:
          type: string
          example: |
            module stores {
              yang-version 1.1;
              namespace 'org:onap:ccsdk:sample';
              prefix book-store;
              revision '2020-09-15' {
                description
                'Sample Model';
              }
            }

    CmHandleQueryParameters:
      type: object
      title: Cm Handle query parameters for executing cm handle search
      properties:
        cmHandleQueryParameters:
          type: array
          items:
            $ref: '#/components/schemas/ConditionProperties'
        conditions:
          deprecated: true
          type: array
          items:
            $ref: '#/components/schemas/OldConditionProperties'
          description: not necessary, it is just for backward compatibility

    ConditionProperties:
      properties:
        conditionName:
          type: string
        conditionParameters:
          type: array
          items:
            type: object
            additionalProperties:
              type: string
    OldConditionProperties:
      deprecated: true
      properties:
        name:
          type: string
        conditionParameters:
          type: array
          items:
            $ref: '#/components/schemas/ModuleNameAsJsonObject'
    ModuleNameAsJsonObject:
      properties:
        moduleName:
          type: string
          example: my-module

    RestOutputCmHandle:
      type: object
      title: CM handle Details
      properties:
        cmHandle:
          type: string
          example: my-cm-handle1
        publicCmHandleProperties:
          $ref: '#/components/schemas/CmHandlePublicProperties'
        state:
          $ref: '#/components/schemas/CmHandleCompositeState'
        trustLevel:
          $ref: '#/components/schemas/CmHandleTrustLevel'
        moduleSetTag:
          type: string
          example: my-module-set-tag
        alternateId:
          type: string
          example: my-alternate-id
        dataProducerIdentifier:
          type: string
          example: my-data-producer-identifier
    CmHandlePublicProperties:
      type: object
      items:
        type: object
        additionalProperties:
          type: string
          example: 'Book Type'
    CmHandleCompositeState:
      type: object
      properties:
        cmHandleState:
          type: string
          example: ADVISED
        lockReason:
          $ref: '#/components/schemas/lock-reason'
        lastUpdateTime:
          type: string
          example: 2022-12-31T20:30:40.000+0000
        dataSyncEnabled:
          type: boolean
          example: false
        dataSyncState:
          $ref: '#/components/schemas/dataStores'
    CmHandleTrustLevel:
      type: string
      description: Current trust level of the relevant CM handle ID.
      example: COMPLETE

    lock-reason:
      type: object
      properties:
        reason:
          type: string
          example: LOCKED_MISBEHAVING
        details:
          type: string
          example: locked due to failure in module sync

    dataStores:
      type: object
      properties:
        operational:
          $ref: '#/components/schemas/sync-state'
        running:
          $ref: '#/components/schemas/sync-state'

    sync-state:
      type: object
      properties:
        syncState:
          type: string
          example: NONE_REQUESTED
        lastSyncTime:
          type: string
          example: 2022-12-31T20:30:40.000+0000

    RestOutputCmHandlePublicProperties:
      type: object
      properties:
        publicCmHandleProperties:
          $ref: '#/components/schemas/CmHandlePublicProperties'

    RestOutputCmHandleCompositeState:
      type: object
      properties:
        state:
          $ref: '#/components/schemas/CmHandleCompositeState'
    # Data Operation Request Schemas
    DataOperationRequest:
      type: object
      title: execute data operation for given array of operations
      properties:
        operations:
          type: array
          items:
            $ref: '#/components/schemas/DataOperationDefinition'
          description: contains group of data operation requests
    DataOperationDefinition:
      required:
        - operation
        - datastore
        - operationId
      properties:
        operation:
          type: string
          example: 'read'
        operationId:
          type: string
          example: '12'
        datastore:
          type: string
          example: 'ncmp-datastore:passthrough-operational'
        options:
          type: string
          example: '(fields=schemas/schema)'
        resourceIdentifier:
          type: string
          example: 'parent/child'
        targetIds:
          type: array
          items:
            type: string
            description: targeted cm handles, maximum of 50 supported. If this limit is exceeded the request wil be refused.
            example: [ "da310eecdb8d44c2acc0ddaae01174b1","c748c58f8e0b438f9fd1f28370b17d47" ]

  examples:
    dataSampleRequest:
      summary: Sample request
      description: Sample request body
      value:
        test:bookstore:
          bookstore-name: Chapters
          categories:
            - code: '01'
              name: SciFi
              books:
                - authors:
                    - Iain M. Banks
                    - Ursula K. Le Guin
            - code: '02'
              name: kids
              books:
                - authors:
                    - Philip Pullman

    dataSamplePatchRequest:
      summary: Sample patch request
      description: Sample patch request body
      value:
        ietf-restconf:yang-patch:
          patch-id: patch-1
          edit:
            - edit-id: edit1
              operation: merge
              target: /
              value:
                test:bookstore:
                  bookstore-name: Chapters
                  categories:
                    - code: '01'
                      name: Science
                      books:
                        - authors:
                            - Author1
                            - Author2
                    - code: '02'
                      name: Arts
                      books:
                        - authors:
                            - Author3
            - edit-id: edit2
              operation: merge
              target: /
              value:
                test:bookstore:
                  bookstore-name: Novels
                  categories:
                    - code: '03'
                      name: History
                      books:
                        - authors:
                            - Iain M. Banks
                            - Ursula K. Le Guin
                    - code: '04'
                      name: Fiction
                      books:
                        - authors:
                            - Philip Pullman

    dataSampleResponse:
      summary: Sample response
      description: Sample response for selecting 'sample 1'.
      value:
        bookstore:
          categories:
            - code: '01'
              books:
                - authors:
                    - Iain M. Banks
                    - Ursula K. Le Guin
              name: SciFi
            - code: '02'
              books:
                - authors:
                    - Philip Pullman
              name: kids

    allCmHandleQueryParameters:
      value:
        cmHandleQueryParameters:
          - conditionName: hasAllModules
            conditionParameters:
              - { "moduleName": "my-module-1" }
              - { "moduleName": "my-module-2" }
              - { "moduleName": "my-module-3" }
          - conditionName: hasAllProperties
            conditionParameters:
              - { "Color": "yellow" }
              - { "Shape": "circle" }
              - { "Size": "small" }
          - conditionName: cmHandleWithCpsPath
            conditionParameters:
              - { "cpsPath": "//state[@cm-handle-state='ADVISED']" }
    pubPropCmHandleQueryParameters:
      value:
        cmHandleQueryParameters:
          - conditionName: hasAllProperties
            conditionParameters:
              - { "Color": "yellow" }
              - { "Shape": "circle" }
              - { "Size": "small" }
    modulesCmHandleQueryParameters:
      value:
        cmHandleQueryParameters:
          - conditionName: hasAllModules
            conditionParameters:
              - { "moduleName": "my-module-1" }
              - { "moduleName": "my-module-2" }
              - { "moduleName": "my-module-3" }
    cpsPathCmHandleStateQueryParameters:
      value:
        cmHandleQueryParameters:
          - conditionName: cmHandleWithCpsPath
            conditionParameters:
              - { "cpsPath": "//state[@cm-handle-state='LOCKED']" }
    cpsPathCmHandleDataSyncQueryParameters:
      value:
        cmHandleQueryParameters:
          - conditionName: cmHandleWithCpsPath
            conditionParameters:
              - { "cpsPath": "//state[@data-sync-enabled='true']" }

  parameters:
    cmHandleInPath:
      name: cm-handle
      in: path
      description: The identifier for a network function, network element, subnetwork or any other cm object by managed Network CM Proxy
      required: true
      schema:
        type: string
        example: my-cm-handle
    moduleNameInQuery:
      name: module-name
      in: query
      description: Filter for a module name.This is an optional parameter
      required: false
      schema:
        type: string
        example: my-module
    revisionInQuery:
      name: revision
      in: query
      description: Filter for a module revision.This is an optional parameter and ignored when no module name is supplied
      required: false
      schema:
        type: string
        example: 2024-01-22
    dataSyncEnabled:
      name: dataSyncEnabled
      in: query
      description: Is used to enable or disable the data synchronization flag
      required: true
      schema:
        type: boolean
        example: true
    xpathInQuery:
      name: xpath
      in: query
      description: xpath
      required: false
      schema:
        type: string
        default: /
    requiredXpathInQuery:
      name: xpath
      in: query
      description: xpath
      required: true
      schema:
        type: string
    includeDescendantsOptionInQuery:
      name: include-descendants
      in: query
      description: Determines if descendants are included in response
      required: false
      schema:
        type: boolean
        default: false
    cpsPathInQuery:
      name: cps-path
      in: query
      description: For more details on cps path, please refer https://docs.onap.org/projects/onap-cps/en/latest/cps-path.html
      required: false
      schema:
        type: string
        default: /
      examples:
        container cps path:
          value: //bookstore
        list attributes cps path:
          value: //categories[@code=1]
    dmiPluginIdentifierInQuery:
      name: dmi-plugin-identifier
      in: query
      description: dmi-plugin-identifier
      required: true
      schema:
        type: string
        example: my-dmi-plugin
    resourceIdentifierInQuery:
      name: resourceIdentifier
      in: query
      description: The format of resource identifier depend on the associated DMI Plugin implementation. For ONAP DMI Plugin it will be RESTConf paths but it can really be anything.
      required: true
      schema:
        type: string
      examples:
        sample 1:
          value:
            resourceIdentifier: \shops\bookstore
        sample 2:
          value:
            resourceIdentifier: \shops\bookstore\categories[@code=1]
        sample 3:
          value:
            resourceIdentifier: parent=shops,child=bookstore
    optionsParamInQuery:
      name: options
      in: query
      description: options parameter in query, it is mandatory to wrap key(s)=value(s) in parenthesis'()'. The format of options parameter depend on the associated DMI Plugin implementation.
      required: false
      schema:
        type: string
      examples:
        sample 1:
          value:
            options: (depth=3)
        sample 2:
          value:
            options: (fields=book)
        sample 3:
          value:
            options: (depth=2,fields=book/authors)
    topicParamInQuery:
      name: topic
      in: query
      description: topic parameter in query.
      required: false
      schema:
        type: string
      examples:
        sample 1:
          value:
            topic: my-topic-name
    requiredTopicParamInQuery:
      name: topic
      in: query
      description: mandatory topic parameter in query.
      required: true
      schema:
        type: string
      examples:
        sample 1:
          value:
            topic: my-topic-name
    contentParamInHeader:
      name: Content-Type
      in: header
      required: false
      description: Content parameter for request, if content parameter is null, default value is application/json.
      schema:
        type: string
        default: application/json
        example: application/yang-data+json
    authorizationParamInHeader:
      name: Authorization
      in: header
      required: false
      description: Authorization parameter for request.
      schema:
        type: string
    datastoreName:
      name: datastore-name
      in: path
      description: The type of the requested data
      required: true
      schema:
        type: string
        example: ncmp-datastore:running

  responses:
    NotFound:
      description: The specified resource was not found
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/ErrorMessage'
          example:
            status: 400
            message: Not found error message
            details: Not found error details
    Unauthorized:
      description: Unauthorized
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/ErrorMessage'
          example:
            status: 401
            message: Unauthorized error message
            details: Unauthorized error details
    Forbidden:
      description: Forbidden
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/ErrorMessage'
          example:
            status: 403
            message: Forbidden error message
            details: Forbidden error details
    BadRequest:
      description: Bad Request
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/ErrorMessage'
          example:
            status: 400
            message: Bad request error message
            details: Bad request error details
    Conflict:
      description: Conflict
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/ErrorMessage'
          example:
            status: 409
            message: Conflict error message
            details: Conflict error details
    PayloadTooLarge:
      description: The request is larger than the server is willing or able to process
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/ErrorMessage'
          example:
            status: 413
            message: Payload Too Large error message
            details: Payload Too Large error details
    NotImplemented:
      description: The given path has not been implemented
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/ErrorMessage'
          example:
            status: 501
            message: Not implemented error message
            details: Not implemented error details
    Ok:
      description: OK
      content:
        application/json:
          schema:
            type: object
    Created:
      description: Created
      content: { }
    NoContent:
      description: No Content
      content: { }
    InternalServerError:
      description: Internal Server Error
      content:
        application/json:
          schema:
            $ref: "#/components/schemas/ErrorMessage"
          example:
            status: 500
            message: Internal Server Error
            details: Internal Server Error occurred
    BadGateway:
      description: Bad Gateway
      content:
        application/json:
          schema:
            $ref: "#/components/schemas/DmiErrorMessage"
          example:
            message: "Bad Gateway Error Message NCMP"
            dmi-response:
              http-code: 400
              body: "Bad Request"
