device_class_init (DeviceClass *klass)
{
  GObjectClass *object_class = G_OBJECT_CLASS (klass);

  object_class->constructor = device_constructor;
  object_class->finalize = device_finalize;
  object_class->get_property = get_property;

  g_type_class_add_private (klass, sizeof(DevicePrivate));

  signals[CHANGED_SIGNAL] = g_signal_new ("changed",
                                          G_OBJECT_CLASS_TYPE (klass),
                                          G_SIGNAL_RUN_LAST | G_SIGNAL_DETAILED,
                                          0,
                                          NULL,
                                          NULL,
                                          g_cclosure_marshal_VOID__VOID,
                                          G_TYPE_NONE,
                                          0);

  signals[JOB_CHANGED_SIGNAL] = g_signal_new ("job-changed",
                                              G_OBJECT_CLASS_TYPE (klass),
                                              G_SIGNAL_RUN_LAST | G_SIGNAL_DETAILED,
                                              0,
                                              NULL,
                                              NULL,
                                              marshal_VOID__BOOLEAN_STRING_UINT_BOOLEAN_DOUBLE,
                                              G_TYPE_NONE,
                                              5,
                                              G_TYPE_BOOLEAN,
                                              G_TYPE_STRING,
                                              G_TYPE_UINT,
                                              G_TYPE_BOOLEAN,
                                              G_TYPE_DOUBLE);

  dbus_g_object_type_install_info (TYPE_DEVICE, &dbus_glib_device_object_info);

  g_object_class_install_property (object_class, PROP_NATIVE_PATH, g_param_spec_string ("native-path",
                                                                                        NULL,
                                                                                        NULL,
                                                                                        NULL,
                                                                                        G_PARAM_READABLE));
  g_object_class_install_property (object_class,
                                   PROP_DEVICE_DETECTION_TIME,
                                   g_param_spec_uint64 ("device-detection-time",
                                                        NULL,
                                                        NULL,
                                                        0,
                                                        G_MAXUINT64,
                                                        0,
                                                        G_PARAM_READABLE));
  g_object_class_install_property (object_class,
                                   PROP_DEVICE_MEDIA_DETECTION_TIME,
                                   g_param_spec_uint64 ("device-media-detection-time",
                                                        NULL,
                                                        NULL,
                                                        0,
                                                        G_MAXUINT64,
                                                        0,
                                                        G_PARAM_READABLE));
  g_object_class_install_property (object_class, PROP_DEVICE_MAJOR, g_param_spec_int64 ("device-major",
                                                                                        NULL,
                                                                                        NULL,
                                                                                        -G_MAXINT64,
                                                                                        G_MAXINT64,
                                                                                        0,
                                                                                        G_PARAM_READABLE));
  g_object_class_install_property (object_class, PROP_DEVICE_MINOR, g_param_spec_int64 ("device-minor",
                                                                                        NULL,
                                                                                        NULL,
                                                                                        -G_MAXINT64,
                                                                                        G_MAXINT64,
                                                                                        0,
                                                                                        G_PARAM_READABLE));
  g_object_class_install_property (object_class,
                                   PROP_DEVICE_FILE,
                                   g_param_spec_string ("device-file",
                                                        NULL,
                                                        NULL,
                                                        NULL,
                                                        G_PARAM_READABLE));
  g_object_class_install_property (object_class,
                                   PROP_DEVICE_FILE_PRESENTATION,
                                   g_param_spec_string ("device-file-presentation",
                                                        NULL,
                                                        NULL,
                                                        NULL,
                                                        G_PARAM_READABLE));
  g_object_class_install_property (object_class,
                                   PROP_DEVICE_FILE_BY_ID,
                                   g_param_spec_boxed ("device-file-by-id",
                                                       NULL,
                                                       NULL,
                                                       dbus_g_type_get_collection ("GPtrArray", G_TYPE_STRING),
                                                       G_PARAM_READABLE));
  g_object_class_install_property (object_class,
                                   PROP_DEVICE_FILE_BY_PATH,
                                   g_param_spec_boxed ("device-file-by-path",
                                                       NULL,
                                                       NULL,
                                                       dbus_g_type_get_collection ("GPtrArray", G_TYPE_STRING),
                                                       G_PARAM_READABLE));
  g_object_class_install_property (object_class,
                                   PROP_DEVICE_IS_SYSTEM_INTERNAL,
                                   g_param_spec_boolean ("device-is-system-internal",
                                                         NULL,
                                                         NULL,
                                                         FALSE,
                                                         G_PARAM_READABLE));
  g_object_class_install_property (object_class, PROP_DEVICE_IS_PARTITION, g_param_spec_boolean ("device-is-partition",
                                                                                                 NULL,
                                                                                                 NULL,
                                                                                                 FALSE,
                                                                                                 G_PARAM_READABLE));
  g_object_class_install_property (object_class,
                                   PROP_DEVICE_IS_PARTITION_TABLE,
                                   g_param_spec_boolean ("device-is-partition-table",
                                                         NULL,
                                                         NULL,
                                                         FALSE,
                                                         G_PARAM_READABLE));
  g_object_class_install_property (object_class, PROP_DEVICE_IS_REMOVABLE, g_param_spec_boolean ("device-is-removable",
                                                                                                 NULL,
                                                                                                 NULL,
                                                                                                 FALSE,
                                                                                                 G_PARAM_READABLE));
  g_object_class_install_property (object_class,
                                   PROP_DEVICE_IS_MEDIA_AVAILABLE,
                                   g_param_spec_boolean ("device-is-media-available",
                                                         NULL,
                                                         NULL,
                                                         FALSE,
                                                         G_PARAM_READABLE));
  g_object_class_install_property (object_class,
                                   PROP_DEVICE_IS_MEDIA_CHANGE_DETECTED,
                                   g_param_spec_boolean ("device-is-media-change-detected",
                                                         NULL,
                                                         NULL,
                                                         FALSE,
                                                         G_PARAM_READABLE));
  g_object_class_install_property (object_class,
                                   PROP_DEVICE_IS_MEDIA_CHANGE_DETECTION_POLLING,
                                   g_param_spec_boolean ("device-is-media-change-detection-polling",
                                                         NULL,
                                                         NULL,
                                                         FALSE,
                                                         G_PARAM_READABLE));
  g_object_class_install_property (object_class,
                                   PROP_DEVICE_IS_MEDIA_CHANGE_DETECTION_INHIBITABLE,
                                   g_param_spec_boolean ("device-is-media-change-detection-inhibitable",
                                                         NULL,
                                                         NULL,
                                                         FALSE,
                                                         G_PARAM_READABLE));
  g_object_class_install_property (object_class,
                                   PROP_DEVICE_IS_MEDIA_CHANGE_DETECTION_INHIBITED,
                                   g_param_spec_boolean ("device-is-media-change-detection-inhibited",
                                                         NULL,
                                                         NULL,
                                                         FALSE,
                                                         G_PARAM_READABLE));
  g_object_class_install_property (object_class, PROP_DEVICE_IS_READ_ONLY, g_param_spec_boolean ("device-is-read-only",
                                                                                                 NULL,
                                                                                                 NULL,
                                                                                                 FALSE,
                                                                                                 G_PARAM_READABLE));
  g_object_class_install_property (object_class, PROP_DEVICE_IS_DRIVE, g_param_spec_boolean ("device-is-drive",
                                                                                             NULL,
                                                                                             NULL,
                                                                                             FALSE,
                                                                                             G_PARAM_READABLE));
  g_object_class_install_property (object_class,
                                   PROP_DEVICE_IS_OPTICAL_DISC,
                                   g_param_spec_boolean ("device-is-optical-disc", NULL, NULL, FALSE, G_PARAM_READABLE));
  g_object_class_install_property (object_class, PROP_DEVICE_IS_LUKS, g_param_spec_boolean ("device-is-luks",
                                                                                            NULL,
                                                                                            NULL,
                                                                                            FALSE,
                                                                                            G_PARAM_READABLE));
  g_object_class_install_property (object_class,
                                   PROP_DEVICE_IS_LUKS_CLEARTEXT,
                                   g_param_spec_boolean ("device-is-luks-cleartext",
                                                         NULL,
                                                         NULL,
                                                         FALSE,
                                                         G_PARAM_READABLE));
  g_object_class_install_property (object_class,
                                   PROP_DEVICE_IS_LINUX_MD_COMPONENT,
                                   g_param_spec_boolean ("device-is-linux-md-component",
                                                         NULL,
                                                         NULL,
                                                         FALSE,
                                                         G_PARAM_READABLE));
  g_object_class_install_property (object_class, PROP_DEVICE_IS_LINUX_MD, g_param_spec_boolean ("device-is-linux-md",
                                                                                                NULL,
                                                                                                NULL,
                                                                                                FALSE,
                                                                                                G_PARAM_READABLE));
  g_object_class_install_property (object_class,
                                   PROP_DEVICE_IS_LINUX_LVM2_LV,
                                   g_param_spec_boolean ("device-is-linux-lvm2-lv",
                                                         NULL,
                                                         NULL,
                                                         FALSE,
                                                         G_PARAM_READABLE));
  g_object_class_install_property (object_class,
                                   PROP_DEVICE_IS_LINUX_LVM2_PV,
                                   g_param_spec_boolean ("device-is-linux-lvm2-pv",
                                                         NULL,
                                                         NULL,
                                                         FALSE,
                                                         G_PARAM_READABLE));
  g_object_class_install_property (object_class,
                                   PROP_DEVICE_IS_LINUX_DMMP,
                                   g_param_spec_boolean ("device-is-linux-dmmp",
                                                         NULL,
                                                         NULL,
                                                         FALSE,
                                                         G_PARAM_READABLE));
  g_object_class_install_property (object_class,
                                   PROP_DEVICE_IS_LINUX_DMMP_COMPONENT,
                                   g_param_spec_boolean ("device-is-linux-dmmp-component",
                                                         NULL,
                                                         NULL,
                                                         FALSE,
                                                         G_PARAM_READABLE));
  g_object_class_install_property (object_class,
                                   PROP_DEVICE_IS_LINUX_LOOP,
                                   g_param_spec_boolean ("device-is-linux-loop",
                                                         NULL,
                                                         NULL,
                                                         FALSE,
                                                         G_PARAM_READABLE));

  g_object_class_install_property (object_class, PROP_DEVICE_SIZE, g_param_spec_uint64 ("device-size",
                                                                                        NULL,
                                                                                        NULL,
                                                                                        0,
                                                                                        G_MAXUINT64,
                                                                                        0,
                                                                                        G_PARAM_READABLE));
  g_object_class_install_property (object_class, PROP_DEVICE_BLOCK_SIZE, g_param_spec_uint64 ("device-block-size",
                                                                                              NULL,
                                                                                              NULL,
                                                                                              0,
                                                                                              G_MAXUINT64,
                                                                                              0,
                                                                                              G_PARAM_READABLE));
  g_object_class_install_property (object_class, PROP_DEVICE_IS_MOUNTED, g_param_spec_boolean ("device-is-mounted",
                                                                                               NULL,
                                                                                               NULL,
                                                                                               FALSE,
                                                                                               G_PARAM_READABLE));
  g_object_class_install_property (object_class,
                                   PROP_DEVICE_MOUNT_PATHS,
                                   g_param_spec_boxed ("device-mount-paths",
                                                       NULL,
                                                       NULL,
                                                       dbus_g_type_get_collection ("GPtrArray", G_TYPE_STRING),
                                                       G_PARAM_READABLE));
  g_object_class_install_property (object_class,
                                   PROP_DEVICE_MOUNTED_BY_UID,
                                   g_param_spec_uint ("device-mounted-by-uid",
                                                      NULL,
                                                      NULL,
                                                      0,
                                                      G_MAXUINT,
                                                      0,
                                                      G_PARAM_READABLE));
  g_object_class_install_property (object_class,
                                   PROP_DEVICE_PRESENTATION_HIDE,
                                   g_param_spec_boolean ("device-presentation-hide",
                                                         NULL,
                                                         NULL,
                                                         FALSE,
                                                         G_PARAM_READABLE));
  g_object_class_install_property (object_class,
                                   PROP_DEVICE_PRESENTATION_NOPOLICY,
                                   g_param_spec_boolean ("device-presentation-nopolicy",
                                                         NULL,
                                                         NULL,
                                                         FALSE,
                                                         G_PARAM_READABLE));
  g_object_class_install_property (object_class,
                                   PROP_DEVICE_PRESENTATION_NAME,
                                   g_param_spec_string ("device-presentation-name", NULL, NULL, NULL, G_PARAM_READABLE));
  g_object_class_install_property (object_class,
                                   PROP_DEVICE_PRESENTATION_ICON_NAME,
                                   g_param_spec_string ("device-presentation-icon-name",
                                                        NULL,
                                                        NULL,
                                                        NULL,
                                                        G_PARAM_READABLE));

  g_object_class_install_property (object_class, PROP_JOB_IN_PROGRESS, g_param_spec_boolean ("job-in-progress",
                                                                                             NULL,
                                                                                             NULL,
                                                                                             FALSE,
                                                                                             G_PARAM_READABLE));
  g_object_class_install_property (object_class, PROP_JOB_ID, g_param_spec_string ("job-id",
                                                                                   NULL,
                                                                                   NULL,
                                                                                   NULL,
                                                                                   G_PARAM_READABLE));
  g_object_class_install_property (object_class, PROP_JOB_INITIATED_BY_UID, g_param_spec_uint ("job-initiated-by-uid",
                                                                                               NULL,
                                                                                               NULL,
                                                                                               0,
                                                                                               G_MAXUINT,
                                                                                               0,
                                                                                               G_PARAM_READABLE));
  g_object_class_install_property (object_class, PROP_JOB_IS_CANCELLABLE, g_param_spec_boolean ("job-is-cancellable",
                                                                                                NULL,
                                                                                                NULL,
                                                                                                FALSE,
                                                                                                G_PARAM_READABLE));
  g_object_class_install_property (object_class, PROP_JOB_PERCENTAGE, g_param_spec_double ("job-percentage",
                                                                                           NULL,
                                                                                           NULL,
                                                                                           -1,
                                                                                           100,
                                                                                           -1,
                                                                                           G_PARAM_READABLE));

  g_object_class_install_property (object_class, PROP_ID_USAGE, g_param_spec_string ("id-usage",
                                                                                     NULL,
                                                                                     NULL,
                                                                                     NULL,
                                                                                     G_PARAM_READABLE));
  g_object_class_install_property (object_class, PROP_ID_TYPE, g_param_spec_string ("id-type",
                                                                                    NULL,
                                                                                    NULL,
                                                                                    NULL,
                                                                                    G_PARAM_READABLE));
  g_object_class_install_property (object_class, PROP_ID_VERSION, g_param_spec_string ("id-version",
                                                                                       NULL,
                                                                                       NULL,
                                                                                       NULL,
                                                                                       G_PARAM_READABLE));
  g_object_class_install_property (object_class, PROP_ID_UUID, g_param_spec_string ("id-uuid",
                                                                                    NULL,
                                                                                    NULL,
                                                                                    NULL,
                                                                                    G_PARAM_READABLE));
  g_object_class_install_property (object_class, PROP_ID_LABEL, g_param_spec_string ("id-label",
                                                                                     NULL,
                                                                                     NULL,
                                                                                     NULL,
                                                                                     G_PARAM_READABLE));

  g_object_class_install_property (object_class, PROP_PARTITION_SLAVE, g_param_spec_boxed ("partition-slave",
                                                                                           NULL,
                                                                                           NULL,
                                                                                           DBUS_TYPE_G_OBJECT_PATH,
                                                                                           G_PARAM_READABLE));
  g_object_class_install_property (object_class, PROP_PARTITION_SCHEME, g_param_spec_string ("partition-scheme",
                                                                                             NULL,
                                                                                             NULL,
                                                                                             NULL,
                                                                                             G_PARAM_READABLE));
  g_object_class_install_property (object_class, PROP_PARTITION_TYPE, g_param_spec_string ("partition-type",
                                                                                           NULL,
                                                                                           NULL,
                                                                                           NULL,
                                                                                           G_PARAM_READABLE));
  g_object_class_install_property (object_class, PROP_PARTITION_LABEL, g_param_spec_string ("partition-label",
                                                                                            NULL,
                                                                                            NULL,
                                                                                            NULL,
                                                                                            G_PARAM_READABLE));
  g_object_class_install_property (object_class, PROP_PARTITION_UUID, g_param_spec_string ("partition-uuid",
                                                                                           NULL,
                                                                                           NULL,
                                                                                           NULL,
                                                                                           G_PARAM_READABLE));
  g_object_class_install_property (object_class,
                                   PROP_PARTITION_FLAGS,
                                   g_param_spec_boxed ("partition-flags",
                                                       NULL,
                                                       NULL,
                                                       dbus_g_type_get_collection ("GPtrArray", G_TYPE_STRING),
                                                       G_PARAM_READABLE));
  g_object_class_install_property (object_class, PROP_PARTITION_NUMBER, g_param_spec_int ("partition-number",
                                                                                          NULL,
                                                                                          NULL,
                                                                                          0,
                                                                                          G_MAXINT,
                                                                                          0,
                                                                                          G_PARAM_READABLE));
  g_object_class_install_property (object_class, PROP_PARTITION_OFFSET, g_param_spec_uint64 ("partition-offset",
                                                                                             NULL,
                                                                                             NULL,
                                                                                             0,
                                                                                             G_MAXUINT64,
                                                                                             0,
                                                                                             G_PARAM_READABLE));
  g_object_class_install_property (object_class, PROP_PARTITION_SIZE, g_param_spec_uint64 ("partition-size",
                                                                                           NULL,
                                                                                           NULL,
                                                                                           0,
                                                                                           G_MAXUINT64,
                                                                                           0,
                                                                                           G_PARAM_READABLE));
  g_object_class_install_property (object_class,
                                   PROP_PARTITION_ALIGNMENT_OFFSET,
                                   g_param_spec_uint64 ("partition-alignment-offset",
                                                        NULL,
                                                        NULL,
                                                        0,
                                                        G_MAXUINT64,
                                                        0,
                                                        G_PARAM_READABLE));

  g_object_class_install_property (object_class,
                                   PROP_PARTITION_TABLE_SCHEME,
                                   g_param_spec_string ("partition-table-scheme", NULL, NULL, NULL, G_PARAM_READABLE));
  g_object_class_install_property (object_class, PROP_PARTITION_TABLE_COUNT, g_param_spec_int ("partition-table-count",
                                                                                               NULL,
                                                                                               NULL,
                                                                                               0,
                                                                                               G_MAXINT,
                                                                                               0,
                                                                                               G_PARAM_READABLE));

  g_object_class_install_property (object_class, PROP_LUKS_HOLDER, g_param_spec_boxed ("luks-holder",
                                                                                       NULL,
                                                                                       NULL,
                                                                                       DBUS_TYPE_G_OBJECT_PATH,
                                                                                       G_PARAM_READABLE));

  g_object_class_install_property (object_class,
                                   PROP_LUKS_CLEARTEXT_SLAVE,
                                   g_param_spec_boxed ("luks-cleartext-slave",
                                                       NULL,
                                                       NULL,
                                                       DBUS_TYPE_G_OBJECT_PATH,
                                                       G_PARAM_READABLE));
  g_object_class_install_property (object_class,
                                   PROP_LUKS_CLEARTEXT_UNLOCKED_BY_UID,
                                   g_param_spec_uint ("luks-cleartext-unlocked-by-uid",
                                                      NULL,
                                                      NULL,
                                                      0,
                                                      G_MAXUINT,
                                                      0,
                                                      G_PARAM_READABLE));

  g_object_class_install_property (object_class, PROP_DRIVE_VENDOR, g_param_spec_string ("drive-vendor",
                                                                                         NULL,
                                                                                         NULL,
                                                                                         NULL,
                                                                                         G_PARAM_READABLE));
  g_object_class_install_property (object_class, PROP_DRIVE_MODEL, g_param_spec_string ("drive-model",
                                                                                        NULL,
                                                                                        NULL,
                                                                                        NULL,
                                                                                        G_PARAM_READABLE));
  g_object_class_install_property (object_class, PROP_DRIVE_REVISION, g_param_spec_string ("drive-revision",
                                                                                           NULL,
                                                                                           NULL,
                                                                                           NULL,
                                                                                           G_PARAM_READABLE));
  g_object_class_install_property (object_class, PROP_DRIVE_SERIAL, g_param_spec_string ("drive-serial",
                                                                                         NULL,
                                                                                         NULL,
                                                                                         NULL,
                                                                                         G_PARAM_READABLE));
  g_object_class_install_property (object_class, PROP_DRIVE_WWN, g_param_spec_string ("drive-wwn",
                                                                                      NULL,
                                                                                      NULL,
                                                                                      NULL,
                                                                                      G_PARAM_READABLE));
  g_object_class_install_property (object_class,
                                   PROP_DRIVE_CONNECTION_INTERFACE,
                                   g_param_spec_string ("drive-connection-interface",
                                                        NULL,
                                                        NULL,
                                                        NULL,
                                                        G_PARAM_READABLE));
  g_object_class_install_property (object_class,
                                   PROP_DRIVE_CONNECTION_SPEED,
                                   g_param_spec_uint64 ("drive-connection-speed",
                                                        NULL,
                                                        NULL,
                                                        0,
                                                        G_MAXUINT64,
                                                        0,
                                                        G_PARAM_READABLE));
  g_object_class_install_property (object_class,
                                   PROP_DRIVE_MEDIA_COMPATIBILITY,
                                   g_param_spec_boxed ("drive-media-compatibility",
                                                       NULL,
                                                       NULL,
                                                       dbus_g_type_get_collection ("GPtrArray", G_TYPE_STRING),
                                                       G_PARAM_READABLE));
  g_object_class_install_property (object_class, PROP_DRIVE_MEDIA, g_param_spec_string ("drive-media",
                                                                                        NULL,
                                                                                        NULL,
                                                                                        NULL,
                                                                                        G_PARAM_READABLE));
  g_object_class_install_property (object_class,
                                   PROP_DRIVE_IS_MEDIA_EJECTABLE,
                                   g_param_spec_boolean ("drive-is-media-ejectable",
                                                         NULL,
                                                         NULL,
                                                         FALSE,
                                                         G_PARAM_READABLE));
  g_object_class_install_property (object_class, PROP_DRIVE_CAN_DETACH, g_param_spec_boolean ("drive-can-detach",
                                                                                              NULL,
                                                                                              NULL,
                                                                                              FALSE,
                                                                                              G_PARAM_READABLE));
  g_object_class_install_property (object_class, PROP_DRIVE_CAN_SPINDOWN, g_param_spec_boolean ("drive-can-spindown",
                                                                                                NULL,
                                                                                                NULL,
                                                                                                FALSE,
                                                                                                G_PARAM_READABLE));
  g_object_class_install_property (object_class, PROP_DRIVE_IS_ROTATIONAL, g_param_spec_boolean ("drive-is-rotational",
                                                                                                 NULL,
                                                                                                 NULL,
                                                                                                 FALSE,
                                                                                                 G_PARAM_READABLE));
  g_object_class_install_property (object_class, PROP_DRIVE_ROTATION_RATE, g_param_spec_uint ("drive-rotation-rate",
                                                                                              NULL,
                                                                                              NULL,
                                                                                              0,
                                                                                              G_MAXUINT,
                                                                                              0,
                                                                                              G_PARAM_READABLE));
  g_object_class_install_property (object_class, PROP_DRIVE_WRITE_CACHE, g_param_spec_string ("drive-write-cache",
                                                                                              NULL,
                                                                                              NULL,
                                                                                              FALSE,
                                                                                              G_PARAM_READABLE));
  g_object_class_install_property (object_class, PROP_DRIVE_ADAPTER, g_param_spec_boxed ("drive-adapter",
                                                                                         NULL,
                                                                                         NULL,
                                                                                         DBUS_TYPE_G_OBJECT_PATH,
                                                                                         G_PARAM_READABLE));
  g_object_class_install_property (object_class,
                                   PROP_DRIVE_PORTS,
                                   g_param_spec_boxed ("drive-ports",
                                                       NULL,
                                                       NULL,
                                                       dbus_g_type_get_collection ("GPtrArray", DBUS_TYPE_G_OBJECT_PATH),
                                                       G_PARAM_READABLE));
  g_object_class_install_property (object_class,
                                   PROP_DRIVE_SIMILAR_DEVICES,
                                   g_param_spec_boxed ("drive-similar-devices",
                                                       NULL,
                                                       NULL,
                                                       dbus_g_type_get_collection ("GPtrArray", DBUS_TYPE_G_OBJECT_PATH),
                                                       G_PARAM_READABLE));

  g_object_class_install_property (object_class,
                                   PROP_OPTICAL_DISC_IS_BLANK,
                                   g_param_spec_boolean ("optical-disc-is-blank", NULL, NULL, FALSE, G_PARAM_READABLE));
  g_object_class_install_property (object_class,
                                   PROP_OPTICAL_DISC_IS_APPENDABLE,
                                   g_param_spec_boolean ("optical-disc-is-appendable",
                                                         NULL,
                                                         NULL,
                                                         FALSE,
                                                         G_PARAM_READABLE));
  g_object_class_install_property (object_class,
                                   PROP_OPTICAL_DISC_IS_CLOSED,
                                   g_param_spec_boolean ("optical-disc-is-closed", NULL, NULL, FALSE, G_PARAM_READABLE));
  g_object_class_install_property (object_class,
                                   PROP_OPTICAL_DISC_NUM_TRACKS,
                                   g_param_spec_uint ("optical-disc-num-tracks",
                                                      NULL,
                                                      NULL,
                                                      0,
                                                      G_MAXUINT,
                                                      0,
                                                      G_PARAM_READABLE));
  g_object_class_install_property (object_class,
                                   PROP_OPTICAL_DISC_NUM_AUDIO_TRACKS,
                                   g_param_spec_uint ("optical-disc-num-audio-tracks",
                                                      NULL,
                                                      NULL,
                                                      0,
                                                      G_MAXUINT,
                                                      0,
                                                      G_PARAM_READABLE));
  g_object_class_install_property (object_class,
                                   PROP_OPTICAL_DISC_NUM_SESSIONS,
                                   g_param_spec_uint ("optical-disc-num-sessions",
                                                      NULL,
                                                      NULL,
                                                      0,
                                                      G_MAXUINT,
                                                      0,
                                                      G_PARAM_READABLE));

  g_object_class_install_property (object_class,
                                   PROP_DRIVE_ATA_SMART_IS_AVAILABLE,
                                   g_param_spec_boolean ("drive-ata-smart-is-available",
                                                         NULL,
                                                         NULL,
                                                         FALSE,
                                                         G_PARAM_READABLE));
  g_object_class_install_property (object_class,
                                   PROP_DRIVE_ATA_SMART_TIME_COLLECTED,
                                   g_param_spec_uint64 ("drive-ata-smart-time-collected",
                                                        NULL,
                                                        NULL,
                                                        0,
                                                        G_MAXUINT64,
                                                        0,
                                                        G_PARAM_READABLE));
  g_object_class_install_property (object_class,
                                   PROP_DRIVE_ATA_SMART_STATUS,
                                   g_param_spec_string ("drive-ata-smart-status", NULL, NULL, NULL, G_PARAM_READABLE));
  g_object_class_install_property (object_class,
                                   PROP_DRIVE_ATA_SMART_BLOB,
                                   g_param_spec_boxed ("drive-ata-smart-blob",
                                                       NULL,
                                                       NULL,
                                                       dbus_g_type_get_collection ("GArray", G_TYPE_UCHAR),
                                                       G_PARAM_READABLE));

  g_object_class_install_property (object_class,
                                   PROP_LINUX_MD_COMPONENT_LEVEL,
                                   g_param_spec_string ("linux-md-component-level", NULL, NULL, NULL, G_PARAM_READABLE));
  g_object_class_install_property (object_class,
                                   PROP_LINUX_MD_COMPONENT_POSITION,
                                   g_param_spec_int ("linux-md-component-position",
                                                     NULL,
                                                     NULL,
                                                     0,
                                                     G_MAXINT,
                                                     0,
                                                     G_PARAM_READABLE));
  g_object_class_install_property (object_class,
                                   PROP_LINUX_MD_COMPONENT_NUM_RAID_DEVICES,
                                   g_param_spec_int ("linux-md-component-num-raid-devices",
                                                     NULL,
                                                     NULL,
                                                     0,
                                                     G_MAXINT,
                                                     0,
                                                     G_PARAM_READABLE));
  g_object_class_install_property (object_class,
                                   PROP_LINUX_MD_COMPONENT_UUID,
                                   g_param_spec_string ("linux-md-component-uuid", NULL, NULL, NULL, G_PARAM_READABLE));
  g_object_class_install_property (object_class,
                                   PROP_LINUX_MD_COMPONENT_HOME_HOST,
                                   g_param_spec_string ("linux-md-component-home-host",
                                                        NULL,
                                                        NULL,
                                                        NULL,
                                                        G_PARAM_READABLE));
  g_object_class_install_property (object_class,
                                   PROP_LINUX_MD_COMPONENT_NAME,
                                   g_param_spec_string ("linux-md-component-name", NULL, NULL, NULL, G_PARAM_READABLE));
  g_object_class_install_property (object_class,
                                   PROP_LINUX_MD_COMPONENT_VERSION,
                                   g_param_spec_string ("linux-md-component-version",
                                                        NULL,
                                                        NULL,
                                                        NULL,
                                                        G_PARAM_READABLE));
  g_object_class_install_property (object_class,
                                   PROP_LINUX_MD_COMPONENT_HOLDER,
                                   g_param_spec_boxed ("linux-md-component-holder",
                                                       NULL,
                                                       NULL,
                                                       DBUS_TYPE_G_OBJECT_PATH,
                                                       G_PARAM_READABLE));
  g_object_class_install_property (object_class,
                                   PROP_LINUX_MD_COMPONENT_STATE,
                                   g_param_spec_boxed ("linux-md-component-state",
                                                       NULL,
                                                       NULL,
                                                       dbus_g_type_get_collection ("GPtrArray", G_TYPE_STRING),
                                                       G_PARAM_READABLE));

  g_object_class_install_property (object_class, PROP_LINUX_MD_STATE, g_param_spec_string ("linux-md-state",
                                                                                           NULL,
                                                                                           NULL,
                                                                                           NULL,
                                                                                           G_PARAM_READABLE));
  g_object_class_install_property (object_class, PROP_LINUX_MD_LEVEL, g_param_spec_string ("linux-md-level",
                                                                                           NULL,
                                                                                           NULL,
                                                                                           NULL,
                                                                                           G_PARAM_READABLE));
  g_object_class_install_property (object_class,
                                   PROP_LINUX_MD_NUM_RAID_DEVICES,
                                   g_param_spec_int ("linux-md-num-raid-devices",
                                                     NULL,
                                                     NULL,
                                                     0,
                                                     G_MAXINT,
                                                     0,
                                                     G_PARAM_READABLE));
  g_object_class_install_property (object_class, PROP_LINUX_MD_UUID, g_param_spec_string ("linux-md-uuid",
                                                                                          NULL,
                                                                                          NULL,
                                                                                          NULL,
                                                                                          G_PARAM_READABLE));
  g_object_class_install_property (object_class, PROP_LINUX_MD_HOME_HOST, g_param_spec_string ("linux-md-home-host",
                                                                                               NULL,
                                                                                               NULL,
                                                                                               NULL,
                                                                                               G_PARAM_READABLE));
  g_object_class_install_property (object_class, PROP_LINUX_MD_NAME, g_param_spec_string ("linux-md-name",
                                                                                          NULL,
                                                                                          NULL,
                                                                                          NULL,
                                                                                          G_PARAM_READABLE));
  g_object_class_install_property (object_class, PROP_LINUX_MD_VERSION, g_param_spec_string ("linux-md-version",
                                                                                             NULL,
                                                                                             NULL,
                                                                                             NULL,
                                                                                             G_PARAM_READABLE));
  g_object_class_install_property (object_class,
                                   PROP_LINUX_MD_SLAVES,
                                   g_param_spec_boxed ("linux-md-slaves",
                                                       NULL,
                                                       NULL,
                                                       dbus_g_type_get_collection ("GPtrArray", DBUS_TYPE_G_OBJECT_PATH),
                                                       G_PARAM_READABLE));
  g_object_class_install_property (object_class,
                                   PROP_LINUX_MD_IS_DEGRADED,
                                   g_param_spec_boolean ("linux-md-is-degraded", NULL, NULL, FALSE, G_PARAM_READABLE));
  g_object_class_install_property (object_class,
                                   PROP_LINUX_MD_SYNC_ACTION,
                                   g_param_spec_string ("linux-md-sync-action", NULL, NULL, NULL, G_PARAM_READABLE));
  g_object_class_install_property (object_class,
                                   PROP_LINUX_MD_SYNC_PERCENTAGE,
                                   g_param_spec_double ("linux-md-sync-percentage",
                                                        NULL,
                                                        NULL,
                                                        0.0,
                                                        100.0,
                                                        0.0,
                                                        G_PARAM_READABLE));
  g_object_class_install_property (object_class, PROP_LINUX_MD_SYNC_SPEED, g_param_spec_uint64 ("linux-md-sync-speed",
                                                                                                NULL,
                                                                                                NULL,
                                                                                                0,
                                                                                                G_MAXUINT64,
                                                                                                0,
                                                                                                G_PARAM_READABLE));

  g_object_class_install_property (object_class,
                                   PROP_LINUX_LVM2_LV_NAME,
                                   g_param_spec_string ("linux-lvm2-lv-name",
                                                        NULL,
                                                        NULL,
                                                        NULL,
                                                        G_PARAM_READABLE));
  g_object_class_install_property (object_class,
                                   PROP_LINUX_LVM2_LV_UUID,
                                   g_param_spec_string ("linux-lvm2-lv-uuid",
                                                        NULL,
                                                        NULL,
                                                        NULL,
                                                        G_PARAM_READABLE));
  g_object_class_install_property (object_class,
                                   PROP_LINUX_LVM2_LV_GROUP_NAME,
                                   g_param_spec_string ("linux-lvm2-lv-group-name",
                                                        NULL,
                                                        NULL,
                                                        NULL,
                                                        G_PARAM_READABLE));
  g_object_class_install_property (object_class,
                                   PROP_LINUX_LVM2_LV_GROUP_UUID,
                                   g_param_spec_string ("linux-lvm2-lv-group-uuid",
                                                        NULL,
                                                        NULL,
                                                        NULL,
                                                        G_PARAM_READABLE));

  g_object_class_install_property (object_class,
                                   PROP_LINUX_LVM2_PV_UUID,
                                   g_param_spec_string ("linux-lvm2-pv-uuid",
                                                        NULL,
                                                        NULL,
                                                        NULL,
                                                        G_PARAM_READABLE));
  g_object_class_install_property (object_class,
                                   PROP_LINUX_LVM2_PV_NUM_METADATA_AREAS,
                                   g_param_spec_uint ("linux-lvm2-pv-num-metadata-areas",
                                                      NULL,
                                                      NULL,
                                                      0,
                                                      G_MAXUINT,
                                                      0,
                                                      G_PARAM_READABLE));
  g_object_class_install_property (object_class,
                                   PROP_LINUX_LVM2_PV_GROUP_NAME,
                                   g_param_spec_string ("linux-lvm2-pv-group-name",
                                                        NULL,
                                                        NULL,
                                                        NULL,
                                                        G_PARAM_READABLE));
  g_object_class_install_property (object_class,
                                   PROP_LINUX_LVM2_PV_GROUP_UUID,
                                   g_param_spec_string ("linux-lvm2-pv-group-uuid",
                                                        NULL,
                                                        NULL,
                                                        NULL,
                                                        G_PARAM_READABLE));
  g_object_class_install_property (object_class,
                                   PROP_LINUX_LVM2_PV_GROUP_SIZE,
                                   g_param_spec_uint64 ("linux-lvm2-pv-group-size",
                                                        NULL,
                                                        NULL,
                                                        0,
                                                        G_MAXUINT64,
                                                        0,
                                                        G_PARAM_READABLE));
  g_object_class_install_property (object_class,
                                   PROP_LINUX_LVM2_PV_GROUP_UNALLOCATED_SIZE,
                                   g_param_spec_uint64 ("linux-lvm2-pv-group-unallocated-size",
                                                        NULL,
                                                        NULL,
                                                        0,
                                                        G_MAXUINT64,
                                                        0,
                                                        G_PARAM_READABLE));
  g_object_class_install_property (object_class,
                                   PROP_LINUX_LVM2_PV_GROUP_SEQUENCE_NUMBER,
                                   g_param_spec_uint64 ("linux-lvm2-pv-group-sequence-number",
                                                        NULL,
                                                        NULL,
                                                        0,
                                                        G_MAXUINT64,
                                                        0,
                                                        G_PARAM_READABLE));
  g_object_class_install_property (object_class,
                                   PROP_LINUX_LVM2_PV_GROUP_EXTENT_SIZE,
                                   g_param_spec_uint64 ("linux-lvm2-pv-group-extent-size",
                                                        NULL,
                                                        NULL,
                                                        0,
                                                        G_MAXUINT64,
                                                        0,
                                                        G_PARAM_READABLE));
  g_object_class_install_property (object_class,
                                   PROP_LINUX_LVM2_PV_GROUP_PHYSICAL_VOLUMES,
                                   g_param_spec_boxed ("linux-lvm2-pv-group-physical-volumes",
                                                       NULL,
                                                       NULL,
                                                       dbus_g_type_get_collection ("GPtrArray", G_TYPE_STRING),
                                                       G_PARAM_READABLE));
  g_object_class_install_property (object_class,
                                   PROP_LINUX_LVM2_PV_GROUP_LOGICAL_VOLUMES,
                                   g_param_spec_boxed ("linux-lvm2-pv-group-logical-volumes",
                                                       NULL,
                                                       NULL,
                                                       dbus_g_type_get_collection ("GPtrArray", G_TYPE_STRING),
                                                       G_PARAM_READABLE));
  g_object_class_install_property (object_class,
                                   PROP_LINUX_DMMP_COMPONENT_HOLDER,
                                   g_param_spec_boxed ("linux-dmmp-component-holder",
                                                       NULL,
                                                       NULL,
                                                       DBUS_TYPE_G_OBJECT_PATH,
                                                       G_PARAM_READABLE));

  g_object_class_install_property (object_class,
                                   PROP_LINUX_DMMP_NAME,
                                   g_param_spec_string ("linux-dmmp-name",
                                                        NULL,
                                                        NULL,
                                                        NULL,
                                                        G_PARAM_READABLE));
  g_object_class_install_property (object_class,
                                   PROP_LINUX_DMMP_PARAMETERS,
                                   g_param_spec_string ("linux-dmmp-parameters",
                                                        NULL,
                                                        NULL,
                                                        NULL,
                                                        G_PARAM_READABLE));
  g_object_class_install_property (object_class,
                                   PROP_LINUX_DMMP_SLAVES,
                                   g_param_spec_boxed ("linux-dmmp-slaves",
                                                       NULL,
                                                       NULL,
                                                       dbus_g_type_get_collection ("GPtrArray",
                                                                                   DBUS_TYPE_G_OBJECT_PATH),
                                                       G_PARAM_READABLE));

  g_object_class_install_property (object_class,
                                   PROP_LINUX_LOOP_FILENAME,
                                   g_param_spec_string ("linux-loop-filename",
                                                        NULL,
                                                        NULL,
                                                        NULL,
                                                        G_PARAM_READABLE));
}

The product exposes sensitive information to an actor that is not explicitly authorized to have access to that information.