- * afbBindingV1Register
- */
-
-/*
- * Some function of the library are exported to afb-daemon.
- */
-
-#include <afb/afb-event-itf.h>
-#include <afb/afb-req-itf.h>
-
-/*
- * Definition of the type+versions of the binding.
- * The definition uses hashes.
- */
-enum afb_binding_type
-{
- AFB_BINDING_VERSION_1 = 123456789 /* version 1 */
-};
-
-/*
- * Enum for Session/Token/Assurance middleware.
- * This enumeration is valid for bindings of type 1
- */
-enum afb_session_v1
-{
- AFB_SESSION_NONE = 0, /* nothing required */
- AFB_SESSION_CREATE = 1, /* Obsolete */
- AFB_SESSION_CLOSE = 2, /* After token authentification, closes the session at end */
- AFB_SESSION_RENEW = 4, /* After token authentification, refreshes the token at end */
- AFB_SESSION_CHECK = 8, /* Requires token authentification */
-
- AFB_SESSION_LOA_GE = 16, /* check that the LOA is greater or equal to the given value */
- AFB_SESSION_LOA_LE = 32, /* check that the LOA is lesser or equal to the given value */
- AFB_SESSION_LOA_EQ = 48, /* check that the LOA is equal to the given value */
-
- AFB_SESSION_LOA_SHIFT = 6, /* shift for LOA */
- AFB_SESSION_LOA_MASK = 7, /* mask for LOA */
-
- AFB_SESSION_LOA_0 = 0, /* value for LOA of 0 */
- AFB_SESSION_LOA_1 = 64, /* value for LOA of 1 */
- AFB_SESSION_LOA_2 = 128, /* value for LOA of 2 */
- AFB_SESSION_LOA_3 = 192, /* value for LOA of 3 */
- AFB_SESSION_LOA_4 = 256, /* value for LOA of 4 */
-
- AFB_SESSION_LOA_LE_0 = AFB_SESSION_LOA_LE | AFB_SESSION_LOA_0, /* check LOA <= 0 */
- AFB_SESSION_LOA_LE_1 = AFB_SESSION_LOA_LE | AFB_SESSION_LOA_1, /* check LOA <= 1 */
- AFB_SESSION_LOA_LE_2 = AFB_SESSION_LOA_LE | AFB_SESSION_LOA_2, /* check LOA <= 2 */
- AFB_SESSION_LOA_LE_3 = AFB_SESSION_LOA_LE | AFB_SESSION_LOA_3, /* check LOA <= 3 */
-
- AFB_SESSION_LOA_GE_0 = AFB_SESSION_LOA_GE | AFB_SESSION_LOA_0, /* check LOA >= 0 */
- AFB_SESSION_LOA_GE_1 = AFB_SESSION_LOA_GE | AFB_SESSION_LOA_1, /* check LOA >= 1 */
- AFB_SESSION_LOA_GE_2 = AFB_SESSION_LOA_GE | AFB_SESSION_LOA_2, /* check LOA >= 2 */
- AFB_SESSION_LOA_GE_3 = AFB_SESSION_LOA_GE | AFB_SESSION_LOA_3, /* check LOA >= 3 */
-
- AFB_SESSION_LOA_EQ_0 = AFB_SESSION_LOA_EQ | AFB_SESSION_LOA_0, /* check LOA == 0 */
- AFB_SESSION_LOA_EQ_1 = AFB_SESSION_LOA_EQ | AFB_SESSION_LOA_1, /* check LOA == 1 */
- AFB_SESSION_LOA_EQ_2 = AFB_SESSION_LOA_EQ | AFB_SESSION_LOA_2, /* check LOA == 2 */
- AFB_SESSION_LOA_EQ_3 = AFB_SESSION_LOA_EQ | AFB_SESSION_LOA_3 /* check LOA == 3 */
-};
-
-/*
- * Description of one verb of the API provided by the binding
- * This enumeration is valid for bindings of type 1
- */
-struct afb_verb_desc_v1
-{
- const char *name; /* name of the verb */
- enum afb_session_v1 session; /* authorisation and session requirements of the verb */
- void (*callback)(struct afb_req req); /* callback function implementing the verb */
- const char *info; /* textual description of the verb */
-};
-
-/*
- * Description of the bindings of type 1
- */
-struct afb_binding_desc_v1
-{
- const char *info; /* textual information about the binding */
- const char *prefix; /* required prefix name for the binding */
- const struct afb_verb_desc_v1 *verbs; /* array of descriptions of verbs terminated by a NULL name */
-};
-
-/*
- * Description of a binding
- */
-struct afb_binding
-{
- enum afb_binding_type type; /* type of the binding */
- union {
- struct afb_binding_desc_v1 v1; /* description of the binding of type 1 */
- };
-};
-
-/*
- * config mode