+static char *gusl_fields[] = {
+ "login", "domain_sid",
+ "login", "sid", "created",
+};
+
+static struct validate gusl_validate =
+{
+ VOuser0,
+ 1,
+ NULL,
+ NULL,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+};
+
+static char *glsn_fields[] = {
+ "name", "domain_sid",
+ "name", "sid", "created",
+};
+
+static struct validate glsn_validate =
+{
+ VOlist0,
+ 1,
+ NULL,
+ NULL,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+};
+
+static char *ausl_fields[] = {
+ "login", "sid",
+};
+
+static struct validate ausl_validate =
+{
+ VOuser0,
+ 1,
+ "sid",
+ "users_id = %d AND sid = '%s'",
+ 2,
+ 0,
+ 0,
+ 0,
+ 0,
+};
+
+static char *alsn_fields[] = {
+ "name", "sid",
+};
+
+static struct validate alsn_validate =
+{
+ VOlist0,
+ 1,
+ "sid",
+ "list_id = %d AND sid = '%s'",
+ 2,
+ 0,
+ 0,
+ 0,
+ 0,
+};
+
+static char *gdds_fields[] = {
+ "sid",
+};
+
+static char *gcon_fields[] = {
+ "name",
+ "name", "description", "location", "contact",
+ "ace_type", "ace_name", "memace_type", "memace_name", "modtime", "modby", "modwith",
+};
+
+static struct validate gcon_validate = {
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ followup_gcon,
+};
+
+static char *acon_fields[] = {
+ "name", "description", "location", "contact",
+ "ace_type", "ace_name", "memace_type", "memace_name",
+};
+
+static struct valobj acon_valobj[] = {
+ {V_CHAR, 0, CONTAINERS_TABLE, "name"},
+ {V_LEN, 1, CONTAINERS_TABLE, "description"},
+ {V_CHAR, 2, CONTAINERS_TABLE, "location"},
+ {V_CHAR, 3, CONTAINERS_TABLE, "contact"},
+ {V_TYPE, 4, 0, "ace_type", 0, MR_ACE},
+ {V_TYPEDATA, 5, 0, 0, 0, MR_ACE},
+ {V_TYPE, 6, 0, "ace_type", 0, MR_ACE},
+ {V_TYPEDATA, 7, 0, 0, 0, MR_ACE},
+};
+
+static struct validate acon_validate =
+{
+ acon_valobj,
+ 8,
+ "name",
+ "name = '%s'",
+ 1,
+ "cnt_id",
+ 0,
+ prefetch_value,
+ set_modtime,
+};
+
+static char *ucon_fields[] = {
+ "name",
+ "newname", "description", "location", "contact",
+ "ace_type", "ace_name", "memace_type", "memace_name",
+};
+
+static struct valobj ucon_valobj[] = {
+ {V_ID, 0, CONTAINERS_TABLE, "name", "cnt_id", MR_CONTAINER},
+ {V_RENAME, 1, CONTAINERS_TABLE, "name", "cnt_id", MR_NOT_UNIQUE},
+ {V_LEN, 2, CONTAINERS_TABLE, "description"},
+ {V_CHAR, 3, CONTAINERS_TABLE, "location"},
+ {V_CHAR, 4, CONTAINERS_TABLE, "contact"},
+ {V_TYPE, 5, 0, "ace_type", 0, MR_ACE},
+ {V_TYPEDATA, 6, 0, 0, 0, MR_ACE},
+ {V_TYPE, 7, 0, "ace_type", 0, MR_ACE},
+ {V_TYPEDATA, 8, 0, 0, 0, MR_ACE},
+};
+
+static struct validate ucon_validate =
+{
+ ucon_valobj,
+ 9,
+ 0,
+ 0,
+ 0,
+ 0,
+ access_container,
+ 0,
+ update_container,
+};
+
+static char *dcon_fields[] = {
+ "name",
+};
+
+static struct validate dcon_validate =
+{
+ VOcon0,
+ 1,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ setup_dcon,
+ 0,
+};
+
+static char *amcn_fields[] = {
+ "machine", "container",
+};
+
+static struct valobj amcn_valobj[] = /* ADD_MACHINE_TO_CONTAINER */
+{ /* DELETE_MACHINE_FROM_CONTAINER */
+ {V_ID, 0, MACHINE_TABLE, "name", "mach_id", MR_MACHINE},
+ {V_ID, 1, CONTAINERS_TABLE, "name", "cnt_id", MR_CONTAINER},
+};
+
+static struct validate amcn_validate = /* for amtn and dmfn */
+{
+ amcn_valobj,
+ 2,
+ "mach_id",
+ "mach_id = %d",
+ 1,
+ 0,
+ access_container,
+ 0,
+ set_mach_modtime_by_id,
+};
+
+static struct validate dmcn_validate = /* for amtn and dmfn */
+{
+ amcn_valobj,
+ 2,
+ "mach_id",
+ "mach_id = %d and cnt_id = %d",
+ 2,
+ 0,
+ access_container,
+ 0,
+ set_mach_modtime_by_id,
+};
+
+static char *gmnm_fields[] = {
+ "machine",
+ "machine", "container",
+};
+
+static char *gmoc_fields[] = {
+ "container",
+ "isrecursive",
+ "machine",
+ "container",
+};
+
+static struct validate gmoc_validate =
+{
+ VOcon0,
+ 1,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ get_machines_of_container,
+};
+
+static char *gsoc_fields[] = {
+ "container",
+ "isrecursive",
+ "subcontainer",
+};
+
+static struct validate gsoc_validate =
+{
+ VOcon0,
+ 1,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ get_subcontainers_of_container,
+};
+
+static char *gtlc_fields[] = {
+ "name",
+};
+