{
  "iface": "futoin.acl.provider",
  "version": "0.1",
  "ftn3rev": "1.4",
  "funcs": {
    "checkAccess": {
      "params": {
        "client_id": {
          "type": "string",
          "desc": "Unique Client ID"
        },
        "acd": {
          "type": "array",
          "desc": "Access control descriptor"
        }
      },
      "result": {
        "acd": {
          "type": "array",
          "desc": "Access control descriptor"
        },
        "ttl": {
          "type": "string",
          "desc": "Time-to-Live for client descriptor cache"
        },
        "auth_level": {
          "type": "string",
          "desc": "Required Security Level"
        }
      },
      "throws": [
        "Forbidden"
      ],
      "desc": "Check access to calling Service"
    },
    "grantAccess": {
      "params": {
        "client_id": {
          "type": "string",
          "desc": "Unique Client ID"
        },
        "acd": {
          "type": "array",
          "desc": "Access control descriptor"
        }
      },
      "result": {
        "ok": {
          "type": "boolean",
          "desc": "Always true, if no exception"
        }
      },
      "desc": "Grant access to specific descriptor"
    },
    "requestAccess": {
      "params": {
        "client_id": {
          "type": "string",
          "desc": "Unique Client ID"
        },
        "acd": {
          "type": "array",
          "desc": "Access control descriptor"
        }
      },
      "result": {
        "ok": {
          "type": "boolean",
          "desc": "Always true, if no exception"
        }
      },
      "desc": "Request access for specific client to be later approved by Admin"
    },
    "revokeAccess": {
      "params": {
        "client_id": {
          "type": "string",
          "desc": "Unique Client ID"
        },
        "acd": {
          "type": "array",
          "desc": "Access control descriptor"
        }
      },
      "result": {
        "ok": {
          "type": "boolean",
          "desc": "Always true, if no exception"
        }
      },
      "desc": "Revoke access to specific descriptor"
    }
  },
  "requires": [
    "SecureChannel"
  ],
  "desc": "AuthService Backend Provider interface"
}