diff options
Diffstat (limited to 'openapi')
-rw-r--r-- | openapi/components.yml | 25 | ||||
-rw-r--r-- | openapi/openapi-datajob.yml | 254 |
2 files changed, 270 insertions, 9 deletions
diff --git a/openapi/components.yml b/openapi/components.yml index 00d71564..4a6d1729 100644 --- a/openapi/components.yml +++ b/openapi/components.yml @@ -76,31 +76,40 @@ components: cmHandles: type: array items: - $ref: '#/components/schemas/cmHandle' + $ref: '#/components/schemas/dmiOperationCmHandle' required: - operation - operationId - datastore - cmHandles - cmHandle: + dmiOperationCmHandle: type: object - title: 'cmHandle' + title: 'CmHandle with properties for DMI' properties: id: type: string cmHandleProperties: additionalProperties: type: string + moduleSetTag: + type: string + example: module-set-tag1 example: id: cmHandle123 cmHandleProperties: myProp: some value otherProp: other value + moduleSetTag: module-set-tag1 ModuleResourcesReadRequest: type: object properties: + moduleSetTag: + type: string + description: Module set tag of the given cm handle + example: Module-set-tag-1 + required: false data: type: object properties: @@ -171,6 +180,9 @@ components: requestId: type: string example: 3a9ce55c-e365-4dc9-8da3-a06f07cbc6d7 + moduleSetTag: + type: string + example: module-set-tag1 cmHandleProperties: type: object @@ -243,7 +255,6 @@ components: in: query description: Resource identifier to get/set the resource data required: true - allowReserved: true schema: type: string example: my-schema:my-node @@ -255,7 +266,6 @@ components: required: false schema: type: string - allowReserved: true examples: sample1: value: @@ -274,7 +284,6 @@ components: required: false schema: type: string - allowReserved: true examples: sample1: value: my-topic-name @@ -286,7 +295,6 @@ components: required: true schema: type: string - allowReserved: true examples: sample1: value: @@ -299,7 +307,6 @@ components: required: true schema: type: string - allowReserved: true examples: sample1: value: 4753fc1f-7de2-449a-b306-a6204b5370b3 @@ -314,4 +321,4 @@ components: example: ncmp-datastore:passthrough-operational or ncmp-datastore:passthrough-running security: - - basicAuth: []
\ No newline at end of file + - basicAuth: [] diff --git a/openapi/openapi-datajob.yml b/openapi/openapi-datajob.yml new file mode 100644 index 00000000..989218d9 --- /dev/null +++ b/openapi/openapi-datajob.yml @@ -0,0 +1,254 @@ +# ============LICENSE_START======================================================= +# Copyright (C) 2024 Nordix Foundation +# ================================================================================ +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. +# +# SPDX-License-Identifier: Apache-2.0 +# ============LICENSE_END========================================================= + +openapi: 3.0.3 +info: + title: NCMP Data Subjob API + description: Support datajobs through one or more subjob for each DMI and Data Producer Identifier combination + version: 1.0.0 +servers: + - url: /dmi +tags: + - description: DMI plugin rest apis + name: dmi-datajob +paths: + /v1/readJob/{requestId}: + post: + description: Create a read request + operationId: readDataJob + parameters: + - $ref: '#/components/parameters/requestIdInPath' + requestBody: + description: Operation body + content: + application/3gpp-json-patch+json: + schema: + $ref: '#/components/schemas/SubjobReadRequest' + tags: + - dmi-datajob + responses: + "501": + $ref: '#/components/responses/NotImplemented' + /v1/writeJob/{requestId}: + post: + description: Create a write request + operationId: writeDataJob + parameters: + - $ref: '#/components/parameters/requestIdInPath' + requestBody: + description: Operation body + content: + application/3gpp-json-patch+json: + schema: + $ref: '#/components/schemas/SubjobWriteRequest' + tags: + - dmi-datajob + responses: + "501": + $ref: '#/components/responses/NotImplemented' + +components: + parameters: + requestIdInPath: + description: Identifier for the overall Datajob + in: path + name: requestId + required: true + schema: + example: some-identifier + type: string + schemas: + ErrorMessage: + type: object + title: Error + properties: + status: + type: string + message: + type: string + details: + type: string + SubjobReadRequest: + type: object + required: + - dataProducerId + - data + properties: + dataAcceptType: + description: Defines the data response accept type + example: application/vnd.3gpp.object-tree-hierarchical+json + type: string + dataContentType: + description: Defines the data request content type + example: application/3gpp-json-patch+json + type: string + dataProducerId: + description: ID of the producer registered by DMI for the paths in the operations in this request + example: my-data-producer-identifier + type: string + data: + example: + op: read + operationId: 1 + path: SubNetwork=Europe/SubNetwork=Ireland/MeContext=NR03gNodeBRadio00003/ManagedElement=NR03gNodeBRadio00003/GNBCUCPFunction=2 + attributes: userLabel + scope: + scopeTyp: BASE_ONLY + type: array + items: + type: object + required: + - path + - op + properties: + path: + description: Defines the resource on which operation is executed + example: SubNetwork=Europe/SubNetwork=Ireland/MeContext=NR03gNodeBRadio00003/ManagedElement=NR03gNodeBRadio00003 + type: string + op: + description: Describes the operation to execute + example: read + type: string + operationId: + description: Unique identifier for the operation within the request + example: 1 + type: string + attributes: + description: This parameter specifies the attributes of the scoped resources that are returned + type: array + items: + example: cellId + type: string + fields: + description: This parameter specifies the attribute fields of the scoped resources that are returned + type: array + items: + type: string + filter: + description: This parameter is used to filter the scoped Managed Objects. Only Managed Objects passing the filter criteria will be fetched + example: NRCellDU/attributes/administrativeState==LOCKED + type: string + scopeType: + description: ScopeType selects MOs depending on relationships with Base Managed Object + example: BASE_ONLY + type: string + scopeLevel: + description: Only used when the scope type is BASE_NTH_LEVEL to specify amount of levels to search + example: 0 + type: integer + moduleSetTag: + description: Module set identifier + example: my-module-set-tag + type: string + cmHandleProperties: + description: Private properties of the cm handle for the given path + $ref: '#/components/schemas/CmHandleProperties' + SubjobWriteRequest: + type: object + required: + - dataProducerId + - data + properties: + dataAcceptType: + description: Defines the data response accept type + example: application/vnd.3gpp.object-tree-hierarchical+json + type: string + dataContentType: + description: Defines the data request content type + example: application/3gpp-json-patch+json + type: string + dataProducerId: + description: ID of the producer registered by DMI for the paths in the operations in this request + example: my-data-producer-identifier + type: string + data: + example: + op: add + path: SubNetwork=Europe/SubNetwork=Ireland/MeContext=NR03gNodeBRadio00003/ManagedElement=NR03gNodeBRadio00003/GNBCUCPFunction=1/EUtraNetwork=1/EUtranFrequency=12 + value: + id: 12 + attributes: + userLabel: label12 + type: array + items: + type: object + required: + - path + - op + properties: + path: + description: Defines the resource on which operation is executed + example: SubNetwork=Europe/SubNetwork=Ireland/MeContext=NR03gNodeBRadio00003/ManagedElement=NR03gNodeBRadio00003 + type: string + op: + description: Describes the operation to execute + example: add + type: string + operationId: + description: Unique identifier for the operation within the request + example: 1 + type: string + moduleSetTag: + description: Module set identifier + example: my-module-set-tag + type: string + cmHandleProperties: + description: Private properties of the cm handle for the given path + $ref: '#/components/schemas/CmHandleProperties' + value: + description: Value dependent on the op specified. Resource for an add. Object for a replace. ActionParameters for an action. + type: object + oneOf: + - $ref: '#/components/schemas/Resource' + - $ref: '#/components/schemas/ActionParameters' + - $ref: '#/components/schemas/Object' + CmHandleProperties: + description: Private properties of the cm handle for the given path + type: object + Resource: + type: object + properties: + id: + description: Identifier of the resource object + example: resource-identifier + type: string + attributes: + description: Key value map representing the objects class attributes and values + type: object + additionalProperties: + example: 'userLabel: label11' + type: string + ActionParameters: + description: The input of the action in the form of key value pairs + type: object + additionalProperties: + type: string + Object: + type: object + responses: + NotImplemented: + description: Not Implemented + content: + application/json: + schema: + $ref: '#/components/schemas/ErrorMessage' + example: + status: 501 + message: Not Implemented + details: Method Not Implemented + |