X-Git-Url: https://gerrit.onap.org/r/gitweb?a=blobdiff_plain;f=cps-ncmp-rest%2Fdocs%2Fopenapi%2Fcomponents.yaml;h=c1e05876cafb4dab5403b099d5d69715811b036d;hb=7dfc3a01f327654d64451865ac05b819c5583b27;hp=021a79037db9c587586fbfb7169364ec6fa4e052;hpb=63132cec2c18363a8224646039cc23b6144d8e6c;p=cps.git diff --git a/cps-ncmp-rest/docs/openapi/components.yaml b/cps-ncmp-rest/docs/openapi/components.yaml index 021a79037..c1e05876c 100644 --- a/cps-ncmp-rest/docs/openapi/components.yaml +++ b/cps-ncmp-rest/docs/openapi/components.yaml @@ -1,6 +1,7 @@ # ============LICENSE_START======================================================= # Copyright (C) 2021-2022 Nordix Foundation # Modifications Copyright (C) 2021 Pantheon.tech +# Modifications Copyright (C) 2022 Bell Canada # ================================================================================ # Licensed under the Apache License, Version 2.0 (the "License"); # you may not use this file except in compliance with the License. @@ -30,7 +31,23 @@ components: 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 # Request Schemas RestDmiPluginRegistration: type: object @@ -38,27 +55,67 @@ components: dmiPlugin: type: string example: my-dmi-plugin + default: "" dmiDataPlugin: type: string example: my-dmi-data-plugin + default: "" dmiModelPlugin: type: string example: my-dmi-model-plugin + default: "" createdCmHandles: type: array items: - $ref: '#/components/schemas/RestCmHandle' + $ref: '#/components/schemas/RestInputCmHandle' updatedCmHandles: type: array items: - $ref: '#/components/schemas/RestCmHandle' + $ref: '#/components/schemas/RestInputCmHandle' + example: + cmHandle: my-cm-handle + cmHandleProperties: + add-my-property: add-property + update-my-property: updated-property + delete-my-property: '~' + publicCmHandleProperties: + add-my-property: add-property + update-my-property: updated-property + delete-my-property: '~' removedCmHandles: type: array items: type: string - example: [my-cm-handle1, my-cm-handle2, my-cm-handle3] + example: [my-cm-handle1, my-cm-handle2, my-cm-handle3] + DmiPluginRegistrationErrorResponse: + type: object + properties: + failedCreatedCmHandles: + type: array + items: + $ref: '#/components/schemas/CmHandlerRegistrationErrorResponse' + failedUpdatedCmHandles: + type: array + items: + $ref: '#/components/schemas/CmHandlerRegistrationErrorResponse' + failedRemovedCmHandles: + type: array + items: + $ref: '#/components/schemas/CmHandlerRegistrationErrorResponse' + CmHandlerRegistrationErrorResponse: + type: object + properties: + cmHandle: + type: string + example: my-cm-handle + errorCode: + type: string + example: '00' + errorText: + type: string + example: 'Unknown error. ' - RestCmHandle: + RestInputCmHandle: required: - cmHandle type: object @@ -76,62 +133,159 @@ components: type: string example: my-property - Conditions: + #Response Schemas + RestModuleReference: + type: object + title: Module reference details + properties: + moduleName: + type: string + example: my-module-name + revision: + type: string + example: my-module-revision + + RestModuleDefinition: type: object + title: Module definitions properties: + moduleName: + type: string + example: my-module-name + revision: + type: string + example: 2020-09-15 + content: + type: string + example: | + module stores { + yang-version 1.1; + namespace "org:onap:ccsdk:sample"; + prefix book-store; + revision "2020-09-15" { + description + "Sample Model"; + } + } + + + CmHandleQueryParameters: + type: object + title: Cm Handle query parameters for executing cm handle search + properties: + cmHandleQueryParameters: + type: array + items: + type: object + $ref: '#/components/schemas/ConditionProperties' conditions: - $ref: '#/components/schemas/ConditionsData' - ConditionsData: - type: array - items: - type: object - $ref: '#/components/schemas/ConditionProperties' + deprecated: true + type: array + items: + type: object + $ref: '#/components/schemas/OldConditionProperties' + description: not necessary, it is just for backward compatibility + ConditionProperties: + properties: + conditionName: + type: string + conditionParameters: + type: array + items: + type: object + additionalProperties: + type: string + OldConditionProperties: + deprecated: true 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] + type: array + items: + type: object + $ref: '#/components/schemas/ModuleNameAsJsonObject' ModuleNameAsJsonObject: - properties: - moduleName: - type: string - example: my-module + properties: + moduleName: + type: string + example: my-module - #Response Schemas - CmHandles: + RestOutputCmHandle: type: object + title: CM handle Details properties: - cmHandles: - $ref: '#/components/schemas/CmHandleProperties' - CmHandleProperties: + cmHandle: + type: string + example: my-cm-handle1 + publicCmHandleProperties: + $ref: '#/components/schemas/CmHandlePublicProperties' + state: + $ref: '#/components/schemas/CmHandleCompositeState' + CmHandlePublicProperties: type: array items: type: object - $ref: '#/components/schemas/CmHandleProperty' - CmHandleProperty: + additionalProperties: + type: string + example: Book Type + CmHandleCompositeState: + type: object properties: - cmHandleId: + cmHandleState: + type: string + example: ADVISED + lockReason: + $ref: '#/components/schemas/lock-reason' + lastUpdateTime: type: string - example: my-cm-handle-id + example: 2022-12-31T20:30:40.000+0000 + dataSyncEnabled: + type: boolean + example: false + dataSyncState: + $ref: '#/components/schemas/dataStores' - ModuleReference: + lock-reason: type: object - title: Module reference details properties: - moduleName: + reason: type: string - example: my-module-name - revision: + example: LOCKED_MISBEHAVING + details: type: string - example: my-module-revision + example: locked due to failure in module sync + + dataStores: + type: object + properties: + operational: + $ref: '#/components/schemas/sync-state' + running: + $ref: '#/components/schemas/sync-state' + + sync-state: + type: object + properties: + syncState: + type: string + example: NONE_REQUESTED + lastSyncTime: + type: string + example: 2022-12-31T20:30:40.000+0000 + + RestOutputCmHandlePublicProperties: + type: object + properties: + publicCmHandleProperties: + $ref: '#/components/schemas/CmHandlePublicProperties' + + RestOutputCmHandleCompositeState: + type: object + properties: + state: + $ref: '#/components/schemas/CmHandleCompositeState' examples: dataSampleRequest: @@ -215,6 +369,51 @@ components: - Philip Pullman name: kids + allCmHandleQueryParameters: + value: + cmHandleQueryParameters: + - conditionName: hasAllModules + conditionParameters: + - { "moduleName": "my-module-1" } + - { "moduleName": "my-module-2" } + - { "moduleName": "my-module-3" } + - conditionName: hasAllProperties + conditionParameters: + - { "Color": "yellow" } + - { "Shape": "circle" } + - { "Size": "small" } + - conditionName: cmHandleWithCpsPath + conditionParameters: + - { "cpsPath": "//state[@cm-handle-state='ADVISED']" } + pubPropCmHandleQueryParameters: + value: + cmHandleQueryParameters: + - conditionName: hasAllProperties + conditionParameters: + - { "Color": "yellow" } + - { "Shape": "circle" } + - { "Size": "small" } + modulesCmHandleQueryParameters: + value: + cmHandleQueryParameters: + - conditionName: hasAllModules + conditionParameters: + - { "moduleName": "my-module-1" } + - { "moduleName": "my-module-2" } + - { "moduleName": "my-module-3" } + cpsPathCmHandleStateQueryParameters: + value: + cmHandleQueryParameters: + - conditionName: cmHandleWithCpsPath + conditionParameters: + - { "cpsPath": "//state[@cm-handle-state='LOCKED']" } + cpsPathCmHandleDataSyncQueryParameters: + value: + cmHandleQueryParameters: + - conditionName: cmHandleWithCpsPath + conditionParameters: + - { "cpsPath": "//state[@data-sync-enabled='true']" } + parameters: cmHandleInPath: name: cm-handle @@ -224,6 +423,14 @@ components: schema: type: string example: my-cm-handle + dataSyncEnabled: + name: dataSyncEnabled + in: query + description: Is used to enable or disable the data synchronization flag + required: true + schema: + type: boolean + example: true xpathInQuery: name: xpath in: query @@ -273,14 +480,6 @@ components: 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 @@ -299,6 +498,18 @@ components: sample 3: value: options: (depth=2,fields=book/authors) + topicParamInQuery: + name: topic + in: query + description: topic parameter in query. + required: false + schema: + type: string + allowReserved: true + examples: + sample 1: + value: + topic: my-topic-name contentParamInHeader: name: Content-Type in: header @@ -382,3 +593,24 @@ components: NoContent: description: No Content content: {} + InternalServerError: + description: Internal Server Error + content: + application/json: + schema: + $ref: "#/components/schemas/ErrorMessage" + example: + status: 500 + message: Internal Server Error + details: Internal Server Error occurred + BadGateway: + 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"