.. This work is licensed under a Creative Commons Attribution 4.0 International License. .. http://creativecommons.org/licenses/by/4.0 .. Copyright (C) 2020 Nordix .. _sdnc-a1-controller-api: .. |nbsp| unicode:: 0xA0 :trim: .. |nbh| unicode:: 0x2011 :trim: ################## 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. Get Policy Type ~~~~~~~~~~~~~~~ POST ++++ Gets a policy type. **URL path:** /restconf/operations/A1-ADAPTER-API:getA1PolicyType **Parameters:** None. **Body:** (*Required*) A JSON. :: { "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**: :: curl -X POST "http://localhost:8282/restconf/operations/A1-ADAPTER-API:getA1PolicyType" -H "Content-Type: application/json" -d '{ "input": { "near-rt-ric-url": "http://nearRtRic-sim1:8085/a1-p/policytypes/11" } }' 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\", \"type\": \"object\", \"properties\": { \"scope\": { \"type\": \"object\", \"properties\": { \"ueId\": { \"type\": \"string\" }, \"sliceId\": { \"type\": \"string\" }, \"qosId\": { \"type\": \"string\" }, \"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 ~~~~~~~~~~ POST ++++ Creates or updates a policy instance. **URL path:** /restconf/operations/A1-ADAPTER-API:putA1Policy **Parameters:** None. **Body:** (*Required*) A JSON where the body tag contains the JSON object of the policy. :: { "input": { "near-rt-ric-url": "", "body": "object" } } **Responses:** 200: A JSON with the response. :: { "output": { "http-status": "integer" } } **Examples:** **Call**: :: curl -X POST "http://localhost:8282/restconf/operations/A1-ADAPTER-API:getA1PolicyType" -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", "body": "{ "blocking_rate":20, "enforce":true, "trigger_threshold":10, "window_length":10 }" } }' Result: 200 :: { "output": { "http-status": 200 } } Get Policy ~~~~~~~~~~ POST ++++ Gets a policy instance. **URL path:** /restconf/operations/A1-ADAPTER-API:getA1Policy **Parameters:** None. **Body:** (*Required*) A JSON. :: { "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": "{ }" } } **Examples:** **Call**: :: 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" } }' Result: 200 :: { "output": { "http-status": 200, "body": "{ \"blocking_rate\": 20, \"enforce\": true, \"trigger_threshold\": 10, \"window_length\": 10 }" } } Delete Policy ~~~~~~~~~~~~~ POST ++++ Deletes a policy instance. **URL path:** /restconf/operations/A1-ADAPTER-API:deleteA1Policy **Parameters:** None. **Body:** (*Required*) A JSON. :: { "input": { "near-rt-ric-url": "" } } **Responses:** 200: A JSON with the response. :: { "output": { "http-status": "integer" } } **Examples:** **Call**: :: 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" } }' Result: 200 :: { "output": { "http-status": 202 } } Get Policy Status ~~~~~~~~~~~~~~~~~ POST ++++ Get the status of a policy instance. **URL path:** /restconf/operations/A1-ADAPTER-API:getA1PolicyStatus **Parameters:** None. **Body:** (*Required*) A JSON. :: { "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**: :: 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" } }' 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\" }" } }