# 9 July 2020 - Daily Report
# Summary
----
## Expected Outcome :
* Find information about the services in A1 Application Protocol
* Understand the procedure of the A1 policy management services operation
___
## Outcome :
* Know the services in A1 AP specifically the policy management services
* Understand the procedure for each policy management service operation
* Know how the A1 interface protocol stack
## Further plan:
* Study about docker and kubernetes
* Trying to install docker in virtual machine
---
# Study Notes
:::info
Reference : O-RAN A1 interface: Application Protocol Version 1.1, can be accessed [here](https://www.o-ran.org/s/O-RANWG2A1AP-v0101.docx)
:::
## Important Term
:::warning
**A1 policy**
>**Declarative policy** that is identified by its **PolicyID** and **contains** a **scope identifier** and one or more **policy statements**.
**Policy Identifier**
>Identifier of an A1 policy that is used in policy operations.
**Scope Identifier**
>Identifier of what the statements in the policy applies to (UE, group of UEs, slice, QoS flow, network resource or combinations thereof).
**Policy statement**
>**Expression of a directive in an A1 policy** that is related to policy objectives and/or policy resources and are to be applied to/for the entities identified by the scope identifier.
**Policy Object**
>**Representation of an A1 policy in JSON format** used as payload in HTTP based policy procedures.
:::
## Services in A1 AP
The A1AP contain three APIs that are:
1. A1-P = Policy Management Service
2. A1-ML = ML Model Management Service
3. A1-E1 = Enrichment Information Service
The A1AP is based on signalling between A1 **service consumer** and A1 **service provider**.

The interactions between Service Consumer and Service Provider is based on the service framework used for 3GPP Network Function.
## **Policy Management Service**

The A1AP realizes the A1 policy procedures defined in the A1GAP using HTTP operations where a policy is represented as a JSON object.
### **Service Description**
#### **Policy Representation**
JSON usage in A1 policies principles:
* A policy corresponds to a resource (in the REST sense)
* A policy is represented as a JSON object referred to as a policy object
* A policy object conatins a scope identifier and at least one policy statement(e.g. one or more policy objective statements and/or one or more policy resource statements)
* A poilicy is identified by a policyId that is included in the URI when operation is for a single policy
* The poilicyId is assigned by the A1-P Consumer when the policy is created
* The A1-P Producer cannot modify or delete a policy
* Policy feedback for a specific poilicy is subscribed to when the poilicy is created by providing a callback URI in the create policy operation.
* A policy object does not contain any information related to which internal function in the near-RT RIC that is to evaluate the policy.
:::warning
**REST**
>Representational State Transfer
**URI**
>Uniform Resource Identifier
:::
#### **Representation objects**
1. **PolicyObjects**
>JSON representation of a complete A1 policy
2. **PolicyStatusObject**
>JSON representation of the enforcement status of an A1 policy.
3. **ProblemDetails**
>JSON representation of the content in a response message with other HTTP error response codes
#### **Resource identifiers**
Main URI for A1 policies
```
.../policies
```
A single policy can be operated upon by adding the value of the policy identifier to the URI:
```
.../policies/{policyID}
```
The main URI for status of a single policy is:
```
.../policies/{policyID}/status
```
### **Service Operations**

___
#### Create Policy
1. Create Single policy

2. **Create multiple policy**
The operation to create multiple policies is a sequence of operations to create a single policy.
___
#### Query Policy
1. **Query single policy**

2. **Query multiple policies**
The operation to query multiple policies is a sequence of operations to query a single policy.
3. **Query all policies**

___
#### Update policy
1. **Update single policy**

2. **Update multiple policies**
The operation to update multiple policies is a sequence of operations to update a single policy.
___
#### Delete Policy
1. **Delete single policy**

2. **Delete multiple policies**
The operation to delete multiple policies is a sequence of operations to delete a single policy.
___
#### Policy feedback
Policy feedback is an operation that requires:
* the A1-P Producer to have a reduced feature HTTP Client for sending HTTP POST requests and receiving HTTP POST responses
* The A1-P Consumer to have a reduced feature HTTP Server for receiving HTTP POST requests and sending HTTP POST requests
The A1-P Producer uses the policy feedback operation to notify the A1-P Consumer about **Changes in the policy enforcement status** for an A1 policy.

## API Definitions
The A1-P service shall use the A1-P API. The request URI used in HTTP request from the A1-P consumer towards the A1-P producer shall have the structure like this:
```
{apiRoot}/<apiName>/{apiVersion}/<apiSpecificResourceUriPart>
```
**apiRoot** should be a concatenation of the following parts:
* scheme ("https")
* The fixed string "://"
* authority (host and optional port) as defined in IETF RFC 3986
**apiName** should be "A1-P"
**apiVersion** should be "v1"
**apiSpecificResourceUriPart** should be as be defined below in resource section.
### Resources


#### Individual Policy Object
**Resource Standard Methods**
**HTTP PUT**


**HTTP GET**

**HTTP DELETE**

#### Individual Policy Status Object
**Resource Standard methods**
**HTTP GET**

#### All Policy Identities
**Resource Standard Methods**
**HTTP GET**

:::info
For the **Notifications**, **Data Model** and **Error Handling** refer to the main reference.
:::
## A1 Interface protocol stack

* TCP provides the communication service at the transport layer
* TLS is used to provide secure HTTP connections
* HTTP/1.1 is used as application level protocol
* The data interchange layer constitutes the transport of documents in the JSON format
___
###### tags: `Daily Report`