X-Git-Url: https://gerrit.o-ran-sc.org/r/gitweb?a=blobdiff_plain;f=near-rt-ric-simulator%2Ftest%2FKAFKA_DISPATCHER%2Fapi%2FKAFKA_DISPATCHER_api.yaml;fp=near-rt-ric-simulator%2Ftest%2FKAFKA_DISPATCHER%2Fapi%2FKAFKA_DISPATCHER_api.yaml;h=5480fbe578765aa147789c88de03898f33c859bb;hb=1ef05f94c2b4cc34f4b4b7e891b41548ad9bf446;hp=0000000000000000000000000000000000000000;hpb=30f41fcbaa50eef322aa47efe8346b432b96b578;p=sim%2Fa1-interface.git diff --git a/near-rt-ric-simulator/test/KAFKA_DISPATCHER/api/KAFKA_DISPATCHER_api.yaml b/near-rt-ric-simulator/test/KAFKA_DISPATCHER/api/KAFKA_DISPATCHER_api.yaml new file mode 100644 index 0000000..5480fbe --- /dev/null +++ b/near-rt-ric-simulator/test/KAFKA_DISPATCHER/api/KAFKA_DISPATCHER_api.yaml @@ -0,0 +1,241 @@ +openapi: 3.0.0 +info: + title: 'Kafka message dispatcher for A1 interface' + version: 2.0.0 + description: | + Kafka message dispatcher server. + © 2022, O-RAN Alliance. + All rights reserved. +externalDocs: + description: 'RestFUL APIs that create and dispatch Kafka messages to Kafka brokers' + url: 'https://docs.o-ran-sc.org/projects/o-ran-sc-sim-a1-interface/en/latest/index.html' +servers: + - url: '{apiRoot}' + variables: + apiRoot: + default: 'https://example.com' +paths: + '/policytypetotopicmapping/{policyTypeId}': + parameters: + - name: policyTypeId + in: path + required: true + schema: + "$ref": "#/components/schemas/PolicyTypeId" + get: + operationId: dispatcher.get_policy_type_to_topic_mapping + description: 'Get the kafka request and response topic map corresponding to policy type' + tags: + - The mapping from policy type to kafka topic request and response object + responses: + 200: + description: 'The policy type to topic map schemas' + content: + application/json: + schema: + "$ref": "#/components/schemas/PolicyTypeToTopicMap" + 404: + "$ref": "#/components/responses/404-NotFound" + 429: + "$ref": "#/components/responses/429-TooManyRequests" + 503: + "$ref": "#/components/responses/503-ServiceUnavailable" + + '/policytypes/{policyTypeId}/kafkadispatcher/{policyId}': + parameters: + - name: policyTypeId + in: path + required: true + schema: + "$ref": "#/components/schemas/PolicyTypeId" + - name: policyId + in: path + required: true + schema: + "$ref": "#/components/schemas/A1PolicyId" + put: + operationId: dispatcher.put_policy + description: 'Dispatch create and update operation as kafka message to kafka cluster' + tags: + - Individual policy Object + requestBody: + required: true + content: + application/json: + schema: + "$ref": "#/components/schemas/A1PolicyObject" + responses: + 200: + description: 'Create or update operation dispatched' + 400: + "$ref": "#/components/responses/400-BadRequest" + 408: + "$ref": "#/components/responses/408-RequestTimeout" + 419: + "$ref": "#/components/responses/419-KafkaMessagePublishFailed" + 429: + "$ref": "#/components/responses/429-TooManyRequests" + 503: + "$ref": "#/components/responses/503-ServiceUnavailable" + 507: + "$ref": "#/components/responses/507-InsufficientStorage" + delete: + operationId: dispatcher.delete_policy + description: 'Dispatch policy delete opertion as kafka message to kafka cluster' + responses: + 200: + description: 'Delete operation dispatched' + 408: + "$ref": "#/components/responses/408-RequestTimeout" + 419: + "$ref": "#/components/responses/419-KafkaMessagePublishFailed" + 429: + "$ref": "#/components/responses/429-TooManyRequests" + 503: + "$ref": "#/components/responses/503-ServiceUnavailable" + + '/policytypes/{policyTypeId}/kafkadispatcher/{policyId}/status': + parameters: + - name: policyTypeId + in: path + required: true + schema: + "$ref": "#/components/schemas/PolicyTypeId" + - name: policyId + in: path + required: true + schema: + "$ref": "#/components/schemas/A1PolicyId" + get: + operationId: dispatcher.get_policy_status + description: 'Dispatch policy status query opertion as kafka message to kafka cluster' + tags: + - Individual A1 Policy Status Object + responses: + 200: + description: 'Query policy status operation dispatched' + 429: + "$ref": "#/components/responses/429-TooManyRequests" + 503: + "$ref": "#/components/responses/503-ServiceUnavailable" + +components: + schemas: + # + # Representation objects + # + A1PolicyObject: + description: 'A generic policy object' + type: object + + A1Policy: + description: 'A generic policy string' + type: string + + PolicyTypeToTopicMap: + description: 'Request and response topic map for each policy type' + type: object + properties: + policy_type: + type: object + properties: + request_topic: + type: string + example: kafkatopicreq + response_topic: + type: string + example: kafkatopicres + + ProblemDetails: + description: 'A problem detail to carry details in a HTTP response according to RFC 7807' + type: object + properties: + type: + type: string + title: + type: string + status: + type: number + detail: + type: string + instance: + type: string + + # + # Simple data types + # + JsonSchema: + description: 'A JSON schema following http://json-schema.org/draft-07/schema' + type: object + + A1PolicyId: + description: 'A1 policy identifier.' + type: string + + PolicyTypeId: + description: 'Policy type identifier assigned by the A1-P Provider' + type: string + + responses: + 400-BadRequest: + description: 'A1 policy not properly formulated or not related to the method' + content: + application/problem+json: + schema: + "$ref": "#/components/schemas/ProblemDetails" + + 404-NotFound: + description: 'No resource found at the URI' + content: + application/problem+json: + schema: + "$ref": "#/components/schemas/ProblemDetails" + + 405-MethodNotAllowed: + description: 'Method not allowed for the URI' + content: + application/problem+json: + schema: + "$ref": "#/components/schemas/ProblemDetails" + + 408-RequestTimeout: + description: 'Request could not be processed in given amount of time' + content: + application/problem+json: + schema: + "$ref": "#/components/schemas/ProblemDetails" + + 409-Conflict: + description: 'Request could not be processed in the current state of the resource' + content: + application/problem+json: + schema: + "$ref": "#/components/schemas/ProblemDetails" + + 419-KafkaMessagePublishFailed: + description: 'Publishing the kafka message to the broker gets fail' + content: + application/problem+json: + schema: + "$ref": "#/components/schemas/ProblemDetails" + + 429-TooManyRequests: + description: 'Too many requests have been sent in a given amount of time' + content: + application/problem+json: + schema: + "$ref": "#/components/schemas/ProblemDetails" + + 503-ServiceUnavailable: + description: 'The provider is currently unable to handle the request due to a temporary overload' + content: + application/problem+json: + schema: + "$ref": "#/components/schemas/ProblemDetails" + + 507-InsufficientStorage: + description: 'The method could not be performed on the resource because the provider is unable to store the representation needed to successfully complete the request' + content: + application/problem+json: + schema: + "$ref": "#/components/schemas/ProblemDetails"