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: {}