/* cloudproviders.vapi generated by vapigen, do not modify. */

[CCode (cprefix = "CloudProviders", gir_namespace = "CloudProviders", gir_version = "0.3", lower_case_cprefix = "cloud_providers_")]
namespace CloudProviders {
	[CCode (cheader_filename = "cloudproviders/cloudproviders.h", type_id = "cloud_providers_account_get_type ()")]
	public class Account : GLib.Object {
		[CCode (has_construct_function = false)]
		public Account (GLib.DBusProxy proxy);
		public unowned GLib.ActionGroup get_action_group ();
		public unowned GLib.Icon get_icon ();
		public unowned GLib.MenuModel get_menu_model ();
		public unowned string get_name ();
		public unowned string get_path ();
		public CloudProviders.AccountStatus get_status ();
		public unowned string get_status_details ();
		public GLib.ActionGroup action_group { get; }
		public GLib.Icon icon { get; }
		public GLib.MenuModel menu_model { get; }
		public string name { get; }
		public string path { get; }
		public string status_details { get; }
	}
	[CCode (cheader_filename = "cloudproviders/cloudproviders.h", type_id = "cloud_providers_account_exporter_get_type ()")]
	public class AccountExporter : GLib.Object {
		[CCode (has_construct_function = false)]
		public AccountExporter (CloudProviders.ProviderExporter provider, string bus_name);
		public void set_action_group (GLib.ActionGroup action_group);
		public void set_icon (GLib.Icon icon);
		public void set_menu_model (GLib.MenuModel menu_model);
		public void set_name (string name);
		public void set_path (string path);
		public void set_status (CloudProviders.AccountStatus status);
		public void set_status_details (string status_details);
		[NoAccessorMethod]
		public GLib.ActionGroup action_group { owned get; set; }
		[NoAccessorMethod]
		public string bus_name { owned get; construct; }
		[NoAccessorMethod]
		public GLib.Icon icon { owned get; set; }
		[NoAccessorMethod]
		public GLib.MenuModel menu_model { owned get; set; }
		[NoAccessorMethod]
		public string name { owned get; set; }
		[NoAccessorMethod]
		public string path { owned get; set; }
		[NoAccessorMethod]
		public CloudProviders.ProviderExporter provider { owned get; construct; }
		[NoAccessorMethod]
		public string status_details { owned get; set; }
	}
	[CCode (cheader_filename = "cloudproviders/cloudproviders.h", type_id = "cloud_providers_collector_get_type ()")]
	public class Collector : GLib.Object {
		[CCode (has_construct_function = false)]
		protected Collector ();
		public static CloudProviders.Collector dup_singleton ();
		public unowned GLib.List<CloudProviders.Provider> get_providers ();
		public signal void providers_changed ();
	}
	[CCode (cheader_filename = "cloudproviders/cloudproviders.h", type_id = "cloud_providers_dbus_account_proxy_get_type ()")]
	public class DbusAccountProxy : GLib.DBusProxy, CloudProviders.DbusAccount, GLib.AsyncInitable, GLib.DBusInterface, GLib.Initable {
		[CCode (cname = "cloud_providers_dbus_account_proxy_new", has_construct_function = false)]
		public async DbusAccountProxy (GLib.DBusConnection connection, GLib.DBusProxyFlags flags, string? name, string object_path, GLib.Cancellable? cancellable) throws GLib.Error;
		[CCode (cname = "cloud_providers_dbus_account_proxy_new_for_bus", has_construct_function = false)]
		public async DbusAccountProxy.for_bus (GLib.BusType bus_type, GLib.DBusProxyFlags flags, string name, string object_path, GLib.Cancellable? cancellable) throws GLib.Error;
		[CCode (has_construct_function = false, type = "CloudProvidersDbusAccount*")]
		public DbusAccountProxy.for_bus_sync (GLib.BusType bus_type, GLib.DBusProxyFlags flags, string name, string object_path, GLib.Cancellable? cancellable = null) throws GLib.Error;
		[CCode (has_construct_function = false, type = "CloudProvidersDbusAccount*")]
		public DbusAccountProxy.sync (GLib.DBusConnection connection, GLib.DBusProxyFlags flags, string? name, string object_path, GLib.Cancellable? cancellable = null) throws GLib.Error;
	}
	[CCode (cheader_filename = "cloudproviders/cloudproviders.h", type_id = "cloud_providers_dbus_account_skeleton_get_type ()")]
	public class DbusAccountSkeleton : GLib.DBusInterfaceSkeleton, CloudProviders.DbusAccount, GLib.DBusInterface {
		[CCode (has_construct_function = false, type = "CloudProvidersDbusAccount*")]
		public DbusAccountSkeleton ();
	}
	[CCode (cheader_filename = "cloudproviders/cloudproviders.h", type_id = "cloud_providers_dbus_object_manager_client_get_type ()")]
	public class DbusObjectManagerClient : GLib.DBusObjectManagerClient, GLib.AsyncInitable, GLib.DBusObjectManager, GLib.Initable {
		[CCode (cname = "cloud_providers_dbus_object_manager_client_new", has_construct_function = false)]
		public async DbusObjectManagerClient (GLib.DBusConnection connection, GLib.DBusObjectManagerClientFlags flags, string? name, string object_path, GLib.Cancellable? cancellable) throws GLib.Error;
		[CCode (cname = "cloud_providers_dbus_object_manager_client_new_for_bus", has_construct_function = false)]
		public async DbusObjectManagerClient.for_bus (GLib.BusType bus_type, GLib.DBusObjectManagerClientFlags flags, string name, string object_path, GLib.Cancellable? cancellable) throws GLib.Error;
		[CCode (has_construct_function = false, type = "GDBusObjectManager*")]
		public DbusObjectManagerClient.for_bus_sync (GLib.BusType bus_type, GLib.DBusObjectManagerClientFlags flags, string name, string object_path, GLib.Cancellable? cancellable = null) throws GLib.Error;
		public static GLib.Type get_proxy_type (GLib.DBusObjectManagerClient manager, string object_path, string? interface_name, void* user_data);
		[CCode (has_construct_function = false, type = "GDBusObjectManager*")]
		public DbusObjectManagerClient.sync (GLib.DBusConnection connection, GLib.DBusObjectManagerClientFlags flags, string? name, string object_path, GLib.Cancellable? cancellable = null) throws GLib.Error;
	}
	[CCode (cheader_filename = "cloudproviders/cloudproviders.h", type_id = "cloud_providers_dbus_object_proxy_get_type ()")]
	public class DbusObjectProxy : GLib.DBusObjectProxy, CloudProviders.DbusObject, GLib.DBusObject {
		[CCode (has_construct_function = false)]
		public DbusObjectProxy (GLib.DBusConnection connection, string object_path);
	}
	[CCode (cheader_filename = "cloudproviders/cloudproviders.h", type_id = "cloud_providers_dbus_object_skeleton_get_type ()")]
	public class DbusObjectSkeleton : GLib.DBusObjectSkeleton, CloudProviders.DbusObject, GLib.DBusObject {
		[CCode (has_construct_function = false)]
		public DbusObjectSkeleton (string object_path);
		public void set_account (CloudProviders.DbusAccount? interface_);
		public void set_provider (CloudProviders.DbusProvider? interface_);
	}
	[CCode (cheader_filename = "cloudproviders/cloudproviders.h", type_id = "cloud_providers_dbus_provider_proxy_get_type ()")]
	public class DbusProviderProxy : GLib.DBusProxy, CloudProviders.DbusProvider, GLib.AsyncInitable, GLib.DBusInterface, GLib.Initable {
		[CCode (cname = "cloud_providers_dbus_provider_proxy_new", has_construct_function = false)]
		public async DbusProviderProxy (GLib.DBusConnection connection, GLib.DBusProxyFlags flags, string? name, string object_path, GLib.Cancellable? cancellable) throws GLib.Error;
		[CCode (cname = "cloud_providers_dbus_provider_proxy_new_for_bus", has_construct_function = false)]
		public async DbusProviderProxy.for_bus (GLib.BusType bus_type, GLib.DBusProxyFlags flags, string name, string object_path, GLib.Cancellable? cancellable) throws GLib.Error;
		[CCode (has_construct_function = false, type = "CloudProvidersDbusProvider*")]
		public DbusProviderProxy.for_bus_sync (GLib.BusType bus_type, GLib.DBusProxyFlags flags, string name, string object_path, GLib.Cancellable? cancellable = null) throws GLib.Error;
		[CCode (has_construct_function = false, type = "CloudProvidersDbusProvider*")]
		public DbusProviderProxy.sync (GLib.DBusConnection connection, GLib.DBusProxyFlags flags, string? name, string object_path, GLib.Cancellable? cancellable = null) throws GLib.Error;
	}
	[CCode (cheader_filename = "cloudproviders/cloudproviders.h", type_id = "cloud_providers_dbus_provider_skeleton_get_type ()")]
	public class DbusProviderSkeleton : GLib.DBusInterfaceSkeleton, CloudProviders.DbusProvider, GLib.DBusInterface {
		[CCode (has_construct_function = false, type = "CloudProvidersDbusProvider*")]
		public DbusProviderSkeleton ();
	}
	[CCode (cheader_filename = "cloudproviders/cloudproviders.h", type_id = "cloud_providers_provider_get_type ()")]
	public class Provider : GLib.Object {
		[CCode (has_construct_function = false)]
		public Provider (string bus_name, string object_path);
		public unowned GLib.List<CloudProviders.Account> get_accounts ();
		public unowned string get_name ();
		public string name { get; }
		public signal void accounts_changed ();
		public signal void removed ();
	}
	[CCode (cheader_filename = "cloudproviders/cloudproviders.h", type_id = "cloud_providers_provider_exporter_get_type ()")]
	public class ProviderExporter : GLib.Object {
		[CCode (has_construct_function = false)]
		public ProviderExporter (GLib.DBusConnection bus, string bus_name, string bus_path);
		public unowned string get_name ();
		public void remove_account (CloudProviders.AccountExporter account);
		public void set_name (string name);
		[NoAccessorMethod]
		public GLib.DBusConnection bus { owned get; construct; }
		[NoAccessorMethod]
		public string bus_name { owned get; construct; }
		[NoAccessorMethod]
		public string bus_path { owned get; construct; }
		public string name { get; set; }
	}
	[CCode (cheader_filename = "cloudproviders/cloudproviders.h", type_id = "cloud_providers_dbus_account_get_type ()")]
	public interface DbusAccount : GLib.Object {
		public static unowned GLib.DBusInterfaceInfo interface_info ();
		public static uint override_properties (GLib.ObjectClass klass, uint property_id_begin);
		[NoAccessorMethod]
		public abstract string icon { owned get; set; }
		[NoAccessorMethod]
		public abstract string name { owned get; set; }
		[NoAccessorMethod]
		public abstract string path { owned get; set; }
		[NoAccessorMethod]
		public abstract int status { get; set; }
		[NoAccessorMethod]
		public abstract string status_details { owned get; set; }
	}
	[CCode (cheader_filename = "cloudproviders/cloudproviders.h", type_id = "cloud_providers_dbus_object_get_type ()")]
	public interface DbusObject : GLib.DBusObject, GLib.Object {
		public CloudProviders.DbusAccount? get_account ();
		public CloudProviders.DbusProvider? get_provider ();
		[NoAccessorMethod]
		public abstract CloudProviders.DbusAccount account { owned get; set; }
		[NoAccessorMethod]
		public abstract CloudProviders.DbusProvider provider { owned get; set; }
	}
	[CCode (cheader_filename = "cloudproviders/cloudproviders.h", type_id = "cloud_providers_dbus_provider_get_type ()")]
	public interface DbusProvider : GLib.Object {
		public static unowned GLib.DBusInterfaceInfo interface_info ();
		public static uint override_properties (GLib.ObjectClass klass, uint property_id_begin);
		[NoAccessorMethod]
		public abstract string name { owned get; set; }
	}
	[CCode (cheader_filename = "cloudproviders/cloudproviders.h", cprefix = "CLOUD_PROVIDERS_ACCOUNT_STATUS_", has_type_id = false)]
	public enum AccountStatus {
		INVALID,
		IDLE,
		SYNCING,
		ERROR
	}
	[CCode (cheader_filename = "cloudproviders/cloudproviders.h", cname = "CLOUD_PROVIDERS_ACCOUNT_DBUS_IFACE")]
	public const string ACCOUNT_DBUS_IFACE;
	[CCode (cheader_filename = "cloudproviders/cloudproviders.h", cname = "CLOUD_PROVIDERS_PROVIDER_DBUS_IFACE")]
	public const string PROVIDER_DBUS_IFACE;
	[CCode (cheader_filename = "cloudproviders/cloudproviders.h")]
	[Version (replacement = "DbusAccount.interface_info")]
	public static unowned GLib.DBusInterfaceInfo dbus_account_interface_info ();
	[CCode (cheader_filename = "cloudproviders/cloudproviders.h")]
	[Version (replacement = "DbusAccount.override_properties")]
	public static uint dbus_account_override_properties (GLib.ObjectClass klass, uint property_id_begin);
	[CCode (cheader_filename = "cloudproviders/cloudproviders.h")]
	[Version (replacement = "DbusProvider.interface_info")]
	public static unowned GLib.DBusInterfaceInfo dbus_provider_interface_info ();
	[CCode (cheader_filename = "cloudproviders/cloudproviders.h")]
	[Version (replacement = "DbusProvider.override_properties")]
	public static uint dbus_provider_override_properties (GLib.ObjectClass klass, uint property_id_begin);
}
