# ============LICENSE_START=======================================================
# Copyright (c) 2021-2022 Bell Canada.
# Modifications Copyright (C) 2021-2023 Nordix Foundation
# Modifications Copyright (C) 2022-2025 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
TargetDataAsJsonFile:
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
- books:
- title: Book 1
lang: N/A
price: 11
editions:
- 2009
- books:
- title: Book 2
lang: German
price: 39
editions:
- 2007
- 2013
- 2021
- code: 02
name: kids
- books:
- title: Book 3
lang: English
price: 15
editions:
- 2010
dataSampleForV3:
value:
test:bookstore:
bookstore-name: Chapters
categories:
- code: 01
name: SciFi
books:
- title: Book 1
lang: N/A
price: 11
editions:
- 2009
- title: Book 2
lang: German
price: 39
editions:
- 2007
- 2013
- 2021
- code: 02
name: kids
books:
- title: Book 3
lang: English
price: 15
editions:
- 2010
dataSampleXml:
value:
Chapters
1
SciFi
Book 1
N/A
11
2009
Book 2
German
39
2007
2013
2021
2
kids
Book 3
English
15
2010
dataSampleXmlForV3:
value:
Chapters
1
SciFi
Book 1
N/A
11
2009
Book 2
German
39
2007
2013
2021
2
kids
Book 3
English
15
2010
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"
NotificationSubscriptionsDataSample:
value:
cps-notification-subscriptions:dataspaces:
dataspace:
- name: dataspace01
- name: dataspace02
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]
notificationSubscriptionXpathInQuery:
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
default: /dataspaces
examples:
subscription by dataspace xpath:
value: /dataspaces/dataspace[@name='dataspace01']
subscription by anchor xpath:
value: /dataspaces/dataspace[@name='dataspace01']/anchors/anchor[@name='anchor01']
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
required: false
schema:
type: string
enum:
- application/json
- application/xml
default: application/json
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
dryRunInQuery:
name: dry-run
in: query
description: Boolean flag to validate data, without persisting it. Default value is false.
required: false
schema:
type: boolean
default: false
example: false
groupDataNodesInQuery:
name: grouping-enabled
in: query
description: Boolean flag to enable or disable grouping of data nodes. Enabling it generates a condensed delta report.
required: false
schema:
type: boolean
default: false
example: true
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: {}