X-Git-Url: https://gerrit.o-ran-sc.org/r/gitweb?a=blobdiff_plain;f=docs%2Fsdnc-a1-controller-api.rst;h=fb6f1778823ee4d0550c3ecf09390c5ade488f27;hb=7a7a13a47eeebf9a61fa84d14af59b1cbe1598bc;hp=7390abc896ac70ad87377a9f192d2e13a79208dc;hpb=34882342628629b55c19e7f6a5369de045ab9102;p=nonrtric.git diff --git a/docs/sdnc-a1-controller-api.rst b/docs/sdnc-a1-controller-api.rst index 7390abc8..fb6f1778 100644 --- a/docs/sdnc-a1-controller-api.rst +++ b/docs/sdnc-a1-controller-api.rst @@ -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": "" - } - } +A JSON object. :: + + { + "input": { + "near-rt-ric-url": "" + } + } **Responses:** - 200: - A JSON where the body tag contains the JSON object of the policy type. :: - - { - "output": { - "http-status": "integer", - "body": "{ - - }" - } - } -**Examples:** - **Call**: :: +200: + +A JSON object where the body tag contains the JSON object of the policy type. :: + + { + "output": { + "http-status": "integer", + "body": "{ + + }" + } + } + +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": "", - "body": "object" - } - } +A JSON object where the body tag contains the JSON object of the policy. :: + + { + "input": { + "near-rt-ric-url": "", + "body": "" + } + } **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": "" - } - } +A JSON object. :: + + { + "input": { + "near-rt-ric-url": "" + } + } **Responses:** - 200: - A JSON where the body tag contains the JSON object of the policy. :: - - { - "output": { - "http-status": "integer", - "body": "{ - - }" - } + +200: + A JSON object where the body tag contains the JSON object of the policy. :: + + { + "output": { + "http-status": "integer", + "body": "{ + + }" } + } -**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": "" - } - } +A JSON object. :: + + { + "input": { + "near-rt-ric-url": "" + } + } **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": "" - } - } +A JSON object. :: + + { + "input": { + "near-rt-ric-url": "" + } + } **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": "{ - - }" - } - } -**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": "{ + + }" + } + } + +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\" + }" + } + }