/*
 * 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 __CC_REALM_GENERATED_H__
#define __CC_REALM_GENERATED_H__

#include <gio/gio.h>

G_BEGIN_DECLS


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

#define CC_REALM_TYPE_PROVIDER (cc_realm_provider_get_type ())
#define CC_REALM_PROVIDER(o) (G_TYPE_CHECK_INSTANCE_CAST ((o), CC_REALM_TYPE_PROVIDER, CcRealmProvider))
#define CC_REALM_IS_PROVIDER(o) (G_TYPE_CHECK_INSTANCE_TYPE ((o), CC_REALM_TYPE_PROVIDER))
#define CC_REALM_PROVIDER_GET_IFACE(o) (G_TYPE_INSTANCE_GET_INTERFACE ((o), CC_REALM_TYPE_PROVIDER, CcRealmProviderIface))

struct _CcRealmProvider;
typedef struct _CcRealmProvider CcRealmProvider;
typedef struct _CcRealmProviderIface CcRealmProviderIface;

struct _CcRealmProviderIface
{
  GTypeInterface parent_iface;


  gboolean (*handle_discover) (
    CcRealmProvider *object,
    GDBusMethodInvocation *invocation,
    const gchar *arg_string,
    GVariant *arg_options);

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

  const gchar *const * (*get_realms) (CcRealmProvider *object);

  const gchar * (*get_version) (CcRealmProvider *object);

};

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

GType cc_realm_provider_get_type (void) G_GNUC_CONST;

GDBusInterfaceInfo *cc_realm_provider_interface_info (void);
guint cc_realm_provider_override_properties (GObjectClass *klass, guint property_id_begin);


/* D-Bus method call completion functions: */
void cc_realm_provider_complete_discover (
    CcRealmProvider *object,
    GDBusMethodInvocation *invocation,
    gint relevance,
    const gchar *const *realm);



/* D-Bus method calls: */
void cc_realm_provider_call_discover (
    CcRealmProvider *proxy,
    const gchar *arg_string,
    GVariant *arg_options,
    GCancellable *cancellable,
    GAsyncReadyCallback callback,
    gpointer user_data);

gboolean cc_realm_provider_call_discover_finish (
    CcRealmProvider *proxy,
    gint* out_relevance,
    gchar *** out_realm,
    GAsyncResult *res,
    GError **error);

gboolean cc_realm_provider_call_discover_sync (
    CcRealmProvider *proxy,
    const gchar *arg_string,
    GVariant *arg_options,
    gint* out_relevance,
    gchar *** out_realm,
    GCancellable *cancellable,
    GError **error);



/* D-Bus property accessors: */
const gchar *cc_realm_provider_get_name (CcRealmProvider *object);
gchar *cc_realm_provider_dup_name (CcRealmProvider *object);
void cc_realm_provider_set_name (CcRealmProvider *object, const gchar *value);

const gchar *cc_realm_provider_get_version (CcRealmProvider *object);
gchar *cc_realm_provider_dup_version (CcRealmProvider *object);
void cc_realm_provider_set_version (CcRealmProvider *object, const gchar *value);

const gchar *const *cc_realm_provider_get_realms (CcRealmProvider *object);
gchar **cc_realm_provider_dup_realms (CcRealmProvider *object);
void cc_realm_provider_set_realms (CcRealmProvider *object, const gchar *const *value);


/* ---- */

#define CC_REALM_TYPE_PROVIDER_PROXY (cc_realm_provider_proxy_get_type ())
#define CC_REALM_PROVIDER_PROXY(o) (G_TYPE_CHECK_INSTANCE_CAST ((o), CC_REALM_TYPE_PROVIDER_PROXY, CcRealmProviderProxy))
#define CC_REALM_PROVIDER_PROXY_CLASS(k) (G_TYPE_CHECK_CLASS_CAST ((k), CC_REALM_TYPE_PROVIDER_PROXY, CcRealmProviderProxyClass))
#define CC_REALM_PROVIDER_PROXY_GET_CLASS(o) (G_TYPE_INSTANCE_GET_CLASS ((o), CC_REALM_TYPE_PROVIDER_PROXY, CcRealmProviderProxyClass))
#define CC_REALM_IS_PROVIDER_PROXY(o) (G_TYPE_CHECK_INSTANCE_TYPE ((o), CC_REALM_TYPE_PROVIDER_PROXY))
#define CC_REALM_IS_PROVIDER_PROXY_CLASS(k) (G_TYPE_CHECK_CLASS_TYPE ((k), CC_REALM_TYPE_PROVIDER_PROXY))

typedef struct _CcRealmProviderProxy CcRealmProviderProxy;
typedef struct _CcRealmProviderProxyClass CcRealmProviderProxyClass;
typedef struct _CcRealmProviderProxyPrivate CcRealmProviderProxyPrivate;

struct _CcRealmProviderProxy
{
  /*< private >*/
  GDBusProxy parent_instance;
  CcRealmProviderProxyPrivate *priv;
};

struct _CcRealmProviderProxyClass
{
  GDBusProxyClass parent_class;
};

GType cc_realm_provider_proxy_get_type (void) G_GNUC_CONST;

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

void cc_realm_provider_proxy_new (
    GDBusConnection     *connection,
    GDBusProxyFlags      flags,
    const gchar         *name,
    const gchar         *object_path,
    GCancellable        *cancellable,
    GAsyncReadyCallback  callback,
    gpointer             user_data);
CcRealmProvider *cc_realm_provider_proxy_new_finish (
    GAsyncResult        *res,
    GError             **error);
CcRealmProvider *cc_realm_provider_proxy_new_sync (
    GDBusConnection     *connection,
    GDBusProxyFlags      flags,
    const gchar         *name,
    const gchar         *object_path,
    GCancellable        *cancellable,
    GError             **error);

void cc_realm_provider_proxy_new_for_bus (
    GBusType             bus_type,
    GDBusProxyFlags      flags,
    const gchar         *name,
    const gchar         *object_path,
    GCancellable        *cancellable,
    GAsyncReadyCallback  callback,
    gpointer             user_data);
CcRealmProvider *cc_realm_provider_proxy_new_for_bus_finish (
    GAsyncResult        *res,
    GError             **error);
CcRealmProvider *cc_realm_provider_proxy_new_for_bus_sync (
    GBusType             bus_type,
    GDBusProxyFlags      flags,
    const gchar         *name,
    const gchar         *object_path,
    GCancellable        *cancellable,
    GError             **error);


/* ---- */

#define CC_REALM_TYPE_PROVIDER_SKELETON (cc_realm_provider_skeleton_get_type ())
#define CC_REALM_PROVIDER_SKELETON(o) (G_TYPE_CHECK_INSTANCE_CAST ((o), CC_REALM_TYPE_PROVIDER_SKELETON, CcRealmProviderSkeleton))
#define CC_REALM_PROVIDER_SKELETON_CLASS(k) (G_TYPE_CHECK_CLASS_CAST ((k), CC_REALM_TYPE_PROVIDER_SKELETON, CcRealmProviderSkeletonClass))
#define CC_REALM_PROVIDER_SKELETON_GET_CLASS(o) (G_TYPE_INSTANCE_GET_CLASS ((o), CC_REALM_TYPE_PROVIDER_SKELETON, CcRealmProviderSkeletonClass))
#define CC_REALM_IS_PROVIDER_SKELETON(o) (G_TYPE_CHECK_INSTANCE_TYPE ((o), CC_REALM_TYPE_PROVIDER_SKELETON))
#define CC_REALM_IS_PROVIDER_SKELETON_CLASS(k) (G_TYPE_CHECK_CLASS_TYPE ((k), CC_REALM_TYPE_PROVIDER_SKELETON))

typedef struct _CcRealmProviderSkeleton CcRealmProviderSkeleton;
typedef struct _CcRealmProviderSkeletonClass CcRealmProviderSkeletonClass;
typedef struct _CcRealmProviderSkeletonPrivate CcRealmProviderSkeletonPrivate;

struct _CcRealmProviderSkeleton
{
  /*< private >*/
  GDBusInterfaceSkeleton parent_instance;
  CcRealmProviderSkeletonPrivate *priv;
};

struct _CcRealmProviderSkeletonClass
{
  GDBusInterfaceSkeletonClass parent_class;
};

GType cc_realm_provider_skeleton_get_type (void) G_GNUC_CONST;

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

CcRealmProvider *cc_realm_provider_skeleton_new (void);


/* ------------------------------------------------------------------------ */
/* Declarations for org.freedesktop.realmd.Service */

#define CC_REALM_TYPE_SERVICE (cc_realm_service_get_type ())
#define CC_REALM_SERVICE(o) (G_TYPE_CHECK_INSTANCE_CAST ((o), CC_REALM_TYPE_SERVICE, CcRealmService))
#define CC_REALM_IS_SERVICE(o) (G_TYPE_CHECK_INSTANCE_TYPE ((o), CC_REALM_TYPE_SERVICE))
#define CC_REALM_SERVICE_GET_IFACE(o) (G_TYPE_INSTANCE_GET_INTERFACE ((o), CC_REALM_TYPE_SERVICE, CcRealmServiceIface))

struct _CcRealmService;
typedef struct _CcRealmService CcRealmService;
typedef struct _CcRealmServiceIface CcRealmServiceIface;

struct _CcRealmServiceIface
{
  GTypeInterface parent_iface;


  gboolean (*handle_cancel) (
    CcRealmService *object,
    GDBusMethodInvocation *invocation,
    const gchar *arg_operation);

  gboolean (*handle_release) (
    CcRealmService *object,
    GDBusMethodInvocation *invocation);

  gboolean (*handle_set_locale) (
    CcRealmService *object,
    GDBusMethodInvocation *invocation,
    const gchar *arg_locale);

  void (*diagnostics) (
    CcRealmService *object,
    const gchar *arg_data,
    const gchar *arg_operation);

};

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

GType cc_realm_service_get_type (void) G_GNUC_CONST;

GDBusInterfaceInfo *cc_realm_service_interface_info (void);
guint cc_realm_service_override_properties (GObjectClass *klass, guint property_id_begin);


/* D-Bus method call completion functions: */
void cc_realm_service_complete_cancel (
    CcRealmService *object,
    GDBusMethodInvocation *invocation);

void cc_realm_service_complete_set_locale (
    CcRealmService *object,
    GDBusMethodInvocation *invocation);

void cc_realm_service_complete_release (
    CcRealmService *object,
    GDBusMethodInvocation *invocation);



/* D-Bus signal emissions functions: */
void cc_realm_service_emit_diagnostics (
    CcRealmService *object,
    const gchar *arg_data,
    const gchar *arg_operation);



/* D-Bus method calls: */
void cc_realm_service_call_cancel (
    CcRealmService *proxy,
    const gchar *arg_operation,
    GCancellable *cancellable,
    GAsyncReadyCallback callback,
    gpointer user_data);

gboolean cc_realm_service_call_cancel_finish (
    CcRealmService *proxy,
    GAsyncResult *res,
    GError **error);

gboolean cc_realm_service_call_cancel_sync (
    CcRealmService *proxy,
    const gchar *arg_operation,
    GCancellable *cancellable,
    GError **error);

void cc_realm_service_call_set_locale (
    CcRealmService *proxy,
    const gchar *arg_locale,
    GCancellable *cancellable,
    GAsyncReadyCallback callback,
    gpointer user_data);

gboolean cc_realm_service_call_set_locale_finish (
    CcRealmService *proxy,
    GAsyncResult *res,
    GError **error);

gboolean cc_realm_service_call_set_locale_sync (
    CcRealmService *proxy,
    const gchar *arg_locale,
    GCancellable *cancellable,
    GError **error);

void cc_realm_service_call_release (
    CcRealmService *proxy,
    GCancellable *cancellable,
    GAsyncReadyCallback callback,
    gpointer user_data);

gboolean cc_realm_service_call_release_finish (
    CcRealmService *proxy,
    GAsyncResult *res,
    GError **error);

gboolean cc_realm_service_call_release_sync (
    CcRealmService *proxy,
    GCancellable *cancellable,
    GError **error);



/* ---- */

#define CC_REALM_TYPE_SERVICE_PROXY (cc_realm_service_proxy_get_type ())
#define CC_REALM_SERVICE_PROXY(o) (G_TYPE_CHECK_INSTANCE_CAST ((o), CC_REALM_TYPE_SERVICE_PROXY, CcRealmServiceProxy))
#define CC_REALM_SERVICE_PROXY_CLASS(k) (G_TYPE_CHECK_CLASS_CAST ((k), CC_REALM_TYPE_SERVICE_PROXY, CcRealmServiceProxyClass))
#define CC_REALM_SERVICE_PROXY_GET_CLASS(o) (G_TYPE_INSTANCE_GET_CLASS ((o), CC_REALM_TYPE_SERVICE_PROXY, CcRealmServiceProxyClass))
#define CC_REALM_IS_SERVICE_PROXY(o) (G_TYPE_CHECK_INSTANCE_TYPE ((o), CC_REALM_TYPE_SERVICE_PROXY))
#define CC_REALM_IS_SERVICE_PROXY_CLASS(k) (G_TYPE_CHECK_CLASS_TYPE ((k), CC_REALM_TYPE_SERVICE_PROXY))

typedef struct _CcRealmServiceProxy CcRealmServiceProxy;
typedef struct _CcRealmServiceProxyClass CcRealmServiceProxyClass;
typedef struct _CcRealmServiceProxyPrivate CcRealmServiceProxyPrivate;

struct _CcRealmServiceProxy
{
  /*< private >*/
  GDBusProxy parent_instance;
  CcRealmServiceProxyPrivate *priv;
};

struct _CcRealmServiceProxyClass
{
  GDBusProxyClass parent_class;
};

GType cc_realm_service_proxy_get_type (void) G_GNUC_CONST;

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

void cc_realm_service_proxy_new (
    GDBusConnection     *connection,
    GDBusProxyFlags      flags,
    const gchar         *name,
    const gchar         *object_path,
    GCancellable        *cancellable,
    GAsyncReadyCallback  callback,
    gpointer             user_data);
CcRealmService *cc_realm_service_proxy_new_finish (
    GAsyncResult        *res,
    GError             **error);
CcRealmService *cc_realm_service_proxy_new_sync (
    GDBusConnection     *connection,
    GDBusProxyFlags      flags,
    const gchar         *name,
    const gchar         *object_path,
    GCancellable        *cancellable,
    GError             **error);

void cc_realm_service_proxy_new_for_bus (
    GBusType             bus_type,
    GDBusProxyFlags      flags,
    const gchar         *name,
    const gchar         *object_path,
    GCancellable        *cancellable,
    GAsyncReadyCallback  callback,
    gpointer             user_data);
CcRealmService *cc_realm_service_proxy_new_for_bus_finish (
    GAsyncResult        *res,
    GError             **error);
CcRealmService *cc_realm_service_proxy_new_for_bus_sync (
    GBusType             bus_type,
    GDBusProxyFlags      flags,
    const gchar         *name,
    const gchar         *object_path,
    GCancellable        *cancellable,
    GError             **error);


/* ---- */

#define CC_REALM_TYPE_SERVICE_SKELETON (cc_realm_service_skeleton_get_type ())
#define CC_REALM_SERVICE_SKELETON(o) (G_TYPE_CHECK_INSTANCE_CAST ((o), CC_REALM_TYPE_SERVICE_SKELETON, CcRealmServiceSkeleton))
#define CC_REALM_SERVICE_SKELETON_CLASS(k) (G_TYPE_CHECK_CLASS_CAST ((k), CC_REALM_TYPE_SERVICE_SKELETON, CcRealmServiceSkeletonClass))
#define CC_REALM_SERVICE_SKELETON_GET_CLASS(o) (G_TYPE_INSTANCE_GET_CLASS ((o), CC_REALM_TYPE_SERVICE_SKELETON, CcRealmServiceSkeletonClass))
#define CC_REALM_IS_SERVICE_SKELETON(o) (G_TYPE_CHECK_INSTANCE_TYPE ((o), CC_REALM_TYPE_SERVICE_SKELETON))
#define CC_REALM_IS_SERVICE_SKELETON_CLASS(k) (G_TYPE_CHECK_CLASS_TYPE ((k), CC_REALM_TYPE_SERVICE_SKELETON))

typedef struct _CcRealmServiceSkeleton CcRealmServiceSkeleton;
typedef struct _CcRealmServiceSkeletonClass CcRealmServiceSkeletonClass;
typedef struct _CcRealmServiceSkeletonPrivate CcRealmServiceSkeletonPrivate;

struct _CcRealmServiceSkeleton
{
  /*< private >*/
  GDBusInterfaceSkeleton parent_instance;
  CcRealmServiceSkeletonPrivate *priv;
};

struct _CcRealmServiceSkeletonClass
{
  GDBusInterfaceSkeletonClass parent_class;
};

GType cc_realm_service_skeleton_get_type (void) G_GNUC_CONST;

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

CcRealmService *cc_realm_service_skeleton_new (void);


/* ------------------------------------------------------------------------ */
/* Declarations for org.freedesktop.realmd.Realm */

#define CC_REALM_TYPE_COMMON (cc_realm_common_get_type ())
#define CC_REALM_COMMON(o) (G_TYPE_CHECK_INSTANCE_CAST ((o), CC_REALM_TYPE_COMMON, CcRealmCommon))
#define CC_REALM_IS_COMMON(o) (G_TYPE_CHECK_INSTANCE_TYPE ((o), CC_REALM_TYPE_COMMON))
#define CC_REALM_COMMON_GET_IFACE(o) (G_TYPE_INSTANCE_GET_INTERFACE ((o), CC_REALM_TYPE_COMMON, CcRealmCommonIface))

struct _CcRealmCommon;
typedef struct _CcRealmCommon CcRealmCommon;
typedef struct _CcRealmCommonIface CcRealmCommonIface;

struct _CcRealmCommonIface
{
  GTypeInterface parent_iface;


  gboolean (*handle_change_login_policy) (
    CcRealmCommon *object,
    GDBusMethodInvocation *invocation,
    const gchar *arg_login_policy,
    const gchar *const *arg_permitted_add,
    const gchar *const *arg_permitted_remove,
    GVariant *arg_options);

  gboolean (*handle_deconfigure) (
    CcRealmCommon *object,
    GDBusMethodInvocation *invocation,
    GVariant *arg_options);

  const gchar * (*get_configured) (CcRealmCommon *object);

  GVariant * (*get_details) (CcRealmCommon *object);

  const gchar *const * (*get_login_formats) (CcRealmCommon *object);

  const gchar * (*get_login_policy) (CcRealmCommon *object);

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

  const gchar *const * (*get_permitted_logins) (CcRealmCommon *object);

  const gchar *const * (*get_supported_interfaces) (CcRealmCommon *object);

};

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

GType cc_realm_common_get_type (void) G_GNUC_CONST;

GDBusInterfaceInfo *cc_realm_common_interface_info (void);
guint cc_realm_common_override_properties (GObjectClass *klass, guint property_id_begin);


/* D-Bus method call completion functions: */
void cc_realm_common_complete_deconfigure (
    CcRealmCommon *object,
    GDBusMethodInvocation *invocation);

void cc_realm_common_complete_change_login_policy (
    CcRealmCommon *object,
    GDBusMethodInvocation *invocation);



/* D-Bus method calls: */
void cc_realm_common_call_deconfigure (
    CcRealmCommon *proxy,
    GVariant *arg_options,
    GCancellable *cancellable,
    GAsyncReadyCallback callback,
    gpointer user_data);

gboolean cc_realm_common_call_deconfigure_finish (
    CcRealmCommon *proxy,
    GAsyncResult *res,
    GError **error);

gboolean cc_realm_common_call_deconfigure_sync (
    CcRealmCommon *proxy,
    GVariant *arg_options,
    GCancellable *cancellable,
    GError **error);

void cc_realm_common_call_change_login_policy (
    CcRealmCommon *proxy,
    const gchar *arg_login_policy,
    const gchar *const *arg_permitted_add,
    const gchar *const *arg_permitted_remove,
    GVariant *arg_options,
    GCancellable *cancellable,
    GAsyncReadyCallback callback,
    gpointer user_data);

gboolean cc_realm_common_call_change_login_policy_finish (
    CcRealmCommon *proxy,
    GAsyncResult *res,
    GError **error);

gboolean cc_realm_common_call_change_login_policy_sync (
    CcRealmCommon *proxy,
    const gchar *arg_login_policy,
    const gchar *const *arg_permitted_add,
    const gchar *const *arg_permitted_remove,
    GVariant *arg_options,
    GCancellable *cancellable,
    GError **error);



/* D-Bus property accessors: */
const gchar *cc_realm_common_get_name (CcRealmCommon *object);
gchar *cc_realm_common_dup_name (CcRealmCommon *object);
void cc_realm_common_set_name (CcRealmCommon *object, const gchar *value);

const gchar *cc_realm_common_get_configured (CcRealmCommon *object);
gchar *cc_realm_common_dup_configured (CcRealmCommon *object);
void cc_realm_common_set_configured (CcRealmCommon *object, const gchar *value);

const gchar *const *cc_realm_common_get_supported_interfaces (CcRealmCommon *object);
gchar **cc_realm_common_dup_supported_interfaces (CcRealmCommon *object);
void cc_realm_common_set_supported_interfaces (CcRealmCommon *object, const gchar *const *value);

GVariant *cc_realm_common_get_details (CcRealmCommon *object);
GVariant *cc_realm_common_dup_details (CcRealmCommon *object);
void cc_realm_common_set_details (CcRealmCommon *object, GVariant *value);

const gchar *const *cc_realm_common_get_login_formats (CcRealmCommon *object);
gchar **cc_realm_common_dup_login_formats (CcRealmCommon *object);
void cc_realm_common_set_login_formats (CcRealmCommon *object, const gchar *const *value);

const gchar *cc_realm_common_get_login_policy (CcRealmCommon *object);
gchar *cc_realm_common_dup_login_policy (CcRealmCommon *object);
void cc_realm_common_set_login_policy (CcRealmCommon *object, const gchar *value);

const gchar *const *cc_realm_common_get_permitted_logins (CcRealmCommon *object);
gchar **cc_realm_common_dup_permitted_logins (CcRealmCommon *object);
void cc_realm_common_set_permitted_logins (CcRealmCommon *object, const gchar *const *value);


/* ---- */

#define CC_REALM_TYPE_COMMON_PROXY (cc_realm_common_proxy_get_type ())
#define CC_REALM_COMMON_PROXY(o) (G_TYPE_CHECK_INSTANCE_CAST ((o), CC_REALM_TYPE_COMMON_PROXY, CcRealmCommonProxy))
#define CC_REALM_COMMON_PROXY_CLASS(k) (G_TYPE_CHECK_CLASS_CAST ((k), CC_REALM_TYPE_COMMON_PROXY, CcRealmCommonProxyClass))
#define CC_REALM_COMMON_PROXY_GET_CLASS(o) (G_TYPE_INSTANCE_GET_CLASS ((o), CC_REALM_TYPE_COMMON_PROXY, CcRealmCommonProxyClass))
#define CC_REALM_IS_COMMON_PROXY(o) (G_TYPE_CHECK_INSTANCE_TYPE ((o), CC_REALM_TYPE_COMMON_PROXY))
#define CC_REALM_IS_COMMON_PROXY_CLASS(k) (G_TYPE_CHECK_CLASS_TYPE ((k), CC_REALM_TYPE_COMMON_PROXY))

typedef struct _CcRealmCommonProxy CcRealmCommonProxy;
typedef struct _CcRealmCommonProxyClass CcRealmCommonProxyClass;
typedef struct _CcRealmCommonProxyPrivate CcRealmCommonProxyPrivate;

struct _CcRealmCommonProxy
{
  /*< private >*/
  GDBusProxy parent_instance;
  CcRealmCommonProxyPrivate *priv;
};

struct _CcRealmCommonProxyClass
{
  GDBusProxyClass parent_class;
};

GType cc_realm_common_proxy_get_type (void) G_GNUC_CONST;

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

void cc_realm_common_proxy_new (
    GDBusConnection     *connection,
    GDBusProxyFlags      flags,
    const gchar         *name,
    const gchar         *object_path,
    GCancellable        *cancellable,
    GAsyncReadyCallback  callback,
    gpointer             user_data);
CcRealmCommon *cc_realm_common_proxy_new_finish (
    GAsyncResult        *res,
    GError             **error);
CcRealmCommon *cc_realm_common_proxy_new_sync (
    GDBusConnection     *connection,
    GDBusProxyFlags      flags,
    const gchar         *name,
    const gchar         *object_path,
    GCancellable        *cancellable,
    GError             **error);

void cc_realm_common_proxy_new_for_bus (
    GBusType             bus_type,
    GDBusProxyFlags      flags,
    const gchar         *name,
    const gchar         *object_path,
    GCancellable        *cancellable,
    GAsyncReadyCallback  callback,
    gpointer             user_data);
CcRealmCommon *cc_realm_common_proxy_new_for_bus_finish (
    GAsyncResult        *res,
    GError             **error);
CcRealmCommon *cc_realm_common_proxy_new_for_bus_sync (
    GBusType             bus_type,
    GDBusProxyFlags      flags,
    const gchar         *name,
    const gchar         *object_path,
    GCancellable        *cancellable,
    GError             **error);


/* ---- */

#define CC_REALM_TYPE_COMMON_SKELETON (cc_realm_common_skeleton_get_type ())
#define CC_REALM_COMMON_SKELETON(o) (G_TYPE_CHECK_INSTANCE_CAST ((o), CC_REALM_TYPE_COMMON_SKELETON, CcRealmCommonSkeleton))
#define CC_REALM_COMMON_SKELETON_CLASS(k) (G_TYPE_CHECK_CLASS_CAST ((k), CC_REALM_TYPE_COMMON_SKELETON, CcRealmCommonSkeletonClass))
#define CC_REALM_COMMON_SKELETON_GET_CLASS(o) (G_TYPE_INSTANCE_GET_CLASS ((o), CC_REALM_TYPE_COMMON_SKELETON, CcRealmCommonSkeletonClass))
#define CC_REALM_IS_COMMON_SKELETON(o) (G_TYPE_CHECK_INSTANCE_TYPE ((o), CC_REALM_TYPE_COMMON_SKELETON))
#define CC_REALM_IS_COMMON_SKELETON_CLASS(k) (G_TYPE_CHECK_CLASS_TYPE ((k), CC_REALM_TYPE_COMMON_SKELETON))

typedef struct _CcRealmCommonSkeleton CcRealmCommonSkeleton;
typedef struct _CcRealmCommonSkeletonClass CcRealmCommonSkeletonClass;
typedef struct _CcRealmCommonSkeletonPrivate CcRealmCommonSkeletonPrivate;

struct _CcRealmCommonSkeleton
{
  /*< private >*/
  GDBusInterfaceSkeleton parent_instance;
  CcRealmCommonSkeletonPrivate *priv;
};

struct _CcRealmCommonSkeletonClass
{
  GDBusInterfaceSkeletonClass parent_class;
};

GType cc_realm_common_skeleton_get_type (void) G_GNUC_CONST;

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

CcRealmCommon *cc_realm_common_skeleton_new (void);


/* ------------------------------------------------------------------------ */
/* Declarations for org.freedesktop.realmd.Kerberos */

#define CC_REALM_TYPE_KERBEROS (cc_realm_kerberos_get_type ())
#define CC_REALM_KERBEROS(o) (G_TYPE_CHECK_INSTANCE_CAST ((o), CC_REALM_TYPE_KERBEROS, CcRealmKerberos))
#define CC_REALM_IS_KERBEROS(o) (G_TYPE_CHECK_INSTANCE_TYPE ((o), CC_REALM_TYPE_KERBEROS))
#define CC_REALM_KERBEROS_GET_IFACE(o) (G_TYPE_INSTANCE_GET_INTERFACE ((o), CC_REALM_TYPE_KERBEROS, CcRealmKerberosIface))

struct _CcRealmKerberos;
typedef struct _CcRealmKerberos CcRealmKerberos;
typedef struct _CcRealmKerberosIface CcRealmKerberosIface;

struct _CcRealmKerberosIface
{
  GTypeInterface parent_iface;

  const gchar * (*get_domain_name) (CcRealmKerberos *object);

  const gchar * (*get_realm_name) (CcRealmKerberos *object);

};

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

GType cc_realm_kerberos_get_type (void) G_GNUC_CONST;

GDBusInterfaceInfo *cc_realm_kerberos_interface_info (void);
guint cc_realm_kerberos_override_properties (GObjectClass *klass, guint property_id_begin);


/* D-Bus property accessors: */
const gchar *cc_realm_kerberos_get_realm_name (CcRealmKerberos *object);
gchar *cc_realm_kerberos_dup_realm_name (CcRealmKerberos *object);
void cc_realm_kerberos_set_realm_name (CcRealmKerberos *object, const gchar *value);

const gchar *cc_realm_kerberos_get_domain_name (CcRealmKerberos *object);
gchar *cc_realm_kerberos_dup_domain_name (CcRealmKerberos *object);
void cc_realm_kerberos_set_domain_name (CcRealmKerberos *object, const gchar *value);


/* ---- */

#define CC_REALM_TYPE_KERBEROS_PROXY (cc_realm_kerberos_proxy_get_type ())
#define CC_REALM_KERBEROS_PROXY(o) (G_TYPE_CHECK_INSTANCE_CAST ((o), CC_REALM_TYPE_KERBEROS_PROXY, CcRealmKerberosProxy))
#define CC_REALM_KERBEROS_PROXY_CLASS(k) (G_TYPE_CHECK_CLASS_CAST ((k), CC_REALM_TYPE_KERBEROS_PROXY, CcRealmKerberosProxyClass))
#define CC_REALM_KERBEROS_PROXY_GET_CLASS(o) (G_TYPE_INSTANCE_GET_CLASS ((o), CC_REALM_TYPE_KERBEROS_PROXY, CcRealmKerberosProxyClass))
#define CC_REALM_IS_KERBEROS_PROXY(o) (G_TYPE_CHECK_INSTANCE_TYPE ((o), CC_REALM_TYPE_KERBEROS_PROXY))
#define CC_REALM_IS_KERBEROS_PROXY_CLASS(k) (G_TYPE_CHECK_CLASS_TYPE ((k), CC_REALM_TYPE_KERBEROS_PROXY))

typedef struct _CcRealmKerberosProxy CcRealmKerberosProxy;
typedef struct _CcRealmKerberosProxyClass CcRealmKerberosProxyClass;
typedef struct _CcRealmKerberosProxyPrivate CcRealmKerberosProxyPrivate;

struct _CcRealmKerberosProxy
{
  /*< private >*/
  GDBusProxy parent_instance;
  CcRealmKerberosProxyPrivate *priv;
};

struct _CcRealmKerberosProxyClass
{
  GDBusProxyClass parent_class;
};

GType cc_realm_kerberos_proxy_get_type (void) G_GNUC_CONST;

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

void cc_realm_kerberos_proxy_new (
    GDBusConnection     *connection,
    GDBusProxyFlags      flags,
    const gchar         *name,
    const gchar         *object_path,
    GCancellable        *cancellable,
    GAsyncReadyCallback  callback,
    gpointer             user_data);
CcRealmKerberos *cc_realm_kerberos_proxy_new_finish (
    GAsyncResult        *res,
    GError             **error);
CcRealmKerberos *cc_realm_kerberos_proxy_new_sync (
    GDBusConnection     *connection,
    GDBusProxyFlags      flags,
    const gchar         *name,
    const gchar         *object_path,
    GCancellable        *cancellable,
    GError             **error);

void cc_realm_kerberos_proxy_new_for_bus (
    GBusType             bus_type,
    GDBusProxyFlags      flags,
    const gchar         *name,
    const gchar         *object_path,
    GCancellable        *cancellable,
    GAsyncReadyCallback  callback,
    gpointer             user_data);
CcRealmKerberos *cc_realm_kerberos_proxy_new_for_bus_finish (
    GAsyncResult        *res,
    GError             **error);
CcRealmKerberos *cc_realm_kerberos_proxy_new_for_bus_sync (
    GBusType             bus_type,
    GDBusProxyFlags      flags,
    const gchar         *name,
    const gchar         *object_path,
    GCancellable        *cancellable,
    GError             **error);


/* ---- */

#define CC_REALM_TYPE_KERBEROS_SKELETON (cc_realm_kerberos_skeleton_get_type ())
#define CC_REALM_KERBEROS_SKELETON(o) (G_TYPE_CHECK_INSTANCE_CAST ((o), CC_REALM_TYPE_KERBEROS_SKELETON, CcRealmKerberosSkeleton))
#define CC_REALM_KERBEROS_SKELETON_CLASS(k) (G_TYPE_CHECK_CLASS_CAST ((k), CC_REALM_TYPE_KERBEROS_SKELETON, CcRealmKerberosSkeletonClass))
#define CC_REALM_KERBEROS_SKELETON_GET_CLASS(o) (G_TYPE_INSTANCE_GET_CLASS ((o), CC_REALM_TYPE_KERBEROS_SKELETON, CcRealmKerberosSkeletonClass))
#define CC_REALM_IS_KERBEROS_SKELETON(o) (G_TYPE_CHECK_INSTANCE_TYPE ((o), CC_REALM_TYPE_KERBEROS_SKELETON))
#define CC_REALM_IS_KERBEROS_SKELETON_CLASS(k) (G_TYPE_CHECK_CLASS_TYPE ((k), CC_REALM_TYPE_KERBEROS_SKELETON))

typedef struct _CcRealmKerberosSkeleton CcRealmKerberosSkeleton;
typedef struct _CcRealmKerberosSkeletonClass CcRealmKerberosSkeletonClass;
typedef struct _CcRealmKerberosSkeletonPrivate CcRealmKerberosSkeletonPrivate;

struct _CcRealmKerberosSkeleton
{
  /*< private >*/
  GDBusInterfaceSkeleton parent_instance;
  CcRealmKerberosSkeletonPrivate *priv;
};

struct _CcRealmKerberosSkeletonClass
{
  GDBusInterfaceSkeletonClass parent_class;
};

GType cc_realm_kerberos_skeleton_get_type (void) G_GNUC_CONST;

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

CcRealmKerberos *cc_realm_kerberos_skeleton_new (void);


/* ------------------------------------------------------------------------ */
/* Declarations for org.freedesktop.realmd.KerberosMembership */

#define CC_REALM_TYPE_KERBEROS_MEMBERSHIP (cc_realm_kerberos_membership_get_type ())
#define CC_REALM_KERBEROS_MEMBERSHIP(o) (G_TYPE_CHECK_INSTANCE_CAST ((o), CC_REALM_TYPE_KERBEROS_MEMBERSHIP, CcRealmKerberosMembership))
#define CC_REALM_IS_KERBEROS_MEMBERSHIP(o) (G_TYPE_CHECK_INSTANCE_TYPE ((o), CC_REALM_TYPE_KERBEROS_MEMBERSHIP))
#define CC_REALM_KERBEROS_MEMBERSHIP_GET_IFACE(o) (G_TYPE_INSTANCE_GET_INTERFACE ((o), CC_REALM_TYPE_KERBEROS_MEMBERSHIP, CcRealmKerberosMembershipIface))

struct _CcRealmKerberosMembership;
typedef struct _CcRealmKerberosMembership CcRealmKerberosMembership;
typedef struct _CcRealmKerberosMembershipIface CcRealmKerberosMembershipIface;

struct _CcRealmKerberosMembershipIface
{
  GTypeInterface parent_iface;


  gboolean (*handle_join) (
    CcRealmKerberosMembership *object,
    GDBusMethodInvocation *invocation,
    GVariant *arg_credentials,
    GVariant *arg_options);

  gboolean (*handle_leave) (
    CcRealmKerberosMembership *object,
    GDBusMethodInvocation *invocation,
    GVariant *arg_credentials,
    GVariant *arg_options);

  const gchar * (*get_suggested_administrator) (CcRealmKerberosMembership *object);

  GVariant * (*get_supported_join_credentials) (CcRealmKerberosMembership *object);

  GVariant * (*get_supported_leave_credentials) (CcRealmKerberosMembership *object);

};

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

GType cc_realm_kerberos_membership_get_type (void) G_GNUC_CONST;

GDBusInterfaceInfo *cc_realm_kerberos_membership_interface_info (void);
guint cc_realm_kerberos_membership_override_properties (GObjectClass *klass, guint property_id_begin);


/* D-Bus method call completion functions: */
void cc_realm_kerberos_membership_complete_join (
    CcRealmKerberosMembership *object,
    GDBusMethodInvocation *invocation);

void cc_realm_kerberos_membership_complete_leave (
    CcRealmKerberosMembership *object,
    GDBusMethodInvocation *invocation);



/* D-Bus method calls: */
void cc_realm_kerberos_membership_call_join (
    CcRealmKerberosMembership *proxy,
    GVariant *arg_credentials,
    GVariant *arg_options,
    GCancellable *cancellable,
    GAsyncReadyCallback callback,
    gpointer user_data);

gboolean cc_realm_kerberos_membership_call_join_finish (
    CcRealmKerberosMembership *proxy,
    GAsyncResult *res,
    GError **error);

gboolean cc_realm_kerberos_membership_call_join_sync (
    CcRealmKerberosMembership *proxy,
    GVariant *arg_credentials,
    GVariant *arg_options,
    GCancellable *cancellable,
    GError **error);

void cc_realm_kerberos_membership_call_leave (
    CcRealmKerberosMembership *proxy,
    GVariant *arg_credentials,
    GVariant *arg_options,
    GCancellable *cancellable,
    GAsyncReadyCallback callback,
    gpointer user_data);

gboolean cc_realm_kerberos_membership_call_leave_finish (
    CcRealmKerberosMembership *proxy,
    GAsyncResult *res,
    GError **error);

gboolean cc_realm_kerberos_membership_call_leave_sync (
    CcRealmKerberosMembership *proxy,
    GVariant *arg_credentials,
    GVariant *arg_options,
    GCancellable *cancellable,
    GError **error);



/* D-Bus property accessors: */
const gchar *cc_realm_kerberos_membership_get_suggested_administrator (CcRealmKerberosMembership *object);
gchar *cc_realm_kerberos_membership_dup_suggested_administrator (CcRealmKerberosMembership *object);
void cc_realm_kerberos_membership_set_suggested_administrator (CcRealmKerberosMembership *object, const gchar *value);

GVariant *cc_realm_kerberos_membership_get_supported_join_credentials (CcRealmKerberosMembership *object);
GVariant *cc_realm_kerberos_membership_dup_supported_join_credentials (CcRealmKerberosMembership *object);
void cc_realm_kerberos_membership_set_supported_join_credentials (CcRealmKerberosMembership *object, GVariant *value);

GVariant *cc_realm_kerberos_membership_get_supported_leave_credentials (CcRealmKerberosMembership *object);
GVariant *cc_realm_kerberos_membership_dup_supported_leave_credentials (CcRealmKerberosMembership *object);
void cc_realm_kerberos_membership_set_supported_leave_credentials (CcRealmKerberosMembership *object, GVariant *value);


/* ---- */

#define CC_REALM_TYPE_KERBEROS_MEMBERSHIP_PROXY (cc_realm_kerberos_membership_proxy_get_type ())
#define CC_REALM_KERBEROS_MEMBERSHIP_PROXY(o) (G_TYPE_CHECK_INSTANCE_CAST ((o), CC_REALM_TYPE_KERBEROS_MEMBERSHIP_PROXY, CcRealmKerberosMembershipProxy))
#define CC_REALM_KERBEROS_MEMBERSHIP_PROXY_CLASS(k) (G_TYPE_CHECK_CLASS_CAST ((k), CC_REALM_TYPE_KERBEROS_MEMBERSHIP_PROXY, CcRealmKerberosMembershipProxyClass))
#define CC_REALM_KERBEROS_MEMBERSHIP_PROXY_GET_CLASS(o) (G_TYPE_INSTANCE_GET_CLASS ((o), CC_REALM_TYPE_KERBEROS_MEMBERSHIP_PROXY, CcRealmKerberosMembershipProxyClass))
#define CC_REALM_IS_KERBEROS_MEMBERSHIP_PROXY(o) (G_TYPE_CHECK_INSTANCE_TYPE ((o), CC_REALM_TYPE_KERBEROS_MEMBERSHIP_PROXY))
#define CC_REALM_IS_KERBEROS_MEMBERSHIP_PROXY_CLASS(k) (G_TYPE_CHECK_CLASS_TYPE ((k), CC_REALM_TYPE_KERBEROS_MEMBERSHIP_PROXY))

typedef struct _CcRealmKerberosMembershipProxy CcRealmKerberosMembershipProxy;
typedef struct _CcRealmKerberosMembershipProxyClass CcRealmKerberosMembershipProxyClass;
typedef struct _CcRealmKerberosMembershipProxyPrivate CcRealmKerberosMembershipProxyPrivate;

struct _CcRealmKerberosMembershipProxy
{
  /*< private >*/
  GDBusProxy parent_instance;
  CcRealmKerberosMembershipProxyPrivate *priv;
};

struct _CcRealmKerberosMembershipProxyClass
{
  GDBusProxyClass parent_class;
};

GType cc_realm_kerberos_membership_proxy_get_type (void) G_GNUC_CONST;

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

void cc_realm_kerberos_membership_proxy_new (
    GDBusConnection     *connection,
    GDBusProxyFlags      flags,
    const gchar         *name,
    const gchar         *object_path,
    GCancellable        *cancellable,
    GAsyncReadyCallback  callback,
    gpointer             user_data);
CcRealmKerberosMembership *cc_realm_kerberos_membership_proxy_new_finish (
    GAsyncResult        *res,
    GError             **error);
CcRealmKerberosMembership *cc_realm_kerberos_membership_proxy_new_sync (
    GDBusConnection     *connection,
    GDBusProxyFlags      flags,
    const gchar         *name,
    const gchar         *object_path,
    GCancellable        *cancellable,
    GError             **error);

void cc_realm_kerberos_membership_proxy_new_for_bus (
    GBusType             bus_type,
    GDBusProxyFlags      flags,
    const gchar         *name,
    const gchar         *object_path,
    GCancellable        *cancellable,
    GAsyncReadyCallback  callback,
    gpointer             user_data);
CcRealmKerberosMembership *cc_realm_kerberos_membership_proxy_new_for_bus_finish (
    GAsyncResult        *res,
    GError             **error);
CcRealmKerberosMembership *cc_realm_kerberos_membership_proxy_new_for_bus_sync (
    GBusType             bus_type,
    GDBusProxyFlags      flags,
    const gchar         *name,
    const gchar         *object_path,
    GCancellable        *cancellable,
    GError             **error);


/* ---- */

#define CC_REALM_TYPE_KERBEROS_MEMBERSHIP_SKELETON (cc_realm_kerberos_membership_skeleton_get_type ())
#define CC_REALM_KERBEROS_MEMBERSHIP_SKELETON(o) (G_TYPE_CHECK_INSTANCE_CAST ((o), CC_REALM_TYPE_KERBEROS_MEMBERSHIP_SKELETON, CcRealmKerberosMembershipSkeleton))
#define CC_REALM_KERBEROS_MEMBERSHIP_SKELETON_CLASS(k) (G_TYPE_CHECK_CLASS_CAST ((k), CC_REALM_TYPE_KERBEROS_MEMBERSHIP_SKELETON, CcRealmKerberosMembershipSkeletonClass))
#define CC_REALM_KERBEROS_MEMBERSHIP_SKELETON_GET_CLASS(o) (G_TYPE_INSTANCE_GET_CLASS ((o), CC_REALM_TYPE_KERBEROS_MEMBERSHIP_SKELETON, CcRealmKerberosMembershipSkeletonClass))
#define CC_REALM_IS_KERBEROS_MEMBERSHIP_SKELETON(o) (G_TYPE_CHECK_INSTANCE_TYPE ((o), CC_REALM_TYPE_KERBEROS_MEMBERSHIP_SKELETON))
#define CC_REALM_IS_KERBEROS_MEMBERSHIP_SKELETON_CLASS(k) (G_TYPE_CHECK_CLASS_TYPE ((k), CC_REALM_TYPE_KERBEROS_MEMBERSHIP_SKELETON))

typedef struct _CcRealmKerberosMembershipSkeleton CcRealmKerberosMembershipSkeleton;
typedef struct _CcRealmKerberosMembershipSkeletonClass CcRealmKerberosMembershipSkeletonClass;
typedef struct _CcRealmKerberosMembershipSkeletonPrivate CcRealmKerberosMembershipSkeletonPrivate;

struct _CcRealmKerberosMembershipSkeleton
{
  /*< private >*/
  GDBusInterfaceSkeleton parent_instance;
  CcRealmKerberosMembershipSkeletonPrivate *priv;
};

struct _CcRealmKerberosMembershipSkeletonClass
{
  GDBusInterfaceSkeletonClass parent_class;
};

GType cc_realm_kerberos_membership_skeleton_get_type (void) G_GNUC_CONST;

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

CcRealmKerberosMembership *cc_realm_kerberos_membership_skeleton_new (void);


/* ---- */

#define CC_REALM_TYPE_OBJECT (cc_realm_object_get_type ())
#define CC_REALM_OBJECT(o) (G_TYPE_CHECK_INSTANCE_CAST ((o), CC_REALM_TYPE_OBJECT, CcRealmObject))
#define CC_REALM_IS_OBJECT(o) (G_TYPE_CHECK_INSTANCE_TYPE ((o), CC_REALM_TYPE_OBJECT))
#define CC_REALM_OBJECT_GET_IFACE(o) (G_TYPE_INSTANCE_GET_INTERFACE ((o), CC_REALM_TYPE_OBJECT, CcRealmObject))

struct _CcRealmObject;
typedef struct _CcRealmObject CcRealmObject;
typedef struct _CcRealmObjectIface CcRealmObjectIface;

struct _CcRealmObjectIface
{
  GTypeInterface parent_iface;
};

GType cc_realm_object_get_type (void) G_GNUC_CONST;

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

CcRealmProvider *cc_realm_object_get_provider (CcRealmObject *object);
CcRealmService *cc_realm_object_get_service (CcRealmObject *object);
CcRealmCommon *cc_realm_object_get_common (CcRealmObject *object);
CcRealmKerberos *cc_realm_object_get_kerberos (CcRealmObject *object);
CcRealmKerberosMembership *cc_realm_object_get_kerberos_membership (CcRealmObject *object);
CcRealmProvider *cc_realm_object_peek_provider (CcRealmObject *object);
CcRealmService *cc_realm_object_peek_service (CcRealmObject *object);
CcRealmCommon *cc_realm_object_peek_common (CcRealmObject *object);
CcRealmKerberos *cc_realm_object_peek_kerberos (CcRealmObject *object);
CcRealmKerberosMembership *cc_realm_object_peek_kerberos_membership (CcRealmObject *object);

#define CC_REALM_TYPE_OBJECT_PROXY (cc_realm_object_proxy_get_type ())
#define CC_REALM_OBJECT_PROXY(o) (G_TYPE_CHECK_INSTANCE_CAST ((o), CC_REALM_TYPE_OBJECT_PROXY, CcRealmObjectProxy))
#define CC_REALM_OBJECT_PROXY_CLASS(k) (G_TYPE_CHECK_CLASS_CAST ((k), CC_REALM_TYPE_OBJECT_PROXY, CcRealmObjectProxyClass))
#define CC_REALM_OBJECT_PROXY_GET_CLASS(o) (G_TYPE_INSTANCE_GET_CLASS ((o), CC_REALM_TYPE_OBJECT_PROXY, CcRealmObjectProxyClass))
#define CC_REALM_IS_OBJECT_PROXY(o) (G_TYPE_CHECK_INSTANCE_TYPE ((o), CC_REALM_TYPE_OBJECT_PROXY))
#define CC_REALM_IS_OBJECT_PROXY_CLASS(k) (G_TYPE_CHECK_CLASS_TYPE ((k), CC_REALM_TYPE_OBJECT_PROXY))

typedef struct _CcRealmObjectProxy CcRealmObjectProxy;
typedef struct _CcRealmObjectProxyClass CcRealmObjectProxyClass;
typedef struct _CcRealmObjectProxyPrivate CcRealmObjectProxyPrivate;

struct _CcRealmObjectProxy
{
  /*< private >*/
  GDBusObjectProxy parent_instance;
  CcRealmObjectProxyPrivate *priv;
};

struct _CcRealmObjectProxyClass
{
  GDBusObjectProxyClass parent_class;
};

GType cc_realm_object_proxy_get_type (void) G_GNUC_CONST;

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

CcRealmObjectProxy *cc_realm_object_proxy_new (GDBusConnection *connection, const gchar *object_path);

#define CC_REALM_TYPE_OBJECT_SKELETON (cc_realm_object_skeleton_get_type ())
#define CC_REALM_OBJECT_SKELETON(o) (G_TYPE_CHECK_INSTANCE_CAST ((o), CC_REALM_TYPE_OBJECT_SKELETON, CcRealmObjectSkeleton))
#define CC_REALM_OBJECT_SKELETON_CLASS(k) (G_TYPE_CHECK_CLASS_CAST ((k), CC_REALM_TYPE_OBJECT_SKELETON, CcRealmObjectSkeletonClass))
#define CC_REALM_OBJECT_SKELETON_GET_CLASS(o) (G_TYPE_INSTANCE_GET_CLASS ((o), CC_REALM_TYPE_OBJECT_SKELETON, CcRealmObjectSkeletonClass))
#define CC_REALM_IS_OBJECT_SKELETON(o) (G_TYPE_CHECK_INSTANCE_TYPE ((o), CC_REALM_TYPE_OBJECT_SKELETON))
#define CC_REALM_IS_OBJECT_SKELETON_CLASS(k) (G_TYPE_CHECK_CLASS_TYPE ((k), CC_REALM_TYPE_OBJECT_SKELETON))

typedef struct _CcRealmObjectSkeleton CcRealmObjectSkeleton;
typedef struct _CcRealmObjectSkeletonClass CcRealmObjectSkeletonClass;
typedef struct _CcRealmObjectSkeletonPrivate CcRealmObjectSkeletonPrivate;

struct _CcRealmObjectSkeleton
{
  /*< private >*/
  GDBusObjectSkeleton parent_instance;
  CcRealmObjectSkeletonPrivate *priv;
};

struct _CcRealmObjectSkeletonClass
{
  GDBusObjectSkeletonClass parent_class;
};

GType cc_realm_object_skeleton_get_type (void) G_GNUC_CONST;

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

CcRealmObjectSkeleton *cc_realm_object_skeleton_new (const gchar *object_path);
void cc_realm_object_skeleton_set_provider (CcRealmObjectSkeleton *object, CcRealmProvider *interface_);
void cc_realm_object_skeleton_set_service (CcRealmObjectSkeleton *object, CcRealmService *interface_);
void cc_realm_object_skeleton_set_common (CcRealmObjectSkeleton *object, CcRealmCommon *interface_);
void cc_realm_object_skeleton_set_kerberos (CcRealmObjectSkeleton *object, CcRealmKerberos *interface_);
void cc_realm_object_skeleton_set_kerberos_membership (CcRealmObjectSkeleton *object, CcRealmKerberosMembership *interface_);

/* ---- */

#define CC_REALM_TYPE_OBJECT_MANAGER_CLIENT (cc_realm_object_manager_client_get_type ())
#define CC_REALM_OBJECT_MANAGER_CLIENT(o) (G_TYPE_CHECK_INSTANCE_CAST ((o), CC_REALM_TYPE_OBJECT_MANAGER_CLIENT, CcRealmObjectManagerClient))
#define CC_REALM_OBJECT_MANAGER_CLIENT_CLASS(k) (G_TYPE_CHECK_CLASS_CAST ((k), CC_REALM_TYPE_OBJECT_MANAGER_CLIENT, CcRealmObjectManagerClientClass))
#define CC_REALM_OBJECT_MANAGER_CLIENT_GET_CLASS(o) (G_TYPE_INSTANCE_GET_CLASS ((o), CC_REALM_TYPE_OBJECT_MANAGER_CLIENT, CcRealmObjectManagerClientClass))
#define CC_REALM_IS_OBJECT_MANAGER_CLIENT(o) (G_TYPE_CHECK_INSTANCE_TYPE ((o), CC_REALM_TYPE_OBJECT_MANAGER_CLIENT))
#define CC_REALM_IS_OBJECT_MANAGER_CLIENT_CLASS(k) (G_TYPE_CHECK_CLASS_TYPE ((k), CC_REALM_TYPE_OBJECT_MANAGER_CLIENT))

typedef struct _CcRealmObjectManagerClient CcRealmObjectManagerClient;
typedef struct _CcRealmObjectManagerClientClass CcRealmObjectManagerClientClass;
typedef struct _CcRealmObjectManagerClientPrivate CcRealmObjectManagerClientPrivate;

struct _CcRealmObjectManagerClient
{
  /*< private >*/
  GDBusObjectManagerClient parent_instance;
  CcRealmObjectManagerClientPrivate *priv;
};

struct _CcRealmObjectManagerClientClass
{
  GDBusObjectManagerClientClass parent_class;
};

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

GType cc_realm_object_manager_client_get_type (void) G_GNUC_CONST;

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

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

void cc_realm_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 *cc_realm_object_manager_client_new_for_bus_finish (
    GAsyncResult        *res,
    GError             **error);
GDBusObjectManager *cc_realm_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 /* __CC_REALM_GENERATED_H__ */
