openapi: 3.0.1 info: description: Adds Data Model Inventory Registry capability for ONAP title: NCMP DMI Plugin version: 1.0.0 servers: - url: /dmi tags: - description: DMI plugin internal rest apis name: dmi-plugin-internal - description: DMI plugin rest apis name: dmi-plugin paths: /v1/ch/{cmHandle}/modules: post: description: Get all modules for given cm handle operationId: getModuleReferences parameters: - description: "The CM handle or alternate identifier for a network function,\ \ network element, subnetwork, or any other CM object managed by Network\ \ CM Proxy" in: path name: cmHandle required: true schema: example: my-cm-handle type: string requestBody: content: application/json: schema: $ref: '#/components/schemas/ModuleReferencesRequest' description: Operational body responses: "200": content: application/json: schema: $ref: '#/components/schemas/ModuleSet' description: OK "404": content: application/json: example: status: 404 message: Resource Not Found details: The requested resource is not found schema: $ref: '#/components/schemas/ErrorMessage' description: The specified resource was not found "500": content: application/json: example: status: 500 message: Internal Server Error details: Internal Server Error occured schema: $ref: '#/components/schemas/ErrorMessage' description: Internal Server Error summary: Get all modules for cm handle tags: - dmi-plugin /v1/ch/{cmHandle}/moduleResources: post: description: Retrieve module resources for one or more modules operationId: retrieveModuleResources parameters: - description: "The CM handle or alternate identifier for a network function,\ \ network element, subnetwork, or any other CM object managed by Network\ \ CM Proxy" in: path name: cmHandle required: true schema: example: my-cm-handle type: string requestBody: content: application/json: schema: $ref: '#/components/schemas/ModuleResourcesReadRequest' required: true responses: "200": content: application/json: schema: $ref: '#/components/schemas/YangResources' description: OK "404": content: application/json: example: status: 404 message: Resource Not Found details: The requested resource is not found schema: $ref: '#/components/schemas/ErrorMessage' description: The specified resource was not found "500": content: application/json: example: status: 500 message: Internal Server Error details: Internal Server Error occured schema: $ref: '#/components/schemas/ErrorMessage' description: Internal Server Error summary: Retrieve module resources tags: - dmi-plugin /v1/inventory/cmHandles: post: description: register given list of cm handles (internal use only) operationId: registerCmHandles requestBody: content: application/json: schema: $ref: '#/components/schemas/CmHandles' description: list of cm handles required: true responses: "201": content: text/plain: schema: example: cm-handle registered successfully type: string description: Created "400": content: application/json: example: status: 400 message: Bad Request details: The provided request is not valid schema: $ref: '#/components/schemas/ErrorMessage' description: Bad Request "500": content: application/json: example: status: 500 message: Internal Server Error details: Internal Server Error occured schema: $ref: '#/components/schemas/ErrorMessage' description: Internal Server Error summary: register given list of cm handles (internal use only) tags: - dmi-plugin-internal x-api-audience: component-internal /v1/ch/{cmHandle}/data/ds/{datastore-name}: post: description: Get resource data from passthrough operational or running for a cm handle operationId: dataAccessPassthrough parameters: - description: The type of the requested data in: path name: datastore-name required: true schema: example: ncmp-datastore:passthrough-operational or ncmp-datastore:passthrough-running type: string - description: "The CM handle or alternate identifier for a network function,\ \ network element, subnetwork, or any other CM object managed by Network\ \ CM Proxy" in: path name: cmHandle required: true schema: example: my-cm-handle type: string - description: Resource identifier to get/set the resource data in: query name: resourceIdentifier required: true schema: example: my-schema:my-node type: string - description: "options parameter in query, it is mandatory to wrap key(s)=value(s)\ \ in parenthesis'()'." 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)" in: query name: options required: false schema: type: string - description: topic name passed from client(NCMP). examples: sample1: value: my-topic-name in: query name: topic required: false schema: type: string requestBody: content: application/json: schema: $ref: '#/components/schemas/DataAccessRequest' description: Contains collection of cm handles with it's private properties and requestId responses: "200": content: application/json: schema: example: - yangSource: my-yang-source moduleName: my-module-name revision: my-revision type: object description: OK "400": content: application/json: example: status: 400 message: Bad Request details: The provided request is not valid schema: $ref: '#/components/schemas/ErrorMessage' description: Bad Request "500": content: application/json: example: status: 500 message: Internal Server Error details: Internal Server Error occured schema: $ref: '#/components/schemas/ErrorMessage' description: Internal Server Error summary: Get resource data from passthrough operational or running for a cm handle tags: - dmi-plugin /v1/data: post: description: Execute a data operation for group of CM handle (IDs or alternate IDs) by supplied operation details operationId: getResourceDataForCmHandleDataOperation parameters: - description: mandatory topic name passed from client(NCMP). examples: sample1: value: topic: my-topic-name in: query name: topic required: true schema: type: string - description: request ID generated by NCMP and is sent here and sent as an acknowledgement for the client request. examples: sample1: value: 4753fc1f-7de2-449a-b306-a6204b5370b3 in: query name: requestId required: true schema: type: string requestBody: content: application/json: schema: $ref: '#/components/schemas/ResourceDataOperationRequests' description: list of operation details responses: "202": description: Accepted "400": content: application/json: example: status: 400 message: Bad Request details: The provided request is not valid schema: $ref: '#/components/schemas/ErrorMessage' description: Bad Request "500": content: application/json: example: status: 500 message: Internal Server Error details: Internal Server Error occured schema: $ref: '#/components/schemas/ErrorMessage' description: Internal Server Error "501": content: application/json: example: status: 501 message: Not Implemented details: Method Not Implemented schema: $ref: '#/components/schemas/ErrorMessage' description: Not Implemented summary: Execute a data operation for group of CM handle references. tags: - dmi-plugin components: parameters: cmHandleInPath: description: "The CM handle or alternate identifier for a network function,\ \ network element, subnetwork, or any other CM object managed by Network CM\ \ Proxy" in: path name: cmHandle required: true schema: example: my-cm-handle type: string datastoreName: description: The type of the requested data in: path name: datastore-name required: true schema: example: ncmp-datastore:passthrough-operational or ncmp-datastore:passthrough-running type: string resourceIdentifierInQuery: description: Resource identifier to get/set the resource data in: query name: resourceIdentifier required: true schema: example: my-schema:my-node type: string optionsParamInQuery: description: "options parameter in query, it is mandatory to wrap key(s)=value(s)\ \ in parenthesis'()'." 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)" in: query name: options required: false schema: type: string topicParamInQuery: description: topic name passed from client(NCMP). examples: sample1: value: my-topic-name in: query name: topic required: false schema: type: string requiredTopicParamInQuery: description: mandatory topic name passed from client(NCMP). examples: sample1: value: topic: my-topic-name in: query name: topic required: true schema: type: string requiredRequestIdParamInQuery: description: request ID generated by NCMP and is sent here and sent as an acknowledgement for the client request. examples: sample1: value: 4753fc1f-7de2-449a-b306-a6204b5370b3 in: query name: requestId required: true schema: type: string responses: NotFound: content: application/json: example: status: 404 message: Resource Not Found details: The requested resource is not found schema: $ref: '#/components/schemas/ErrorMessage' description: The specified resource was not found ServerError: content: application/json: example: status: 500 message: Internal Server Error details: Internal Server Error occured schema: $ref: '#/components/schemas/ErrorMessage' description: Internal Server Error BadRequest: content: application/json: example: status: 400 message: Bad Request details: The provided request is not valid schema: $ref: '#/components/schemas/ErrorMessage' description: Bad Request NotImplemented: content: application/json: example: status: 501 message: Not Implemented details: Method Not Implemented schema: $ref: '#/components/schemas/ErrorMessage' description: Not Implemented schemas: ModuleReferencesRequest: example: moduleSetTag: moduleSetTag cmHandleProperties: key: "{\"prop1\":\"value1\",\"prop2\":\"value2\"}" properties: moduleSetTag: type: string cmHandleProperties: additionalProperties: example: "{\"prop1\":\"value1\",\"prop2\":\"value2\"}" type: string nullable: true type: object type: object cmHandleProperties: additionalProperties: example: "{\"prop1\":\"value1\",\"prop2\":\"value2\"}" type: string nullable: true type: object ModuleSet: example: schemas: - moduleName: my-module-name namespace: my-namespace revision: my-revision - moduleName: my-module-name namespace: my-namespace revision: my-revision properties: schemas: items: $ref: '#/components/schemas/ModuleSet_schemas_inner' type: array type: object ErrorMessage: properties: status: type: string message: type: string details: type: string title: Error type: object ModuleResourcesReadRequest: example: data: modules: - name: my-name revision: my-revision - name: my-name revision: my-revision moduleSetTag: Module-set-tag-1 cmHandleProperties: key: "{\"prop1\":\"value1\",\"prop2\":\"value2\"}" properties: moduleSetTag: description: Module set tag of the given cm handle example: Module-set-tag-1 type: string data: $ref: '#/components/schemas/ModuleResourcesReadRequest_data' cmHandleProperties: additionalProperties: example: "{\"prop1\":\"value1\",\"prop2\":\"value2\"}" type: string nullable: true type: object type: object YangResources: items: $ref: '#/components/schemas/YangResource' type: array YangResource: example: yangSource: my-yang-source moduleName: my-module-name revision: my-revision properties: yangSource: example: my-yang-source type: string moduleName: example: my-module-name type: string revision: example: my-revision type: string CmHandles: example: cmHandles: - cmHandleId1 - cmHandleId2 - cmHandleId3 properties: cmHandles: example: - cmHandleId1 - cmHandleId2 - cmHandleId3 items: type: string type: array type: object DataAccessRequest: example: data: my-data requestId: 3a9ce55c-e365-4dc9-8da3-a06f07cbc6d7 dataType: my-data-type cmHandleProperties: key: "{\"prop1\":\"value1\",\"prop2\":\"value2\"}" moduleSetTag: module-set-tag1 operation: read properties: operation: enum: - read - create - update - patch - delete example: read type: string dataType: example: my-data-type type: string data: example: my-data type: string cmHandleProperties: additionalProperties: example: "{\"prop1\":\"value1\",\"prop2\":\"value2\"}" type: string nullable: true type: object requestId: example: 3a9ce55c-e365-4dc9-8da3-a06f07cbc6d7 type: string moduleSetTag: example: module-set-tag1 type: string type: object ResourceDataOperationRequests: items: $ref: '#/components/schemas/DataOperationRequest' type: array dmiOperationCmHandle: example: id: cmHandle123 cmHandleProperties: myProp: some value otherProp: other value moduleSetTag: module-set-tag1 properties: id: type: string cmHandleProperties: additionalProperties: type: string type: object moduleSetTag: example: module-set-tag1 type: string title: CmHandle with properties for DMI type: object ModuleSet_schemas_inner: example: moduleName: my-module-name namespace: my-namespace revision: my-revision properties: moduleName: example: my-module-name type: string revision: example: my-revision type: string namespace: example: my-namespace type: string type: object ModuleResourcesReadRequest_data_modules_inner: example: name: my-name revision: my-revision properties: name: example: my-name type: string revision: example: my-revision type: string type: object ModuleResourcesReadRequest_data: example: modules: - name: my-name revision: my-revision - name: my-name revision: my-revision properties: modules: items: $ref: '#/components/schemas/ModuleResourcesReadRequest_data_modules_inner' type: array type: object DataOperationRequest: example: resourceIdentifier: some resource identifier datastore: ncmp-datastore:passthrough-operational options: some option operationId: "12" cmHandles: - id: cmHandle123 cmHandleProperties: myProp: some value otherProp: other value moduleSetTag: module-set-tag1 - id: cmHandle123 cmHandleProperties: myProp: some value otherProp: other value moduleSetTag: module-set-tag1 operation: read properties: operation: example: read type: string operationId: description: it is recommended that the operationId is unique within the scope of the request example: "12" type: string datastore: example: ncmp-datastore:passthrough-operational type: string options: example: some option type: string resourceIdentifier: example: some resource identifier type: string cmHandles: items: $ref: '#/components/schemas/dmiOperationCmHandle' type: array required: - cmHandles - datastore - operation - operationId title: DataOperationRequest type: object