type cros_chromeos_cleanup_logs, chromeos_domain, domain, cros_log_file_creator_domain, mlstrustedobject;

permissive cros_chromeos_cleanup_logs;

domain_auto_trans(cros_periodic_scheduler, cros_chromeos_cleanup_logs_exec, cros_chromeos_cleanup_logs);
