/*
 * This file is generated by gdbus-codegen, do not modify it.
 *
 * The license of this code is the same as for the D-Bus interface description
 * it was derived from. Note that it links to GLib, so must comply with the
 * LGPL linking clauses.
 */

#ifndef __CLOUDPROVIDERS_GENERATED_H__
#define __CLOUDPROVIDERS_GENERATED_H__

#include <gio/gio.h>

G_BEGIN_DECLS


/* ------------------------------------------------------------------------ */
/* Declarations for org.freedesktop.CloudProviders.Provider */

#define CLOUD_PROVIDERS_DBUS_TYPE_PROVIDER (cloud_providers_dbus_provider_get_type ())
#define CLOUD_PROVIDERS_DBUS_PROVIDER(o) (G_TYPE_CHECK_INSTANCE_CAST ((o), CLOUD_PROVIDERS_DBUS_TYPE_PROVIDER, CloudProvidersDbusProvider))
#define CLOUD_PROVIDERS_DBUS_IS_PROVIDER(o) (G_TYPE_CHECK_INSTANCE_TYPE ((o), CLOUD_PROVIDERS_DBUS_TYPE_PROVIDER))
#define CLOUD_PROVIDERS_DBUS_PROVIDER_GET_IFACE(o) (G_TYPE_INSTANCE_GET_INTERFACE ((o), CLOUD_PROVIDERS_DBUS_TYPE_PROVIDER, CloudProvidersDbusProviderIface))

struct _CloudProvidersDbusProvider;
typedef struct _CloudProvidersDbusProvider CloudProvidersDbusProvider;
typedef struct _CloudProvidersDbusProviderIface CloudProvidersDbusProviderIface;

struct _CloudProvidersDbusProviderIface
{
  GTypeInterface parent_iface;

  const gchar * (*get_name) (CloudProvidersDbusProvider *object);

};

#if GLIB_CHECK_VERSION(2, 44, 0)
G_DEFINE_AUTOPTR_CLEANUP_FUNC (CloudProvidersDbusProvider, g_object_unref)
#endif

GType cloud_providers_dbus_provider_get_type (void);

GDBusInterfaceInfo *cloud_providers_dbus_provider_interface_info (void);
guint cloud_providers_dbus_provider_override_properties (GObjectClass *klass, guint property_id_begin);


/* D-Bus property accessors: */
const gchar *cloud_providers_dbus_provider_get_name (CloudProvidersDbusProvider *object);
gchar *cloud_providers_dbus_provider_dup_name (CloudProvidersDbusProvider *object);
void cloud_providers_dbus_provider_set_name (CloudProvidersDbusProvider *object, const gchar *value);


/* ---- */

#define CLOUD_PROVIDERS_DBUS_TYPE_PROVIDER_PROXY (cloud_providers_dbus_provider_proxy_get_type ())
#define CLOUD_PROVIDERS_DBUS_PROVIDER_PROXY(o) (G_TYPE_CHECK_INSTANCE_CAST ((o), CLOUD_PROVIDERS_DBUS_TYPE_PROVIDER_PROXY, CloudProvidersDbusProviderProxy))
#define CLOUD_PROVIDERS_DBUS_PROVIDER_PROXY_CLASS(k) (G_TYPE_CHECK_CLASS_CAST ((k), CLOUD_PROVIDERS_DBUS_TYPE_PROVIDER_PROXY, CloudProvidersDbusProviderProxyClass))
#define CLOUD_PROVIDERS_DBUS_PROVIDER_PROXY_GET_CLASS(o) (G_TYPE_INSTANCE_GET_CLASS ((o), CLOUD_PROVIDERS_DBUS_TYPE_PROVIDER_PROXY, CloudProvidersDbusProviderProxyClass))
#define CLOUD_PROVIDERS_DBUS_IS_PROVIDER_PROXY(o) (G_TYPE_CHECK_INSTANCE_TYPE ((o), CLOUD_PROVIDERS_DBUS_TYPE_PROVIDER_PROXY))
#define CLOUD_PROVIDERS_DBUS_IS_PROVIDER_PROXY_CLASS(k) (G_TYPE_CHECK_CLASS_TYPE ((k), CLOUD_PROVIDERS_DBUS_TYPE_PROVIDER_PROXY))

typedef struct _CloudProvidersDbusProviderProxy CloudProvidersDbusProviderProxy;
typedef struct _CloudProvidersDbusProviderProxyClass CloudProvidersDbusProviderProxyClass;
typedef struct _CloudProvidersDbusProviderProxyPrivate CloudProvidersDbusProviderProxyPrivate;

struct _CloudProvidersDbusProviderProxy
{
  /*< private >*/
  GDBusProxy parent_instance;
  CloudProvidersDbusProviderProxyPrivate *priv;
};

struct _CloudProvidersDbusProviderProxyClass
{
  GDBusProxyClass parent_class;
};

GType cloud_providers_dbus_provider_proxy_get_type (void);

#if GLIB_CHECK_VERSION(2, 44, 0)
G_DEFINE_AUTOPTR_CLEANUP_FUNC (CloudProvidersDbusProviderProxy, g_object_unref)
#endif

void cloud_providers_dbus_provider_proxy_new (
    GDBusConnection     *connection,
    GDBusProxyFlags      flags,
    const gchar         *name,
    const gchar         *object_path,
    GCancellable        *cancellable,
    GAsyncReadyCallback  callback,
    gpointer             user_data);
CloudProvidersDbusProvider *cloud_providers_dbus_provider_proxy_new_finish (
    GAsyncResult        *res,
    GError             **error);
CloudProvidersDbusProvider *cloud_providers_dbus_provider_proxy_new_sync (
    GDBusConnection     *connection,
    GDBusProxyFlags      flags,
    const gchar         *name,
    const gchar         *object_path,
    GCancellable        *cancellable,
    GError             **error);

void cloud_providers_dbus_provider_proxy_new_for_bus (
    GBusType             bus_type,
    GDBusProxyFlags      flags,
    const gchar         *name,
    const gchar         *object_path,
    GCancellable        *cancellable,
    GAsyncReadyCallback  callback,
    gpointer             user_data);
CloudProvidersDbusProvider *cloud_providers_dbus_provider_proxy_new_for_bus_finish (
    GAsyncResult        *res,
    GError             **error);
CloudProvidersDbusProvider *cloud_providers_dbus_provider_proxy_new_for_bus_sync (
    GBusType             bus_type,
    GDBusProxyFlags      flags,
    const gchar         *name,
    const gchar         *object_path,
    GCancellable        *cancellable,
    GError             **error);


/* ---- */

#define CLOUD_PROVIDERS_DBUS_TYPE_PROVIDER_SKELETON (cloud_providers_dbus_provider_skeleton_get_type ())
#define CLOUD_PROVIDERS_DBUS_PROVIDER_SKELETON(o) (G_TYPE_CHECK_INSTANCE_CAST ((o), CLOUD_PROVIDERS_DBUS_TYPE_PROVIDER_SKELETON, CloudProvidersDbusProviderSkeleton))
#define CLOUD_PROVIDERS_DBUS_PROVIDER_SKELETON_CLASS(k) (G_TYPE_CHECK_CLASS_CAST ((k), CLOUD_PROVIDERS_DBUS_TYPE_PROVIDER_SKELETON, CloudProvidersDbusProviderSkeletonClass))
#define CLOUD_PROVIDERS_DBUS_PROVIDER_SKELETON_GET_CLASS(o) (G_TYPE_INSTANCE_GET_CLASS ((o), CLOUD_PROVIDERS_DBUS_TYPE_PROVIDER_SKELETON, CloudProvidersDbusProviderSkeletonClass))
#define CLOUD_PROVIDERS_DBUS_IS_PROVIDER_SKELETON(o) (G_TYPE_CHECK_INSTANCE_TYPE ((o), CLOUD_PROVIDERS_DBUS_TYPE_PROVIDER_SKELETON))
#define CLOUD_PROVIDERS_DBUS_IS_PROVIDER_SKELETON_CLASS(k) (G_TYPE_CHECK_CLASS_TYPE ((k), CLOUD_PROVIDERS_DBUS_TYPE_PROVIDER_SKELETON))

typedef struct _CloudProvidersDbusProviderSkeleton CloudProvidersDbusProviderSkeleton;
typedef struct _CloudProvidersDbusProviderSkeletonClass CloudProvidersDbusProviderSkeletonClass;
typedef struct _CloudProvidersDbusProviderSkeletonPrivate CloudProvidersDbusProviderSkeletonPrivate;

struct _CloudProvidersDbusProviderSkeleton
{
  /*< private >*/
  GDBusInterfaceSkeleton parent_instance;
  CloudProvidersDbusProviderSkeletonPrivate *priv;
};

struct _CloudProvidersDbusProviderSkeletonClass
{
  GDBusInterfaceSkeletonClass parent_class;
};

GType cloud_providers_dbus_provider_skeleton_get_type (void);

#if GLIB_CHECK_VERSION(2, 44, 0)
G_DEFINE_AUTOPTR_CLEANUP_FUNC (CloudProvidersDbusProviderSkeleton, g_object_unref)
#endif

CloudProvidersDbusProvider *cloud_providers_dbus_provider_skeleton_new (void);


/* ------------------------------------------------------------------------ */
/* Declarations for org.freedesktop.CloudProviders.Account */

#define CLOUD_PROVIDERS_DBUS_TYPE_ACCOUNT (cloud_providers_dbus_account_get_type ())
#define CLOUD_PROVIDERS_DBUS_ACCOUNT(o) (G_TYPE_CHECK_INSTANCE_CAST ((o), CLOUD_PROVIDERS_DBUS_TYPE_ACCOUNT, CloudProvidersDbusAccount))
#define CLOUD_PROVIDERS_DBUS_IS_ACCOUNT(o) (G_TYPE_CHECK_INSTANCE_TYPE ((o), CLOUD_PROVIDERS_DBUS_TYPE_ACCOUNT))
#define CLOUD_PROVIDERS_DBUS_ACCOUNT_GET_IFACE(o) (G_TYPE_INSTANCE_GET_INTERFACE ((o), CLOUD_PROVIDERS_DBUS_TYPE_ACCOUNT, CloudProvidersDbusAccountIface))

struct _CloudProvidersDbusAccount;
typedef struct _CloudProvidersDbusAccount CloudProvidersDbusAccount;
typedef struct _CloudProvidersDbusAccountIface CloudProvidersDbusAccountIface;

struct _CloudProvidersDbusAccountIface
{
  GTypeInterface parent_iface;

  const gchar * (*get_icon) (CloudProvidersDbusAccount *object);

  const gchar * (*get_name) (CloudProvidersDbusAccount *object);

  const gchar * (*get_path) (CloudProvidersDbusAccount *object);

  gint  (*get_status) (CloudProvidersDbusAccount *object);

  const gchar * (*get_status_details) (CloudProvidersDbusAccount *object);

};

#if GLIB_CHECK_VERSION(2, 44, 0)
G_DEFINE_AUTOPTR_CLEANUP_FUNC (CloudProvidersDbusAccount, g_object_unref)
#endif

GType cloud_providers_dbus_account_get_type (void);

GDBusInterfaceInfo *cloud_providers_dbus_account_interface_info (void);
guint cloud_providers_dbus_account_override_properties (GObjectClass *klass, guint property_id_begin);


/* D-Bus property accessors: */
const gchar *cloud_providers_dbus_account_get_name (CloudProvidersDbusAccount *object);
gchar *cloud_providers_dbus_account_dup_name (CloudProvidersDbusAccount *object);
void cloud_providers_dbus_account_set_name (CloudProvidersDbusAccount *object, const gchar *value);

const gchar *cloud_providers_dbus_account_get_path (CloudProvidersDbusAccount *object);
gchar *cloud_providers_dbus_account_dup_path (CloudProvidersDbusAccount *object);
void cloud_providers_dbus_account_set_path (CloudProvidersDbusAccount *object, const gchar *value);

const gchar *cloud_providers_dbus_account_get_icon (CloudProvidersDbusAccount *object);
gchar *cloud_providers_dbus_account_dup_icon (CloudProvidersDbusAccount *object);
void cloud_providers_dbus_account_set_icon (CloudProvidersDbusAccount *object, const gchar *value);

gint cloud_providers_dbus_account_get_status (CloudProvidersDbusAccount *object);
void cloud_providers_dbus_account_set_status (CloudProvidersDbusAccount *object, gint value);

const gchar *cloud_providers_dbus_account_get_status_details (CloudProvidersDbusAccount *object);
gchar *cloud_providers_dbus_account_dup_status_details (CloudProvidersDbusAccount *object);
void cloud_providers_dbus_account_set_status_details (CloudProvidersDbusAccount *object, const gchar *value);


/* ---- */

#define CLOUD_PROVIDERS_DBUS_TYPE_ACCOUNT_PROXY (cloud_providers_dbus_account_proxy_get_type ())
#define CLOUD_PROVIDERS_DBUS_ACCOUNT_PROXY(o) (G_TYPE_CHECK_INSTANCE_CAST ((o), CLOUD_PROVIDERS_DBUS_TYPE_ACCOUNT_PROXY, CloudProvidersDbusAccountProxy))
#define CLOUD_PROVIDERS_DBUS_ACCOUNT_PROXY_CLASS(k) (G_TYPE_CHECK_CLASS_CAST ((k), CLOUD_PROVIDERS_DBUS_TYPE_ACCOUNT_PROXY, CloudProvidersDbusAccountProxyClass))
#define CLOUD_PROVIDERS_DBUS_ACCOUNT_PROXY_GET_CLASS(o) (G_TYPE_INSTANCE_GET_CLASS ((o), CLOUD_PROVIDERS_DBUS_TYPE_ACCOUNT_PROXY, CloudProvidersDbusAccountProxyClass))
#define CLOUD_PROVIDERS_DBUS_IS_ACCOUNT_PROXY(o) (G_TYPE_CHECK_INSTANCE_TYPE ((o), CLOUD_PROVIDERS_DBUS_TYPE_ACCOUNT_PROXY))
#define CLOUD_PROVIDERS_DBUS_IS_ACCOUNT_PROXY_CLASS(k) (G_TYPE_CHECK_CLASS_TYPE ((k), CLOUD_PROVIDERS_DBUS_TYPE_ACCOUNT_PROXY))

typedef struct _CloudProvidersDbusAccountProxy CloudProvidersDbusAccountProxy;
typedef struct _CloudProvidersDbusAccountProxyClass CloudProvidersDbusAccountProxyClass;
typedef struct _CloudProvidersDbusAccountProxyPrivate CloudProvidersDbusAccountProxyPrivate;

struct _CloudProvidersDbusAccountProxy
{
  /*< private >*/
  GDBusProxy parent_instance;
  CloudProvidersDbusAccountProxyPrivate *priv;
};

struct _CloudProvidersDbusAccountProxyClass
{
  GDBusProxyClass parent_class;
};

GType cloud_providers_dbus_account_proxy_get_type (void);

#if GLIB_CHECK_VERSION(2, 44, 0)
G_DEFINE_AUTOPTR_CLEANUP_FUNC (CloudProvidersDbusAccountProxy, g_object_unref)
#endif

void cloud_providers_dbus_account_proxy_new (
    GDBusConnection     *connection,
    GDBusProxyFlags      flags,
    const gchar         *name,
    const gchar         *object_path,
    GCancellable        *cancellable,
    GAsyncReadyCallback  callback,
    gpointer             user_data);
CloudProvidersDbusAccount *cloud_providers_dbus_account_proxy_new_finish (
    GAsyncResult        *res,
    GError             **error);
CloudProvidersDbusAccount *cloud_providers_dbus_account_proxy_new_sync (
    GDBusConnection     *connection,
    GDBusProxyFlags      flags,
    const gchar         *name,
    const gchar         *object_path,
    GCancellable        *cancellable,
    GError             **error);

void cloud_providers_dbus_account_proxy_new_for_bus (
    GBusType             bus_type,
    GDBusProxyFlags      flags,
    const gchar         *name,
    const gchar         *object_path,
    GCancellable        *cancellable,
    GAsyncReadyCallback  callback,
    gpointer             user_data);
CloudProvidersDbusAccount *cloud_providers_dbus_account_proxy_new_for_bus_finish (
    GAsyncResult        *res,
    GError             **error);
CloudProvidersDbusAccount *cloud_providers_dbus_account_proxy_new_for_bus_sync (
    GBusType             bus_type,
    GDBusProxyFlags      flags,
    const gchar         *name,
    const gchar         *object_path,
    GCancellable        *cancellable,
    GError             **error);


/* ---- */

#define CLOUD_PROVIDERS_DBUS_TYPE_ACCOUNT_SKELETON (cloud_providers_dbus_account_skeleton_get_type ())
#define CLOUD_PROVIDERS_DBUS_ACCOUNT_SKELETON(o) (G_TYPE_CHECK_INSTANCE_CAST ((o), CLOUD_PROVIDERS_DBUS_TYPE_ACCOUNT_SKELETON, CloudProvidersDbusAccountSkeleton))
#define CLOUD_PROVIDERS_DBUS_ACCOUNT_SKELETON_CLASS(k) (G_TYPE_CHECK_CLASS_CAST ((k), CLOUD_PROVIDERS_DBUS_TYPE_ACCOUNT_SKELETON, CloudProvidersDbusAccountSkeletonClass))
#define CLOUD_PROVIDERS_DBUS_ACCOUNT_SKELETON_GET_CLASS(o) (G_TYPE_INSTANCE_GET_CLASS ((o), CLOUD_PROVIDERS_DBUS_TYPE_ACCOUNT_SKELETON, CloudProvidersDbusAccountSkeletonClass))
#define CLOUD_PROVIDERS_DBUS_IS_ACCOUNT_SKELETON(o) (G_TYPE_CHECK_INSTANCE_TYPE ((o), CLOUD_PROVIDERS_DBUS_TYPE_ACCOUNT_SKELETON))
#define CLOUD_PROVIDERS_DBUS_IS_ACCOUNT_SKELETON_CLASS(k) (G_TYPE_CHECK_CLASS_TYPE ((k), CLOUD_PROVIDERS_DBUS_TYPE_ACCOUNT_SKELETON))

typedef struct _CloudProvidersDbusAccountSkeleton CloudProvidersDbusAccountSkeleton;
typedef struct _CloudProvidersDbusAccountSkeletonClass CloudProvidersDbusAccountSkeletonClass;
typedef struct _CloudProvidersDbusAccountSkeletonPrivate CloudProvidersDbusAccountSkeletonPrivate;

struct _CloudProvidersDbusAccountSkeleton
{
  /*< private >*/
  GDBusInterfaceSkeleton parent_instance;
  CloudProvidersDbusAccountSkeletonPrivate *priv;
};

struct _CloudProvidersDbusAccountSkeletonClass
{
  GDBusInterfaceSkeletonClass parent_class;
};

GType cloud_providers_dbus_account_skeleton_get_type (void);

#if GLIB_CHECK_VERSION(2, 44, 0)
G_DEFINE_AUTOPTR_CLEANUP_FUNC (CloudProvidersDbusAccountSkeleton, g_object_unref)
#endif

CloudProvidersDbusAccount *cloud_providers_dbus_account_skeleton_new (void);


/* ---- */

#define CLOUD_PROVIDERS_DBUS_TYPE_OBJECT (cloud_providers_dbus_object_get_type ())
#define CLOUD_PROVIDERS_DBUS_OBJECT(o) (G_TYPE_CHECK_INSTANCE_CAST ((o), CLOUD_PROVIDERS_DBUS_TYPE_OBJECT, CloudProvidersDbusObject))
#define CLOUD_PROVIDERS_DBUS_IS_OBJECT(o) (G_TYPE_CHECK_INSTANCE_TYPE ((o), CLOUD_PROVIDERS_DBUS_TYPE_OBJECT))
#define CLOUD_PROVIDERS_DBUS_OBJECT_GET_IFACE(o) (G_TYPE_INSTANCE_GET_INTERFACE ((o), CLOUD_PROVIDERS_DBUS_TYPE_OBJECT, CloudProvidersDbusObject))

struct _CloudProvidersDbusObject;
typedef struct _CloudProvidersDbusObject CloudProvidersDbusObject;
typedef struct _CloudProvidersDbusObjectIface CloudProvidersDbusObjectIface;

struct _CloudProvidersDbusObjectIface
{
  GTypeInterface parent_iface;
};

GType cloud_providers_dbus_object_get_type (void);

#if GLIB_CHECK_VERSION(2, 44, 0)
G_DEFINE_AUTOPTR_CLEANUP_FUNC (CloudProvidersDbusObject, g_object_unref)
#endif

CloudProvidersDbusProvider *cloud_providers_dbus_object_get_provider (CloudProvidersDbusObject *object);
CloudProvidersDbusAccount *cloud_providers_dbus_object_get_account (CloudProvidersDbusObject *object);
CloudProvidersDbusProvider *cloud_providers_dbus_object_peek_provider (CloudProvidersDbusObject *object);
CloudProvidersDbusAccount *cloud_providers_dbus_object_peek_account (CloudProvidersDbusObject *object);

#define CLOUD_PROVIDERS_DBUS_TYPE_OBJECT_PROXY (cloud_providers_dbus_object_proxy_get_type ())
#define CLOUD_PROVIDERS_DBUS_OBJECT_PROXY(o) (G_TYPE_CHECK_INSTANCE_CAST ((o), CLOUD_PROVIDERS_DBUS_TYPE_OBJECT_PROXY, CloudProvidersDbusObjectProxy))
#define CLOUD_PROVIDERS_DBUS_OBJECT_PROXY_CLASS(k) (G_TYPE_CHECK_CLASS_CAST ((k), CLOUD_PROVIDERS_DBUS_TYPE_OBJECT_PROXY, CloudProvidersDbusObjectProxyClass))
#define CLOUD_PROVIDERS_DBUS_OBJECT_PROXY_GET_CLASS(o) (G_TYPE_INSTANCE_GET_CLASS ((o), CLOUD_PROVIDERS_DBUS_TYPE_OBJECT_PROXY, CloudProvidersDbusObjectProxyClass))
#define CLOUD_PROVIDERS_DBUS_IS_OBJECT_PROXY(o) (G_TYPE_CHECK_INSTANCE_TYPE ((o), CLOUD_PROVIDERS_DBUS_TYPE_OBJECT_PROXY))
#define CLOUD_PROVIDERS_DBUS_IS_OBJECT_PROXY_CLASS(k) (G_TYPE_CHECK_CLASS_TYPE ((k), CLOUD_PROVIDERS_DBUS_TYPE_OBJECT_PROXY))

typedef struct _CloudProvidersDbusObjectProxy CloudProvidersDbusObjectProxy;
typedef struct _CloudProvidersDbusObjectProxyClass CloudProvidersDbusObjectProxyClass;
typedef struct _CloudProvidersDbusObjectProxyPrivate CloudProvidersDbusObjectProxyPrivate;

struct _CloudProvidersDbusObjectProxy
{
  /*< private >*/
  GDBusObjectProxy parent_instance;
  CloudProvidersDbusObjectProxyPrivate *priv;
};

struct _CloudProvidersDbusObjectProxyClass
{
  GDBusObjectProxyClass parent_class;
};

GType cloud_providers_dbus_object_proxy_get_type (void);

#if GLIB_CHECK_VERSION(2, 44, 0)
G_DEFINE_AUTOPTR_CLEANUP_FUNC (CloudProvidersDbusObjectProxy, g_object_unref)
#endif

CloudProvidersDbusObjectProxy *cloud_providers_dbus_object_proxy_new (GDBusConnection *connection, const gchar *object_path);

#define CLOUD_PROVIDERS_DBUS_TYPE_OBJECT_SKELETON (cloud_providers_dbus_object_skeleton_get_type ())
#define CLOUD_PROVIDERS_DBUS_OBJECT_SKELETON(o) (G_TYPE_CHECK_INSTANCE_CAST ((o), CLOUD_PROVIDERS_DBUS_TYPE_OBJECT_SKELETON, CloudProvidersDbusObjectSkeleton))
#define CLOUD_PROVIDERS_DBUS_OBJECT_SKELETON_CLASS(k) (G_TYPE_CHECK_CLASS_CAST ((k), CLOUD_PROVIDERS_DBUS_TYPE_OBJECT_SKELETON, CloudProvidersDbusObjectSkeletonClass))
#define CLOUD_PROVIDERS_DBUS_OBJECT_SKELETON_GET_CLASS(o) (G_TYPE_INSTANCE_GET_CLASS ((o), CLOUD_PROVIDERS_DBUS_TYPE_OBJECT_SKELETON, CloudProvidersDbusObjectSkeletonClass))
#define CLOUD_PROVIDERS_DBUS_IS_OBJECT_SKELETON(o) (G_TYPE_CHECK_INSTANCE_TYPE ((o), CLOUD_PROVIDERS_DBUS_TYPE_OBJECT_SKELETON))
#define CLOUD_PROVIDERS_DBUS_IS_OBJECT_SKELETON_CLASS(k) (G_TYPE_CHECK_CLASS_TYPE ((k), CLOUD_PROVIDERS_DBUS_TYPE_OBJECT_SKELETON))

typedef struct _CloudProvidersDbusObjectSkeleton CloudProvidersDbusObjectSkeleton;
typedef struct _CloudProvidersDbusObjectSkeletonClass CloudProvidersDbusObjectSkeletonClass;
typedef struct _CloudProvidersDbusObjectSkeletonPrivate CloudProvidersDbusObjectSkeletonPrivate;

struct _CloudProvidersDbusObjectSkeleton
{
  /*< private >*/
  GDBusObjectSkeleton parent_instance;
  CloudProvidersDbusObjectSkeletonPrivate *priv;
};

struct _CloudProvidersDbusObjectSkeletonClass
{
  GDBusObjectSkeletonClass parent_class;
};

GType cloud_providers_dbus_object_skeleton_get_type (void);

#if GLIB_CHECK_VERSION(2, 44, 0)
G_DEFINE_AUTOPTR_CLEANUP_FUNC (CloudProvidersDbusObjectSkeleton, g_object_unref)
#endif

CloudProvidersDbusObjectSkeleton *cloud_providers_dbus_object_skeleton_new (const gchar *object_path);
void cloud_providers_dbus_object_skeleton_set_provider (CloudProvidersDbusObjectSkeleton *object, CloudProvidersDbusProvider *interface_);
void cloud_providers_dbus_object_skeleton_set_account (CloudProvidersDbusObjectSkeleton *object, CloudProvidersDbusAccount *interface_);

/* ---- */

#define CLOUD_PROVIDERS_DBUS_TYPE_OBJECT_MANAGER_CLIENT (cloud_providers_dbus_object_manager_client_get_type ())
#define CLOUD_PROVIDERS_DBUS_OBJECT_MANAGER_CLIENT(o) (G_TYPE_CHECK_INSTANCE_CAST ((o), CLOUD_PROVIDERS_DBUS_TYPE_OBJECT_MANAGER_CLIENT, CloudProvidersDbusObjectManagerClient))
#define CLOUD_PROVIDERS_DBUS_OBJECT_MANAGER_CLIENT_CLASS(k) (G_TYPE_CHECK_CLASS_CAST ((k), CLOUD_PROVIDERS_DBUS_TYPE_OBJECT_MANAGER_CLIENT, CloudProvidersDbusObjectManagerClientClass))
#define CLOUD_PROVIDERS_DBUS_OBJECT_MANAGER_CLIENT_GET_CLASS(o) (G_TYPE_INSTANCE_GET_CLASS ((o), CLOUD_PROVIDERS_DBUS_TYPE_OBJECT_MANAGER_CLIENT, CloudProvidersDbusObjectManagerClientClass))
#define CLOUD_PROVIDERS_DBUS_IS_OBJECT_MANAGER_CLIENT(o) (G_TYPE_CHECK_INSTANCE_TYPE ((o), CLOUD_PROVIDERS_DBUS_TYPE_OBJECT_MANAGER_CLIENT))
#define CLOUD_PROVIDERS_DBUS_IS_OBJECT_MANAGER_CLIENT_CLASS(k) (G_TYPE_CHECK_CLASS_TYPE ((k), CLOUD_PROVIDERS_DBUS_TYPE_OBJECT_MANAGER_CLIENT))

typedef struct _CloudProvidersDbusObjectManagerClient CloudProvidersDbusObjectManagerClient;
typedef struct _CloudProvidersDbusObjectManagerClientClass CloudProvidersDbusObjectManagerClientClass;
typedef struct _CloudProvidersDbusObjectManagerClientPrivate CloudProvidersDbusObjectManagerClientPrivate;

struct _CloudProvidersDbusObjectManagerClient
{
  /*< private >*/
  GDBusObjectManagerClient parent_instance;
  CloudProvidersDbusObjectManagerClientPrivate *priv;
};

struct _CloudProvidersDbusObjectManagerClientClass
{
  GDBusObjectManagerClientClass parent_class;
};

#if GLIB_CHECK_VERSION(2, 44, 0)
G_DEFINE_AUTOPTR_CLEANUP_FUNC (CloudProvidersDbusObjectManagerClient, g_object_unref)
#endif

GType cloud_providers_dbus_object_manager_client_get_type (void);

GType cloud_providers_dbus_object_manager_client_get_proxy_type (GDBusObjectManagerClient *manager, const gchar *object_path, const gchar *interface_name, gpointer user_data);

void cloud_providers_dbus_object_manager_client_new (
    GDBusConnection        *connection,
    GDBusObjectManagerClientFlags  flags,
    const gchar            *name,
    const gchar            *object_path,
    GCancellable           *cancellable,
    GAsyncReadyCallback     callback,
    gpointer                user_data);
GDBusObjectManager *cloud_providers_dbus_object_manager_client_new_finish (
    GAsyncResult        *res,
    GError             **error);
GDBusObjectManager *cloud_providers_dbus_object_manager_client_new_sync (
    GDBusConnection        *connection,
    GDBusObjectManagerClientFlags  flags,
    const gchar            *name,
    const gchar            *object_path,
    GCancellable           *cancellable,
    GError                **error);

void cloud_providers_dbus_object_manager_client_new_for_bus (
    GBusType                bus_type,
    GDBusObjectManagerClientFlags  flags,
    const gchar            *name,
    const gchar            *object_path,
    GCancellable           *cancellable,
    GAsyncReadyCallback     callback,
    gpointer                user_data);
GDBusObjectManager *cloud_providers_dbus_object_manager_client_new_for_bus_finish (
    GAsyncResult        *res,
    GError             **error);
GDBusObjectManager *cloud_providers_dbus_object_manager_client_new_for_bus_sync (
    GBusType                bus_type,
    GDBusObjectManagerClientFlags  flags,
    const gchar            *name,
    const gchar            *object_path,
    GCancellable           *cancellable,
    GError                **error);


G_END_DECLS

#endif /* __CLOUDPROVIDERS_GENERATED_H__ */
