The simulator supports different versions of the A1 interface. Some functions are common for all version, and some are
specific for a certain version.
-.. contents:: Operations
- :depth: 4
- :local:
-
Common Functions
================
GET
+++
- Returns the status of the simulator.
-
- **URL path:**
- /
-
- **Parameters:**
+Returns the status of the simulator.
- None.
+**URL path:**
+ /
- **Responses:**
+**Parameters:**
+ None.
- 200:
- Simulator is living.
+**Responses:**
+ 200:
+ Simulator is living.
- **Examples:**
+**Examples:**
+ **Call**: ::
- Call: ::
+ curl -X GET "http://localhost:8085/"
- curl -X GET "http://localhost:8085/"
+ Result:
+ 200: ::
- Result:
- 200
- Simulator is living (OSC_2.1.0 responds OK)
+ Simulator is living (OSC_2.1.0 responds OK)
Supported Interfaces
--------------------
GET
+++
- Returns the status of the simulator. (Not available for A1 Standard 1.1.3)
-
- **URL path:**
- /container_interfaces
-
- **Parameters:**
+Returns the status of the simulator. (Not available for A1 Standard 1.1.3)
- None.
+**URL path:**
+ /container_interfaces
- **Responses:**
+**Parameters:**
+ None.
- 200:
- List of supported interfaces.
+**Responses:**
+ 200:
+ List of supported interfaces.
- **Examples:**
+**Examples:**
+ **Call**: ::
- Call: ::
+ curl -X GET "http://localhost:8085/container_interfaces"
- curl -X GET "http://localhost:8085/container_interfaces"
+ Result:
+ 200: ::
- Result:
- 200
- 1.1.x-alpha.2 OSC_2.1.0 STD_1.1.3
+ 1.1.x-alpha.2 OSC_2.1.0 STD_1.1.3
Counters
--------
GET
+++
- Get a counter. Counter-name can be one of the following: 'num_instances', 'num_types' or 'interface'.
+Get a counter. Counter-name can be one of the following: 'num_instances', 'num_types' or 'interface'.
- **URL path:**
- /counter/{counter-name}
+**URL path:**
+ /counter/{counter-name}
- **Parameters:**
+**Parameters:**
+ None.
- None.
+**Responses:**
+ 200:
+ The counter value for the given counter.
- **Responses:**
+**Examples:**
+ **Call**: ::
- 200:
- The counter value for the given counter.
+ curl -X GET "http://localhost:8085/counter/num_instances"
- **Examples:**
+ Result:
+ 200: ::
- Call: ::
-
- curl -X GET "http://localhost:8085/counter/num_instances"
-
- Result:
- 200
- 10
+ 10
Version Specific Functions
==========================
POST
++++
- Delete all policy instances.
-
- **URL path:**
- /deleteinstances
-
- **Parameters:**
+Delete all policy instances.
- None.
+**URL path:**
+ /deleteinstances
- **Responses:**
+**Parameters:**
+ None.
- 200:
- All policy instances deleted.
+**Responses:**
+ 200:
+ All policy instances deleted.
- **Examples:**
+**Examples:**
+ **Call**: ::
- Call: ::
+ curl -X POST "http://localhost:8085/deleteinstances"
- curl -X POST "http://localhost:8085/deleteinstances"
+ Result:
+ 200: ::
- Result:
- 200
- All policy instances deleted.
+ All policy instances deleted.
/deleteall
~~~~~~~~~~~~~~~~
POST
++++
- Full reset.
-
- **URL path:**
- /deleteall
+Full reset.
- **Parameters:**
+**URL path:**
+ /deleteall
- None.
+**Parameters:**
+ None.
- **Responses:**
-
- 200:
- All policy instances and types deleted.
+**Responses:**
+ 200:
+ All policy instances and types deleted.
- **Examples:**
+**Examples:**
+ **Call**: ::
- Call: ::
+ curl -X POST "http://localhost:8085/deleteall"
- curl -X POST "http://localhost:8085/deleteall"
+ Result:
+ 200: ::
- Result:
- 200
- All policy instances and types deleted.
+ All policy instances and types deleted.
/policytype
~~~~~~~~~~~
PUT
+++
- Create a policy type.
-
- **URL path:**
- /policytype?id=<policy-type-id>
-
- **Parameters:**
-
- id: (*Required*)
- The ID of the policy type.
+Create a policy type.
- **Body:** (*Required*)
- A JSON object containing the schema for the type.
+**URL path:**
+ /policytype?id=<policy-type-id>
- **Responses:**
+**Parameters:**
+ id: (*Required*)
+ The ID of the policy type.
- 200:
- Policy type <policy-type-id> is OK.
+**Body:** (*Required*)
+ A JSON object containing the schema for the type.
- 201:
- Policy type <policy-type-id> is OK.
+**Responses:**
+ 200:
+ Policy type <policy-type-id> is OK.
+ 201:
+ Policy type <policy-type-id> is OK.
- **Examples:**
+**Examples:**
+ **Call**: ::
- Call: ::
-
- curl -X PUT "http://localhost:8085/policytype?id=Policy%201&ric=ric1&service=Service%201&type=STD_PolicyModelUnconstrained_0.2.0"
- -H "Content-Type: application/json"
- -d "
- {
+ curl -X PUT "http://localhost:8085/policytype?id=Policy%201&ric=ric1&service=Service%201&type=STD_PolicyModelUnconstrained_0.2.0"
+ -H "Content-Type: application/json"
+ -d '{
"$schema": "http://json-schema.org/draft-07/schema#",
"title": "STD_PolicyModelUnconstrained_0.2.0",
"description": "Standard model of a policy with unconstrained scope id combinations",
"minProperties": 2,
"additionalProperties": false,
"required": ["scope"]
- }
- "
+ }'
+
+ Result:
+ 201: ::
- Result:
- 201
- Policy type STD_PolicyModelUnconstrained_0.2.0 is OK
+ Policy type STD_PolicyModelUnconstrained_0.2.0 is OK
DELETE
++++++
- Delete a policy type.
-
- **URL path:**
- /policytype?id=<policy-type-id>
+Delete a policy type.
- **Parameters:**
+**URL path:**
+ /policytype?id=<policy-type-id>
- id: (*Required*)
- The ID of the policy type.
+**Parameters:**
+ id: (*Required*)
+ The ID of the policy type.
- **Responses:**
+**Responses:**
+ 204:
+ Policy type <policy-type-id> is OK.
- 204:
- Policy type <policy-type-id> is OK.
+**Examples:**
+ **Call**: ::
- **Examples:**
+ curl -X DELETE "http://localhost:8085/policytype?id=Policy%201&ric=ric1&service=Service%201&type=STD_PolicyModelUnconstrained_0.2.0"
- Call: ::
+ Result:
+ 204: ::
- curl -X DELETE "http://localhost:8085/policytype?id=Policy%201&ric=ric1&service=Service%201&type=STD_PolicyModelUnconstrained_0.2.0"
-
- Result:
- 204
- Policy type STD_PolicyModelUnconstrained_0.2.0 is OK
+ Policy type STD_PolicyModelUnconstrained_0.2.0 is OK
/policytypes
~~~~~~~~~~~~
GET
+++
- Get a list of policy types.
-
- **URL path:**
- /policytypes
+Get a list of policy types.
- **Parameters:**
+**URL path:**
+ /policytypes
- None.
+**Parameters:**
+ None.
- **Responses:**
+**Responses:**
+ 200:
+ A list of policy types.
- 200:
- A list of policy types.
+**Examples:**
+ **Call**: ::
- **Examples:**
+ curl -X GET "http://localhost:8085/policytypes"
- Call: ::
+ Result:
+ 200: ::
- curl -X GET "http://localhost:8085/policytypes"
-
- Result:
- 200
- STD_PolicyModelUnconstrained_0.2.0
+ STD_PolicyModelUnconstrained_0.2.0
/forceresponse
~~~~~~~~~~~~~~
POST
++++
- Force a specific response code for an A1 operation.
-
- **URL path:**
- /forceresponse?responsecode=<http-response-code>
+Force a specific response code for an A1 operation.
- **Parameters:**
+**URL path:**
+ /forceresponse?responsecode=<http-response-code>
- responsecode: (*Required*)
- The HTTP response code to return.
+**Parameters:**
+ responsecode: (*Required*)
+ The HTTP response code to return.
- **Responses:**
+**Responses:**
+ 200:
+ Force response code: <expected code> set for one single A1 response
- 200:
- Force response code: <expected code> set for one single A1 response
+**Examples:**
+ **Call**: ::
- **Examples:**
+ curl -X POST "http://localhost:8085/forceresponse?responsecode=400"
- Call: ::
+ Result:
+ 200: ::
- curl -X POST "http://localhost:8085/forceresponse?responsecode=400"
-
- Result:
- 200
- Force response code: 400 set for one single A1 response
+ Force response code: 400 set for one single A1 response
/forcedelay
~~~~~~~~~~~
POST
++++
- Force delayed response of all A1 operations.
-
- **URL path:**
- /forcedelay?delay=<delay-time-seconds>
+Force delayed response of all A1 operations.
- **Parameters:**
+**URL path:**
+ /forcedelay?delay=<delay-time-seconds>
- delay: (*Required*)
- The time in seconds to delay all responses.
+**Parameters:**
+ delay: (*Required*)
+ The time in seconds to delay all responses.
- **Responses:**
+**Responses:**
+ 200:
+ Force delay: <expected delay> sec set for all A1 responses
- 200:
- Force delay: <expected delay> sec set for all A1 responses
+**Examples:**
+ **Call**: ::
- **Examples:**
+ curl -X POST "http://localhost:8085/forcedelay?delay=2"
- Call: ::
+ Result:
+ 200: ::
- curl -X POST "http://localhost:8085/forcedelay?delay=2"
-
- Result:
- 200
- Force delay: 2 sec set for all A1 responses
+ Force delay: 2 sec set for all A1 responses
/status
~~~~~~~
PUT
+++
- Set status and optional reason, delete and time stamp.
-
- **URL path:**
- /status?policyid=<policyid>&status=<status>&deleted=<value>&created_at=<time-stamp>
-
- **Parameters:**
-
- policyid: (*Required*)
- The ID of a policy.
+Set status and optional reason, delete and time stamp.
- status: (*Required*)
- The status of a policy.
+**URL path:**
+ /status?policyid=<policyid>&status=<status>&deleted=<value>&created_at=<time-stamp>
- deleted: (*Optional*)
- True or false for real values, but accepts anything for error testing.
+**Parameters:**
+ policyid: (*Required*)
+ The ID of a policy.
+ status: (*Required*)
+ The status of a policy.
+ deleted: (*Optional*)
+ True or false for real values, but accepts anything for error testing.
+ created_at: (*Optional*)
+ Time stamp for the status.
- created_at: (*Optional*)
- Time stamp for the status.
+**Responses:**
+ 200:
+ Status set to <status> for policy <policy-id>
- **Responses:**
+**Examples:**
+ **Call**: ::
- 200:
- Status set to <status> for policy <policy-id>
+ curl -X PUT "http://localhost:8085/policyid=Policy1&status?status=Accepted
- **Examples:**
+ Result:
+ 200: ::
- Call: ::
-
- curl -X PUT "http://localhost:8085/policyid=Policy1&status?status=Accepted
-
- Result:
- 200
- Status set to Accepted for policy Policy1.
+ Status set to Accepted for policy Policy1.
A1 Standard 1.1.3
-----------------
POST
++++
- Delete all policy instances.
-
- **URL path:**
- /deleteinstances
-
- **Parameters:**
+Delete all policy instances.
- None.
+**URL path:**
+ /deleteinstances
- **Responses:**
+**Parameters:**
+ None.
- 200:
- All policy instances deleted.
+**Responses:**
+ 200:
+ All policy instances deleted.
- **Examples:**
+**Examples:**
+ **Call**: ::
- Call: ::
+ curl -X POST "http://localhost:8085/deleteinstances"
- curl -X POST "http://localhost:8085/deleteinstances"
+ Result:
+ 200: ::
- Result:
- 200
- All policy instances deleted.
+ All policy instances deleted.
/deleteall
~~~~~~~~~~
POST
++++
- Full reset.
-
- **URL path:**
- /deleteinstances
+Full reset.
- **Parameters:**
+**URL path:**
+ /deleteinstances
- None.
+**Parameters:**
+ None.
- **Responses:**
-
- 200:
- All policy instances deleted.
+**Responses:**
+ 200:
+ All policy instances deleted.
- **Examples:**
+**Examples:**
+ **Call**: ::
- Call: ::
+ curl -X POST "http://localhost:8085/deleteall"
- curl -X POST "http://localhost:8085/deleteall"
+ Result:
+ 200: ::
- Result:
- 200
- All policy instances deleted.
+ All policy instances deleted.
/forceresponse
~~~~~~~~~~~~~~
POST
++++
- Force a specific response code for an A1 operation.
-
- **URL path:**
- /forceresponse?responsecode=<http-response-code>
+Force a specific response code for an A1 operation.
- **Parameters:**
+**URL path:**
+ /forceresponse?responsecode=<http-response-code>
- responsecode: (*Required*)
- The HTTP response code to return.
+**Parameters:**
+ responsecode: (*Required*)
+ The HTTP response code to return.
- **Responses:**
+**Responses:**
+ 200:
+ Force response code: <expected code> set for one single A1 response
- 200:
- Force response code: <expected code> set for one single A1 response
+**Examples:**
+ **Call**: ::
- **Examples:**
+ curl -X POST "http://localhost:8085/forceresponse?responsecode=400"
- Call: ::
+ Result:
+ 200: ::
- curl -X POST "http://localhost:8085/forceresponse?responsecode=400"
-
- Result:
- 200
- Force response code: 400 set for one single A1 response
+ Force response code: 400 set for one single A1 response
/forcedelay
~~~~~~~~~~~
POST
++++
- Force delayed response of all A1 operations.
-
- **URL path:**
- /forcedelay?delay=<delay-time-seconds>
+Force delayed response of all A1 operations.
- **Parameters:**
+**URL path:**
+ /forcedelay?delay=<delay-time-seconds>
- delay: (*Required*)
- The time in seconds to delay all responses.
+**Parameters:**
+ delay: (*Required*)
+ The time in seconds to delay all responses.
- **Responses:**
+**Responses:**
+ 200:
+ Force delay: <expected delay> sec set for all A1 responses
- 200:
- Force delay: <expected delay> sec set for all A1 responses
+**Examples:**
+ **Call**: ::
- **Examples:**
+ curl -X POST "http://localhost:8085/forcedelay?delay=2"
- Call: ::
+ Result:
+ 200: ::
- curl -X POST "http://localhost:8085/forcedelay?delay=2"
-
- Result:
- 200
- Force delay: 2 sec set for all A1 responses
+ Force delay: 2 sec set for all A1 responses
/status
~~~~~~~
PUT
+++
- Set status and optional reason, delete and time stamp.
-
- **URL path:**
- /status?policyid=<policyid>&status=<status>&reason=<reason>
-
- **Parameters:**
-
- policyid: (*Required*)
- The ID of a policy.
-
- status: (*Required*)
- The status of a policy.
+Set status and optional reason, delete and time stamp.
- reason: (*Optional*)
- The reason for the status.
+**URL path:**
+ /status?policyid=<policyid>&status=<status>&reason=<reason>
- **Responses:**
+**Parameters:**
+ policyid: (*Required*)
+ The ID of a policy.
+ status: (*Required*)
+ The status of a policy.
+ reason: (*Optional*)
+ The reason for the status.
- 200:
- Status set to <status> for policy <policy-id>
+**Responses:**
+ 200:
+ Status set to <status> for policy <policy-id>
- **Examples:**
+**Examples:**
+ **Call**: ::
- Call: ::
+ curl -X PUT "http://localhost:8085/status?policyid=Policy1&status=Accepted
- curl -X PUT "http://localhost:8085/status?policyid=Policy1&status=Accepted
+ Result:
+ 200: ::
- Result:
- 200
- Status set to Accepted for policy Policy1
+ Status set to Accepted for policy Policy1
/sendstatus
~~~~~~~~~~~
POST
++++
- Send status for policy.
+Send status for policy.
- **URL path:**
- /sendstatus?policyid=<policy-id>
+**URL path:**
+ /sendstatus?policyid=<policy-id>
- **Parameters:**
+**Parameters:**
+ policyid: (*Required*)
+ The ID of the policy to send status for.
- policyid: (*Required*)
- The ID of the policy to send status for.
+**Responses:**
+ 200:
+ Is a JSON with the response of the actual post request to the callback server, whatever that is.
- **Responses:**
+**Examples:**
+ **Call**: ::
- 200:
- Is a JSON with the response of the actual post request to the callback server, whatever that is.
+ curl -X POST "http://localhost:8085/sendstatus?policyid=Policy2"
- **Examples:**
-
- Call: ::
-
- curl -X POST "http://localhost:8085/sendstatus?policyid=Policy2"
-
- Result:
- 200
+ Result:
+ 200
1.1.x-alpha.2
-------------
DELETE
++++++
- Delete all policy instances.
+Delete all policy instances.
- **URL path:**
- /deleteinstances
+**URL path:**
+ /deleteinstances
- **Parameters:**
+**Parameters:**
+ None.
- None.
+**Responses:**
+ 200:
+ All policy instances deleted.
- **Responses:**
+**Examples:**
+ **Call**: ::
- 200:
- All policy instances deleted.
+ curl -X DELETE "http://localhost:8085/deleteinstances"
- **Examples:**
+ Result:
+ 200: ::
- Call: ::
-
- curl -X DELETE "http://localhost:8085/deleteinstances"
-
- Result:
- 200
- All policy instances deleted.
+ All policy instances deleted.
/deletetypes
~~~~~~~~~~~~
DELETE
++++++
- Delete all policy types.
+Delete all policy types.
- **URL path:**
- /deletetypes
+**URL path:**
+ /deletetypes
- **Parameters:**
+**Parameters:**
+ None.
- None.
+**Responses:**
+ 200:
+ All policy types deleted.
- **Responses:**
-
- 200:
- All policy types deleted.
+**Examples:**
+ **Call**: ::
- **Examples:**
+ curl -X DELETE "http://localhost:8085/deletetypes"
- Call: ::
+ Result:
+ 200: ::
- curl -X DELETE "http://localhost:8085/deletetypes"
-
- Result:
- 200
- All policy types deleted.
+ All policy types deleted.
/policytypes
~~~~~~~~~~~~
PUT
+++
- Create or update a policy type.
-
- **URL path:**
- /policytypes/{policy-type-id}
-
- **Parameters:**
+Create or update a policy type.
- None.
+**URL path:**
+ /policytypes/{policy-type-id}
- **Body:** (*Required*)
- A JSON object containing the schema for the type.
+**Parameters:**
+ None.
- **Responses:**
+**Body:** (*Required*)
+ A JSON object containing the schema for the type.
- 200:
- The policy type was either created or updated for policy type id: <policy-type-id>
+**Responses:**
+ 200:
+ The policy type was either created or updated for policy type id: <policy-type-id>
- **Examples:**
+**Examples:**
+ **Call**: ::
- Call: ::
-
- curl -X PUT "http://localhost:8085/policytype/Policy%201&ric=ric1&service=Service%201&type=STD_PolicyModelUnconstrained_0.2.0"
- -H "Content-Type: application/json"
- -d "
- {
+ curl -X PUT "http://localhost:8085/policytype/Policy%201&ric=ric1&service=Service%201&type=STD_PolicyModelUnconstrained_0.2.0"
+ -H "Content-Type: application/json"
+ -d '{
"$schema": "http://json-schema.org/draft-07/schema#",
"title": "STD_PolicyModelUnconstrained_0.2.0",
"description": "Standard model of a policy with unconstrained scope id combinations",
"minProperties": 2,
"additionalProperties": false,
"required": ["scope"]
- }
- "
+ }'
+
+ Result:
+ 200: ::
- Result:
- 200
- The policy type was either created or updated for policy type id: STD_PolicyModelUnconstrained_0.2.0
+ The policy type was either created or updated for policy type id: STD_PolicyModelUnconstrained_0.2.0
DELETE
++++++
- Delete a policy type.
-
- **URL path:**
- /policytypes/{policy-type-id}
-
- **Parameters:**
+Delete a policy type.
- None.
+**URL path:**
+ /policytypes/{policy-type-id}
- **Responses:**
+**Parameters:**
+ None.
- 200:
- policy type successfully deleted for policy type id: <policy-type-id>
+**Responses:**
+ 200:
+ policy type successfully deleted for policy type id: <policy-type-id>
- **Examples:**
+**Examples:**
+ **Call**: ::
- Call: ::
+ curl -X DELETE "http://localhost:8085/policytype?id=Policy%201&ric=ric1&service=Service%201&type=STD_PolicyModelUnconstrained_0.2.0"
- curl -X DELETE "http://localhost:8085/policytype?id=Policy%201&ric=ric1&service=Service%201&type=STD_PolicyModelUnconstrained_0.2.0"
+ Result:
+ 200: ::
- Result:
- 200
- policy type successfully deleted for policy type id: STD_PolicyModelUnconstrained_0.2.0
+ policy type successfully deleted for policy type id: STD_PolicyModelUnconstrained_0.2.0
/{policyId}/{enforceStatus}
~~~~~~~~~~~~~~~~~~~~~~~~~~~
PUT
+++
- Set a status to a policy instance with an enforceStatus parameter only.
+Set a status to a policy instance with an enforceStatus parameter only.
- **URL path:**
- /{policyId}/{enforceStatus}
+**URL path:**
+ /{policyId}/{enforceStatus}
- **Parameters:**
+**Parameters:**
+ None.
- None.
+**Responses:**
+ 200:
+ Status updated for policy: <policyId>
- **Responses:**
+**Examples:**
+ **Call**: ::
- 200:
- Status updated for policy: <policyId>
+ curl -X PUT "http://localhost:8085/Policy1/ENFORCED
- **Examples:**
+ Result:
+ 200: ::
- Call: ::
-
- curl -X PUT "http://localhost:8085/Policy1/ENFORCED
-
- Result:
- 200
- Status updated for policy: Policy1
+ Status updated for policy: Policy1
/{policyId}/{enforceStatus}/{enforceReason}
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
PUT
++++
- Send a status to a policy instance with both enforceStatus and enforceReason.
-
- **URL path:**
- /{policyId}/{enforceStatus}/{enforceReason}
-
- **Parameters:**
+Send a status to a policy instance with both enforceStatus and enforceReason.
- None.
+**URL path:**
+ /{policyId}/{enforceStatus}/{enforceReason}
- **Responses:**
+**Parameters:**
+ None.
- 200:
- Status updated for policy: <policyId>
+**Responses:**
+ 200:
+ Status updated for policy: <policyId>
- **Examples:**
+**Examples:**
+ **Call**: ::
- Call: ::
+ curl -X PUT "http://localhost:8085/Policy1/NOT_ENFORCED/100"
- curl -X PUT "http://localhost:8085/Policy1/NOT_ENFORCED/100"
+ Result:
+ 200: ::
- Result:
- 200
- Status updated for policy: Policy1
+ Status updated for policy: Policy1