# ============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: "create"
          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: "replace"
          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: {}
