3 title: 'A1-P Policy Management Service'
6 API for Policy Management Service.
7 © 2019, O-RAN Alliance.
10 description: 'ORAN-WG2.A1.AP-v01.01 A1 interface: Application protocol'
11 url: 'https://www.o-ran.org/specifications'
13 - url: '{apiRoot}/A1-P/v1'
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_policies
22 description: 'Get all policies including their enforcement status'
27 description: 'Array of all policies and their enforcement status'
33 "$ref": "#/components/schemas/PolicyObject"
36 '/policies/identities':
38 operationId: a1.get_all_policy_identities
39 description: 'Get all policy identities'
41 - All Policy Identities
44 description: 'Array of all policy identities'
50 "$ref": "#/components/schemas/PolicyId"
55 operationId: a1.get_all_policy_status
56 description: 'Get enforcement status for all policy instances'
58 - All Policy Status Objects
61 description: 'Array of all policy identities and their related enforcement status'
67 "$ref": "#/components/schemas/PolicyStatusObject"
70 '/policies/{policyId}':
76 "$ref": "#/components/schemas/PolicyId"
78 operationId: a1.put_policy
79 description: 'Create, or update, a policy'
81 - Individual Policy Object
86 "$ref": "#/components/schemas/PolicyObject"
89 description: 'The policy was updated'
93 "$ref": "#/components/schemas/PolicyObject"
95 description: 'The policy was created'
99 "$ref": "#/components/schemas/PolicyObject"
102 description: 'Contains the URI of the created policy'
107 "$ref": "#/components/responses/400-BadRequest"
110 '$request.body#/notificationDestination':
112 description: 'Notify about enforcement status changes for this policy'
118 "$ref": "#/components/schemas/PolicyStatusObject"
121 description: 'Notification received'
123 operationId: a1.get_policy
124 description: 'Query single policy'
126 - Individual Policy Object
129 description: 'The requested policy'
133 "$ref": "#/components/schemas/PolicyObject"
135 "$ref": "#/components/responses/404-NotFound"
137 operationId: a1.delete_policy
138 description: 'Delete policy'
140 - Individual Policy Object
143 description: 'The policy was deleted'
145 "$ref": "#/components/responses/404-NotFound"
147 '/policies/{policyId}/status':
153 "$ref": "#/components/schemas/PolicyId"
155 operationId: a1.get_policy_status
156 description: 'Get the enforcement status of a policy'
158 - Individual Policy Status Object
161 description: 'The requested enforcement status'
165 "$ref": "#/components/schemas/PolicyStatusObject"
167 "$ref": "#/components/responses/404-NotFound"
171 operationId: a1.get_all_policytypes
172 description: 'Get all policy type schemas'
177 description: 'Array of all policy type schemas'
183 "$ref": "#/components/schemas/PolicyTypeSchema"
186 '/policytypes/identities':
188 operationId: a1.get_all_policytypes_identities
189 description: 'Get all policy type identities'
191 - All Policy Type Identities
194 description: 'Array of all policy type identities'
200 "$ref": "#/components/schemas/PolicyTypeId"
203 '/policytypes/{policyTypeId}':
209 "$ref": "#/components/schemas/PolicyTypeId"
211 operationId: a1.get_policytypes
212 description: 'Get the schema for a policy type'
214 - Individual Policy Type
217 description: 'The policy type schema'
221 "$ref": "#/components/schemas/PolicyTypeSchema"
223 "$ref": "#/components/responses/404-NotFound"
225 '/policytypes/subscription':
227 operationId: a1.put_policytypes_subscription
228 description: 'Subscribe to notification when any change is made to supported policy types'
230 - Policy Types Subscription Object
235 "$ref": "#/components/schemas/SubscriptionObject"
238 description: 'The subscription was updated'
240 description: 'The subscription was created'
242 policyTypesNotification:
243 '$request.body#/notificationDestination':
245 description: 'Notify about any change in supported policy types'
248 description: 'Notification received'
250 operationId: a1.get_policytypes_subscription
251 description: 'Get current notification destination'
253 - Policy Types Subscription Object
256 description: 'The current notification destination'
260 "$ref": "#/components/schemas/SubscriptionObject"
262 "$ref": "#/components/responses/404-NotFound"
267 # Representation objects
273 "$ref": "#/components/schemas/PolicyId"
275 "$ref": "#/components/schemas/EnforcementStatusType"
277 "$ref": "#/components/schemas/EnforcementReasonType"
283 description: 'A policy object, including its identification, type information, its notification destination, and optionally its enforcement status.'
287 "$ref": "#/components/schemas/PolicyId"
289 "$ref": "#/components/schemas/PolicyTypeId"
291 "$ref": "#/components/schemas/PolicyClause"
292 notificationDestination:
293 "$ref": "#/components/schemas/NotificationDestination"
295 "$ref": "#/components/schemas/EnforcementStatusType"
300 - notificationDestination
303 description: 'The JSON Schema for a policy type. All policies of a policy type shall validate against this schema.'
321 description: 'A problem detail to carry details in a HTTP response according to RFC 7807 extended with A1 specific attributes'
335 "$ref": "#/components/schemas/PolicyErrorType"
339 "$ref": "#/components/schemas/InvalidParam"
343 description: 'A subscription object used for specifying the destination where to send notifications.'
346 notificationDestination:
347 "$ref": "#/components/schemas/NotificationDestination"
349 - notificationDestination
352 # Structured data types
355 description: 'Used in a ProblemDetails to indicate a specific invalid parameter'
366 description: 'The schema for a generic policy clause that shall be valid for all different specific policy types.'
370 "$ref": "#/components/schemas/ScopeIdentifier"
372 description: 'The statement for a specific policy type. The schema is specified by a specific policy type.'
379 description: 'The schema for a generic scope identifier that shall be valid for all different specific policy types.'
383 description: 'UE identifier based on RAN UE Id'
386 description: 'Identifier of a pre-defined group of UEs, SPID'
389 description: 'Network slice identifie, NSSAI'
392 description: 'QoS identifer, 5QI'
395 description: 'Network resource identifier for a cell'
402 description: 'Policy identifier assigned by the A1-P Consumer when a policy is created'
406 description: 'Policy type identifier assigned by the A1-P Provider'
407 pattern: "^(STD|EXT)_[a-zA-Z]+_(0|[1-9]\\d*)\\.(0|[1-9]\\d*)\\.(0|[1-9]\\d*)$"
410 NotificationDestination:
411 description: 'A complete URI defined according to IETF RFC 3986 where to send notifications'
418 EnforcementStatusType:
419 description: 'Indicating if a policy is being enforced or not'
426 EnforcementReasonType:
427 description: 'Indicating the reason why a policy is not being enforced'
438 description: 'Represents information that can be provided in addition to the HTTP response error code. Corresponds to the "cause" attribute defined in 3GPP specification 29.501.'
443 - "BAD_REQ_MISSING_PARAM"
448 description: 'Object in payload not properly formulated or not related to the method'
450 application/problem+json:
452 "$ref": "#/components/schemas/ProblemDetails"
455 description: 'No resource found at the URI'
457 application/problem+json:
459 "$ref": "#/components/schemas/ProblemDetails"
461 405-MethodNotAllowed:
462 description: 'Method not allowed for the URI'
464 application/problem+json:
466 "$ref": "#/components/schemas/ProblemDetails"