/* liboobs-1.vapi generated by vapigen, do not modify. */

namespace Oobs {
	[CCode (cheader_filename = "oobs/oobs.h")]
	public class Group : Oobs.Object {
		[CCode (has_construct_function = false)]
		public Group (string name);
		public void add_user (Oobs.User user);
		public void clear_users ();
		public long get_gid ();
		public unowned string get_name ();
		public unowned GLib.List get_users ();
		public bool is_root ();
		public void remove_user (Oobs.User user);
		public void set_gid (long gid);
		public void set_password (string password);
		public uint gid { get; set; }
		public string name { get; construct; }
		[NoAccessorMethod]
		public string password { owned get; set; }
	}
	[CCode (cheader_filename = "oobs/oobs.h")]
	public class GroupsConfig : Oobs.Object {
		[CCode (has_construct_function = false)]
		protected GroupsConfig ();
		public Oobs.Result add_group (Oobs.Group group);
		public Oobs.Result delete_group (Oobs.Group group);
		public long find_free_gid (long gid_min, long gid_max);
		public static unowned Oobs.Object @get ();
		public unowned Oobs.Group get_from_gid (long gid);
		public unowned Oobs.Group get_from_name (string name);
		public unowned Oobs.List get_groups ();
		public bool is_gid_used (long gid);
		public bool is_name_used (string name);
		[NoAccessorMethod]
		public int maximum_gid { get; set; }
		[NoAccessorMethod]
		public int minimum_gid { get; set; }
	}
	[CCode (cheader_filename = "oobs/oobs.h")]
	public class HostsConfig : Oobs.Object {
		[CCode (has_construct_function = false)]
		protected HostsConfig ();
		public static unowned Oobs.Object @get ();
		public unowned GLib.List get_dns_servers ();
		public unowned string get_domainname ();
		public unowned string get_hostname ();
		public unowned GLib.List get_search_domains ();
		public unowned Oobs.List get_static_hosts ();
		public void set_dns_servers (GLib.List dns_list);
		public void set_domainname (string domainname);
		public void set_hostname (string hostname);
		public void set_search_domains (GLib.List search_domains_list);
	}
	[CCode (cheader_filename = "oobs/oobs.h")]
	public class Iface : GLib.Object {
		[CCode (has_construct_function = false)]
		protected Iface ();
		public bool get_active ();
		public bool get_auto ();
		public bool get_configured ();
		public unowned string get_device_name ();
		public virtual bool has_gateway ();
		[NoWrapper]
		public virtual bool is_configured ();
		public void set_active (bool is_active);
		public void set_auto (bool is_auto);
		public void set_configured (bool is_configured);
		public bool active { get; set; }
		public bool auto { get; set; }
		public bool configured { get; set; }
		[NoAccessorMethod]
		public string device { owned get; construct; }
		public virtual signal void state_changed ();
	}
	[CCode (cheader_filename = "oobs/oobs.h")]
	public class IfaceEthernet : Oobs.Iface {
		[CCode (has_construct_function = false)]
		protected IfaceEthernet ();
		public unowned string get_broadcast_address ();
		public unowned string get_configuration_method ();
		public unowned string get_gateway_address ();
		public unowned string get_ip_address ();
		public unowned string get_network_address ();
		public unowned string get_network_mask ();
		public void set_broadcast_address (string address);
		public void set_configuration_method (string method);
		public void set_gateway_address (string address);
		public void set_ip_address (string address);
		public void set_network_address (string address);
		public void set_network_mask (string mask);
		public string broadcast_address { get; set; }
		[NoAccessorMethod]
		public string config_method { owned get; set; }
		public string gateway_address { get; set; }
		public string ip_address { get; set; }
		[NoAccessorMethod]
		public string ip_mask { owned get; set; }
		public string network_address { get; set; }
	}
	[CCode (cheader_filename = "oobs/oobs.h")]
	public class IfaceIRLan : Oobs.IfaceEthernet {
		[CCode (has_construct_function = false)]
		protected IfaceIRLan ();
	}
	[CCode (cheader_filename = "oobs/oobs.h")]
	public class IfacePPP : Oobs.Iface {
		[CCode (has_construct_function = false)]
		protected IfacePPP ();
		public unowned string get_apn ();
		public unowned string get_connection_type ();
		public bool get_default_gateway ();
		public Oobs.DialType get_dial_type ();
		public unowned Oobs.IfaceEthernet get_ethernet ();
		public unowned string get_login ();
		public bool get_peer_noauth ();
		public bool get_persistent ();
		public unowned string get_phone_number ();
		public unowned string get_phone_prefix ();
		public unowned string get_serial_port ();
		public bool get_use_peer_dns ();
		public Oobs.ModemVolume get_volume ();
		public void set_apn (string apn);
		public void set_connection_type (string type);
		public void set_default_gateway (bool default_gw);
		public void set_dial_type (Oobs.DialType dial_type);
		public void set_ethernet (Oobs.IfaceEthernet ethernet);
		public void set_login (string login);
		public void set_password (string password);
		public void set_peer_noauth (bool use_peer_dns);
		public void set_persistent (bool persistent);
		public void set_phone_number (string phone_number);
		public void set_phone_prefix (string phone_prefix);
		public void set_serial_port (string serial_port);
		public void set_use_peer_dns (bool use_peer_dns);
		public void set_volume (Oobs.ModemVolume volume);
		public string apn { get; set; }
		public string connection_type { get; set; }
		public bool default_gateway { get; set; }
		public Oobs.DialType dial_type { get; set; }
		public Oobs.IfaceEthernet ethernet { get; set; }
		[NoAccessorMethod]
		public string iface_section { owned get; set; }
		public string login { get; set; }
		[NoAccessorMethod]
		public string password { owned get; set; }
		public bool peer_noauth { get; set; }
		public bool persistent { get; set; }
		public string phone_number { get; set; }
		public string phone_prefix { get; set; }
		public string serial_port { get; set; }
		public bool use_peer_dns { get; set; }
		public Oobs.ModemVolume volume { get; set; }
	}
	[CCode (cheader_filename = "oobs/oobs.h")]
	public class IfacePlip : Oobs.Iface {
		[CCode (has_construct_function = false)]
		protected IfacePlip ();
		public unowned string get_address ();
		public unowned string get_remote_address ();
		public void set_address (string address);
		public void set_remote_address (string address);
		public string address { get; set; }
		public string remote_address { get; set; }
	}
	[CCode (cheader_filename = "oobs/oobs.h")]
	public class IfaceWireless : Oobs.IfaceEthernet {
		[CCode (has_construct_function = false)]
		protected IfaceWireless ();
		public unowned string get_essid ();
		public unowned string get_key ();
		public unowned string get_key_type ();
		public void set_essid (string essid);
		public void set_key (string key);
		public void set_key_type (string key_type);
		public string essid { get; set; }
		public string key { get; set; }
		public string key_type { get; set; }
	}
	[CCode (cheader_filename = "oobs/oobs.h")]
	public class IfacesConfig : Oobs.Object {
		[CCode (has_construct_function = false)]
		protected IfacesConfig ();
		public static unowned Oobs.Object @get ();
		public unowned GLib.List get_available_configuration_methods ();
		public unowned GLib.List get_available_key_types ();
		public unowned GLib.List get_available_ppp_types ();
		public unowned Oobs.List get_ifaces (Oobs.IfaceType type);
	}
	[CCode (cheader_filename = "oobs/oobs.h")]
	public class List : GLib.Object {
		[CCode (has_construct_function = false)]
		protected List ();
		public void append (Oobs.ListIter iter);
		public void clear ();
		public unowned GLib.Object @get (Oobs.ListIter iter);
		public bool get_iter_first (Oobs.ListIter iter);
		public int get_n_items ();
		public void insert_after (Oobs.ListIter anchor, Oobs.ListIter iter);
		public void insert_before (Oobs.ListIter anchor, Oobs.ListIter iter);
		public void prepend (Oobs.ListIter iter);
		public bool remove (Oobs.ListIter iter);
		public void @set (Oobs.ListIter iter, void* data);
		public void* contained_type { construct; }
	}
	[CCode (cheader_filename = "oobs/oobs.h", copy_function = "oobs_list_iter_copy", type_id = "oobs_list_iter_get_type ()")]
	[Compact]
	public class ListIter {
		public void* data;
		public uint stamp;
		public Oobs.ListIter copy ();
		public static bool next (Oobs.List list, Oobs.ListIter iter);
	}
	[CCode (cheader_filename = "oobs/oobs.h")]
	public class NFSConfig : Oobs.Object {
		[CCode (has_construct_function = false)]
		protected NFSConfig ();
		public static unowned Oobs.Object @get ();
		public unowned Oobs.List get_shares ();
	}
	[CCode (cheader_filename = "oobs/oobs.h")]
	public class NTPConfig : Oobs.Object {
		[CCode (has_construct_function = false)]
		protected NTPConfig ();
		public static unowned Oobs.Object @get ();
		public unowned Oobs.List get_servers ();
	}
	[CCode (cheader_filename = "oobs/oobs.h")]
	public class NTPServer : GLib.Object {
		[CCode (has_construct_function = false)]
		public NTPServer (string hostname);
		public unowned string get_hostname ();
		public void set_hostname (string hostname);
		public string hostname { get; set; }
	}
	[CCode (cheader_filename = "oobs/oobs.h")]
	public class Object : GLib.Object {
		[CCode (has_construct_function = false)]
		protected Object ();
		public Oobs.Result add ();
		public Oobs.Result add_async (Oobs.ObjectAsyncFunc func, void* data);
		public bool authenticate () throws GLib.Error;
		public virtual void commit ();
		public Oobs.Result commit_async (Oobs.ObjectAsyncFunc func, void* data);
		public Oobs.Result @delete ();
		public Oobs.Result delete_async (Oobs.ObjectAsyncFunc func, void* data);
		public void ensure_update ();
		[NoWrapper]
		public virtual void get_update_message ();
		public bool has_updated ();
		public void process_requests ();
		public virtual void update ();
		public Oobs.Result update_async (Oobs.ObjectAsyncFunc func, void* data);
		public string remote_object { construct; }
		public virtual signal void changed ();
		public virtual signal void committed ();
		public virtual signal void updated ();
	}
	[CCode (cheader_filename = "oobs/oobs.h")]
	[Compact]
	public class Platform {
		public weak string codename;
		public weak string id;
		public weak string name;
		public weak string version;
	}
	[CCode (cheader_filename = "oobs/oobs.h")]
	public class SMBConfig : Oobs.Object {
		[CCode (has_construct_function = false)]
		protected SMBConfig ();
		public void delete_user_password (Oobs.User user);
		public static unowned Oobs.Object @get ();
		public unowned string get_description ();
		public bool get_is_wins_server ();
		public unowned Oobs.List get_shares ();
		public unowned string get_wins_server ();
		public unowned string get_workgroup ();
		public void set_description (string description);
		public void set_is_wins_server (bool is_wins_server);
		public void set_user_password (Oobs.User user, string password);
		public void set_wins_server (string wins_server);
		public void set_workgroup (string workgroup);
		public bool user_has_password (Oobs.User user);
		public string description { get; set; }
		public bool is_wins_server { get; set; }
		public string wins_server { get; set; }
		public string workgroup { get; set; }
	}
	[CCode (cheader_filename = "oobs/oobs.h")]
	public class SelfConfig : Oobs.Object {
		[CCode (has_construct_function = false)]
		protected SelfConfig ();
		public static unowned Oobs.Object @get ();
		public unowned Oobs.User get_user ();
		public bool is_user_self (Oobs.User user);
	}
	[CCode (cheader_filename = "oobs/oobs.h")]
	public class Service : Oobs.Object {
		[CCode (has_construct_function = false)]
		protected Service ();
		public unowned string get_name ();
		public void get_runlevel_configuration (Oobs.ServicesRunlevel runlevel, Oobs.ServiceStatus status, int priority);
		public void set_runlevel_configuration (Oobs.ServicesRunlevel runlevel, Oobs.ServiceStatus status, int priority);
		public string name { get; construct; }
	}
	[CCode (cheader_filename = "oobs/oobs.h")]
	public class ServicesConfig : Oobs.Object {
		[CCode (has_construct_function = false)]
		protected ServicesConfig ();
		public static unowned Oobs.Object @get ();
		public unowned Oobs.ServicesRunlevel get_default_runlevel ();
		public unowned GLib.List get_runlevels ();
		public unowned Oobs.List get_services ();
	}
	[CCode (cheader_filename = "oobs/oobs.h")]
	[Compact]
	public class ServicesRunlevel {
		public weak string name;
		public uint role;
	}
	[CCode (cheader_filename = "oobs/oobs.h")]
	public class Session : GLib.Object {
		[CCode (has_construct_function = false)]
		protected Session ();
		public Oobs.Result commit ();
		public static unowned Oobs.Session @get ();
		public unowned string get_authentication_action ();
		public bool get_connected ();
		public Oobs.Result get_platform (string platform);
		public Oobs.Result get_supported_platforms (GLib.List platforms);
		public void process_requests ();
		public Oobs.Result set_platform (string platform);
		public string platform { get; set; }
	}
	[CCode (cheader_filename = "oobs/oobs.h")]
	public class Share : GLib.Object {
		[CCode (has_construct_function = false)]
		protected Share ();
		public unowned string get_path ();
		public void set_path (string path);
		public string path { get; set; }
	}
	[CCode (cheader_filename = "oobs/oobs.h")]
	[Compact]
	public class ShareAclElement {
		public weak string element;
		public bool read_only;
	}
	[CCode (cheader_filename = "oobs/oobs.h")]
	public class ShareNFS : Oobs.Share {
		[CCode (has_construct_function = false, type = "OobsShare*")]
		public ShareNFS (string path);
		public void add_acl_element (string element, bool read_only);
		public unowned GLib.SList get_acl ();
		public void set_acl (GLib.SList acl);
	}
	[CCode (cheader_filename = "oobs/oobs.h")]
	public class ShareSMB : Oobs.Share {
		[CCode (has_construct_function = false, type = "OobsShare*")]
		public ShareSMB (string path, string name, string comment, Oobs.ShareSMBFlags flags);
		public unowned string get_comment ();
		public Oobs.ShareSMBFlags get_flags ();
		public unowned string get_name ();
		public void set_comment (string comment);
		public void set_flags (Oobs.ShareSMBFlags flags);
		public void set_name (string name);
		public string comment { get; set construct; }
		public Oobs.ShareSMBFlags flags { get; set construct; }
		public string name { get; set construct; }
	}
	[CCode (cheader_filename = "oobs/oobs.h")]
	public class StaticHost : GLib.Object {
		[CCode (has_construct_function = false)]
		public StaticHost (string ip_address, GLib.List aliases);
		public unowned GLib.List get_aliases ();
		public unowned string get_ip_address ();
		public void set_aliases (GLib.List aliases);
		public void set_ip_address (string ip_address);
		public string ip_address { get; set; }
	}
	[CCode (cheader_filename = "oobs/oobs.h")]
	public class TimeConfig : Oobs.Object {
		[CCode (has_construct_function = false)]
		protected TimeConfig ();
		public static unowned Oobs.Object @get ();
		public void get_time (int year, int month, int day, int hour, int minute, int second);
		public unowned string get_timezone ();
		public long get_unix_time ();
		public void get_utc_time (int year, int month, int day, int hour, int minute, int second);
		public void set_time (int year, int month, int day, int hour, int minute, int second);
		public void set_timezone (string timezone);
		public void set_unix_time (long unix_time);
		public void set_utc_time (int year, int month, int day, int hour, int minute, int second);
		public string timezone { get; set; }
		public long unix_time { get; set; }
	}
	[CCode (cheader_filename = "oobs/oobs.h")]
	public class User : Oobs.Object {
		[CCode (has_construct_function = false)]
		public User (string name);
		public bool get_active ();
		public bool get_encrypted_home ();
		public unowned string get_full_name ();
		public unowned string get_home_directory ();
		public unowned string get_home_phone_number ();
		public unowned string get_locale ();
		public unowned string get_login_name ();
		public unowned Oobs.Group get_main_group ();
		public unowned string get_other_data ();
		public bool get_password_disabled ();
		public bool get_password_empty ();
		public unowned string get_room_number ();
		public unowned string get_shell ();
		public long get_uid ();
		public unowned string get_work_phone_number ();
		public bool is_in_group (Oobs.Group group);
		public bool is_root ();
		public void set_encrypted_home (bool encrypted_home);
		public void set_full_name (string full_name);
		public void set_home_directory (string home_directory);
		public void set_home_flags (Oobs.UserHomeFlags home_flags);
		public void set_home_phone_number (string phone_number);
		public void set_locale (string locale);
		public void set_main_group (Oobs.Group main_group);
		public void set_other_data (string data);
		public void set_password (string password);
		public void set_password_disabled (bool disabled);
		public void set_password_empty (bool empty);
		public void set_room_number (string room_number);
		public void set_shell (string shell);
		public void set_uid (long uid);
		public void set_work_phone_number (string phone_number);
		public bool active { get; }
		public bool encrypted_home { get; set; }
		public string full_name { get; set; }
		public string home_directory { get; set; }
		[NoAccessorMethod]
		public Oobs.UserHomeFlags home_flags { get; set; }
		[NoAccessorMethod]
		public string home_phone { owned get; set; }
		public string locale { get; set; }
		[NoAccessorMethod]
		public string name { owned get; construct; }
		public string other_data { get; set; }
		[NoAccessorMethod]
		public string password { owned get; set; }
		public bool password_disabled { get; set; }
		public bool password_empty { get; set; }
		public string room_number { get; set; }
		public string shell { get; set; }
		public uint uid { get; set; }
		[NoAccessorMethod]
		public string work_phone { owned get; set; }
	}
	[CCode (cheader_filename = "oobs/oobs.h")]
	public class UsersConfig : Oobs.Object {
		[CCode (has_construct_function = false)]
		protected UsersConfig ();
		public Oobs.Result add_user (Oobs.User user);
		public Oobs.Result delete_user (Oobs.User user);
		public long find_free_uid (long uid_min, long uid_max);
		public static unowned Oobs.Object @get ();
		public unowned GLib.List get_available_locales ();
		public unowned GLib.List get_available_shells ();
		public unowned Oobs.Group get_default_group ();
		public unowned string get_default_home_dir ();
		public unowned string get_default_shell ();
		public bool get_encrypted_home_support ();
		public unowned Oobs.User get_from_login (string login);
		public unowned Oobs.User get_from_uid (long uid);
		public long get_maximum_users_uid ();
		public long get_minimum_users_uid ();
		public unowned Oobs.List get_users ();
		public bool is_login_used (string login);
		public bool is_uid_used (long uid);
		public void set_default_home_dir (string home_dir);
		public void set_default_shell (string shell);
		public void set_maximum_users_uid (long uid);
		public void set_minimum_users_uid (long uid);
		public Oobs.Group default_group { get; }
		[NoAccessorMethod]
		public string default_home { owned get; set; }
		public string default_shell { get; set; }
		[NoAccessorMethod]
		public bool encrypted_home { get; }
		[NoAccessorMethod]
		public uint maximum_uid { get; set; }
		[NoAccessorMethod]
		public uint minimum_uid { get; set; }
	}
	[CCode (cheader_filename = "oobs/oobs.h", cprefix = "OOBS_DIAL_TYPE_")]
	public enum DialType {
		TONES,
		PULSES
	}
	[CCode (cheader_filename = "oobs/oobs.h", cprefix = "OOBS_ERROR_AUTHENTICATION_")]
	public enum Error {
		FAILED,
		CANCELLED
	}
	[CCode (cheader_filename = "oobs/oobs.h", cprefix = "OOBS_IFACE_TYPE_")]
	public enum IfaceType {
		ETHERNET,
		WIRELESS,
		IRLAN,
		PLIP,
		PPP
	}
	[CCode (cheader_filename = "oobs/oobs.h", cprefix = "OOBS_MODEM_VOLUME_")]
	public enum ModemVolume {
		SILENT,
		LOW,
		MEDIUM,
		LOUD
	}
	[CCode (cheader_filename = "oobs/oobs.h", cprefix = "OOBS_RESULT_")]
	public enum Result {
		OK,
		ACCESS_DENIED,
		NO_PLATFORM,
		MALFORMED_DATA,
		ERROR
	}
	[CCode (cheader_filename = "oobs/oobs.h", cprefix = "OOBS_RUNLEVEL_")]
	public enum RunlevelRole {
		HALT,
		REBOOT,
		MONOUSER,
		MULTIUSER
	}
	[CCode (cheader_filename = "oobs/oobs.h", cprefix = "OOBS_SERVICE_")]
	public enum ServiceStatus {
		START,
		STOP,
		IGNORE
	}
	[CCode (cheader_filename = "oobs/oobs.h", cprefix = "OOBS_SHARE_SMB_")]
	[Flags]
	public enum ShareSMBFlags {
		ENABLED,
		BROWSABLE,
		PUBLIC,
		WRITABLE
	}
	[CCode (cheader_filename = "oobs/oobs.h", cprefix = "OOBS_USER_")]
	[Flags]
	public enum UserHomeFlags {
		REMOVE_HOME,
		CHOWN_HOME
	}
	[CCode (cheader_filename = "oobs/oobs.h")]
	public delegate void ObjectAsyncFunc (Oobs.Object object, Oobs.Result result);
	[CCode (cheader_filename = "oobs/oobs.h")]
	public static GLib.Quark error_quark ();
}
