# ============LICENSE_START=======================================================
# Copyright (c) 2021-2022 Bell Canada.
# Modifications Copyright (C) 2021-2023 Nordix Foundation
# Modifications Copyright (C) 2022-2024 TechMahindra Ltd.
# Modifications Copyright (C) 2022 Deutsche Telekom AG
# ================================================================================
# 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:

    AnchorDetails:
      type: object
      title: Anchor details by anchor Name
      properties:
        name:
          type: string
          example: my-anchor
        dataspaceName:
          type: string
          example: my-dataspace
        schemaSetName:
          type: string
          example: my-schema-set

    DataspaceDetails:
      type: object
      title: Dataspace details by dataspace Name
      properties:
        name:
          type: string
          example: my-dataspace

    ErrorMessage:
      type: object
      title: Error
      properties:
        status:
          type: string
        message:
          type: string
        details:
          type: string

    MultipartFile:
      type: object
      required:
        - file
      properties:
        file:
          type: string
          description: multipartFile
          format: binary

    ModuleReferences:
      type: object
      title: Module reference object
      properties:
        name:
          type: string
          example: my-module-reference-name
        namespace:
          type: string
          example: my-module-reference-namespace
        revision:
          type: string
          example: my-module-reference-revision

    SchemaSetDetails:
      type: object
      title: Schema set details by dataspace and schemasetName
      required:
        - "moduleReferences"
      properties:
        dataspaceName:
          type: string
          example: my-dataspace
        moduleReferences:
          type: array
          items:
            $ref: '#/components/schemas/ModuleReferences'
        name:
          type: string
          example: my-schema-set

  examples:
    dataSample:
      value:
        test:bookstore:
          bookstore-name: Chapters
          categories:
            - code: 01
              name: SciFi
            - code: 02
              name: kids
    dataSampleXml:
        value:
          <stores xmlns="urn:ietf:params:xml:ns:netconf:base:1.0">
            <bookstore xmlns="org:onap:ccsdk:sample">
              <bookstore-name>Chapters</bookstore-name>
              <categories>
                <code>1</code>
                <name>SciFi</name>
                <code>2</code>
                <name>kids</name>
              </categories>
            </bookstore>
          </stores>
    dataSampleAcrossAnchors:
      value:
        - anchorName: bookstore1
          dataNode:
            test:bookstore:
              bookstore-name: Chapters
              categories:
                - code: 01
                  name: SciFi
                - code: 02
                  name: kids
        - anchorName: bookstore2
          dataNode:
            test:bookstore:
              bookstore-name: Chapters
              categories:
                - code: 01
                  name: SciFi
                - code: 02
                  name: kids
    deltaReportSample:
      value:
        - action: "ADD"
          xpath: "/bookstore/categories/[@code=3]"
          target-data:
            code: 3,
            name: "kidz"
        - action: "REMOVE"
          xpath: "/bookstore/categories/[@code=1]"
          source-data:
            code: 1,
            name: "Fiction"
        - action: "UPDATE"
          xpath: "/bookstore/categories/[@code=2]"
          source-data:
            name: "Funny"
          target-data:
            name: "Comic"

  parameters:
    dataspaceNameInQuery:
      name: dataspace-name
      in: query
      description: dataspace-name
      required: true
      schema:
        type: string
        example: my-dataspace
    dataspaceNameInPath:
      name: dataspace-name
      in: path
      description: dataspace-name
      required: true
      schema:
        type: string
        example: my-dataspace
    anchorNameInPath:
      name: anchor-name
      in: path
      description: anchor-name
      required: true
      schema:
        type: string
        example: my-anchor
    sourceAnchorNameInPath:
      name: source-anchor-name
      in: path
      description: source-anchor-name
      required: true
      schema:
        type: string
        example: my-anchor
    schemaSetNameInQuery:
      name: schema-set-name
      in: query
      description: schema-set-name
      required: true
      schema:
        type: string
        example: my-schema-set
    schemaSetNameInPath:
      name: schema-set-name
      in: path
      description: schema-set-name
      required: true
      schema:
        type: string
        example: my-schema-set
    anchorNameInQuery:
      name: anchor-name
      in: query
      description: anchor-name
      required: true
      schema:
        type: string
        example: my-anchor
    targetAnchorNameInQuery:
      name: target-anchor-name
      in: query
      description: target-anchor-name
      required: true
      schema:
        type: string
        example: my-anchor
    xpathInQuery:
      name: xpath
      in: query
      description: For more details on xpath, please refer https://docs.onap.org/projects/onap-cps/en/latest/xpath.html
      required: false
      schema:
        type: string
        default: /
      examples:
        container xpath:
          value: /shops/bookstore
        list attributes xpath:
          value: /shops/bookstore/categories[@code=1]
    requiredXpathInQuery:
      name: xpath
      in: query
      description: For more details on xpath, please refer https://docs.onap.org/projects/onap-cps/en/latest/xpath.html
      required: true
      schema:
        type: string
      examples:
        container xpath:
          value: /shops/bookstore
        list attributes xpath:
          value: /shops/bookstore/categories[@code=1]
    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]
    includeDescendantsOptionInQuery:
      name: include-descendants
      in: query
      description: include-descendants
      required: false
      schema:
        type: boolean
        default: false
        example: false
    observedTimestampInQuery:
      name: observed-timestamp
      in: query
      description: observed-timestamp
      required: false
      schema:
        type: string
        example: '2021-03-21T00:10:34.030-0100'
    apiVersionInPath:
      name: apiVersion
      in: path
      description: apiVersion
      required: true
      schema:
        type: string
        enum: [v1, v2]
        default: v2
    contentTypeInHeader:
      name: Content-Type
      in: header
      description: Content type in header
      schema:
        type: string
        example: 'application/json'
      required: true
    descendantsInQuery:
      name: descendants
      in: query
      description: Number of descendants to query. Allowed values are 'none', 'all', 'direct', 1 (for direct), -1 (for all), 0 (for none) and any positive number.
      required: false
      schema:
        type: string
        default: none
        example: 3
    pageIndexInQuery:
      name: pageIndex
      in: query
      description: page index for pagination over anchors. It must be greater then zero if provided.
      required: false
      schema:
        type: integer
        example: 1
    pageSizeInQuery:
      name: pageSize
      in: query
      description: number of records (anchors) per page. It must be greater then zero if provided.
      required: false
      schema:
        type: integer
        example: 10

  responses:
    NotFound:
      description: The specified resource was not found
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/ErrorMessage'
          example:
            status: 404
            message: Resource Not Found
            details: The requested resource is not found
    Unauthorized:
      description: Unauthorized
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/ErrorMessage'
          example:
            status: 401
            message: Unauthorized request
            details: This request is unauthorized
    Forbidden:
      description: Forbidden
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/ErrorMessage'
          example:
            status: 403
            message: Request Forbidden
            details: This request is forbidden
    BadRequest:
      description: Bad Request
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/ErrorMessage'
          example:
            status: 400
            message: Bad Request
            details: The provided request is not valid
    Conflict:
      description: Conflict
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/ErrorMessage'
          example:
            status: 409
            message: Conflicting request
            details: The request cannot be processed as the resource is in use.
    Ok:
      description: OK
      content:
        application/json:
          schema:
            type: object
          examples:
            dataSample:
              value: ""
    Created:
      description: Created
      content:
        application/json:
          schema:
            type: string
            example: my-resource
    CreatedV2:
      description: Created without response body
    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
    NoContent:
      description: No Content
      content: {}
