X-Git-Url: https://gerrit.o-ran-sc.org/r/gitweb?a=blobdiff_plain;f=near-rt-ric-simulator%2Fapi%2FSTD_1.1.3%2FSTD_A1.yaml;fp=near-rt-ric-simulator%2Fapi%2FSTD_1.1.3%2FSTD_A1.yaml;h=71638f4b9d8e35c83abd8a47bd1c2c0387a45cea;hb=21be2e0c890fb9604d0add2942fcff19b6fe2fb2;hp=0000000000000000000000000000000000000000;hpb=f27a4460b38b62e665f3e9ee936f439270eded32;p=sim%2Fa1-interface.git diff --git a/near-rt-ric-simulator/api/STD_1.1.3/STD_A1.yaml b/near-rt-ric-simulator/api/STD_1.1.3/STD_A1.yaml new file mode 100644 index 0000000..71638f4 --- /dev/null +++ b/near-rt-ric-simulator/api/STD_1.1.3/STD_A1.yaml @@ -0,0 +1,258 @@ +openapi: 3.0.0 +info: + title: 'A1-P Policy Management Service' + version: 1.1.3 + description: | + API for Policy Management Service. + © 2019, O-RAN Alliance. + All rights reserved. +externalDocs: + description: 'ORAN-WG2.A1.AP-v01.01 A1 interface: Application protocol' + url: 'https://www.o-ran.org/specifications' +servers: + - url: '{apiRoot}/A1-P/v1' + variables: + apiRoot: + default: 'https://example.com' + description: 'apiRoot as defined in clause 4.2.1 in ORAN-WG2.A1.AP' +paths: + '/policies': + get: + operationId: a1.get_all_policy_identities + description: 'Get all policy identities' + tags: + - All Policy Identities + responses: + 200: + description: 'Array of all policy identities' + content: + application/json: + schema: + type: array + items: + "$ref": "#/components/schemas/PolicyId" + minItems: 0 + 429: + "$ref": "#/components/responses/429-TooManyRequests" + 503: + "$ref": "#/components/responses/503-ServiceUnavailable" + + '/policies/{policyId}': + parameters: + - name: policyId + in: path + required: true + schema: + "$ref": "#/components/schemas/PolicyId" + put: + operationId: a1.put_policy + description: 'Create, or update, a policy' + tags: + - Individual Policy Object + parameters: + - name: notificationDestination + in: query + required: false + schema: + "$ref": "#/components/schemas/NotificationDestination" + requestBody: + required: true + content: + application/json: + schema: + "$ref": "#/components/schemas/PolicyObject" + responses: + 200: + description: 'The policy was updated' + content: + application/json: + schema: + "$ref": "#/components/schemas/PolicyObject" + 201: + description: 'The policy was created' + content: + application/json: + schema: + "$ref": "#/components/schemas/PolicyObject" + headers: + Location: + description: 'Contains the URI of the created 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" + callbacks: + policyStatusNotification: + '{$request.query.notificationDestination}': + post: + description: 'Notify about status changes for this policy' + requestBody: + required: true + content: + application/json: + schema: + "$ref": "#/components/schemas/PolicyStatusObject" + responses: + 204: + description: 'Notification received' + get: + operationId: a1.get_policy + description: 'Query a policy' + tags: + - Individual Policy Object + responses: + 200: + description: 'The requested policy' + content: + application/json: + schema: + "$ref": "#/components/schemas/PolicyObject" + 404: + "$ref": "#/components/responses/404-NotFound" + 409: + "$ref": "#/components/responses/409-Conflict" + 429: + "$ref": "#/components/responses/429-TooManyRequests" + 503: + "$ref": "#/components/responses/503-ServiceUnavailable" + delete: + operationId: a1.delete_policy + description: 'Delete a policy' + tags: + - Individual Policy Object + responses: + 204: + description: 'The policy was deleted' + 404: + "$ref": "#/components/responses/404-NotFound" + 429: + "$ref": "#/components/responses/429-TooManyRequests" + 503: + "$ref": "#/components/responses/503-ServiceUnavailable" + + '/policies/{policyId}/status': + parameters: + - name: policyId + in: path + required: true + schema: + "$ref": "#/components/schemas/PolicyId" + get: + operationId: a1.get_policy_status + description: 'Query a policy status' + tags: + - Individual Policy Status Object + responses: + 200: + description: 'The requested policy status' + content: + application/json: + schema: + "$ref": "#/components/schemas/PolicyStatusObject" + 404: + "$ref": "#/components/responses/404-NotFound" + 409: + "$ref": "#/components/responses/409-Conflict" + 429: + "$ref": "#/components/responses/429-TooManyRequests" + 503: + "$ref": "#/components/responses/503-ServiceUnavailable" + +components: + schemas: + # + # Representation objects + # + PolicyObject: + description: 'A generic policy object that can be used to transport any policy. Additionally, a policy shall be valid according to the schema of its specific policy type.' + type: object + + PolicyStatusObject: + description: 'A generic policy status object that can be used to transport any policy status. Additionally, a policy status shall be valid according to the schema of its specific policy type.' + 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 + # + NotificationDestination: + description: 'A complete callback URI defined according to IETF RFC 3986 where to send notifications' + type: string + + PolicyId: + description: 'Policy identifier assigned by the A1-P Consumer when a policy is created' + type: string + + responses: + 400-BadRequest: + description: 'Object in payload 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" \ No newline at end of file