blob: 0c5daee4d317b75ab0caff0cc40ca97961ae7e8d [file] [log] [blame]
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: {}