# ============LICENSE_START=======================================================
-# Copyright (C) 2021 Nordix Foundation
+# Copyright (C) 2021-2022 Nordix Foundation
# Modifications Copyright (C) 2021 Pantheon.tech
# ================================================================================
# Licensed under the Apache License, Version 2.0 (the "License");
components:
schemas:
+ # Common Schemas
ErrorMessage:
type: object
title: Error
details:
type: string
+ # Request Schemas
RestDmiPluginRegistration:
type: object
properties:
dmiPlugin:
type: string
- example: onap-dmi-plugin
+ example: my-dmi-plugin
+ dmiDataPlugin:
+ type: string
+ example: my-dmi-data-plugin
+ dmiModelPlugin:
+ type: string
+ example: my-dmi-model-plugin
createdCmHandles:
type: array
items:
type: array
items:
type: string
+ example: [my-cm-handle1, my-cm-handle2, my-cm-handle3]
RestCmHandle:
required:
properties:
cmHandle:
type: string
- example: cmHandle123
+ example: my-cm-handle
cmHandleProperties:
- $ref: '#/components/schemas/RestCmHandleAdditionalProperties'
- RestCmHandleAdditionalProperties:
+ $ref: '#/components/schemas/RestCmHandleProperties'
+ publicCmHandleProperties:
+ $ref: '#/components/schemas/RestCmHandleProperties'
+ RestCmHandleProperties:
type: object
additionalProperties:
type: string
- example: system-001
+ 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:
+ type: object
+ properties:
+ cmHandles:
+ $ref: '#/components/schemas/CmHandleProperties'
+ CmHandleProperties:
+ type: array
+ items:
+ type: object
+ $ref: '#/components/schemas/CmHandleProperty'
+ CmHandleProperty:
+ properties:
+ cmHandleId:
+ type: string
+ example: my-cm-handle-id
+
+ ModuleReference:
+ type: object
+ title: Module reference details
+ properties:
+ moduleName:
+ type: string
+ example: my-module-name
+ revision:
+ type: string
+ example: my-module-revision
+
+ 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
parameters:
cmHandleInPath:
required: true
schema:
type: string
+ example: my-cm-handle
xpathInQuery:
name: xpath
in: query
schema:
type: string
examples:
- sample1:
- value:
- resourceIdentifier: \parent\child
- sample2:
+ sample 1:
value:
- resourceIdentifier: \parent\listElement[key=value]
- sample3:
+ resourceIdentifier: \shops\bookstore
+ sample 2:
value:
- resourceIdentifier: \parent\listElement[key=value]\grandChild
- sample4:
+ resourceIdentifier: \shops\bookstore\categories[@code=1]
+ sample 3:
value:
- resourceIdentifier: parent=1,child=abc
+ resourceIdentifier: parent=shops,child=bookstore
acceptParamInHeader:
name: Accept
in: header
optionsParamInQuery:
name: options
in: query
- description: options parameter in query, it is mandatory to wrap key(s)=value(s) in parenthesis'()'.
+ 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
allowReserved: true
examples:
- sample1:
+ sample 1:
value:
- options: (key1=value1,key2=value2)
- sample2:
+ options: (depth=3)
+ sample 2:
value:
- options: (key1=value1,key2=value1/value2)
- sample3:
+ options: (fields=book)
+ sample 3:
value:
- options: (key1=10,key2=value2,key3=[val31;val32])
+ options: (depth=2,fields=book/authors)
contentParamInHeader:
name: Content-Type
in: header
schema:
type: string
default: application/json
-
+ example: application/yang-data+json
responses:
NotFound:
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 BAD_REQUEST
+ message: Bad request error message
+ details: Bad request error details
Conflict:
description: Conflict
content:
application/json:
schema:
$ref: '#/components/schemas/ErrorMessage'
+ example:
+ status: 409 CONFLICT
+ message: Conflict error message
+ details: Conflict 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: