The GAA-API returns three status values to describe policy enforcement process:
Initially the status values are set to 32#32.
Next the 26#26 function is called to evaluate pre- and request-result conditions. If there are no pre-conditions (this means that the requested right is granted unconditionally), the authorization status is set to 30#30. Otherwise, the pre-conditions are evaluated and the result is stored in the authorization status 33#33.
If the request-result conditions are present in the policy, the conditions are evaluated and the intermediate result is stored in variable 13#13. The conjunction of the 13#13 and 33#33 is stored in the authorization status 33#33. If authorization is not granted (36#36), the request is rejected.
If mid-conditions are found, the conditions are evaluated. Some mid-conditions are evaluated just once 5, other mid-conditions are evaluated in a loop until either the operation finishes or any of the mid-conditions fails. In the latter case, the operation execution is suspended and the reactive actions are started. The mid-conditions can be returned unevaluated to be enforced by application. The result is stored in 34#34.