3 title: 'A1-P Policy Management Service'
6 API for Policy Management Service.
7 © 2020, O-RAN Alliance.
10 description: 'O-RAN.WG2.A1AP-v02.00 A1 interface: Application Protocol'
11 url: 'https://www.o-ran.org/specifications'
13 - url: '{apiRoot}/A1-P/v2'
16 default: 'https://example.com'
17 description: 'apiRoot as defined in clause 4.2.1 in ORAN-WG2.A1.AP'
21 operationId: a1.get_all_policy_types
22 description: 'Get all policy type identifiers'
24 - All Policy Type Identifiers
27 description: 'Array of all policy type identifiers'
33 "$ref": "#/components/schemas/PolicyTypeId"
36 "$ref": "#/components/responses/429-TooManyRequests"
38 "$ref": "#/components/responses/503-ServiceUnavailable"
40 '/policytypes/{policyTypeId}':
46 "$ref": "#/components/schemas/PolicyTypeId"
48 operationId: a1.get_policy_type
49 description: 'Get the schemas for a policy type'
51 - Individual Policy Type
54 description: 'The policy type schemas'
58 "$ref": "#/components/schemas/PolicyTypeObject"
60 "$ref": "#/components/responses/404-NotFound"
62 "$ref": "#/components/responses/429-TooManyRequests"
64 "$ref": "#/components/responses/503-ServiceUnavailable"
66 '/policytypes/{policyTypeId}/policies':
68 operationId: a1.get_all_policy_identities
69 description: 'Get all policy identifiers'
71 - All Policy Identifiers
77 "$ref": "#/components/schemas/PolicyTypeId"
80 description: 'Array of all policy identifiers'
86 "$ref": "#/components/schemas/PolicyId"
89 "$ref": "#/components/responses/429-TooManyRequests"
91 "$ref": "#/components/responses/503-ServiceUnavailable"
93 '/policytypes/{policyTypeId}/policies/{policyId}':
99 "$ref": "#/components/schemas/PolicyTypeId"
104 "$ref": "#/components/schemas/PolicyId"
106 operationId: a1.put_policy
107 description: 'Create, or update, a policy'
109 - Individual Policy Object
111 - name: notificationDestination
115 "$ref": "#/components/schemas/NotificationDestination"
121 "$ref": "#/components/schemas/PolicyObject"
124 description: 'The policy was updated'
128 "$ref": "#/components/schemas/PolicyObject"
130 description: 'The policy was created'
134 "$ref": "#/components/schemas/PolicyObject"
137 description: 'Contains the URI of the created policy'
142 "$ref": "#/components/responses/400-BadRequest"
144 "$ref": "#/components/responses/409-Conflict"
146 "$ref": "#/components/responses/429-TooManyRequests"
148 "$ref": "#/components/responses/503-ServiceUnavailable"
150 "$ref": "#/components/responses/507-InsufficientStorage"
152 policyStatusNotification:
153 '{$request.query.notificationDestination}':
155 description: 'Notify about status changes for this policy'
161 "$ref": "#/components/schemas/PolicyStatusObject"
164 description: 'Notification received'
166 operationId: a1.get_policy
167 description: 'Query a policy'
169 - Individual Policy Object
172 description: 'The requested policy'
176 "$ref": "#/components/schemas/PolicyObject"
178 "$ref": "#/components/responses/404-NotFound"
180 "$ref": "#/components/responses/409-Conflict"
182 "$ref": "#/components/responses/429-TooManyRequests"
184 "$ref": "#/components/responses/503-ServiceUnavailable"
186 operationId: a1.delete_policy
187 description: 'Delete a policy'
189 - Individual Policy Object
192 description: 'The policy was deleted'
194 "$ref": "#/components/responses/404-NotFound"
196 "$ref": "#/components/responses/429-TooManyRequests"
198 "$ref": "#/components/responses/503-ServiceUnavailable"
200 '/policytypes/{policyTypeId}/policies/{policyId}/status':
206 "$ref": "#/components/schemas/PolicyTypeId"
211 "$ref": "#/components/schemas/PolicyId"
213 operationId: a1.get_policy_status
214 description: 'Query a policy status'
216 - Individual Policy Status Object
219 description: 'The requested policy status'
223 "$ref": "#/components/schemas/PolicyStatusObject"
225 "$ref": "#/components/responses/404-NotFound"
227 "$ref": "#/components/responses/409-Conflict"
229 "$ref": "#/components/responses/429-TooManyRequests"
231 "$ref": "#/components/responses/503-ServiceUnavailable"
236 # Representation objects
239 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.'
243 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.'
247 description: 'A definition of a policy type, i.e. the schemas for a policy respectively its status'
251 "$ref": "#/components/schemas/JsonSchema"
253 "$ref": "#/components/schemas/JsonSchema"
258 description: 'A problem detail to carry details in a HTTP response according to RFC 7807'
276 description: 'A JSON schema following http://json-schema.org/draft-07/schema'
279 NotificationDestination:
280 description: 'A complete callback URI defined according to IETF RFC 3986 where to send notifications'
284 description: 'Policy identifier assigned by the A1-P Consumer when a policy is created'
288 description: 'Policy type identifier assigned by the A1-P Provider'
293 description: 'Object in payload not properly formulated or not related to the method'
295 application/problem+json:
297 "$ref": "#/components/schemas/ProblemDetails"
300 description: 'No resource found at the URI'
302 application/problem+json:
304 "$ref": "#/components/schemas/ProblemDetails"
306 405-MethodNotAllowed:
307 description: 'Method not allowed for the URI'
309 application/problem+json:
311 "$ref": "#/components/schemas/ProblemDetails"
314 description: 'Request could not be processed in the current state of the resource'
316 application/problem+json:
318 "$ref": "#/components/schemas/ProblemDetails"
321 description: 'Too many requests have been sent in a given amount of time'
323 application/problem+json:
325 "$ref": "#/components/schemas/ProblemDetails"
327 503-ServiceUnavailable:
328 description: 'The provider is currently unable to handle the request due to a temporary overload'
330 application/problem+json:
332 "$ref": "#/components/schemas/ProblemDetails"
334 507-InsufficientStorage:
335 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'
337 application/problem+json:
339 "$ref": "#/components/schemas/ProblemDetails"