| swagger: '2.0' |
| info: |
| version: 2.1.0 |
| title: RIC A1 |
| paths: |
| /A1-P/v2/healthcheck: |
| get: |
| description: | |
| Perform a healthcheck on a1 |
| tags: |
| - A1 Mediator |
| operationId: a1.controller.get_healthcheck |
| responses: |
| '200': |
| description: > |
| A1 is healthy. Anything other than a 200 should be considered a1 as |
| failing |
| parameters: [] |
| /A1-P/v2/policytypes: |
| get: |
| description: Get a list of all registered policy type ids |
| tags: |
| - A1 Mediator |
| operationId: a1.controller.get_all_policy_types |
| responses: |
| '200': |
| description: list of all registered policy type ids |
| examples: |
| application/json: |
| - 20000 |
| - 20020 |
| schema: |
| type: array |
| items: |
| $ref: '#/definitions/policy_type_id' |
| '503': |
| description: >- |
| Potentially transient backend database error. Client should attempt |
| to retry later. |
| parameters: [] |
| produces: |
| - application/json |
| '/A1-P/v2/policytypes/{policy_type_id}': |
| parameters: |
| - name: policy_type_id |
| in: path |
| required: true |
| minimum: 1 |
| maximum: 2147483647 |
| type: integer |
| description: > |
| represents a policy type identifier. Currently this is restricted to |
| an integer range. |
| get: |
| description: | |
| Get this policy type |
| tags: |
| - A1 Mediator |
| operationId: a1.controller.get_policy_type |
| responses: |
| '200': |
| description: policy type successfully found |
| schema: |
| $ref: '#/definitions/policy_type_schema' |
| '404': |
| description: | |
| policy type not found |
| '503': |
| description: >- |
| Potentially transient backend database error. Client should attempt |
| to retry later. |
| parameters: [] |
| produces: |
| - application/json |
| delete: |
| description: > |
| Delete this policy type. Can only be performed if there are no instances |
| of this type |
| tags: |
| - A1 Mediator |
| operationId: a1.controller.delete_policy_type |
| responses: |
| '204': |
| description: | |
| policy type successfully deleted |
| '400': |
| description: > |
| Policy type cannot be deleted because there are instances All |
| instances must be removed before a policy type can be deleted |
| '404': |
| description: | |
| policy type not found |
| '503': |
| description: >- |
| Potentially transient backend database error. Client should attempt |
| to retry later. |
| parameters: [] |
| put: |
| description: > |
| Create a new policy type . Replace is not currently allowed; to replace, |
| for now do a DELETE and then a PUT again. |
| tags: |
| - A1 Mediator |
| operationId: a1.controller.create_policy_type |
| responses: |
| '201': |
| description: policy type successfully created |
| '400': |
| description: 'illegal ID, or object already existed' |
| '503': |
| description: >- |
| Potentially transient backend database error. Client should attempt |
| to retry later. |
| parameters: |
| - name: body |
| in: body |
| schema: |
| $ref: '#/definitions/policy_type_schema' |
| consumes: |
| - application/json |
| '/A1-P/v2/policytypes/{policy_type_id}/policies': |
| parameters: |
| - name: policy_type_id |
| in: path |
| required: true |
| minimum: 1 |
| maximum: 2147483647 |
| type: integer |
| description: > |
| represents a policy type identifier. Currently this is restricted to |
| an integer range. |
| get: |
| description: get a list of all policy instance ids for this policy type id |
| tags: |
| - A1 Mediator |
| operationId: a1.controller.get_all_instances_for_type |
| responses: |
| '200': |
| description: list of all policy instance ids for this policy type id |
| examples: |
| application/json: |
| - 3d2157af-6a8f-4a7c-810f-38c2f824bf12 |
| - 06911bfc-c127-444a-8eb1-1bffad27cc3d |
| schema: |
| type: array |
| items: |
| $ref: '#/definitions/policy_instance_id' |
| '503': |
| description: >- |
| Potentially transient backend database error. Client should attempt |
| to retry later. |
| parameters: [] |
| produces: |
| - application/json |
| '/A1-P/v2/policytypes/{policy_type_id}/policies/{policy_instance_id}': |
| parameters: |
| - name: policy_type_id |
| in: path |
| required: true |
| minimum: 1 |
| maximum: 2147483647 |
| type: integer |
| description: > |
| represents a policy type identifier. Currently this is restricted to |
| an integer range. |
| - name: policy_instance_id |
| in: path |
| required: true |
| type: string |
| description: > |
| represents a policy instance identifier. UUIDs are advisable but can |
| be any string |
| - name: notificationDestination |
| in: query |
| type: string |
| description: > |
| URL send by non-RT RIC. This where non-RT RIC expects status updates on the policy creation |
| get: |
| description: | |
| Retrieve the policy instance |
| tags: |
| - A1 Mediator |
| operationId: a1.controller.get_policy_instance |
| responses: |
| '200': |
| description: > |
| The policy instance. the schema of this object is defined by the |
| create_schema field of the policy type |
| schema: |
| type: object |
| '404': |
| description: > |
| there is no policy instance with this policy_instance_id or there is |
| no policy type with this policy_type_id |
| '503': |
| description: >- |
| Potentially transient backend database error. Client should attempt |
| to retry later. |
| parameters: [] |
| produces: |
| - application/json |
| delete: |
| description: | |
| Delete this policy instance |
| tags: |
| - A1 Mediator |
| operationId: a1.controller.delete_policy_instance |
| responses: |
| '202': |
| description: | |
| policy instance deletion initiated |
| '404': |
| description: > |
| there is no policy instance with this policy_instance_id or there is |
| no policy type with this policy_type_id |
| '503': |
| description: >- |
| Potentially transient backend database error. Client should attempt |
| to retry later. |
| parameters: [] |
| put: |
| description: > |
| Create or replace a policy instance of type policy_type_id. The schema |
| of the PUT body is defined by the create_schema field of the policy |
| type. |
| tags: |
| - A1 Mediator |
| operationId: a1.controller.create_or_replace_policy_instance |
| responses: |
| '202': |
| description: | |
| Policy instance creation initiated |
| '400': |
| description: | |
| Bad PUT body for this policy instance |
| '404': |
| description: | |
| There is no policy type with this policy_type_id |
| '503': |
| description: >- |
| Potentially transient backend database error. Client should attempt |
| to retry later. |
| parameters: |
| - name: body |
| in: body |
| schema: |
| type: object |
| description: > |
| the schema of this object is defined by the create_schema field of |
| the policy type |
| consumes: |
| - application/json |
| '/A1-P/v2/policytypes/{policy_type_id}/policies/{policy_instance_id}/status': |
| parameters: |
| - name: policy_type_id |
| in: path |
| required: true |
| minimum: 1 |
| maximum: 2147483647 |
| type: integer |
| description: > |
| represents a policy type identifier. Currently this is restricted to |
| an integer range. |
| - name: policy_instance_id |
| in: path |
| required: true |
| type: string |
| description: > |
| represents a policy instance identifier. UUIDs are advisable but can |
| be any string |
| get: |
| description: > |
| Retrieve the policy instance status across all handlers of the policy If |
| this endpoint returns successfully (200), it is either IN EFFECT or NOT |
| IN EFFECT. IN EFFECT is returned if at least one policy handler in the |
| RIC is implementing the policy NOT IN EFFECT is returned otherwise If a |
| policy instance is successfully deleted, this endpoint will return a 404 |
| (not a 200) |
| tags: |
| - A1 Mediator |
| operationId: a1.controller.get_policy_instance_status |
| responses: |
| '200': |
| description: | |
| successfully retrieved the status |
| schema: |
| type: object |
| properties: |
| enforceStatus: |
| type: string |
| enum: |
| - ENFORCED |
| - NOT_ENFORCED |
| enforceReason: |
| type: string |
| enum: |
| - SCOPE_NOT_APPLICABLE |
| - STATEMENT_NOT_APPLICABLE |
| - OTHER_REASON |
| '404': |
| description: > |
| there is no policy instance with this policy_instance_id or there is |
| no policy type with this policy_type_id |
| '503': |
| description: >- |
| Potentially transient backend database error. Client should attempt |
| to retry later. |
| parameters: [] |
| produces: |
| - application/json |
| /data-delivery: |
| post: |
| description: | |
| Deliver data produced by data producer. |
| tags: |
| - A1 EI Data Delivery |
| operationId: a1.controller.data_delivery |
| responses: |
| '200': |
| description: | |
| successfully delivered data from data producer |
| '404': |
| description: | |
| no job id defined for this data delivery |
| parameters: |
| - name: body |
| in: body |
| schema: |
| type: object |
| description: | |
| object to represent data object |
| consumes: |
| - application/json |
| definitions: |
| policy_type_schema: |
| type: object |
| required: |
| - name |
| - description |
| - policy_type_id |
| - create_schema |
| additionalProperties: false |
| properties: |
| name: |
| type: string |
| description: name of the policy type |
| description: |
| type: string |
| description: description of the policy type |
| policy_type_id: |
| description: the integer of the policy type |
| type: integer |
| create_schema: |
| type: object |
| description: > |
| jsonschema (following http://json-schema.org/draft-07/schema) of the |
| CREATE payload to be sent to handlers of this policy |
| policy_type_id: |
| description: > |
| represents a policy type identifier. Currently this is restricted to an |
| integer range. |
| type: integer |
| minimum: 1 |
| maximum: 2147483647 |
| policy_instance_id: |
| description: > |
| represents a policy instance identifier. UUIDs are advisable but can be |
| any string |
| type: string |
| example: 3d2157af-6a8f-4a7c-810f-38c2f824bf12 |
| x-components: {} |
| |