blob: a43190bccd95a463f5f1ea339aac02e4f8a508a8 [file] [log] [blame]
openapi: 3.0.1
info:
title: NCMP to CPS Proxy API
description: NCMP to CPS Proxy API
version: "1.0"
servers:
- url: /ncmp
paths:
/v1/ch/{cm-handle}/data/ds/ncmp-datastore:passthrough-operational:
get:
tags:
- network-cm-proxy
summary: Get resource data from pass-through operational for cm handle
description: Get resource data from pass-through operational for given cm handle
operationId: getResourceDataOperationalForCmHandle
parameters:
- name: cm-handle
in: path
description: "The identifier for a network function, network element, subnetwork\
\ or any other cm object by managed Network CM Proxy"
required: true
schema:
type: string
example: my-cm-handle
- 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"
- 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
allowReserved: true
schema:
type: string
examples:
sample 1:
value:
options: (depth=3)
sample 2:
value:
options: (fields=book)
sample 3:
value:
options: "(depth=2,fields=book/authors)"
- name: topic
in: query
description: topic parameter in query.
required: false
allowReserved: true
schema:
type: string
examples:
sample 1:
value:
topic: my-topic-name
responses:
"200":
description: OK
content:
application/json:
schema:
type: object
examples:
dataSampleResponse:
$ref: '#/components/examples/dataSampleResponse'
"400":
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
"401":
description: Unauthorized
content:
application/json:
schema:
$ref: '#/components/schemas/ErrorMessage'
example:
status: 401
message: Unauthorized error message
details: Unauthorized error details
"403":
description: Forbidden
content:
application/json:
schema:
$ref: '#/components/schemas/ErrorMessage'
example:
status: 403
message: Forbidden error message
details: Forbidden error details
"500":
description: Internal Server Error
content:
application/json:
schema:
$ref: '#/components/schemas/ErrorMessage'
example:
status: 500
message: Internal Server Error
details: Internal Server Error occurred
"502":
description: Bad Gateway
content:
application/json:
schema:
$ref: '#/components/schemas/DmiErrorMessage'
example:
message: "Bad Gateway Error Message NCMP"
dmi-response:
http-code: 400
body: Bad Request
/v1/ch/{cm-handle}/data/ds/ncmp-datastore:passthrough-running:
get:
tags:
- network-cm-proxy
summary: Get resource data from pass-through running for cm handle
description: Get resource data from pass-through running for given cm handle
operationId: getResourceDataRunningForCmHandle
parameters:
- name: cm-handle
in: path
description: "The identifier for a network function, network element, subnetwork\
\ or any other cm object by managed Network CM Proxy"
required: true
schema:
type: string
example: my-cm-handle
- 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"
- 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
allowReserved: true
schema:
type: string
examples:
sample 1:
value:
options: (depth=3)
sample 2:
value:
options: (fields=book)
sample 3:
value:
options: "(depth=2,fields=book/authors)"
- name: topic
in: query
description: topic parameter in query.
required: false
allowReserved: true
schema:
type: string
examples:
sample 1:
value:
topic: my-topic-name
responses:
"200":
description: OK
content:
application/json:
schema:
type: object
examples:
dataSampleResponse:
$ref: '#/components/examples/dataSampleResponse'
"400":
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
"401":
description: Unauthorized
content:
application/json:
schema:
$ref: '#/components/schemas/ErrorMessage'
example:
status: 401
message: Unauthorized error message
details: Unauthorized error details
"403":
description: Forbidden
content:
application/json:
schema:
$ref: '#/components/schemas/ErrorMessage'
example:
status: 403
message: Forbidden error message
details: Forbidden error details
"500":
description: Internal Server Error
content:
application/json:
schema:
$ref: '#/components/schemas/ErrorMessage'
example:
status: 500
message: Internal Server Error
details: Internal Server Error occurred
"502":
description: Bad Gateway
content:
application/json:
schema:
$ref: '#/components/schemas/DmiErrorMessage'
example:
message: "Bad Gateway Error Message NCMP"
dmi-response:
http-code: 400
body: Bad Request
put:
tags:
- network-cm-proxy
summary: Update resource data from pass-through running for a cm handle
description: Update resource data from pass-through running for the given cm
handle
operationId: updateResourceDataRunningForCmHandle
parameters:
- name: cm-handle
in: path
description: "The identifier for a network function, network element, subnetwork\
\ or any other cm object by managed Network CM Proxy"
required: true
schema:
type: string
example: my-cm-handle
- 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"
- name: Content-Type
in: header
description: "Content parameter for request, if content parameter is null,\
\ default value is application/json."
required: false
schema:
type: string
example: application/yang-data+json
default: application/json
requestBody:
content:
application/json:
schema:
type: object
examples:
dataSampleRequest:
$ref: '#/components/examples/dataSampleRequest'
application/yang-data+json:
schema:
type: object
examples:
dataSampleRequest:
$ref: '#/components/examples/dataSampleRequest'
required: true
responses:
"200":
description: OK
content:
application/json:
schema:
type: object
"400":
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
"401":
description: Unauthorized
content:
application/json:
schema:
$ref: '#/components/schemas/ErrorMessage'
example:
status: 401
message: Unauthorized error message
details: Unauthorized error details
"403":
description: Forbidden
content:
application/json:
schema:
$ref: '#/components/schemas/ErrorMessage'
example:
status: 403
message: Forbidden error message
details: Forbidden error details
"500":
description: Internal Server Error
content:
application/json:
schema:
$ref: '#/components/schemas/ErrorMessage'
example:
status: 500
message: Internal Server Error
details: Internal Server Error occurred
"502":
description: Bad Gateway
content:
application/json:
schema:
$ref: '#/components/schemas/DmiErrorMessage'
example:
message: "Bad Gateway Error Message NCMP"
dmi-response:
http-code: 400
body: Bad Request
post:
tags:
- network-cm-proxy
summary: create resource data from pass-through running for cm handle
description: create resource data from pass-through running for given cm handle
operationId: createResourceDataRunningForCmHandle
parameters:
- name: cm-handle
in: path
description: "The identifier for a network function, network element, subnetwork\
\ or any other cm object by managed Network CM Proxy"
required: true
schema:
type: string
example: my-cm-handle
- 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"
- name: Content-Type
in: header
description: "Content parameter for request, if content parameter is null,\
\ default value is application/json."
required: false
schema:
type: string
example: application/yang-data+json
default: application/json
requestBody:
content:
application/json:
schema:
type: object
examples:
dataSampleRequest:
$ref: '#/components/examples/dataSampleRequest'
application/yang-data+json:
schema:
type: object
examples:
dataSampleRequest:
$ref: '#/components/examples/dataSampleRequest'
required: true
responses:
"201":
description: Created
content: {}
"400":
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
"401":
description: Unauthorized
content:
application/json:
schema:
$ref: '#/components/schemas/ErrorMessage'
example:
status: 401
message: Unauthorized error message
details: Unauthorized error details
"403":
description: Forbidden
content:
application/json:
schema:
$ref: '#/components/schemas/ErrorMessage'
example:
status: 403
message: Forbidden error message
details: Forbidden error details
"500":
description: Internal Server Error
content:
application/json:
schema:
$ref: '#/components/schemas/ErrorMessage'
example:
status: 500
message: Internal Server Error
details: Internal Server Error occurred
"502":
description: Bad Gateway
content:
application/json:
schema:
$ref: '#/components/schemas/DmiErrorMessage'
example:
message: "Bad Gateway Error Message NCMP"
dmi-response:
http-code: 400
body: Bad Request
delete:
tags:
- network-cm-proxy
summary: Delete resource data
description: Delete resource data from pass-through running for a given cm handle
operationId: deleteResourceDataRunningForCmHandle
parameters:
- name: cm-handle
in: path
description: "The identifier for a network function, network element, subnetwork\
\ or any other cm object by managed Network CM Proxy"
required: true
schema:
type: string
example: my-cm-handle
- 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"
- name: Content-Type
in: header
description: "Content parameter for request, if content parameter is null,\
\ default value is application/json."
required: false
schema:
type: string
example: application/yang-data+json
default: application/json
responses:
"204":
description: No Content
content: {}
"400":
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
"401":
description: Unauthorized
content:
application/json:
schema:
$ref: '#/components/schemas/ErrorMessage'
example:
status: 401
message: Unauthorized error message
details: Unauthorized error details
"403":
description: Forbidden
content:
application/json:
schema:
$ref: '#/components/schemas/ErrorMessage'
example:
status: 403
message: Forbidden error message
details: Forbidden error details
"404":
description: The specified resource was not found
content:
application/json:
schema:
$ref: '#/components/schemas/ErrorMessage'
example:
status: 400
message: Not found error message
details: Not found error details
"500":
description: Internal Server Error
content:
application/json:
schema:
$ref: '#/components/schemas/ErrorMessage'
example:
status: 500
message: Internal Server Error
details: Internal Server Error occurred
"502":
description: Bad Gateway
content:
application/json:
schema:
$ref: '#/components/schemas/DmiErrorMessage'
example:
message: "Bad Gateway Error Message NCMP"
dmi-response:
http-code: 400
body: Bad Request
patch:
tags:
- network-cm-proxy
summary: Patch resource data from pass-through running
description: Patch resource data from pass-through running for the given cm
handle
operationId: patchResourceDataRunningForCmHandle
parameters:
- name: cm-handle
in: path
description: "The identifier for a network function, network element, subnetwork\
\ or any other cm object by managed Network CM Proxy"
required: true
schema:
type: string
example: my-cm-handle
- 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"
- name: Content-Type
in: header
description: "Content parameter for request, if content parameter is null,\
\ default value is application/json."
required: false
schema:
type: string
example: application/yang-data+json
default: application/json
requestBody:
content:
'*/*':
schema:
type: object
examples:
dataSampleRequest:
$ref: '#/components/examples/dataSamplePatchRequest'
required: true
responses:
"200":
description: OK
content:
application/json:
schema:
type: object
"400":
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
"401":
description: Unauthorized
content:
application/json:
schema:
$ref: '#/components/schemas/ErrorMessage'
example:
status: 401
message: Unauthorized error message
details: Unauthorized error details
"403":
description: Forbidden
content:
application/json:
schema:
$ref: '#/components/schemas/ErrorMessage'
example:
status: 403
message: Forbidden error message
details: Forbidden error details
"500":
description: Internal Server Error
content:
application/json:
schema:
$ref: '#/components/schemas/ErrorMessage'
example:
status: 500
message: Internal Server Error
details: Internal Server Error occurred
"502":
description: Bad Gateway
content:
application/json:
schema:
$ref: '#/components/schemas/DmiErrorMessage'
example:
message: "Bad Gateway Error Message NCMP"
dmi-response:
http-code: 400
body: Bad Request
/v1/ch/{cm-handle}/modules:
get:
tags:
- network-cm-proxy
summary: Fetch all module references (name and revision) for a given cm handle
description: fetch all module references (name and revision) for a given cm
handle
operationId: getModuleReferencesByCmHandle
parameters:
- name: cm-handle
in: path
description: "The identifier for a network function, network element, subnetwork\
\ or any other cm object by managed Network CM Proxy"
required: true
schema:
type: string
example: my-cm-handle
responses:
"200":
description: OK
content:
application/json:
schema:
type: array
items:
$ref: '#/components/schemas/RestModuleReference'
"400":
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
"401":
description: Unauthorized
content:
application/json:
schema:
$ref: '#/components/schemas/ErrorMessage'
example:
status: 401
message: Unauthorized error message
details: Unauthorized error details
"403":
description: Forbidden
content:
application/json:
schema:
$ref: '#/components/schemas/ErrorMessage'
example:
status: 403
message: Forbidden error message
details: Forbidden error details
"500":
description: Internal Server Error
content:
application/json:
schema:
$ref: '#/components/schemas/ErrorMessage'
example:
status: 500
message: Internal Server Error
details: Internal Server Error occurred
/v1/ch/searches:
post:
tags:
- network-cm-proxy
summary: Execute cm handle search using the available conditions
description: Execute cm handle searches using 'hasAllModules' condition to get
all cm handles for the given module names
operationId: executeCmHandleSearch
requestBody:
content:
application/json:
schema:
$ref: '#/components/schemas/Conditions'
required: true
responses:
"200":
description: OK
content:
application/json:
schema:
$ref: '#/components/schemas/CmHandles'
"400":
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
"401":
description: Unauthorized
content:
application/json:
schema:
$ref: '#/components/schemas/ErrorMessage'
example:
status: 401
message: Unauthorized error message
details: Unauthorized error details
"403":
description: Forbidden
content:
application/json:
schema:
$ref: '#/components/schemas/ErrorMessage'
example:
status: 403
message: Forbidden error message
details: Forbidden error details
"500":
description: Internal Server Error
content:
application/json:
schema:
$ref: '#/components/schemas/ErrorMessage'
example:
status: 500
message: Internal Server Error
details: Internal Server Error occurred
/v1/ch/{cm-handle}:
get:
tags:
- network-cm-proxy
summary: Retrieve CM handle details
description: Retrieve CM handle details and properties by cm handle id
operationId: retrieveCmHandleDetailsById
parameters:
- name: cm-handle
in: path
description: "The identifier for a network function, network element, subnetwork\
\ or any other cm object by managed Network CM Proxy"
required: true
schema:
type: string
example: my-cm-handle
responses:
"200":
description: OK
content:
application/json:
schema:
$ref: '#/components/schemas/RestOutputCmHandle'
"400":
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
"401":
description: Unauthorized
content:
application/json:
schema:
$ref: '#/components/schemas/ErrorMessage'
example:
status: 401
message: Unauthorized error message
details: Unauthorized error details
"403":
description: Forbidden
content:
application/json:
schema:
$ref: '#/components/schemas/ErrorMessage'
example:
status: 403
message: Forbidden error message
details: Forbidden error details
"404":
description: The specified resource was not found
content:
application/json:
schema:
$ref: '#/components/schemas/ErrorMessage'
example:
status: 400
message: Not found error message
details: Not found error details
"500":
description: Internal Server Error
content:
application/json:
schema:
$ref: '#/components/schemas/ErrorMessage'
example:
status: 500
message: Internal Server Error
details: Internal Server Error occurred
components:
schemas:
ErrorMessage:
title: Error
type: object
properties:
status:
type: string
message:
type: string
details:
type: string
# DMI Server Exception Schema
DmiErrorMessage:
title: DMI Error Message
type: object
properties:
message:
type: string
example: "Bad Gateway Error Message NCMP"
dmi-response:
type: object
properties:
http-code:
type: integer
example: 400
body:
type: string
example: Bad Request
RestModuleReference:
title: Module reference details
type: object
properties:
moduleName:
type: string
example: my-module-name
revision:
type: string
example: my-module-revision
Conditions:
type: object
properties:
conditions:
$ref: '#/components/schemas/ConditionsData'
ConditionsData:
type: array
items:
$ref: '#/components/schemas/ConditionProperties'
ConditionProperties:
properties:
name:
type: string
example: hasAllModules
conditionParameters:
$ref: '#/components/schemas/ModuleNamesAsJsonArray'
ModuleNamesAsJsonArray:
type: array
items:
$ref: '#/components/schemas/ModuleNameAsJsonObject'
ModuleNameAsJsonObject:
properties:
moduleName:
type: string
example: my-module
CmHandles:
type: object
properties:
cmHandles:
$ref: '#/components/schemas/CmHandleProperties'
CmHandleProperties:
type: array
items:
$ref: '#/components/schemas/CmHandleProperty'
CmHandleProperty:
properties:
cmHandleId:
type: string
example: my-cm-handle-id
RestOutputCmHandle:
title: CM handle Details
type: object
properties:
cmHandle:
type: string
example: my-cm-handle1
publicCmHandleProperties:
$ref: '#/components/schemas/CmHandlePublicProperties'
CmHandlePublicProperties:
type: array
items:
type: object
additionalProperties:
type: string
example: Book Type
examples:
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
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