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:
$ref: '#/components/schemas/RestCmHandle'
+ updatedCmHandles:
+ type: array
+ items:
+ $ref: '#/components/schemas/RestCmHandle'
+ removedCmHandles:
+ 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:
type: object
additionalProperties:
type: string
- example: system-001
+ example: my-additional-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
default: /
-
+ resourceIdentifierInQuery:
+ name: resourceIdentifier
+ in: query
+ description: The format of resource identifier depend on the associated DMI Plugin implementation. For ONAP DMI Plugin it will be RESTConf paths but it can really be anything.
+ required: true
+ allowReserved: true
+ schema:
+ type: string
+ examples:
+ sample 1:
+ value:
+ resourceIdentifier: \shops\bookstore
+ sample 2:
+ value:
+ resourceIdentifier: \shops\bookstore\categories[@code=1]
+ 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
+ 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:
+ sample 1:
+ value:
+ options: (depth=3)
+ sample 2:
+ value:
+ options: (fields=book)
+ sample 3:
+ value:
+ options: (depth=2,fields=book/authors)
+ contentParamInHeader:
+ name: Content-Type
+ in: header
+ required: false
+ description: Content parameter for request, if content parameter is null, default value is application/json.
+ 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: