openapi: 3.0.1 info: title: NCMP DMI Plugin description: Adds Data Model Inventory Registry capability for ONAP version: 1.0.0 servers: - url: /dmi tags: - name: dmi-plugin-internal description: DMI plugin internal rest apis - name: dmi-plugin description: DMI plugin rest apis paths: /v1/ch/{cmHandle}/modules: post: tags: - dmi-plugin summary: Get all modules for cm handle description: Get all modules for given cm handle operationId: getModuleReferences parameters: - name: cmHandle 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 requestBody: description: Operational body content: application/json: schema: $ref: '#/components/schemas/ModuleReferencesRequest' responses: "200": description: OK content: application/json: schema: $ref: '#/components/schemas/ModuleSet' "404": 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 "500": description: Internal Server Error content: application/json: schema: $ref: '#/components/schemas/ErrorMessage' example: status: 500 message: Internal Server Error details: Internal Server Error occured /v1/ch/{cmHandle}/moduleResources: post: tags: - dmi-plugin summary: Retrieve module resources description: Retrieve module resources for one or more modules operationId: retrieveModuleResources parameters: - name: cmHandle 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 requestBody: content: application/json: schema: $ref: '#/components/schemas/ModuleResourcesReadRequest' required: true responses: "200": description: OK content: application/json: schema: $ref: '#/components/schemas/YangResources' "404": 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 "500": description: Internal Server Error content: application/json: schema: $ref: '#/components/schemas/ErrorMessage' example: status: 500 message: Internal Server Error details: Internal Server Error occured /v1/inventory/cmHandles: post: tags: - dmi-plugin-internal summary: register given list of cm handles (internal use only) description: register given list of cm handles (internal use only) operationId: registerCmHandles requestBody: description: list of cm handles content: application/json: schema: $ref: '#/components/schemas/CmHandles' required: true responses: "201": description: Created content: text/plain: schema: type: string example: cm-handle registered successfully "400": description: Bad Request content: application/json: schema: $ref: '#/components/schemas/ErrorMessage' example: status: 400 message: Bad Request details: The provided request is not valid "500": description: Internal Server Error content: application/json: schema: $ref: '#/components/schemas/ErrorMessage' example: status: 500 message: Internal Server Error details: Internal Server Error occured x-api-audience: component-internal /v1/ch/{cmHandle}/data/ds/ncmp-datastore:passthrough-operational: post: tags: - dmi-plugin summary: Get resource data from passthrough-operational for cm handle description: Get resource data from passthrough-operational for cm handle. Will support read operations only. operationId: dataAccessPassthroughOperational parameters: - name: cmHandle 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: Resource identifier to get/set the resource data required: true allowReserved: true schema: type: string example: my-schema:my-node - name: options in: query description: options parameter in query, it is mandatory to wrap key(s)=value(s) in parenthesis'()'. required: false allowReserved: true schema: type: string examples: sample1: value: options: (key1=value1,key2=value2) sample2: value: options: (key1=value1,key2=value1/value2) sample3: value: options: (key1=10,key2=value2,key3=val31,val32) - name: topic in: query description: topic name passed from client(NCMP). required: false allowReserved: true schema: type: string examples: sample1: value: my-topic-name requestBody: description: Operational body content: application/json: schema: $ref: '#/components/schemas/DataAccessRequest' responses: "200": description: OK content: application/json: schema: type: object example: - yangSource: my-yang-source moduleName: my-module-name revision: my-revision "400": description: Bad Request content: application/json: schema: $ref: '#/components/schemas/ErrorMessage' example: status: 400 message: Bad Request details: The provided request is not valid "500": description: Internal Server Error content: application/json: schema: $ref: '#/components/schemas/ErrorMessage' example: status: 500 message: Internal Server Error details: Internal Server Error occured /v1/ch/{cmHandle}/data/ds/ncmp-datastore:passthrough-running: post: tags: - dmi-plugin summary: Get, Create or Update request for data passthrough-running for a cm-handle description: Post request to Get, Create or to Update resource data for a cm-handle. Since all requests need to include additional information in a request body HTTP Post is used for all use cases and the actual operation is defined in the request body instead. operationId: dataAccessPassthroughRunning parameters: - name: cmHandle 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: Resource identifier to get/set the resource data required: true allowReserved: true schema: type: string example: my-schema:my-node - name: options in: query description: options parameter in query, it is mandatory to wrap key(s)=value(s) in parenthesis'()'. required: false allowReserved: true schema: type: string examples: sample1: value: options: (key1=value1,key2=value2) sample2: value: options: (key1=value1,key2=value1/value2) sample3: value: options: (key1=10,key2=value2,key3=val31,val32) - name: topic in: query description: topic name passed from client(NCMP). required: false allowReserved: true schema: type: string examples: sample1: value: my-topic-name requestBody: content: application/json: schema: $ref: '#/components/schemas/DataAccessRequest' responses: "200": description: OK content: application/json: schema: type: object example: - yangSource: my-yang-source moduleName: my-module-name revision: my-revision "201": description: Created content: text/plain: schema: type: string example: my-resource "204": description: No Content content: {} "400": description: Bad Request content: application/json: schema: $ref: '#/components/schemas/ErrorMessage' example: status: 400 message: Bad Request details: The provided request is not valid "500": description: Internal Server Error content: application/json: schema: $ref: '#/components/schemas/ErrorMessage' example: status: 500 message: Internal Server Error details: Internal Server Error occured components: securitySchemes: basicAuth: type: http scheme: basic schemas: ModuleReferencesRequest: type: object properties: cmHandleProperties: $ref: '#/components/schemas/cmHandleProperties' cmHandleProperties: type: object additionalProperties: type: string example: '{"prop1":"value1","prop2":"value2"}' ModuleSet: type: object properties: schemas: type: array items: $ref: '#/components/schemas/ModuleSet_schemas' ErrorMessage: title: Error type: object properties: status: type: string message: type: string details: type: string ModuleResourcesReadRequest: type: object properties: data: $ref: '#/components/schemas/ModuleResourcesReadRequest_data' cmHandleProperties: $ref: '#/components/schemas/cmHandleProperties' YangResources: type: array items: $ref: '#/components/schemas/YangResource' YangResource: properties: yangSource: type: string example: my-yang-source moduleName: type: string example: my-module-name revision: type: string example: my-revision CmHandles: type: object properties: cmHandles: type: array example: - cmHandleId1 - cmHandleId2 - cmHandleId3 items: type: string DataAccessRequest: type: object properties: operation: type: string example: read enum: - read - create - update - patch - delete dataType: type: string example: my-data-type data: type: string example: my-data cmHandleProperties: $ref: '#/components/schemas/cmHandleProperties' requestId: type: string example: 3a9ce55c-e365-4dc9-8da3-a06f07cbc6d7 ModuleSet_schemas: type: object properties: moduleName: type: string example: my-module-name revision: type: string example: my-revision namespace: type: string example: my-namespace ModuleResourcesReadRequest_data_modules: type: object properties: name: type: string example: my-name revision: type: string example: my-revision ModuleResourcesReadRequest_data: type: object properties: modules: type: array items: $ref: '#/components/schemas/ModuleResourcesReadRequest_data_modules' security: - basicAuth: []