# ============LICENSE_START=======================================================
-# Copyright (C) 2021-2022 Nordix Foundation
+# Copyright (C) 2021-2023 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.
properties:
message:
type: string
- example: "Bad Gateway Error Message NCMP"
+ example: 'Bad Gateway Error Message NCMP'
dmi-response:
type: object
properties:
type: array
items:
type: string
- example: [my-cm-handle1, my-cm-handle2, my-cm-handle3]
+ 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:
type: string
example: my-cm-handle
cmHandleProperties:
- $ref: '#/components/schemas/RestCmHandleProperties'
+ $ref: '#/components/schemas/RestCmHandleProperties'
publicCmHandleProperties:
- $ref: '#/components/schemas/RestCmHandleProperties'
+ $ref: '#/components/schemas/RestCmHandleProperties'
+ moduleSetTag:
+ type: string
+ example: "my-module-set-tag"
RestCmHandleProperties:
- type: object
- additionalProperties:
- type: string
- example: my-property
-
- Conditions:
type: object
- properties:
- conditions:
- $ref: '#/components/schemas/ConditionsData'
- ConditionsData:
- type: array
- items:
- type: object
- $ref: '#/components/schemas/ConditionProperties'
- ConditionProperties:
- properties:
- name:
- type: string
- example: hasAllModules
- conditionParameters:
- $ref: '#/components/schemas/ModuleNamesAsJsonArray'
- ModuleNamesAsJsonArray:
- type: array
- items:
- type: object
- $ref: '#/components/schemas/ModuleNameAsJsonObject'
- example: [my-module-1, my-module-2, my-module-3]
- ModuleNameAsJsonObject:
- properties:
- moduleName:
- type: string
- example: my-module
-
- #Response Schemas
- CmHandles:
+ additionalProperties:
+ type: string
+ example: my-property
+ #Module upgrade schema
+ UpgradedCmHandles:
+ required:
+ - cmHandles
type: object
properties:
cmHandles:
- $ref: '#/components/schemas/CmHandleProperties'
- CmHandleProperties:
- type: array
- items:
- type: object
- $ref: '#/components/schemas/CmHandleProperty'
- CmHandleProperty:
- properties:
- cmHandleId:
+ type: array
+ items:
+ type: string
+ example: [ my-cm-handle1, my-cm-handle2, my-cm-handle3 ]
+ moduleSetTag:
type: string
- example: my-cm-handle-id
+ example: 'my-module-set-tag'
+ #Response Schemas
RestModuleReference:
type: object
title: Module reference details
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
example: my-cm-handle1
publicCmHandleProperties:
$ref: '#/components/schemas/CmHandlePublicProperties'
+ state:
+ $ref: '#/components/schemas/CmHandleCompositeState'
CmHandlePublicProperties:
- type: array
+ type: object
items:
type: object
additionalProperties:
type: string
- example: Book Type
+ 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'
+
+ 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
+ example: [ "da310eecdb8d44c2acc0ddaae01174b1","c748c58f8e0b438f9fd1f28370b17d47" ]
examples:
dataSampleRequest:
- summary: Sample request
- description: Sample request body
- value:
- test:bookstore:
- bookstore-name: Chapters
- categories:
- - code: '01'
- name: SciFi
- books:
+ 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:
+ - code: '02'
+ name: kids
+ books:
- authors:
- Philip Pullman
- 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
+ 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:
schema:
type: string
example: my-cm-handle
+ 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
includeDescendantsOptionInQuery:
name: include-descendants
in: query
- description: include-descendants
+ description: Determines if descendants are included in response
required: false
schema:
type: boolean
cpsPathInQuery:
name: cps-path
in: query
- description: cps-path
+ 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
sample 3:
value:
resourceIdentifier: parent=shops,child=bookstore
- acceptParamInHeader:
- name: Accept
- in: header
- required: false
- description: Accept parameter for response, if accept parameter is null, that means client can accept any format.
- schema:
- type: string
- enum: [ application/json, application/yang-data+json ]
optionsParamInQuery:
name: options
in: query
sample 1:
value:
topic: my-topic-name
+ requiredTopicParamInQuery:
+ name: topic
+ in: query
+ description: mandatory topic parameter in query.
+ required: true
+ schema:
+ type: string
+ allowReserved: true
+ examples:
+ sample 1:
+ value:
+ topic: my-topic-name
contentParamInHeader:
name: Content-Type
in: header
type: string
default: application/json
example: application/yang-data+json
+ datastoreName:
+ name: datastore-name
+ in: path
+ description: The type of the requested data
+ required: true
+ schema:
+ type: string
+ example: ncmp-datastore:running
responses:
NotFound:
schema:
$ref: '#/components/schemas/ErrorMessage'
example:
- status: 403
- message: Forbidden error message
- details: Forbidden error details
+ status: 403
+ message: Forbidden error message
+ details: Forbidden error details
BadRequest:
description: Bad Request
content:
schema:
$ref: '#/components/schemas/ErrorMessage'
example:
- status: 400 BAD_REQUEST
- message: Bad request error message
- details: Bad request error details
+ status: 400 BAD_REQUEST
+ message: Bad request error message
+ details: Bad request error details
Conflict:
description: Conflict
content:
schema:
$ref: '#/components/schemas/ErrorMessage'
example:
- status: 409 CONFLICT
- message: Conflict error message
- details: Conflict error details
+ status: 409 CONFLICT
+ message: Conflict error message
+ details: Conflict error details
NotImplemented:
description: The given path has not been implemented
content:
schema:
$ref: '#/components/schemas/ErrorMessage'
example:
- status: 501
- message: Not implemented error message
- details: Not implemented error details
+ status: 501
+ message: Not implemented error message
+ details: Not implemented error details
Ok:
description: OK
content:
type: object
Created:
description: Created
- content: {}
+ content: { }
NoContent:
description: No Content
- content: {}
+ content: { }
InternalServerError:
description: Internal Server Error
content: