Add examples in SDNC A1 Controlle API doc 57/3357/5
authorelinuxhenrik <henrik.b.andersson@est.tech>
Tue, 21 Apr 2020 13:14:04 +0000 (15:14 +0200)
committerelinuxhenrik <henrik.b.andersson@est.tech>
Wed, 22 Apr 2020 14:41:54 +0000 (16:41 +0200)
Adding examples where the STD 1.1.3 version of the A1 protocol is used.

Change-Id: I33575900c7c257595e61e33e9385ae7286c51b72
Issue-ID: NONRTRIC-158
Signed-off-by: elinuxhenrik <henrik.b.andersson@est.tech>
docs/policy-agent-api.rst
docs/sdnc-a1-controller-api.rst

index cf8bbb2..7161bdf 100644 (file)
@@ -481,7 +481,7 @@ Returns policy type schema definitions.
       }]
 
   **Call**: ::
-  
+
     curl -X GET "http://localhost:8081/policy_schemas?ric=nonexistent"
 
   Result:
index 7390abc..fb6f177 100644 (file)
@@ -16,9 +16,12 @@ SDNC A1 Controller
 
 The A1 of a Near |nbh| RT |nbsp| RIC can be used through the SDNC A1 Controller.
 
-Any version of the A1 API can be used. A call to the SDNC A1 Controller always contains the actual URL to the
-Near |nbh| RT |nbsp| RIC, so here any of the supported API versions can be used. The controller just calls the provided
-URL with the provided data.
+The OSC A1 Controller supports using multiple versions of A1 API southbound. By passing the full URL for each southbound
+A1 operation the problem of version-specific URL formats is avoided.
+
+Since different versions of A1 operations may use different data formats for data payloads for similar REST requests and
+responses the data formatting requirements are flexible, so version-specific encoding/decoding is handled by the service
+that requests the A1 operation.
 
 Get Policy Type
 ~~~~~~~~~~~~~~~
@@ -28,36 +31,49 @@ POST
 
 Gets a policy type.
 
+Definition
+""""""""""
+
 **URL path:**
-  /restconf/operations/A1-ADAPTER-API:getA1PolicyType
+
+/restconf/operations/A1-ADAPTER-API:getA1PolicyType
 
 **Parameters:**
-  None.
+
+None.
 
 **Body:** (*Required*)
-    A JSON. ::
 
-      {
-        "input": {
-          "near-rt-ric-url": "<url-to-near-rt-ric-to-get-type>"
-        }
-      }
+A JSON object. ::
+
+  {
+    "input": {
+      "near-rt-ric-url": "<url-to-near-rt-ric-to-get-type>"
+    }
+  }
 
 **Responses:**
-  200:
-    A JSON where the body tag contains the JSON object of the policy type. ::
-
-      {
-        "output": {
-          "http-status": "integer",
-          "body": "{
-            <policy-type>
-          }"
-        }
-      }
 
-**Examples:**
-  **Call**: ::
+200:
+
+A JSON object where the body tag contains the JSON object of the policy type. ::
+
+  {
+    "output": {
+      "http-status": "integer",
+      "body": "{
+        <policy-type>
+      }"
+    }
+  }
+
+Examples
+""""""""
+
+Get a policy type from a Near |nbh| RT |nbsp| RIC that is using the OSC 2.1.0 version. The STD 1.1.3 version does not
+support types, so this function is not available for that version.
+
+**Call**: ::
 
     curl -X POST "http://localhost:8282/restconf/operations/A1-ADAPTER-API:getA1PolicyType"
     -H "Content-Type: application/json" -d '{
@@ -66,63 +82,64 @@ Gets a policy type.
       }
     }'
 
-  Result:
-    200 ::
+**Result**:
+
+200: ::
 
-      {
-        "output": {
-          "http-status": 200,
-          "body": "{
-            \"$schema\": \"http://json-schema.org/draft-07/schema#\",
-            \"title\": \"Example_QoETarget_1.0.0\",
-            \"description\": \"Example QoE Target policy type\",
+  {
+    "output": {
+      "http-status": 200,
+      "body": "{
+        \"$schema\": \"http://json-schema.org/draft-07/schema#\",
+        \"title\": \"Example_QoETarget_1.0.0\",
+        \"description\": \"Example QoE Target policy type\",
+        \"type\": \"object\",
+        \"properties\": {
+          \"scope\": {
             \"type\": \"object\",
             \"properties\": {
-              \"scope\": {
-                \"type\": \"object\",
-                \"properties\": {
-                  \"ueId\": {
-                    \"type\": \"string\"
-                  },
-                  \"sliceId\": {
-                    \"type\": \"string\"
-                  },
-                  \"qosId\": {
-                    \"type\": \"string\"
-                  },
-                  \"cellId\": {
-                    \"type\": \"string\"
-                  }
-                },
-                \"additionalProperties\": false,
-                \"required\": [
-                  \"ueId\",
-                  \"sliceId\"
-                ]
+              \"ueId\": {
+                \"type\": \"string\"
+              },
+              \"sliceId\": {
+                \"type\": \"string\"
+              },
+              \"qosId\": {
+                \"type\": \"string\"
               },
-              \"statement\": {
-                \"type\": \"object\",
-                \"properties\": {
-                  \"qoeScore\": {
-                    \"type\": \"number\"
-                  },
-                  \"initialBuffering\": {
-                    \"type\": \"number\"
-                  },
-                  \"reBuffFreq\": {
-                    \"type\": \"number\"
-                  },
-                  \"stallRatio\": {
-                    \"type\": \"number\"
-                  }
-                },
-                \"minProperties\": 1,
-                \"additionalProperties\": false
+              \"cellId\": {
+                \"type\": \"string\"
               }
-            }
-          }"
+            },
+            \"additionalProperties\": false,
+            \"required\": [
+              \"ueId\",
+              \"sliceId\"
+            ]
+          },
+          \"statement\": {
+            \"type\": \"object\",
+            \"properties\": {
+              \"qoeScore\": {
+                \"type\": \"number\"
+              },
+              \"initialBuffering\": {
+                \"type\": \"number\"
+              },
+              \"reBuffFreq\": {
+                \"type\": \"number\"
+              },
+              \"stallRatio\": {
+                \"type\": \"number\"
+              }
+            },
+            \"minProperties\": 1,
+            \"additionalProperties\": false
+          }
         }
-      }
+      }"
+    }
+  }
 
 Put Policy
 ~~~~~~~~~~
@@ -132,39 +149,51 @@ POST
 
 Creates or updates a policy instance.
 
+Definition
+""""""""""
+
 **URL path:**
-  /restconf/operations/A1-ADAPTER-API:putA1Policy
+
+/restconf/operations/A1-ADAPTER-API:putA1Policy
 
 **Parameters:**
-  None.
+
+None.
 
 **Body:** (*Required*)
-    A JSON where the body tag contains the JSON object of the policy. ::
 
-      {
-        "input": {
-          "near-rt-ric-url": "<url-to-near-rt-ric-to-put-policy>",
-          "body": "object"
-        }
-      }
+A JSON object where the body tag contains the JSON object of the policy. ::
+
+  {
+    "input": {
+      "near-rt-ric-url": "<url-to-near-rt-ric-to-put-policy>",
+      "body": "<policy-as-json-string>"
+    }
+  }
 
 **Responses:**
-  200:
-    A JSON with the response. ::
 
-      {
-        "output": {
-          "http-status": "integer"
-        }
-      }
+200:
 
-**Examples:**
-  **Call**: ::
+A JSON object with the response. ::
 
-    curl -X POST "http://localhost:8282/restconf/operations/A1-ADAPTER-API:getA1PolicyType"
+  {
+    "output": {
+      "http-status": "integer"
+    }
+  }
+
+Examples
+""""""""
+
+**Call**:
+
+Create a policy in a Near |nbh| RT |nbsp| RIC that is using the OSC 2.1.0 version. ::
+
+    curl -X POST "http://localhost:8282/restconf/operations/A1-ADAPTER-API:putA1Policy"
     -H "Content-Type: application/json" -d '{
       "input": {
-        "near-rt-ric-url": "http://nearRtRic-sim1:8085/a1-p/policytypes/11/policies/3d2157af-6a8f-4a7c-810f-38c2f824bf12",
+        "near-rt-ric-url": "http://nearRtRic-sim1:8085/a1-p/policytypes/11/policies/5000",
         "body": "{
           "blocking_rate":20,
           "enforce":true,
@@ -174,14 +203,35 @@ Creates or updates a policy instance.
       }
     }'
 
-  Result:
-    200 ::
+Create a policy in a Near |nbh| RT |nbsp| RIC that is using the STD 1.1.3 version. ::
 
-      {
-        "output": {
-          "http-status": 200
-        }
+    curl -X POST http://localhost:8282/restconf/operations/A1-ADAPTER-API:putA1Policy
+    -H Content-Type:application/json -d '{
+      "input": {
+        "near-rt-ric-url": "http://ricsim_g2_1:8085/A1-P/v1/policies/5000",
+        "body": "{
+          "scope": {
+            "ueId": "ue5000",
+            "qosId": "qos5000"
+          },
+          "qosObjective": {
+            "priorityLevel": 5000
+          }
+        }"
       }
+    }'
+
+**Result**:
+
+The result is the same irrespective of which API that is used.
+
+200: ::
+
+  {
+    "output": {
+      "http-status": 200
+    }
+  }
 
 Get Policy
 ~~~~~~~~~~
@@ -191,58 +241,120 @@ POST
 
 Gets a policy instance.
 
+Definition
+""""""""""
+
 **URL path:**
-  /restconf/operations/A1-ADAPTER-API:getA1Policy
+
+/restconf/operations/A1-ADAPTER-API:getA1Policy
 
 **Parameters:**
-  None.
+
+None.
 
 **Body:** (*Required*)
-    A JSON. ::
 
-      {
-        "input": {
-          "near-rt-ric-url": "<url-to-near-rt-ric-to-get-policy>"
-        }
-      }
+A JSON object. ::
+
+  {
+    "input": {
+      "near-rt-ric-url": "<url-to-near-rt-ric-to-get-policy>"
+    }
+  }
 
 **Responses:**
-  200:
-    A JSON where the body tag contains the JSON object of the policy. ::
-
-      {
-        "output": {
-          "http-status": "integer",
-          "body": "{
-            <policy>
-          }"
-        }
+
+200:
+  A JSON object where the body tag contains the JSON object of the policy. ::
+
+    {
+      "output": {
+        "http-status": "integer",
+        "body": "{
+          <result>
+        }"
       }
+    }
 
-**Examples:**
-  **Call**: ::
+Examples
+""""""""
+
+**Call**:
+
+Get **all** policy IDs from a Near |nbh| RT |nbsp| RIC that is using the OSC 2.1.0 version. ::
+
+    curl -X POST http://localhost:8282/restconf/operations/A1-ADAPTER-API:getA1Policy
+    -H Content-Type:application/json -d '{
+      "input": {
+        "near-rt-ric-url":"http://ricsim_g1_1:8085/a1-p/policytypes/11/policies"
+      }
+    }'
+
+Get **all** policy IDs from a Near |nbh| RT |nbsp| RIC that is using the STD 1.1.3 version. ::
+
+    curl -X POST http://localhost:8282/restconf/operations/A1-ADAPTER-API:getA1Policy
+    -H Content-Type:application/json -d '{
+      "input": {
+        "near-rt-ric-url":"http://ricsim_g2_1:8085/A1-P/v1/policies"
+      }
+    }'
+
+**Result**:
+
+The result is the same irrespective of which API that is used.
+
+200: ::
+
+  {
+    "output": {
+      "http-status":200,
+      "body":"[
+        \"5000\",
+          .
+          .
+          .
+        \"6000\"
+      ]"
+    }
+  }
+
+**Call**:
+
+Get **a specific** policy from a Near |nbh| RT |nbsp| RIC that is using the OSC 2.1.0 version. ::
 
     curl -X POST "http://localhost:8282/restconf/operations/A1-ADAPTER-API:getA1Policy"
     -H "Content-Type: application/json" -d '{
       "input": {
-        "near-rt-ric-url": "http://nearRtRic-sim1:8085/a1-p/policytypes/11/policies/3d2157af-6a8f-4a7c-810f-38c2f824bf12"
+        "near-rt-ric-url": "http://nearRtRic-sim1:8085/a1-p/policytypes/11/policies/5000"
       }
     }'
 
-  Result:
-    200 ::
-
-      {
-        "output": {
-          "http-status": 200,
-          "body": "{
-            \"blocking_rate\": 20,
-            \"enforce\": true,
-            \"trigger_threshold\": 10,
-            \"window_length\": 10
-          }"
-        }
+Get **a specific** policy from a Near |nbh| RT |nbsp| RIC that is using the STD 1.1.3 version. ::
+
+    curl -X POST http://localhost:8282/restconf/operations/A1-ADAPTER-API:getA1PolicyType
+    -H Content-Type:application/json -d '{
+      "input": {
+        "near-rt-ric-url":"http://ricsim_g2_1:8085/A1-P/v1/policies/5000"
       }
+    }'
+
+**Result**:
+
+The result is the same irrespective of which API that is used.
+
+200: ::
+
+  {
+    "output": {
+      "http-status": 200,
+      "body": "{
+        \"blocking_rate\": 20,
+        \"enforce\": true,
+        \"trigger_threshold\": 10,
+        \"window_length\": 10
+      }"
+    }
+  }
 
 Delete Policy
 ~~~~~~~~~~~~~
@@ -252,49 +364,73 @@ POST
 
 Deletes a policy instance.
 
+Definition
+""""""""""
+
 **URL path:**
-  /restconf/operations/A1-ADAPTER-API:deleteA1Policy
+
+/restconf/operations/A1-ADAPTER-API:deleteA1Policy
 
 **Parameters:**
-  None.
+
+None.
 
 **Body:** (*Required*)
-    A JSON. ::
 
-      {
-        "input": {
-          "near-rt-ric-url": "<url-to-near-rt-ric-to-delete-policy>"
-        }
-      }
+A JSON object. ::
+
+  {
+    "input": {
+      "near-rt-ric-url": "<url-to-near-rt-ric-to-delete-policy>"
+    }
+  }
 
 **Responses:**
-  200:
-    A JSON with the response. ::
 
-      {
-        "output": {
-          "http-status": "integer"
-        }
-      }
+200:
+
+A JSON object with the response. ::
+
+  {
+    "output": {
+      "http-status": "integer"
+    }
+  }
+
+Examples
+""""""""
 
-**Examples:**
-  **Call**: ::
+**Call**:
+
+Delete a policy from a Near |nbh| RT |nbsp| RIC that is using the OSC 2.1.0 version. ::
 
     curl -X POST "http://localhost:8282/restconf/operations/A1-ADAPTER-API:deleteA1Policy"
     -H "Content-Type: application/json" -d '{
       "input": {
-        "near-rt-ric-url": "http://nearRtRic-sim1:8085/a1-p/policytypes/11/policies/3d2157af-6a8f-4a7c-810f-38c2f824bf12"
+        "near-rt-ric-url": "http://nearRtRic-sim1:8085/a1-p/policytypes/11/policies/5000"
       }
     }'
 
-  Result:
-    200 ::
+Delete a policy from a Near |nbh| RT |nbsp| RIC that is using the STD 1.1.3 version. ::
 
-      {
-        "output": {
-          "http-status": 202
-        }
+    curl -X POST "http://localhost:8282/restconf/operations/A1-ADAPTER-API:deleteA1Policy"
+    -H "Content-Type: application/json" -d '{
+      "input": {
+        "near-rt-ric-url": "http://ricsim_g2_1:8085/A1-P/v1/policies/5000"
       }
+    }'
+
+**Result**:
+
+The result is the same irrespective of which API that is used.
+
+200: ::
+
+  {
+    "output": {
+      "http-status": 202
+    }
+  }
 
 Get Policy Status
 ~~~~~~~~~~~~~~~~~
@@ -304,54 +440,91 @@ POST
 
 Get the status of a policy instance.
 
+Definition
+""""""""""
+
 **URL path:**
-  /restconf/operations/A1-ADAPTER-API:getA1PolicyStatus
+
+/restconf/operations/A1-ADAPTER-API:getA1PolicyStatus
 
 **Parameters:**
-  None.
+
+None.
 
 **Body:** (*Required*)
-    A JSON. ::
 
-      {
-        "input": {
-          "near-rt-ric-url": "<url-to-near-rt-ric-to-get-policy-status>"
-        }
-      }
+A JSON object. ::
+
+  {
+    "input": {
+      "near-rt-ric-url": "<url-to-near-rt-ric-to-get-policy-status>"
+    }
+  }
 
 **Responses:**
-  200:
-    A JSON where the body tag contains the JSON object with the policy status according to the API version used. ::
-
-      {
-        "output": {
-          "http-status": "integer",
-          "body": "{
-            <policy-status-object>
-          }"
-        }
-      }
 
-**Examples:**
-  **Call**: ::
+200:
+
+A JSON object where the body tag contains the JSON object with the policy status according to the API version used. ::
+
+  {
+    "output": {
+      "http-status": "integer",
+      "body": "{
+        <policy-status-object>
+      }"
+    }
+  }
+
+Examples
+""""""""
+
+**Call**:
+
+Get the policy status for a specific policy from a Near |nbh| RT |nbsp| RIC that is using the OSC 2.1.0 version. ::
 
     curl -X POST "http://localhost:8282/restconf/operations/A1-ADAPTER-API:getA1PolicyStatus"
     -H "Content-Type: application/json" -d '{
       "input": {
-        "near-rt-ric-url": "http://nearRtRic-sim1:8085/a1-p/policytypes/11/policies/3d2157af-6a8f-4a7c-810f-38c2f824bf12/status"
+        "near-rt-ric-url": "http://nearRtRic-sim1:8085/a1-p/policytypes/11/policies/5000/status"
       }
     }'
 
-  Result:
-    200 ::
-
-      {
-        "output": {
-          "http-status": 200,
-          "body": "{
-            \"instance_status\": \"IN EFFECT\",
-            \"has_been_deleted\": \"true\",
-            \"created_at\": \"Wed, 01 Apr 2020 07:45:45 GMT\"
-          }"
-        }
+**Result**:
+
+200: ::
+
+  {
+    "output": {
+      "http-status": 200,
+      "body": "{
+        \"instance_status\": \"IN EFFECT\",
+        \"has_been_deleted\": \"true\",
+        \"created_at\": \"Wed, 01 Apr 2020 07:45:45 GMT\"
+      }"
+    }
+  }
+
+**Call**:
+
+Get the policy status for a specific policy from a Near |nbh| RT |nbsp| RIC that is using the STD 1.1.3 version. ::
+
+    curl -X POST "http://localhost:8282/restconf/operations/A1-ADAPTER-API:getA1PolicyStatus"
+    -H "Content-Type: application/json" -d '{
+      "input": {
+        "near-rt-ric-url": "http://ricsim_g2_1:8085/A1-P/v1/policies/5000/status"
       }
+    }'
+
+**Result**:
+
+200: ::
+
+  {
+    "output": {
+      "http-status": 200,
+      "body": "{
+        \"enforceStatus\": \"UNDEFINED\"
+      }"
+    }
+  }