+ [INSTANCE_ATTR_WATCH] = { "watch", BLOBMSG_TYPE_ARRAY },
+ [INSTANCE_ATTR_ERROR] = { "error", BLOBMSG_TYPE_ARRAY },
+ [INSTANCE_ATTR_USER] = { "user", BLOBMSG_TYPE_STRING },
+ [INSTANCE_ATTR_STDOUT] = { "stdout", BLOBMSG_TYPE_BOOL },
+ [INSTANCE_ATTR_STDERR] = { "stderr", BLOBMSG_TYPE_BOOL },
+ [INSTANCE_ATTR_NO_NEW_PRIVS] = { "no_new_privs", BLOBMSG_TYPE_BOOL },
+ [INSTANCE_ATTR_JAIL] = { "jail", BLOBMSG_TYPE_TABLE },
+ [INSTANCE_ATTR_TRACE] = { "trace", BLOBMSG_TYPE_BOOL },
+ [INSTANCE_ATTR_SECCOMP] = { "seccomp", BLOBMSG_TYPE_STRING },
+ [INSTANCE_ATTR_PIDFILE] = { "pidfile", BLOBMSG_TYPE_STRING },
+ [INSTANCE_ATTR_RELOADSIG] = { "reload_signal", BLOBMSG_TYPE_INT32 },
+ [INSTANCE_ATTR_TERMTIMEOUT] = { "term_timeout", BLOBMSG_TYPE_INT32 },
+};
+
+enum {
+ JAIL_ATTR_NAME,
+ JAIL_ATTR_HOSTNAME,
+ JAIL_ATTR_PROCFS,
+ JAIL_ATTR_SYSFS,
+ JAIL_ATTR_UBUS,
+ JAIL_ATTR_LOG,
+ JAIL_ATTR_RONLY,
+ JAIL_ATTR_MOUNT,
+ __JAIL_ATTR_MAX,
+};
+
+static const struct blobmsg_policy jail_attr[__JAIL_ATTR_MAX] = {
+ [JAIL_ATTR_NAME] = { "name", BLOBMSG_TYPE_STRING },
+ [JAIL_ATTR_HOSTNAME] = { "hostname", BLOBMSG_TYPE_STRING },
+ [JAIL_ATTR_PROCFS] = { "procfs", BLOBMSG_TYPE_BOOL },
+ [JAIL_ATTR_SYSFS] = { "sysfs", BLOBMSG_TYPE_BOOL },
+ [JAIL_ATTR_UBUS] = { "ubus", BLOBMSG_TYPE_BOOL },
+ [JAIL_ATTR_LOG] = { "log", BLOBMSG_TYPE_BOOL },
+ [JAIL_ATTR_RONLY] = { "ronly", BLOBMSG_TYPE_BOOL },
+ [JAIL_ATTR_MOUNT] = { "mount", BLOBMSG_TYPE_TABLE },