X-Git-Url: https://gerrit.o-ran-sc.org/r/gitweb?a=blobdiff_plain;ds=sidebyside;f=near-rt-ric-simulator%2Fapi%2F1.1.x-alpha.2%2Fa1-openapi.yaml;fp=near-rt-ric-simulator%2Fapi%2F1.1.x-alpha.2%2Fa1-openapi.yaml;h=223d1bd54c79a14aa0aac56685bbd05952d9c872;hb=21be2e0c890fb9604d0add2942fcff19b6fe2fb2;hp=0000000000000000000000000000000000000000;hpb=f27a4460b38b62e665f3e9ee936f439270eded32;p=sim%2Fa1-interface.git diff --git a/near-rt-ric-simulator/api/1.1.x-alpha.2/a1-openapi.yaml b/near-rt-ric-simulator/api/1.1.x-alpha.2/a1-openapi.yaml new file mode 100644 index 0000000..223d1bd --- /dev/null +++ b/near-rt-ric-simulator/api/1.1.x-alpha.2/a1-openapi.yaml @@ -0,0 +1,318 @@ +openapi: 3.0.0 +info: + title: 'A1-P Policy Management Service' + version: 1.1.x-alpha.2 + 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 + parameters: + - name: policyTypeId + in: query + required: false + schema: + "$ref": "#/components/schemas/PolicyTypeId" + 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: policyTypeId + in: query + required: false + schema: + "$ref": "#/components/schemas/PolicyTypeId" + requestBody: + 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" + 429: + "$ref": "#/components/responses/429-TooManyRequests" + 503: + "$ref": "#/components/responses/503-ServiceUnavailable" + 507: + "$ref": "#/components/responses/507-InsufficientStorage" + 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" + 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" + + '/policystatus/{policyId}': + 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" + 429: + "$ref": "#/components/responses/429-TooManyRequests" + 503: + "$ref": "#/components/responses/503-ServiceUnavailable" + + '/policytypes': + get: + operationId: a1.get_all_policytypes_identities + description: 'Get all policy type identities' + tags: + - All Policy Type Identities + responses: + 200: + description: 'Array of all policy type identities' + content: + application/json: + schema: + type: array + items: + "$ref": "#/components/schemas/PolicyTypeId" + minItems: 0 + 429: + "$ref": "#/components/responses/429-TooManyRequests" + 503: + "$ref": "#/components/responses/503-ServiceUnavailable" + + '/policytypes/{policyTypeId}': + parameters: + - name: policyTypeId + in: path + required: true + schema: + "$ref": "#/components/schemas/PolicyTypeId" + get: + operationId: a1.get_policytypes + description: 'Get the schemas for a policy type' + tags: + - Individual Policy Type + responses: + 200: + description: 'The policy type schemas' + content: + application/json: + schema: + "$ref": "#/components/schemas/PolicyTypeObject" + 404: + "$ref": "#/components/responses/404-NotFound" + 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 + + PolicyTypeObject: + description: 'A definition of a policy type, i.e. the schemas for a policy respectively its status' + type: object + properties: + policySchema: + "$ref": "#/components/schemas/JsonSchema" + statusSchema: + "$ref": "#/components/schemas/JsonSchema" + required: + - policySchema + + ProblemDetails: + description: 'A problem detail to carry details in a HTTP response according to RFC 7807 extended with A1 specific attributes' + type: object + properties: + type: + type: string + title: + type: string + status: + type: number + detail: + type: string + instance: + type: string + cause: + type: string + invalidParams: + type: array + items: + "$ref": "#/components/schemas/InvalidParam" + minItems: 1 + + # + # Structured data types + # + InvalidParam: + description: 'Used in a ProblemDetails to indicate a specific invalid parameter' + type: object + properties: + param: + type: string + reason: + type: string + required: + - param + + # + # Simple data types + # + JsonSchema: + description: 'A JSON schema following http://json-schema.org/draft-07/schema' + type: object + + PolicyId: + description: 'Policy identifier assigned by the A1-P Consumer when a policy is created' + type: string + + PolicyTypeId: + description: 'Policy type identifier assigned by the A1-P Provider' + 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" + + 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"