X-Git-Url: https://gerrit.o-ran-sc.org/r/gitweb?a=blobdiff_plain;f=api%2FEXT_SRV_api.yaml;fp=api%2FEXT_SRV_api.yaml;h=043e9846525ebc4b4ca48eb0261e2298ed4a02ea;hb=b5ca7ce70bdfa58701f9fb5fe8a36a4a8b55bc82;hp=0000000000000000000000000000000000000000;hpb=1ef05f94c2b4cc34f4b4b7e891b41548ad9bf446;p=sim%2Fa1-interface.git diff --git a/api/EXT_SRV_api.yaml b/api/EXT_SRV_api.yaml new file mode 100644 index 0000000..043e984 --- /dev/null +++ b/api/EXT_SRV_api.yaml @@ -0,0 +1,205 @@ +openapi: 3.0.0 +info: + title: 'External Server for A1 simulator' + version: 0.0.1 + description: | + External test server. + © 2022, O-RAN Alliance. + All rights reserved. +externalDocs: + description: 'An external server building CRUD RestFUL APIs which is provisioned by A1 simulator. It will be a refrence point for the callouts' + url: 'https://docs.o-ran-sc.org/projects/o-ran-sc-sim-a1-interface/en/latest/external-server.html' +servers: + - url: '{apiRoot}' + variables: + apiRoot: + default: 'http://www.example.com' +paths: + '/a1policies': + get: + operationId: server.get_all_a1_policies + description: 'Get all a1 policies' + tags: + - All a1policies + responses: + 200: + description: 'Array of all a1 policies' + content: + application/json: + schema: + type: array + items: + "$ref": "#/components/schemas/A1PolicyObject" + minItems: 0 + 429: + "$ref": "#/components/responses/429-TooManyRequests" + 503: + "$ref": "#/components/responses/503-ServiceUnavailable" + '/a1policy/{a1policyId}': + parameters: + - name: a1policyId + in: path + required: true + schema: + "$ref": "#/components/schemas/A1PolicyId" + get: + operationId: server.get_a1_policy + description: 'Query for an A1 policy' + tags: + - Single A1 Policy Object + responses: + 200: + description: 'The requested A1 policy object' + content: + application/json: + schema: + "$ref": "#/components/schemas/A1PolicyObject" + 404: + "$ref": "#/components/responses/404-NotFound" + 409: + "$ref": "#/components/responses/409-Conflict" + 429: + "$ref": "#/components/responses/429-TooManyRequests" + 503: + "$ref": "#/components/responses/503-ServiceUnavailable" + put: + operationId: server.put_a1_policy + description: 'Create an A1 policy' + tags: + - Individual A1 policy Object + requestBody: + required: true + content: + application/json: + schema: + "$ref": "#/components/schemas/A1PolicyObject" + responses: + 200: + description: 'The A1 policy was updated' + content: + application/json: + schema: + "$ref": "#/components/schemas/A1PolicyObject" + 201: + description: 'The A1 policy was created' + content: + application/json: + schema: + "$ref": "#/components/schemas/A1PolicyObject" + headers: + Location: + description: 'Contains the URI of the created A1 policy' + required: true + schema: + type: string + 400: + "$ref": "#/components/responses/400-BadRequest" + 409: + "$ref": "#/components/responses/409-Conflict" + 429: + "$ref": "#/components/responses/429-TooManyRequests" + 503: + "$ref": "#/components/responses/503-ServiceUnavailable" + 507: + "$ref": "#/components/responses/507-InsufficientStorage" + + delete: + operationId: server.delete_a1_policy + description: 'Delete an A1 policy' + tags: + - Individual a1policy Object + responses: + 204: + description: 'The A1 policy was deleted' + 404: + "$ref": "#/components/responses/404-NotFound" + 429: + "$ref": "#/components/responses/429-TooManyRequests" + 503: + "$ref": "#/components/responses/503-ServiceUnavailable" + +components: + schemas: + # + # Representation objects + # + A1PolicyObject: + title: 'Title' + description: 'A generic A1 policy object' + type: object + + 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 + + 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" + + 409-Conflict: + description: 'Request could not be processed in the current state of the resource' + 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"