<?xml version='1.0'?>
<!DOCTYPE refentry PUBLIC "-//OASIS//DTD DocBook XML V4.5//EN"
  "http://www.oasis-open.org/docbook/xml/4.2/docbookx.dtd" >
<!-- SPDX-License-Identifier: LGPL-2.1-or-later -->

<refentry id="org.freedesktop.systemd1" xmlns:xi="http://www.w3.org/2001/XInclude">
  <refentryinfo>
    <title>org.freedesktop.systemd1</title>
    <productname>systemd</productname>
  </refentryinfo>

  <refmeta>
    <refentrytitle>org.freedesktop.systemd1</refentrytitle>
    <manvolnum>5</manvolnum>
  </refmeta>

  <refnamediv>
    <refname>org.freedesktop.systemd1</refname>
    <refpurpose>The D-Bus interface of systemd</refpurpose>
  </refnamediv>

  <refsect1>
    <title>Introduction</title>

    <para>
    <citerefentry><refentrytitle>systemd</refentrytitle><manvolnum>1</manvolnum></citerefentry> and its
    auxiliary daemons expose a number of APIs over D-Bus. This page only describes the various APIs exposed by the
    system and service manager itself. It does not cover the auxiliary daemons.
    </para>

    <para>The service manager exposes a number of objects on the bus: one
    <interfacename>Manager</interfacename> object as a central entry point for clients along with individual objects
    for each unit and for each queued job. The unit objects implement a generic
    <interfacename>Unit</interfacename> interface as well as a type-specific interface. For example, service units
    implement both <interfacename>org.freedesktop.systemd1.Unit</interfacename> and
    <interfacename>org.freedesktop.system1.Service</interfacename>. The manager object can list
    unit and job objects or directly convert a unit name or job identifier to a bus path of the corresponding
    D-Bus object.</para>

    <para>Properties exposing time values are usually encoded in microseconds (µs) on the bus, even if
    their corresponding settings in the unit files are in seconds.</para>

    <para>PID 1 uses <ulink url="https://www.freedesktop.org/software/polkit/docs/latest/">polkit</ulink> to
    allow access to privileged operations for unprivileged processes. Some operations (such as
    shutdown/reboot/suspend) are also available through the D-Bus API of logind, see
    <citerefentry><refentrytitle>org.freedesktop.login1</refentrytitle><manvolnum>5</manvolnum></citerefentry>.
    </para>
  </refsect1>

  <refsect1>
    <title>The Manager Object</title>

    <para>The main entry point object is available on the fixed
    <constant>/org/freedesktop/systemd1</constant> object path:</para>

    <programlisting executable="systemd" node="/org/freedesktop/systemd1" interface="org.freedesktop.systemd1.Manager">
node /org/freedesktop/systemd1 {
  interface org.freedesktop.systemd1.Manager {
    methods:
      GetUnit(in  s name,
              out o unit);
      GetUnitByPID(in  u pid,
                   out o unit);
      GetUnitByInvocationID(in  ay invocation_id,
                            out o unit);
      GetUnitByControlGroup(in  s cgroup,
                            out o unit);
      LoadUnit(in  s name,
               out o unit);
      StartUnit(in  s name,
                in  s mode,
                out o job);
      StartUnitReplace(in  s old_unit,
                       in  s new_unit,
                       in  s mode,
                       out o job);
      StopUnit(in  s name,
               in  s mode,
               out o job);
      ReloadUnit(in  s name,
                 in  s mode,
                 out o job);
      RestartUnit(in  s name,
                  in  s mode,
                  out o job);
      TryRestartUnit(in  s name,
                     in  s mode,
                     out o job);
      ReloadOrRestartUnit(in  s name,
                          in  s mode,
                          out o job);
      ReloadOrTryRestartUnit(in  s name,
                             in  s mode,
                             out o job);
      EnqueueUnitJob(in  s name,
                     in  s job_type,
                     in  s job_mode,
                     out u job_id,
                     out o job_path,
                     out s unit_id,
                     out o unit_path,
                     out s job_type,
                     out a(uosos) affected_jobs);
      KillUnit(in  s name,
               in  s whom,
               in  i signal);
      CleanUnit(in  s name,
                in  as mask);
      FreezeUnit(in  s name);
      ThawUnit(in  s name);
      ResetFailedUnit(in  s name);
      SetUnitProperties(in  s name,
                        in  b runtime,
                        in  a(sv) properties);
      BindMountUnit(in  s name,
                    in  s source,
                    in  s destination,
                    in  b read_only,
                    in  b mkdir);
      MountImageUnit(in  s name,
                     in  s source,
                     in  s destination,
                     in  b read_only,
                     in  b mkdir,
                     in  a(ss) options);
      RefUnit(in  s name);
      UnrefUnit(in  s name);
      StartTransientUnit(in  s name,
                         in  s mode,
                         in  a(sv) properties,
                         in  a(sa(sv)) aux,
                         out o job);
      GetUnitProcesses(in  s name,
                       out a(sus) processes);
      AttachProcessesToUnit(in  s unit_name,
                            in  s subcgroup,
                            in  au pids);
      AbandonScope(in  s name);
      GetJob(in  u id,
             out o job);
      GetJobAfter(in  u id,
                  out a(usssoo) jobs);
      GetJobBefore(in  u id,
                   out a(usssoo) jobs);
      CancelJob(in  u id);
      ClearJobs();
      ResetFailed();
      SetShowStatus(in  s mode);
      ListUnits(out a(ssssssouso) units);
      ListUnitsFiltered(in  as states,
                        out a(ssssssouso) units);
      ListUnitsByPatterns(in  as states,
                          in  as patterns,
                          out a(ssssssouso) units);
      ListUnitsByNames(in  as names,
                       out a(ssssssouso) units);
      ListJobs(out a(usssoo) jobs);
      Subscribe();
      Unsubscribe();
      Dump(out s output);
      DumpByFileDescriptor(out h fd);
      Reload();
      Reexecute();
      Exit();
      Reboot();
      PowerOff();
      Halt();
      KExec();
      SwitchRoot(in  s new_root,
                 in  s init);
      SetEnvironment(in  as assignments);
      UnsetEnvironment(in  as names);
      UnsetAndSetEnvironment(in  as names,
                             in  as assignments);
      EnqueueMarkedJobs(out ao jobs);
      ListUnitFiles(out a(ss) unit_files);
      ListUnitFilesByPatterns(in  as states,
                              in  as patterns,
                              out a(ss) unit_files);
      GetUnitFileState(in  s file,
                       out s state);
      EnableUnitFiles(in  as files,
                      in  b runtime,
                      in  b force,
                      out b carries_install_info,
                      out a(sss) changes);
      DisableUnitFiles(in  as files,
                       in  b runtime,
                       out a(sss) changes);
      EnableUnitFilesWithFlags(in  as files,
                               in  t flags,
                               out b carries_install_info,
                               out a(sss) changes);
      DisableUnitFilesWithFlags(in  as files,
                                in  t flags,
                                out a(sss) changes);
      ReenableUnitFiles(in  as files,
                        in  b runtime,
                        in  b force,
                        out b carries_install_info,
                        out a(sss) changes);
      LinkUnitFiles(in  as files,
                    in  b runtime,
                    in  b force,
                    out a(sss) changes);
      PresetUnitFiles(in  as files,
                      in  b runtime,
                      in  b force,
                      out b carries_install_info,
                      out a(sss) changes);
      PresetUnitFilesWithMode(in  as files,
                              in  s mode,
                              in  b runtime,
                              in  b force,
                              out b carries_install_info,
                              out a(sss) changes);
      MaskUnitFiles(in  as files,
                    in  b runtime,
                    in  b force,
                    out a(sss) changes);
      UnmaskUnitFiles(in  as files,
                      in  b runtime,
                      out a(sss) changes);
      RevertUnitFiles(in  as files,
                      out a(sss) changes);
      SetDefaultTarget(in  s name,
                       in  b force,
                       out a(sss) changes);
      GetDefaultTarget(out s name);
      PresetAllUnitFiles(in  s mode,
                         in  b runtime,
                         in  b force,
                         out a(sss) changes);
      AddDependencyUnitFiles(in  as files,
                             in  s target,
                             in  s type,
                             in  b runtime,
                             in  b force,
                             out a(sss) changes);
      GetUnitFileLinks(in  s name,
                       in  b runtime,
                       out as links);
      SetExitCode(in  y number);
      LookupDynamicUserByName(in  s name,
                              out u uid);
      LookupDynamicUserByUID(in  u uid,
                             out s name);
      GetDynamicUsers(out a(us) users);
    signals:
      UnitNew(s id,
              o unit);
      UnitRemoved(s id,
                  o unit);
      JobNew(u id,
             o job,
             s unit);
      JobRemoved(u id,
                 o job,
                 s unit,
                 s result);
      StartupFinished(t firmware,
                      t loader,
                      t kernel,
                      t initrd,
                      t userspace,
                      t total);
      UnitFilesChanged();
      Reloading(b active);
    properties:
      @org.freedesktop.DBus.Property.EmitsChangedSignal("const")
      readonly s Version = '...';
      @org.freedesktop.DBus.Property.EmitsChangedSignal("const")
      readonly s Features = '...';
      @org.freedesktop.DBus.Property.EmitsChangedSignal("const")
      readonly s Virtualization = '...';
      @org.freedesktop.DBus.Property.EmitsChangedSignal("const")
      readonly s Architecture = '...';
      @org.freedesktop.DBus.Property.EmitsChangedSignal("const")
      readonly s Tainted = '...';
      @org.freedesktop.DBus.Property.EmitsChangedSignal("const")
      readonly t FirmwareTimestamp = ...;
      @org.freedesktop.DBus.Property.EmitsChangedSignal("const")
      readonly t FirmwareTimestampMonotonic = ...;
      @org.freedesktop.DBus.Property.EmitsChangedSignal("const")
      readonly t LoaderTimestamp = ...;
      @org.freedesktop.DBus.Property.EmitsChangedSignal("const")
      readonly t LoaderTimestampMonotonic = ...;
      @org.freedesktop.DBus.Property.EmitsChangedSignal("const")
      readonly t KernelTimestamp = ...;
      @org.freedesktop.DBus.Property.EmitsChangedSignal("const")
      readonly t KernelTimestampMonotonic = ...;
      @org.freedesktop.DBus.Property.EmitsChangedSignal("const")
      readonly t InitRDTimestamp = ...;
      @org.freedesktop.DBus.Property.EmitsChangedSignal("const")
      readonly t InitRDTimestampMonotonic = ...;
      @org.freedesktop.DBus.Property.EmitsChangedSignal("const")
      readonly t UserspaceTimestamp = ...;
      @org.freedesktop.DBus.Property.EmitsChangedSignal("const")
      readonly t UserspaceTimestampMonotonic = ...;
      @org.freedesktop.DBus.Property.EmitsChangedSignal("const")
      readonly t FinishTimestamp = ...;
      @org.freedesktop.DBus.Property.EmitsChangedSignal("const")
      readonly t FinishTimestampMonotonic = ...;
      @org.freedesktop.DBus.Property.EmitsChangedSignal("const")
      readonly t SecurityStartTimestamp = ...;
      @org.freedesktop.DBus.Property.EmitsChangedSignal("const")
      readonly t SecurityStartTimestampMonotonic = ...;
      @org.freedesktop.DBus.Property.EmitsChangedSignal("const")
      readonly t SecurityFinishTimestamp = ...;
      @org.freedesktop.DBus.Property.EmitsChangedSignal("const")
      readonly t SecurityFinishTimestampMonotonic = ...;
      @org.freedesktop.DBus.Property.EmitsChangedSignal("const")
      readonly t GeneratorsStartTimestamp = ...;
      @org.freedesktop.DBus.Property.EmitsChangedSignal("const")
      readonly t GeneratorsStartTimestampMonotonic = ...;
      @org.freedesktop.DBus.Property.EmitsChangedSignal("const")
      readonly t GeneratorsFinishTimestamp = ...;
      @org.freedesktop.DBus.Property.EmitsChangedSignal("const")
      readonly t GeneratorsFinishTimestampMonotonic = ...;
      @org.freedesktop.DBus.Property.EmitsChangedSignal("const")
      readonly t UnitsLoadStartTimestamp = ...;
      @org.freedesktop.DBus.Property.EmitsChangedSignal("const")
      readonly t UnitsLoadStartTimestampMonotonic = ...;
      @org.freedesktop.DBus.Property.EmitsChangedSignal("const")
      readonly t UnitsLoadFinishTimestamp = ...;
      @org.freedesktop.DBus.Property.EmitsChangedSignal("const")
      readonly t UnitsLoadFinishTimestampMonotonic = ...;
      @org.freedesktop.DBus.Property.EmitsChangedSignal("const")
      readonly t InitRDSecurityStartTimestamp = ...;
      @org.freedesktop.DBus.Property.EmitsChangedSignal("const")
      readonly t InitRDSecurityStartTimestampMonotonic = ...;
      @org.freedesktop.DBus.Property.EmitsChangedSignal("const")
      readonly t InitRDSecurityFinishTimestamp = ...;
      @org.freedesktop.DBus.Property.EmitsChangedSignal("const")
      readonly t InitRDSecurityFinishTimestampMonotonic = ...;
      @org.freedesktop.DBus.Property.EmitsChangedSignal("const")
      readonly t InitRDGeneratorsStartTimestamp = ...;
      @org.freedesktop.DBus.Property.EmitsChangedSignal("const")
      readonly t InitRDGeneratorsStartTimestampMonotonic = ...;
      @org.freedesktop.DBus.Property.EmitsChangedSignal("const")
      readonly t InitRDGeneratorsFinishTimestamp = ...;
      @org.freedesktop.DBus.Property.EmitsChangedSignal("const")
      readonly t InitRDGeneratorsFinishTimestampMonotonic = ...;
      @org.freedesktop.DBus.Property.EmitsChangedSignal("const")
      readonly t InitRDUnitsLoadStartTimestamp = ...;
      @org.freedesktop.DBus.Property.EmitsChangedSignal("const")
      readonly t InitRDUnitsLoadStartTimestampMonotonic = ...;
      @org.freedesktop.DBus.Property.EmitsChangedSignal("const")
      readonly t InitRDUnitsLoadFinishTimestamp = ...;
      @org.freedesktop.DBus.Property.EmitsChangedSignal("const")
      readonly t InitRDUnitsLoadFinishTimestampMonotonic = ...;
      @org.freedesktop.DBus.Property.EmitsChangedSignal("false")
      @org.freedesktop.systemd1.Privileged("true")
      readwrite s LogLevel = '...';
      @org.freedesktop.DBus.Property.EmitsChangedSignal("false")
      @org.freedesktop.systemd1.Privileged("true")
      readwrite s LogTarget = '...';
      @org.freedesktop.DBus.Property.EmitsChangedSignal("false")
      readonly u NNames = ...;
      readonly u NFailedUnits = ...;
      @org.freedesktop.DBus.Property.EmitsChangedSignal("false")
      readonly u NJobs = ...;
      @org.freedesktop.DBus.Property.EmitsChangedSignal("false")
      readonly u NInstalledJobs = ...;
      @org.freedesktop.DBus.Property.EmitsChangedSignal("false")
      readonly u NFailedJobs = ...;
      @org.freedesktop.DBus.Property.EmitsChangedSignal("false")
      readonly d Progress = ...;
      @org.freedesktop.DBus.Property.EmitsChangedSignal("false")
      readonly as Environment = ['...', ...];
      @org.freedesktop.DBus.Property.EmitsChangedSignal("const")
      readonly b ConfirmSpawn = ...;
      @org.freedesktop.DBus.Property.EmitsChangedSignal("false")
      readonly b ShowStatus = ...;
      @org.freedesktop.DBus.Property.EmitsChangedSignal("const")
      readonly as UnitPath = ['...', ...];
      @org.freedesktop.DBus.Property.EmitsChangedSignal("const")
      readonly s DefaultStandardOutput = '...';
      @org.freedesktop.DBus.Property.EmitsChangedSignal("const")
      readonly s DefaultStandardError = '...';
      @org.freedesktop.DBus.Property.EmitsChangedSignal("false")
      @org.freedesktop.systemd1.Privileged("true")
      readwrite t RuntimeWatchdogUSec = ...;
      @org.freedesktop.DBus.Property.EmitsChangedSignal("false")
      @org.freedesktop.systemd1.Privileged("true")
      readwrite t RebootWatchdogUSec = ...;
      @org.freedesktop.DBus.Property.EmitsChangedSignal("false")
      @org.freedesktop.systemd1.Privileged("true")
      readwrite t KExecWatchdogUSec = ...;
      @org.freedesktop.DBus.Property.EmitsChangedSignal("false")
      @org.freedesktop.systemd1.Privileged("true")
      readwrite b ServiceWatchdogs = ...;
      @org.freedesktop.DBus.Property.EmitsChangedSignal("false")
      readonly s ControlGroup = '...';
      @org.freedesktop.DBus.Property.EmitsChangedSignal("false")
      readonly s SystemState = '...';
      @org.freedesktop.DBus.Property.EmitsChangedSignal("false")
      readonly y ExitCode = ...;
      @org.freedesktop.DBus.Property.EmitsChangedSignal("const")
      readonly t DefaultTimerAccuracyUSec = ...;
      @org.freedesktop.DBus.Property.EmitsChangedSignal("const")
      readonly t DefaultTimeoutStartUSec = ...;
      @org.freedesktop.DBus.Property.EmitsChangedSignal("const")
      readonly t DefaultTimeoutStopUSec = ...;
      @org.freedesktop.DBus.Property.EmitsChangedSignal("false")
      readonly t DefaultTimeoutAbortUSec = ...;
      @org.freedesktop.DBus.Property.EmitsChangedSignal("const")
      readonly t DefaultRestartUSec = ...;
      @org.freedesktop.DBus.Property.EmitsChangedSignal("const")
      readonly t DefaultStartLimitIntervalUSec = ...;
      @org.freedesktop.DBus.Property.EmitsChangedSignal("const")
      readonly u DefaultStartLimitBurst = ...;
      @org.freedesktop.DBus.Property.EmitsChangedSignal("const")
      readonly b DefaultCPUAccounting = ...;
      @org.freedesktop.DBus.Property.EmitsChangedSignal("const")
      readonly b DefaultBlockIOAccounting = ...;
      @org.freedesktop.DBus.Property.EmitsChangedSignal("const")
      readonly b DefaultMemoryAccounting = ...;
      @org.freedesktop.DBus.Property.EmitsChangedSignal("const")
      readonly b DefaultTasksAccounting = ...;
      @org.freedesktop.DBus.Property.EmitsChangedSignal("const")
      readonly t DefaultLimitCPU = ...;
      @org.freedesktop.DBus.Property.EmitsChangedSignal("const")
      readonly t DefaultLimitCPUSoft = ...;
      @org.freedesktop.DBus.Property.EmitsChangedSignal("const")
      readonly t DefaultLimitFSIZE = ...;
      @org.freedesktop.DBus.Property.EmitsChangedSignal("const")
      readonly t DefaultLimitFSIZESoft = ...;
      @org.freedesktop.DBus.Property.EmitsChangedSignal("const")
      readonly t DefaultLimitDATA = ...;
      @org.freedesktop.DBus.Property.EmitsChangedSignal("const")
      readonly t DefaultLimitDATASoft = ...;
      @org.freedesktop.DBus.Property.EmitsChangedSignal("const")
      readonly t DefaultLimitSTACK = ...;
      @org.freedesktop.DBus.Property.EmitsChangedSignal("const")
      readonly t DefaultLimitSTACKSoft = ...;
      @org.freedesktop.DBus.Property.EmitsChangedSignal("const")
      readonly t DefaultLimitCORE = ...;
      @org.freedesktop.DBus.Property.EmitsChangedSignal("const")
      readonly t DefaultLimitCORESoft = ...;
      @org.freedesktop.DBus.Property.EmitsChangedSignal("const")
      readonly t DefaultLimitRSS = ...;
      @org.freedesktop.DBus.Property.EmitsChangedSignal("const")
      readonly t DefaultLimitRSSSoft = ...;
      @org.freedesktop.DBus.Property.EmitsChangedSignal("const")
      readonly t DefaultLimitNOFILE = ...;
      @org.freedesktop.DBus.Property.EmitsChangedSignal("const")
      readonly t DefaultLimitNOFILESoft = ...;
      @org.freedesktop.DBus.Property.EmitsChangedSignal("const")
      readonly t DefaultLimitAS = ...;
      @org.freedesktop.DBus.Property.EmitsChangedSignal("const")
      readonly t DefaultLimitASSoft = ...;
      @org.freedesktop.DBus.Property.EmitsChangedSignal("const")
      readonly t DefaultLimitNPROC = ...;
      @org.freedesktop.DBus.Property.EmitsChangedSignal("const")
      readonly t DefaultLimitNPROCSoft = ...;
      @org.freedesktop.DBus.Property.EmitsChangedSignal("const")
      readonly t DefaultLimitMEMLOCK = ...;
      @org.freedesktop.DBus.Property.EmitsChangedSignal("const")
      readonly t DefaultLimitMEMLOCKSoft = ...;
      @org.freedesktop.DBus.Property.EmitsChangedSignal("const")
      readonly t DefaultLimitLOCKS = ...;
      @org.freedesktop.DBus.Property.EmitsChangedSignal("const")
      readonly t DefaultLimitLOCKSSoft = ...;
      @org.freedesktop.DBus.Property.EmitsChangedSignal("const")
      readonly t DefaultLimitSIGPENDING = ...;
      @org.freedesktop.DBus.Property.EmitsChangedSignal("const")
      readonly t DefaultLimitSIGPENDINGSoft = ...;
      @org.freedesktop.DBus.Property.EmitsChangedSignal("const")
      readonly t DefaultLimitMSGQUEUE = ...;
      @org.freedesktop.DBus.Property.EmitsChangedSignal("const")
      readonly t DefaultLimitMSGQUEUESoft = ...;
      @org.freedesktop.DBus.Property.EmitsChangedSignal("const")
      readonly t DefaultLimitNICE = ...;
      @org.freedesktop.DBus.Property.EmitsChangedSignal("const")
      readonly t DefaultLimitNICESoft = ...;
      @org.freedesktop.DBus.Property.EmitsChangedSignal("const")
      readonly t DefaultLimitRTPRIO = ...;
      @org.freedesktop.DBus.Property.EmitsChangedSignal("const")
      readonly t DefaultLimitRTPRIOSoft = ...;
      @org.freedesktop.DBus.Property.EmitsChangedSignal("const")
      readonly t DefaultLimitRTTIME = ...;
      @org.freedesktop.DBus.Property.EmitsChangedSignal("const")
      readonly t DefaultLimitRTTIMESoft = ...;
      @org.freedesktop.DBus.Property.EmitsChangedSignal("false")
      readonly t DefaultTasksMax = ...;
      @org.freedesktop.DBus.Property.EmitsChangedSignal("const")
      readonly t TimerSlackNSec = ...;
      @org.freedesktop.DBus.Property.EmitsChangedSignal("const")
      readonly s DefaultOOMPolicy = '...';
      @org.freedesktop.DBus.Property.EmitsChangedSignal("const")
      readonly s CtrlAltDelBurstAction = '...';
  };
  interface org.freedesktop.DBus.Peer { ... };
  interface org.freedesktop.DBus.Introspectable { ... };
  interface org.freedesktop.DBus.Properties { ... };
};
    </programlisting>

    <!--method GetUnitByInvocationID is not documented!-->

    <!--method GetUnitByControlGroup is not documented!-->

    <!--method EnqueueUnitJob is not documented!-->

    <!--method CleanUnit is not documented!-->

    <!--method FreezeUnit is not documented!-->

    <!--method ThawUnit is not documented!-->

    <!--method RefUnit is not documented!-->

    <!--method UnrefUnit is not documented!-->

    <!--method GetUnitProcesses is not documented!-->

    <!--method AttachProcessesToUnit is not documented!-->

    <!--method AbandonScope is not documented!-->

    <!--method GetJobAfter is not documented!-->

    <!--method GetJobBefore is not documented!-->

    <!--method SetShowStatus is not documented!-->

    <!--method ListUnitsFiltered is not documented!-->

    <!--method ListUnitsByPatterns is not documented!-->

    <!--method ListUnitsByNames is not documented!-->

    <!--method Dump is not documented!-->

    <!--method DumpByFileDescriptor is not documented!-->

    <!--method ListUnitFilesByPatterns is not documented!-->

    <!--method PresetUnitFilesWithMode is not documented!-->

    <!--method RevertUnitFiles is not documented!-->

    <!--method PresetAllUnitFiles is not documented!-->

    <!--method AddDependencyUnitFiles is not documented!-->

    <!--method GetUnitFileLinks is not documented!-->

    <!--method SetExitCode is not documented!-->

    <!--method LookupDynamicUserByName is not documented!-->

    <!--method LookupDynamicUserByUID is not documented!-->

    <!--method GetDynamicUsers is not documented!-->

    <!--signal UnitNew is not documented!-->

    <!--signal UnitRemoved is not documented!-->

    <!--signal JobNew is not documented!-->

    <!--signal JobRemoved is not documented!-->

    <!--signal StartupFinished is not documented!-->

    <!--signal UnitFilesChanged is not documented!-->

    <!--signal Reloading is not documented!-->

    <!--property SecurityStartTimestampMonotonic is not documented!-->

    <!--property SecurityFinishTimestamp is not documented!-->

    <!--property SecurityFinishTimestampMonotonic is not documented!-->

    <!--property GeneratorsStartTimestampMonotonic is not documented!-->

    <!--property GeneratorsFinishTimestamp is not documented!-->

    <!--property GeneratorsFinishTimestampMonotonic is not documented!-->

    <!--property UnitsLoadStartTimestamp is not documented!-->

    <!--property UnitsLoadStartTimestampMonotonic is not documented!-->

    <!--property UnitsLoadFinishTimestamp is not documented!-->

    <!--property UnitsLoadFinishTimestampMonotonic is not documented!-->

    <!--property InitRDSecurityStartTimestamp is not documented!-->

    <!--property InitRDSecurityStartTimestampMonotonic is not documented!-->

    <!--property InitRDSecurityFinishTimestamp is not documented!-->

    <!--property InitRDSecurityFinishTimestampMonotonic is not documented!-->

    <!--property InitRDGeneratorsStartTimestamp is not documented!-->

    <!--property InitRDGeneratorsStartTimestampMonotonic is not documented!-->

    <!--property InitRDGeneratorsFinishTimestamp is not documented!-->

    <!--property InitRDGeneratorsFinishTimestampMonotonic is not documented!-->

    <!--property InitRDUnitsLoadStartTimestamp is not documented!-->

    <!--property InitRDUnitsLoadStartTimestampMonotonic is not documented!-->

    <!--property InitRDUnitsLoadFinishTimestamp is not documented!-->

    <!--property InitRDUnitsLoadFinishTimestampMonotonic is not documented!-->

    <!--property LogLevel is not documented!-->

    <!--property LogTarget is not documented!-->

    <!--property NFailedUnits is not documented!-->

    <!--property ConfirmSpawn is not documented!-->

    <!--property ShowStatus is not documented!-->

    <!--property DefaultStandardOutput is not documented!-->

    <!--property DefaultStandardError is not documented!-->

    <!--property RuntimeWatchdogUSec is not documented!-->

    <!--property RebootWatchdogUSec is not documented!-->

    <!--property KExecWatchdogUSec is not documented!-->

    <!--property ServiceWatchdogs is not documented!-->

    <!--property SystemState is not documented!-->

    <!--property ExitCode is not documented!-->

    <!--property DefaultTimerAccuracyUSec is not documented!-->

    <!--property DefaultTimeoutStartUSec is not documented!-->

    <!--property DefaultTimeoutStopUSec is not documented!-->

    <!--property DefaultTimeoutAbortUSec is not documented!-->

    <!--property DefaultRestartUSec is not documented!-->

    <!--property DefaultStartLimitIntervalUSec is not documented!-->

    <!--property DefaultStartLimitBurst is not documented!-->

    <!--property DefaultCPUAccounting is not documented!-->

    <!--property DefaultBlockIOAccounting is not documented!-->

    <!--property DefaultMemoryAccounting is not documented!-->

    <!--property DefaultTasksAccounting is not documented!-->

    <!--property DefaultLimitCPU is not documented!-->

    <!--property DefaultLimitCPUSoft is not documented!-->

    <!--property DefaultLimitFSIZE is not documented!-->

    <!--property DefaultLimitFSIZESoft is not documented!-->

    <!--property DefaultLimitDATA is not documented!-->

    <!--property DefaultLimitDATASoft is not documented!-->

    <!--property DefaultLimitSTACK is not documented!-->

    <!--property DefaultLimitSTACKSoft is not documented!-->

    <!--property DefaultLimitCORE is not documented!-->

    <!--property DefaultLimitCORESoft is not documented!-->

    <!--property DefaultLimitRSS is not documented!-->

    <!--property DefaultLimitRSSSoft is not documented!-->

    <!--property DefaultLimitNOFILE is not documented!-->

    <!--property DefaultLimitNOFILESoft is not documented!-->

    <!--property DefaultLimitAS is not documented!-->

    <!--property DefaultLimitASSoft is not documented!-->

    <!--property DefaultLimitNPROC is not documented!-->

    <!--property DefaultLimitNPROCSoft is not documented!-->

    <!--property DefaultLimitMEMLOCK is not documented!-->

    <!--property DefaultLimitMEMLOCKSoft is not documented!-->

    <!--property DefaultLimitLOCKS is not documented!-->

    <!--property DefaultLimitLOCKSSoft is not documented!-->

    <!--property DefaultLimitSIGPENDING is not documented!-->

    <!--property DefaultLimitSIGPENDINGSoft is not documented!-->

    <!--property DefaultLimitMSGQUEUE is not documented!-->

    <!--property DefaultLimitMSGQUEUESoft is not documented!-->

    <!--property DefaultLimitNICE is not documented!-->

    <!--property DefaultLimitNICESoft is not documented!-->

    <!--property DefaultLimitRTPRIO is not documented!-->

    <!--property DefaultLimitRTPRIOSoft is not documented!-->

    <!--property DefaultLimitRTTIME is not documented!-->

    <!--property DefaultLimitRTTIMESoft is not documented!-->

    <!--property DefaultTasksMax is not documented!-->

    <!--property TimerSlackNSec is not documented!-->

    <!--property DefaultOOMPolicy is not documented!-->

    <!--property CtrlAltDelBurstAction is not documented!-->

    <!--Autogenerated cross-references for systemd.directives, do not edit-->

    <variablelist class="dbus-interface" generated="True" extra-ref="org.freedesktop.systemd1.Manager"/>

    <variablelist class="dbus-interface" generated="True" extra-ref="org.freedesktop.systemd1.Manager"/>

    <variablelist class="dbus-method" generated="True" extra-ref="GetUnit()"/>

    <variablelist class="dbus-method" generated="True" extra-ref="GetUnitByPID()"/>

    <variablelist class="dbus-method" generated="True" extra-ref="GetUnitByInvocationID()"/>

    <variablelist class="dbus-method" generated="True" extra-ref="GetUnitByControlGroup()"/>

    <variablelist class="dbus-method" generated="True" extra-ref="LoadUnit()"/>

    <variablelist class="dbus-method" generated="True" extra-ref="StartUnit()"/>

    <variablelist class="dbus-method" generated="True" extra-ref="StartUnitReplace()"/>

    <variablelist class="dbus-method" generated="True" extra-ref="StopUnit()"/>

    <variablelist class="dbus-method" generated="True" extra-ref="ReloadUnit()"/>

    <variablelist class="dbus-method" generated="True" extra-ref="RestartUnit()"/>

    <variablelist class="dbus-method" generated="True" extra-ref="TryRestartUnit()"/>

    <variablelist class="dbus-method" generated="True" extra-ref="ReloadOrRestartUnit()"/>

    <variablelist class="dbus-method" generated="True" extra-ref="ReloadOrTryRestartUnit()"/>

    <variablelist class="dbus-method" generated="True" extra-ref="EnqueueUnitJob()"/>

    <variablelist class="dbus-method" generated="True" extra-ref="KillUnit()"/>

    <variablelist class="dbus-method" generated="True" extra-ref="CleanUnit()"/>

    <variablelist class="dbus-method" generated="True" extra-ref="FreezeUnit()"/>

    <variablelist class="dbus-method" generated="True" extra-ref="ThawUnit()"/>

    <variablelist class="dbus-method" generated="True" extra-ref="ResetFailedUnit()"/>

    <variablelist class="dbus-method" generated="True" extra-ref="SetUnitProperties()"/>

    <variablelist class="dbus-method" generated="True" extra-ref="BindMountUnit()"/>

    <variablelist class="dbus-method" generated="True" extra-ref="MountImageUnit()"/>

    <variablelist class="dbus-method" generated="True" extra-ref="RefUnit()"/>

    <variablelist class="dbus-method" generated="True" extra-ref="UnrefUnit()"/>

    <variablelist class="dbus-method" generated="True" extra-ref="StartTransientUnit()"/>

    <variablelist class="dbus-method" generated="True" extra-ref="GetUnitProcesses()"/>

    <variablelist class="dbus-method" generated="True" extra-ref="AttachProcessesToUnit()"/>

    <variablelist class="dbus-method" generated="True" extra-ref="AbandonScope()"/>

    <variablelist class="dbus-method" generated="True" extra-ref="GetJob()"/>

    <variablelist class="dbus-method" generated="True" extra-ref="GetJobAfter()"/>

    <variablelist class="dbus-method" generated="True" extra-ref="GetJobBefore()"/>

    <variablelist class="dbus-method" generated="True" extra-ref="CancelJob()"/>

    <variablelist class="dbus-method" generated="True" extra-ref="ClearJobs()"/>

    <variablelist class="dbus-method" generated="True" extra-ref="ResetFailed()"/>

    <variablelist class="dbus-method" generated="True" extra-ref="SetShowStatus()"/>

    <variablelist class="dbus-method" generated="True" extra-ref="ListUnits()"/>

    <variablelist class="dbus-method" generated="True" extra-ref="ListUnitsFiltered()"/>

    <variablelist class="dbus-method" generated="True" extra-ref="ListUnitsByPatterns()"/>

    <variablelist class="dbus-method" generated="True" extra-ref="ListUnitsByNames()"/>

    <variablelist class="dbus-method" generated="True" extra-ref="ListJobs()"/>

    <variablelist class="dbus-method" generated="True" extra-ref="Subscribe()"/>

    <variablelist class="dbus-method" generated="True" extra-ref="Unsubscribe()"/>

    <variablelist class="dbus-method" generated="True" extra-ref="Dump()"/>

    <variablelist class="dbus-method" generated="True" extra-ref="DumpByFileDescriptor()"/>

    <variablelist class="dbus-method" generated="True" extra-ref="Reload()"/>

    <variablelist class="dbus-method" generated="True" extra-ref="Reexecute()"/>

    <variablelist class="dbus-method" generated="True" extra-ref="Exit()"/>

    <variablelist class="dbus-method" generated="True" extra-ref="Reboot()"/>

    <variablelist class="dbus-method" generated="True" extra-ref="PowerOff()"/>

    <variablelist class="dbus-method" generated="True" extra-ref="Halt()"/>

    <variablelist class="dbus-method" generated="True" extra-ref="KExec()"/>

    <variablelist class="dbus-method" generated="True" extra-ref="SwitchRoot()"/>

    <variablelist class="dbus-method" generated="True" extra-ref="SetEnvironment()"/>

    <variablelist class="dbus-method" generated="True" extra-ref="UnsetEnvironment()"/>

    <variablelist class="dbus-method" generated="True" extra-ref="UnsetAndSetEnvironment()"/>

    <variablelist class="dbus-method" generated="True" extra-ref="EnqueueMarkedJobs()"/>

    <variablelist class="dbus-method" generated="True" extra-ref="ListUnitFiles()"/>

    <variablelist class="dbus-method" generated="True" extra-ref="ListUnitFilesByPatterns()"/>

    <variablelist class="dbus-method" generated="True" extra-ref="GetUnitFileState()"/>

    <variablelist class="dbus-method" generated="True" extra-ref="EnableUnitFiles()"/>

    <variablelist class="dbus-method" generated="True" extra-ref="DisableUnitFiles()"/>

    <variablelist class="dbus-method" generated="True" extra-ref="EnableUnitFilesWithFlags()"/>

    <variablelist class="dbus-method" generated="True" extra-ref="DisableUnitFilesWithFlags()"/>

    <variablelist class="dbus-method" generated="True" extra-ref="ReenableUnitFiles()"/>

    <variablelist class="dbus-method" generated="True" extra-ref="LinkUnitFiles()"/>

    <variablelist class="dbus-method" generated="True" extra-ref="PresetUnitFiles()"/>

    <variablelist class="dbus-method" generated="True" extra-ref="PresetUnitFilesWithMode()"/>

    <variablelist class="dbus-method" generated="True" extra-ref="MaskUnitFiles()"/>

    <variablelist class="dbus-method" generated="True" extra-ref="UnmaskUnitFiles()"/>

    <variablelist class="dbus-method" generated="True" extra-ref="RevertUnitFiles()"/>

    <variablelist class="dbus-method" generated="True" extra-ref="SetDefaultTarget()"/>

    <variablelist class="dbus-method" generated="True" extra-ref="GetDefaultTarget()"/>

    <variablelist class="dbus-method" generated="True" extra-ref="PresetAllUnitFiles()"/>

    <variablelist class="dbus-method" generated="True" extra-ref="AddDependencyUnitFiles()"/>

    <variablelist class="dbus-method" generated="True" extra-ref="GetUnitFileLinks()"/>

    <variablelist class="dbus-method" generated="True" extra-ref="SetExitCode()"/>

    <variablelist class="dbus-method" generated="True" extra-ref="LookupDynamicUserByName()"/>

    <variablelist class="dbus-method" generated="True" extra-ref="LookupDynamicUserByUID()"/>

    <variablelist class="dbus-method" generated="True" extra-ref="GetDynamicUsers()"/>

    <variablelist class="dbus-signal" generated="True" extra-ref="UnitNew"/>

    <variablelist class="dbus-signal" generated="True" extra-ref="UnitRemoved"/>

    <variablelist class="dbus-signal" generated="True" extra-ref="JobNew"/>

    <variablelist class="dbus-signal" generated="True" extra-ref="JobRemoved"/>

    <variablelist class="dbus-signal" generated="True" extra-ref="StartupFinished"/>

    <variablelist class="dbus-signal" generated="True" extra-ref="UnitFilesChanged"/>

    <variablelist class="dbus-signal" generated="True" extra-ref="Reloading"/>

    <variablelist class="dbus-property" generated="True" extra-ref="Version"/>

    <variablelist class="dbus-property" generated="True" extra-ref="Features"/>

    <variablelist class="dbus-property" generated="True" extra-ref="Virtualization"/>

    <variablelist class="dbus-property" generated="True" extra-ref="Architecture"/>

    <variablelist class="dbus-property" generated="True" extra-ref="Tainted"/>

    <variablelist class="dbus-property" generated="True" extra-ref="FirmwareTimestamp"/>

    <variablelist class="dbus-property" generated="True" extra-ref="FirmwareTimestampMonotonic"/>

    <variablelist class="dbus-property" generated="True" extra-ref="LoaderTimestamp"/>

    <variablelist class="dbus-property" generated="True" extra-ref="LoaderTimestampMonotonic"/>

    <variablelist class="dbus-property" generated="True" extra-ref="KernelTimestamp"/>

    <variablelist class="dbus-property" generated="True" extra-ref="KernelTimestampMonotonic"/>

    <variablelist class="dbus-property" generated="True" extra-ref="InitRDTimestamp"/>

    <variablelist class="dbus-property" generated="True" extra-ref="InitRDTimestampMonotonic"/>

    <variablelist class="dbus-property" generated="True" extra-ref="UserspaceTimestamp"/>

    <variablelist class="dbus-property" generated="True" extra-ref="UserspaceTimestampMonotonic"/>

    <variablelist class="dbus-property" generated="True" extra-ref="FinishTimestamp"/>

    <variablelist class="dbus-property" generated="True" extra-ref="FinishTimestampMonotonic"/>

    <variablelist class="dbus-property" generated="True" extra-ref="SecurityStartTimestamp"/>

    <variablelist class="dbus-property" generated="True" extra-ref="SecurityStartTimestampMonotonic"/>

    <variablelist class="dbus-property" generated="True" extra-ref="SecurityFinishTimestamp"/>

    <variablelist class="dbus-property" generated="True" extra-ref="SecurityFinishTimestampMonotonic"/>

    <variablelist class="dbus-property" generated="True" extra-ref="GeneratorsStartTimestamp"/>

    <variablelist class="dbus-property" generated="True" extra-ref="GeneratorsStartTimestampMonotonic"/>

    <variablelist class="dbus-property" generated="True" extra-ref="GeneratorsFinishTimestamp"/>

    <variablelist class="dbus-property" generated="True" extra-ref="GeneratorsFinishTimestampMonotonic"/>

    <variablelist class="dbus-property" generated="True" extra-ref="UnitsLoadStartTimestamp"/>

    <variablelist class="dbus-property" generated="True" extra-ref="UnitsLoadStartTimestampMonotonic"/>

    <variablelist class="dbus-property" generated="True" extra-ref="UnitsLoadFinishTimestamp"/>

    <variablelist class="dbus-property" generated="True" extra-ref="UnitsLoadFinishTimestampMonotonic"/>

    <variablelist class="dbus-property" generated="True" extra-ref="InitRDSecurityStartTimestamp"/>

    <variablelist class="dbus-property" generated="True" extra-ref="InitRDSecurityStartTimestampMonotonic"/>

    <variablelist class="dbus-property" generated="True" extra-ref="InitRDSecurityFinishTimestamp"/>

    <variablelist class="dbus-property" generated="True" extra-ref="InitRDSecurityFinishTimestampMonotonic"/>

    <variablelist class="dbus-property" generated="True" extra-ref="InitRDGeneratorsStartTimestamp"/>

    <variablelist class="dbus-property" generated="True" extra-ref="InitRDGeneratorsStartTimestampMonotonic"/>

    <variablelist class="dbus-property" generated="True" extra-ref="InitRDGeneratorsFinishTimestamp"/>

    <variablelist class="dbus-property" generated="True" extra-ref="InitRDGeneratorsFinishTimestampMonotonic"/>

    <variablelist class="dbus-property" generated="True" extra-ref="InitRDUnitsLoadStartTimestamp"/>

    <variablelist class="dbus-property" generated="True" extra-ref="InitRDUnitsLoadStartTimestampMonotonic"/>

    <variablelist class="dbus-property" generated="True" extra-ref="InitRDUnitsLoadFinishTimestamp"/>

    <variablelist class="dbus-property" generated="True" extra-ref="InitRDUnitsLoadFinishTimestampMonotonic"/>

    <variablelist class="dbus-property" generated="True" extra-ref="LogLevel"/>

    <variablelist class="dbus-property" generated="True" extra-ref="LogTarget"/>

    <variablelist class="dbus-property" generated="True" extra-ref="NNames"/>

    <variablelist class="dbus-property" generated="True" extra-ref="NFailedUnits"/>

    <variablelist class="dbus-property" generated="True" extra-ref="NJobs"/>

    <variablelist class="dbus-property" generated="True" extra-ref="NInstalledJobs"/>

    <variablelist class="dbus-property" generated="True" extra-ref="NFailedJobs"/>

    <variablelist class="dbus-property" generated="True" extra-ref="Progress"/>

    <variablelist class="dbus-property" generated="True" extra-ref="Environment"/>

    <variablelist class="dbus-property" generated="True" extra-ref="ConfirmSpawn"/>

    <variablelist class="dbus-property" generated="True" extra-ref="ShowStatus"/>

    <variablelist class="dbus-property" generated="True" extra-ref="UnitPath"/>

    <variablelist class="dbus-property" generated="True" extra-ref="DefaultStandardOutput"/>

    <variablelist class="dbus-property" generated="True" extra-ref="DefaultStandardError"/>

    <variablelist class="dbus-property" generated="True" extra-ref="RuntimeWatchdogUSec"/>

    <variablelist class="dbus-property" generated="True" extra-ref="RebootWatchdogUSec"/>

    <variablelist class="dbus-property" generated="True" extra-ref="KExecWatchdogUSec"/>

    <variablelist class="dbus-property" generated="True" extra-ref="ServiceWatchdogs"/>

    <variablelist class="dbus-property" generated="True" extra-ref="ControlGroup"/>

    <variablelist class="dbus-property" generated="True" extra-ref="SystemState"/>

    <variablelist class="dbus-property" generated="True" extra-ref="ExitCode"/>

    <variablelist class="dbus-property" generated="True" extra-ref="DefaultTimerAccuracyUSec"/>

    <variablelist class="dbus-property" generated="True" extra-ref="DefaultTimeoutStartUSec"/>

    <variablelist class="dbus-property" generated="True" extra-ref="DefaultTimeoutStopUSec"/>

    <variablelist class="dbus-property" generated="True" extra-ref="DefaultTimeoutAbortUSec"/>

    <variablelist class="dbus-property" generated="True" extra-ref="DefaultRestartUSec"/>

    <variablelist class="dbus-property" generated="True" extra-ref="DefaultStartLimitIntervalUSec"/>

    <variablelist class="dbus-property" generated="True" extra-ref="DefaultStartLimitBurst"/>

    <variablelist class="dbus-property" generated="True" extra-ref="DefaultCPUAccounting"/>

    <variablelist class="dbus-property" generated="True" extra-ref="DefaultBlockIOAccounting"/>

    <variablelist class="dbus-property" generated="True" extra-ref="DefaultMemoryAccounting"/>

    <variablelist class="dbus-property" generated="True" extra-ref="DefaultTasksAccounting"/>

    <variablelist class="dbus-property" generated="True" extra-ref="DefaultLimitCPU"/>

    <variablelist class="dbus-property" generated="True" extra-ref="DefaultLimitCPUSoft"/>

    <variablelist class="dbus-property" generated="True" extra-ref="DefaultLimitFSIZE"/>

    <variablelist class="dbus-property" generated="True" extra-ref="DefaultLimitFSIZESoft"/>

    <variablelist class="dbus-property" generated="True" extra-ref="DefaultLimitDATA"/>

    <variablelist class="dbus-property" generated="True" extra-ref="DefaultLimitDATASoft"/>

    <variablelist class="dbus-property" generated="True" extra-ref="DefaultLimitSTACK"/>

    <variablelist class="dbus-property" generated="True" extra-ref="DefaultLimitSTACKSoft"/>

    <variablelist class="dbus-property" generated="True" extra-ref="DefaultLimitCORE"/>

    <variablelist class="dbus-property" generated="True" extra-ref="DefaultLimitCORESoft"/>

    <variablelist class="dbus-property" generated="True" extra-ref="DefaultLimitRSS"/>

    <variablelist class="dbus-property" generated="True" extra-ref="DefaultLimitRSSSoft"/>

    <variablelist class="dbus-property" generated="True" extra-ref="DefaultLimitNOFILE"/>

    <variablelist class="dbus-property" generated="True" extra-ref="DefaultLimitNOFILESoft"/>

    <variablelist class="dbus-property" generated="True" extra-ref="DefaultLimitAS"/>

    <variablelist class="dbus-property" generated="True" extra-ref="DefaultLimitASSoft"/>

    <variablelist class="dbus-property" generated="True" extra-ref="DefaultLimitNPROC"/>

    <variablelist class="dbus-property" generated="True" extra-ref="DefaultLimitNPROCSoft"/>

    <variablelist class="dbus-property" generated="True" extra-ref="DefaultLimitMEMLOCK"/>

    <variablelist class="dbus-property" generated="True" extra-ref="DefaultLimitMEMLOCKSoft"/>

    <variablelist class="dbus-property" generated="True" extra-ref="DefaultLimitLOCKS"/>

    <variablelist class="dbus-property" generated="True" extra-ref="DefaultLimitLOCKSSoft"/>

    <variablelist class="dbus-property" generated="True" extra-ref="DefaultLimitSIGPENDING"/>

    <variablelist class="dbus-property" generated="True" extra-ref="DefaultLimitSIGPENDINGSoft"/>

    <variablelist class="dbus-property" generated="True" extra-ref="DefaultLimitMSGQUEUE"/>

    <variablelist class="dbus-property" generated="True" extra-ref="DefaultLimitMSGQUEUESoft"/>

    <variablelist class="dbus-property" generated="True" extra-ref="DefaultLimitNICE"/>

    <variablelist class="dbus-property" generated="True" extra-ref="DefaultLimitNICESoft"/>

    <variablelist class="dbus-property" generated="True" extra-ref="DefaultLimitRTPRIO"/>

    <variablelist class="dbus-property" generated="True" extra-ref="DefaultLimitRTPRIOSoft"/>

    <variablelist class="dbus-property" generated="True" extra-ref="DefaultLimitRTTIME"/>

    <variablelist class="dbus-property" generated="True" extra-ref="DefaultLimitRTTIMESoft"/>

    <variablelist class="dbus-property" generated="True" extra-ref="DefaultTasksMax"/>

    <variablelist class="dbus-property" generated="True" extra-ref="TimerSlackNSec"/>

    <variablelist class="dbus-property" generated="True" extra-ref="DefaultOOMPolicy"/>

    <variablelist class="dbus-property" generated="True" extra-ref="CtrlAltDelBurstAction"/>

    <!--End of Autogenerated section-->

    <refsect2>
      <title>Methods</title>

      <para>Note that many of the methods exist twice: once on the <interfacename>Manager</interfacename>
      object and once on the respective unit objects. This is to optimize access times so that methods that
      belong to unit objects do not have to be called with a resolved unit path, but can be called with only
      the unit id, too.</para>

      <para><function>GetUnit()</function> may be used to get the unit object path for a unit name. It takes
      the unit name and returns the object path. If a unit has not been loaded yet by this name this method
      will fail.</para>

      <para><function>GetUnitByPID()</function> may be used to get the unit object path of the unit a process
      ID belongs to. It takes a UNIX PID and returns the object path. The PID must refer to an existing system process.</para>

      <para><function>LoadUnit()</function> is similar to <function>GetUnit()</function> but will load the
      unit from disk if possible.</para>

      <para><function>StartUnit()</function> enqueues a start job and possibly depending jobs. It takes the unit
      to activate and a mode string as arguments. The mode needs to be one of <literal>replace</literal>,
      <literal>fail</literal>, <literal>isolate</literal>, <literal>ignore-dependencies</literal>, or
      <literal>ignore-requirements</literal>. If <literal>replace</literal>, the method will start the unit and
      its dependencies, possibly replacing already queued jobs that conflict with it. If
      <literal>fail</literal>, the method will start the unit and its dependencies, but will fail if this would
      change an already queued job. If <literal>isolate</literal>, the method will start the unit in question
      and terminate all units that aren't dependencies of it. If <literal>ignore-dependencies</literal>, it
      will start a unit but ignore all its dependencies. If <literal>ignore-requirements</literal>, it will
      start a unit but only ignore the requirement dependencies. It is not recommended to make use of the
      latter two options. On completion, this method returns the newly created job object.</para>

      <para><function>StartUnitReplace()</function> is similar to <function>StartUnit()</function> but
      replaces a job that is queued for one unit by a job for another unit.</para>

      <para><function>StopUnit()</function> is similar to <function>StartUnit()</function> but stops the
      specified unit rather than starting it. Note that the <literal>isolate</literal> mode is invalid for this
      method.</para>

      <para><function>ReloadUnit()</function>, <function>RestartUnit()</function>,
      <function>TryRestartUnit()</function>, <function>ReloadOrRestartUnit()</function>, or
      <function>ReloadOrTryRestartUnit()</function> may be used to restart and/or reload a unit. These methods take
      similar arguments as <function>StartUnit()</function>. Reloading is done only if the unit is already
      running and fails otherwise. If a service is restarted that isn't running, it will be started unless
      the "Try" flavor is used in which case a service that isn't running is not affected by the restart. The
      "ReloadOrRestart" flavors attempt a reload if the unit supports it and use a restart otherwise.</para>

      <para><function>EnqueueMarkedJobs()</function> creates reload/restart jobs for units which have been
      appropriately marked, see <varname>Marks</varname> property above. This is equivalent to calling
      <function>TryRestartUnit()</function> or <function>ReloadOrTryRestartUnit()</function> for the marked
      units.</para>

      <para><function>BindMountUnit()</function> can be used to bind mount new files or directories into
      a running service mount namespace.</para>

      <para><function>MountImageUnit()</function> can be used to mount new images into a running service
      mount namespace.</para>

      <para><function>KillUnit()</function> may be used to kill (i.e. send a signal to) all processes of a
      unit. It takes the unit <varname>name</varname>, an enum <varname>who</varname> and a UNIX
      <varname>signal</varname> number to send. The <varname>who</varname> enum is one of
      <literal>main</literal>, <literal>control</literal> or <literal>all</literal>. If
      <literal>main</literal>, only the main process of the unit is killed. If <literal>control</literal>, only
      the control process of the unit is killed. If <literal>all</literal>, all processes are killed. A
      <literal>control</literal> process is for example a process that is configured via
      <varname>ExecStop=</varname> and is spawned in parallel to the main daemon process in order to shut it
      down.</para>

      <para><function>GetJob()</function> returns the job object path for a specific job, identified by its
      id.</para>

      <para><function>CancelJob()</function> cancels a specific job identified by its numeric ID. This
      operation is also available in the <function>Cancel()</function> method of Job objects (see below) and
      exists primarily to reduce the necessary round trips to execute this operation. Note that this will not
      have any effect on jobs whose execution has already begun.</para>

      <para><function>ClearJobs()</function> flushes the job queue, removing all jobs that are still
      queued. Note that this does not have any effect on jobs whose execution has already begun. It only
      flushes jobs that are queued and have not yet begun execution.</para>

      <para><function>ResetFailedUnit()</function> resets the "failed" state of a specific unit.</para>

      <para><function>ResetFailed()</function> resets the "failed" state of all units.</para>

      <para><function>ListUnits()</function> returns an array of all currently loaded units. Note that
      units may be known by multiple names at the same name, and hence there might be more unit names loaded
      than actual units behind them. The array consists of structures with the following elements:
      <itemizedlist>
        <listitem><para>The primary unit name as string</para></listitem>

        <listitem><para>The human readable description string</para></listitem>

        <listitem><para>The load state (i.e. whether the unit file has been loaded
        successfully)</para></listitem>

        <listitem><para>The active state (i.e. whether the unit is currently started or
        not)</para></listitem>

        <listitem><para>The sub state (a more fine-grained version of the active state that is specific to
        the unit type, which the active state is not)</para></listitem>

        <listitem><para>A unit that is being followed in its state by this unit, if there is any, otherwise
        the empty string.</para></listitem>

        <listitem><para>The unit object path</para></listitem>

        <listitem><para>If there is a job queued for the job unit, the numeric job id, 0
        otherwise</para></listitem>

        <listitem><para>The job type as string</para></listitem>

        <listitem><para>The job object path</para></listitem>
      </itemizedlist></para>

      <para><function>ListJobs()</function> returns an array with all currently queued jobs. Returns an array
      consisting of structures with the following elements:
      <itemizedlist>
        <listitem><para>The numeric job id</para></listitem>

        <listitem><para>The primary unit name for this job</para></listitem>

        <listitem><para>The job type as string</para></listitem>

        <listitem><para>The job state as string</para></listitem>

        <listitem><para>The job object path</para></listitem>

        <listitem><para>The unit object path</para></listitem>
      </itemizedlist></para>

      <para><function>Subscribe()</function> enables most bus signals to be sent out. Clients which are
      interested in signals need to call this method. Signals are only sent out if at least one client
      invoked this method. <function>Unsubscribe()</function> reverts the signal subscription that
      <function>Subscribe()</function> implements. It is not necessary to invoke
      <function>Unsubscribe()</function> as clients are tracked. Signals are no longer sent out as soon as
      all clients which previously asked for <function>Subscribe()</function> either closed their connection
      to the bus or invoked <function>Unsubscribe()</function>.</para>

      <para><function>Reload()</function> may be invoked to reload all unit files.</para>

      <para><function>Reexecute()</function> may be invoked to reexecute the main manager process. It will
      serialize its state, reexecute, and deserizalize the state again. This is useful for upgrades and is a
      more comprehensive version of <function>Reload()</function>.</para>

      <para><function>Exit()</function> may be invoked to ask the manager to exit. This is not available for
      the system manager and is useful only for user session managers.</para>

      <para><function>Reboot()</function>, <function>PowerOff()</function>, <function>Halt()</function>, or
      <function>KExec()</function> may be used to ask for immediate reboot, powering down, halt or kexec
      based reboot of the system. Note that this does not shut down any services and immediately transitions
      into the reboot process. These functions are normally only called as the last step of shutdown and should
      not be called directly. To shut down the machine, it is generally a better idea to invoke
      <function>Reboot()</function> or <function>PowerOff()</function> on the
      <filename>systemd-logind</filename> manager object; see
      <citerefentry><refentrytitle>org.freedesktop.login1</refentrytitle><manvolnum>5</manvolnum></citerefentry>
      for more information.</para>

      <para><function>SwitchRoot()</function> may be used to transition to a new root directory. This is
      intended to be used by initial RAM disks. The method takes two arguments: the new root directory (which
      needs to be specified) and an init binary path (which may be left empty, in which case it is
      automatically searched for). The state of the system manager will be serialized before the
      transition. After the transition, the manager binary on the main system is invoked and replaces the old
      PID 1. All state will then be deserialized.</para>

      <para><function>SetEnvironment()</function> may be used to alter the environment block that is passed
      to all spawned processes. It takes a string array of environment variable assignments. Any previously set
      environment variables will be overridden.</para>

      <para><function>UnsetEnvironment()</function> may be used to unset environment variables. It takes a
      string array of environment variable names. All variables specified will be unset (if they have been
      set previously) and no longer be passed to all spawned processes. This method has no effect for variables
      that were previously not set, but will not fail in that case.</para>

      <para><function>UnsetAndSetEnvironment()</function> is a combination of
      <function>UnsetEnvironment()</function> and <function>SetEnvironment()</function>. It takes two
      lists. The first list contains variables to unset, the second one contains assignments to set. If a
      variable is listed in both, the variable is set after this method returns, i.e. the set list overrides the
      unset list.</para>

      <para><function>ListUnitFiles()</function> returns an array of unit names and their enablement
      status. Note that <function>ListUnit()</function> returns a list of units currently loaded into memory,
      while <function>ListUnitFiles()</function> returns a list of unit <emphasis>files</emphasis> that were
      found on disk. Note that while most units are read directly from a unit file with the same name, some
      units are not backed by files and some files (templates) cannot directly be loaded as units but need
      to be instantiated instead.</para>

      <para><function>GetUnitFileState()</function> returns the current enablement status of a specific unit
      file.</para>

      <para><function>EnableUnitFiles()</function> may be used to enable one or more units in the system (by
      creating symlinks to them in <filename>/etc/</filename> or <filename>/run/</filename>). It takes a list
      of unit files to enable (either just file names or full absolute paths if the unit files are residing
      outside the usual unit search paths) and two booleans: the first controls whether the unit shall be
      enabled for runtime only (true, <filename>/run/</filename>), or persistently (false,
      <filename>/etc/</filename>). The second one controls whether symlinks pointing to other units shall be
      replaced if necessary. This method returns one boolean and an array of the changes made. The boolean
      signals whether the unit files contained any enablement information (i.e. an [Install]) section. The
      changes array consists of structures with three strings: the type of the change (one of
      <literal>symlink</literal> or <literal>unlink</literal>), the file name of the symlink and the
      destination of the symlink. Note that most of the following calls return a changes list in the same
      format.</para>

      <para>Similarly, <function>DisableUnitFiles()</function> disables one or more units in the system,
      i.e. removes all symlinks to them in <filename>/etc/</filename> and <filename>/run/</filename>.</para>

      <para>The <function>EnableUnitFilesWithFlags()</function> and <function>DisableUnitFilesWithFlags()</function>
      take in options as flags instead of booleans to allow for extendability, defined as follows:</para>

      <programlisting>
#define SD_SYSTEMD_UNIT_RUNTIME  (UINT64_C(1) &lt;&lt; 0)
#define SD_SYSTEMD_UNIT_FORCE    (UINT64_C(1) &lt;&lt; 1)
#define SD_SYSTEMD_UNIT_PORTABLE (UINT64_C(1) &lt;&lt; 2)
      </programlisting>

      <para><varname>SD_SYSTEMD_UNIT_RUNTIME</varname> will enable or disable the unit for runtime only,
      <varname>SD_SYSTEMD_UNIT_FORCE</varname> controls whether symlinks pointing to other units shall be
      replaced if necessary. <varname>SD_SYSTEMD_UNIT_PORTABLE</varname> will add or remove the symlinks in
      <filename>/etc/systemd/system.attached</filename> and <filename>/run/systemd/system.attached</filename>.</para>

      <para>Similarly, <function>ReenableUnitFiles()</function> applies the changes to one or more units that
      would result from disabling and enabling the unit quickly one after the other in an atomic
      fashion. This is useful to apply updated [Install] information contained in unit files.</para>

      <para>Similarly, <function>LinkUnitFiles()</function> links unit files (that are located outside of the
      usual unit search paths) into the unit search path.</para>

      <para>Similarly, <function>PresetUnitFiles()</function> enables/disables one or more unit files
      according to the preset policy. See
      <citerefentry><refentrytitle>systemd.preset</refentrytitle><manvolnum>7</manvolnum></citerefentry> for more
      information.</para>

      <para>Similarly, <function>MaskUnitFiles()</function> masks unit files and
      <function>UnmaskUnitFiles()</function> unmasks them again.</para>

      <para><function>SetDefaultTarget()</function> changes the <filename>default.target</filename> link. See
      <citerefentry><refentrytitle>bootup</refentrytitle><manvolnum>7</manvolnum></citerefentry> for more
      information.</para>

      <para><function>GetDefaultTarget()</function> retrieves the name of the unit to which
      <filename>default.target</filename> is aliased.</para>

      <para><function>SetUnitProperties()</function> may be used to modify certain unit properties at
      runtime. Not all properties may be changed at runtime, but many resource management settings (primarily
      those listed in
      <citerefentry><refentrytitle>systemd.resource-control</refentrytitle><manvolnum>5</manvolnum></citerefentry>)
      may. The changes are applied instantly and stored on disk for future boots, unless
      <varname>runtime</varname> is true, in which case the settings only apply until the next
      reboot. <varname>name</varname> is the name of the unit to modify. <varname>properties</varname> are
      the settings to set, encoded as an array of property name and value pairs. Note that this is not a
      dictionary! Also note that when setting array properties with this method usually results in appending to
      the pre-configured array. To reset the configured arrays, set the property to an empty array first and
      then append to it.</para>

      <para><function>StartTransientUnit()</function> may be used to create and start a transient unit which
      will be released as soon as it is not running or referenced anymore or the system is
      rebooted. <varname>name</varname> is the unit name including its suffix and must be
      unique. <varname>mode</varname> is the same as in <function>StartUnit()</function>,
      <varname>properties</varname> contains properties of the unit, specified like in
      <function>SetUnitProperties()</function>. <varname>aux</varname> is currently unused and should be
      passed as an empty array. See the
      <ulink url="https://www.freedesktop.org/wiki/Software/systemd/ControlGroupInterface/">New Control Group
      Interface</ulink> for more information how to make use of this functionality for resource control
      purposes.</para>
    </refsect2>

    <refsect2>
      <title>Signals</title>

      <para>Note that most signals are sent out only after <function>Subscribe()</function> has been invoked
      by at least one client. Make sure to invoke this method when subscribing to these signals!</para>

      <para><function>UnitNew()</function> and <function>UnitRemoved()</function> are sent out each time a
      new unit is loaded or unloaded. Note that this has little to do with whether a unit is available on
      disk or not, and simply reflects the units that are currently loaded into memory. The signals take two
      parameters: the primary unit name and the object path.</para>

      <para><function>JobNew()</function> and <function>JobRemoved()</function> are sent out each time a new
      job is queued or dequeued. Both signals take the numeric job ID, the bus path and the primary unit name
      for this job as arguments. <function>JobRemoved()</function> also includes a result string which is one
      of <literal>done</literal>, <literal>canceled</literal>, <literal>timeout</literal>,
      <literal>failed</literal>, <literal>dependency</literal>, or
      <literal>skipped</literal>. <literal>done</literal> indicates successful execution of a
      job. <literal>canceled</literal> indicates that a job has been canceled (via
      <function>CancelJob()</function> above) before it finished execution (this doesn't necessarily mean
      though that the job operation is actually cancelled too, see above). <literal>timeout</literal>
      indicates that the job timeout was reached. <literal>failed</literal> indicates that the job
      failed. <literal>dependency</literal> indicates that a job this job depended on failed and the job hence
      was removed as well. <literal>skipped</literal> indicates that a job was skipped because
      it didn't apply to the unit's current state.</para>

      <para><function>StartupFinished()</function> is sent out when startup finishes. It carries six
      microsecond timespan values, each indicating how much boot time has been spent in the firmware (if
      known), in the boot loader (if known), in the kernel initialization phase, in the initrd (if known), in
      userspace and in total. These values may also be calculated from the
      <varname>FirmwareTimestampMonotonic</varname>, <varname>LoaderTimestampMonotonic</varname>,
      <varname>InitRDTimestampMonotonic</varname>, <varname>UserspaceTimestampMonotonic</varname>, and
      <varname>FinishTimestampMonotonic</varname> properties (see below).</para>

      <para><function>UnitFilesChanged()</function> is sent out each time the list of enabled or masked unit
      files on disk have changed.</para>

      <para><function>Reloading()</function> is sent out immediately before a daemon reload is done (with the
      boolean parameter set to True) and after a daemon reload is completed (with the boolean parameter set
      to False). This may be used by UIs to optimize UI updates.</para>
    </refsect2>

    <refsect2>
      <title>Properties</title>

      <para>Most properties simply reflect the respective options in
      <filename>/etc/systemd/system.conf</filename> and the kernel command line.</para>

      <para>The others:</para>

      <para><varname>Version</varname> encodes the version string of the running systemd instance. Note that
      the version string is purely informational. It should not be parsed and one may not assume the version to
      be formatted in any particular way. We take the liberty to change the versioning scheme at any time and
      it is not part of the public API.</para>

      <para><varname>Features</varname> encodes the features that have been enabled and disabled for this
      build. Enabled options are prefixed with +, disabled options with -.</para>

      <para><varname>Tainted</varname> encodes a couple of taint flags as a colon-separated list. When
      systemd detects it is running on a system with certain problems, it will set an appropriate taint
      flag. Taints may be used to lower the chance of bogus bug reports. The following taints are currently
      known: <literal>split-usr</literal>, <literal>mtab-not-symlink</literal>,
      <literal>cgroups-missing</literal>, <literal>local-hwclock</literal>. <literal>split-usr</literal> is
      set if <filename>/usr/</filename> is not pre-mounted when systemd is first invoked. See
      <ulink url="http://freedesktop.org/wiki/Software/systemd/separate-usr-is-broken">
      Booting Without /usr is Broken</ulink>
      for details why this is bad. <literal>mtab-not-symlink</literal> indicates that
      <filename>/etc/mtab</filename> is not a symlink to <filename>/proc/self/mounts</filename> as
      required. <literal>cgroups-missing</literal> indicates that control groups have not been enabled in the
      kernel. <literal>local-hwclock</literal> indicates that the local RTC is configured to be in local time
      rather than UTC.</para>

      <para><varname>FirmwareTimestamp</varname>, <varname>FirmwareTimestampMonotonic</varname>,
      <varname>LoaderTimestamp</varname>, <varname>LoaderTimestampMonotonic</varname>,
      <varname>KernelTimestamp</varname>, <varname>KernelTimestampMonotonic</varname>,
      <varname>InitRDTimestamp</varname>, <varname>InitRDTimestampMonotonic</varname>,
      <varname>UserspaceTimestamp</varname>, <varname>UserspaceTimestampMonotonic</varname>,
      <varname>FinishTimestamp</varname>, and <varname>FinishTimestampMonotonic</varname> encode
      <constant>CLOCK_REALTIME</constant> and <constant>CLOCK_MONOTONIC</constant> microsecond timestamps
      taken when the firmware first began execution, when the boot loader first began execution, when the
      kernel first began execution, when the initrd first began execution, when the main systemd instance
      began execution and finally, when all queued startup jobs finished execution. These values are useful
      for determining boot-time performance. Note that as monotonic time begins with the kernel startup, the
      <varname>KernelTimestampMonotonic</varname> timestamp will always be 0 and
      <varname>FirmwareTimestampMonotonic</varname> and <varname>LoaderTimestampMonotonic</varname> are to
      be read as negative values. Also, not all fields are always available, depending on the used firmware,
      boot loader or initrd implementation. In these cases the respective pairs of timestamps are both 0,
      indicating that no data is available.</para>

      <para>Similarly, the <varname>SecurityStartTimestamp</varname>,
      <varname>GeneratorsStartTimestamp</varname> and <varname>LoadUnitTimestamp</varname> (as well as their
      monotonic and stop counterparts) expose performance data for uploading the security policies to the
      kernel (such as the SELinux, IMA, or SMACK policies), for running the generator tools and for loading
      the unit files.</para>

      <para><varname>NNames</varname> encodes how many unit names are currently known. This only includes
      names of units that are currently loaded and can be more than the amount of actually loaded units since
      units may have more than one name.</para>

      <para><varname>NJobs</varname> encodes how many jobs are currently queued.</para>

      <para><varname>NInstalledJobs</varname> encodes how many jobs have ever been queued in total.</para>

      <para><varname>NFailedJobs</varname> encodes how many jobs have ever failed in total.</para>

      <para><varname>Progress</varname> encodes boot progress as a floating point value between 0.0 and
      1.0. This value begins at 0.0 at early-boot and ends at 1.0 when boot is finished and is based on the
      number of executed and queued jobs. After startup, this field is always 1.0 indicating a finished
      boot.</para>

      <para><varname>Environment</varname> encodes the environment block passed to all executed services. It
      may be altered with bus calls such as <function>SetEnvironment()</function> (see above).</para>

      <para><varname>UnitPath</varname> encodes the currently active unit file search path. It is an array of
      file system paths encoded as strings.</para>

      <para><varname>Virtualization</varname> contains a short ID string describing the virtualization
      technology the system runs in. On bare-metal hardware this is the empty string. Otherwise, it contains
      an identifier such as <literal>kvm</literal>, <literal>vmware</literal> and so on. For a full list of
      IDs see
      <citerefentry><refentrytitle>systemd-detect-virt</refentrytitle><manvolnum>1</manvolnum></citerefentry>.
      Note that only the "innermost" virtualization technology is exported here. This detects both
      full-machine virtualizations (VMs) and shared-kernel virtualization (containers).</para>

      <para><varname>Architecture</varname> contains a short ID string describing the architecture the
      systemd instance is running on. This follows the same vocabulary as
      <varname>ConditionArchitectures=</varname>.</para>

      <para><varname>ControlGroup</varname> contains the root control group path of this system manager. Note
      that the root path is encoded as the empty string here (not as <literal>/</literal>!), so that it can be
      appended to <filename>/sys/fs/cgroup/systemd</filename> easily. This value will be set to the empty
      string for the host instance and some other string for container instances.</para>
    </refsect2>

    <refsect2>
      <title>Security</title>

      <para>Read access is generally granted to all clients. Additionally, for unprivileged clients, some
      operations are allowed through the polkit privilege system. Operations which modify unit state
      (<function>StartUnit()</function>, <function>StopUnit()</function>, <function>KillUnit()</function>,
      <function>RestartUnit()</function> and similar, <function>SetProperty()</function>) require
      <interfacename>org.freedesktop.systemd1.manage-units</interfacename>. Operations which modify unit file
      enablement state (<function>EnableUnitFiles()</function>, <function>DisableUnitFiles()</function>,
      <function>EnableUnitFilesWithFlags()</function>, <function>DisableUnitFilesWithFlags()</function>,
      <function>ReenableUnitFiles()</function>, <function>LinkUnitFiles()</function>,
      <function>PresetUnitFiles</function>, <function>MaskUnitFiles</function>, and similar) require
      <interfacename>org.freedesktop.systemd1.manage-unit-files</interfacename>. Operations which modify the
      exported environment (<function>SetEnvironment()</function>, <function>UnsetEnvironment()</function>,
      <function>UnsetAndSetEnvironment()</function>) require
      <interfacename>org.freedesktop.systemd1.set-environment</interfacename>. <function>Reload()</function>
      and <function>Reexecute()</function> require
      <interfacename>org.freedesktop.systemd1.reload-daemon</interfacename>.
      </para>
    </refsect2>
  </refsect1>

  <refsect1>
    <title>Unit Objects</title>

    <programlisting executable="systemd" node="/org/freedesktop/systemd1/unit/avahi_2ddaemon_2eservice" interface="org.freedesktop.systemd1.Unit">
node /org/freedesktop/systemd1/unit/avahi_2ddaemon_2eservice {
  interface org.freedesktop.systemd1.Unit {
    methods:
      Start(in  s mode,
            out o job);
      Stop(in  s mode,
           out o job);
      Reload(in  s mode,
             out o job);
      Restart(in  s mode,
              out o job);
      TryRestart(in  s mode,
                 out o job);
      ReloadOrRestart(in  s mode,
                      out o job);
      ReloadOrTryRestart(in  s mode,
                         out o job);
      EnqueueJob(in  s job_type,
                 in  s job_mode,
                 out u job_id,
                 out o job_path,
                 out s unit_id,
                 out o unit_path,
                 out s job_type,
                 out a(uosos) affected_jobs);
      Kill(in  s whom,
           in  i signal);
      ResetFailed();
      SetProperties(in  b runtime,
                    in  a(sv) properties);
      Ref();
      Unref();
      Clean(in  as mask);
      Freeze();
      Thaw();
    properties:
      @org.freedesktop.DBus.Property.EmitsChangedSignal("const")
      readonly s Id = '...';
      @org.freedesktop.DBus.Property.EmitsChangedSignal("const")
      readonly as Names = ['...', ...];
      @org.freedesktop.DBus.Property.EmitsChangedSignal("false")
      readonly s Following = '...';
      @org.freedesktop.DBus.Property.EmitsChangedSignal("const")
      readonly as Requires = ['...', ...];
      @org.freedesktop.DBus.Property.EmitsChangedSignal("const")
      readonly as Requisite = ['...', ...];
      @org.freedesktop.DBus.Property.EmitsChangedSignal("const")
      readonly as Wants = ['...', ...];
      @org.freedesktop.DBus.Property.EmitsChangedSignal("const")
      readonly as BindsTo = ['...', ...];
      @org.freedesktop.DBus.Property.EmitsChangedSignal("const")
      readonly as PartOf = ['...', ...];
      @org.freedesktop.DBus.Property.EmitsChangedSignal("const")
      readonly as RequiredBy = ['...', ...];
      @org.freedesktop.DBus.Property.EmitsChangedSignal("const")
      readonly as RequisiteOf = ['...', ...];
      @org.freedesktop.DBus.Property.EmitsChangedSignal("const")
      readonly as WantedBy = ['...', ...];
      @org.freedesktop.DBus.Property.EmitsChangedSignal("const")
      readonly as BoundBy = ['...', ...];
      @org.freedesktop.DBus.Property.EmitsChangedSignal("const")
      readonly as ConsistsOf = ['...', ...];
      @org.freedesktop.DBus.Property.EmitsChangedSignal("const")
      readonly as Conflicts = ['...', ...];
      @org.freedesktop.DBus.Property.EmitsChangedSignal("const")
      readonly as ConflictedBy = ['...', ...];
      @org.freedesktop.DBus.Property.EmitsChangedSignal("const")
      readonly as Before = ['...', ...];
      @org.freedesktop.DBus.Property.EmitsChangedSignal("const")
      readonly as After = ['...', ...];
      @org.freedesktop.DBus.Property.EmitsChangedSignal("const")
      readonly as OnFailure = ['...', ...];
      @org.freedesktop.DBus.Property.EmitsChangedSignal("const")
      readonly as OnFailureOf = ['...', ...];
      @org.freedesktop.DBus.Property.EmitsChangedSignal("const")
      readonly as OnSuccess = ['...', ...];
      @org.freedesktop.DBus.Property.EmitsChangedSignal("const")
      readonly as OnSuccessOf = ['...', ...];
      @org.freedesktop.DBus.Property.EmitsChangedSignal("const")
      readonly as Triggers = ['...', ...];
      @org.freedesktop.DBus.Property.EmitsChangedSignal("const")
      readonly as TriggeredBy = ['...', ...];
      @org.freedesktop.DBus.Property.EmitsChangedSignal("const")
      readonly as PropagatesReloadTo = ['...', ...];
      @org.freedesktop.DBus.Property.EmitsChangedSignal("const")
      readonly as ReloadPropagatedFrom = ['...', ...];
      @org.freedesktop.DBus.Property.EmitsChangedSignal("const")
      readonly as PropagatesStopTo = ['...', ...];
      @org.freedesktop.DBus.Property.EmitsChangedSignal("const")
      readonly as StopPropagatedFrom = ['...', ...];
      @org.freedesktop.DBus.Property.EmitsChangedSignal("const")
      readonly as JoinsNamespaceOf = ['...', ...];
      @org.freedesktop.DBus.Property.EmitsChangedSignal("const")
      readonly as SliceOf = ['...', ...];
      @org.freedesktop.DBus.Property.EmitsChangedSignal("const")
      readonly as RequiresMountsFor = ['...', ...];
      @org.freedesktop.DBus.Property.EmitsChangedSignal("const")
      readonly as Documentation = ['...', ...];
      @org.freedesktop.DBus.Property.EmitsChangedSignal("const")
      readonly s Description = '...';
      @org.freedesktop.DBus.Property.EmitsChangedSignal("const")
      readonly s LoadState = '...';
      readonly s ActiveState = '...';
      readonly s FreezerState = '...';
      readonly s SubState = '...';
      @org.freedesktop.DBus.Property.EmitsChangedSignal("const")
      readonly s FragmentPath = '...';
      @org.freedesktop.DBus.Property.EmitsChangedSignal("const")
      readonly s SourcePath = '...';
      @org.freedesktop.DBus.Property.EmitsChangedSignal("const")
      readonly as DropInPaths = ['...', ...];
      @org.freedesktop.DBus.Property.EmitsChangedSignal("false")
      readonly s UnitFileState = '...';
      @org.freedesktop.DBus.Property.EmitsChangedSignal("false")
      readonly s UnitFilePreset = '...';
      readonly t StateChangeTimestamp = ...;
      readonly t StateChangeTimestampMonotonic = ...;
      readonly t InactiveExitTimestamp = ...;
      readonly t InactiveExitTimestampMonotonic = ...;
      readonly t ActiveEnterTimestamp = ...;
      readonly t ActiveEnterTimestampMonotonic = ...;
      readonly t ActiveExitTimestamp = ...;
      readonly t ActiveExitTimestampMonotonic = ...;
      readonly t InactiveEnterTimestamp = ...;
      readonly t InactiveEnterTimestampMonotonic = ...;
      @org.freedesktop.DBus.Property.EmitsChangedSignal("const")
      readonly b CanStart = ...;
      @org.freedesktop.DBus.Property.EmitsChangedSignal("const")
      readonly b CanStop = ...;
      @org.freedesktop.DBus.Property.EmitsChangedSignal("const")
      readonly b CanReload = ...;
      @org.freedesktop.DBus.Property.EmitsChangedSignal("const")
      readonly b CanIsolate = ...;
      @org.freedesktop.DBus.Property.EmitsChangedSignal("const")
      readonly as CanClean = ['...', ...];
      @org.freedesktop.DBus.Property.EmitsChangedSignal("const")
      readonly b CanFreeze = ...;
      readonly (uo) Job = ...;
      @org.freedesktop.DBus.Property.EmitsChangedSignal("const")
      readonly b StopWhenUnneeded = ...;
      @org.freedesktop.DBus.Property.EmitsChangedSignal("const")
      readonly b RefuseManualStart = ...;
      @org.freedesktop.DBus.Property.EmitsChangedSignal("const")
      readonly b RefuseManualStop = ...;
      @org.freedesktop.DBus.Property.EmitsChangedSignal("const")
      readonly b AllowIsolate = ...;
      @org.freedesktop.DBus.Property.EmitsChangedSignal("const")
      readonly b DefaultDependencies = ...;
      @org.freedesktop.DBus.Property.EmitsChangedSignal("const")
      readonly s OnSuccessJobMode = '...';
      @org.freedesktop.DBus.Property.EmitsChangedSignal("const")
      readonly s OnFailureJobMode = '...';
      @org.freedesktop.DBus.Property.EmitsChangedSignal("const")
      readonly b IgnoreOnIsolate = ...;
      @org.freedesktop.DBus.Property.EmitsChangedSignal("false")
      readonly b NeedDaemonReload = ...;
      @org.freedesktop.DBus.Property.EmitsChangedSignal("false")
      readonly as Markers = ['...', ...];
      @org.freedesktop.DBus.Property.EmitsChangedSignal("const")
      readonly t JobTimeoutUSec = ...;
      @org.freedesktop.DBus.Property.EmitsChangedSignal("const")
      readonly t JobRunningTimeoutUSec = ...;
      @org.freedesktop.DBus.Property.EmitsChangedSignal("const")
      readonly s JobTimeoutAction = '...';
      @org.freedesktop.DBus.Property.EmitsChangedSignal("const")
      readonly s JobTimeoutRebootArgument = '...';
      readonly b ConditionResult = ...;
      readonly b AssertResult = ...;
      readonly t ConditionTimestamp = ...;
      readonly t ConditionTimestampMonotonic = ...;
      readonly t AssertTimestamp = ...;
      readonly t AssertTimestampMonotonic = ...;
      @org.freedesktop.DBus.Property.EmitsChangedSignal("invalidates")
      readonly a(sbbsi) Conditions = [...];
      @org.freedesktop.DBus.Property.EmitsChangedSignal("invalidates")
      readonly a(sbbsi) Asserts = [...];
      @org.freedesktop.DBus.Property.EmitsChangedSignal("const")
      readonly (ss) LoadError = ...;
      @org.freedesktop.DBus.Property.EmitsChangedSignal("const")
      readonly b Transient = ...;
      @org.freedesktop.DBus.Property.EmitsChangedSignal("const")
      readonly b Perpetual = ...;
      @org.freedesktop.DBus.Property.EmitsChangedSignal("const")
      readonly t StartLimitIntervalUSec = ...;
      @org.freedesktop.DBus.Property.EmitsChangedSignal("const")
      readonly u StartLimitBurst = ...;
      @org.freedesktop.DBus.Property.EmitsChangedSignal("const")
      readonly s StartLimitAction = '...';
      @org.freedesktop.DBus.Property.EmitsChangedSignal("const")
      readonly s FailureAction = '...';
      @org.freedesktop.DBus.Property.EmitsChangedSignal("const")
      readonly i FailureActionExitStatus = ...;
      @org.freedesktop.DBus.Property.EmitsChangedSignal("const")
      readonly s SuccessAction = '...';
      @org.freedesktop.DBus.Property.EmitsChangedSignal("const")
      readonly i SuccessActionExitStatus = ...;
      @org.freedesktop.DBus.Property.EmitsChangedSignal("const")
      readonly s RebootArgument = '...';
      readonly ay InvocationID = [...];
      @org.freedesktop.DBus.Property.EmitsChangedSignal("const")
      readonly s CollectMode = '...';
      @org.freedesktop.DBus.Property.EmitsChangedSignal("false")
      readonly as Refs = ['...', ...];
  };
  interface org.freedesktop.DBus.Peer { ... };
  interface org.freedesktop.DBus.Introspectable { ... };
  interface org.freedesktop.DBus.Properties { ... };
};
    </programlisting>

    <!--method EnqueueJob is not documented!-->

    <!--method Ref is not documented!-->

    <!--method Unref is not documented!-->

    <!--method Clean is not documented!-->

    <!--method Freeze is not documented!-->

    <!--method Thaw is not documented!-->

    <!--property PartOf is not documented!-->

    <!--property RequisiteOf is not documented!-->

    <!--property ConsistsOf is not documented!-->

    <!--property OnFailureOf is not documented!-->

    <!--property OnSuccess is not documented!-->

    <!--property OnSuccessOf is not documented!-->

    <!--property ReloadPropagatedFrom is not documented!-->

    <!--property PropagatesStopTo is not documented!-->

    <!--property StopPropagatedFrom is not documented!-->

    <!--property JoinsNamespaceOf is not documented!-->

    <!--property SliceOf is not documented!-->

    <!--property FreezerState is not documented!-->

    <!--property DropInPaths is not documented!-->

    <!--property UnitFilePreset is not documented!-->

    <!--property StateChangeTimestamp is not documented!-->

    <!--property StateChangeTimestampMonotonic is not documented!-->

    <!--property CanClean is not documented!-->

    <!--property CanFreeze is not documented!-->

    <!--property OnSuccessJobMode is not documented!-->

    <!--property OnFailureJobMode is not documented!-->

    <!--property JobRunningTimeoutUSec is not documented!-->

    <!--property JobTimeoutAction is not documented!-->

    <!--property JobTimeoutRebootArgument is not documented!-->

    <!--property AssertResult is not documented!-->

    <!--property AssertTimestamp is not documented!-->

    <!--property AssertTimestampMonotonic is not documented!-->

    <!--property Asserts is not documented!-->

    <!--property Perpetual is not documented!-->

    <!--property StartLimitIntervalUSec is not documented!-->

    <!--property StartLimitAction is not documented!-->

    <!--property FailureAction is not documented!-->

    <!--property FailureActionExitStatus is not documented!-->

    <!--property SuccessAction is not documented!-->

    <!--property SuccessActionExitStatus is not documented!-->

    <!--property RebootArgument is not documented!-->

    <!--property InvocationID is not documented!-->

    <!--property CollectMode is not documented!-->

    <!--property Refs is not documented!-->

    <!--Autogenerated cross-references for systemd.directives, do not edit-->

    <variablelist class="dbus-interface" generated="True" extra-ref="org.freedesktop.systemd1.Unit"/>

    <variablelist class="dbus-interface" generated="True" extra-ref="org.freedesktop.systemd1.Unit"/>

    <variablelist class="dbus-method" generated="True" extra-ref="Start()"/>

    <variablelist class="dbus-method" generated="True" extra-ref="Stop()"/>

    <variablelist class="dbus-method" generated="True" extra-ref="Reload()"/>

    <variablelist class="dbus-method" generated="True" extra-ref="Restart()"/>

    <variablelist class="dbus-method" generated="True" extra-ref="TryRestart()"/>

    <variablelist class="dbus-method" generated="True" extra-ref="ReloadOrRestart()"/>

    <variablelist class="dbus-method" generated="True" extra-ref="ReloadOrTryRestart()"/>

    <variablelist class="dbus-method" generated="True" extra-ref="EnqueueJob()"/>

    <variablelist class="dbus-method" generated="True" extra-ref="Kill()"/>

    <variablelist class="dbus-method" generated="True" extra-ref="ResetFailed()"/>

    <variablelist class="dbus-method" generated="True" extra-ref="SetProperties()"/>

    <variablelist class="dbus-method" generated="True" extra-ref="Ref()"/>

    <variablelist class="dbus-method" generated="True" extra-ref="Unref()"/>

    <variablelist class="dbus-method" generated="True" extra-ref="Clean()"/>

    <variablelist class="dbus-method" generated="True" extra-ref="Freeze()"/>

    <variablelist class="dbus-method" generated="True" extra-ref="Thaw()"/>

    <variablelist class="dbus-property" generated="True" extra-ref="Id"/>

    <variablelist class="dbus-property" generated="True" extra-ref="Names"/>

    <variablelist class="dbus-property" generated="True" extra-ref="Following"/>

    <variablelist class="dbus-property" generated="True" extra-ref="Requires"/>

    <variablelist class="dbus-property" generated="True" extra-ref="Requisite"/>

    <variablelist class="dbus-property" generated="True" extra-ref="Wants"/>

    <variablelist class="dbus-property" generated="True" extra-ref="BindsTo"/>

    <variablelist class="dbus-property" generated="True" extra-ref="PartOf"/>

    <variablelist class="dbus-property" generated="True" extra-ref="RequiredBy"/>

    <variablelist class="dbus-property" generated="True" extra-ref="RequisiteOf"/>

    <variablelist class="dbus-property" generated="True" extra-ref="WantedBy"/>

    <variablelist class="dbus-property" generated="True" extra-ref="BoundBy"/>

    <variablelist class="dbus-property" generated="True" extra-ref="ConsistsOf"/>

    <variablelist class="dbus-property" generated="True" extra-ref="Conflicts"/>

    <variablelist class="dbus-property" generated="True" extra-ref="ConflictedBy"/>

    <variablelist class="dbus-property" generated="True" extra-ref="Before"/>

    <variablelist class="dbus-property" generated="True" extra-ref="After"/>

    <variablelist class="dbus-property" generated="True" extra-ref="OnFailure"/>

    <variablelist class="dbus-property" generated="True" extra-ref="OnFailureOf"/>

    <variablelist class="dbus-property" generated="True" extra-ref="OnSuccess"/>

    <variablelist class="dbus-property" generated="True" extra-ref="OnSuccessOf"/>

    <variablelist class="dbus-property" generated="True" extra-ref="Triggers"/>

    <variablelist class="dbus-property" generated="True" extra-ref="TriggeredBy"/>

    <variablelist class="dbus-property" generated="True" extra-ref="PropagatesReloadTo"/>

    <variablelist class="dbus-property" generated="True" extra-ref="ReloadPropagatedFrom"/>

    <variablelist class="dbus-property" generated="True" extra-ref="PropagatesStopTo"/>

    <variablelist class="dbus-property" generated="True" extra-ref="StopPropagatedFrom"/>

    <variablelist class="dbus-property" generated="True" extra-ref="JoinsNamespaceOf"/>

    <variablelist class="dbus-property" generated="True" extra-ref="SliceOf"/>

    <variablelist class="dbus-property" generated="True" extra-ref="RequiresMountsFor"/>

    <variablelist class="dbus-property" generated="True" extra-ref="Documentation"/>

    <variablelist class="dbus-property" generated="True" extra-ref="Description"/>

    <variablelist class="dbus-property" generated="True" extra-ref="LoadState"/>

    <variablelist class="dbus-property" generated="True" extra-ref="ActiveState"/>

    <variablelist class="dbus-property" generated="True" extra-ref="FreezerState"/>

    <variablelist class="dbus-property" generated="True" extra-ref="SubState"/>

    <variablelist class="dbus-property" generated="True" extra-ref="FragmentPath"/>

    <variablelist class="dbus-property" generated="True" extra-ref="SourcePath"/>

    <variablelist class="dbus-property" generated="True" extra-ref="DropInPaths"/>

    <variablelist class="dbus-property" generated="True" extra-ref="UnitFileState"/>

    <variablelist class="dbus-property" generated="True" extra-ref="UnitFilePreset"/>

    <variablelist class="dbus-property" generated="True" extra-ref="StateChangeTimestamp"/>

    <variablelist class="dbus-property" generated="True" extra-ref="StateChangeTimestampMonotonic"/>

    <variablelist class="dbus-property" generated="True" extra-ref="InactiveExitTimestamp"/>

    <variablelist class="dbus-property" generated="True" extra-ref="InactiveExitTimestampMonotonic"/>

    <variablelist class="dbus-property" generated="True" extra-ref="ActiveEnterTimestamp"/>

    <variablelist class="dbus-property" generated="True" extra-ref="ActiveEnterTimestampMonotonic"/>

    <variablelist class="dbus-property" generated="True" extra-ref="ActiveExitTimestamp"/>

    <variablelist class="dbus-property" generated="True" extra-ref="ActiveExitTimestampMonotonic"/>

    <variablelist class="dbus-property" generated="True" extra-ref="InactiveEnterTimestamp"/>

    <variablelist class="dbus-property" generated="True" extra-ref="InactiveEnterTimestampMonotonic"/>

    <variablelist class="dbus-property" generated="True" extra-ref="CanStart"/>

    <variablelist class="dbus-property" generated="True" extra-ref="CanStop"/>

    <variablelist class="dbus-property" generated="True" extra-ref="CanReload"/>

    <variablelist class="dbus-property" generated="True" extra-ref="CanIsolate"/>

    <variablelist class="dbus-property" generated="True" extra-ref="CanClean"/>

    <variablelist class="dbus-property" generated="True" extra-ref="CanFreeze"/>

    <variablelist class="dbus-property" generated="True" extra-ref="Job"/>

    <variablelist class="dbus-property" generated="True" extra-ref="StopWhenUnneeded"/>

    <variablelist class="dbus-property" generated="True" extra-ref="RefuseManualStart"/>

    <variablelist class="dbus-property" generated="True" extra-ref="RefuseManualStop"/>

    <variablelist class="dbus-property" generated="True" extra-ref="AllowIsolate"/>

    <variablelist class="dbus-property" generated="True" extra-ref="DefaultDependencies"/>

    <variablelist class="dbus-property" generated="True" extra-ref="OnSuccessJobMode"/>

    <variablelist class="dbus-property" generated="True" extra-ref="OnFailureJobMode"/>

    <variablelist class="dbus-property" generated="True" extra-ref="IgnoreOnIsolate"/>

    <variablelist class="dbus-property" generated="True" extra-ref="NeedDaemonReload"/>

    <variablelist class="dbus-property" generated="True" extra-ref="Markers"/>

    <variablelist class="dbus-property" generated="True" extra-ref="JobTimeoutUSec"/>

    <variablelist class="dbus-property" generated="True" extra-ref="JobRunningTimeoutUSec"/>

    <variablelist class="dbus-property" generated="True" extra-ref="JobTimeoutAction"/>

    <variablelist class="dbus-property" generated="True" extra-ref="JobTimeoutRebootArgument"/>

    <variablelist class="dbus-property" generated="True" extra-ref="ConditionResult"/>

    <variablelist class="dbus-property" generated="True" extra-ref="AssertResult"/>

    <variablelist class="dbus-property" generated="True" extra-ref="ConditionTimestamp"/>

    <variablelist class="dbus-property" generated="True" extra-ref="ConditionTimestampMonotonic"/>

    <variablelist class="dbus-property" generated="True" extra-ref="AssertTimestamp"/>

    <variablelist class="dbus-property" generated="True" extra-ref="AssertTimestampMonotonic"/>

    <variablelist class="dbus-property" generated="True" extra-ref="Conditions"/>

    <variablelist class="dbus-property" generated="True" extra-ref="Asserts"/>

    <variablelist class="dbus-property" generated="True" extra-ref="LoadError"/>

    <variablelist class="dbus-property" generated="True" extra-ref="Transient"/>

    <variablelist class="dbus-property" generated="True" extra-ref="Perpetual"/>

    <variablelist class="dbus-property" generated="True" extra-ref="StartLimitIntervalUSec"/>

    <variablelist class="dbus-property" generated="True" extra-ref="StartLimitBurst"/>

    <variablelist class="dbus-property" generated="True" extra-ref="StartLimitAction"/>

    <variablelist class="dbus-property" generated="True" extra-ref="FailureAction"/>

    <variablelist class="dbus-property" generated="True" extra-ref="FailureActionExitStatus"/>

    <variablelist class="dbus-property" generated="True" extra-ref="SuccessAction"/>

    <variablelist class="dbus-property" generated="True" extra-ref="SuccessActionExitStatus"/>

    <variablelist class="dbus-property" generated="True" extra-ref="RebootArgument"/>

    <variablelist class="dbus-property" generated="True" extra-ref="InvocationID"/>

    <variablelist class="dbus-property" generated="True" extra-ref="CollectMode"/>

    <variablelist class="dbus-property" generated="True" extra-ref="Refs"/>

    <!--End of Autogenerated section-->

    <refsect2>
      <title>Methods</title>

      <para><function>Start()</function>, <function>Stop()</function>, <function>Reload()</function>,
      <function>Restart()</function>, <function>TryRestart()</function>,
      <function>ReloadOrRestart()</function>, <function>ReloadOrTryRestart()</function>,
      <function>Kill()</function>, <function>ResetFailed()</function>, and
      <function>SetProperties()</function> implement the same operation as the respective methods on the
      <interfacename>Manager</interfacename> object (see above). However, these methods operate on the unit
      object and hence do not take a unit name parameter. Invoking the methods directly on the Manager
      object has the advantage of not requiring a <function>GetUnit()</function> call to get the unit object
      for a specific unit name. Calling the methods on the Manager object is hence a round trip
      optimization.</para>
    </refsect2>

    <refsect2>
      <title>Properties</title>

      <para><varname>Id</varname> contains the primary name of the unit.</para>

      <para><varname>Names</varname> contains all names of the unit, including the primary name that is also
      exposed in <varname>Id</varname>.</para>

      <para><varname>Following</varname> either contains the empty string or contains the name of another
      unit that this unit follows in state. This is used for some device units which reflect the unit state
      machine of another unit, and which other unit this is might possibly change.</para>

      <para><varname>Requires</varname>, <varname>RequiresOverridable</varname>,
      <varname>Requisite</varname>, <varname>RequisiteOverridable</varname>, <varname>Wants</varname>,
      <varname>BindsTo</varname>, <varname>RequiredBy</varname>, <varname>RequiredByOverridable</varname>,
      <varname>WantedBy</varname>, <varname>BoundBy</varname>, <varname>Conflicts</varname>,
      <varname>ConflictedBy</varname>, <varname>Before</varname>, <varname>After</varname>,
      <varname>OnFailure</varname>, <varname>Triggers</varname>, <varname>TriggeredBy</varname>,
      <varname>PropagatesReloadTo</varname>, and <varname>RequiresMountsFor</varname> contain arrays which encode
      the dependencies and their inverse dependencies (where this applies) as configured in the unit file or
      determined automatically.</para>

      <para><varname>Description</varname> contains the human readable description string for the
      unit.</para>

      <para><varname>SourcePath</varname> contains the path to a configuration file this unit is
      automatically generated from in case it is not a native unit (in which case it contains the empty
      string). For example, all mount units generated from <filename>/etc/fstab</filename> have this field
      set to <filename>/etc/fstab</filename>.</para>

      <para><varname>Documentation</varname> contains a string array with URLs of documentation for this
      unit.</para>

      <para><varname>LoadState</varname> contains a state value that reflects whether the configuration file
      of this unit has been loaded. The following states are currently defined: <literal>loaded</literal>,
      <literal>error</literal>, and <literal>masked</literal>. <literal>loaded</literal> indicates that the
      configuration was successfully loaded. <literal>error</literal> indicates that the configuration failed
      to load. The <varname>LoadError</varname> field (see below) contains information about the cause of
      this failure. <literal>masked</literal> indicates that the unit is currently masked out (i.e. symlinked
      to <filename>/dev/null</filename> or empty). Note that the <varname>LoadState</varname> is fully
      orthogonal to the <varname>ActiveState</varname> (see below) as units without valid loaded
      configuration might be active (because configuration might have been reloaded at a time where a unit
      was already active).</para>

      <para><varname>ActiveState</varname> contains a state value that reflects whether the unit is currently
      active or not. The following states are currently defined: <literal>active</literal>,
      <literal>reloading</literal>, <literal>inactive</literal>, <literal>failed</literal>,
      <literal>activating</literal>, and <literal>deactivating</literal>. <literal>active</literal> indicates
      that unit is active (obviously...). <literal>reloading</literal> indicates that the unit is active and
      currently reloading its configuration. <literal>inactive</literal> indicates that it is inactive and
      the previous run was successful or no previous run has taken place yet. <literal>failed</literal>
      indicates that it is inactive and the previous run was not successful (more information about the
      reason for this is available on the unit type specific interfaces, for example for services in the
      <varname>Result</varname> property, see below). <literal>activating</literal> indicates that the unit
      has previously been inactive but is currently in the process of entering an active state. Conversely
      <literal>deactivating</literal> indicates that the unit is currently in the process of
      deactivation.</para>

      <para><varname>SubState</varname> encodes states of the same state machine that
      <varname>ActiveState</varname> covers, but knows more fine-grained states that are
      unit-type-specific. Where <varname>ActiveState</varname> only covers six high-level states,
      <varname>SubState</varname> covers possibly many more low-level unit-type-specific states that are
      mapped to the six high-level states. Note that multiple low-level states might map to the same
      high-level state, but not vice versa. Not all high-level states have low-level counterparts on all unit
      types. At this point the low-level states are not documented here, and are more likely to be extended
      later on than the common high-level states explained above.</para>

      <para><varname>FragmentPath</varname> contains the unit file path this unit was read from, if there is
      one (if not, it contains the empty string).</para>

      <para><varname>UnitFileState</varname> encodes the install state of the unit file of
      <varname>FragmentPath</varname>. It currently knows the following states: <literal>enabled</literal>,
      <literal>enabled-runtime</literal>, <literal>linked</literal>, <literal>linked-runtime</literal>,
      <literal>masked</literal>, <literal>masked-runtime</literal>, <literal>static</literal>,
      <literal>disabled</literal>, and <literal>invalid</literal>. <literal>enabled</literal> indicates that a
      unit file is permanently enabled. <literal>enable-runtime</literal> indicates the unit file is only
      temporarily enabled and will no longer be enabled after a reboot (that means, it is enabled via
      <filename>/run/</filename> symlinks, rather than <filename>/etc/</filename>). <literal>linked</literal>
      indicates that a unit is linked into <filename>/etc/</filename> permanently. <literal>linked-runtime</literal>
      indicates that a unit is linked into <filename>/run/</filename> temporarily (until the next
      reboot). <literal>masked</literal> indicates that the unit file is masked permanently.
      <literal>masked-runtime</literal> indicates that it is masked in <filename>/run/</filename> temporarily
      (until the next reboot). <literal>static</literal> indicates that the unit is statically enabled, i.e.
      always enabled and doesn't need to be enabled explicitly. <literal>invalid</literal> indicates that it
      could not be determined whether the unit file is enabled.</para>

      <para><varname>InactiveExitTimestamp</varname>, <varname>InactiveExitTimestampMonotonic</varname>,
      <varname>ActiveEnterTimestamp</varname>, <varname>ActiveEnterTimestampMonotonic</varname>,
      <varname>ActiveExitTimestamp</varname>, <varname>ActiveExitTimestampMonotonic</varname>,
      <varname>InactiveEnterTimestamp</varname>, and <varname>InactiveEnterTimestampMonotonic</varname>
      contain <constant>CLOCK_REALTIME</constant> and <constant>CLOCK_MONOTONIC</constant> 64-bit microsecond
      timestamps of the last time a unit left the inactive state, entered the active state, exited the active
      state, or entered an inactive state. These are the points in time where the unit transitioned
      <literal>inactive</literal>/<literal>failed</literal> → <literal>activating</literal>,
      <literal>activating</literal> → <literal>active</literal>, <literal>active</literal> →
      <literal>deactivating</literal>, and finally <literal>deactivating</literal> →
      <literal>inactive</literal>/<literal>failed</literal>. The fields are 0 in case such a transition has
      not yet been recorded on this boot.</para>

      <para><varname>CanStart</varname>, <varname>CanStop</varname>, and <varname>CanReload</varname> encode
      as booleans whether the unit supports the start, stop or reload operations. Even if a unit supports
      such an operation, the client might not necessary have the necessary privileges to execute them.</para>

      <para><varname>CanIsolate</varname> encodes as a boolean whether the unit may be started in isolation
      mode.</para>

      <para><varname>Job</varname> encodes the job ID and job object path of the job currently scheduled or
      executed for this unit, if there is any. If no job is scheduled or executed, the job id field will be
      0.</para>

      <para><varname>StopWhenUnneeded</varname>, <varname>RefuseManualStart</varname>,
      <varname>RefuseManualStop</varname>, <varname>AllowIsolate</varname>,
      <varname>DefaultDependencies</varname>, <varname>OnFailureIsolate</varname>,
      <varname>IgnoreOnIsolate</varname>, <varname>IgnoreOnSnapshot</varname> map directly to the
      corresponding configuration booleans in the unit file.</para>

      <para><varname>DefaultControlGroup</varname> contains the main control group of this unit as a
      string. This refers to a group in systemd's own <literal>name=systemd</literal> hierarchy, which
      systemd uses to watch and manipulate the unit and all its processes.</para>

      <para><varname>NeedDaemonReload</varname> is a boolean that indicates whether the configuration file
      this unit is loaded from (i.e. <varname>FragmentPath</varname> or <varname>SourcePath</varname>) has
      changed since the configuration was read and hence whether a configuration reload is recommended.
      </para>

      <para><varname>Markers</varname> is an array of string flags that can be set using
      <function>SetUnitProperties()</function> to indicate that the service should be reloaded or
      restarted. Currently known values are <literal>needs-restart</literal> and
      <literal>needs-reload</literal>. Package scripts may use the first to mark units for later restart when
      a new version of the package is installed. Configuration management scripts may use the second to mark
      units for a later reload when the configuration is adjusted. Those flags are not set by the manager,
      except to unset as appropriate when when the unit is stopped, restarted, or reloaded.</para>

      <para><varname>JobTimeoutUSec</varname> maps directly to the corresponding configuration setting in the
      unit file.</para>

      <para><varname>ConditionTimestamp</varname> and <varname>ConditionTimestampMonotonic</varname> contain
      the <constant>CLOCK_REALTIME</constant>/<constant>CLOCK_MONOTONIC</constant> microsecond timestamps of
      the last time the configured conditions of the unit have been checked or 0 if they have never been
      checked. Conditions are checked when a unit is requested to start.</para>

      <para><varname>ConditionResult</varname> contains the condition result of the last time the configured
      conditions of this unit were checked. </para>

      <para><varname>Conditions</varname> contains all configured conditions of the unit. For each condition,
      five fields are given: condition type (e.g. <varname>ConditionPathExists</varname>), whether the
      condition is a trigger condition, whether the condition is reversed, the right hand side of the
      condition (e.g. the path in case of <varname>ConditionPathExists</varname>), and the status. The status
      can be 0, in which case the condition hasn't been checked yet, a positive value, in which case the
      condition passed, or a negative value, in which case the condition failed. Currently only 0, +1, and -1
      are used, but additional values may be used in the future, retaining the meaning of
      zero/positive/negative values.</para>

      <para><varname>LoadError</varname> contains a pair of strings. If the unit failed to load (as encoded
      in <varname>LoadState</varname>, see above), then this will include a D-Bus error pair consisting of
      the error ID and an explanatory human readable string of what happened. If it loaded successfully, this
      will be a pair of empty strings.</para>

      <para><varname>Transient</varname> contains a boolean that indicates whether the unit was created as a
      transient unit (i.e. via <function>CreateTransientUnit()</function> on the manager object).</para>
    </refsect2>

    <refsect2>
      <title>Security</title>

      <para>Similarly to methods on the <interfacename>Manager</interfacename> object, read-only access is
      allowed for everyone. All operations are allowed for clients with the
      <constant>CAP_SYS_ADMIN</constant> capability or when the
      <interfacename>org.freedesktop.systemd1.manage-units</interfacename> privilege is granted by
      polkit.</para>
    </refsect2>
  </refsect1>

  <refsect1>
    <title>Service Unit Objects</title>

    <para>All service unit objects implement the
    <interfacename>org.freedesktop.systemd1.Service</interfacename> interface (described here) in addition to
    the generic <interfacename>org.freedesktop.systemd1.Unit</interfacename> interface (see above).</para>

    <programlisting executable="systemd" node="/org/freedesktop/systemd1/unit/avahi_2ddaemon_2eservice" interface="org.freedesktop.systemd1.Service">
node /org/freedesktop/systemd1/unit/avahi_2ddaemon_2eservice {
  interface org.freedesktop.systemd1.Service {
    methods:
      BindMount(in  s source,
                in  s destination,
                in  b read_only,
                in  b mkdir);
      MountImage(in  s source,
                 in  s destination,
                 in  b read_only,
                 in  b mkdir,
                 in  a(ss) options);
      GetProcesses(out a(sus) processes);
      AttachProcesses(in  s subcgroup,
                      in  au pids);
    properties:
      @org.freedesktop.DBus.Property.EmitsChangedSignal("const")
      readonly s Type = '...';
      @org.freedesktop.DBus.Property.EmitsChangedSignal("const")
      readonly s Restart = '...';
      @org.freedesktop.DBus.Property.EmitsChangedSignal("const")
      readonly s PIDFile = '...';
      @org.freedesktop.DBus.Property.EmitsChangedSignal("const")
      readonly s NotifyAccess = '...';
      @org.freedesktop.DBus.Property.EmitsChangedSignal("const")
      readonly t RestartUSec = ...;
      @org.freedesktop.DBus.Property.EmitsChangedSignal("const")
      readonly t TimeoutStartUSec = ...;
      @org.freedesktop.DBus.Property.EmitsChangedSignal("const")
      readonly t TimeoutStopUSec = ...;
      @org.freedesktop.DBus.Property.EmitsChangedSignal("false")
      readonly t TimeoutAbortUSec = ...;
      @org.freedesktop.DBus.Property.EmitsChangedSignal("const")
      readonly s TimeoutStartFailureMode = '...';
      @org.freedesktop.DBus.Property.EmitsChangedSignal("const")
      readonly s TimeoutStopFailureMode = '...';
      @org.freedesktop.DBus.Property.EmitsChangedSignal("const")
      readonly t RuntimeMaxUSec = ...;
      @org.freedesktop.DBus.Property.EmitsChangedSignal("false")
      readonly t WatchdogUSec = ...;
      @org.freedesktop.DBus.Property.EmitsChangedSignal("false")
      readonly t WatchdogTimestamp = ...;
      @org.freedesktop.DBus.Property.EmitsChangedSignal("false")
      readonly t WatchdogTimestampMonotonic = ...;
      @org.freedesktop.DBus.Property.EmitsChangedSignal("const")
      readonly b RootDirectoryStartOnly = ...;
      @org.freedesktop.DBus.Property.EmitsChangedSignal("const")
      readonly b RemainAfterExit = ...;
      @org.freedesktop.DBus.Property.EmitsChangedSignal("const")
      readonly b GuessMainPID = ...;
      @org.freedesktop.DBus.Property.EmitsChangedSignal("const")
      readonly (aiai) RestartPreventExitStatus = ...;
      @org.freedesktop.DBus.Property.EmitsChangedSignal("const")
      readonly (aiai) RestartForceExitStatus = ...;
      @org.freedesktop.DBus.Property.EmitsChangedSignal("const")
      readonly (aiai) SuccessExitStatus = ...;
      readonly u MainPID = ...;
      readonly u ControlPID = ...;
      @org.freedesktop.DBus.Property.EmitsChangedSignal("const")
      readonly s BusName = '...';
      @org.freedesktop.DBus.Property.EmitsChangedSignal("const")
      readonly u FileDescriptorStoreMax = ...;
      @org.freedesktop.DBus.Property.EmitsChangedSignal("false")
      readonly u NFileDescriptorStore = ...;
      readonly s StatusText = '...';
      readonly i StatusErrno = ...;
      readonly s Result = '...';
      readonly s ReloadResult = '...';
      readonly s CleanResult = '...';
      @org.freedesktop.DBus.Property.EmitsChangedSignal("const")
      readonly s USBFunctionDescriptors = '...';
      @org.freedesktop.DBus.Property.EmitsChangedSignal("const")
      readonly s USBFunctionStrings = '...';
      readonly u UID = ...;
      readonly u GID = ...;
      readonly u NRestarts = ...;
      @org.freedesktop.DBus.Property.EmitsChangedSignal("const")
      readonly s OOMPolicy = '...';
      readonly t ExecMainStartTimestamp = ...;
      readonly t ExecMainStartTimestampMonotonic = ...;
      readonly t ExecMainExitTimestamp = ...;
      readonly t ExecMainExitTimestampMonotonic = ...;
      readonly u ExecMainPID = ...;
      readonly i ExecMainCode = ...;
      readonly i ExecMainStatus = ...;
      @org.freedesktop.DBus.Property.EmitsChangedSignal("invalidates")
      readonly a(sasbttttuii) ExecCondition = [...];
      @org.freedesktop.DBus.Property.EmitsChangedSignal("invalidates")
      readonly a(sasasttttuii) ExecConditionEx = [...];
      @org.freedesktop.DBus.Property.EmitsChangedSignal("invalidates")
      readonly a(sasbttttuii) ExecStartPre = [...];
      @org.freedesktop.DBus.Property.EmitsChangedSignal("invalidates")
      readonly a(sasasttttuii) ExecStartPreEx = [...];
      @org.freedesktop.DBus.Property.EmitsChangedSignal("invalidates")
      readonly a(sasbttttuii) ExecStart = [...];
      @org.freedesktop.DBus.Property.EmitsChangedSignal("invalidates")
      readonly a(sasasttttuii) ExecStartEx = [...];
      @org.freedesktop.DBus.Property.EmitsChangedSignal("invalidates")
      readonly a(sasbttttuii) ExecStartPost = [...];
      @org.freedesktop.DBus.Property.EmitsChangedSignal("invalidates")
      readonly a(sasasttttuii) ExecStartPostEx = [...];
      @org.freedesktop.DBus.Property.EmitsChangedSignal("invalidates")
      readonly a(sasbttttuii) ExecReload = [...];
      @org.freedesktop.DBus.Property.EmitsChangedSignal("invalidates")
      readonly a(sasasttttuii) ExecReloadEx = [...];
      @org.freedesktop.DBus.Property.EmitsChangedSignal("invalidates")
      readonly a(sasbttttuii) ExecStop = [...];
      @org.freedesktop.DBus.Property.EmitsChangedSignal("invalidates")
      readonly a(sasasttttuii) ExecStopEx = [...];
      @org.freedesktop.DBus.Property.EmitsChangedSignal("invalidates")
      readonly a(sasbttttuii) ExecStopPost = [...];
      @org.freedesktop.DBus.Property.EmitsChangedSignal("invalidates")
      readonly a(sasasttttuii) ExecStopPostEx = [...];
      @org.freedesktop.DBus.Property.EmitsChangedSignal("false")
      readonly s Slice = '...';
      @org.freedesktop.DBus.Property.EmitsChangedSignal("false")
      readonly s ControlGroup = '...';
      @org.freedesktop.DBus.Property.EmitsChangedSignal("false")
      readonly t MemoryCurrent = ...;
      @org.freedesktop.DBus.Property.EmitsChangedSignal("false")
      readonly t MemoryAvailable = ...;
      @org.freedesktop.DBus.Property.EmitsChangedSignal("false")
      readonly t CPUUsageNSec = ...;
      @org.freedesktop.DBus.Property.EmitsChangedSignal("false")
      readonly ay EffectiveCPUs = [...];
      @org.freedesktop.DBus.Property.EmitsChangedSignal("false")
      readonly ay EffectiveMemoryNodes = [...];
      @org.freedesktop.DBus.Property.EmitsChangedSignal("false")
      readonly t TasksCurrent = ...;
      @org.freedesktop.DBus.Property.EmitsChangedSignal("false")
      readonly t IPIngressBytes = ...;
      @org.freedesktop.DBus.Property.EmitsChangedSignal("false")
      readonly t IPIngressPackets = ...;
      @org.freedesktop.DBus.Property.EmitsChangedSignal("false")
      readonly t IPEgressBytes = ...;
      @org.freedesktop.DBus.Property.EmitsChangedSignal("false")
      readonly t IPEgressPackets = ...;
      @org.freedesktop.DBus.Property.EmitsChangedSignal("false")
      readonly t IOReadBytes = ...;
      @org.freedesktop.DBus.Property.EmitsChangedSignal("false")
      readonly t IOReadOperations = ...;
      @org.freedesktop.DBus.Property.EmitsChangedSignal("false")
      readonly t IOWriteBytes = ...;
      @org.freedesktop.DBus.Property.EmitsChangedSignal("false")
      readonly t IOWriteOperations = ...;
      @org.freedesktop.DBus.Property.EmitsChangedSignal("false")
      readonly b Delegate = ...;
      @org.freedesktop.DBus.Property.EmitsChangedSignal("false")
      readonly as DelegateControllers = ['...', ...];
      @org.freedesktop.DBus.Property.EmitsChangedSignal("false")
      readonly b CPUAccounting = ...;
      @org.freedesktop.DBus.Property.EmitsChangedSignal("false")
      readonly t CPUWeight = ...;
      @org.freedesktop.DBus.Property.EmitsChangedSignal("false")
      readonly t StartupCPUWeight = ...;
      @org.freedesktop.DBus.Property.EmitsChangedSignal("false")
      readonly t CPUShares = ...;
      @org.freedesktop.DBus.Property.EmitsChangedSignal("false")
      readonly t StartupCPUShares = ...;
      @org.freedesktop.DBus.Property.EmitsChangedSignal("false")
      readonly t CPUQuotaPerSecUSec = ...;
      @org.freedesktop.DBus.Property.EmitsChangedSignal("false")
      readonly t CPUQuotaPeriodUSec = ...;
      @org.freedesktop.DBus.Property.EmitsChangedSignal("false")
      readonly ay AllowedCPUs = [...];
      @org.freedesktop.DBus.Property.EmitsChangedSignal("false")
      readonly ay AllowedMemoryNodes = [...];
      @org.freedesktop.DBus.Property.EmitsChangedSignal("false")
      readonly b IOAccounting = ...;
      @org.freedesktop.DBus.Property.EmitsChangedSignal("false")
      readonly t IOWeight = ...;
      @org.freedesktop.DBus.Property.EmitsChangedSignal("false")
      readonly t StartupIOWeight = ...;
      @org.freedesktop.DBus.Property.EmitsChangedSignal("false")
      readonly a(st) IODeviceWeight = [...];
      @org.freedesktop.DBus.Property.EmitsChangedSignal("false")
      readonly a(st) IOReadBandwidthMax = [...];
      @org.freedesktop.DBus.Property.EmitsChangedSignal("false")
      readonly a(st) IOWriteBandwidthMax = [...];
      @org.freedesktop.DBus.Property.EmitsChangedSignal("false")
      readonly a(st) IOReadIOPSMax = [...];
      @org.freedesktop.DBus.Property.EmitsChangedSignal("false")
      readonly a(st) IOWriteIOPSMax = [...];
      @org.freedesktop.DBus.Property.EmitsChangedSignal("false")
      readonly a(st) IODeviceLatencyTargetUSec = [...];
      @org.freedesktop.DBus.Property.EmitsChangedSignal("false")
      readonly b BlockIOAccounting = ...;
      @org.freedesktop.DBus.Property.EmitsChangedSignal("false")
      readonly t BlockIOWeight = ...;
      @org.freedesktop.DBus.Property.EmitsChangedSignal("false")
      readonly t StartupBlockIOWeight = ...;
      @org.freedesktop.DBus.Property.EmitsChangedSignal("false")
      readonly a(st) BlockIODeviceWeight = [...];
      @org.freedesktop.DBus.Property.EmitsChangedSignal("false")
      readonly a(st) BlockIOReadBandwidth = [...];
      @org.freedesktop.DBus.Property.EmitsChangedSignal("false")
      readonly a(st) BlockIOWriteBandwidth = [...];
      @org.freedesktop.DBus.Property.EmitsChangedSignal("false")
      readonly b MemoryAccounting = ...;
      @org.freedesktop.DBus.Property.EmitsChangedSignal("false")
      readonly t DefaultMemoryLow = ...;
      @org.freedesktop.DBus.Property.EmitsChangedSignal("false")
      readonly t DefaultMemoryMin = ...;
      @org.freedesktop.DBus.Property.EmitsChangedSignal("false")
      readonly t MemoryMin = ...;
      @org.freedesktop.DBus.Property.EmitsChangedSignal("false")
      readonly t MemoryLow = ...;
      @org.freedesktop.DBus.Property.EmitsChangedSignal("false")
      readonly t MemoryHigh = ...;
      @org.freedesktop.DBus.Property.EmitsChangedSignal("false")
      readonly t MemoryMax = ...;
      @org.freedesktop.DBus.Property.EmitsChangedSignal("false")
      readonly t MemorySwapMax = ...;
      @org.freedesktop.DBus.Property.EmitsChangedSignal("false")
      readonly t MemoryLimit = ...;
      @org.freedesktop.DBus.Property.EmitsChangedSignal("false")
      readonly s DevicePolicy = '...';
      @org.freedesktop.DBus.Property.EmitsChangedSignal("false")
      readonly a(ss) DeviceAllow = [...];
      @org.freedesktop.DBus.Property.EmitsChangedSignal("false")
      readonly b TasksAccounting = ...;
      @org.freedesktop.DBus.Property.EmitsChangedSignal("false")
      readonly t TasksMax = ...;
      @org.freedesktop.DBus.Property.EmitsChangedSignal("false")
      readonly b IPAccounting = ...;
      @org.freedesktop.DBus.Property.EmitsChangedSignal("false")
      readonly a(iayu) IPAddressAllow = [...];
      @org.freedesktop.DBus.Property.EmitsChangedSignal("false")
      readonly a(iayu) IPAddressDeny = [...];
      @org.freedesktop.DBus.Property.EmitsChangedSignal("false")
      readonly as IPIngressFilterPath = ['...', ...];
      @org.freedesktop.DBus.Property.EmitsChangedSignal("false")
      readonly as IPEgressFilterPath = ['...', ...];
      @org.freedesktop.DBus.Property.EmitsChangedSignal("false")
      readonly as DisableControllers = ['...', ...];
      @org.freedesktop.DBus.Property.EmitsChangedSignal("false")
      readonly s ManagedOOMSwap = '...';
      @org.freedesktop.DBus.Property.EmitsChangedSignal("false")
      readonly s ManagedOOMMemoryPressure = '...';
      @org.freedesktop.DBus.Property.EmitsChangedSignal("false")
      readonly u ManagedOOMMemoryPressureLimit = ...;
      @org.freedesktop.DBus.Property.EmitsChangedSignal("false")
      readonly s ManagedOOMPreference = '...';
      @org.freedesktop.DBus.Property.EmitsChangedSignal("false")
      readonly a(ss) BPFProgram = [...];
      @org.freedesktop.DBus.Property.EmitsChangedSignal("false")
      readonly a(iiqq) SocketBindAllow = [...];
      @org.freedesktop.DBus.Property.EmitsChangedSignal("false")
      readonly a(iiqq) SocketBindDeny = [...];
      @org.freedesktop.DBus.Property.EmitsChangedSignal("const")
      readonly as Environment = ['...', ...];
      @org.freedesktop.DBus.Property.EmitsChangedSignal("const")
      readonly a(sb) EnvironmentFiles = [...];
      @org.freedesktop.DBus.Property.EmitsChangedSignal("const")
      readonly as PassEnvironment = ['...', ...];
      @org.freedesktop.DBus.Property.EmitsChangedSignal("const")
      readonly as UnsetEnvironment = ['...', ...];
      @org.freedesktop.DBus.Property.EmitsChangedSignal("const")
      readonly u UMask = ...;
      @org.freedesktop.DBus.Property.EmitsChangedSignal("const")
      readonly t LimitCPU = ...;
      @org.freedesktop.DBus.Property.EmitsChangedSignal("const")
      readonly t LimitCPUSoft = ...;
      @org.freedesktop.DBus.Property.EmitsChangedSignal("const")
      readonly t LimitFSIZE = ...;
      @org.freedesktop.DBus.Property.EmitsChangedSignal("const")
      readonly t LimitFSIZESoft = ...;
      @org.freedesktop.DBus.Property.EmitsChangedSignal("const")
      readonly t LimitDATA = ...;
      @org.freedesktop.DBus.Property.EmitsChangedSignal("const")
      readonly t LimitDATASoft = ...;
      @org.freedesktop.DBus.Property.EmitsChangedSignal("const")
      readonly t LimitSTACK = ...;
      @org.freedesktop.DBus.Property.EmitsChangedSignal("const")
      readonly t LimitSTACKSoft = ...;
      @org.freedesktop.DBus.Property.EmitsChangedSignal("const")
      readonly t LimitCORE = ...;
      @org.freedesktop.DBus.Property.EmitsChangedSignal("const")
      readonly t LimitCORESoft = ...;
      @org.freedesktop.DBus.Property.EmitsChangedSignal("const")
      readonly t LimitRSS = ...;
      @org.freedesktop.DBus.Property.EmitsChangedSignal("const")
      readonly t LimitRSSSoft = ...;
      @org.freedesktop.DBus.Property.EmitsChangedSignal("const")
      readonly t LimitNOFILE = ...;
      @org.freedesktop.DBus.Property.EmitsChangedSignal("const")
      readonly t LimitNOFILESoft = ...;
      @org.freedesktop.DBus.Property.EmitsChangedSignal("const")
      readonly t LimitAS = ...;
      @org.freedesktop.DBus.Property.EmitsChangedSignal("const")
      readonly t LimitASSoft = ...;
      @org.freedesktop.DBus.Property.EmitsChangedSignal("const")
      readonly t LimitNPROC = ...;
      @org.freedesktop.DBus.Property.EmitsChangedSignal("const")
      readonly t LimitNPROCSoft = ...;
      @org.freedesktop.DBus.Property.EmitsChangedSignal("const")
      readonly t LimitMEMLOCK = ...;
      @org.freedesktop.DBus.Property.EmitsChangedSignal("const")
      readonly t LimitMEMLOCKSoft = ...;
      @org.freedesktop.DBus.Property.EmitsChangedSignal("const")
      readonly t LimitLOCKS = ...;
      @org.freedesktop.DBus.Property.EmitsChangedSignal("const")
      readonly t LimitLOCKSSoft = ...;
      @org.freedesktop.DBus.Property.EmitsChangedSignal("const")
      readonly t LimitSIGPENDING = ...;
      @org.freedesktop.DBus.Property.EmitsChangedSignal("const")
      readonly t LimitSIGPENDINGSoft = ...;
      @org.freedesktop.DBus.Property.EmitsChangedSignal("const")
      readonly t LimitMSGQUEUE = ...;
      @org.freedesktop.DBus.Property.EmitsChangedSignal("const")
      readonly t LimitMSGQUEUESoft = ...;
      @org.freedesktop.DBus.Property.EmitsChangedSignal("const")
      readonly t LimitNICE = ...;
      @org.freedesktop.DBus.Property.EmitsChangedSignal("const")
      readonly t LimitNICESoft = ...;
      @org.freedesktop.DBus.Property.EmitsChangedSignal("const")
      readonly t LimitRTPRIO = ...;
      @org.freedesktop.DBus.Property.EmitsChangedSignal("const")
      readonly t LimitRTPRIOSoft = ...;
      @org.freedesktop.DBus.Property.EmitsChangedSignal("const")
      readonly t LimitRTTIME = ...;
      @org.freedesktop.DBus.Property.EmitsChangedSignal("const")
      readonly t LimitRTTIMESoft = ...;
      @org.freedesktop.DBus.Property.EmitsChangedSignal("const")
      readonly s WorkingDirectory = '...';
      @org.freedesktop.DBus.Property.EmitsChangedSignal("const")
      readonly s RootDirectory = '...';
      @org.freedesktop.DBus.Property.EmitsChangedSignal("const")
      readonly s RootImage = '...';
      @org.freedesktop.DBus.Property.EmitsChangedSignal("const")
      readonly a(ss) RootImageOptions = [...];
      @org.freedesktop.DBus.Property.EmitsChangedSignal("const")
      readonly ay RootHash = [...];
      @org.freedesktop.DBus.Property.EmitsChangedSignal("const")
      readonly s RootHashPath = '...';
      @org.freedesktop.DBus.Property.EmitsChangedSignal("const")
      readonly ay RootHashSignature = [...];
      @org.freedesktop.DBus.Property.EmitsChangedSignal("const")
      readonly s RootHashSignaturePath = '...';
      @org.freedesktop.DBus.Property.EmitsChangedSignal("const")
      readonly s RootVerity = '...';
      @org.freedesktop.DBus.Property.EmitsChangedSignal("const")
      readonly a(sba(ss)) ExtensionImages = [...];
      @org.freedesktop.DBus.Property.EmitsChangedSignal("const")
      readonly a(ssba(ss)) MountImages = [...];
      @org.freedesktop.DBus.Property.EmitsChangedSignal("const")
      readonly i OOMScoreAdjust = ...;
      @org.freedesktop.DBus.Property.EmitsChangedSignal("const")
      readonly t CoredumpFilter = ...;
      @org.freedesktop.DBus.Property.EmitsChangedSignal("const")
      readonly i Nice = ...;
      @org.freedesktop.DBus.Property.EmitsChangedSignal("const")
      readonly i IOSchedulingClass = ...;
      @org.freedesktop.DBus.Property.EmitsChangedSignal("const")
      readonly i IOSchedulingPriority = ...;
      @org.freedesktop.DBus.Property.EmitsChangedSignal("const")
      readonly i CPUSchedulingPolicy = ...;
      @org.freedesktop.DBus.Property.EmitsChangedSignal("const")
      readonly i CPUSchedulingPriority = ...;
      @org.freedesktop.DBus.Property.EmitsChangedSignal("const")
      readonly ay CPUAffinity = [...];
      @org.freedesktop.DBus.Property.EmitsChangedSignal("const")
      readonly b CPUAffinityFromNUMA = ...;
      @org.freedesktop.DBus.Property.EmitsChangedSignal("const")
      readonly i NUMAPolicy = ...;
      @org.freedesktop.DBus.Property.EmitsChangedSignal("const")
      readonly ay NUMAMask = [...];
      @org.freedesktop.DBus.Property.EmitsChangedSignal("const")
      readonly t TimerSlackNSec = ...;
      @org.freedesktop.DBus.Property.EmitsChangedSignal("const")
      readonly b CPUSchedulingResetOnFork = ...;
      @org.freedesktop.DBus.Property.EmitsChangedSignal("const")
      readonly b NonBlocking = ...;
      @org.freedesktop.DBus.Property.EmitsChangedSignal("const")
      readonly s StandardInput = '...';
      @org.freedesktop.DBus.Property.EmitsChangedSignal("const")
      readonly s StandardInputFileDescriptorName = '...';
      @org.freedesktop.DBus.Property.EmitsChangedSignal("const")
      readonly ay StandardInputData = [...];
      @org.freedesktop.DBus.Property.EmitsChangedSignal("const")
      readonly s StandardOutput = '...';
      @org.freedesktop.DBus.Property.EmitsChangedSignal("const")
      readonly s StandardOutputFileDescriptorName = '...';
      @org.freedesktop.DBus.Property.EmitsChangedSignal("const")
      readonly s StandardError = '...';
      @org.freedesktop.DBus.Property.EmitsChangedSignal("const")
      readonly s StandardErrorFileDescriptorName = '...';
      @org.freedesktop.DBus.Property.EmitsChangedSignal("const")
      readonly s TTYPath = '...';
      @org.freedesktop.DBus.Property.EmitsChangedSignal("const")
      readonly b TTYReset = ...;
      @org.freedesktop.DBus.Property.EmitsChangedSignal("const")
      readonly b TTYVHangup = ...;
      @org.freedesktop.DBus.Property.EmitsChangedSignal("const")
      readonly b TTYVTDisallocate = ...;
      @org.freedesktop.DBus.Property.EmitsChangedSignal("const")
      readonly i SyslogPriority = ...;
      @org.freedesktop.DBus.Property.EmitsChangedSignal("const")
      readonly s SyslogIdentifier = '...';
      @org.freedesktop.DBus.Property.EmitsChangedSignal("const")
      readonly b SyslogLevelPrefix = ...;
      @org.freedesktop.DBus.Property.EmitsChangedSignal("const")
      readonly i SyslogLevel = ...;
      @org.freedesktop.DBus.Property.EmitsChangedSignal("const")
      readonly i SyslogFacility = ...;
      @org.freedesktop.DBus.Property.EmitsChangedSignal("const")
      readonly i LogLevelMax = ...;
      @org.freedesktop.DBus.Property.EmitsChangedSignal("const")
      readonly t LogRateLimitIntervalUSec = ...;
      @org.freedesktop.DBus.Property.EmitsChangedSignal("const")
      readonly u LogRateLimitBurst = ...;
      @org.freedesktop.DBus.Property.EmitsChangedSignal("const")
      readonly aay LogExtraFields = [[...], ...];
      @org.freedesktop.DBus.Property.EmitsChangedSignal("const")
      readonly s LogNamespace = '...';
      @org.freedesktop.DBus.Property.EmitsChangedSignal("const")
      readonly i SecureBits = ...;
      @org.freedesktop.DBus.Property.EmitsChangedSignal("const")
      readonly t CapabilityBoundingSet = ...;
      @org.freedesktop.DBus.Property.EmitsChangedSignal("const")
      readonly t AmbientCapabilities = ...;
      @org.freedesktop.DBus.Property.EmitsChangedSignal("const")
      readonly s User = '...';
      @org.freedesktop.DBus.Property.EmitsChangedSignal("const")
      readonly s Group = '...';
      @org.freedesktop.DBus.Property.EmitsChangedSignal("const")
      readonly b DynamicUser = ...;
      @org.freedesktop.DBus.Property.EmitsChangedSignal("const")
      readonly b RemoveIPC = ...;
      @org.freedesktop.DBus.Property.EmitsChangedSignal("const")
      readonly a(say) SetCredential = [...];
      @org.freedesktop.DBus.Property.EmitsChangedSignal("const")
      readonly a(ss) LoadCredential = [...];
      @org.freedesktop.DBus.Property.EmitsChangedSignal("const")
      readonly as SupplementaryGroups = ['...', ...];
      @org.freedesktop.DBus.Property.EmitsChangedSignal("const")
      readonly s PAMName = '...';
      @org.freedesktop.DBus.Property.EmitsChangedSignal("const")
      readonly as ReadWritePaths = ['...', ...];
      @org.freedesktop.DBus.Property.EmitsChangedSignal("const")
      readonly as ReadOnlyPaths = ['...', ...];
      @org.freedesktop.DBus.Property.EmitsChangedSignal("const")
      readonly as InaccessiblePaths = ['...', ...];
      @org.freedesktop.DBus.Property.EmitsChangedSignal("const")
      readonly as ExecPaths = ['...', ...];
      @org.freedesktop.DBus.Property.EmitsChangedSignal("const")
      readonly as NoExecPaths = ['...', ...];
      @org.freedesktop.DBus.Property.EmitsChangedSignal("const")
      readonly t MountFlags = ...;
      @org.freedesktop.DBus.Property.EmitsChangedSignal("const")
      readonly b PrivateTmp = ...;
      @org.freedesktop.DBus.Property.EmitsChangedSignal("const")
      readonly b PrivateDevices = ...;
      @org.freedesktop.DBus.Property.EmitsChangedSignal("const")
      readonly b ProtectClock = ...;
      @org.freedesktop.DBus.Property.EmitsChangedSignal("const")
      readonly b ProtectKernelTunables = ...;
      @org.freedesktop.DBus.Property.EmitsChangedSignal("const")
      readonly b ProtectKernelModules = ...;
      @org.freedesktop.DBus.Property.EmitsChangedSignal("const")
      readonly b ProtectKernelLogs = ...;
      @org.freedesktop.DBus.Property.EmitsChangedSignal("const")
      readonly b ProtectControlGroups = ...;
      @org.freedesktop.DBus.Property.EmitsChangedSignal("const")
      readonly b PrivateNetwork = ...;
      @org.freedesktop.DBus.Property.EmitsChangedSignal("const")
      readonly b PrivateUsers = ...;
      @org.freedesktop.DBus.Property.EmitsChangedSignal("const")
      readonly b PrivateMounts = ...;
      @org.freedesktop.DBus.Property.EmitsChangedSignal("const")
      readonly b PrivateIPC = ...;
      @org.freedesktop.DBus.Property.EmitsChangedSignal("const")
      readonly s ProtectHome = '...';
      @org.freedesktop.DBus.Property.EmitsChangedSignal("const")
      readonly s ProtectSystem = '...';
      @org.freedesktop.DBus.Property.EmitsChangedSignal("const")
      readonly b SameProcessGroup = ...;
      @org.freedesktop.DBus.Property.EmitsChangedSignal("const")
      readonly s UtmpIdentifier = '...';
      @org.freedesktop.DBus.Property.EmitsChangedSignal("const")
      readonly s UtmpMode = '...';
      @org.freedesktop.DBus.Property.EmitsChangedSignal("const")
      readonly (bs) SELinuxContext = ...;
      @org.freedesktop.DBus.Property.EmitsChangedSignal("const")
      readonly (bs) AppArmorProfile = ...;
      @org.freedesktop.DBus.Property.EmitsChangedSignal("const")
      readonly (bs) SmackProcessLabel = ...;
      @org.freedesktop.DBus.Property.EmitsChangedSignal("const")
      readonly b IgnoreSIGPIPE = ...;
      @org.freedesktop.DBus.Property.EmitsChangedSignal("const")
      readonly b NoNewPrivileges = ...;
      @org.freedesktop.DBus.Property.EmitsChangedSignal("const")
      readonly (bas) SystemCallFilter = ...;
      @org.freedesktop.DBus.Property.EmitsChangedSignal("const")
      readonly as SystemCallArchitectures = ['...', ...];
      @org.freedesktop.DBus.Property.EmitsChangedSignal("const")
      readonly i SystemCallErrorNumber = ...;
      @org.freedesktop.DBus.Property.EmitsChangedSignal("const")
      readonly (bas) SystemCallLog = ...;
      @org.freedesktop.DBus.Property.EmitsChangedSignal("const")
      readonly s Personality = '...';
      @org.freedesktop.DBus.Property.EmitsChangedSignal("const")
      readonly b LockPersonality = ...;
      @org.freedesktop.DBus.Property.EmitsChangedSignal("const")
      readonly (bas) RestrictAddressFamilies = ...;
      @org.freedesktop.DBus.Property.EmitsChangedSignal("const")
      readonly s RuntimeDirectoryPreserve = '...';
      @org.freedesktop.DBus.Property.EmitsChangedSignal("const")
      readonly u RuntimeDirectoryMode = ...;
      @org.freedesktop.DBus.Property.EmitsChangedSignal("const")
      readonly as RuntimeDirectory = ['...', ...];
      @org.freedesktop.DBus.Property.EmitsChangedSignal("const")
      readonly u StateDirectoryMode = ...;
      @org.freedesktop.DBus.Property.EmitsChangedSignal("const")
      readonly as StateDirectory = ['...', ...];
      @org.freedesktop.DBus.Property.EmitsChangedSignal("const")
      readonly u CacheDirectoryMode = ...;
      @org.freedesktop.DBus.Property.EmitsChangedSignal("const")
      readonly as CacheDirectory = ['...', ...];
      @org.freedesktop.DBus.Property.EmitsChangedSignal("const")
      readonly u LogsDirectoryMode = ...;
      @org.freedesktop.DBus.Property.EmitsChangedSignal("const")
      readonly as LogsDirectory = ['...', ...];
      @org.freedesktop.DBus.Property.EmitsChangedSignal("const")
      readonly u ConfigurationDirectoryMode = ...;
      @org.freedesktop.DBus.Property.EmitsChangedSignal("const")
      readonly as ConfigurationDirectory = ['...', ...];
      @org.freedesktop.DBus.Property.EmitsChangedSignal("const")
      readonly t TimeoutCleanUSec = ...;
      @org.freedesktop.DBus.Property.EmitsChangedSignal("const")
      readonly b MemoryDenyWriteExecute = ...;
      @org.freedesktop.DBus.Property.EmitsChangedSignal("const")
      readonly b RestrictRealtime = ...;
      @org.freedesktop.DBus.Property.EmitsChangedSignal("const")
      readonly b RestrictSUIDSGID = ...;
      @org.freedesktop.DBus.Property.EmitsChangedSignal("const")
      readonly t RestrictNamespaces = ...;
      @org.freedesktop.DBus.Property.EmitsChangedSignal("const")
      readonly a(ssbt) BindPaths = [...];
      @org.freedesktop.DBus.Property.EmitsChangedSignal("const")
      readonly a(ssbt) BindReadOnlyPaths = [...];
      @org.freedesktop.DBus.Property.EmitsChangedSignal("const")
      readonly a(ss) TemporaryFileSystem = [...];
      @org.freedesktop.DBus.Property.EmitsChangedSignal("const")
      readonly b MountAPIVFS = ...;
      @org.freedesktop.DBus.Property.EmitsChangedSignal("const")
      readonly s KeyringMode = '...';
      @org.freedesktop.DBus.Property.EmitsChangedSignal("const")
      readonly s ProtectProc = '...';
      @org.freedesktop.DBus.Property.EmitsChangedSignal("const")
      readonly s ProcSubset = '...';
      @org.freedesktop.DBus.Property.EmitsChangedSignal("const")
      readonly b ProtectHostname = ...;
      @org.freedesktop.DBus.Property.EmitsChangedSignal("const")
      readonly s NetworkNamespacePath = '...';
      @org.freedesktop.DBus.Property.EmitsChangedSignal("const")
      readonly s IPCNamespacePath = '...';
      @org.freedesktop.DBus.Property.EmitsChangedSignal("const")
      readonly s KillMode = '...';
      @org.freedesktop.DBus.Property.EmitsChangedSignal("const")
      readonly i KillSignal = ...;
      @org.freedesktop.DBus.Property.EmitsChangedSignal("const")
      readonly i RestartKillSignal = ...;
      @org.freedesktop.DBus.Property.EmitsChangedSignal("const")
      readonly i FinalKillSignal = ...;
      @org.freedesktop.DBus.Property.EmitsChangedSignal("const")
      readonly b SendSIGKILL = ...;
      @org.freedesktop.DBus.Property.EmitsChangedSignal("const")
      readonly b SendSIGHUP = ...;
      @org.freedesktop.DBus.Property.EmitsChangedSignal("const")
      readonly i WatchdogSignal = ...;
  };
  interface org.freedesktop.DBus.Peer { ... };
  interface org.freedesktop.DBus.Introspectable { ... };
  interface org.freedesktop.DBus.Properties { ... };
  interface org.freedesktop.systemd1.Unit { ... };
};
    </programlisting>

    <!--method GetProcesses is not documented!-->

    <!--method AttachProcesses is not documented!-->

    <!--property Type is not documented!-->

    <!--property Restart is not documented!-->

    <!--property PIDFile is not documented!-->

    <!--property NotifyAccess is not documented!-->

    <!--property RestartUSec is not documented!-->

    <!--property TimeoutStartFailureMode is not documented!-->

    <!--property TimeoutStopFailureMode is not documented!-->

    <!--property RuntimeMaxUSec is not documented!-->

    <!--property WatchdogUSec is not documented!-->

    <!--property RootDirectoryStartOnly is not documented!-->

    <!--property RemainAfterExit is not documented!-->

    <!--property GuessMainPID is not documented!-->

    <!--property RestartPreventExitStatus is not documented!-->

    <!--property RestartForceExitStatus is not documented!-->

    <!--property SuccessExitStatus is not documented!-->

    <!--property BusName is not documented!-->

    <!--property FileDescriptorStoreMax is not documented!-->

    <!--property NFileDescriptorStore is not documented!-->

    <!--property StatusErrno is not documented!-->

    <!--property ReloadResult is not documented!-->

    <!--property CleanResult is not documented!-->

    <!--property USBFunctionDescriptors is not documented!-->

    <!--property USBFunctionStrings is not documented!-->

    <!--property UID is not documented!-->

    <!--property GID is not documented!-->

    <!--property NRestarts is not documented!-->

    <!--property OOMPolicy is not documented!-->

    <!--property ExecCondition is not documented!-->

    <!--property ExecConditionEx is not documented!-->

    <!--property ExecStartPreEx is not documented!-->

    <!--property ExecStartEx is not documented!-->

    <!--property ExecStartPostEx is not documented!-->

    <!--property ExecReloadEx is not documented!-->

    <!--property ExecStopEx is not documented!-->

    <!--property ExecStopPost is not documented!-->

    <!--property ExecStopPostEx is not documented!-->

    <!--property Slice is not documented!-->

    <!--property MemoryCurrent is not documented!-->

    <!--property CPUUsageNSec is not documented!-->

    <!--property EffectiveCPUs is not documented!-->

    <!--property EffectiveMemoryNodes is not documented!-->

    <!--property TasksCurrent is not documented!-->

    <!--property IPIngressBytes is not documented!-->

    <!--property IPIngressPackets is not documented!-->

    <!--property IPEgressBytes is not documented!-->

    <!--property IPEgressPackets is not documented!-->

    <!--property IOReadBytes is not documented!-->

    <!--property IOReadOperations is not documented!-->

    <!--property IOWriteBytes is not documented!-->

    <!--property IOWriteOperations is not documented!-->

    <!--property Delegate is not documented!-->

    <!--property DelegateControllers is not documented!-->

    <!--property CPUAccounting is not documented!-->

    <!--property CPUWeight is not documented!-->

    <!--property StartupCPUWeight is not documented!-->

    <!--property CPUShares is not documented!-->

    <!--property StartupCPUShares is not documented!-->

    <!--property CPUQuotaPerSecUSec is not documented!-->

    <!--property CPUQuotaPeriodUSec is not documented!-->

    <!--property AllowedCPUs is not documented!-->

    <!--property AllowedMemoryNodes is not documented!-->

    <!--property IOAccounting is not documented!-->

    <!--property IOWeight is not documented!-->

    <!--property StartupIOWeight is not documented!-->

    <!--property IODeviceWeight is not documented!-->

    <!--property IOReadBandwidthMax is not documented!-->

    <!--property IOWriteBandwidthMax is not documented!-->

    <!--property IOReadIOPSMax is not documented!-->

    <!--property IOWriteIOPSMax is not documented!-->

    <!--property IODeviceLatencyTargetUSec is not documented!-->

    <!--property BlockIOAccounting is not documented!-->

    <!--property BlockIOWeight is not documented!-->

    <!--property StartupBlockIOWeight is not documented!-->

    <!--property BlockIODeviceWeight is not documented!-->

    <!--property BlockIOReadBandwidth is not documented!-->

    <!--property BlockIOWriteBandwidth is not documented!-->

    <!--property MemoryAccounting is not documented!-->

    <!--property DefaultMemoryLow is not documented!-->

    <!--property DefaultMemoryMin is not documented!-->

    <!--property MemoryMin is not documented!-->

    <!--property MemoryLow is not documented!-->

    <!--property MemoryHigh is not documented!-->

    <!--property MemoryMax is not documented!-->

    <!--property MemorySwapMax is not documented!-->

    <!--property MemoryLimit is not documented!-->

    <!--property DevicePolicy is not documented!-->

    <!--property DeviceAllow is not documented!-->

    <!--property TasksAccounting is not documented!-->

    <!--property TasksMax is not documented!-->

    <!--property IPAccounting is not documented!-->

    <!--property IPAddressAllow is not documented!-->

    <!--property IPAddressDeny is not documented!-->

    <!--property IPIngressFilterPath is not documented!-->

    <!--property IPEgressFilterPath is not documented!-->

    <!--property DisableControllers is not documented!-->

    <!--property ManagedOOMSwap is not documented!-->

    <!--property ManagedOOMMemoryPressure is not documented!-->

    <!--property ManagedOOMMemoryPressureLimit is not documented!-->

    <!--property ManagedOOMPreference is not documented!-->

    <!--property BPFProgram is not documented!-->

    <!--property SocketBindAllow is not documented!-->

    <!--property SocketBindDeny is not documented!-->

    <!--property EnvironmentFiles is not documented!-->

    <!--property PassEnvironment is not documented!-->

    <!--property UnsetEnvironment is not documented!-->

    <!--property UMask is not documented!-->

    <!--property LimitCPUSoft is not documented!-->

    <!--property LimitFSIZE is not documented!-->

    <!--property LimitFSIZESoft is not documented!-->

    <!--property LimitDATA is not documented!-->

    <!--property LimitDATASoft is not documented!-->

    <!--property LimitSTACK is not documented!-->

    <!--property LimitSTACKSoft is not documented!-->

    <!--property LimitCORE is not documented!-->

    <!--property LimitCORESoft is not documented!-->

    <!--property LimitRSS is not documented!-->

    <!--property LimitRSSSoft is not documented!-->

    <!--property LimitNOFILE is not documented!-->

    <!--property LimitNOFILESoft is not documented!-->

    <!--property LimitAS is not documented!-->

    <!--property LimitASSoft is not documented!-->

    <!--property LimitNPROC is not documented!-->

    <!--property LimitNPROCSoft is not documented!-->

    <!--property LimitMEMLOCK is not documented!-->

    <!--property LimitMEMLOCKSoft is not documented!-->

    <!--property LimitLOCKS is not documented!-->

    <!--property LimitLOCKSSoft is not documented!-->

    <!--property LimitSIGPENDING is not documented!-->

    <!--property LimitSIGPENDINGSoft is not documented!-->

    <!--property LimitMSGQUEUE is not documented!-->

    <!--property LimitMSGQUEUESoft is not documented!-->

    <!--property LimitNICE is not documented!-->

    <!--property LimitNICESoft is not documented!-->

    <!--property LimitRTPRIO is not documented!-->

    <!--property LimitRTPRIOSoft is not documented!-->

    <!--property LimitRTTIME is not documented!-->

    <!--property LimitRTTIMESoft is not documented!-->

    <!--property WorkingDirectory is not documented!-->

    <!--property RootHashPath is not documented!-->

    <!--property RootHashSignaturePath is not documented!-->

    <!--property OOMScoreAdjust is not documented!-->

    <!--property CoredumpFilter is not documented!-->

    <!--property Nice is not documented!-->

    <!--property IOSchedulingClass is not documented!-->

    <!--property IOSchedulingPriority is not documented!-->

    <!--property CPUSchedulingPolicy is not documented!-->

    <!--property CPUSchedulingPriority is not documented!-->

    <!--property CPUAffinity is not documented!-->

    <!--property CPUAffinityFromNUMA is not documented!-->

    <!--property NUMAPolicy is not documented!-->

    <!--property NUMAMask is not documented!-->

    <!--property TimerSlackNSec is not documented!-->

    <!--property CPUSchedulingResetOnFork is not documented!-->

    <!--property NonBlocking is not documented!-->

    <!--property StandardInput is not documented!-->

    <!--property StandardInputFileDescriptorName is not documented!-->

    <!--property StandardInputData is not documented!-->

    <!--property StandardOutput is not documented!-->

    <!--property StandardOutputFileDescriptorName is not documented!-->

    <!--property StandardError is not documented!-->

    <!--property StandardErrorFileDescriptorName is not documented!-->

    <!--property TTYPath is not documented!-->

    <!--property TTYReset is not documented!-->

    <!--property TTYVHangup is not documented!-->

    <!--property TTYVTDisallocate is not documented!-->

    <!--property SyslogPriority is not documented!-->

    <!--property SyslogIdentifier is not documented!-->

    <!--property SyslogLevelPrefix is not documented!-->

    <!--property SyslogLevel is not documented!-->

    <!--property SyslogFacility is not documented!-->

    <!--property LogLevelMax is not documented!-->

    <!--property LogRateLimitIntervalUSec is not documented!-->

    <!--property LogRateLimitBurst is not documented!-->

    <!--property LogExtraFields is not documented!-->

    <!--property LogNamespace is not documented!-->

    <!--property AmbientCapabilities is not documented!-->

    <!--property User is not documented!-->

    <!--property Group is not documented!-->

    <!--property DynamicUser is not documented!-->

    <!--property RemoveIPC is not documented!-->

    <!--property SetCredential is not documented!-->

    <!--property LoadCredential is not documented!-->

    <!--property SupplementaryGroups is not documented!-->

    <!--property PAMName is not documented!-->

    <!--property ReadWritePaths is not documented!-->

    <!--property ReadOnlyPaths is not documented!-->

    <!--property InaccessiblePaths is not documented!-->

    <!--property ExecPaths is not documented!-->

    <!--property NoExecPaths is not documented!-->

    <!--property PrivateTmp is not documented!-->

    <!--property PrivateDevices is not documented!-->

    <!--property ProtectClock is not documented!-->

    <!--property ProtectKernelTunables is not documented!-->

    <!--property ProtectKernelModules is not documented!-->

    <!--property ProtectKernelLogs is not documented!-->

    <!--property ProtectControlGroups is not documented!-->

    <!--property PrivateNetwork is not documented!-->

    <!--property PrivateUsers is not documented!-->

    <!--property PrivateMounts is not documented!-->

    <!--property PrivateIPC is not documented!-->

    <!--property ProtectHome is not documented!-->

    <!--property ProtectSystem is not documented!-->

    <!--property SameProcessGroup is not documented!-->

    <!--property UtmpIdentifier is not documented!-->

    <!--property UtmpMode is not documented!-->

    <!--property SELinuxContext is not documented!-->

    <!--property AppArmorProfile is not documented!-->

    <!--property SmackProcessLabel is not documented!-->

    <!--property IgnoreSIGPIPE is not documented!-->

    <!--property NoNewPrivileges is not documented!-->

    <!--property SystemCallFilter is not documented!-->

    <!--property SystemCallArchitectures is not documented!-->

    <!--property SystemCallErrorNumber is not documented!-->

    <!--property SystemCallLog is not documented!-->

    <!--property Personality is not documented!-->

    <!--property LockPersonality is not documented!-->

    <!--property RestrictAddressFamilies is not documented!-->

    <!--property RuntimeDirectoryPreserve is not documented!-->

    <!--property RuntimeDirectoryMode is not documented!-->

    <!--property RuntimeDirectory is not documented!-->

    <!--property StateDirectoryMode is not documented!-->

    <!--property StateDirectory is not documented!-->

    <!--property CacheDirectoryMode is not documented!-->

    <!--property CacheDirectory is not documented!-->

    <!--property LogsDirectoryMode is not documented!-->

    <!--property LogsDirectory is not documented!-->

    <!--property ConfigurationDirectoryMode is not documented!-->

    <!--property ConfigurationDirectory is not documented!-->

    <!--property TimeoutCleanUSec is not documented!-->

    <!--property MemoryDenyWriteExecute is not documented!-->

    <!--property RestrictRealtime is not documented!-->

    <!--property RestrictSUIDSGID is not documented!-->

    <!--property RestrictNamespaces is not documented!-->

    <!--property BindPaths is not documented!-->

    <!--property BindReadOnlyPaths is not documented!-->

    <!--property TemporaryFileSystem is not documented!-->

    <!--property MountAPIVFS is not documented!-->

    <!--property KeyringMode is not documented!-->

    <!--property ProtectProc is not documented!-->

    <!--property ProcSubset is not documented!-->

    <!--property ProtectHostname is not documented!-->

    <!--property NetworkNamespacePath is not documented!-->

    <!--property IPCNamespacePath is not documented!-->

    <!--property KillMode is not documented!-->

    <!--property KillSignal is not documented!-->

    <!--property RestartKillSignal is not documented!-->

    <!--property FinalKillSignal is not documented!-->

    <!--property SendSIGKILL is not documented!-->

    <!--property SendSIGHUP is not documented!-->

    <!--property WatchdogSignal is not documented!-->

    <!--Autogenerated cross-references for systemd.directives, do not edit-->

    <variablelist class="dbus-interface" generated="True" extra-ref="org.freedesktop.systemd1.Unit"/>

    <variablelist class="dbus-interface" generated="True" extra-ref="org.freedesktop.systemd1.Service"/>

    <variablelist class="dbus-interface" generated="True" extra-ref="org.freedesktop.systemd1.Unit"/>

    <variablelist class="dbus-interface" generated="True" extra-ref="org.freedesktop.systemd1.Service"/>

    <variablelist class="dbus-method" generated="True" extra-ref="BindMount()"/>

    <variablelist class="dbus-method" generated="True" extra-ref="MountImage()"/>

    <variablelist class="dbus-method" generated="True" extra-ref="GetProcesses()"/>

    <variablelist class="dbus-method" generated="True" extra-ref="AttachProcesses()"/>

    <variablelist class="dbus-property" generated="True" extra-ref="Type"/>

    <variablelist class="dbus-property" generated="True" extra-ref="Restart"/>

    <variablelist class="dbus-property" generated="True" extra-ref="PIDFile"/>

    <variablelist class="dbus-property" generated="True" extra-ref="NotifyAccess"/>

    <variablelist class="dbus-property" generated="True" extra-ref="RestartUSec"/>

    <variablelist class="dbus-property" generated="True" extra-ref="TimeoutStartUSec"/>

    <variablelist class="dbus-property" generated="True" extra-ref="TimeoutStopUSec"/>

    <variablelist class="dbus-property" generated="True" extra-ref="TimeoutAbortUSec"/>

    <variablelist class="dbus-property" generated="True" extra-ref="TimeoutStartFailureMode"/>

    <variablelist class="dbus-property" generated="True" extra-ref="TimeoutStopFailureMode"/>

    <variablelist class="dbus-property" generated="True" extra-ref="RuntimeMaxUSec"/>

    <variablelist class="dbus-property" generated="True" extra-ref="WatchdogUSec"/>

    <variablelist class="dbus-property" generated="True" extra-ref="WatchdogTimestamp"/>

    <variablelist class="dbus-property" generated="True" extra-ref="WatchdogTimestampMonotonic"/>

    <variablelist class="dbus-property" generated="True" extra-ref="RootDirectoryStartOnly"/>

    <variablelist class="dbus-property" generated="True" extra-ref="RemainAfterExit"/>

    <variablelist class="dbus-property" generated="True" extra-ref="GuessMainPID"/>

    <variablelist class="dbus-property" generated="True" extra-ref="RestartPreventExitStatus"/>

    <variablelist class="dbus-property" generated="True" extra-ref="RestartForceExitStatus"/>

    <variablelist class="dbus-property" generated="True" extra-ref="SuccessExitStatus"/>

    <variablelist class="dbus-property" generated="True" extra-ref="MainPID"/>

    <variablelist class="dbus-property" generated="True" extra-ref="ControlPID"/>

    <variablelist class="dbus-property" generated="True" extra-ref="BusName"/>

    <variablelist class="dbus-property" generated="True" extra-ref="FileDescriptorStoreMax"/>

    <variablelist class="dbus-property" generated="True" extra-ref="NFileDescriptorStore"/>

    <variablelist class="dbus-property" generated="True" extra-ref="StatusText"/>

    <variablelist class="dbus-property" generated="True" extra-ref="StatusErrno"/>

    <variablelist class="dbus-property" generated="True" extra-ref="Result"/>

    <variablelist class="dbus-property" generated="True" extra-ref="ReloadResult"/>

    <variablelist class="dbus-property" generated="True" extra-ref="CleanResult"/>

    <variablelist class="dbus-property" generated="True" extra-ref="USBFunctionDescriptors"/>

    <variablelist class="dbus-property" generated="True" extra-ref="USBFunctionStrings"/>

    <variablelist class="dbus-property" generated="True" extra-ref="UID"/>

    <variablelist class="dbus-property" generated="True" extra-ref="GID"/>

    <variablelist class="dbus-property" generated="True" extra-ref="NRestarts"/>

    <variablelist class="dbus-property" generated="True" extra-ref="OOMPolicy"/>

    <variablelist class="dbus-property" generated="True" extra-ref="ExecMainStartTimestamp"/>

    <variablelist class="dbus-property" generated="True" extra-ref="ExecMainStartTimestampMonotonic"/>

    <variablelist class="dbus-property" generated="True" extra-ref="ExecMainExitTimestamp"/>

    <variablelist class="dbus-property" generated="True" extra-ref="ExecMainExitTimestampMonotonic"/>

    <variablelist class="dbus-property" generated="True" extra-ref="ExecMainPID"/>

    <variablelist class="dbus-property" generated="True" extra-ref="ExecMainCode"/>

    <variablelist class="dbus-property" generated="True" extra-ref="ExecMainStatus"/>

    <variablelist class="dbus-property" generated="True" extra-ref="ExecCondition"/>

    <variablelist class="dbus-property" generated="True" extra-ref="ExecConditionEx"/>

    <variablelist class="dbus-property" generated="True" extra-ref="ExecStartPre"/>

    <variablelist class="dbus-property" generated="True" extra-ref="ExecStartPreEx"/>

    <variablelist class="dbus-property" generated="True" extra-ref="ExecStart"/>

    <variablelist class="dbus-property" generated="True" extra-ref="ExecStartEx"/>

    <variablelist class="dbus-property" generated="True" extra-ref="ExecStartPost"/>

    <variablelist class="dbus-property" generated="True" extra-ref="ExecStartPostEx"/>

    <variablelist class="dbus-property" generated="True" extra-ref="ExecReload"/>

    <variablelist class="dbus-property" generated="True" extra-ref="ExecReloadEx"/>

    <variablelist class="dbus-property" generated="True" extra-ref="ExecStop"/>

    <variablelist class="dbus-property" generated="True" extra-ref="ExecStopEx"/>

    <variablelist class="dbus-property" generated="True" extra-ref="ExecStopPost"/>

    <variablelist class="dbus-property" generated="True" extra-ref="ExecStopPostEx"/>

    <variablelist class="dbus-property" generated="True" extra-ref="Slice"/>

    <variablelist class="dbus-property" generated="True" extra-ref="ControlGroup"/>

    <variablelist class="dbus-property" generated="True" extra-ref="MemoryCurrent"/>

    <variablelist class="dbus-property" generated="True" extra-ref="MemoryAvailable"/>

    <variablelist class="dbus-property" generated="True" extra-ref="CPUUsageNSec"/>

    <variablelist class="dbus-property" generated="True" extra-ref="EffectiveCPUs"/>

    <variablelist class="dbus-property" generated="True" extra-ref="EffectiveMemoryNodes"/>

    <variablelist class="dbus-property" generated="True" extra-ref="TasksCurrent"/>

    <variablelist class="dbus-property" generated="True" extra-ref="IPIngressBytes"/>

    <variablelist class="dbus-property" generated="True" extra-ref="IPIngressPackets"/>

    <variablelist class="dbus-property" generated="True" extra-ref="IPEgressBytes"/>

    <variablelist class="dbus-property" generated="True" extra-ref="IPEgressPackets"/>

    <variablelist class="dbus-property" generated="True" extra-ref="IOReadBytes"/>

    <variablelist class="dbus-property" generated="True" extra-ref="IOReadOperations"/>

    <variablelist class="dbus-property" generated="True" extra-ref="IOWriteBytes"/>

    <variablelist class="dbus-property" generated="True" extra-ref="IOWriteOperations"/>

    <variablelist class="dbus-property" generated="True" extra-ref="Delegate"/>

    <variablelist class="dbus-property" generated="True" extra-ref="DelegateControllers"/>

    <variablelist class="dbus-property" generated="True" extra-ref="CPUAccounting"/>

    <variablelist class="dbus-property" generated="True" extra-ref="CPUWeight"/>

    <variablelist class="dbus-property" generated="True" extra-ref="StartupCPUWeight"/>

    <variablelist class="dbus-property" generated="True" extra-ref="CPUShares"/>

    <variablelist class="dbus-property" generated="True" extra-ref="StartupCPUShares"/>

    <variablelist class="dbus-property" generated="True" extra-ref="CPUQuotaPerSecUSec"/>

    <variablelist class="dbus-property" generated="True" extra-ref="CPUQuotaPeriodUSec"/>

    <variablelist class="dbus-property" generated="True" extra-ref="AllowedCPUs"/>

    <variablelist class="dbus-property" generated="True" extra-ref="AllowedMemoryNodes"/>

    <variablelist class="dbus-property" generated="True" extra-ref="IOAccounting"/>

    <variablelist class="dbus-property" generated="True" extra-ref="IOWeight"/>

    <variablelist class="dbus-property" generated="True" extra-ref="StartupIOWeight"/>

    <variablelist class="dbus-property" generated="True" extra-ref="IODeviceWeight"/>

    <variablelist class="dbus-property" generated="True" extra-ref="IOReadBandwidthMax"/>

    <variablelist class="dbus-property" generated="True" extra-ref="IOWriteBandwidthMax"/>

    <variablelist class="dbus-property" generated="True" extra-ref="IOReadIOPSMax"/>

    <variablelist class="dbus-property" generated="True" extra-ref="IOWriteIOPSMax"/>

    <variablelist class="dbus-property" generated="True" extra-ref="IODeviceLatencyTargetUSec"/>

    <variablelist class="dbus-property" generated="True" extra-ref="BlockIOAccounting"/>

    <variablelist class="dbus-property" generated="True" extra-ref="BlockIOWeight"/>

    <variablelist class="dbus-property" generated="True" extra-ref="StartupBlockIOWeight"/>

    <variablelist class="dbus-property" generated="True" extra-ref="BlockIODeviceWeight"/>

    <variablelist class="dbus-property" generated="True" extra-ref="BlockIOReadBandwidth"/>

    <variablelist class="dbus-property" generated="True" extra-ref="BlockIOWriteBandwidth"/>

    <variablelist class="dbus-property" generated="True" extra-ref="MemoryAccounting"/>

    <variablelist class="dbus-property" generated="True" extra-ref="DefaultMemoryLow"/>

    <variablelist class="dbus-property" generated="True" extra-ref="DefaultMemoryMin"/>

    <variablelist class="dbus-property" generated="True" extra-ref="MemoryMin"/>

    <variablelist class="dbus-property" generated="True" extra-ref="MemoryLow"/>

    <variablelist class="dbus-property" generated="True" extra-ref="MemoryHigh"/>

    <variablelist class="dbus-property" generated="True" extra-ref="MemoryMax"/>

    <variablelist class="dbus-property" generated="True" extra-ref="MemorySwapMax"/>

    <variablelist class="dbus-property" generated="True" extra-ref="MemoryLimit"/>

    <variablelist class="dbus-property" generated="True" extra-ref="DevicePolicy"/>

    <variablelist class="dbus-property" generated="True" extra-ref="DeviceAllow"/>

    <variablelist class="dbus-property" generated="True" extra-ref="TasksAccounting"/>

    <variablelist class="dbus-property" generated="True" extra-ref="TasksMax"/>

    <variablelist class="dbus-property" generated="True" extra-ref="IPAccounting"/>

    <variablelist class="dbus-property" generated="True" extra-ref="IPAddressAllow"/>

    <variablelist class="dbus-property" generated="True" extra-ref="IPAddressDeny"/>

    <variablelist class="dbus-property" generated="True" extra-ref="IPIngressFilterPath"/>

    <variablelist class="dbus-property" generated="True" extra-ref="IPEgressFilterPath"/>

    <variablelist class="dbus-property" generated="True" extra-ref="DisableControllers"/>

    <variablelist class="dbus-property" generated="True" extra-ref="ManagedOOMSwap"/>

    <variablelist class="dbus-property" generated="True" extra-ref="ManagedOOMMemoryPressure"/>

    <variablelist class="dbus-property" generated="True" extra-ref="ManagedOOMMemoryPressureLimit"/>

    <variablelist class="dbus-property" generated="True" extra-ref="ManagedOOMPreference"/>

    <variablelist class="dbus-property" generated="True" extra-ref="BPFProgram"/>

    <variablelist class="dbus-property" generated="True" extra-ref="SocketBindAllow"/>

    <variablelist class="dbus-property" generated="True" extra-ref="SocketBindDeny"/>

    <variablelist class="dbus-property" generated="True" extra-ref="Environment"/>

    <variablelist class="dbus-property" generated="True" extra-ref="EnvironmentFiles"/>

    <variablelist class="dbus-property" generated="True" extra-ref="PassEnvironment"/>

    <variablelist class="dbus-property" generated="True" extra-ref="UnsetEnvironment"/>

    <variablelist class="dbus-property" generated="True" extra-ref="UMask"/>

    <variablelist class="dbus-property" generated="True" extra-ref="LimitCPU"/>

    <variablelist class="dbus-property" generated="True" extra-ref="LimitCPUSoft"/>

    <variablelist class="dbus-property" generated="True" extra-ref="LimitFSIZE"/>

    <variablelist class="dbus-property" generated="True" extra-ref="LimitFSIZESoft"/>

    <variablelist class="dbus-property" generated="True" extra-ref="LimitDATA"/>

    <variablelist class="dbus-property" generated="True" extra-ref="LimitDATASoft"/>

    <variablelist class="dbus-property" generated="True" extra-ref="LimitSTACK"/>

    <variablelist class="dbus-property" generated="True" extra-ref="LimitSTACKSoft"/>

    <variablelist class="dbus-property" generated="True" extra-ref="LimitCORE"/>

    <variablelist class="dbus-property" generated="True" extra-ref="LimitCORESoft"/>

    <variablelist class="dbus-property" generated="True" extra-ref="LimitRSS"/>

    <variablelist class="dbus-property" generated="True" extra-ref="LimitRSSSoft"/>

    <variablelist class="dbus-property" generated="True" extra-ref="LimitNOFILE"/>

    <variablelist class="dbus-property" generated="True" extra-ref="LimitNOFILESoft"/>

    <variablelist class="dbus-property" generated="True" extra-ref="LimitAS"/>

    <variablelist class="dbus-property" generated="True" extra-ref="LimitASSoft"/>

    <variablelist class="dbus-property" generated="True" extra-ref="LimitNPROC"/>

    <variablelist class="dbus-property" generated="True" extra-ref="LimitNPROCSoft"/>

    <variablelist class="dbus-property" generated="True" extra-ref="LimitMEMLOCK"/>

    <variablelist class="dbus-property" generated="True" extra-ref="LimitMEMLOCKSoft"/>

    <variablelist class="dbus-property" generated="True" extra-ref="LimitLOCKS"/>

    <variablelist class="dbus-property" generated="True" extra-ref="LimitLOCKSSoft"/>

    <variablelist class="dbus-property" generated="True" extra-ref="LimitSIGPENDING"/>

    <variablelist class="dbus-property" generated="True" extra-ref="LimitSIGPENDINGSoft"/>

    <variablelist class="dbus-property" generated="True" extra-ref="LimitMSGQUEUE"/>

    <variablelist class="dbus-property" generated="True" extra-ref="LimitMSGQUEUESoft"/>

    <variablelist class="dbus-property" generated="True" extra-ref="LimitNICE"/>

    <variablelist class="dbus-property" generated="True" extra-ref="LimitNICESoft"/>

    <variablelist class="dbus-property" generated="True" extra-ref="LimitRTPRIO"/>

    <variablelist class="dbus-property" generated="True" extra-ref="LimitRTPRIOSoft"/>

    <variablelist class="dbus-property" generated="True" extra-ref="LimitRTTIME"/>

    <variablelist class="dbus-property" generated="True" extra-ref="LimitRTTIMESoft"/>

    <variablelist class="dbus-property" generated="True" extra-ref="WorkingDirectory"/>

    <variablelist class="dbus-property" generated="True" extra-ref="RootDirectory"/>

    <variablelist class="dbus-property" generated="True" extra-ref="RootImage"/>

    <variablelist class="dbus-property" generated="True" extra-ref="RootImageOptions"/>

    <variablelist class="dbus-property" generated="True" extra-ref="RootHash"/>

    <variablelist class="dbus-property" generated="True" extra-ref="RootHashPath"/>

    <variablelist class="dbus-property" generated="True" extra-ref="RootHashSignature"/>

    <variablelist class="dbus-property" generated="True" extra-ref="RootHashSignaturePath"/>

    <variablelist class="dbus-property" generated="True" extra-ref="RootVerity"/>

    <variablelist class="dbus-property" generated="True" extra-ref="ExtensionImages"/>

    <variablelist class="dbus-property" generated="True" extra-ref="MountImages"/>

    <variablelist class="dbus-property" generated="True" extra-ref="OOMScoreAdjust"/>

    <variablelist class="dbus-property" generated="True" extra-ref="CoredumpFilter"/>

    <variablelist class="dbus-property" generated="True" extra-ref="Nice"/>

    <variablelist class="dbus-property" generated="True" extra-ref="IOSchedulingClass"/>

    <variablelist class="dbus-property" generated="True" extra-ref="IOSchedulingPriority"/>

    <variablelist class="dbus-property" generated="True" extra-ref="CPUSchedulingPolicy"/>

    <variablelist class="dbus-property" generated="True" extra-ref="CPUSchedulingPriority"/>

    <variablelist class="dbus-property" generated="True" extra-ref="CPUAffinity"/>

    <variablelist class="dbus-property" generated="True" extra-ref="CPUAffinityFromNUMA"/>

    <variablelist class="dbus-property" generated="True" extra-ref="NUMAPolicy"/>

    <variablelist class="dbus-property" generated="True" extra-ref="NUMAMask"/>

    <variablelist class="dbus-property" generated="True" extra-ref="TimerSlackNSec"/>

    <variablelist class="dbus-property" generated="True" extra-ref="CPUSchedulingResetOnFork"/>

    <variablelist class="dbus-property" generated="True" extra-ref="NonBlocking"/>

    <variablelist class="dbus-property" generated="True" extra-ref="StandardInput"/>

    <variablelist class="dbus-property" generated="True" extra-ref="StandardInputFileDescriptorName"/>

    <variablelist class="dbus-property" generated="True" extra-ref="StandardInputData"/>

    <variablelist class="dbus-property" generated="True" extra-ref="StandardOutput"/>

    <variablelist class="dbus-property" generated="True" extra-ref="StandardOutputFileDescriptorName"/>

    <variablelist class="dbus-property" generated="True" extra-ref="StandardError"/>

    <variablelist class="dbus-property" generated="True" extra-ref="StandardErrorFileDescriptorName"/>

    <variablelist class="dbus-property" generated="True" extra-ref="TTYPath"/>

    <variablelist class="dbus-property" generated="True" extra-ref="TTYReset"/>

    <variablelist class="dbus-property" generated="True" extra-ref="TTYVHangup"/>

    <variablelist class="dbus-property" generated="True" extra-ref="TTYVTDisallocate"/>

    <variablelist class="dbus-property" generated="True" extra-ref="SyslogPriority"/>

    <variablelist class="dbus-property" generated="True" extra-ref="SyslogIdentifier"/>

    <variablelist class="dbus-property" generated="True" extra-ref="SyslogLevelPrefix"/>

    <variablelist class="dbus-property" generated="True" extra-ref="SyslogLevel"/>

    <variablelist class="dbus-property" generated="True" extra-ref="SyslogFacility"/>

    <variablelist class="dbus-property" generated="True" extra-ref="LogLevelMax"/>

    <variablelist class="dbus-property" generated="True" extra-ref="LogRateLimitIntervalUSec"/>

    <variablelist class="dbus-property" generated="True" extra-ref="LogRateLimitBurst"/>

    <variablelist class="dbus-property" generated="True" extra-ref="LogExtraFields"/>

    <variablelist class="dbus-property" generated="True" extra-ref="LogNamespace"/>

    <variablelist class="dbus-property" generated="True" extra-ref="SecureBits"/>

    <variablelist class="dbus-property" generated="True" extra-ref="CapabilityBoundingSet"/>

    <variablelist class="dbus-property" generated="True" extra-ref="AmbientCapabilities"/>

    <variablelist class="dbus-property" generated="True" extra-ref="User"/>

    <variablelist class="dbus-property" generated="True" extra-ref="Group"/>

    <variablelist class="dbus-property" generated="True" extra-ref="DynamicUser"/>

    <variablelist class="dbus-property" generated="True" extra-ref="RemoveIPC"/>

    <variablelist class="dbus-property" generated="True" extra-ref="SetCredential"/>

    <variablelist class="dbus-property" generated="True" extra-ref="LoadCredential"/>

    <variablelist class="dbus-property" generated="True" extra-ref="SupplementaryGroups"/>

    <variablelist class="dbus-property" generated="True" extra-ref="PAMName"/>

    <variablelist class="dbus-property" generated="True" extra-ref="ReadWritePaths"/>

    <variablelist class="dbus-property" generated="True" extra-ref="ReadOnlyPaths"/>

    <variablelist class="dbus-property" generated="True" extra-ref="InaccessiblePaths"/>

    <variablelist class="dbus-property" generated="True" extra-ref="ExecPaths"/>

    <variablelist class="dbus-property" generated="True" extra-ref="NoExecPaths"/>

    <variablelist class="dbus-property" generated="True" extra-ref="MountFlags"/>

    <variablelist class="dbus-property" generated="True" extra-ref="PrivateTmp"/>

    <variablelist class="dbus-property" generated="True" extra-ref="PrivateDevices"/>

    <variablelist class="dbus-property" generated="True" extra-ref="ProtectClock"/>

    <variablelist class="dbus-property" generated="True" extra-ref="ProtectKernelTunables"/>

    <variablelist class="dbus-property" generated="True" extra-ref="ProtectKernelModules"/>

    <variablelist class="dbus-property" generated="True" extra-ref="ProtectKernelLogs"/>

    <variablelist class="dbus-property" generated="True" extra-ref="ProtectControlGroups"/>

    <variablelist class="dbus-property" generated="True" extra-ref="PrivateNetwork"/>

    <variablelist class="dbus-property" generated="True" extra-ref="PrivateUsers"/>

    <variablelist class="dbus-property" generated="True" extra-ref="PrivateMounts"/>

    <variablelist class="dbus-property" generated="True" extra-ref="PrivateIPC"/>

    <variablelist class="dbus-property" generated="True" extra-ref="ProtectHome"/>

    <variablelist class="dbus-property" generated="True" extra-ref="ProtectSystem"/>

    <variablelist class="dbus-property" generated="True" extra-ref="SameProcessGroup"/>

    <variablelist class="dbus-property" generated="True" extra-ref="UtmpIdentifier"/>

    <variablelist class="dbus-property" generated="True" extra-ref="UtmpMode"/>

    <variablelist class="dbus-property" generated="True" extra-ref="SELinuxContext"/>

    <variablelist class="dbus-property" generated="True" extra-ref="AppArmorProfile"/>

    <variablelist class="dbus-property" generated="True" extra-ref="SmackProcessLabel"/>

    <variablelist class="dbus-property" generated="True" extra-ref="IgnoreSIGPIPE"/>

    <variablelist class="dbus-property" generated="True" extra-ref="NoNewPrivileges"/>

    <variablelist class="dbus-property" generated="True" extra-ref="SystemCallFilter"/>

    <variablelist class="dbus-property" generated="True" extra-ref="SystemCallArchitectures"/>

    <variablelist class="dbus-property" generated="True" extra-ref="SystemCallErrorNumber"/>

    <variablelist class="dbus-property" generated="True" extra-ref="SystemCallLog"/>

    <variablelist class="dbus-property" generated="True" extra-ref="Personality"/>

    <variablelist class="dbus-property" generated="True" extra-ref="LockPersonality"/>

    <variablelist class="dbus-property" generated="True" extra-ref="RestrictAddressFamilies"/>

    <variablelist class="dbus-property" generated="True" extra-ref="RuntimeDirectoryPreserve"/>

    <variablelist class="dbus-property" generated="True" extra-ref="RuntimeDirectoryMode"/>

    <variablelist class="dbus-property" generated="True" extra-ref="RuntimeDirectory"/>

    <variablelist class="dbus-property" generated="True" extra-ref="StateDirectoryMode"/>

    <variablelist class="dbus-property" generated="True" extra-ref="StateDirectory"/>

    <variablelist class="dbus-property" generated="True" extra-ref="CacheDirectoryMode"/>

    <variablelist class="dbus-property" generated="True" extra-ref="CacheDirectory"/>

    <variablelist class="dbus-property" generated="True" extra-ref="LogsDirectoryMode"/>

    <variablelist class="dbus-property" generated="True" extra-ref="LogsDirectory"/>

    <variablelist class="dbus-property" generated="True" extra-ref="ConfigurationDirectoryMode"/>

    <variablelist class="dbus-property" generated="True" extra-ref="ConfigurationDirectory"/>

    <variablelist class="dbus-property" generated="True" extra-ref="TimeoutCleanUSec"/>

    <variablelist class="dbus-property" generated="True" extra-ref="MemoryDenyWriteExecute"/>

    <variablelist class="dbus-property" generated="True" extra-ref="RestrictRealtime"/>

    <variablelist class="dbus-property" generated="True" extra-ref="RestrictSUIDSGID"/>

    <variablelist class="dbus-property" generated="True" extra-ref="RestrictNamespaces"/>

    <variablelist class="dbus-property" generated="True" extra-ref="BindPaths"/>

    <variablelist class="dbus-property" generated="True" extra-ref="BindReadOnlyPaths"/>

    <variablelist class="dbus-property" generated="True" extra-ref="TemporaryFileSystem"/>

    <variablelist class="dbus-property" generated="True" extra-ref="MountAPIVFS"/>

    <variablelist class="dbus-property" generated="True" extra-ref="KeyringMode"/>

    <variablelist class="dbus-property" generated="True" extra-ref="ProtectProc"/>

    <variablelist class="dbus-property" generated="True" extra-ref="ProcSubset"/>

    <variablelist class="dbus-property" generated="True" extra-ref="ProtectHostname"/>

    <variablelist class="dbus-property" generated="True" extra-ref="NetworkNamespacePath"/>

    <variablelist class="dbus-property" generated="True" extra-ref="IPCNamespacePath"/>

    <variablelist class="dbus-property" generated="True" extra-ref="KillMode"/>

    <variablelist class="dbus-property" generated="True" extra-ref="KillSignal"/>

    <variablelist class="dbus-property" generated="True" extra-ref="RestartKillSignal"/>

    <variablelist class="dbus-property" generated="True" extra-ref="FinalKillSignal"/>

    <variablelist class="dbus-property" generated="True" extra-ref="SendSIGKILL"/>

    <variablelist class="dbus-property" generated="True" extra-ref="SendSIGHUP"/>

    <variablelist class="dbus-property" generated="True" extra-ref="WatchdogSignal"/>

    <!--End of Autogenerated section-->

    <refsect2>
      <title>Methods</title>

      <para><function>BindMount()</function> and <function>MountImage()</function> implement the same operations
      as the respective methods on the <interfacename>Manager</interfacename> object (see above). However, these
      methods operate on the service object and hence do not take a unit name parameter. Invoking the methods
      directly on the Manager object has the advantage of not requiring a <function>GetUnit()</function> call
      to get the unit object for a specific unit name. Calling the methods on the Manager object is hence a round
      trip optimization.</para>
    </refsect2>

    <refsect2>
      <title>Properties</title>

      <para>Most properties of the Service interface map directly to the corresponding settings in service
      unit files. For the sake of brevity, here's a list of all exceptions only:</para>

      <para><varname>TimeoutStartUSec</varname>, <varname>TimeoutStopUSec</varname> and
      <varname>TimeoutAbortUSec</varname> contain the start, stop and abort timeouts, in microseconds. Note
      the slight difference in naming when compared to the matching unit file settings (see
      <citerefentry><refentrytitle>systemd.service</refentrytitle><manvolnum>7</manvolnum></citerefentry>):
      these bus properties strictly use microseconds (and thus are suffixed <varname>…USec</varname>) while
      the unit file settings default to a time unit of seconds (and thus are suffixed
      <varname>…Sec</varname>), unless a different unit is explicitly specified. This reflects that fact that
      internally the service manager deals in microsecond units only, and the bus properties are a relatively
      low-level (binary) concept exposing this. The unit file settings on the other hand are relatively
      high-level (string-based) concepts and thus support more user friendly time specifications which
      default to second time units but allow other units too, if specified.</para>

      <para><varname>WatchdogTimestamp</varname> and <varname>WatchdogTimestampMonotonic</varname> contain
      <constant>CLOCK_REALTIME</constant>/<constant>CLOCK_MONOTONIC</constant> microsecond timestamps of the
      last watchdog ping received from the service, or 0 if none was ever received.</para>

      <para><varname>ExecStartPre</varname>, <varname>ExecStart</varname>, <varname>ExecStartPost</varname>,
      <varname>ExecReload</varname>, <varname>ExecStop</varname>, and <varname>ExecStop</varname> are arrays
      of structures where each struct contains: the binary path to execute; an array with all arguments to
      pass to the executed command, starting with argument 0; a boolean whether it should be considered a
      failure if the process exits uncleanly; two pairs of
      <constant>CLOCK_REALTIME</constant>/<constant>CLOCK_MONOTONIC</constant> microsecond timestamps when
      the process began and finished running the last time, or 0 if it never ran or never finished running;
      the PID of the process, or 0 if it has not run yet; the exit code and status of the last run. This
      field hence maps more or less to the corresponding setting in the service unit file but is augmented
      with runtime data.</para>

      <para><varname>LimitCPU</varname> (and related properties) map more or less directly to the
      corresponding settings in the service unit files except that if they aren't set, their value is
      18446744073709551615 (i.e. -1).</para>

      <para><varname>Capabilities</varname> contains the configured capabilities, as formatted with
      <citerefentry project="man-pages"><refentrytitle>cap_to_text</refentrytitle><manvolnum>3</manvolnum></citerefentry>.
      </para>

      <para><varname>SecureBits</varname>, <varname>CapabilityBoundingSet</varname>,
      <varname>MountFlags</varname> also correspond to the configured settings of the unit files, but
      instead of being formatted as strings, they are encoded as the actual binary flags they are.
      </para>

      <para><varname>ExecMainStartTimestamp</varname>, <varname>ExecMainStartTimestampMonotonic</varname>,
      <varname>ExecMainExitTimestamp</varname>, <varname>ExecMainExitTimestampMonotonic</varname>,
      <varname>ExecMainPID</varname>, <varname>ExecMainCode</varname>, <varname>ExecMainStatus</varname>
      contain information about the main process of the service as far as it is known. This is often the same
      runtime information that is stored in <varname>ExecStart</varname>. However, it deviates for
      <varname>Type=forking</varname> services where the main process of the service is not forked off
      systemd directly. These fields either contain information of the last run of the process or of the
      current running process.</para>

      <para><varname>MainPID</varname> and <varname>ControlPID</varname> contain the main and control PID of
      the service. The main PID is the current main PID of the service and is 0 when the service currently
      has no main PID. The control PID is the PID of the current start/stop/reload process running and is 0
      if no such process is currently running. That means that <varname>ExecMainPID</varname> and
      <varname>MainPID</varname> differ in the way that the latter immediately reflects whether a main
      process is currently running while the latter possible contains information collected from the last run
      even if the process is no longer around.</para>

      <para><varname>StatusText</varname> contains the status text passed to the service manager via a call
      to
      <citerefentry><refentrytitle>sd_notify</refentrytitle><manvolnum>3</manvolnum></citerefentry>.
      This may be used by services to inform the service manager about its internal state with a nice
      explanatory string.</para>

      <para><varname>Result</varname> encodes the execution result of the last run of the service. It is
      useful to determine the reason a service failed if it is in the <literal>failed</literal> state (see
      <varname>ActiveState</varname> above). The following values are currently known:
      <literal>success</literal> is set if the unit didn't fail. <literal>resources</literal> indicates that
      not enough resources were available to fork off and execute the service
      processes. <literal>timeout</literal> indicates that a timeout occurred while executing a service
      operation. <literal>exit-code</literal> indicates that a service process exited with an unclean exit
      code. <literal>signal</literal> indicates that a service process exited with an uncaught
      signal. <literal>core-dump</literal> indicates that a service process exited uncleanly and dumped
      core. <literal>watchdog</literal> indicates that a service did not send out watchdog ping messages
      often enough. <literal>start-limit</literal> indicates that a service has been started too frequently
      in a specific time frame (as configured in <varname>StartLimitInterval</varname>,
      <varname>StartLimitBurst</varname>).</para>

      <para><varname>ControlGroup</varname> indicates the control group path the processes of this service
      unit are placed in.</para>

      <para>The following properties map 1:1 to corresponding settings in the unit file:
      <varname>RootDirectory</varname>
      <varname>RootImage</varname>
      <varname>RootImageOptions</varname>
      <varname>RootVerity</varname>
      <varname>RootHash</varname>
      <varname>RootHashSignature</varname>
      <varname>MountImages</varname>
      <varname>ExtensionImages</varname>
      see systemd.exec(5) for their meaning.</para>

      <para><varname>MemoryAvailable</varname> indicates how much unused memory is available to the unit before
      the <literal>MemoryMax</literal> or <literal>MemoryHigh</literal> (whichever is lower) limit set by the cgroup
      memory controller is reached. It will take into consideration limits on all parent slices, other than the
      limits set on the unit itself.</para>
    </refsect2>
  </refsect1>

  <refsect1>
    <title>Socket Unit Objects</title>

    <programlisting executable="systemd" node="/org/freedesktop/systemd1/unit/avahi_2ddaemon_2esocket" interface="org.freedesktop.systemd1.Socket">
node /org/freedesktop/systemd1/unit/avahi_2ddaemon_2esocket {
  interface org.freedesktop.systemd1.Socket {
    methods:
      GetProcesses(out a(sus) processes);
      AttachProcesses(in  s subcgroup,
                      in  au pids);
    properties:
      @org.freedesktop.DBus.Property.EmitsChangedSignal("const")
      readonly s BindIPv6Only = '...';
      @org.freedesktop.DBus.Property.EmitsChangedSignal("const")
      readonly u Backlog = ...;
      @org.freedesktop.DBus.Property.EmitsChangedSignal("const")
      readonly t TimeoutUSec = ...;
      @org.freedesktop.DBus.Property.EmitsChangedSignal("const")
      readonly s BindToDevice = '...';
      @org.freedesktop.DBus.Property.EmitsChangedSignal("const")
      readonly s SocketUser = '...';
      @org.freedesktop.DBus.Property.EmitsChangedSignal("const")
      readonly s SocketGroup = '...';
      @org.freedesktop.DBus.Property.EmitsChangedSignal("const")
      readonly u SocketMode = ...;
      @org.freedesktop.DBus.Property.EmitsChangedSignal("const")
      readonly u DirectoryMode = ...;
      @org.freedesktop.DBus.Property.EmitsChangedSignal("const")
      readonly b Accept = ...;
      @org.freedesktop.DBus.Property.EmitsChangedSignal("const")
      readonly b FlushPending = ...;
      @org.freedesktop.DBus.Property.EmitsChangedSignal("const")
      readonly b Writable = ...;
      @org.freedesktop.DBus.Property.EmitsChangedSignal("const")
      readonly b KeepAlive = ...;
      @org.freedesktop.DBus.Property.EmitsChangedSignal("const")
      readonly t KeepAliveTimeUSec = ...;
      @org.freedesktop.DBus.Property.EmitsChangedSignal("const")
      readonly t KeepAliveIntervalUSec = ...;
      @org.freedesktop.DBus.Property.EmitsChangedSignal("const")
      readonly u KeepAliveProbes = ...;
      @org.freedesktop.DBus.Property.EmitsChangedSignal("const")
      readonly t DeferAcceptUSec = ...;
      @org.freedesktop.DBus.Property.EmitsChangedSignal("const")
      readonly b NoDelay = ...;
      @org.freedesktop.DBus.Property.EmitsChangedSignal("const")
      readonly i Priority = ...;
      @org.freedesktop.DBus.Property.EmitsChangedSignal("const")
      readonly t ReceiveBuffer = ...;
      @org.freedesktop.DBus.Property.EmitsChangedSignal("const")
      readonly t SendBuffer = ...;
      @org.freedesktop.DBus.Property.EmitsChangedSignal("const")
      readonly i IPTOS = ...;
      @org.freedesktop.DBus.Property.EmitsChangedSignal("const")
      readonly i IPTTL = ...;
      @org.freedesktop.DBus.Property.EmitsChangedSignal("const")
      readonly t PipeSize = ...;
      @org.freedesktop.DBus.Property.EmitsChangedSignal("const")
      readonly b FreeBind = ...;
      @org.freedesktop.DBus.Property.EmitsChangedSignal("const")
      readonly b Transparent = ...;
      @org.freedesktop.DBus.Property.EmitsChangedSignal("const")
      readonly b Broadcast = ...;
      @org.freedesktop.DBus.Property.EmitsChangedSignal("const")
      readonly b PassCredentials = ...;
      @org.freedesktop.DBus.Property.EmitsChangedSignal("const")
      readonly b PassSecurity = ...;
      @org.freedesktop.DBus.Property.EmitsChangedSignal("const")
      readonly b PassPacketInfo = ...;
      @org.freedesktop.DBus.Property.EmitsChangedSignal("const")
      readonly s Timestamping = '...';
      @org.freedesktop.DBus.Property.EmitsChangedSignal("const")
      readonly b RemoveOnStop = ...;
      @org.freedesktop.DBus.Property.EmitsChangedSignal("const")
      readonly a(ss) Listen = [...];
      @org.freedesktop.DBus.Property.EmitsChangedSignal("const")
      readonly as Symlinks = ['...', ...];
      @org.freedesktop.DBus.Property.EmitsChangedSignal("const")
      readonly i Mark = ...;
      @org.freedesktop.DBus.Property.EmitsChangedSignal("const")
      readonly u MaxConnections = ...;
      @org.freedesktop.DBus.Property.EmitsChangedSignal("const")
      readonly u MaxConnectionsPerSource = ...;
      @org.freedesktop.DBus.Property.EmitsChangedSignal("const")
      readonly x MessageQueueMaxMessages = ...;
      @org.freedesktop.DBus.Property.EmitsChangedSignal("const")
      readonly x MessageQueueMessageSize = ...;
      @org.freedesktop.DBus.Property.EmitsChangedSignal("const")
      readonly s TCPCongestion = '...';
      @org.freedesktop.DBus.Property.EmitsChangedSignal("const")
      readonly b ReusePort = ...;
      @org.freedesktop.DBus.Property.EmitsChangedSignal("const")
      readonly s SmackLabel = '...';
      @org.freedesktop.DBus.Property.EmitsChangedSignal("const")
      readonly s SmackLabelIPIn = '...';
      @org.freedesktop.DBus.Property.EmitsChangedSignal("const")
      readonly s SmackLabelIPOut = '...';
      readonly u ControlPID = ...;
      readonly s Result = '...';
      @org.freedesktop.DBus.Property.EmitsChangedSignal("false")
      readonly u NConnections = ...;
      @org.freedesktop.DBus.Property.EmitsChangedSignal("false")
      readonly u NAccepted = ...;
      @org.freedesktop.DBus.Property.EmitsChangedSignal("false")
      readonly u NRefused = ...;
      @org.freedesktop.DBus.Property.EmitsChangedSignal("false")
      readonly s FileDescriptorName = '...';
      @org.freedesktop.DBus.Property.EmitsChangedSignal("const")
      readonly i SocketProtocol = ...;
      @org.freedesktop.DBus.Property.EmitsChangedSignal("const")
      readonly t TriggerLimitIntervalUSec = ...;
      @org.freedesktop.DBus.Property.EmitsChangedSignal("const")
      readonly u TriggerLimitBurst = ...;
      readonly u UID = ...;
      readonly u GID = ...;
      @org.freedesktop.DBus.Property.EmitsChangedSignal("invalidates")
      readonly a(sasbttttuii) ExecStartPre = [...];
      @org.freedesktop.DBus.Property.EmitsChangedSignal("invalidates")
      readonly a(sasbttttuii) ExecStartPost = [...];
      @org.freedesktop.DBus.Property.EmitsChangedSignal("invalidates")
      readonly a(sasbttttuii) ExecStopPre = [...];
      @org.freedesktop.DBus.Property.EmitsChangedSignal("invalidates")
      readonly a(sasbttttuii) ExecStopPost = [...];
      @org.freedesktop.DBus.Property.EmitsChangedSignal("false")
      readonly s Slice = '...';
      @org.freedesktop.DBus.Property.EmitsChangedSignal("false")
      readonly s ControlGroup = '...';
      @org.freedesktop.DBus.Property.EmitsChangedSignal("false")
      readonly t MemoryCurrent = ...;
      @org.freedesktop.DBus.Property.EmitsChangedSignal("false")
      readonly t MemoryAvailable = ...;
      @org.freedesktop.DBus.Property.EmitsChangedSignal("false")
      readonly t CPUUsageNSec = ...;
      @org.freedesktop.DBus.Property.EmitsChangedSignal("false")
      readonly ay EffectiveCPUs = [...];
      @org.freedesktop.DBus.Property.EmitsChangedSignal("false")
      readonly ay EffectiveMemoryNodes = [...];
      @org.freedesktop.DBus.Property.EmitsChangedSignal("false")
      readonly t TasksCurrent = ...;
      @org.freedesktop.DBus.Property.EmitsChangedSignal("false")
      readonly t IPIngressBytes = ...;
      @org.freedesktop.DBus.Property.EmitsChangedSignal("false")
      readonly t IPIngressPackets = ...;
      @org.freedesktop.DBus.Property.EmitsChangedSignal("false")
      readonly t IPEgressBytes = ...;
      @org.freedesktop.DBus.Property.EmitsChangedSignal("false")
      readonly t IPEgressPackets = ...;
      @org.freedesktop.DBus.Property.EmitsChangedSignal("false")
      readonly t IOReadBytes = ...;
      @org.freedesktop.DBus.Property.EmitsChangedSignal("false")
      readonly t IOReadOperations = ...;
      @org.freedesktop.DBus.Property.EmitsChangedSignal("false")
      readonly t IOWriteBytes = ...;
      @org.freedesktop.DBus.Property.EmitsChangedSignal("false")
      readonly t IOWriteOperations = ...;
      @org.freedesktop.DBus.Property.EmitsChangedSignal("false")
      readonly b Delegate = ...;
      @org.freedesktop.DBus.Property.EmitsChangedSignal("false")
      readonly as DelegateControllers = ['...', ...];
      @org.freedesktop.DBus.Property.EmitsChangedSignal("false")
      readonly b CPUAccounting = ...;
      @org.freedesktop.DBus.Property.EmitsChangedSignal("false")
      readonly t CPUWeight = ...;
      @org.freedesktop.DBus.Property.EmitsChangedSignal("false")
      readonly t StartupCPUWeight = ...;
      @org.freedesktop.DBus.Property.EmitsChangedSignal("false")
      readonly t CPUShares = ...;
      @org.freedesktop.DBus.Property.EmitsChangedSignal("false")
      readonly t StartupCPUShares = ...;
      @org.freedesktop.DBus.Property.EmitsChangedSignal("false")
      readonly t CPUQuotaPerSecUSec = ...;
      @org.freedesktop.DBus.Property.EmitsChangedSignal("false")
      readonly t CPUQuotaPeriodUSec = ...;
      @org.freedesktop.DBus.Property.EmitsChangedSignal("false")
      readonly ay AllowedCPUs = [...];
      @org.freedesktop.DBus.Property.EmitsChangedSignal("false")
      readonly ay AllowedMemoryNodes = [...];
      @org.freedesktop.DBus.Property.EmitsChangedSignal("false")
      readonly b IOAccounting = ...;
      @org.freedesktop.DBus.Property.EmitsChangedSignal("false")
      readonly t IOWeight = ...;
      @org.freedesktop.DBus.Property.EmitsChangedSignal("false")
      readonly t StartupIOWeight = ...;
      @org.freedesktop.DBus.Property.EmitsChangedSignal("false")
      readonly a(st) IODeviceWeight = [...];
      @org.freedesktop.DBus.Property.EmitsChangedSignal("false")
      readonly a(st) IOReadBandwidthMax = [...];
      @org.freedesktop.DBus.Property.EmitsChangedSignal("false")
      readonly a(st) IOWriteBandwidthMax = [...];
      @org.freedesktop.DBus.Property.EmitsChangedSignal("false")
      readonly a(st) IOReadIOPSMax = [...];
      @org.freedesktop.DBus.Property.EmitsChangedSignal("false")
      readonly a(st) IOWriteIOPSMax = [...];
      @org.freedesktop.DBus.Property.EmitsChangedSignal("false")
      readonly a(st) IODeviceLatencyTargetUSec = [...];
      @org.freedesktop.DBus.Property.EmitsChangedSignal("false")
      readonly b BlockIOAccounting = ...;
      @org.freedesktop.DBus.Property.EmitsChangedSignal("false")
      readonly t BlockIOWeight = ...;
      @org.freedesktop.DBus.Property.EmitsChangedSignal("false")
      readonly t StartupBlockIOWeight = ...;
      @org.freedesktop.DBus.Property.EmitsChangedSignal("false")
      readonly a(st) BlockIODeviceWeight = [...];
      @org.freedesktop.DBus.Property.EmitsChangedSignal("false")
      readonly a(st) BlockIOReadBandwidth = [...];
      @org.freedesktop.DBus.Property.EmitsChangedSignal("false")
      readonly a(st) BlockIOWriteBandwidth = [...];
      @org.freedesktop.DBus.Property.EmitsChangedSignal("false")
      readonly b MemoryAccounting = ...;
      @org.freedesktop.DBus.Property.EmitsChangedSignal("false")
      readonly t DefaultMemoryLow = ...;
      @org.freedesktop.DBus.Property.EmitsChangedSignal("false")
      readonly t DefaultMemoryMin = ...;
      @org.freedesktop.DBus.Property.EmitsChangedSignal("false")
      readonly t MemoryMin = ...;
      @org.freedesktop.DBus.Property.EmitsChangedSignal("false")
      readonly t MemoryLow = ...;
      @org.freedesktop.DBus.Property.EmitsChangedSignal("false")
      readonly t MemoryHigh = ...;
      @org.freedesktop.DBus.Property.EmitsChangedSignal("false")
      readonly t MemoryMax = ...;
      @org.freedesktop.DBus.Property.EmitsChangedSignal("false")
      readonly t MemorySwapMax = ...;
      @org.freedesktop.DBus.Property.EmitsChangedSignal("false")
      readonly t MemoryLimit = ...;
      @org.freedesktop.DBus.Property.EmitsChangedSignal("false")
      readonly s DevicePolicy = '...';
      @org.freedesktop.DBus.Property.EmitsChangedSignal("false")
      readonly a(ss) DeviceAllow = [...];
      @org.freedesktop.DBus.Property.EmitsChangedSignal("false")
      readonly b TasksAccounting = ...;
      @org.freedesktop.DBus.Property.EmitsChangedSignal("false")
      readonly t TasksMax = ...;
      @org.freedesktop.DBus.Property.EmitsChangedSignal("false")
      readonly b IPAccounting = ...;
      @org.freedesktop.DBus.Property.EmitsChangedSignal("false")
      readonly a(iayu) IPAddressAllow = [...];
      @org.freedesktop.DBus.Property.EmitsChangedSignal("false")
      readonly a(iayu) IPAddressDeny = [...];
      @org.freedesktop.DBus.Property.EmitsChangedSignal("false")
      readonly as IPIngressFilterPath = ['...', ...];
      @org.freedesktop.DBus.Property.EmitsChangedSignal("false")
      readonly as IPEgressFilterPath = ['...', ...];
      @org.freedesktop.DBus.Property.EmitsChangedSignal("false")
      readonly as DisableControllers = ['...', ...];
      @org.freedesktop.DBus.Property.EmitsChangedSignal("false")
      readonly s ManagedOOMSwap = '...';
      @org.freedesktop.DBus.Property.EmitsChangedSignal("false")
      readonly s ManagedOOMMemoryPressure = '...';
      @org.freedesktop.DBus.Property.EmitsChangedSignal("false")
      readonly u ManagedOOMMemoryPressureLimit = ...;
      @org.freedesktop.DBus.Property.EmitsChangedSignal("false")
      readonly s ManagedOOMPreference = '...';
      @org.freedesktop.DBus.Property.EmitsChangedSignal("false")
      readonly a(ss) BPFProgram = [...];
      @org.freedesktop.DBus.Property.EmitsChangedSignal("false")
      readonly a(iiqq) SocketBindAllow = [...];
      @org.freedesktop.DBus.Property.EmitsChangedSignal("false")
      readonly a(iiqq) SocketBindDeny = [...];
      @org.freedesktop.DBus.Property.EmitsChangedSignal("const")
      readonly as Environment = ['...', ...];
      @org.freedesktop.DBus.Property.EmitsChangedSignal("const")
      readonly a(sb) EnvironmentFiles = [...];
      @org.freedesktop.DBus.Property.EmitsChangedSignal("const")
      readonly as PassEnvironment = ['...', ...];
      @org.freedesktop.DBus.Property.EmitsChangedSignal("const")
      readonly as UnsetEnvironment = ['...', ...];
      @org.freedesktop.DBus.Property.EmitsChangedSignal("const")
      readonly u UMask = ...;
      @org.freedesktop.DBus.Property.EmitsChangedSignal("const")
      readonly t LimitCPU = ...;
      @org.freedesktop.DBus.Property.EmitsChangedSignal("const")
      readonly t LimitCPUSoft = ...;
      @org.freedesktop.DBus.Property.EmitsChangedSignal("const")
      readonly t LimitFSIZE = ...;
      @org.freedesktop.DBus.Property.EmitsChangedSignal("const")
      readonly t LimitFSIZESoft = ...;
      @org.freedesktop.DBus.Property.EmitsChangedSignal("const")
      readonly t LimitDATA = ...;
      @org.freedesktop.DBus.Property.EmitsChangedSignal("const")
      readonly t LimitDATASoft = ...;
      @org.freedesktop.DBus.Property.EmitsChangedSignal("const")
      readonly t LimitSTACK = ...;
      @org.freedesktop.DBus.Property.EmitsChangedSignal("const")
      readonly t LimitSTACKSoft = ...;
      @org.freedesktop.DBus.Property.EmitsChangedSignal("const")
      readonly t LimitCORE = ...;
      @org.freedesktop.DBus.Property.EmitsChangedSignal("const")
      readonly t LimitCORESoft = ...;
      @org.freedesktop.DBus.Property.EmitsChangedSignal("const")
      readonly t LimitRSS = ...;
      @org.freedesktop.DBus.Property.EmitsChangedSignal("const")
      readonly t LimitRSSSoft = ...;
      @org.freedesktop.DBus.Property.EmitsChangedSignal("const")
      readonly t LimitNOFILE = ...;
      @org.freedesktop.DBus.Property.EmitsChangedSignal("const")
      readonly t LimitNOFILESoft = ...;
      @org.freedesktop.DBus.Property.EmitsChangedSignal("const")
      readonly t LimitAS = ...;
      @org.freedesktop.DBus.Property.EmitsChangedSignal("const")
      readonly t LimitASSoft = ...;
      @org.freedesktop.DBus.Property.EmitsChangedSignal("const")
      readonly t LimitNPROC = ...;
      @org.freedesktop.DBus.Property.EmitsChangedSignal("const")
      readonly t LimitNPROCSoft = ...;
      @org.freedesktop.DBus.Property.EmitsChangedSignal("const")
      readonly t LimitMEMLOCK = ...;
      @org.freedesktop.DBus.Property.EmitsChangedSignal("const")
      readonly t LimitMEMLOCKSoft = ...;
      @org.freedesktop.DBus.Property.EmitsChangedSignal("const")
      readonly t LimitLOCKS = ...;
      @org.freedesktop.DBus.Property.EmitsChangedSignal("const")
      readonly t LimitLOCKSSoft = ...;
      @org.freedesktop.DBus.Property.EmitsChangedSignal("const")
      readonly t LimitSIGPENDING = ...;
      @org.freedesktop.DBus.Property.EmitsChangedSignal("const")
      readonly t LimitSIGPENDINGSoft = ...;
      @org.freedesktop.DBus.Property.EmitsChangedSignal("const")
      readonly t LimitMSGQUEUE = ...;
      @org.freedesktop.DBus.Property.EmitsChangedSignal("const")
      readonly t LimitMSGQUEUESoft = ...;
      @org.freedesktop.DBus.Property.EmitsChangedSignal("const")
      readonly t LimitNICE = ...;
      @org.freedesktop.DBus.Property.EmitsChangedSignal("const")
      readonly t LimitNICESoft = ...;
      @org.freedesktop.DBus.Property.EmitsChangedSignal("const")
      readonly t LimitRTPRIO = ...;
      @org.freedesktop.DBus.Property.EmitsChangedSignal("const")
      readonly t LimitRTPRIOSoft = ...;
      @org.freedesktop.DBus.Property.EmitsChangedSignal("const")
      readonly t LimitRTTIME = ...;
      @org.freedesktop.DBus.Property.EmitsChangedSignal("const")
      readonly t LimitRTTIMESoft = ...;
      @org.freedesktop.DBus.Property.EmitsChangedSignal("const")
      readonly s WorkingDirectory = '...';
      @org.freedesktop.DBus.Property.EmitsChangedSignal("const")
      readonly s RootDirectory = '...';
      @org.freedesktop.DBus.Property.EmitsChangedSignal("const")
      readonly s RootImage = '...';
      @org.freedesktop.DBus.Property.EmitsChangedSignal("const")
      readonly a(ss) RootImageOptions = [...];
      @org.freedesktop.DBus.Property.EmitsChangedSignal("const")
      readonly ay RootHash = [...];
      @org.freedesktop.DBus.Property.EmitsChangedSignal("const")
      readonly s RootHashPath = '...';
      @org.freedesktop.DBus.Property.EmitsChangedSignal("const")
      readonly ay RootHashSignature = [...];
      @org.freedesktop.DBus.Property.EmitsChangedSignal("const")
      readonly s RootHashSignaturePath = '...';
      @org.freedesktop.DBus.Property.EmitsChangedSignal("const")
      readonly s RootVerity = '...';
      @org.freedesktop.DBus.Property.EmitsChangedSignal("const")
      readonly a(sba(ss)) ExtensionImages = [...];
      @org.freedesktop.DBus.Property.EmitsChangedSignal("const")
      readonly a(ssba(ss)) MountImages = [...];
      @org.freedesktop.DBus.Property.EmitsChangedSignal("const")
      readonly i OOMScoreAdjust = ...;
      @org.freedesktop.DBus.Property.EmitsChangedSignal("const")
      readonly t CoredumpFilter = ...;
      @org.freedesktop.DBus.Property.EmitsChangedSignal("const")
      readonly i Nice = ...;
      @org.freedesktop.DBus.Property.EmitsChangedSignal("const")
      readonly i IOSchedulingClass = ...;
      @org.freedesktop.DBus.Property.EmitsChangedSignal("const")
      readonly i IOSchedulingPriority = ...;
      @org.freedesktop.DBus.Property.EmitsChangedSignal("const")
      readonly i CPUSchedulingPolicy = ...;
      @org.freedesktop.DBus.Property.EmitsChangedSignal("const")
      readonly i CPUSchedulingPriority = ...;
      @org.freedesktop.DBus.Property.EmitsChangedSignal("const")
      readonly ay CPUAffinity = [...];
      @org.freedesktop.DBus.Property.EmitsChangedSignal("const")
      readonly b CPUAffinityFromNUMA = ...;
      @org.freedesktop.DBus.Property.EmitsChangedSignal("const")
      readonly i NUMAPolicy = ...;
      @org.freedesktop.DBus.Property.EmitsChangedSignal("const")
      readonly ay NUMAMask = [...];
      @org.freedesktop.DBus.Property.EmitsChangedSignal("const")
      readonly t TimerSlackNSec = ...;
      @org.freedesktop.DBus.Property.EmitsChangedSignal("const")
      readonly b CPUSchedulingResetOnFork = ...;
      @org.freedesktop.DBus.Property.EmitsChangedSignal("const")
      readonly b NonBlocking = ...;
      @org.freedesktop.DBus.Property.EmitsChangedSignal("const")
      readonly s StandardInput = '...';
      @org.freedesktop.DBus.Property.EmitsChangedSignal("const")
      readonly s StandardInputFileDescriptorName = '...';
      @org.freedesktop.DBus.Property.EmitsChangedSignal("const")
      readonly ay StandardInputData = [...];
      @org.freedesktop.DBus.Property.EmitsChangedSignal("const")
      readonly s StandardOutput = '...';
      @org.freedesktop.DBus.Property.EmitsChangedSignal("const")
      readonly s StandardOutputFileDescriptorName = '...';
      @org.freedesktop.DBus.Property.EmitsChangedSignal("const")
      readonly s StandardError = '...';
      @org.freedesktop.DBus.Property.EmitsChangedSignal("const")
      readonly s StandardErrorFileDescriptorName = '...';
      @org.freedesktop.DBus.Property.EmitsChangedSignal("const")
      readonly s TTYPath = '...';
      @org.freedesktop.DBus.Property.EmitsChangedSignal("const")
      readonly b TTYReset = ...;
      @org.freedesktop.DBus.Property.EmitsChangedSignal("const")
      readonly b TTYVHangup = ...;
      @org.freedesktop.DBus.Property.EmitsChangedSignal("const")
      readonly b TTYVTDisallocate = ...;
      @org.freedesktop.DBus.Property.EmitsChangedSignal("const")
      readonly i SyslogPriority = ...;
      @org.freedesktop.DBus.Property.EmitsChangedSignal("const")
      readonly s SyslogIdentifier = '...';
      @org.freedesktop.DBus.Property.EmitsChangedSignal("const")
      readonly b SyslogLevelPrefix = ...;
      @org.freedesktop.DBus.Property.EmitsChangedSignal("const")
      readonly i SyslogLevel = ...;
      @org.freedesktop.DBus.Property.EmitsChangedSignal("const")
      readonly i SyslogFacility = ...;
      @org.freedesktop.DBus.Property.EmitsChangedSignal("const")
      readonly i LogLevelMax = ...;
      @org.freedesktop.DBus.Property.EmitsChangedSignal("const")
      readonly t LogRateLimitIntervalUSec = ...;
      @org.freedesktop.DBus.Property.EmitsChangedSignal("const")
      readonly u LogRateLimitBurst = ...;
      @org.freedesktop.DBus.Property.EmitsChangedSignal("const")
      readonly aay LogExtraFields = [[...], ...];
      @org.freedesktop.DBus.Property.EmitsChangedSignal("const")
      readonly s LogNamespace = '...';
      @org.freedesktop.DBus.Property.EmitsChangedSignal("const")
      readonly i SecureBits = ...;
      @org.freedesktop.DBus.Property.EmitsChangedSignal("const")
      readonly t CapabilityBoundingSet = ...;
      @org.freedesktop.DBus.Property.EmitsChangedSignal("const")
      readonly t AmbientCapabilities = ...;
      @org.freedesktop.DBus.Property.EmitsChangedSignal("const")
      readonly s User = '...';
      @org.freedesktop.DBus.Property.EmitsChangedSignal("const")
      readonly s Group = '...';
      @org.freedesktop.DBus.Property.EmitsChangedSignal("const")
      readonly b DynamicUser = ...;
      @org.freedesktop.DBus.Property.EmitsChangedSignal("const")
      readonly b RemoveIPC = ...;
      @org.freedesktop.DBus.Property.EmitsChangedSignal("const")
      readonly a(say) SetCredential = [...];
      @org.freedesktop.DBus.Property.EmitsChangedSignal("const")
      readonly a(ss) LoadCredential = [...];
      @org.freedesktop.DBus.Property.EmitsChangedSignal("const")
      readonly as SupplementaryGroups = ['...', ...];
      @org.freedesktop.DBus.Property.EmitsChangedSignal("const")
      readonly s PAMName = '...';
      @org.freedesktop.DBus.Property.EmitsChangedSignal("const")
      readonly as ReadWritePaths = ['...', ...];
      @org.freedesktop.DBus.Property.EmitsChangedSignal("const")
      readonly as ReadOnlyPaths = ['...', ...];
      @org.freedesktop.DBus.Property.EmitsChangedSignal("const")
      readonly as InaccessiblePaths = ['...', ...];
      @org.freedesktop.DBus.Property.EmitsChangedSignal("const")
      readonly as ExecPaths = ['...', ...];
      @org.freedesktop.DBus.Property.EmitsChangedSignal("const")
      readonly as NoExecPaths = ['...', ...];
      @org.freedesktop.DBus.Property.EmitsChangedSignal("const")
      readonly t MountFlags = ...;
      @org.freedesktop.DBus.Property.EmitsChangedSignal("const")
      readonly b PrivateTmp = ...;
      @org.freedesktop.DBus.Property.EmitsChangedSignal("const")
      readonly b PrivateDevices = ...;
      @org.freedesktop.DBus.Property.EmitsChangedSignal("const")
      readonly b ProtectClock = ...;
      @org.freedesktop.DBus.Property.EmitsChangedSignal("const")
      readonly b ProtectKernelTunables = ...;
      @org.freedesktop.DBus.Property.EmitsChangedSignal("const")
      readonly b ProtectKernelModules = ...;
      @org.freedesktop.DBus.Property.EmitsChangedSignal("const")
      readonly b ProtectKernelLogs = ...;
      @org.freedesktop.DBus.Property.EmitsChangedSignal("const")
      readonly b ProtectControlGroups = ...;
      @org.freedesktop.DBus.Property.EmitsChangedSignal("const")
      readonly b PrivateNetwork = ...;
      @org.freedesktop.DBus.Property.EmitsChangedSignal("const")
      readonly b PrivateUsers = ...;
      @org.freedesktop.DBus.Property.EmitsChangedSignal("const")
      readonly b PrivateMounts = ...;
      @org.freedesktop.DBus.Property.EmitsChangedSignal("const")
      readonly b PrivateIPC = ...;
      @org.freedesktop.DBus.Property.EmitsChangedSignal("const")
      readonly s ProtectHome = '...';
      @org.freedesktop.DBus.Property.EmitsChangedSignal("const")
      readonly s ProtectSystem = '...';
      @org.freedesktop.DBus.Property.EmitsChangedSignal("const")
      readonly b SameProcessGroup = ...;
      @org.freedesktop.DBus.Property.EmitsChangedSignal("const")
      readonly s UtmpIdentifier = '...';
      @org.freedesktop.DBus.Property.EmitsChangedSignal("const")
      readonly s UtmpMode = '...';
      @org.freedesktop.DBus.Property.EmitsChangedSignal("const")
      readonly (bs) SELinuxContext = ...;
      @org.freedesktop.DBus.Property.EmitsChangedSignal("const")
      readonly (bs) AppArmorProfile = ...;
      @org.freedesktop.DBus.Property.EmitsChangedSignal("const")
      readonly (bs) SmackProcessLabel = ...;
      @org.freedesktop.DBus.Property.EmitsChangedSignal("const")
      readonly b IgnoreSIGPIPE = ...;
      @org.freedesktop.DBus.Property.EmitsChangedSignal("const")
      readonly b NoNewPrivileges = ...;
      @org.freedesktop.DBus.Property.EmitsChangedSignal("const")
      readonly (bas) SystemCallFilter = ...;
      @org.freedesktop.DBus.Property.EmitsChangedSignal("const")
      readonly as SystemCallArchitectures = ['...', ...];
      @org.freedesktop.DBus.Property.EmitsChangedSignal("const")
      readonly i SystemCallErrorNumber = ...;
      @org.freedesktop.DBus.Property.EmitsChangedSignal("const")
      readonly (bas) SystemCallLog = ...;
      @org.freedesktop.DBus.Property.EmitsChangedSignal("const")
      readonly s Personality = '...';
      @org.freedesktop.DBus.Property.EmitsChangedSignal("const")
      readonly b LockPersonality = ...;
      @org.freedesktop.DBus.Property.EmitsChangedSignal("const")
      readonly (bas) RestrictAddressFamilies = ...;
      @org.freedesktop.DBus.Property.EmitsChangedSignal("const")
      readonly s RuntimeDirectoryPreserve = '...';
      @org.freedesktop.DBus.Property.EmitsChangedSignal("const")
      readonly u RuntimeDirectoryMode = ...;
      @org.freedesktop.DBus.Property.EmitsChangedSignal("const")
      readonly as RuntimeDirectory = ['...', ...];
      @org.freedesktop.DBus.Property.EmitsChangedSignal("const")
      readonly u StateDirectoryMode = ...;
      @org.freedesktop.DBus.Property.EmitsChangedSignal("const")
      readonly as StateDirectory = ['...', ...];
      @org.freedesktop.DBus.Property.EmitsChangedSignal("const")
      readonly u CacheDirectoryMode = ...;
      @org.freedesktop.DBus.Property.EmitsChangedSignal("const")
      readonly as CacheDirectory = ['...', ...];
      @org.freedesktop.DBus.Property.EmitsChangedSignal("const")
      readonly u LogsDirectoryMode = ...;
      @org.freedesktop.DBus.Property.EmitsChangedSignal("const")
      readonly as LogsDirectory = ['...', ...];
      @org.freedesktop.DBus.Property.EmitsChangedSignal("const")
      readonly u ConfigurationDirectoryMode = ...;
      @org.freedesktop.DBus.Property.EmitsChangedSignal("const")
      readonly as ConfigurationDirectory = ['...', ...];
      @org.freedesktop.DBus.Property.EmitsChangedSignal("const")
      readonly t TimeoutCleanUSec = ...;
      @org.freedesktop.DBus.Property.EmitsChangedSignal("const")
      readonly b MemoryDenyWriteExecute = ...;
      @org.freedesktop.DBus.Property.EmitsChangedSignal("const")
      readonly b RestrictRealtime = ...;
      @org.freedesktop.DBus.Property.EmitsChangedSignal("const")
      readonly b RestrictSUIDSGID = ...;
      @org.freedesktop.DBus.Property.EmitsChangedSignal("const")
      readonly t RestrictNamespaces = ...;
      @org.freedesktop.DBus.Property.EmitsChangedSignal("const")
      readonly a(ssbt) BindPaths = [...];
      @org.freedesktop.DBus.Property.EmitsChangedSignal("const")
      readonly a(ssbt) BindReadOnlyPaths = [...];
      @org.freedesktop.DBus.Property.EmitsChangedSignal("const")
      readonly a(ss) TemporaryFileSystem = [...];
      @org.freedesktop.DBus.Property.EmitsChangedSignal("const")
      readonly b MountAPIVFS = ...;
      @org.freedesktop.DBus.Property.EmitsChangedSignal("const")
      readonly s KeyringMode = '...';
      @org.freedesktop.DBus.Property.EmitsChangedSignal("const")
      readonly s ProtectProc = '...';
      @org.freedesktop.DBus.Property.EmitsChangedSignal("const")
      readonly s ProcSubset = '...';
      @org.freedesktop.DBus.Property.EmitsChangedSignal("const")
      readonly b ProtectHostname = ...;
      @org.freedesktop.DBus.Property.EmitsChangedSignal("const")
      readonly s NetworkNamespacePath = '...';
      @org.freedesktop.DBus.Property.EmitsChangedSignal("const")
      readonly s IPCNamespacePath = '...';
      @org.freedesktop.DBus.Property.EmitsChangedSignal("const")
      readonly s KillMode = '...';
      @org.freedesktop.DBus.Property.EmitsChangedSignal("const")
      readonly i KillSignal = ...;
      @org.freedesktop.DBus.Property.EmitsChangedSignal("const")
      readonly i RestartKillSignal = ...;
      @org.freedesktop.DBus.Property.EmitsChangedSignal("const")
      readonly i FinalKillSignal = ...;
      @org.freedesktop.DBus.Property.EmitsChangedSignal("const")
      readonly b SendSIGKILL = ...;
      @org.freedesktop.DBus.Property.EmitsChangedSignal("const")
      readonly b SendSIGHUP = ...;
      @org.freedesktop.DBus.Property.EmitsChangedSignal("const")
      readonly i WatchdogSignal = ...;
  };
  interface org.freedesktop.DBus.Peer { ... };
  interface org.freedesktop.DBus.Introspectable { ... };
  interface org.freedesktop.DBus.Properties { ... };
  interface org.freedesktop.systemd1.Unit { ... };
};
    </programlisting>

    <!--method GetProcesses is not documented!-->

    <!--method AttachProcesses is not documented!-->

    <!--property BindIPv6Only is not documented!-->

    <!--property Backlog is not documented!-->

    <!--property TimeoutUSec is not documented!-->

    <!--property BindToDevice is not documented!-->

    <!--property SocketUser is not documented!-->

    <!--property SocketGroup is not documented!-->

    <!--property SocketMode is not documented!-->

    <!--property DirectoryMode is not documented!-->

    <!--property Writable is not documented!-->

    <!--property KeepAlive is not documented!-->

    <!--property KeepAliveTimeUSec is not documented!-->

    <!--property KeepAliveIntervalUSec is not documented!-->

    <!--property KeepAliveProbes is not documented!-->

    <!--property DeferAcceptUSec is not documented!-->

    <!--property NoDelay is not documented!-->

    <!--property Priority is not documented!-->

    <!--property ReceiveBuffer is not documented!-->

    <!--property SendBuffer is not documented!-->

    <!--property IPTOS is not documented!-->

    <!--property IPTTL is not documented!-->

    <!--property PipeSize is not documented!-->

    <!--property FreeBind is not documented!-->

    <!--property Transparent is not documented!-->

    <!--property Broadcast is not documented!-->

    <!--property PassCredentials is not documented!-->

    <!--property PassSecurity is not documented!-->

    <!--property PassPacketInfo is not documented!-->

    <!--property Timestamping is not documented!-->

    <!--property RemoveOnStop is not documented!-->

    <!--property Listen is not documented!-->

    <!--property Symlinks is not documented!-->

    <!--property Mark is not documented!-->

    <!--property MaxConnections is not documented!-->

    <!--property MaxConnectionsPerSource is not documented!-->

    <!--property MessageQueueMaxMessages is not documented!-->

    <!--property MessageQueueMessageSize is not documented!-->

    <!--property TCPCongestion is not documented!-->

    <!--property ReusePort is not documented!-->

    <!--property SmackLabel is not documented!-->

    <!--property SmackLabelIPIn is not documented!-->

    <!--property SmackLabelIPOut is not documented!-->

    <!--property NRefused is not documented!-->

    <!--property FileDescriptorName is not documented!-->

    <!--property SocketProtocol is not documented!-->

    <!--property TriggerLimitIntervalUSec is not documented!-->

    <!--property TriggerLimitBurst is not documented!-->

    <!--property UID is not documented!-->

    <!--property GID is not documented!-->

    <!--property ExecStopPre is not documented!-->

    <!--property ExecStopPost is not documented!-->

    <!--property Slice is not documented!-->

    <!--property MemoryCurrent is not documented!-->

    <!--property CPUUsageNSec is not documented!-->

    <!--property EffectiveCPUs is not documented!-->

    <!--property EffectiveMemoryNodes is not documented!-->

    <!--property TasksCurrent is not documented!-->

    <!--property IPIngressBytes is not documented!-->

    <!--property IPIngressPackets is not documented!-->

    <!--property IPEgressBytes is not documented!-->

    <!--property IPEgressPackets is not documented!-->

    <!--property IOReadBytes is not documented!-->

    <!--property IOReadOperations is not documented!-->

    <!--property IOWriteBytes is not documented!-->

    <!--property IOWriteOperations is not documented!-->

    <!--property Delegate is not documented!-->

    <!--property DelegateControllers is not documented!-->

    <!--property CPUAccounting is not documented!-->

    <!--property CPUWeight is not documented!-->

    <!--property StartupCPUWeight is not documented!-->

    <!--property CPUShares is not documented!-->

    <!--property StartupCPUShares is not documented!-->

    <!--property CPUQuotaPerSecUSec is not documented!-->

    <!--property CPUQuotaPeriodUSec is not documented!-->

    <!--property AllowedCPUs is not documented!-->

    <!--property AllowedMemoryNodes is not documented!-->

    <!--property IOAccounting is not documented!-->

    <!--property IOWeight is not documented!-->

    <!--property StartupIOWeight is not documented!-->

    <!--property IODeviceWeight is not documented!-->

    <!--property IOReadBandwidthMax is not documented!-->

    <!--property IOWriteBandwidthMax is not documented!-->

    <!--property IOReadIOPSMax is not documented!-->

    <!--property IOWriteIOPSMax is not documented!-->

    <!--property IODeviceLatencyTargetUSec is not documented!-->

    <!--property BlockIOAccounting is not documented!-->

    <!--property BlockIOWeight is not documented!-->

    <!--property StartupBlockIOWeight is not documented!-->

    <!--property BlockIODeviceWeight is not documented!-->

    <!--property BlockIOReadBandwidth is not documented!-->

    <!--property BlockIOWriteBandwidth is not documented!-->

    <!--property MemoryAccounting is not documented!-->

    <!--property DefaultMemoryLow is not documented!-->

    <!--property DefaultMemoryMin is not documented!-->

    <!--property MemoryMin is not documented!-->

    <!--property MemoryLow is not documented!-->

    <!--property MemoryHigh is not documented!-->

    <!--property MemoryMax is not documented!-->

    <!--property MemorySwapMax is not documented!-->

    <!--property MemoryLimit is not documented!-->

    <!--property DevicePolicy is not documented!-->

    <!--property DeviceAllow is not documented!-->

    <!--property TasksAccounting is not documented!-->

    <!--property TasksMax is not documented!-->

    <!--property IPAccounting is not documented!-->

    <!--property IPAddressAllow is not documented!-->

    <!--property IPAddressDeny is not documented!-->

    <!--property IPIngressFilterPath is not documented!-->

    <!--property IPEgressFilterPath is not documented!-->

    <!--property DisableControllers is not documented!-->

    <!--property ManagedOOMSwap is not documented!-->

    <!--property ManagedOOMMemoryPressure is not documented!-->

    <!--property ManagedOOMMemoryPressureLimit is not documented!-->

    <!--property ManagedOOMPreference is not documented!-->

    <!--property BPFProgram is not documented!-->

    <!--property SocketBindAllow is not documented!-->

    <!--property SocketBindDeny is not documented!-->

    <!--property EnvironmentFiles is not documented!-->

    <!--property PassEnvironment is not documented!-->

    <!--property UnsetEnvironment is not documented!-->

    <!--property UMask is not documented!-->

    <!--property LimitCPUSoft is not documented!-->

    <!--property LimitFSIZE is not documented!-->

    <!--property LimitFSIZESoft is not documented!-->

    <!--property LimitDATA is not documented!-->

    <!--property LimitDATASoft is not documented!-->

    <!--property LimitSTACK is not documented!-->

    <!--property LimitSTACKSoft is not documented!-->

    <!--property LimitCORE is not documented!-->

    <!--property LimitCORESoft is not documented!-->

    <!--property LimitRSS is not documented!-->

    <!--property LimitRSSSoft is not documented!-->

    <!--property LimitNOFILE is not documented!-->

    <!--property LimitNOFILESoft is not documented!-->

    <!--property LimitAS is not documented!-->

    <!--property LimitASSoft is not documented!-->

    <!--property LimitNPROC is not documented!-->

    <!--property LimitNPROCSoft is not documented!-->

    <!--property LimitMEMLOCK is not documented!-->

    <!--property LimitMEMLOCKSoft is not documented!-->

    <!--property LimitLOCKS is not documented!-->

    <!--property LimitLOCKSSoft is not documented!-->

    <!--property LimitSIGPENDING is not documented!-->

    <!--property LimitSIGPENDINGSoft is not documented!-->

    <!--property LimitMSGQUEUE is not documented!-->

    <!--property LimitMSGQUEUESoft is not documented!-->

    <!--property LimitNICE is not documented!-->

    <!--property LimitNICESoft is not documented!-->

    <!--property LimitRTPRIO is not documented!-->

    <!--property LimitRTPRIOSoft is not documented!-->

    <!--property LimitRTTIME is not documented!-->

    <!--property LimitRTTIMESoft is not documented!-->

    <!--property WorkingDirectory is not documented!-->

    <!--property RootHashPath is not documented!-->

    <!--property RootHashSignaturePath is not documented!-->

    <!--property OOMScoreAdjust is not documented!-->

    <!--property CoredumpFilter is not documented!-->

    <!--property Nice is not documented!-->

    <!--property IOSchedulingClass is not documented!-->

    <!--property IOSchedulingPriority is not documented!-->

    <!--property CPUSchedulingPolicy is not documented!-->

    <!--property CPUSchedulingPriority is not documented!-->

    <!--property CPUAffinity is not documented!-->

    <!--property CPUAffinityFromNUMA is not documented!-->

    <!--property NUMAPolicy is not documented!-->

    <!--property NUMAMask is not documented!-->

    <!--property TimerSlackNSec is not documented!-->

    <!--property CPUSchedulingResetOnFork is not documented!-->

    <!--property NonBlocking is not documented!-->

    <!--property StandardInput is not documented!-->

    <!--property StandardInputFileDescriptorName is not documented!-->

    <!--property StandardInputData is not documented!-->

    <!--property StandardOutput is not documented!-->

    <!--property StandardOutputFileDescriptorName is not documented!-->

    <!--property StandardError is not documented!-->

    <!--property StandardErrorFileDescriptorName is not documented!-->

    <!--property TTYPath is not documented!-->

    <!--property TTYReset is not documented!-->

    <!--property TTYVHangup is not documented!-->

    <!--property TTYVTDisallocate is not documented!-->

    <!--property SyslogPriority is not documented!-->

    <!--property SyslogIdentifier is not documented!-->

    <!--property SyslogLevelPrefix is not documented!-->

    <!--property SyslogLevel is not documented!-->

    <!--property SyslogFacility is not documented!-->

    <!--property LogLevelMax is not documented!-->

    <!--property LogRateLimitIntervalUSec is not documented!-->

    <!--property LogRateLimitBurst is not documented!-->

    <!--property LogExtraFields is not documented!-->

    <!--property LogNamespace is not documented!-->

    <!--property AmbientCapabilities is not documented!-->

    <!--property User is not documented!-->

    <!--property Group is not documented!-->

    <!--property DynamicUser is not documented!-->

    <!--property RemoveIPC is not documented!-->

    <!--property SetCredential is not documented!-->

    <!--property LoadCredential is not documented!-->

    <!--property SupplementaryGroups is not documented!-->

    <!--property PAMName is not documented!-->

    <!--property ReadWritePaths is not documented!-->

    <!--property ReadOnlyPaths is not documented!-->

    <!--property InaccessiblePaths is not documented!-->

    <!--property ExecPaths is not documented!-->

    <!--property NoExecPaths is not documented!-->

    <!--property PrivateTmp is not documented!-->

    <!--property PrivateDevices is not documented!-->

    <!--property ProtectClock is not documented!-->

    <!--property ProtectKernelTunables is not documented!-->

    <!--property ProtectKernelModules is not documented!-->

    <!--property ProtectKernelLogs is not documented!-->

    <!--property ProtectControlGroups is not documented!-->

    <!--property PrivateNetwork is not documented!-->

    <!--property PrivateUsers is not documented!-->

    <!--property PrivateMounts is not documented!-->

    <!--property PrivateIPC is not documented!-->

    <!--property ProtectHome is not documented!-->

    <!--property ProtectSystem is not documented!-->

    <!--property SameProcessGroup is not documented!-->

    <!--property UtmpIdentifier is not documented!-->

    <!--property UtmpMode is not documented!-->

    <!--property SELinuxContext is not documented!-->

    <!--property AppArmorProfile is not documented!-->

    <!--property SmackProcessLabel is not documented!-->

    <!--property IgnoreSIGPIPE is not documented!-->

    <!--property NoNewPrivileges is not documented!-->

    <!--property SystemCallFilter is not documented!-->

    <!--property SystemCallArchitectures is not documented!-->

    <!--property SystemCallErrorNumber is not documented!-->

    <!--property SystemCallLog is not documented!-->

    <!--property Personality is not documented!-->

    <!--property LockPersonality is not documented!-->

    <!--property RestrictAddressFamilies is not documented!-->

    <!--property RuntimeDirectoryPreserve is not documented!-->

    <!--property RuntimeDirectoryMode is not documented!-->

    <!--property RuntimeDirectory is not documented!-->

    <!--property StateDirectoryMode is not documented!-->

    <!--property StateDirectory is not documented!-->

    <!--property CacheDirectoryMode is not documented!-->

    <!--property CacheDirectory is not documented!-->

    <!--property LogsDirectoryMode is not documented!-->

    <!--property LogsDirectory is not documented!-->

    <!--property ConfigurationDirectoryMode is not documented!-->

    <!--property ConfigurationDirectory is not documented!-->

    <!--property TimeoutCleanUSec is not documented!-->

    <!--property MemoryDenyWriteExecute is not documented!-->

    <!--property RestrictRealtime is not documented!-->

    <!--property RestrictSUIDSGID is not documented!-->

    <!--property RestrictNamespaces is not documented!-->

    <!--property BindPaths is not documented!-->

    <!--property BindReadOnlyPaths is not documented!-->

    <!--property TemporaryFileSystem is not documented!-->

    <!--property MountAPIVFS is not documented!-->

    <!--property KeyringMode is not documented!-->

    <!--property ProtectProc is not documented!-->

    <!--property ProcSubset is not documented!-->

    <!--property ProtectHostname is not documented!-->

    <!--property NetworkNamespacePath is not documented!-->

    <!--property IPCNamespacePath is not documented!-->

    <!--property KillMode is not documented!-->

    <!--property KillSignal is not documented!-->

    <!--property RestartKillSignal is not documented!-->

    <!--property FinalKillSignal is not documented!-->

    <!--property SendSIGKILL is not documented!-->

    <!--property SendSIGHUP is not documented!-->

    <!--property WatchdogSignal is not documented!-->

    <!--Autogenerated cross-references for systemd.directives, do not edit-->

    <variablelist class="dbus-interface" generated="True" extra-ref="org.freedesktop.systemd1.Unit"/>

    <variablelist class="dbus-interface" generated="True" extra-ref="org.freedesktop.systemd1.Socket"/>

    <variablelist class="dbus-interface" generated="True" extra-ref="org.freedesktop.systemd1.Unit"/>

    <variablelist class="dbus-interface" generated="True" extra-ref="org.freedesktop.systemd1.Socket"/>

    <variablelist class="dbus-method" generated="True" extra-ref="GetProcesses()"/>

    <variablelist class="dbus-method" generated="True" extra-ref="AttachProcesses()"/>

    <variablelist class="dbus-property" generated="True" extra-ref="BindIPv6Only"/>

    <variablelist class="dbus-property" generated="True" extra-ref="Backlog"/>

    <variablelist class="dbus-property" generated="True" extra-ref="TimeoutUSec"/>

    <variablelist class="dbus-property" generated="True" extra-ref="BindToDevice"/>

    <variablelist class="dbus-property" generated="True" extra-ref="SocketUser"/>

    <variablelist class="dbus-property" generated="True" extra-ref="SocketGroup"/>

    <variablelist class="dbus-property" generated="True" extra-ref="SocketMode"/>

    <variablelist class="dbus-property" generated="True" extra-ref="DirectoryMode"/>

    <variablelist class="dbus-property" generated="True" extra-ref="Accept"/>

    <variablelist class="dbus-property" generated="True" extra-ref="FlushPending"/>

    <variablelist class="dbus-property" generated="True" extra-ref="Writable"/>

    <variablelist class="dbus-property" generated="True" extra-ref="KeepAlive"/>

    <variablelist class="dbus-property" generated="True" extra-ref="KeepAliveTimeUSec"/>

    <variablelist class="dbus-property" generated="True" extra-ref="KeepAliveIntervalUSec"/>

    <variablelist class="dbus-property" generated="True" extra-ref="KeepAliveProbes"/>

    <variablelist class="dbus-property" generated="True" extra-ref="DeferAcceptUSec"/>

    <variablelist class="dbus-property" generated="True" extra-ref="NoDelay"/>

    <variablelist class="dbus-property" generated="True" extra-ref="Priority"/>

    <variablelist class="dbus-property" generated="True" extra-ref="ReceiveBuffer"/>

    <variablelist class="dbus-property" generated="True" extra-ref="SendBuffer"/>

    <variablelist class="dbus-property" generated="True" extra-ref="IPTOS"/>

    <variablelist class="dbus-property" generated="True" extra-ref="IPTTL"/>

    <variablelist class="dbus-property" generated="True" extra-ref="PipeSize"/>

    <variablelist class="dbus-property" generated="True" extra-ref="FreeBind"/>

    <variablelist class="dbus-property" generated="True" extra-ref="Transparent"/>

    <variablelist class="dbus-property" generated="True" extra-ref="Broadcast"/>

    <variablelist class="dbus-property" generated="True" extra-ref="PassCredentials"/>

    <variablelist class="dbus-property" generated="True" extra-ref="PassSecurity"/>

    <variablelist class="dbus-property" generated="True" extra-ref="PassPacketInfo"/>

    <variablelist class="dbus-property" generated="True" extra-ref="Timestamping"/>

    <variablelist class="dbus-property" generated="True" extra-ref="RemoveOnStop"/>

    <variablelist class="dbus-property" generated="True" extra-ref="Listen"/>

    <variablelist class="dbus-property" generated="True" extra-ref="Symlinks"/>

    <variablelist class="dbus-property" generated="True" extra-ref="Mark"/>

    <variablelist class="dbus-property" generated="True" extra-ref="MaxConnections"/>

    <variablelist class="dbus-property" generated="True" extra-ref="MaxConnectionsPerSource"/>

    <variablelist class="dbus-property" generated="True" extra-ref="MessageQueueMaxMessages"/>

    <variablelist class="dbus-property" generated="True" extra-ref="MessageQueueMessageSize"/>

    <variablelist class="dbus-property" generated="True" extra-ref="TCPCongestion"/>

    <variablelist class="dbus-property" generated="True" extra-ref="ReusePort"/>

    <variablelist class="dbus-property" generated="True" extra-ref="SmackLabel"/>

    <variablelist class="dbus-property" generated="True" extra-ref="SmackLabelIPIn"/>

    <variablelist class="dbus-property" generated="True" extra-ref="SmackLabelIPOut"/>

    <variablelist class="dbus-property" generated="True" extra-ref="ControlPID"/>

    <variablelist class="dbus-property" generated="True" extra-ref="Result"/>

    <variablelist class="dbus-property" generated="True" extra-ref="NConnections"/>

    <variablelist class="dbus-property" generated="True" extra-ref="NAccepted"/>

    <variablelist class="dbus-property" generated="True" extra-ref="NRefused"/>

    <variablelist class="dbus-property" generated="True" extra-ref="FileDescriptorName"/>

    <variablelist class="dbus-property" generated="True" extra-ref="SocketProtocol"/>

    <variablelist class="dbus-property" generated="True" extra-ref="TriggerLimitIntervalUSec"/>

    <variablelist class="dbus-property" generated="True" extra-ref="TriggerLimitBurst"/>

    <variablelist class="dbus-property" generated="True" extra-ref="UID"/>

    <variablelist class="dbus-property" generated="True" extra-ref="GID"/>

    <variablelist class="dbus-property" generated="True" extra-ref="ExecStartPre"/>

    <variablelist class="dbus-property" generated="True" extra-ref="ExecStartPost"/>

    <variablelist class="dbus-property" generated="True" extra-ref="ExecStopPre"/>

    <variablelist class="dbus-property" generated="True" extra-ref="ExecStopPost"/>

    <variablelist class="dbus-property" generated="True" extra-ref="Slice"/>

    <variablelist class="dbus-property" generated="True" extra-ref="ControlGroup"/>

    <variablelist class="dbus-property" generated="True" extra-ref="MemoryCurrent"/>

    <variablelist class="dbus-property" generated="True" extra-ref="MemoryAvailable"/>

    <variablelist class="dbus-property" generated="True" extra-ref="CPUUsageNSec"/>

    <variablelist class="dbus-property" generated="True" extra-ref="EffectiveCPUs"/>

    <variablelist class="dbus-property" generated="True" extra-ref="EffectiveMemoryNodes"/>

    <variablelist class="dbus-property" generated="True" extra-ref="TasksCurrent"/>

    <variablelist class="dbus-property" generated="True" extra-ref="IPIngressBytes"/>

    <variablelist class="dbus-property" generated="True" extra-ref="IPIngressPackets"/>

    <variablelist class="dbus-property" generated="True" extra-ref="IPEgressBytes"/>

    <variablelist class="dbus-property" generated="True" extra-ref="IPEgressPackets"/>

    <variablelist class="dbus-property" generated="True" extra-ref="IOReadBytes"/>

    <variablelist class="dbus-property" generated="True" extra-ref="IOReadOperations"/>

    <variablelist class="dbus-property" generated="True" extra-ref="IOWriteBytes"/>

    <variablelist class="dbus-property" generated="True" extra-ref="IOWriteOperations"/>

    <variablelist class="dbus-property" generated="True" extra-ref="Delegate"/>

    <variablelist class="dbus-property" generated="True" extra-ref="DelegateControllers"/>

    <variablelist class="dbus-property" generated="True" extra-ref="CPUAccounting"/>

    <variablelist class="dbus-property" generated="True" extra-ref="CPUWeight"/>

    <variablelist class="dbus-property" generated="True" extra-ref="StartupCPUWeight"/>

    <variablelist class="dbus-property" generated="True" extra-ref="CPUShares"/>

    <variablelist class="dbus-property" generated="True" extra-ref="StartupCPUShares"/>

    <variablelist class="dbus-property" generated="True" extra-ref="CPUQuotaPerSecUSec"/>

    <variablelist class="dbus-property" generated="True" extra-ref="CPUQuotaPeriodUSec"/>

    <variablelist class="dbus-property" generated="True" extra-ref="AllowedCPUs"/>

    <variablelist class="dbus-property" generated="True" extra-ref="AllowedMemoryNodes"/>

    <variablelist class="dbus-property" generated="True" extra-ref="IOAccounting"/>

    <variablelist class="dbus-property" generated="True" extra-ref="IOWeight"/>

    <variablelist class="dbus-property" generated="True" extra-ref="StartupIOWeight"/>

    <variablelist class="dbus-property" generated="True" extra-ref="IODeviceWeight"/>

    <variablelist class="dbus-property" generated="True" extra-ref="IOReadBandwidthMax"/>

    <variablelist class="dbus-property" generated="True" extra-ref="IOWriteBandwidthMax"/>

    <variablelist class="dbus-property" generated="True" extra-ref="IOReadIOPSMax"/>

    <variablelist class="dbus-property" generated="True" extra-ref="IOWriteIOPSMax"/>

    <variablelist class="dbus-property" generated="True" extra-ref="IODeviceLatencyTargetUSec"/>

    <variablelist class="dbus-property" generated="True" extra-ref="BlockIOAccounting"/>

    <variablelist class="dbus-property" generated="True" extra-ref="BlockIOWeight"/>

    <variablelist class="dbus-property" generated="True" extra-ref="StartupBlockIOWeight"/>

    <variablelist class="dbus-property" generated="True" extra-ref="BlockIODeviceWeight"/>

    <variablelist class="dbus-property" generated="True" extra-ref="BlockIOReadBandwidth"/>

    <variablelist class="dbus-property" generated="True" extra-ref="BlockIOWriteBandwidth"/>

    <variablelist class="dbus-property" generated="True" extra-ref="MemoryAccounting"/>

    <variablelist class="dbus-property" generated="True" extra-ref="DefaultMemoryLow"/>

    <variablelist class="dbus-property" generated="True" extra-ref="DefaultMemoryMin"/>

    <variablelist class="dbus-property" generated="True" extra-ref="MemoryMin"/>

    <variablelist class="dbus-property" generated="True" extra-ref="MemoryLow"/>

    <variablelist class="dbus-property" generated="True" extra-ref="MemoryHigh"/>

    <variablelist class="dbus-property" generated="True" extra-ref="MemoryMax"/>

    <variablelist class="dbus-property" generated="True" extra-ref="MemorySwapMax"/>

    <variablelist class="dbus-property" generated="True" extra-ref="MemoryLimit"/>

    <variablelist class="dbus-property" generated="True" extra-ref="DevicePolicy"/>

    <variablelist class="dbus-property" generated="True" extra-ref="DeviceAllow"/>

    <variablelist class="dbus-property" generated="True" extra-ref="TasksAccounting"/>

    <variablelist class="dbus-property" generated="True" extra-ref="TasksMax"/>

    <variablelist class="dbus-property" generated="True" extra-ref="IPAccounting"/>

    <variablelist class="dbus-property" generated="True" extra-ref="IPAddressAllow"/>

    <variablelist class="dbus-property" generated="True" extra-ref="IPAddressDeny"/>

    <variablelist class="dbus-property" generated="True" extra-ref="IPIngressFilterPath"/>

    <variablelist class="dbus-property" generated="True" extra-ref="IPEgressFilterPath"/>

    <variablelist class="dbus-property" generated="True" extra-ref="DisableControllers"/>

    <variablelist class="dbus-property" generated="True" extra-ref="ManagedOOMSwap"/>

    <variablelist class="dbus-property" generated="True" extra-ref="ManagedOOMMemoryPressure"/>

    <variablelist class="dbus-property" generated="True" extra-ref="ManagedOOMMemoryPressureLimit"/>

    <variablelist class="dbus-property" generated="True" extra-ref="ManagedOOMPreference"/>

    <variablelist class="dbus-property" generated="True" extra-ref="BPFProgram"/>

    <variablelist class="dbus-property" generated="True" extra-ref="SocketBindAllow"/>

    <variablelist class="dbus-property" generated="True" extra-ref="SocketBindDeny"/>

    <variablelist class="dbus-property" generated="True" extra-ref="Environment"/>

    <variablelist class="dbus-property" generated="True" extra-ref="EnvironmentFiles"/>

    <variablelist class="dbus-property" generated="True" extra-ref="PassEnvironment"/>

    <variablelist class="dbus-property" generated="True" extra-ref="UnsetEnvironment"/>

    <variablelist class="dbus-property" generated="True" extra-ref="UMask"/>

    <variablelist class="dbus-property" generated="True" extra-ref="LimitCPU"/>

    <variablelist class="dbus-property" generated="True" extra-ref="LimitCPUSoft"/>

    <variablelist class="dbus-property" generated="True" extra-ref="LimitFSIZE"/>

    <variablelist class="dbus-property" generated="True" extra-ref="LimitFSIZESoft"/>

    <variablelist class="dbus-property" generated="True" extra-ref="LimitDATA"/>

    <variablelist class="dbus-property" generated="True" extra-ref="LimitDATASoft"/>

    <variablelist class="dbus-property" generated="True" extra-ref="LimitSTACK"/>

    <variablelist class="dbus-property" generated="True" extra-ref="LimitSTACKSoft"/>

    <variablelist class="dbus-property" generated="True" extra-ref="LimitCORE"/>

    <variablelist class="dbus-property" generated="True" extra-ref="LimitCORESoft"/>

    <variablelist class="dbus-property" generated="True" extra-ref="LimitRSS"/>

    <variablelist class="dbus-property" generated="True" extra-ref="LimitRSSSoft"/>

    <variablelist class="dbus-property" generated="True" extra-ref="LimitNOFILE"/>

    <variablelist class="dbus-property" generated="True" extra-ref="LimitNOFILESoft"/>

    <variablelist class="dbus-property" generated="True" extra-ref="LimitAS"/>

    <variablelist class="dbus-property" generated="True" extra-ref="LimitASSoft"/>

    <variablelist class="dbus-property" generated="True" extra-ref="LimitNPROC"/>

    <variablelist class="dbus-property" generated="True" extra-ref="LimitNPROCSoft"/>

    <variablelist class="dbus-property" generated="True" extra-ref="LimitMEMLOCK"/>

    <variablelist class="dbus-property" generated="True" extra-ref="LimitMEMLOCKSoft"/>

    <variablelist class="dbus-property" generated="True" extra-ref="LimitLOCKS"/>

    <variablelist class="dbus-property" generated="True" extra-ref="LimitLOCKSSoft"/>

    <variablelist class="dbus-property" generated="True" extra-ref="LimitSIGPENDING"/>

    <variablelist class="dbus-property" generated="True" extra-ref="LimitSIGPENDINGSoft"/>

    <variablelist class="dbus-property" generated="True" extra-ref="LimitMSGQUEUE"/>

    <variablelist class="dbus-property" generated="True" extra-ref="LimitMSGQUEUESoft"/>

    <variablelist class="dbus-property" generated="True" extra-ref="LimitNICE"/>

    <variablelist class="dbus-property" generated="True" extra-ref="LimitNICESoft"/>

    <variablelist class="dbus-property" generated="True" extra-ref="LimitRTPRIO"/>

    <variablelist class="dbus-property" generated="True" extra-ref="LimitRTPRIOSoft"/>

    <variablelist class="dbus-property" generated="True" extra-ref="LimitRTTIME"/>

    <variablelist class="dbus-property" generated="True" extra-ref="LimitRTTIMESoft"/>

    <variablelist class="dbus-property" generated="True" extra-ref="WorkingDirectory"/>

    <variablelist class="dbus-property" generated="True" extra-ref="RootDirectory"/>

    <variablelist class="dbus-property" generated="True" extra-ref="RootImage"/>

    <variablelist class="dbus-property" generated="True" extra-ref="RootImageOptions"/>

    <variablelist class="dbus-property" generated="True" extra-ref="RootHash"/>

    <variablelist class="dbus-property" generated="True" extra-ref="RootHashPath"/>

    <variablelist class="dbus-property" generated="True" extra-ref="RootHashSignature"/>

    <variablelist class="dbus-property" generated="True" extra-ref="RootHashSignaturePath"/>

    <variablelist class="dbus-property" generated="True" extra-ref="RootVerity"/>

    <variablelist class="dbus-property" generated="True" extra-ref="ExtensionImages"/>

    <variablelist class="dbus-property" generated="True" extra-ref="MountImages"/>

    <variablelist class="dbus-property" generated="True" extra-ref="OOMScoreAdjust"/>

    <variablelist class="dbus-property" generated="True" extra-ref="CoredumpFilter"/>

    <variablelist class="dbus-property" generated="True" extra-ref="Nice"/>

    <variablelist class="dbus-property" generated="True" extra-ref="IOSchedulingClass"/>

    <variablelist class="dbus-property" generated="True" extra-ref="IOSchedulingPriority"/>

    <variablelist class="dbus-property" generated="True" extra-ref="CPUSchedulingPolicy"/>

    <variablelist class="dbus-property" generated="True" extra-ref="CPUSchedulingPriority"/>

    <variablelist class="dbus-property" generated="True" extra-ref="CPUAffinity"/>

    <variablelist class="dbus-property" generated="True" extra-ref="CPUAffinityFromNUMA"/>

    <variablelist class="dbus-property" generated="True" extra-ref="NUMAPolicy"/>

    <variablelist class="dbus-property" generated="True" extra-ref="NUMAMask"/>

    <variablelist class="dbus-property" generated="True" extra-ref="TimerSlackNSec"/>

    <variablelist class="dbus-property" generated="True" extra-ref="CPUSchedulingResetOnFork"/>

    <variablelist class="dbus-property" generated="True" extra-ref="NonBlocking"/>

    <variablelist class="dbus-property" generated="True" extra-ref="StandardInput"/>

    <variablelist class="dbus-property" generated="True" extra-ref="StandardInputFileDescriptorName"/>

    <variablelist class="dbus-property" generated="True" extra-ref="StandardInputData"/>

    <variablelist class="dbus-property" generated="True" extra-ref="StandardOutput"/>

    <variablelist class="dbus-property" generated="True" extra-ref="StandardOutputFileDescriptorName"/>

    <variablelist class="dbus-property" generated="True" extra-ref="StandardError"/>

    <variablelist class="dbus-property" generated="True" extra-ref="StandardErrorFileDescriptorName"/>

    <variablelist class="dbus-property" generated="True" extra-ref="TTYPath"/>

    <variablelist class="dbus-property" generated="True" extra-ref="TTYReset"/>

    <variablelist class="dbus-property" generated="True" extra-ref="TTYVHangup"/>

    <variablelist class="dbus-property" generated="True" extra-ref="TTYVTDisallocate"/>

    <variablelist class="dbus-property" generated="True" extra-ref="SyslogPriority"/>

    <variablelist class="dbus-property" generated="True" extra-ref="SyslogIdentifier"/>

    <variablelist class="dbus-property" generated="True" extra-ref="SyslogLevelPrefix"/>

    <variablelist class="dbus-property" generated="True" extra-ref="SyslogLevel"/>

    <variablelist class="dbus-property" generated="True" extra-ref="SyslogFacility"/>

    <variablelist class="dbus-property" generated="True" extra-ref="LogLevelMax"/>

    <variablelist class="dbus-property" generated="True" extra-ref="LogRateLimitIntervalUSec"/>

    <variablelist class="dbus-property" generated="True" extra-ref="LogRateLimitBurst"/>

    <variablelist class="dbus-property" generated="True" extra-ref="LogExtraFields"/>

    <variablelist class="dbus-property" generated="True" extra-ref="LogNamespace"/>

    <variablelist class="dbus-property" generated="True" extra-ref="SecureBits"/>

    <variablelist class="dbus-property" generated="True" extra-ref="CapabilityBoundingSet"/>

    <variablelist class="dbus-property" generated="True" extra-ref="AmbientCapabilities"/>

    <variablelist class="dbus-property" generated="True" extra-ref="User"/>

    <variablelist class="dbus-property" generated="True" extra-ref="Group"/>

    <variablelist class="dbus-property" generated="True" extra-ref="DynamicUser"/>

    <variablelist class="dbus-property" generated="True" extra-ref="RemoveIPC"/>

    <variablelist class="dbus-property" generated="True" extra-ref="SetCredential"/>

    <variablelist class="dbus-property" generated="True" extra-ref="LoadCredential"/>

    <variablelist class="dbus-property" generated="True" extra-ref="SupplementaryGroups"/>

    <variablelist class="dbus-property" generated="True" extra-ref="PAMName"/>

    <variablelist class="dbus-property" generated="True" extra-ref="ReadWritePaths"/>

    <variablelist class="dbus-property" generated="True" extra-ref="ReadOnlyPaths"/>

    <variablelist class="dbus-property" generated="True" extra-ref="InaccessiblePaths"/>

    <variablelist class="dbus-property" generated="True" extra-ref="ExecPaths"/>

    <variablelist class="dbus-property" generated="True" extra-ref="NoExecPaths"/>

    <variablelist class="dbus-property" generated="True" extra-ref="MountFlags"/>

    <variablelist class="dbus-property" generated="True" extra-ref="PrivateTmp"/>

    <variablelist class="dbus-property" generated="True" extra-ref="PrivateDevices"/>

    <variablelist class="dbus-property" generated="True" extra-ref="ProtectClock"/>

    <variablelist class="dbus-property" generated="True" extra-ref="ProtectKernelTunables"/>

    <variablelist class="dbus-property" generated="True" extra-ref="ProtectKernelModules"/>

    <variablelist class="dbus-property" generated="True" extra-ref="ProtectKernelLogs"/>

    <variablelist class="dbus-property" generated="True" extra-ref="ProtectControlGroups"/>

    <variablelist class="dbus-property" generated="True" extra-ref="PrivateNetwork"/>

    <variablelist class="dbus-property" generated="True" extra-ref="PrivateUsers"/>

    <variablelist class="dbus-property" generated="True" extra-ref="PrivateMounts"/>

    <variablelist class="dbus-property" generated="True" extra-ref="PrivateIPC"/>

    <variablelist class="dbus-property" generated="True" extra-ref="ProtectHome"/>

    <variablelist class="dbus-property" generated="True" extra-ref="ProtectSystem"/>

    <variablelist class="dbus-property" generated="True" extra-ref="SameProcessGroup"/>

    <variablelist class="dbus-property" generated="True" extra-ref="UtmpIdentifier"/>

    <variablelist class="dbus-property" generated="True" extra-ref="UtmpMode"/>

    <variablelist class="dbus-property" generated="True" extra-ref="SELinuxContext"/>

    <variablelist class="dbus-property" generated="True" extra-ref="AppArmorProfile"/>

    <variablelist class="dbus-property" generated="True" extra-ref="SmackProcessLabel"/>

    <variablelist class="dbus-property" generated="True" extra-ref="IgnoreSIGPIPE"/>

    <variablelist class="dbus-property" generated="True" extra-ref="NoNewPrivileges"/>

    <variablelist class="dbus-property" generated="True" extra-ref="SystemCallFilter"/>

    <variablelist class="dbus-property" generated="True" extra-ref="SystemCallArchitectures"/>

    <variablelist class="dbus-property" generated="True" extra-ref="SystemCallErrorNumber"/>

    <variablelist class="dbus-property" generated="True" extra-ref="SystemCallLog"/>

    <variablelist class="dbus-property" generated="True" extra-ref="Personality"/>

    <variablelist class="dbus-property" generated="True" extra-ref="LockPersonality"/>

    <variablelist class="dbus-property" generated="True" extra-ref="RestrictAddressFamilies"/>

    <variablelist class="dbus-property" generated="True" extra-ref="RuntimeDirectoryPreserve"/>

    <variablelist class="dbus-property" generated="True" extra-ref="RuntimeDirectoryMode"/>

    <variablelist class="dbus-property" generated="True" extra-ref="RuntimeDirectory"/>

    <variablelist class="dbus-property" generated="True" extra-ref="StateDirectoryMode"/>

    <variablelist class="dbus-property" generated="True" extra-ref="StateDirectory"/>

    <variablelist class="dbus-property" generated="True" extra-ref="CacheDirectoryMode"/>

    <variablelist class="dbus-property" generated="True" extra-ref="CacheDirectory"/>

    <variablelist class="dbus-property" generated="True" extra-ref="LogsDirectoryMode"/>

    <variablelist class="dbus-property" generated="True" extra-ref="LogsDirectory"/>

    <variablelist class="dbus-property" generated="True" extra-ref="ConfigurationDirectoryMode"/>

    <variablelist class="dbus-property" generated="True" extra-ref="ConfigurationDirectory"/>

    <variablelist class="dbus-property" generated="True" extra-ref="TimeoutCleanUSec"/>

    <variablelist class="dbus-property" generated="True" extra-ref="MemoryDenyWriteExecute"/>

    <variablelist class="dbus-property" generated="True" extra-ref="RestrictRealtime"/>

    <variablelist class="dbus-property" generated="True" extra-ref="RestrictSUIDSGID"/>

    <variablelist class="dbus-property" generated="True" extra-ref="RestrictNamespaces"/>

    <variablelist class="dbus-property" generated="True" extra-ref="BindPaths"/>

    <variablelist class="dbus-property" generated="True" extra-ref="BindReadOnlyPaths"/>

    <variablelist class="dbus-property" generated="True" extra-ref="TemporaryFileSystem"/>

    <variablelist class="dbus-property" generated="True" extra-ref="MountAPIVFS"/>

    <variablelist class="dbus-property" generated="True" extra-ref="KeyringMode"/>

    <variablelist class="dbus-property" generated="True" extra-ref="ProtectProc"/>

    <variablelist class="dbus-property" generated="True" extra-ref="ProcSubset"/>

    <variablelist class="dbus-property" generated="True" extra-ref="ProtectHostname"/>

    <variablelist class="dbus-property" generated="True" extra-ref="NetworkNamespacePath"/>

    <variablelist class="dbus-property" generated="True" extra-ref="IPCNamespacePath"/>

    <variablelist class="dbus-property" generated="True" extra-ref="KillMode"/>

    <variablelist class="dbus-property" generated="True" extra-ref="KillSignal"/>

    <variablelist class="dbus-property" generated="True" extra-ref="RestartKillSignal"/>

    <variablelist class="dbus-property" generated="True" extra-ref="FinalKillSignal"/>

    <variablelist class="dbus-property" generated="True" extra-ref="SendSIGKILL"/>

    <variablelist class="dbus-property" generated="True" extra-ref="SendSIGHUP"/>

    <variablelist class="dbus-property" generated="True" extra-ref="WatchdogSignal"/>

    <!--End of Autogenerated section-->

    <refsect2>
      <title>Properties</title>

      <para>Most of the properties map directly to the corresponding settings in socket unit files. As socket
      units can include <varname>ExecStartPre</varname> (and similar) fields which contain information about
      processes to execute. They also share most of the fields related to the execution context that Service
      objects expose (see above).</para>

      <para>In addition to these properties there are the following:</para>

      <para><varname>NAccepted</varname> contains the accumulated number of connections ever accepted on this
      socket. This only applies to sockets with <varname>Accept</varname> set to <literal>yes</literal>,
      i.e. those where systemd is responsible for accepted connections. </para>

      <para>Similarly <varname>NConnections</varname> contains the number of currently open connections on
      this socket. It only applies only to socket units with <varname>Accept</varname> set to
      <literal>yes</literal>.</para>

      <para><varname>Result</varname> encodes the reason why a socket unit failed if it is in the
      <literal>failed</literal> state (see <varname>ActiveState</varname> above). The values
      <literal>success</literal>, <literal>resources</literal>, <literal>timeout</literal>,
      <literal>exit-code</literal>, <literal>signal</literal> and <literal>core-dump</literal> have the same
      meaning as they have for the corresponding field of service units (see above). In addition to that,
      the value <literal>service-failed-permanent</literal> indicates that the service of this socket failed
      continuously.</para>

      <para><varname>FlushPending</varname> specifies whether to flush the socket
      just before entering the listening state. This setting only applies to sockets with
      <varname>Accept=</varname> set to <literal>no</literal>.</para>
    </refsect2>
  </refsect1>

  <refsect1>
    <title>Target Unit Objects</title>

    <programlisting executable="systemd" node="/org/freedesktop/systemd1/unit/basic_2etarget" interface="org.freedesktop.systemd1.Target">
node /org/freedesktop/systemd1/unit/basic_2etarget {
  interface org.freedesktop.systemd1.Target {
  };
  interface org.freedesktop.DBus.Peer { ... };
  interface org.freedesktop.DBus.Introspectable { ... };
  interface org.freedesktop.DBus.Properties { ... };
  interface org.freedesktop.systemd1.Unit { ... };
};
    </programlisting>

    <para>Target units have neither type-specific methods nor properties.</para>
  </refsect1>


  <refsect1>
    <title>Device Unit Objects</title>

    <para>All device unit objects implement the <interfacename>org.freedesktop.systemd1.Device</interfacename> interface (described here)
    in addition to the generic <interfacename>org.freedesktop.systemd1.Unit</interfacename> interface (see above).</para>

    <programlisting executable="systemd" node="/org/freedesktop/systemd1/unit/dev_2dttyS0_2edevice" interface="org.freedesktop.systemd1.Device">
node /org/freedesktop/systemd1/unit/dev_2dttyS0_2edevice {
  interface org.freedesktop.systemd1.Device {
    properties:
      readonly s SysFSPath = '...';
  };
  interface org.freedesktop.DBus.Peer { ... };
  interface org.freedesktop.DBus.Introspectable { ... };
  interface org.freedesktop.DBus.Properties { ... };
  interface org.freedesktop.systemd1.Unit { ... };
};
    </programlisting>

    <!--Autogenerated cross-references for systemd.directives, do not edit-->

    <variablelist class="dbus-interface" generated="True" extra-ref="org.freedesktop.systemd1.Unit"/>

    <variablelist class="dbus-interface" generated="True" extra-ref="org.freedesktop.systemd1.Device"/>

    <variablelist class="dbus-interface" generated="True" extra-ref="org.freedesktop.systemd1.Unit"/>

    <variablelist class="dbus-interface" generated="True" extra-ref="org.freedesktop.systemd1.Device"/>

    <variablelist class="dbus-property" generated="True" extra-ref="SysFSPath"/>

    <!--End of Autogenerated section-->

    <refsect2>
      <title>Properties</title>

      <para>Device units only expose a single type-specific property:</para>

      <para><varname>SysFSPath</varname> contains the sysfs path of the kernel device this object corresponds
      to.</para>
    </refsect2>
  </refsect1>

  <refsect1>
    <title>Mount Unit Objects</title>

    <para>All mount unit objects implement the <interfacename>org.freedesktop.systemd1.Mount</interfacename>
    interface (described here) in addition to the generic
    <interfacename>org.freedesktop.systemd1.Unit</interfacename> interface (see above).</para>

    <programlisting executable="systemd" node="/org/freedesktop/systemd1/unit/home_2emount" interface="org.freedesktop.systemd1.Mount">
node /org/freedesktop/systemd1/unit/home_2emount {
  interface org.freedesktop.systemd1.Mount {
    methods:
      GetProcesses(out a(sus) processes);
      AttachProcesses(in  s subcgroup,
                      in  au pids);
    properties:
      @org.freedesktop.DBus.Property.EmitsChangedSignal("const")
      readonly s Where = '...';
      readonly s What = '...';
      readonly s Options = '...';
      readonly s Type = '...';
      @org.freedesktop.DBus.Property.EmitsChangedSignal("const")
      readonly t TimeoutUSec = ...;
      readonly u ControlPID = ...;
      @org.freedesktop.DBus.Property.EmitsChangedSignal("const")
      readonly u DirectoryMode = ...;
      @org.freedesktop.DBus.Property.EmitsChangedSignal("const")
      readonly b SloppyOptions = ...;
      @org.freedesktop.DBus.Property.EmitsChangedSignal("const")
      readonly b LazyUnmount = ...;
      @org.freedesktop.DBus.Property.EmitsChangedSignal("const")
      readonly b ForceUnmount = ...;
      @org.freedesktop.DBus.Property.EmitsChangedSignal("const")
      readonly b ReadWriteOnly = ...;
      readonly s Result = '...';
      readonly u UID = ...;
      readonly u GID = ...;
      @org.freedesktop.DBus.Property.EmitsChangedSignal("invalidates")
      readonly a(sasbttttuii) ExecMount = [...];
      @org.freedesktop.DBus.Property.EmitsChangedSignal("invalidates")
      readonly a(sasbttttuii) ExecUnmount = [...];
      @org.freedesktop.DBus.Property.EmitsChangedSignal("invalidates")
      readonly a(sasbttttuii) ExecRemount = [...];
      @org.freedesktop.DBus.Property.EmitsChangedSignal("false")
      readonly s Slice = '...';
      @org.freedesktop.DBus.Property.EmitsChangedSignal("false")
      readonly s ControlGroup = '...';
      @org.freedesktop.DBus.Property.EmitsChangedSignal("false")
      readonly t MemoryCurrent = ...;
      @org.freedesktop.DBus.Property.EmitsChangedSignal("false")
      readonly t MemoryAvailable = ...;
      @org.freedesktop.DBus.Property.EmitsChangedSignal("false")
      readonly t CPUUsageNSec = ...;
      @org.freedesktop.DBus.Property.EmitsChangedSignal("false")
      readonly ay EffectiveCPUs = [...];
      @org.freedesktop.DBus.Property.EmitsChangedSignal("false")
      readonly ay EffectiveMemoryNodes = [...];
      @org.freedesktop.DBus.Property.EmitsChangedSignal("false")
      readonly t TasksCurrent = ...;
      @org.freedesktop.DBus.Property.EmitsChangedSignal("false")
      readonly t IPIngressBytes = ...;
      @org.freedesktop.DBus.Property.EmitsChangedSignal("false")
      readonly t IPIngressPackets = ...;
      @org.freedesktop.DBus.Property.EmitsChangedSignal("false")
      readonly t IPEgressBytes = ...;
      @org.freedesktop.DBus.Property.EmitsChangedSignal("false")
      readonly t IPEgressPackets = ...;
      @org.freedesktop.DBus.Property.EmitsChangedSignal("false")
      readonly t IOReadBytes = ...;
      @org.freedesktop.DBus.Property.EmitsChangedSignal("false")
      readonly t IOReadOperations = ...;
      @org.freedesktop.DBus.Property.EmitsChangedSignal("false")
      readonly t IOWriteBytes = ...;
      @org.freedesktop.DBus.Property.EmitsChangedSignal("false")
      readonly t IOWriteOperations = ...;
      @org.freedesktop.DBus.Property.EmitsChangedSignal("false")
      readonly b Delegate = ...;
      @org.freedesktop.DBus.Property.EmitsChangedSignal("false")
      readonly as DelegateControllers = ['...', ...];
      @org.freedesktop.DBus.Property.EmitsChangedSignal("false")
      readonly b CPUAccounting = ...;
      @org.freedesktop.DBus.Property.EmitsChangedSignal("false")
      readonly t CPUWeight = ...;
      @org.freedesktop.DBus.Property.EmitsChangedSignal("false")
      readonly t StartupCPUWeight = ...;
      @org.freedesktop.DBus.Property.EmitsChangedSignal("false")
      readonly t CPUShares = ...;
      @org.freedesktop.DBus.Property.EmitsChangedSignal("false")
      readonly t StartupCPUShares = ...;
      @org.freedesktop.DBus.Property.EmitsChangedSignal("false")
      readonly t CPUQuotaPerSecUSec = ...;
      @org.freedesktop.DBus.Property.EmitsChangedSignal("false")
      readonly t CPUQuotaPeriodUSec = ...;
      @org.freedesktop.DBus.Property.EmitsChangedSignal("false")
      readonly ay AllowedCPUs = [...];
      @org.freedesktop.DBus.Property.EmitsChangedSignal("false")
      readonly ay AllowedMemoryNodes = [...];
      @org.freedesktop.DBus.Property.EmitsChangedSignal("false")
      readonly b IOAccounting = ...;
      @org.freedesktop.DBus.Property.EmitsChangedSignal("false")
      readonly t IOWeight = ...;
      @org.freedesktop.DBus.Property.EmitsChangedSignal("false")
      readonly t StartupIOWeight = ...;
      @org.freedesktop.DBus.Property.EmitsChangedSignal("false")
      readonly a(st) IODeviceWeight = [...];
      @org.freedesktop.DBus.Property.EmitsChangedSignal("false")
      readonly a(st) IOReadBandwidthMax = [...];
      @org.freedesktop.DBus.Property.EmitsChangedSignal("false")
      readonly a(st) IOWriteBandwidthMax = [...];
      @org.freedesktop.DBus.Property.EmitsChangedSignal("false")
      readonly a(st) IOReadIOPSMax = [...];
      @org.freedesktop.DBus.Property.EmitsChangedSignal("false")
      readonly a(st) IOWriteIOPSMax = [...];
      @org.freedesktop.DBus.Property.EmitsChangedSignal("false")
      readonly a(st) IODeviceLatencyTargetUSec = [...];
      @org.freedesktop.DBus.Property.EmitsChangedSignal("false")
      readonly b BlockIOAccounting = ...;
      @org.freedesktop.DBus.Property.EmitsChangedSignal("false")
      readonly t BlockIOWeight = ...;
      @org.freedesktop.DBus.Property.EmitsChangedSignal("false")
      readonly t StartupBlockIOWeight = ...;
      @org.freedesktop.DBus.Property.EmitsChangedSignal("false")
      readonly a(st) BlockIODeviceWeight = [...];
      @org.freedesktop.DBus.Property.EmitsChangedSignal("false")
      readonly a(st) BlockIOReadBandwidth = [...];
      @org.freedesktop.DBus.Property.EmitsChangedSignal("false")
      readonly a(st) BlockIOWriteBandwidth = [...];
      @org.freedesktop.DBus.Property.EmitsChangedSignal("false")
      readonly b MemoryAccounting = ...;
      @org.freedesktop.DBus.Property.EmitsChangedSignal("false")
      readonly t DefaultMemoryLow = ...;
      @org.freedesktop.DBus.Property.EmitsChangedSignal("false")
      readonly t DefaultMemoryMin = ...;
      @org.freedesktop.DBus.Property.EmitsChangedSignal("false")
      readonly t MemoryMin = ...;
      @org.freedesktop.DBus.Property.EmitsChangedSignal("false")
      readonly t MemoryLow = ...;
      @org.freedesktop.DBus.Property.EmitsChangedSignal("false")
      readonly t MemoryHigh = ...;
      @org.freedesktop.DBus.Property.EmitsChangedSignal("false")
      readonly t MemoryMax = ...;
      @org.freedesktop.DBus.Property.EmitsChangedSignal("false")
      readonly t MemorySwapMax = ...;
      @org.freedesktop.DBus.Property.EmitsChangedSignal("false")
      readonly t MemoryLimit = ...;
      @org.freedesktop.DBus.Property.EmitsChangedSignal("false")
      readonly s DevicePolicy = '...';
      @org.freedesktop.DBus.Property.EmitsChangedSignal("false")
      readonly a(ss) DeviceAllow = [...];
      @org.freedesktop.DBus.Property.EmitsChangedSignal("false")
      readonly b TasksAccounting = ...;
      @org.freedesktop.DBus.Property.EmitsChangedSignal("false")
      readonly t TasksMax = ...;
      @org.freedesktop.DBus.Property.EmitsChangedSignal("false")
      readonly b IPAccounting = ...;
      @org.freedesktop.DBus.Property.EmitsChangedSignal("false")
      readonly a(iayu) IPAddressAllow = [...];
      @org.freedesktop.DBus.Property.EmitsChangedSignal("false")
      readonly a(iayu) IPAddressDeny = [...];
      @org.freedesktop.DBus.Property.EmitsChangedSignal("false")
      readonly as IPIngressFilterPath = ['...', ...];
      @org.freedesktop.DBus.Property.EmitsChangedSignal("false")
      readonly as IPEgressFilterPath = ['...', ...];
      @org.freedesktop.DBus.Property.EmitsChangedSignal("false")
      readonly as DisableControllers = ['...', ...];
      @org.freedesktop.DBus.Property.EmitsChangedSignal("false")
      readonly s ManagedOOMSwap = '...';
      @org.freedesktop.DBus.Property.EmitsChangedSignal("false")
      readonly s ManagedOOMMemoryPressure = '...';
      @org.freedesktop.DBus.Property.EmitsChangedSignal("false")
      readonly u ManagedOOMMemoryPressureLimit = ...;
      @org.freedesktop.DBus.Property.EmitsChangedSignal("false")
      readonly s ManagedOOMPreference = '...';
      @org.freedesktop.DBus.Property.EmitsChangedSignal("false")
      readonly a(ss) BPFProgram = [...];
      @org.freedesktop.DBus.Property.EmitsChangedSignal("false")
      readonly a(iiqq) SocketBindAllow = [...];
      @org.freedesktop.DBus.Property.EmitsChangedSignal("false")
      readonly a(iiqq) SocketBindDeny = [...];
      @org.freedesktop.DBus.Property.EmitsChangedSignal("const")
      readonly as Environment = ['...', ...];
      @org.freedesktop.DBus.Property.EmitsChangedSignal("const")
      readonly a(sb) EnvironmentFiles = [...];
      @org.freedesktop.DBus.Property.EmitsChangedSignal("const")
      readonly as PassEnvironment = ['...', ...];
      @org.freedesktop.DBus.Property.EmitsChangedSignal("const")
      readonly as UnsetEnvironment = ['...', ...];
      @org.freedesktop.DBus.Property.EmitsChangedSignal("const")
      readonly u UMask = ...;
      @org.freedesktop.DBus.Property.EmitsChangedSignal("const")
      readonly t LimitCPU = ...;
      @org.freedesktop.DBus.Property.EmitsChangedSignal("const")
      readonly t LimitCPUSoft = ...;
      @org.freedesktop.DBus.Property.EmitsChangedSignal("const")
      readonly t LimitFSIZE = ...;
      @org.freedesktop.DBus.Property.EmitsChangedSignal("const")
      readonly t LimitFSIZESoft = ...;
      @org.freedesktop.DBus.Property.EmitsChangedSignal("const")
      readonly t LimitDATA = ...;
      @org.freedesktop.DBus.Property.EmitsChangedSignal("const")
      readonly t LimitDATASoft = ...;
      @org.freedesktop.DBus.Property.EmitsChangedSignal("const")
      readonly t LimitSTACK = ...;
      @org.freedesktop.DBus.Property.EmitsChangedSignal("const")
      readonly t LimitSTACKSoft = ...;
      @org.freedesktop.DBus.Property.EmitsChangedSignal("const")
      readonly t LimitCORE = ...;
      @org.freedesktop.DBus.Property.EmitsChangedSignal("const")
      readonly t LimitCORESoft = ...;
      @org.freedesktop.DBus.Property.EmitsChangedSignal("const")
      readonly t LimitRSS = ...;
      @org.freedesktop.DBus.Property.EmitsChangedSignal("const")
      readonly t LimitRSSSoft = ...;
      @org.freedesktop.DBus.Property.EmitsChangedSignal("const")
      readonly t LimitNOFILE = ...;
      @org.freedesktop.DBus.Property.EmitsChangedSignal("const")
      readonly t LimitNOFILESoft = ...;
      @org.freedesktop.DBus.Property.EmitsChangedSignal("const")
      readonly t LimitAS = ...;
      @org.freedesktop.DBus.Property.EmitsChangedSignal("const")
      readonly t LimitASSoft = ...;
      @org.freedesktop.DBus.Property.EmitsChangedSignal("const")
      readonly t LimitNPROC = ...;
      @org.freedesktop.DBus.Property.EmitsChangedSignal("const")
      readonly t LimitNPROCSoft = ...;
      @org.freedesktop.DBus.Property.EmitsChangedSignal("const")
      readonly t LimitMEMLOCK = ...;
      @org.freedesktop.DBus.Property.EmitsChangedSignal("const")
      readonly t LimitMEMLOCKSoft = ...;
      @org.freedesktop.DBus.Property.EmitsChangedSignal("const")
      readonly t LimitLOCKS = ...;
      @org.freedesktop.DBus.Property.EmitsChangedSignal("const")
      readonly t LimitLOCKSSoft = ...;
      @org.freedesktop.DBus.Property.EmitsChangedSignal("const")
      readonly t LimitSIGPENDING = ...;
      @org.freedesktop.DBus.Property.EmitsChangedSignal("const")
      readonly t LimitSIGPENDINGSoft = ...;
      @org.freedesktop.DBus.Property.EmitsChangedSignal("const")
      readonly t LimitMSGQUEUE = ...;
      @org.freedesktop.DBus.Property.EmitsChangedSignal("const")
      readonly t LimitMSGQUEUESoft = ...;
      @org.freedesktop.DBus.Property.EmitsChangedSignal("const")
      readonly t LimitNICE = ...;
      @org.freedesktop.DBus.Property.EmitsChangedSignal("const")
      readonly t LimitNICESoft = ...;
      @org.freedesktop.DBus.Property.EmitsChangedSignal("const")
      readonly t LimitRTPRIO = ...;
      @org.freedesktop.DBus.Property.EmitsChangedSignal("const")
      readonly t LimitRTPRIOSoft = ...;
      @org.freedesktop.DBus.Property.EmitsChangedSignal("const")
      readonly t LimitRTTIME = ...;
      @org.freedesktop.DBus.Property.EmitsChangedSignal("const")
      readonly t LimitRTTIMESoft = ...;
      @org.freedesktop.DBus.Property.EmitsChangedSignal("const")
      readonly s WorkingDirectory = '...';
      @org.freedesktop.DBus.Property.EmitsChangedSignal("const")
      readonly s RootDirectory = '...';
      @org.freedesktop.DBus.Property.EmitsChangedSignal("const")
      readonly s RootImage = '...';
      @org.freedesktop.DBus.Property.EmitsChangedSignal("const")
      readonly a(ss) RootImageOptions = [...];
      @org.freedesktop.DBus.Property.EmitsChangedSignal("const")
      readonly ay RootHash = [...];
      @org.freedesktop.DBus.Property.EmitsChangedSignal("const")
      readonly s RootHashPath = '...';
      @org.freedesktop.DBus.Property.EmitsChangedSignal("const")
      readonly ay RootHashSignature = [...];
      @org.freedesktop.DBus.Property.EmitsChangedSignal("const")
      readonly s RootHashSignaturePath = '...';
      @org.freedesktop.DBus.Property.EmitsChangedSignal("const")
      readonly s RootVerity = '...';
      @org.freedesktop.DBus.Property.EmitsChangedSignal("const")
      readonly a(sba(ss)) ExtensionImages = [...];
      @org.freedesktop.DBus.Property.EmitsChangedSignal("const")
      readonly a(ssba(ss)) MountImages = [...];
      @org.freedesktop.DBus.Property.EmitsChangedSignal("const")
      readonly i OOMScoreAdjust = ...;
      @org.freedesktop.DBus.Property.EmitsChangedSignal("const")
      readonly t CoredumpFilter = ...;
      @org.freedesktop.DBus.Property.EmitsChangedSignal("const")
      readonly i Nice = ...;
      @org.freedesktop.DBus.Property.EmitsChangedSignal("const")
      readonly i IOSchedulingClass = ...;
      @org.freedesktop.DBus.Property.EmitsChangedSignal("const")
      readonly i IOSchedulingPriority = ...;
      @org.freedesktop.DBus.Property.EmitsChangedSignal("const")
      readonly i CPUSchedulingPolicy = ...;
      @org.freedesktop.DBus.Property.EmitsChangedSignal("const")
      readonly i CPUSchedulingPriority = ...;
      @org.freedesktop.DBus.Property.EmitsChangedSignal("const")
      readonly ay CPUAffinity = [...];
      @org.freedesktop.DBus.Property.EmitsChangedSignal("const")
      readonly b CPUAffinityFromNUMA = ...;
      @org.freedesktop.DBus.Property.EmitsChangedSignal("const")
      readonly i NUMAPolicy = ...;
      @org.freedesktop.DBus.Property.EmitsChangedSignal("const")
      readonly ay NUMAMask = [...];
      @org.freedesktop.DBus.Property.EmitsChangedSignal("const")
      readonly t TimerSlackNSec = ...;
      @org.freedesktop.DBus.Property.EmitsChangedSignal("const")
      readonly b CPUSchedulingResetOnFork = ...;
      @org.freedesktop.DBus.Property.EmitsChangedSignal("const")
      readonly b NonBlocking = ...;
      @org.freedesktop.DBus.Property.EmitsChangedSignal("const")
      readonly s StandardInput = '...';
      @org.freedesktop.DBus.Property.EmitsChangedSignal("const")
      readonly s StandardInputFileDescriptorName = '...';
      @org.freedesktop.DBus.Property.EmitsChangedSignal("const")
      readonly ay StandardInputData = [...];
      @org.freedesktop.DBus.Property.EmitsChangedSignal("const")
      readonly s StandardOutput = '...';
      @org.freedesktop.DBus.Property.EmitsChangedSignal("const")
      readonly s StandardOutputFileDescriptorName = '...';
      @org.freedesktop.DBus.Property.EmitsChangedSignal("const")
      readonly s StandardError = '...';
      @org.freedesktop.DBus.Property.EmitsChangedSignal("const")
      readonly s StandardErrorFileDescriptorName = '...';
      @org.freedesktop.DBus.Property.EmitsChangedSignal("const")
      readonly s TTYPath = '...';
      @org.freedesktop.DBus.Property.EmitsChangedSignal("const")
      readonly b TTYReset = ...;
      @org.freedesktop.DBus.Property.EmitsChangedSignal("const")
      readonly b TTYVHangup = ...;
      @org.freedesktop.DBus.Property.EmitsChangedSignal("const")
      readonly b TTYVTDisallocate = ...;
      @org.freedesktop.DBus.Property.EmitsChangedSignal("const")
      readonly i SyslogPriority = ...;
      @org.freedesktop.DBus.Property.EmitsChangedSignal("const")
      readonly s SyslogIdentifier = '...';
      @org.freedesktop.DBus.Property.EmitsChangedSignal("const")
      readonly b SyslogLevelPrefix = ...;
      @org.freedesktop.DBus.Property.EmitsChangedSignal("const")
      readonly i SyslogLevel = ...;
      @org.freedesktop.DBus.Property.EmitsChangedSignal("const")
      readonly i SyslogFacility = ...;
      @org.freedesktop.DBus.Property.EmitsChangedSignal("const")
      readonly i LogLevelMax = ...;
      @org.freedesktop.DBus.Property.EmitsChangedSignal("const")
      readonly t LogRateLimitIntervalUSec = ...;
      @org.freedesktop.DBus.Property.EmitsChangedSignal("const")
      readonly u LogRateLimitBurst = ...;
      @org.freedesktop.DBus.Property.EmitsChangedSignal("const")
      readonly aay LogExtraFields = [[...], ...];
      @org.freedesktop.DBus.Property.EmitsChangedSignal("const")
      readonly s LogNamespace = '...';
      @org.freedesktop.DBus.Property.EmitsChangedSignal("const")
      readonly i SecureBits = ...;
      @org.freedesktop.DBus.Property.EmitsChangedSignal("const")
      readonly t CapabilityBoundingSet = ...;
      @org.freedesktop.DBus.Property.EmitsChangedSignal("const")
      readonly t AmbientCapabilities = ...;
      @org.freedesktop.DBus.Property.EmitsChangedSignal("const")
      readonly s User = '...';
      @org.freedesktop.DBus.Property.EmitsChangedSignal("const")
      readonly s Group = '...';
      @org.freedesktop.DBus.Property.EmitsChangedSignal("const")
      readonly b DynamicUser = ...;
      @org.freedesktop.DBus.Property.EmitsChangedSignal("const")
      readonly b RemoveIPC = ...;
      @org.freedesktop.DBus.Property.EmitsChangedSignal("const")
      readonly a(say) SetCredential = [...];
      @org.freedesktop.DBus.Property.EmitsChangedSignal("const")
      readonly a(ss) LoadCredential = [...];
      @org.freedesktop.DBus.Property.EmitsChangedSignal("const")
      readonly as SupplementaryGroups = ['...', ...];
      @org.freedesktop.DBus.Property.EmitsChangedSignal("const")
      readonly s PAMName = '...';
      @org.freedesktop.DBus.Property.EmitsChangedSignal("const")
      readonly as ReadWritePaths = ['...', ...];
      @org.freedesktop.DBus.Property.EmitsChangedSignal("const")
      readonly as ReadOnlyPaths = ['...', ...];
      @org.freedesktop.DBus.Property.EmitsChangedSignal("const")
      readonly as InaccessiblePaths = ['...', ...];
      @org.freedesktop.DBus.Property.EmitsChangedSignal("const")
      readonly as ExecPaths = ['...', ...];
      @org.freedesktop.DBus.Property.EmitsChangedSignal("const")
      readonly as NoExecPaths = ['...', ...];
      @org.freedesktop.DBus.Property.EmitsChangedSignal("const")
      readonly t MountFlags = ...;
      @org.freedesktop.DBus.Property.EmitsChangedSignal("const")
      readonly b PrivateTmp = ...;
      @org.freedesktop.DBus.Property.EmitsChangedSignal("const")
      readonly b PrivateDevices = ...;
      @org.freedesktop.DBus.Property.EmitsChangedSignal("const")
      readonly b ProtectClock = ...;
      @org.freedesktop.DBus.Property.EmitsChangedSignal("const")
      readonly b ProtectKernelTunables = ...;
      @org.freedesktop.DBus.Property.EmitsChangedSignal("const")
      readonly b ProtectKernelModules = ...;
      @org.freedesktop.DBus.Property.EmitsChangedSignal("const")
      readonly b ProtectKernelLogs = ...;
      @org.freedesktop.DBus.Property.EmitsChangedSignal("const")
      readonly b ProtectControlGroups = ...;
      @org.freedesktop.DBus.Property.EmitsChangedSignal("const")
      readonly b PrivateNetwork = ...;
      @org.freedesktop.DBus.Property.EmitsChangedSignal("const")
      readonly b PrivateUsers = ...;
      @org.freedesktop.DBus.Property.EmitsChangedSignal("const")
      readonly b PrivateMounts = ...;
      @org.freedesktop.DBus.Property.EmitsChangedSignal("const")
      readonly b PrivateIPC = ...;
      @org.freedesktop.DBus.Property.EmitsChangedSignal("const")
      readonly s ProtectHome = '...';
      @org.freedesktop.DBus.Property.EmitsChangedSignal("const")
      readonly s ProtectSystem = '...';
      @org.freedesktop.DBus.Property.EmitsChangedSignal("const")
      readonly b SameProcessGroup = ...;
      @org.freedesktop.DBus.Property.EmitsChangedSignal("const")
      readonly s UtmpIdentifier = '...';
      @org.freedesktop.DBus.Property.EmitsChangedSignal("const")
      readonly s UtmpMode = '...';
      @org.freedesktop.DBus.Property.EmitsChangedSignal("const")
      readonly (bs) SELinuxContext = ...;
      @org.freedesktop.DBus.Property.EmitsChangedSignal("const")
      readonly (bs) AppArmorProfile = ...;
      @org.freedesktop.DBus.Property.EmitsChangedSignal("const")
      readonly (bs) SmackProcessLabel = ...;
      @org.freedesktop.DBus.Property.EmitsChangedSignal("const")
      readonly b IgnoreSIGPIPE = ...;
      @org.freedesktop.DBus.Property.EmitsChangedSignal("const")
      readonly b NoNewPrivileges = ...;
      @org.freedesktop.DBus.Property.EmitsChangedSignal("const")
      readonly (bas) SystemCallFilter = ...;
      @org.freedesktop.DBus.Property.EmitsChangedSignal("const")
      readonly as SystemCallArchitectures = ['...', ...];
      @org.freedesktop.DBus.Property.EmitsChangedSignal("const")
      readonly i SystemCallErrorNumber = ...;
      @org.freedesktop.DBus.Property.EmitsChangedSignal("const")
      readonly (bas) SystemCallLog = ...;
      @org.freedesktop.DBus.Property.EmitsChangedSignal("const")
      readonly s Personality = '...';
      @org.freedesktop.DBus.Property.EmitsChangedSignal("const")
      readonly b LockPersonality = ...;
      @org.freedesktop.DBus.Property.EmitsChangedSignal("const")
      readonly (bas) RestrictAddressFamilies = ...;
      @org.freedesktop.DBus.Property.EmitsChangedSignal("const")
      readonly s RuntimeDirectoryPreserve = '...';
      @org.freedesktop.DBus.Property.EmitsChangedSignal("const")
      readonly u RuntimeDirectoryMode = ...;
      @org.freedesktop.DBus.Property.EmitsChangedSignal("const")
      readonly as RuntimeDirectory = ['...', ...];
      @org.freedesktop.DBus.Property.EmitsChangedSignal("const")
      readonly u StateDirectoryMode = ...;
      @org.freedesktop.DBus.Property.EmitsChangedSignal("const")
      readonly as StateDirectory = ['...', ...];
      @org.freedesktop.DBus.Property.EmitsChangedSignal("const")
      readonly u CacheDirectoryMode = ...;
      @org.freedesktop.DBus.Property.EmitsChangedSignal("const")
      readonly as CacheDirectory = ['...', ...];
      @org.freedesktop.DBus.Property.EmitsChangedSignal("const")
      readonly u LogsDirectoryMode = ...;
      @org.freedesktop.DBus.Property.EmitsChangedSignal("const")
      readonly as LogsDirectory = ['...', ...];
      @org.freedesktop.DBus.Property.EmitsChangedSignal("const")
      readonly u ConfigurationDirectoryMode = ...;
      @org.freedesktop.DBus.Property.EmitsChangedSignal("const")
      readonly as ConfigurationDirectory = ['...', ...];
      @org.freedesktop.DBus.Property.EmitsChangedSignal("const")
      readonly t TimeoutCleanUSec = ...;
      @org.freedesktop.DBus.Property.EmitsChangedSignal("const")
      readonly b MemoryDenyWriteExecute = ...;
      @org.freedesktop.DBus.Property.EmitsChangedSignal("const")
      readonly b RestrictRealtime = ...;
      @org.freedesktop.DBus.Property.EmitsChangedSignal("const")
      readonly b RestrictSUIDSGID = ...;
      @org.freedesktop.DBus.Property.EmitsChangedSignal("const")
      readonly t RestrictNamespaces = ...;
      @org.freedesktop.DBus.Property.EmitsChangedSignal("const")
      readonly a(ssbt) BindPaths = [...];
      @org.freedesktop.DBus.Property.EmitsChangedSignal("const")
      readonly a(ssbt) BindReadOnlyPaths = [...];
      @org.freedesktop.DBus.Property.EmitsChangedSignal("const")
      readonly a(ss) TemporaryFileSystem = [...];
      @org.freedesktop.DBus.Property.EmitsChangedSignal("const")
      readonly b MountAPIVFS = ...;
      @org.freedesktop.DBus.Property.EmitsChangedSignal("const")
      readonly s KeyringMode = '...';
      @org.freedesktop.DBus.Property.EmitsChangedSignal("const")
      readonly s ProtectProc = '...';
      @org.freedesktop.DBus.Property.EmitsChangedSignal("const")
      readonly s ProcSubset = '...';
      @org.freedesktop.DBus.Property.EmitsChangedSignal("const")
      readonly b ProtectHostname = ...;
      @org.freedesktop.DBus.Property.EmitsChangedSignal("const")
      readonly s NetworkNamespacePath = '...';
      @org.freedesktop.DBus.Property.EmitsChangedSignal("const")
      readonly s IPCNamespacePath = '...';
      @org.freedesktop.DBus.Property.EmitsChangedSignal("const")
      readonly s KillMode = '...';
      @org.freedesktop.DBus.Property.EmitsChangedSignal("const")
      readonly i KillSignal = ...;
      @org.freedesktop.DBus.Property.EmitsChangedSignal("const")
      readonly i RestartKillSignal = ...;
      @org.freedesktop.DBus.Property.EmitsChangedSignal("const")
      readonly i FinalKillSignal = ...;
      @org.freedesktop.DBus.Property.EmitsChangedSignal("const")
      readonly b SendSIGKILL = ...;
      @org.freedesktop.DBus.Property.EmitsChangedSignal("const")
      readonly b SendSIGHUP = ...;
      @org.freedesktop.DBus.Property.EmitsChangedSignal("const")
      readonly i WatchdogSignal = ...;
  };
  interface org.freedesktop.DBus.Peer { ... };
  interface org.freedesktop.DBus.Introspectable { ... };
  interface org.freedesktop.DBus.Properties { ... };
  interface org.freedesktop.systemd1.Unit { ... };
};
    </programlisting>

    <!--method GetProcesses is not documented!-->

    <!--method AttachProcesses is not documented!-->

    <!--property Where is not documented!-->

    <!--property What is not documented!-->

    <!--property Options is not documented!-->

    <!--property Type is not documented!-->

    <!--property TimeoutUSec is not documented!-->

    <!--property DirectoryMode is not documented!-->

    <!--property SloppyOptions is not documented!-->

    <!--property LazyUnmount is not documented!-->

    <!--property ForceUnmount is not documented!-->

    <!--property ReadWriteOnly is not documented!-->

    <!--property UID is not documented!-->

    <!--property GID is not documented!-->

    <!--property ExecUnmount is not documented!-->

    <!--property ExecRemount is not documented!-->

    <!--property Slice is not documented!-->

    <!--property MemoryCurrent is not documented!-->

    <!--property CPUUsageNSec is not documented!-->

    <!--property EffectiveCPUs is not documented!-->

    <!--property EffectiveMemoryNodes is not documented!-->

    <!--property TasksCurrent is not documented!-->

    <!--property IPIngressBytes is not documented!-->

    <!--property IPIngressPackets is not documented!-->

    <!--property IPEgressBytes is not documented!-->

    <!--property IPEgressPackets is not documented!-->

    <!--property IOReadBytes is not documented!-->

    <!--property IOReadOperations is not documented!-->

    <!--property IOWriteBytes is not documented!-->

    <!--property IOWriteOperations is not documented!-->

    <!--property Delegate is not documented!-->

    <!--property DelegateControllers is not documented!-->

    <!--property CPUAccounting is not documented!-->

    <!--property CPUWeight is not documented!-->

    <!--property StartupCPUWeight is not documented!-->

    <!--property CPUShares is not documented!-->

    <!--property StartupCPUShares is not documented!-->

    <!--property CPUQuotaPerSecUSec is not documented!-->

    <!--property CPUQuotaPeriodUSec is not documented!-->

    <!--property AllowedCPUs is not documented!-->

    <!--property AllowedMemoryNodes is not documented!-->

    <!--property IOAccounting is not documented!-->

    <!--property IOWeight is not documented!-->

    <!--property StartupIOWeight is not documented!-->

    <!--property IODeviceWeight is not documented!-->

    <!--property IOReadBandwidthMax is not documented!-->

    <!--property IOWriteBandwidthMax is not documented!-->

    <!--property IOReadIOPSMax is not documented!-->

    <!--property IOWriteIOPSMax is not documented!-->

    <!--property IODeviceLatencyTargetUSec is not documented!-->

    <!--property BlockIOAccounting is not documented!-->

    <!--property BlockIOWeight is not documented!-->

    <!--property StartupBlockIOWeight is not documented!-->

    <!--property BlockIODeviceWeight is not documented!-->

    <!--property BlockIOReadBandwidth is not documented!-->

    <!--property BlockIOWriteBandwidth is not documented!-->

    <!--property MemoryAccounting is not documented!-->

    <!--property DefaultMemoryLow is not documented!-->

    <!--property DefaultMemoryMin is not documented!-->

    <!--property MemoryMin is not documented!-->

    <!--property MemoryLow is not documented!-->

    <!--property MemoryHigh is not documented!-->

    <!--property MemoryMax is not documented!-->

    <!--property MemorySwapMax is not documented!-->

    <!--property MemoryLimit is not documented!-->

    <!--property DevicePolicy is not documented!-->

    <!--property DeviceAllow is not documented!-->

    <!--property TasksAccounting is not documented!-->

    <!--property TasksMax is not documented!-->

    <!--property IPAccounting is not documented!-->

    <!--property IPAddressAllow is not documented!-->

    <!--property IPAddressDeny is not documented!-->

    <!--property IPIngressFilterPath is not documented!-->

    <!--property IPEgressFilterPath is not documented!-->

    <!--property DisableControllers is not documented!-->

    <!--property ManagedOOMSwap is not documented!-->

    <!--property ManagedOOMMemoryPressure is not documented!-->

    <!--property ManagedOOMMemoryPressureLimit is not documented!-->

    <!--property ManagedOOMPreference is not documented!-->

    <!--property BPFProgram is not documented!-->

    <!--property SocketBindAllow is not documented!-->

    <!--property SocketBindDeny is not documented!-->

    <!--property EnvironmentFiles is not documented!-->

    <!--property PassEnvironment is not documented!-->

    <!--property UnsetEnvironment is not documented!-->

    <!--property UMask is not documented!-->

    <!--property LimitCPUSoft is not documented!-->

    <!--property LimitFSIZE is not documented!-->

    <!--property LimitFSIZESoft is not documented!-->

    <!--property LimitDATA is not documented!-->

    <!--property LimitDATASoft is not documented!-->

    <!--property LimitSTACK is not documented!-->

    <!--property LimitSTACKSoft is not documented!-->

    <!--property LimitCORE is not documented!-->

    <!--property LimitCORESoft is not documented!-->

    <!--property LimitRSS is not documented!-->

    <!--property LimitRSSSoft is not documented!-->

    <!--property LimitNOFILE is not documented!-->

    <!--property LimitNOFILESoft is not documented!-->

    <!--property LimitAS is not documented!-->

    <!--property LimitASSoft is not documented!-->

    <!--property LimitNPROC is not documented!-->

    <!--property LimitNPROCSoft is not documented!-->

    <!--property LimitMEMLOCK is not documented!-->

    <!--property LimitMEMLOCKSoft is not documented!-->

    <!--property LimitLOCKS is not documented!-->

    <!--property LimitLOCKSSoft is not documented!-->

    <!--property LimitSIGPENDING is not documented!-->

    <!--property LimitSIGPENDINGSoft is not documented!-->

    <!--property LimitMSGQUEUE is not documented!-->

    <!--property LimitMSGQUEUESoft is not documented!-->

    <!--property LimitNICE is not documented!-->

    <!--property LimitNICESoft is not documented!-->

    <!--property LimitRTPRIO is not documented!-->

    <!--property LimitRTPRIOSoft is not documented!-->

    <!--property LimitRTTIME is not documented!-->

    <!--property LimitRTTIMESoft is not documented!-->

    <!--property WorkingDirectory is not documented!-->

    <!--property RootHashPath is not documented!-->

    <!--property RootHashSignaturePath is not documented!-->

    <!--property OOMScoreAdjust is not documented!-->

    <!--property CoredumpFilter is not documented!-->

    <!--property Nice is not documented!-->

    <!--property IOSchedulingClass is not documented!-->

    <!--property IOSchedulingPriority is not documented!-->

    <!--property CPUSchedulingPolicy is not documented!-->

    <!--property CPUSchedulingPriority is not documented!-->

    <!--property CPUAffinity is not documented!-->

    <!--property CPUAffinityFromNUMA is not documented!-->

    <!--property NUMAPolicy is not documented!-->

    <!--property NUMAMask is not documented!-->

    <!--property TimerSlackNSec is not documented!-->

    <!--property CPUSchedulingResetOnFork is not documented!-->

    <!--property NonBlocking is not documented!-->

    <!--property StandardInput is not documented!-->

    <!--property StandardInputFileDescriptorName is not documented!-->

    <!--property StandardInputData is not documented!-->

    <!--property StandardOutput is not documented!-->

    <!--property StandardOutputFileDescriptorName is not documented!-->

    <!--property StandardError is not documented!-->

    <!--property StandardErrorFileDescriptorName is not documented!-->

    <!--property TTYPath is not documented!-->

    <!--property TTYReset is not documented!-->

    <!--property TTYVHangup is not documented!-->

    <!--property TTYVTDisallocate is not documented!-->

    <!--property SyslogPriority is not documented!-->

    <!--property SyslogIdentifier is not documented!-->

    <!--property SyslogLevelPrefix is not documented!-->

    <!--property SyslogLevel is not documented!-->

    <!--property SyslogFacility is not documented!-->

    <!--property LogLevelMax is not documented!-->

    <!--property LogRateLimitIntervalUSec is not documented!-->

    <!--property LogRateLimitBurst is not documented!-->

    <!--property LogExtraFields is not documented!-->

    <!--property LogNamespace is not documented!-->

    <!--property AmbientCapabilities is not documented!-->

    <!--property User is not documented!-->

    <!--property Group is not documented!-->

    <!--property DynamicUser is not documented!-->

    <!--property RemoveIPC is not documented!-->

    <!--property SetCredential is not documented!-->

    <!--property LoadCredential is not documented!-->

    <!--property SupplementaryGroups is not documented!-->

    <!--property PAMName is not documented!-->

    <!--property ReadWritePaths is not documented!-->

    <!--property ReadOnlyPaths is not documented!-->

    <!--property InaccessiblePaths is not documented!-->

    <!--property ExecPaths is not documented!-->

    <!--property NoExecPaths is not documented!-->

    <!--property PrivateTmp is not documented!-->

    <!--property PrivateDevices is not documented!-->

    <!--property ProtectClock is not documented!-->

    <!--property ProtectKernelTunables is not documented!-->

    <!--property ProtectKernelModules is not documented!-->

    <!--property ProtectKernelLogs is not documented!-->

    <!--property ProtectControlGroups is not documented!-->

    <!--property PrivateNetwork is not documented!-->

    <!--property PrivateUsers is not documented!-->

    <!--property PrivateMounts is not documented!-->

    <!--property PrivateIPC is not documented!-->

    <!--property ProtectHome is not documented!-->

    <!--property ProtectSystem is not documented!-->

    <!--property SameProcessGroup is not documented!-->

    <!--property UtmpIdentifier is not documented!-->

    <!--property UtmpMode is not documented!-->

    <!--property SELinuxContext is not documented!-->

    <!--property AppArmorProfile is not documented!-->

    <!--property SmackProcessLabel is not documented!-->

    <!--property IgnoreSIGPIPE is not documented!-->

    <!--property NoNewPrivileges is not documented!-->

    <!--property SystemCallFilter is not documented!-->

    <!--property SystemCallArchitectures is not documented!-->

    <!--property SystemCallErrorNumber is not documented!-->

    <!--property SystemCallLog is not documented!-->

    <!--property Personality is not documented!-->

    <!--property LockPersonality is not documented!-->

    <!--property RestrictAddressFamilies is not documented!-->

    <!--property RuntimeDirectoryPreserve is not documented!-->

    <!--property RuntimeDirectoryMode is not documented!-->

    <!--property RuntimeDirectory is not documented!-->

    <!--property StateDirectoryMode is not documented!-->

    <!--property StateDirectory is not documented!-->

    <!--property CacheDirectoryMode is not documented!-->

    <!--property CacheDirectory is not documented!-->

    <!--property LogsDirectoryMode is not documented!-->

    <!--property LogsDirectory is not documented!-->

    <!--property ConfigurationDirectoryMode is not documented!-->

    <!--property ConfigurationDirectory is not documented!-->

    <!--property TimeoutCleanUSec is not documented!-->

    <!--property MemoryDenyWriteExecute is not documented!-->

    <!--property RestrictRealtime is not documented!-->

    <!--property RestrictSUIDSGID is not documented!-->

    <!--property RestrictNamespaces is not documented!-->

    <!--property BindPaths is not documented!-->

    <!--property BindReadOnlyPaths is not documented!-->

    <!--property TemporaryFileSystem is not documented!-->

    <!--property MountAPIVFS is not documented!-->

    <!--property KeyringMode is not documented!-->

    <!--property ProtectProc is not documented!-->

    <!--property ProcSubset is not documented!-->

    <!--property ProtectHostname is not documented!-->

    <!--property NetworkNamespacePath is not documented!-->

    <!--property IPCNamespacePath is not documented!-->

    <!--property KillMode is not documented!-->

    <!--property KillSignal is not documented!-->

    <!--property RestartKillSignal is not documented!-->

    <!--property FinalKillSignal is not documented!-->

    <!--property SendSIGKILL is not documented!-->

    <!--property SendSIGHUP is not documented!-->

    <!--property WatchdogSignal is not documented!-->

    <!--Autogenerated cross-references for systemd.directives, do not edit-->

    <variablelist class="dbus-interface" generated="True" extra-ref="org.freedesktop.systemd1.Unit"/>

    <variablelist class="dbus-interface" generated="True" extra-ref="org.freedesktop.systemd1.Mount"/>

    <variablelist class="dbus-interface" generated="True" extra-ref="org.freedesktop.systemd1.Unit"/>

    <variablelist class="dbus-interface" generated="True" extra-ref="org.freedesktop.systemd1.Mount"/>

    <variablelist class="dbus-method" generated="True" extra-ref="GetProcesses()"/>

    <variablelist class="dbus-method" generated="True" extra-ref="AttachProcesses()"/>

    <variablelist class="dbus-property" generated="True" extra-ref="Where"/>

    <variablelist class="dbus-property" generated="True" extra-ref="What"/>

    <variablelist class="dbus-property" generated="True" extra-ref="Options"/>

    <variablelist class="dbus-property" generated="True" extra-ref="Type"/>

    <variablelist class="dbus-property" generated="True" extra-ref="TimeoutUSec"/>

    <variablelist class="dbus-property" generated="True" extra-ref="ControlPID"/>

    <variablelist class="dbus-property" generated="True" extra-ref="DirectoryMode"/>

    <variablelist class="dbus-property" generated="True" extra-ref="SloppyOptions"/>

    <variablelist class="dbus-property" generated="True" extra-ref="LazyUnmount"/>

    <variablelist class="dbus-property" generated="True" extra-ref="ForceUnmount"/>

    <variablelist class="dbus-property" generated="True" extra-ref="ReadWriteOnly"/>

    <variablelist class="dbus-property" generated="True" extra-ref="Result"/>

    <variablelist class="dbus-property" generated="True" extra-ref="UID"/>

    <variablelist class="dbus-property" generated="True" extra-ref="GID"/>

    <variablelist class="dbus-property" generated="True" extra-ref="ExecMount"/>

    <variablelist class="dbus-property" generated="True" extra-ref="ExecUnmount"/>

    <variablelist class="dbus-property" generated="True" extra-ref="ExecRemount"/>

    <variablelist class="dbus-property" generated="True" extra-ref="Slice"/>

    <variablelist class="dbus-property" generated="True" extra-ref="ControlGroup"/>

    <variablelist class="dbus-property" generated="True" extra-ref="MemoryCurrent"/>

    <variablelist class="dbus-property" generated="True" extra-ref="MemoryAvailable"/>

    <variablelist class="dbus-property" generated="True" extra-ref="CPUUsageNSec"/>

    <variablelist class="dbus-property" generated="True" extra-ref="EffectiveCPUs"/>

    <variablelist class="dbus-property" generated="True" extra-ref="EffectiveMemoryNodes"/>

    <variablelist class="dbus-property" generated="True" extra-ref="TasksCurrent"/>

    <variablelist class="dbus-property" generated="True" extra-ref="IPIngressBytes"/>

    <variablelist class="dbus-property" generated="True" extra-ref="IPIngressPackets"/>

    <variablelist class="dbus-property" generated="True" extra-ref="IPEgressBytes"/>

    <variablelist class="dbus-property" generated="True" extra-ref="IPEgressPackets"/>

    <variablelist class="dbus-property" generated="True" extra-ref="IOReadBytes"/>

    <variablelist class="dbus-property" generated="True" extra-ref="IOReadOperations"/>

    <variablelist class="dbus-property" generated="True" extra-ref="IOWriteBytes"/>

    <variablelist class="dbus-property" generated="True" extra-ref="IOWriteOperations"/>

    <variablelist class="dbus-property" generated="True" extra-ref="Delegate"/>

    <variablelist class="dbus-property" generated="True" extra-ref="DelegateControllers"/>

    <variablelist class="dbus-property" generated="True" extra-ref="CPUAccounting"/>

    <variablelist class="dbus-property" generated="True" extra-ref="CPUWeight"/>

    <variablelist class="dbus-property" generated="True" extra-ref="StartupCPUWeight"/>

    <variablelist class="dbus-property" generated="True" extra-ref="CPUShares"/>

    <variablelist class="dbus-property" generated="True" extra-ref="StartupCPUShares"/>

    <variablelist class="dbus-property" generated="True" extra-ref="CPUQuotaPerSecUSec"/>

    <variablelist class="dbus-property" generated="True" extra-ref="CPUQuotaPeriodUSec"/>

    <variablelist class="dbus-property" generated="True" extra-ref="AllowedCPUs"/>

    <variablelist class="dbus-property" generated="True" extra-ref="AllowedMemoryNodes"/>

    <variablelist class="dbus-property" generated="True" extra-ref="IOAccounting"/>

    <variablelist class="dbus-property" generated="True" extra-ref="IOWeight"/>

    <variablelist class="dbus-property" generated="True" extra-ref="StartupIOWeight"/>

    <variablelist class="dbus-property" generated="True" extra-ref="IODeviceWeight"/>

    <variablelist class="dbus-property" generated="True" extra-ref="IOReadBandwidthMax"/>

    <variablelist class="dbus-property" generated="True" extra-ref="IOWriteBandwidthMax"/>

    <variablelist class="dbus-property" generated="True" extra-ref="IOReadIOPSMax"/>

    <variablelist class="dbus-property" generated="True" extra-ref="IOWriteIOPSMax"/>

    <variablelist class="dbus-property" generated="True" extra-ref="IODeviceLatencyTargetUSec"/>

    <variablelist class="dbus-property" generated="True" extra-ref="BlockIOAccounting"/>

    <variablelist class="dbus-property" generated="True" extra-ref="BlockIOWeight"/>

    <variablelist class="dbus-property" generated="True" extra-ref="StartupBlockIOWeight"/>

    <variablelist class="dbus-property" generated="True" extra-ref="BlockIODeviceWeight"/>

    <variablelist class="dbus-property" generated="True" extra-ref="BlockIOReadBandwidth"/>

    <variablelist class="dbus-property" generated="True" extra-ref="BlockIOWriteBandwidth"/>

    <variablelist class="dbus-property" generated="True" extra-ref="MemoryAccounting"/>

    <variablelist class="dbus-property" generated="True" extra-ref="DefaultMemoryLow"/>

    <variablelist class="dbus-property" generated="True" extra-ref="DefaultMemoryMin"/>

    <variablelist class="dbus-property" generated="True" extra-ref="MemoryMin"/>

    <variablelist class="dbus-property" generated="True" extra-ref="MemoryLow"/>

    <variablelist class="dbus-property" generated="True" extra-ref="MemoryHigh"/>

    <variablelist class="dbus-property" generated="True" extra-ref="MemoryMax"/>

    <variablelist class="dbus-property" generated="True" extra-ref="MemorySwapMax"/>

    <variablelist class="dbus-property" generated="True" extra-ref="MemoryLimit"/>

    <variablelist class="dbus-property" generated="True" extra-ref="DevicePolicy"/>

    <variablelist class="dbus-property" generated="True" extra-ref="DeviceAllow"/>

    <variablelist class="dbus-property" generated="True" extra-ref="TasksAccounting"/>

    <variablelist class="dbus-property" generated="True" extra-ref="TasksMax"/>

    <variablelist class="dbus-property" generated="True" extra-ref="IPAccounting"/>

    <variablelist class="dbus-property" generated="True" extra-ref="IPAddressAllow"/>

    <variablelist class="dbus-property" generated="True" extra-ref="IPAddressDeny"/>

    <variablelist class="dbus-property" generated="True" extra-ref="IPIngressFilterPath"/>

    <variablelist class="dbus-property" generated="True" extra-ref="IPEgressFilterPath"/>

    <variablelist class="dbus-property" generated="True" extra-ref="DisableControllers"/>

    <variablelist class="dbus-property" generated="True" extra-ref="ManagedOOMSwap"/>

    <variablelist class="dbus-property" generated="True" extra-ref="ManagedOOMMemoryPressure"/>

    <variablelist class="dbus-property" generated="True" extra-ref="ManagedOOMMemoryPressureLimit"/>

    <variablelist class="dbus-property" generated="True" extra-ref="ManagedOOMPreference"/>

    <variablelist class="dbus-property" generated="True" extra-ref="BPFProgram"/>

    <variablelist class="dbus-property" generated="True" extra-ref="SocketBindAllow"/>

    <variablelist class="dbus-property" generated="True" extra-ref="SocketBindDeny"/>

    <variablelist class="dbus-property" generated="True" extra-ref="Environment"/>

    <variablelist class="dbus-property" generated="True" extra-ref="EnvironmentFiles"/>

    <variablelist class="dbus-property" generated="True" extra-ref="PassEnvironment"/>

    <variablelist class="dbus-property" generated="True" extra-ref="UnsetEnvironment"/>

    <variablelist class="dbus-property" generated="True" extra-ref="UMask"/>

    <variablelist class="dbus-property" generated="True" extra-ref="LimitCPU"/>

    <variablelist class="dbus-property" generated="True" extra-ref="LimitCPUSoft"/>

    <variablelist class="dbus-property" generated="True" extra-ref="LimitFSIZE"/>

    <variablelist class="dbus-property" generated="True" extra-ref="LimitFSIZESoft"/>

    <variablelist class="dbus-property" generated="True" extra-ref="LimitDATA"/>

    <variablelist class="dbus-property" generated="True" extra-ref="LimitDATASoft"/>

    <variablelist class="dbus-property" generated="True" extra-ref="LimitSTACK"/>

    <variablelist class="dbus-property" generated="True" extra-ref="LimitSTACKSoft"/>

    <variablelist class="dbus-property" generated="True" extra-ref="LimitCORE"/>

    <variablelist class="dbus-property" generated="True" extra-ref="LimitCORESoft"/>

    <variablelist class="dbus-property" generated="True" extra-ref="LimitRSS"/>

    <variablelist class="dbus-property" generated="True" extra-ref="LimitRSSSoft"/>

    <variablelist class="dbus-property" generated="True" extra-ref="LimitNOFILE"/>

    <variablelist class="dbus-property" generated="True" extra-ref="LimitNOFILESoft"/>

    <variablelist class="dbus-property" generated="True" extra-ref="LimitAS"/>

    <variablelist class="dbus-property" generated="True" extra-ref="LimitASSoft"/>

    <variablelist class="dbus-property" generated="True" extra-ref="LimitNPROC"/>

    <variablelist class="dbus-property" generated="True" extra-ref="LimitNPROCSoft"/>

    <variablelist class="dbus-property" generated="True" extra-ref="LimitMEMLOCK"/>

    <variablelist class="dbus-property" generated="True" extra-ref="LimitMEMLOCKSoft"/>

    <variablelist class="dbus-property" generated="True" extra-ref="LimitLOCKS"/>

    <variablelist class="dbus-property" generated="True" extra-ref="LimitLOCKSSoft"/>

    <variablelist class="dbus-property" generated="True" extra-ref="LimitSIGPENDING"/>

    <variablelist class="dbus-property" generated="True" extra-ref="LimitSIGPENDINGSoft"/>

    <variablelist class="dbus-property" generated="True" extra-ref="LimitMSGQUEUE"/>

    <variablelist class="dbus-property" generated="True" extra-ref="LimitMSGQUEUESoft"/>

    <variablelist class="dbus-property" generated="True" extra-ref="LimitNICE"/>

    <variablelist class="dbus-property" generated="True" extra-ref="LimitNICESoft"/>

    <variablelist class="dbus-property" generated="True" extra-ref="LimitRTPRIO"/>

    <variablelist class="dbus-property" generated="True" extra-ref="LimitRTPRIOSoft"/>

    <variablelist class="dbus-property" generated="True" extra-ref="LimitRTTIME"/>

    <variablelist class="dbus-property" generated="True" extra-ref="LimitRTTIMESoft"/>

    <variablelist class="dbus-property" generated="True" extra-ref="WorkingDirectory"/>

    <variablelist class="dbus-property" generated="True" extra-ref="RootDirectory"/>

    <variablelist class="dbus-property" generated="True" extra-ref="RootImage"/>

    <variablelist class="dbus-property" generated="True" extra-ref="RootImageOptions"/>

    <variablelist class="dbus-property" generated="True" extra-ref="RootHash"/>

    <variablelist class="dbus-property" generated="True" extra-ref="RootHashPath"/>

    <variablelist class="dbus-property" generated="True" extra-ref="RootHashSignature"/>

    <variablelist class="dbus-property" generated="True" extra-ref="RootHashSignaturePath"/>

    <variablelist class="dbus-property" generated="True" extra-ref="RootVerity"/>

    <variablelist class="dbus-property" generated="True" extra-ref="ExtensionImages"/>

    <variablelist class="dbus-property" generated="True" extra-ref="MountImages"/>

    <variablelist class="dbus-property" generated="True" extra-ref="OOMScoreAdjust"/>

    <variablelist class="dbus-property" generated="True" extra-ref="CoredumpFilter"/>

    <variablelist class="dbus-property" generated="True" extra-ref="Nice"/>

    <variablelist class="dbus-property" generated="True" extra-ref="IOSchedulingClass"/>

    <variablelist class="dbus-property" generated="True" extra-ref="IOSchedulingPriority"/>

    <variablelist class="dbus-property" generated="True" extra-ref="CPUSchedulingPolicy"/>

    <variablelist class="dbus-property" generated="True" extra-ref="CPUSchedulingPriority"/>

    <variablelist class="dbus-property" generated="True" extra-ref="CPUAffinity"/>

    <variablelist class="dbus-property" generated="True" extra-ref="CPUAffinityFromNUMA"/>

    <variablelist class="dbus-property" generated="True" extra-ref="NUMAPolicy"/>

    <variablelist class="dbus-property" generated="True" extra-ref="NUMAMask"/>

    <variablelist class="dbus-property" generated="True" extra-ref="TimerSlackNSec"/>

    <variablelist class="dbus-property" generated="True" extra-ref="CPUSchedulingResetOnFork"/>

    <variablelist class="dbus-property" generated="True" extra-ref="NonBlocking"/>

    <variablelist class="dbus-property" generated="True" extra-ref="StandardInput"/>

    <variablelist class="dbus-property" generated="True" extra-ref="StandardInputFileDescriptorName"/>

    <variablelist class="dbus-property" generated="True" extra-ref="StandardInputData"/>

    <variablelist class="dbus-property" generated="True" extra-ref="StandardOutput"/>

    <variablelist class="dbus-property" generated="True" extra-ref="StandardOutputFileDescriptorName"/>

    <variablelist class="dbus-property" generated="True" extra-ref="StandardError"/>

    <variablelist class="dbus-property" generated="True" extra-ref="StandardErrorFileDescriptorName"/>

    <variablelist class="dbus-property" generated="True" extra-ref="TTYPath"/>

    <variablelist class="dbus-property" generated="True" extra-ref="TTYReset"/>

    <variablelist class="dbus-property" generated="True" extra-ref="TTYVHangup"/>

    <variablelist class="dbus-property" generated="True" extra-ref="TTYVTDisallocate"/>

    <variablelist class="dbus-property" generated="True" extra-ref="SyslogPriority"/>

    <variablelist class="dbus-property" generated="True" extra-ref="SyslogIdentifier"/>

    <variablelist class="dbus-property" generated="True" extra-ref="SyslogLevelPrefix"/>

    <variablelist class="dbus-property" generated="True" extra-ref="SyslogLevel"/>

    <variablelist class="dbus-property" generated="True" extra-ref="SyslogFacility"/>

    <variablelist class="dbus-property" generated="True" extra-ref="LogLevelMax"/>

    <variablelist class="dbus-property" generated="True" extra-ref="LogRateLimitIntervalUSec"/>

    <variablelist class="dbus-property" generated="True" extra-ref="LogRateLimitBurst"/>

    <variablelist class="dbus-property" generated="True" extra-ref="LogExtraFields"/>

    <variablelist class="dbus-property" generated="True" extra-ref="LogNamespace"/>

    <variablelist class="dbus-property" generated="True" extra-ref="SecureBits"/>

    <variablelist class="dbus-property" generated="True" extra-ref="CapabilityBoundingSet"/>

    <variablelist class="dbus-property" generated="True" extra-ref="AmbientCapabilities"/>

    <variablelist class="dbus-property" generated="True" extra-ref="User"/>

    <variablelist class="dbus-property" generated="True" extra-ref="Group"/>

    <variablelist class="dbus-property" generated="True" extra-ref="DynamicUser"/>

    <variablelist class="dbus-property" generated="True" extra-ref="RemoveIPC"/>

    <variablelist class="dbus-property" generated="True" extra-ref="SetCredential"/>

    <variablelist class="dbus-property" generated="True" extra-ref="LoadCredential"/>

    <variablelist class="dbus-property" generated="True" extra-ref="SupplementaryGroups"/>

    <variablelist class="dbus-property" generated="True" extra-ref="PAMName"/>

    <variablelist class="dbus-property" generated="True" extra-ref="ReadWritePaths"/>

    <variablelist class="dbus-property" generated="True" extra-ref="ReadOnlyPaths"/>

    <variablelist class="dbus-property" generated="True" extra-ref="InaccessiblePaths"/>

    <variablelist class="dbus-property" generated="True" extra-ref="ExecPaths"/>

    <variablelist class="dbus-property" generated="True" extra-ref="NoExecPaths"/>

    <variablelist class="dbus-property" generated="True" extra-ref="MountFlags"/>

    <variablelist class="dbus-property" generated="True" extra-ref="PrivateTmp"/>

    <variablelist class="dbus-property" generated="True" extra-ref="PrivateDevices"/>

    <variablelist class="dbus-property" generated="True" extra-ref="ProtectClock"/>

    <variablelist class="dbus-property" generated="True" extra-ref="ProtectKernelTunables"/>

    <variablelist class="dbus-property" generated="True" extra-ref="ProtectKernelModules"/>

    <variablelist class="dbus-property" generated="True" extra-ref="ProtectKernelLogs"/>

    <variablelist class="dbus-property" generated="True" extra-ref="ProtectControlGroups"/>

    <variablelist class="dbus-property" generated="True" extra-ref="PrivateNetwork"/>

    <variablelist class="dbus-property" generated="True" extra-ref="PrivateUsers"/>

    <variablelist class="dbus-property" generated="True" extra-ref="PrivateMounts"/>

    <variablelist class="dbus-property" generated="True" extra-ref="PrivateIPC"/>

    <variablelist class="dbus-property" generated="True" extra-ref="ProtectHome"/>

    <variablelist class="dbus-property" generated="True" extra-ref="ProtectSystem"/>

    <variablelist class="dbus-property" generated="True" extra-ref="SameProcessGroup"/>

    <variablelist class="dbus-property" generated="True" extra-ref="UtmpIdentifier"/>

    <variablelist class="dbus-property" generated="True" extra-ref="UtmpMode"/>

    <variablelist class="dbus-property" generated="True" extra-ref="SELinuxContext"/>

    <variablelist class="dbus-property" generated="True" extra-ref="AppArmorProfile"/>

    <variablelist class="dbus-property" generated="True" extra-ref="SmackProcessLabel"/>

    <variablelist class="dbus-property" generated="True" extra-ref="IgnoreSIGPIPE"/>

    <variablelist class="dbus-property" generated="True" extra-ref="NoNewPrivileges"/>

    <variablelist class="dbus-property" generated="True" extra-ref="SystemCallFilter"/>

    <variablelist class="dbus-property" generated="True" extra-ref="SystemCallArchitectures"/>

    <variablelist class="dbus-property" generated="True" extra-ref="SystemCallErrorNumber"/>

    <variablelist class="dbus-property" generated="True" extra-ref="SystemCallLog"/>

    <variablelist class="dbus-property" generated="True" extra-ref="Personality"/>

    <variablelist class="dbus-property" generated="True" extra-ref="LockPersonality"/>

    <variablelist class="dbus-property" generated="True" extra-ref="RestrictAddressFamilies"/>

    <variablelist class="dbus-property" generated="True" extra-ref="RuntimeDirectoryPreserve"/>

    <variablelist class="dbus-property" generated="True" extra-ref="RuntimeDirectoryMode"/>

    <variablelist class="dbus-property" generated="True" extra-ref="RuntimeDirectory"/>

    <variablelist class="dbus-property" generated="True" extra-ref="StateDirectoryMode"/>

    <variablelist class="dbus-property" generated="True" extra-ref="StateDirectory"/>

    <variablelist class="dbus-property" generated="True" extra-ref="CacheDirectoryMode"/>

    <variablelist class="dbus-property" generated="True" extra-ref="CacheDirectory"/>

    <variablelist class="dbus-property" generated="True" extra-ref="LogsDirectoryMode"/>

    <variablelist class="dbus-property" generated="True" extra-ref="LogsDirectory"/>

    <variablelist class="dbus-property" generated="True" extra-ref="ConfigurationDirectoryMode"/>

    <variablelist class="dbus-property" generated="True" extra-ref="ConfigurationDirectory"/>

    <variablelist class="dbus-property" generated="True" extra-ref="TimeoutCleanUSec"/>

    <variablelist class="dbus-property" generated="True" extra-ref="MemoryDenyWriteExecute"/>

    <variablelist class="dbus-property" generated="True" extra-ref="RestrictRealtime"/>

    <variablelist class="dbus-property" generated="True" extra-ref="RestrictSUIDSGID"/>

    <variablelist class="dbus-property" generated="True" extra-ref="RestrictNamespaces"/>

    <variablelist class="dbus-property" generated="True" extra-ref="BindPaths"/>

    <variablelist class="dbus-property" generated="True" extra-ref="BindReadOnlyPaths"/>

    <variablelist class="dbus-property" generated="True" extra-ref="TemporaryFileSystem"/>

    <variablelist class="dbus-property" generated="True" extra-ref="MountAPIVFS"/>

    <variablelist class="dbus-property" generated="True" extra-ref="KeyringMode"/>

    <variablelist class="dbus-property" generated="True" extra-ref="ProtectProc"/>

    <variablelist class="dbus-property" generated="True" extra-ref="ProcSubset"/>

    <variablelist class="dbus-property" generated="True" extra-ref="ProtectHostname"/>

    <variablelist class="dbus-property" generated="True" extra-ref="NetworkNamespacePath"/>

    <variablelist class="dbus-property" generated="True" extra-ref="IPCNamespacePath"/>

    <variablelist class="dbus-property" generated="True" extra-ref="KillMode"/>

    <variablelist class="dbus-property" generated="True" extra-ref="KillSignal"/>

    <variablelist class="dbus-property" generated="True" extra-ref="RestartKillSignal"/>

    <variablelist class="dbus-property" generated="True" extra-ref="FinalKillSignal"/>

    <variablelist class="dbus-property" generated="True" extra-ref="SendSIGKILL"/>

    <variablelist class="dbus-property" generated="True" extra-ref="SendSIGHUP"/>

    <variablelist class="dbus-property" generated="True" extra-ref="WatchdogSignal"/>

    <!--End of Autogenerated section-->

    <refsect2>
      <title>Properties</title>

      <para>Most of the properties map directly to the corresponding settings in mount unit files. As mount
      units invoke the <filename>/usr/bin/mount</filename> command, their bus objects include implicit
      <varname>ExecMount</varname> (and similar) fields which contain information about processes to
      execute. They also share most of the fields related to the execution context that Service objects
      expose (see above). In addition to these properties there are the following:</para>

      <para><varname>ControlPID</varname> contains the PID of the currently running
      <filename>/usr/bin/mount</filename> or <filename>/usr/bin/umount</filename> command if there is one
      running, otherwise 0.</para>

      <para><varname>Result</varname> contains a value explaining why a mount unit failed if it failed. It
      can take the values <literal>success</literal>, <literal>resources</literal>,
      <literal>timeout</literal>, <literal>exit-code</literal>, <literal>signal</literal>, or
      <literal>core-dump</literal> which have the identical meaning as the corresponding values of the
      corresponding field of service unit objects (see above).</para>
    </refsect2>
  </refsect1>

  <refsect1>
    <title>Automount Unit Objects</title>

    <para>All automount unit objects implement the
    <interfacename>org.freedesktop.systemd1.Automount</interfacename> interface (described here) in addition
    to the generic <interfacename>org.freedesktop.systemd1.Unit</interfacename> interface (see above).</para>

    <programlisting executable="systemd" node="/org/freedesktop/systemd1/unit/proc_2dsys_2dfs_2dbinfmt_5fmisc_2eautomount" interface="org.freedesktop.systemd1.Automount">
node /org/freedesktop/systemd1/unit/proc_2dsys_2dfs_2dbinfmt_5fmisc_2eautomount {
  interface org.freedesktop.systemd1.Automount {
    properties:
      @org.freedesktop.DBus.Property.EmitsChangedSignal("const")
      readonly s Where = '...';
      @org.freedesktop.DBus.Property.EmitsChangedSignal("const")
      readonly u DirectoryMode = ...;
      readonly s Result = '...';
      @org.freedesktop.DBus.Property.EmitsChangedSignal("const")
      readonly t TimeoutIdleUSec = ...;
  };
  interface org.freedesktop.DBus.Peer { ... };
  interface org.freedesktop.DBus.Introspectable { ... };
  interface org.freedesktop.DBus.Properties { ... };
  interface org.freedesktop.systemd1.Unit { ... };
};
    </programlisting>

    <!--property Where is not documented!-->

    <!--property DirectoryMode is not documented!-->

    <!--property TimeoutIdleUSec is not documented!-->

    <!--Autogenerated cross-references for systemd.directives, do not edit-->

    <variablelist class="dbus-interface" generated="True" extra-ref="org.freedesktop.systemd1.Unit"/>

    <variablelist class="dbus-interface" generated="True" extra-ref="org.freedesktop.systemd1.Automount"/>

    <variablelist class="dbus-interface" generated="True" extra-ref="org.freedesktop.systemd1.Unit"/>

    <variablelist class="dbus-interface" generated="True" extra-ref="org.freedesktop.systemd1.Automount"/>

    <variablelist class="dbus-property" generated="True" extra-ref="Where"/>

    <variablelist class="dbus-property" generated="True" extra-ref="DirectoryMode"/>

    <variablelist class="dbus-property" generated="True" extra-ref="Result"/>

    <variablelist class="dbus-property" generated="True" extra-ref="TimeoutIdleUSec"/>

    <!--End of Autogenerated section-->

    <refsect2>
      <title>Properties</title>

      <para>Most of the properties map directly to the corresponding settings in the automount unit
      files.</para>

      <para><varname>Result</varname> knows the values <literal>success</literal> and
      <literal>resources</literal> at this time. They have the same meanings as the corresponding values of
      the corresponding field of the Service object.</para>
    </refsect2>
  </refsect1>


  <refsect1>
    <title>Timer Unit Objects</title>

    <para>All timer unit objects implement the <interfacename>org.freedesktop.systemd1.Timer</interfacename>
    interface (described here) in addition to the generic
    <interfacename>org.freedesktop.systemd1.Unit</interfacename> interface (see above).</para>

    <programlisting executable="systemd" node="/org/freedesktop/systemd1/unit/systemd_2dtmpfiles_2dclean_2etimer" interface="org.freedesktop.systemd1.Timer">
node /org/freedesktop/systemd1/unit/systemd_2dtmpfiles_2dclean_2etimer {
  interface org.freedesktop.systemd1.Timer {
    properties:
      @org.freedesktop.DBus.Property.EmitsChangedSignal("const")
      readonly s Unit = '...';
      @org.freedesktop.DBus.Property.EmitsChangedSignal("invalidates")
      readonly a(stt) TimersMonotonic = [...];
      @org.freedesktop.DBus.Property.EmitsChangedSignal("invalidates")
      readonly a(sst) TimersCalendar = [...];
      @org.freedesktop.DBus.Property.EmitsChangedSignal("const")
      readonly b OnClockChange = ...;
      @org.freedesktop.DBus.Property.EmitsChangedSignal("const")
      readonly b OnTimezoneChange = ...;
      readonly t NextElapseUSecRealtime = ...;
      readonly t NextElapseUSecMonotonic = ...;
      readonly t LastTriggerUSec = ...;
      readonly t LastTriggerUSecMonotonic = ...;
      readonly s Result = '...';
      @org.freedesktop.DBus.Property.EmitsChangedSignal("const")
      readonly t AccuracyUSec = ...;
      @org.freedesktop.DBus.Property.EmitsChangedSignal("const")
      readonly t RandomizedDelayUSec = ...;
      @org.freedesktop.DBus.Property.EmitsChangedSignal("const")
      readonly b FixedRandomDelay = ...;
      @org.freedesktop.DBus.Property.EmitsChangedSignal("const")
      readonly b Persistent = ...;
      @org.freedesktop.DBus.Property.EmitsChangedSignal("const")
      readonly b WakeSystem = ...;
      @org.freedesktop.DBus.Property.EmitsChangedSignal("const")
      readonly b RemainAfterElapse = ...;
  };
  interface org.freedesktop.DBus.Peer { ... };
  interface org.freedesktop.DBus.Introspectable { ... };
  interface org.freedesktop.DBus.Properties { ... };
  interface org.freedesktop.systemd1.Unit { ... };
};
    </programlisting>

    <!--property OnClockChange is not documented!-->

    <!--property OnTimezoneChange is not documented!-->

    <!--property LastTriggerUSec is not documented!-->

    <!--property LastTriggerUSecMonotonic is not documented!-->

    <!--property AccuracyUSec is not documented!-->

    <!--property RandomizedDelayUSec is not documented!-->

    <!--property FixedRandomDelay is not documented!-->

    <!--property Persistent is not documented!-->

    <!--property WakeSystem is not documented!-->

    <!--property RemainAfterElapse is not documented!-->

    <!--Autogenerated cross-references for systemd.directives, do not edit-->

    <variablelist class="dbus-interface" generated="True" extra-ref="org.freedesktop.systemd1.Unit"/>

    <variablelist class="dbus-interface" generated="True" extra-ref="org.freedesktop.systemd1.Timer"/>

    <variablelist class="dbus-interface" generated="True" extra-ref="org.freedesktop.systemd1.Unit"/>

    <variablelist class="dbus-interface" generated="True" extra-ref="org.freedesktop.systemd1.Timer"/>

    <variablelist class="dbus-property" generated="True" extra-ref="Unit"/>

    <variablelist class="dbus-property" generated="True" extra-ref="TimersMonotonic"/>

    <variablelist class="dbus-property" generated="True" extra-ref="TimersCalendar"/>

    <variablelist class="dbus-property" generated="True" extra-ref="OnClockChange"/>

    <variablelist class="dbus-property" generated="True" extra-ref="OnTimezoneChange"/>

    <variablelist class="dbus-property" generated="True" extra-ref="NextElapseUSecRealtime"/>

    <variablelist class="dbus-property" generated="True" extra-ref="NextElapseUSecMonotonic"/>

    <variablelist class="dbus-property" generated="True" extra-ref="LastTriggerUSec"/>

    <variablelist class="dbus-property" generated="True" extra-ref="LastTriggerUSecMonotonic"/>

    <variablelist class="dbus-property" generated="True" extra-ref="Result"/>

    <variablelist class="dbus-property" generated="True" extra-ref="AccuracyUSec"/>

    <variablelist class="dbus-property" generated="True" extra-ref="RandomizedDelayUSec"/>

    <variablelist class="dbus-property" generated="True" extra-ref="FixedRandomDelay"/>

    <variablelist class="dbus-property" generated="True" extra-ref="Persistent"/>

    <variablelist class="dbus-property" generated="True" extra-ref="WakeSystem"/>

    <variablelist class="dbus-property" generated="True" extra-ref="RemainAfterElapse"/>

    <!--End of Autogenerated section-->

    <refsect2>
      <title>Properties</title>

      <para><varname>Unit</varname> contains the name of the unit to activate when the timer elapses.</para>

      <para><varname>TimersMonotonic</varname> contains an array of structs that contain information about
      all monotonic timers of this timer unit. The structs contain a string identifying the timer base, which
      is one of <literal>OnActiveUSec</literal>, <literal>OnBootUSec</literal>,
      <literal>OnStartupUSec</literal>, <literal>OnUnitActiveUSec</literal>, or
      <literal>OnUnitInactiveUSec</literal> which correspond to the settings of the same names in the timer
      unit files; the microsecond offset from this timer base in monotonic time; the next elapsation point on
      the <constant>CLOCK_MONOTONIC</constant> clock, relative to its epoch.</para>

      <para><varname>TimersCalendar</varname> contains an array of structs that contain information about all
      realtime/calendar timers of this timer unit. The structs contain a string identifying the timer base,
      which may only be <literal>OnCalendar</literal> for now; the calendar specification string; the next
      elapsation point on the <constant>CLOCK_REALTIME</constant> clock, relative to its epoch.</para>

      <para><varname>NextElapseUSecRealtime</varname> contains the next elapsation point on the
      <constant>CLOCK_REALTIME</constant> clock in miscroseconds since the epoch, or 0 if this timer event
      does not include at least one calendar event.</para>

      <para>Similarly, <varname>NextElapseUSecMonotonic</varname> contains the next elapsation point on the
      <constant>CLOCK_MONOTONIC</constant> clock in microseconds since the epoch, or 0 if this timer event
      does not include at least one monotonic event.</para>

      <para><varname>Result</varname> knows the values <literal>success</literal> and
      <literal>resources</literal> with the same meanings as the matching values of the corresponding
      property of the service interface.</para>
    </refsect2>
  </refsect1>

  <refsect1>
    <title>Swap Unit Objects</title>

    <para>All swap unit objects implement the <interfacename>org.freedesktop.systemd1.Swap</interfacename>
    interface (described here) in addition to the generic
    <interfacename>org.freedesktop.systemd1.Unit</interfacename> interface (see above).</para>

    <programlisting executable="systemd" node="/org/freedesktop/systemd1/unit/dev_2dsda3_2eswap" interface="org.freedesktop.systemd1.Swap">
node /org/freedesktop/systemd1/unit/dev_2dsda3_2eswap {
  interface org.freedesktop.systemd1.Swap {
    methods:
      GetProcesses(out a(sus) processes);
      AttachProcesses(in  s subcgroup,
                      in  au pids);
    properties:
      readonly s What = '...';
      readonly i Priority = ...;
      readonly s Options = '...';
      @org.freedesktop.DBus.Property.EmitsChangedSignal("const")
      readonly t TimeoutUSec = ...;
      readonly u ControlPID = ...;
      readonly s Result = '...';
      readonly u UID = ...;
      readonly u GID = ...;
      @org.freedesktop.DBus.Property.EmitsChangedSignal("invalidates")
      readonly a(sasbttttuii) ExecActivate = [...];
      @org.freedesktop.DBus.Property.EmitsChangedSignal("invalidates")
      readonly a(sasbttttuii) ExecDeactivate = [...];
      @org.freedesktop.DBus.Property.EmitsChangedSignal("false")
      readonly s Slice = '...';
      @org.freedesktop.DBus.Property.EmitsChangedSignal("false")
      readonly s ControlGroup = '...';
      @org.freedesktop.DBus.Property.EmitsChangedSignal("false")
      readonly t MemoryCurrent = ...;
      @org.freedesktop.DBus.Property.EmitsChangedSignal("false")
      readonly t MemoryAvailable = ...;
      @org.freedesktop.DBus.Property.EmitsChangedSignal("false")
      readonly t CPUUsageNSec = ...;
      @org.freedesktop.DBus.Property.EmitsChangedSignal("false")
      readonly ay EffectiveCPUs = [...];
      @org.freedesktop.DBus.Property.EmitsChangedSignal("false")
      readonly ay EffectiveMemoryNodes = [...];
      @org.freedesktop.DBus.Property.EmitsChangedSignal("false")
      readonly t TasksCurrent = ...;
      @org.freedesktop.DBus.Property.EmitsChangedSignal("false")
      readonly t IPIngressBytes = ...;
      @org.freedesktop.DBus.Property.EmitsChangedSignal("false")
      readonly t IPIngressPackets = ...;
      @org.freedesktop.DBus.Property.EmitsChangedSignal("false")
      readonly t IPEgressBytes = ...;
      @org.freedesktop.DBus.Property.EmitsChangedSignal("false")
      readonly t IPEgressPackets = ...;
      @org.freedesktop.DBus.Property.EmitsChangedSignal("false")
      readonly t IOReadBytes = ...;
      @org.freedesktop.DBus.Property.EmitsChangedSignal("false")
      readonly t IOReadOperations = ...;
      @org.freedesktop.DBus.Property.EmitsChangedSignal("false")
      readonly t IOWriteBytes = ...;
      @org.freedesktop.DBus.Property.EmitsChangedSignal("false")
      readonly t IOWriteOperations = ...;
      @org.freedesktop.DBus.Property.EmitsChangedSignal("false")
      readonly b Delegate = ...;
      @org.freedesktop.DBus.Property.EmitsChangedSignal("false")
      readonly as DelegateControllers = ['...', ...];
      @org.freedesktop.DBus.Property.EmitsChangedSignal("false")
      readonly b CPUAccounting = ...;
      @org.freedesktop.DBus.Property.EmitsChangedSignal("false")
      readonly t CPUWeight = ...;
      @org.freedesktop.DBus.Property.EmitsChangedSignal("false")
      readonly t StartupCPUWeight = ...;
      @org.freedesktop.DBus.Property.EmitsChangedSignal("false")
      readonly t CPUShares = ...;
      @org.freedesktop.DBus.Property.EmitsChangedSignal("false")
      readonly t StartupCPUShares = ...;
      @org.freedesktop.DBus.Property.EmitsChangedSignal("false")
      readonly t CPUQuotaPerSecUSec = ...;
      @org.freedesktop.DBus.Property.EmitsChangedSignal("false")
      readonly t CPUQuotaPeriodUSec = ...;
      @org.freedesktop.DBus.Property.EmitsChangedSignal("false")
      readonly ay AllowedCPUs = [...];
      @org.freedesktop.DBus.Property.EmitsChangedSignal("false")
      readonly ay AllowedMemoryNodes = [...];
      @org.freedesktop.DBus.Property.EmitsChangedSignal("false")
      readonly b IOAccounting = ...;
      @org.freedesktop.DBus.Property.EmitsChangedSignal("false")
      readonly t IOWeight = ...;
      @org.freedesktop.DBus.Property.EmitsChangedSignal("false")
      readonly t StartupIOWeight = ...;
      @org.freedesktop.DBus.Property.EmitsChangedSignal("false")
      readonly a(st) IODeviceWeight = [...];
      @org.freedesktop.DBus.Property.EmitsChangedSignal("false")
      readonly a(st) IOReadBandwidthMax = [...];
      @org.freedesktop.DBus.Property.EmitsChangedSignal("false")
      readonly a(st) IOWriteBandwidthMax = [...];
      @org.freedesktop.DBus.Property.EmitsChangedSignal("false")
      readonly a(st) IOReadIOPSMax = [...];
      @org.freedesktop.DBus.Property.EmitsChangedSignal("false")
      readonly a(st) IOWriteIOPSMax = [...];
      @org.freedesktop.DBus.Property.EmitsChangedSignal("false")
      readonly a(st) IODeviceLatencyTargetUSec = [...];
      @org.freedesktop.DBus.Property.EmitsChangedSignal("false")
      readonly b BlockIOAccounting = ...;
      @org.freedesktop.DBus.Property.EmitsChangedSignal("false")
      readonly t BlockIOWeight = ...;
      @org.freedesktop.DBus.Property.EmitsChangedSignal("false")
      readonly t StartupBlockIOWeight = ...;
      @org.freedesktop.DBus.Property.EmitsChangedSignal("false")
      readonly a(st) BlockIODeviceWeight = [...];
      @org.freedesktop.DBus.Property.EmitsChangedSignal("false")
      readonly a(st) BlockIOReadBandwidth = [...];
      @org.freedesktop.DBus.Property.EmitsChangedSignal("false")
      readonly a(st) BlockIOWriteBandwidth = [...];
      @org.freedesktop.DBus.Property.EmitsChangedSignal("false")
      readonly b MemoryAccounting = ...;
      @org.freedesktop.DBus.Property.EmitsChangedSignal("false")
      readonly t DefaultMemoryLow = ...;
      @org.freedesktop.DBus.Property.EmitsChangedSignal("false")
      readonly t DefaultMemoryMin = ...;
      @org.freedesktop.DBus.Property.EmitsChangedSignal("false")
      readonly t MemoryMin = ...;
      @org.freedesktop.DBus.Property.EmitsChangedSignal("false")
      readonly t MemoryLow = ...;
      @org.freedesktop.DBus.Property.EmitsChangedSignal("false")
      readonly t MemoryHigh = ...;
      @org.freedesktop.DBus.Property.EmitsChangedSignal("false")
      readonly t MemoryMax = ...;
      @org.freedesktop.DBus.Property.EmitsChangedSignal("false")
      readonly t MemorySwapMax = ...;
      @org.freedesktop.DBus.Property.EmitsChangedSignal("false")
      readonly t MemoryLimit = ...;
      @org.freedesktop.DBus.Property.EmitsChangedSignal("false")
      readonly s DevicePolicy = '...';
      @org.freedesktop.DBus.Property.EmitsChangedSignal("false")
      readonly a(ss) DeviceAllow = [...];
      @org.freedesktop.DBus.Property.EmitsChangedSignal("false")
      readonly b TasksAccounting = ...;
      @org.freedesktop.DBus.Property.EmitsChangedSignal("false")
      readonly t TasksMax = ...;
      @org.freedesktop.DBus.Property.EmitsChangedSignal("false")
      readonly b IPAccounting = ...;
      @org.freedesktop.DBus.Property.EmitsChangedSignal("false")
      readonly a(iayu) IPAddressAllow = [...];
      @org.freedesktop.DBus.Property.EmitsChangedSignal("false")
      readonly a(iayu) IPAddressDeny = [...];
      @org.freedesktop.DBus.Property.EmitsChangedSignal("false")
      readonly as IPIngressFilterPath = ['...', ...];
      @org.freedesktop.DBus.Property.EmitsChangedSignal("false")
      readonly as IPEgressFilterPath = ['...', ...];
      @org.freedesktop.DBus.Property.EmitsChangedSignal("false")
      readonly as DisableControllers = ['...', ...];
      @org.freedesktop.DBus.Property.EmitsChangedSignal("false")
      readonly s ManagedOOMSwap = '...';
      @org.freedesktop.DBus.Property.EmitsChangedSignal("false")
      readonly s ManagedOOMMemoryPressure = '...';
      @org.freedesktop.DBus.Property.EmitsChangedSignal("false")
      readonly u ManagedOOMMemoryPressureLimit = ...;
      @org.freedesktop.DBus.Property.EmitsChangedSignal("false")
      readonly s ManagedOOMPreference = '...';
      @org.freedesktop.DBus.Property.EmitsChangedSignal("false")
      readonly a(ss) BPFProgram = [...];
      @org.freedesktop.DBus.Property.EmitsChangedSignal("false")
      readonly a(iiqq) SocketBindAllow = [...];
      @org.freedesktop.DBus.Property.EmitsChangedSignal("false")
      readonly a(iiqq) SocketBindDeny = [...];
      @org.freedesktop.DBus.Property.EmitsChangedSignal("const")
      readonly as Environment = ['...', ...];
      @org.freedesktop.DBus.Property.EmitsChangedSignal("const")
      readonly a(sb) EnvironmentFiles = [...];
      @org.freedesktop.DBus.Property.EmitsChangedSignal("const")
      readonly as PassEnvironment = ['...', ...];
      @org.freedesktop.DBus.Property.EmitsChangedSignal("const")
      readonly as UnsetEnvironment = ['...', ...];
      @org.freedesktop.DBus.Property.EmitsChangedSignal("const")
      readonly u UMask = ...;
      @org.freedesktop.DBus.Property.EmitsChangedSignal("const")
      readonly t LimitCPU = ...;
      @org.freedesktop.DBus.Property.EmitsChangedSignal("const")
      readonly t LimitCPUSoft = ...;
      @org.freedesktop.DBus.Property.EmitsChangedSignal("const")
      readonly t LimitFSIZE = ...;
      @org.freedesktop.DBus.Property.EmitsChangedSignal("const")
      readonly t LimitFSIZESoft = ...;
      @org.freedesktop.DBus.Property.EmitsChangedSignal("const")
      readonly t LimitDATA = ...;
      @org.freedesktop.DBus.Property.EmitsChangedSignal("const")
      readonly t LimitDATASoft = ...;
      @org.freedesktop.DBus.Property.EmitsChangedSignal("const")
      readonly t LimitSTACK = ...;
      @org.freedesktop.DBus.Property.EmitsChangedSignal("const")
      readonly t LimitSTACKSoft = ...;
      @org.freedesktop.DBus.Property.EmitsChangedSignal("const")
      readonly t LimitCORE = ...;
      @org.freedesktop.DBus.Property.EmitsChangedSignal("const")
      readonly t LimitCORESoft = ...;
      @org.freedesktop.DBus.Property.EmitsChangedSignal("const")
      readonly t LimitRSS = ...;
      @org.freedesktop.DBus.Property.EmitsChangedSignal("const")
      readonly t LimitRSSSoft = ...;
      @org.freedesktop.DBus.Property.EmitsChangedSignal("const")
      readonly t LimitNOFILE = ...;
      @org.freedesktop.DBus.Property.EmitsChangedSignal("const")
      readonly t LimitNOFILESoft = ...;
      @org.freedesktop.DBus.Property.EmitsChangedSignal("const")
      readonly t LimitAS = ...;
      @org.freedesktop.DBus.Property.EmitsChangedSignal("const")
      readonly t LimitASSoft = ...;
      @org.freedesktop.DBus.Property.EmitsChangedSignal("const")
      readonly t LimitNPROC = ...;
      @org.freedesktop.DBus.Property.EmitsChangedSignal("const")
      readonly t LimitNPROCSoft = ...;
      @org.freedesktop.DBus.Property.EmitsChangedSignal("const")
      readonly t LimitMEMLOCK = ...;
      @org.freedesktop.DBus.Property.EmitsChangedSignal("const")
      readonly t LimitMEMLOCKSoft = ...;
      @org.freedesktop.DBus.Property.EmitsChangedSignal("const")
      readonly t LimitLOCKS = ...;
      @org.freedesktop.DBus.Property.EmitsChangedSignal("const")
      readonly t LimitLOCKSSoft = ...;
      @org.freedesktop.DBus.Property.EmitsChangedSignal("const")
      readonly t LimitSIGPENDING = ...;
      @org.freedesktop.DBus.Property.EmitsChangedSignal("const")
      readonly t LimitSIGPENDINGSoft = ...;
      @org.freedesktop.DBus.Property.EmitsChangedSignal("const")
      readonly t LimitMSGQUEUE = ...;
      @org.freedesktop.DBus.Property.EmitsChangedSignal("const")
      readonly t LimitMSGQUEUESoft = ...;
      @org.freedesktop.DBus.Property.EmitsChangedSignal("const")
      readonly t LimitNICE = ...;
      @org.freedesktop.DBus.Property.EmitsChangedSignal("const")
      readonly t LimitNICESoft = ...;
      @org.freedesktop.DBus.Property.EmitsChangedSignal("const")
      readonly t LimitRTPRIO = ...;
      @org.freedesktop.DBus.Property.EmitsChangedSignal("const")
      readonly t LimitRTPRIOSoft = ...;
      @org.freedesktop.DBus.Property.EmitsChangedSignal("const")
      readonly t LimitRTTIME = ...;
      @org.freedesktop.DBus.Property.EmitsChangedSignal("const")
      readonly t LimitRTTIMESoft = ...;
      @org.freedesktop.DBus.Property.EmitsChangedSignal("const")
      readonly s WorkingDirectory = '...';
      @org.freedesktop.DBus.Property.EmitsChangedSignal("const")
      readonly s RootDirectory = '...';
      @org.freedesktop.DBus.Property.EmitsChangedSignal("const")
      readonly s RootImage = '...';
      @org.freedesktop.DBus.Property.EmitsChangedSignal("const")
      readonly a(ss) RootImageOptions = [...];
      @org.freedesktop.DBus.Property.EmitsChangedSignal("const")
      readonly ay RootHash = [...];
      @org.freedesktop.DBus.Property.EmitsChangedSignal("const")
      readonly s RootHashPath = '...';
      @org.freedesktop.DBus.Property.EmitsChangedSignal("const")
      readonly ay RootHashSignature = [...];
      @org.freedesktop.DBus.Property.EmitsChangedSignal("const")
      readonly s RootHashSignaturePath = '...';
      @org.freedesktop.DBus.Property.EmitsChangedSignal("const")
      readonly s RootVerity = '...';
      @org.freedesktop.DBus.Property.EmitsChangedSignal("const")
      readonly a(sba(ss)) ExtensionImages = [...];
      @org.freedesktop.DBus.Property.EmitsChangedSignal("const")
      readonly a(ssba(ss)) MountImages = [...];
      @org.freedesktop.DBus.Property.EmitsChangedSignal("const")
      readonly i OOMScoreAdjust = ...;
      @org.freedesktop.DBus.Property.EmitsChangedSignal("const")
      readonly t CoredumpFilter = ...;
      @org.freedesktop.DBus.Property.EmitsChangedSignal("const")
      readonly i Nice = ...;
      @org.freedesktop.DBus.Property.EmitsChangedSignal("const")
      readonly i IOSchedulingClass = ...;
      @org.freedesktop.DBus.Property.EmitsChangedSignal("const")
      readonly i IOSchedulingPriority = ...;
      @org.freedesktop.DBus.Property.EmitsChangedSignal("const")
      readonly i CPUSchedulingPolicy = ...;
      @org.freedesktop.DBus.Property.EmitsChangedSignal("const")
      readonly i CPUSchedulingPriority = ...;
      @org.freedesktop.DBus.Property.EmitsChangedSignal("const")
      readonly ay CPUAffinity = [...];
      @org.freedesktop.DBus.Property.EmitsChangedSignal("const")
      readonly b CPUAffinityFromNUMA = ...;
      @org.freedesktop.DBus.Property.EmitsChangedSignal("const")
      readonly i NUMAPolicy = ...;
      @org.freedesktop.DBus.Property.EmitsChangedSignal("const")
      readonly ay NUMAMask = [...];
      @org.freedesktop.DBus.Property.EmitsChangedSignal("const")
      readonly t TimerSlackNSec = ...;
      @org.freedesktop.DBus.Property.EmitsChangedSignal("const")
      readonly b CPUSchedulingResetOnFork = ...;
      @org.freedesktop.DBus.Property.EmitsChangedSignal("const")
      readonly b NonBlocking = ...;
      @org.freedesktop.DBus.Property.EmitsChangedSignal("const")
      readonly s StandardInput = '...';
      @org.freedesktop.DBus.Property.EmitsChangedSignal("const")
      readonly s StandardInputFileDescriptorName = '...';
      @org.freedesktop.DBus.Property.EmitsChangedSignal("const")
      readonly ay StandardInputData = [...];
      @org.freedesktop.DBus.Property.EmitsChangedSignal("const")
      readonly s StandardOutput = '...';
      @org.freedesktop.DBus.Property.EmitsChangedSignal("const")
      readonly s StandardOutputFileDescriptorName = '...';
      @org.freedesktop.DBus.Property.EmitsChangedSignal("const")
      readonly s StandardError = '...';
      @org.freedesktop.DBus.Property.EmitsChangedSignal("const")
      readonly s StandardErrorFileDescriptorName = '...';
      @org.freedesktop.DBus.Property.EmitsChangedSignal("const")
      readonly s TTYPath = '...';
      @org.freedesktop.DBus.Property.EmitsChangedSignal("const")
      readonly b TTYReset = ...;
      @org.freedesktop.DBus.Property.EmitsChangedSignal("const")
      readonly b TTYVHangup = ...;
      @org.freedesktop.DBus.Property.EmitsChangedSignal("const")
      readonly b TTYVTDisallocate = ...;
      @org.freedesktop.DBus.Property.EmitsChangedSignal("const")
      readonly i SyslogPriority = ...;
      @org.freedesktop.DBus.Property.EmitsChangedSignal("const")
      readonly s SyslogIdentifier = '...';
      @org.freedesktop.DBus.Property.EmitsChangedSignal("const")
      readonly b SyslogLevelPrefix = ...;
      @org.freedesktop.DBus.Property.EmitsChangedSignal("const")
      readonly i SyslogLevel = ...;
      @org.freedesktop.DBus.Property.EmitsChangedSignal("const")
      readonly i SyslogFacility = ...;
      @org.freedesktop.DBus.Property.EmitsChangedSignal("const")
      readonly i LogLevelMax = ...;
      @org.freedesktop.DBus.Property.EmitsChangedSignal("const")
      readonly t LogRateLimitIntervalUSec = ...;
      @org.freedesktop.DBus.Property.EmitsChangedSignal("const")
      readonly u LogRateLimitBurst = ...;
      @org.freedesktop.DBus.Property.EmitsChangedSignal("const")
      readonly aay LogExtraFields = [[...], ...];
      @org.freedesktop.DBus.Property.EmitsChangedSignal("const")
      readonly s LogNamespace = '...';
      @org.freedesktop.DBus.Property.EmitsChangedSignal("const")
      readonly i SecureBits = ...;
      @org.freedesktop.DBus.Property.EmitsChangedSignal("const")
      readonly t CapabilityBoundingSet = ...;
      @org.freedesktop.DBus.Property.EmitsChangedSignal("const")
      readonly t AmbientCapabilities = ...;
      @org.freedesktop.DBus.Property.EmitsChangedSignal("const")
      readonly s User = '...';
      @org.freedesktop.DBus.Property.EmitsChangedSignal("const")
      readonly s Group = '...';
      @org.freedesktop.DBus.Property.EmitsChangedSignal("const")
      readonly b DynamicUser = ...;
      @org.freedesktop.DBus.Property.EmitsChangedSignal("const")
      readonly b RemoveIPC = ...;
      @org.freedesktop.DBus.Property.EmitsChangedSignal("const")
      readonly a(say) SetCredential = [...];
      @org.freedesktop.DBus.Property.EmitsChangedSignal("const")
      readonly a(ss) LoadCredential = [...];
      @org.freedesktop.DBus.Property.EmitsChangedSignal("const")
      readonly as SupplementaryGroups = ['...', ...];
      @org.freedesktop.DBus.Property.EmitsChangedSignal("const")
      readonly s PAMName = '...';
      @org.freedesktop.DBus.Property.EmitsChangedSignal("const")
      readonly as ReadWritePaths = ['...', ...];
      @org.freedesktop.DBus.Property.EmitsChangedSignal("const")
      readonly as ReadOnlyPaths = ['...', ...];
      @org.freedesktop.DBus.Property.EmitsChangedSignal("const")
      readonly as InaccessiblePaths = ['...', ...];
      @org.freedesktop.DBus.Property.EmitsChangedSignal("const")
      readonly as ExecPaths = ['...', ...];
      @org.freedesktop.DBus.Property.EmitsChangedSignal("const")
      readonly as NoExecPaths = ['...', ...];
      @org.freedesktop.DBus.Property.EmitsChangedSignal("const")
      readonly t MountFlags = ...;
      @org.freedesktop.DBus.Property.EmitsChangedSignal("const")
      readonly b PrivateTmp = ...;
      @org.freedesktop.DBus.Property.EmitsChangedSignal("const")
      readonly b PrivateDevices = ...;
      @org.freedesktop.DBus.Property.EmitsChangedSignal("const")
      readonly b ProtectClock = ...;
      @org.freedesktop.DBus.Property.EmitsChangedSignal("const")
      readonly b ProtectKernelTunables = ...;
      @org.freedesktop.DBus.Property.EmitsChangedSignal("const")
      readonly b ProtectKernelModules = ...;
      @org.freedesktop.DBus.Property.EmitsChangedSignal("const")
      readonly b ProtectKernelLogs = ...;
      @org.freedesktop.DBus.Property.EmitsChangedSignal("const")
      readonly b ProtectControlGroups = ...;
      @org.freedesktop.DBus.Property.EmitsChangedSignal("const")
      readonly b PrivateNetwork = ...;
      @org.freedesktop.DBus.Property.EmitsChangedSignal("const")
      readonly b PrivateUsers = ...;
      @org.freedesktop.DBus.Property.EmitsChangedSignal("const")
      readonly b PrivateMounts = ...;
      @org.freedesktop.DBus.Property.EmitsChangedSignal("const")
      readonly b PrivateIPC = ...;
      @org.freedesktop.DBus.Property.EmitsChangedSignal("const")
      readonly s ProtectHome = '...';
      @org.freedesktop.DBus.Property.EmitsChangedSignal("const")
      readonly s ProtectSystem = '...';
      @org.freedesktop.DBus.Property.EmitsChangedSignal("const")
      readonly b SameProcessGroup = ...;
      @org.freedesktop.DBus.Property.EmitsChangedSignal("const")
      readonly s UtmpIdentifier = '...';
      @org.freedesktop.DBus.Property.EmitsChangedSignal("const")
      readonly s UtmpMode = '...';
      @org.freedesktop.DBus.Property.EmitsChangedSignal("const")
      readonly (bs) SELinuxContext = ...;
      @org.freedesktop.DBus.Property.EmitsChangedSignal("const")
      readonly (bs) AppArmorProfile = ...;
      @org.freedesktop.DBus.Property.EmitsChangedSignal("const")
      readonly (bs) SmackProcessLabel = ...;
      @org.freedesktop.DBus.Property.EmitsChangedSignal("const")
      readonly b IgnoreSIGPIPE = ...;
      @org.freedesktop.DBus.Property.EmitsChangedSignal("const")
      readonly b NoNewPrivileges = ...;
      @org.freedesktop.DBus.Property.EmitsChangedSignal("const")
      readonly (bas) SystemCallFilter = ...;
      @org.freedesktop.DBus.Property.EmitsChangedSignal("const")
      readonly as SystemCallArchitectures = ['...', ...];
      @org.freedesktop.DBus.Property.EmitsChangedSignal("const")
      readonly i SystemCallErrorNumber = ...;
      @org.freedesktop.DBus.Property.EmitsChangedSignal("const")
      readonly (bas) SystemCallLog = ...;
      @org.freedesktop.DBus.Property.EmitsChangedSignal("const")
      readonly s Personality = '...';
      @org.freedesktop.DBus.Property.EmitsChangedSignal("const")
      readonly b LockPersonality = ...;
      @org.freedesktop.DBus.Property.EmitsChangedSignal("const")
      readonly (bas) RestrictAddressFamilies = ...;
      @org.freedesktop.DBus.Property.EmitsChangedSignal("const")
      readonly s RuntimeDirectoryPreserve = '...';
      @org.freedesktop.DBus.Property.EmitsChangedSignal("const")
      readonly u RuntimeDirectoryMode = ...;
      @org.freedesktop.DBus.Property.EmitsChangedSignal("const")
      readonly as RuntimeDirectory = ['...', ...];
      @org.freedesktop.DBus.Property.EmitsChangedSignal("const")
      readonly u StateDirectoryMode = ...;
      @org.freedesktop.DBus.Property.EmitsChangedSignal("const")
      readonly as StateDirectory = ['...', ...];
      @org.freedesktop.DBus.Property.EmitsChangedSignal("const")
      readonly u CacheDirectoryMode = ...;
      @org.freedesktop.DBus.Property.EmitsChangedSignal("const")
      readonly as CacheDirectory = ['...', ...];
      @org.freedesktop.DBus.Property.EmitsChangedSignal("const")
      readonly u LogsDirectoryMode = ...;
      @org.freedesktop.DBus.Property.EmitsChangedSignal("const")
      readonly as LogsDirectory = ['...', ...];
      @org.freedesktop.DBus.Property.EmitsChangedSignal("const")
      readonly u ConfigurationDirectoryMode = ...;
      @org.freedesktop.DBus.Property.EmitsChangedSignal("const")
      readonly as ConfigurationDirectory = ['...', ...];
      @org.freedesktop.DBus.Property.EmitsChangedSignal("const")
      readonly t TimeoutCleanUSec = ...;
      @org.freedesktop.DBus.Property.EmitsChangedSignal("const")
      readonly b MemoryDenyWriteExecute = ...;
      @org.freedesktop.DBus.Property.EmitsChangedSignal("const")
      readonly b RestrictRealtime = ...;
      @org.freedesktop.DBus.Property.EmitsChangedSignal("const")
      readonly b RestrictSUIDSGID = ...;
      @org.freedesktop.DBus.Property.EmitsChangedSignal("const")
      readonly t RestrictNamespaces = ...;
      @org.freedesktop.DBus.Property.EmitsChangedSignal("const")
      readonly a(ssbt) BindPaths = [...];
      @org.freedesktop.DBus.Property.EmitsChangedSignal("const")
      readonly a(ssbt) BindReadOnlyPaths = [...];
      @org.freedesktop.DBus.Property.EmitsChangedSignal("const")
      readonly a(ss) TemporaryFileSystem = [...];
      @org.freedesktop.DBus.Property.EmitsChangedSignal("const")
      readonly b MountAPIVFS = ...;
      @org.freedesktop.DBus.Property.EmitsChangedSignal("const")
      readonly s KeyringMode = '...';
      @org.freedesktop.DBus.Property.EmitsChangedSignal("const")
      readonly s ProtectProc = '...';
      @org.freedesktop.DBus.Property.EmitsChangedSignal("const")
      readonly s ProcSubset = '...';
      @org.freedesktop.DBus.Property.EmitsChangedSignal("const")
      readonly b ProtectHostname = ...;
      @org.freedesktop.DBus.Property.EmitsChangedSignal("const")
      readonly s NetworkNamespacePath = '...';
      @org.freedesktop.DBus.Property.EmitsChangedSignal("const")
      readonly s IPCNamespacePath = '...';
      @org.freedesktop.DBus.Property.EmitsChangedSignal("const")
      readonly s KillMode = '...';
      @org.freedesktop.DBus.Property.EmitsChangedSignal("const")
      readonly i KillSignal = ...;
      @org.freedesktop.DBus.Property.EmitsChangedSignal("const")
      readonly i RestartKillSignal = ...;
      @org.freedesktop.DBus.Property.EmitsChangedSignal("const")
      readonly i FinalKillSignal = ...;
      @org.freedesktop.DBus.Property.EmitsChangedSignal("const")
      readonly b SendSIGKILL = ...;
      @org.freedesktop.DBus.Property.EmitsChangedSignal("const")
      readonly b SendSIGHUP = ...;
      @org.freedesktop.DBus.Property.EmitsChangedSignal("const")
      readonly i WatchdogSignal = ...;
  };
  interface org.freedesktop.DBus.Peer { ... };
  interface org.freedesktop.DBus.Introspectable { ... };
  interface org.freedesktop.DBus.Properties { ... };
  interface org.freedesktop.systemd1.Unit { ... };
};
    </programlisting>

    <!--method GetProcesses is not documented!-->

    <!--method AttachProcesses is not documented!-->

    <!--property What is not documented!-->

    <!--property Priority is not documented!-->

    <!--property Options is not documented!-->

    <!--property TimeoutUSec is not documented!-->

    <!--property UID is not documented!-->

    <!--property GID is not documented!-->

    <!--property ExecDeactivate is not documented!-->

    <!--property Slice is not documented!-->

    <!--property MemoryCurrent is not documented!-->

    <!--property CPUUsageNSec is not documented!-->

    <!--property EffectiveCPUs is not documented!-->

    <!--property EffectiveMemoryNodes is not documented!-->

    <!--property TasksCurrent is not documented!-->

    <!--property IPIngressBytes is not documented!-->

    <!--property IPIngressPackets is not documented!-->

    <!--property IPEgressBytes is not documented!-->

    <!--property IPEgressPackets is not documented!-->

    <!--property IOReadBytes is not documented!-->

    <!--property IOReadOperations is not documented!-->

    <!--property IOWriteBytes is not documented!-->

    <!--property IOWriteOperations is not documented!-->

    <!--property Delegate is not documented!-->

    <!--property DelegateControllers is not documented!-->

    <!--property CPUAccounting is not documented!-->

    <!--property CPUWeight is not documented!-->

    <!--property StartupCPUWeight is not documented!-->

    <!--property CPUShares is not documented!-->

    <!--property StartupCPUShares is not documented!-->

    <!--property CPUQuotaPerSecUSec is not documented!-->

    <!--property CPUQuotaPeriodUSec is not documented!-->

    <!--property AllowedCPUs is not documented!-->

    <!--property AllowedMemoryNodes is not documented!-->

    <!--property IOAccounting is not documented!-->

    <!--property IOWeight is not documented!-->

    <!--property StartupIOWeight is not documented!-->

    <!--property IODeviceWeight is not documented!-->

    <!--property IOReadBandwidthMax is not documented!-->

    <!--property IOWriteBandwidthMax is not documented!-->

    <!--property IOReadIOPSMax is not documented!-->

    <!--property IOWriteIOPSMax is not documented!-->

    <!--property IODeviceLatencyTargetUSec is not documented!-->

    <!--property BlockIOAccounting is not documented!-->

    <!--property BlockIOWeight is not documented!-->

    <!--property StartupBlockIOWeight is not documented!-->

    <!--property BlockIODeviceWeight is not documented!-->

    <!--property BlockIOReadBandwidth is not documented!-->

    <!--property BlockIOWriteBandwidth is not documented!-->

    <!--property MemoryAccounting is not documented!-->

    <!--property DefaultMemoryLow is not documented!-->

    <!--property DefaultMemoryMin is not documented!-->

    <!--property MemoryMin is not documented!-->

    <!--property MemoryLow is not documented!-->

    <!--property MemoryHigh is not documented!-->

    <!--property MemoryMax is not documented!-->

    <!--property MemorySwapMax is not documented!-->

    <!--property MemoryLimit is not documented!-->

    <!--property DevicePolicy is not documented!-->

    <!--property DeviceAllow is not documented!-->

    <!--property TasksAccounting is not documented!-->

    <!--property TasksMax is not documented!-->

    <!--property IPAccounting is not documented!-->

    <!--property IPAddressAllow is not documented!-->

    <!--property IPAddressDeny is not documented!-->

    <!--property IPIngressFilterPath is not documented!-->

    <!--property IPEgressFilterPath is not documented!-->

    <!--property DisableControllers is not documented!-->

    <!--property ManagedOOMSwap is not documented!-->

    <!--property ManagedOOMMemoryPressure is not documented!-->

    <!--property ManagedOOMMemoryPressureLimit is not documented!-->

    <!--property ManagedOOMPreference is not documented!-->

    <!--property BPFProgram is not documented!-->

    <!--property SocketBindAllow is not documented!-->

    <!--property SocketBindDeny is not documented!-->

    <!--property EnvironmentFiles is not documented!-->

    <!--property PassEnvironment is not documented!-->

    <!--property UnsetEnvironment is not documented!-->

    <!--property UMask is not documented!-->

    <!--property LimitCPUSoft is not documented!-->

    <!--property LimitFSIZE is not documented!-->

    <!--property LimitFSIZESoft is not documented!-->

    <!--property LimitDATA is not documented!-->

    <!--property LimitDATASoft is not documented!-->

    <!--property LimitSTACK is not documented!-->

    <!--property LimitSTACKSoft is not documented!-->

    <!--property LimitCORE is not documented!-->

    <!--property LimitCORESoft is not documented!-->

    <!--property LimitRSS is not documented!-->

    <!--property LimitRSSSoft is not documented!-->

    <!--property LimitNOFILE is not documented!-->

    <!--property LimitNOFILESoft is not documented!-->

    <!--property LimitAS is not documented!-->

    <!--property LimitASSoft is not documented!-->

    <!--property LimitNPROC is not documented!-->

    <!--property LimitNPROCSoft is not documented!-->

    <!--property LimitMEMLOCK is not documented!-->

    <!--property LimitMEMLOCKSoft is not documented!-->

    <!--property LimitLOCKS is not documented!-->

    <!--property LimitLOCKSSoft is not documented!-->

    <!--property LimitSIGPENDING is not documented!-->

    <!--property LimitSIGPENDINGSoft is not documented!-->

    <!--property LimitMSGQUEUE is not documented!-->

    <!--property LimitMSGQUEUESoft is not documented!-->

    <!--property LimitNICE is not documented!-->

    <!--property LimitNICESoft is not documented!-->

    <!--property LimitRTPRIO is not documented!-->

    <!--property LimitRTPRIOSoft is not documented!-->

    <!--property LimitRTTIME is not documented!-->

    <!--property LimitRTTIMESoft is not documented!-->

    <!--property WorkingDirectory is not documented!-->

    <!--property RootHashPath is not documented!-->

    <!--property RootHashSignaturePath is not documented!-->

    <!--property OOMScoreAdjust is not documented!-->

    <!--property CoredumpFilter is not documented!-->

    <!--property Nice is not documented!-->

    <!--property IOSchedulingClass is not documented!-->

    <!--property IOSchedulingPriority is not documented!-->

    <!--property CPUSchedulingPolicy is not documented!-->

    <!--property CPUSchedulingPriority is not documented!-->

    <!--property CPUAffinity is not documented!-->

    <!--property CPUAffinityFromNUMA is not documented!-->

    <!--property NUMAPolicy is not documented!-->

    <!--property NUMAMask is not documented!-->

    <!--property TimerSlackNSec is not documented!-->

    <!--property CPUSchedulingResetOnFork is not documented!-->

    <!--property NonBlocking is not documented!-->

    <!--property StandardInput is not documented!-->

    <!--property StandardInputFileDescriptorName is not documented!-->

    <!--property StandardInputData is not documented!-->

    <!--property StandardOutput is not documented!-->

    <!--property StandardOutputFileDescriptorName is not documented!-->

    <!--property StandardError is not documented!-->

    <!--property StandardErrorFileDescriptorName is not documented!-->

    <!--property TTYPath is not documented!-->

    <!--property TTYReset is not documented!-->

    <!--property TTYVHangup is not documented!-->

    <!--property TTYVTDisallocate is not documented!-->

    <!--property SyslogPriority is not documented!-->

    <!--property SyslogIdentifier is not documented!-->

    <!--property SyslogLevelPrefix is not documented!-->

    <!--property SyslogLevel is not documented!-->

    <!--property SyslogFacility is not documented!-->

    <!--property LogLevelMax is not documented!-->

    <!--property LogRateLimitIntervalUSec is not documented!-->

    <!--property LogRateLimitBurst is not documented!-->

    <!--property LogExtraFields is not documented!-->

    <!--property LogNamespace is not documented!-->

    <!--property AmbientCapabilities is not documented!-->

    <!--property User is not documented!-->

    <!--property Group is not documented!-->

    <!--property DynamicUser is not documented!-->

    <!--property RemoveIPC is not documented!-->

    <!--property SetCredential is not documented!-->

    <!--property LoadCredential is not documented!-->

    <!--property SupplementaryGroups is not documented!-->

    <!--property PAMName is not documented!-->

    <!--property ReadWritePaths is not documented!-->

    <!--property ReadOnlyPaths is not documented!-->

    <!--property InaccessiblePaths is not documented!-->

    <!--property ExecPaths is not documented!-->

    <!--property NoExecPaths is not documented!-->

    <!--property PrivateTmp is not documented!-->

    <!--property PrivateDevices is not documented!-->

    <!--property ProtectClock is not documented!-->

    <!--property ProtectKernelTunables is not documented!-->

    <!--property ProtectKernelModules is not documented!-->

    <!--property ProtectKernelLogs is not documented!-->

    <!--property ProtectControlGroups is not documented!-->

    <!--property PrivateNetwork is not documented!-->

    <!--property PrivateUsers is not documented!-->

    <!--property PrivateMounts is not documented!-->

    <!--property PrivateIPC is not documented!-->

    <!--property ProtectHome is not documented!-->

    <!--property ProtectSystem is not documented!-->

    <!--property SameProcessGroup is not documented!-->

    <!--property UtmpIdentifier is not documented!-->

    <!--property UtmpMode is not documented!-->

    <!--property SELinuxContext is not documented!-->

    <!--property AppArmorProfile is not documented!-->

    <!--property SmackProcessLabel is not documented!-->

    <!--property IgnoreSIGPIPE is not documented!-->

    <!--property NoNewPrivileges is not documented!-->

    <!--property SystemCallFilter is not documented!-->

    <!--property SystemCallArchitectures is not documented!-->

    <!--property SystemCallErrorNumber is not documented!-->

    <!--property SystemCallLog is not documented!-->

    <!--property Personality is not documented!-->

    <!--property LockPersonality is not documented!-->

    <!--property RestrictAddressFamilies is not documented!-->

    <!--property RuntimeDirectoryPreserve is not documented!-->

    <!--property RuntimeDirectoryMode is not documented!-->

    <!--property RuntimeDirectory is not documented!-->

    <!--property StateDirectoryMode is not documented!-->

    <!--property StateDirectory is not documented!-->

    <!--property CacheDirectoryMode is not documented!-->

    <!--property CacheDirectory is not documented!-->

    <!--property LogsDirectoryMode is not documented!-->

    <!--property LogsDirectory is not documented!-->

    <!--property ConfigurationDirectoryMode is not documented!-->

    <!--property ConfigurationDirectory is not documented!-->

    <!--property TimeoutCleanUSec is not documented!-->

    <!--property MemoryDenyWriteExecute is not documented!-->

    <!--property RestrictRealtime is not documented!-->

    <!--property RestrictSUIDSGID is not documented!-->

    <!--property RestrictNamespaces is not documented!-->

    <!--property BindPaths is not documented!-->

    <!--property BindReadOnlyPaths is not documented!-->

    <!--property TemporaryFileSystem is not documented!-->

    <!--property MountAPIVFS is not documented!-->

    <!--property KeyringMode is not documented!-->

    <!--property ProtectProc is not documented!-->

    <!--property ProcSubset is not documented!-->

    <!--property ProtectHostname is not documented!-->

    <!--property NetworkNamespacePath is not documented!-->

    <!--property IPCNamespacePath is not documented!-->

    <!--property KillMode is not documented!-->

    <!--property KillSignal is not documented!-->

    <!--property RestartKillSignal is not documented!-->

    <!--property FinalKillSignal is not documented!-->

    <!--property SendSIGKILL is not documented!-->

    <!--property SendSIGHUP is not documented!-->

    <!--property WatchdogSignal is not documented!-->

    <!--Autogenerated cross-references for systemd.directives, do not edit-->

    <variablelist class="dbus-interface" generated="True" extra-ref="org.freedesktop.systemd1.Unit"/>

    <variablelist class="dbus-interface" generated="True" extra-ref="org.freedesktop.systemd1.Swap"/>

    <variablelist class="dbus-interface" generated="True" extra-ref="org.freedesktop.systemd1.Unit"/>

    <variablelist class="dbus-interface" generated="True" extra-ref="org.freedesktop.systemd1.Swap"/>

    <variablelist class="dbus-method" generated="True" extra-ref="GetProcesses()"/>

    <variablelist class="dbus-method" generated="True" extra-ref="AttachProcesses()"/>

    <variablelist class="dbus-property" generated="True" extra-ref="What"/>

    <variablelist class="dbus-property" generated="True" extra-ref="Priority"/>

    <variablelist class="dbus-property" generated="True" extra-ref="Options"/>

    <variablelist class="dbus-property" generated="True" extra-ref="TimeoutUSec"/>

    <variablelist class="dbus-property" generated="True" extra-ref="ControlPID"/>

    <variablelist class="dbus-property" generated="True" extra-ref="Result"/>

    <variablelist class="dbus-property" generated="True" extra-ref="UID"/>

    <variablelist class="dbus-property" generated="True" extra-ref="GID"/>

    <variablelist class="dbus-property" generated="True" extra-ref="ExecActivate"/>

    <variablelist class="dbus-property" generated="True" extra-ref="ExecDeactivate"/>

    <variablelist class="dbus-property" generated="True" extra-ref="Slice"/>

    <variablelist class="dbus-property" generated="True" extra-ref="ControlGroup"/>

    <variablelist class="dbus-property" generated="True" extra-ref="MemoryCurrent"/>

    <variablelist class="dbus-property" generated="True" extra-ref="MemoryAvailable"/>

    <variablelist class="dbus-property" generated="True" extra-ref="CPUUsageNSec"/>

    <variablelist class="dbus-property" generated="True" extra-ref="EffectiveCPUs"/>

    <variablelist class="dbus-property" generated="True" extra-ref="EffectiveMemoryNodes"/>

    <variablelist class="dbus-property" generated="True" extra-ref="TasksCurrent"/>

    <variablelist class="dbus-property" generated="True" extra-ref="IPIngressBytes"/>

    <variablelist class="dbus-property" generated="True" extra-ref="IPIngressPackets"/>

    <variablelist class="dbus-property" generated="True" extra-ref="IPEgressBytes"/>

    <variablelist class="dbus-property" generated="True" extra-ref="IPEgressPackets"/>

    <variablelist class="dbus-property" generated="True" extra-ref="IOReadBytes"/>

    <variablelist class="dbus-property" generated="True" extra-ref="IOReadOperations"/>

    <variablelist class="dbus-property" generated="True" extra-ref="IOWriteBytes"/>

    <variablelist class="dbus-property" generated="True" extra-ref="IOWriteOperations"/>

    <variablelist class="dbus-property" generated="True" extra-ref="Delegate"/>

    <variablelist class="dbus-property" generated="True" extra-ref="DelegateControllers"/>

    <variablelist class="dbus-property" generated="True" extra-ref="CPUAccounting"/>

    <variablelist class="dbus-property" generated="True" extra-ref="CPUWeight"/>

    <variablelist class="dbus-property" generated="True" extra-ref="StartupCPUWeight"/>

    <variablelist class="dbus-property" generated="True" extra-ref="CPUShares"/>

    <variablelist class="dbus-property" generated="True" extra-ref="StartupCPUShares"/>

    <variablelist class="dbus-property" generated="True" extra-ref="CPUQuotaPerSecUSec"/>

    <variablelist class="dbus-property" generated="True" extra-ref="CPUQuotaPeriodUSec"/>

    <variablelist class="dbus-property" generated="True" extra-ref="AllowedCPUs"/>

    <variablelist class="dbus-property" generated="True" extra-ref="AllowedMemoryNodes"/>

    <variablelist class="dbus-property" generated="True" extra-ref="IOAccounting"/>

    <variablelist class="dbus-property" generated="True" extra-ref="IOWeight"/>

    <variablelist class="dbus-property" generated="True" extra-ref="StartupIOWeight"/>

    <variablelist class="dbus-property" generated="True" extra-ref="IODeviceWeight"/>

    <variablelist class="dbus-property" generated="True" extra-ref="IOReadBandwidthMax"/>

    <variablelist class="dbus-property" generated="True" extra-ref="IOWriteBandwidthMax"/>

    <variablelist class="dbus-property" generated="True" extra-ref="IOReadIOPSMax"/>

    <variablelist class="dbus-property" generated="True" extra-ref="IOWriteIOPSMax"/>

    <variablelist class="dbus-property" generated="True" extra-ref="IODeviceLatencyTargetUSec"/>

    <variablelist class="dbus-property" generated="True" extra-ref="BlockIOAccounting"/>

    <variablelist class="dbus-property" generated="True" extra-ref="BlockIOWeight"/>

    <variablelist class="dbus-property" generated="True" extra-ref="StartupBlockIOWeight"/>

    <variablelist class="dbus-property" generated="True" extra-ref="BlockIODeviceWeight"/>

    <variablelist class="dbus-property" generated="True" extra-ref="BlockIOReadBandwidth"/>

    <variablelist class="dbus-property" generated="True" extra-ref="BlockIOWriteBandwidth"/>

    <variablelist class="dbus-property" generated="True" extra-ref="MemoryAccounting"/>

    <variablelist class="dbus-property" generated="True" extra-ref="DefaultMemoryLow"/>

    <variablelist class="dbus-property" generated="True" extra-ref="DefaultMemoryMin"/>

    <variablelist class="dbus-property" generated="True" extra-ref="MemoryMin"/>

    <variablelist class="dbus-property" generated="True" extra-ref="MemoryLow"/>

    <variablelist class="dbus-property" generated="True" extra-ref="MemoryHigh"/>

    <variablelist class="dbus-property" generated="True" extra-ref="MemoryMax"/>

    <variablelist class="dbus-property" generated="True" extra-ref="MemorySwapMax"/>

    <variablelist class="dbus-property" generated="True" extra-ref="MemoryLimit"/>

    <variablelist class="dbus-property" generated="True" extra-ref="DevicePolicy"/>

    <variablelist class="dbus-property" generated="True" extra-ref="DeviceAllow"/>

    <variablelist class="dbus-property" generated="True" extra-ref="TasksAccounting"/>

    <variablelist class="dbus-property" generated="True" extra-ref="TasksMax"/>

    <variablelist class="dbus-property" generated="True" extra-ref="IPAccounting"/>

    <variablelist class="dbus-property" generated="True" extra-ref="IPAddressAllow"/>

    <variablelist class="dbus-property" generated="True" extra-ref="IPAddressDeny"/>

    <variablelist class="dbus-property" generated="True" extra-ref="IPIngressFilterPath"/>

    <variablelist class="dbus-property" generated="True" extra-ref="IPEgressFilterPath"/>

    <variablelist class="dbus-property" generated="True" extra-ref="DisableControllers"/>

    <variablelist class="dbus-property" generated="True" extra-ref="ManagedOOMSwap"/>

    <variablelist class="dbus-property" generated="True" extra-ref="ManagedOOMMemoryPressure"/>

    <variablelist class="dbus-property" generated="True" extra-ref="ManagedOOMMemoryPressureLimit"/>

    <variablelist class="dbus-property" generated="True" extra-ref="ManagedOOMPreference"/>

    <variablelist class="dbus-property" generated="True" extra-ref="BPFProgram"/>

    <variablelist class="dbus-property" generated="True" extra-ref="SocketBindAllow"/>

    <variablelist class="dbus-property" generated="True" extra-ref="SocketBindDeny"/>

    <variablelist class="dbus-property" generated="True" extra-ref="Environment"/>

    <variablelist class="dbus-property" generated="True" extra-ref="EnvironmentFiles"/>

    <variablelist class="dbus-property" generated="True" extra-ref="PassEnvironment"/>

    <variablelist class="dbus-property" generated="True" extra-ref="UnsetEnvironment"/>

    <variablelist class="dbus-property" generated="True" extra-ref="UMask"/>

    <variablelist class="dbus-property" generated="True" extra-ref="LimitCPU"/>

    <variablelist class="dbus-property" generated="True" extra-ref="LimitCPUSoft"/>

    <variablelist class="dbus-property" generated="True" extra-ref="LimitFSIZE"/>

    <variablelist class="dbus-property" generated="True" extra-ref="LimitFSIZESoft"/>

    <variablelist class="dbus-property" generated="True" extra-ref="LimitDATA"/>

    <variablelist class="dbus-property" generated="True" extra-ref="LimitDATASoft"/>

    <variablelist class="dbus-property" generated="True" extra-ref="LimitSTACK"/>

    <variablelist class="dbus-property" generated="True" extra-ref="LimitSTACKSoft"/>

    <variablelist class="dbus-property" generated="True" extra-ref="LimitCORE"/>

    <variablelist class="dbus-property" generated="True" extra-ref="LimitCORESoft"/>

    <variablelist class="dbus-property" generated="True" extra-ref="LimitRSS"/>

    <variablelist class="dbus-property" generated="True" extra-ref="LimitRSSSoft"/>

    <variablelist class="dbus-property" generated="True" extra-ref="LimitNOFILE"/>

    <variablelist class="dbus-property" generated="True" extra-ref="LimitNOFILESoft"/>

    <variablelist class="dbus-property" generated="True" extra-ref="LimitAS"/>

    <variablelist class="dbus-property" generated="True" extra-ref="LimitASSoft"/>

    <variablelist class="dbus-property" generated="True" extra-ref="LimitNPROC"/>

    <variablelist class="dbus-property" generated="True" extra-ref="LimitNPROCSoft"/>

    <variablelist class="dbus-property" generated="True" extra-ref="LimitMEMLOCK"/>

    <variablelist class="dbus-property" generated="True" extra-ref="LimitMEMLOCKSoft"/>

    <variablelist class="dbus-property" generated="True" extra-ref="LimitLOCKS"/>

    <variablelist class="dbus-property" generated="True" extra-ref="LimitLOCKSSoft"/>

    <variablelist class="dbus-property" generated="True" extra-ref="LimitSIGPENDING"/>

    <variablelist class="dbus-property" generated="True" extra-ref="LimitSIGPENDINGSoft"/>

    <variablelist class="dbus-property" generated="True" extra-ref="LimitMSGQUEUE"/>

    <variablelist class="dbus-property" generated="True" extra-ref="LimitMSGQUEUESoft"/>

    <variablelist class="dbus-property" generated="True" extra-ref="LimitNICE"/>

    <variablelist class="dbus-property" generated="True" extra-ref="LimitNICESoft"/>

    <variablelist class="dbus-property" generated="True" extra-ref="LimitRTPRIO"/>

    <variablelist class="dbus-property" generated="True" extra-ref="LimitRTPRIOSoft"/>

    <variablelist class="dbus-property" generated="True" extra-ref="LimitRTTIME"/>

    <variablelist class="dbus-property" generated="True" extra-ref="LimitRTTIMESoft"/>

    <variablelist class="dbus-property" generated="True" extra-ref="WorkingDirectory"/>

    <variablelist class="dbus-property" generated="True" extra-ref="RootDirectory"/>

    <variablelist class="dbus-property" generated="True" extra-ref="RootImage"/>

    <variablelist class="dbus-property" generated="True" extra-ref="RootImageOptions"/>

    <variablelist class="dbus-property" generated="True" extra-ref="RootHash"/>

    <variablelist class="dbus-property" generated="True" extra-ref="RootHashPath"/>

    <variablelist class="dbus-property" generated="True" extra-ref="RootHashSignature"/>

    <variablelist class="dbus-property" generated="True" extra-ref="RootHashSignaturePath"/>

    <variablelist class="dbus-property" generated="True" extra-ref="RootVerity"/>

    <variablelist class="dbus-property" generated="True" extra-ref="ExtensionImages"/>

    <variablelist class="dbus-property" generated="True" extra-ref="MountImages"/>

    <variablelist class="dbus-property" generated="True" extra-ref="OOMScoreAdjust"/>

    <variablelist class="dbus-property" generated="True" extra-ref="CoredumpFilter"/>

    <variablelist class="dbus-property" generated="True" extra-ref="Nice"/>

    <variablelist class="dbus-property" generated="True" extra-ref="IOSchedulingClass"/>

    <variablelist class="dbus-property" generated="True" extra-ref="IOSchedulingPriority"/>

    <variablelist class="dbus-property" generated="True" extra-ref="CPUSchedulingPolicy"/>

    <variablelist class="dbus-property" generated="True" extra-ref="CPUSchedulingPriority"/>

    <variablelist class="dbus-property" generated="True" extra-ref="CPUAffinity"/>

    <variablelist class="dbus-property" generated="True" extra-ref="CPUAffinityFromNUMA"/>

    <variablelist class="dbus-property" generated="True" extra-ref="NUMAPolicy"/>

    <variablelist class="dbus-property" generated="True" extra-ref="NUMAMask"/>

    <variablelist class="dbus-property" generated="True" extra-ref="TimerSlackNSec"/>

    <variablelist class="dbus-property" generated="True" extra-ref="CPUSchedulingResetOnFork"/>

    <variablelist class="dbus-property" generated="True" extra-ref="NonBlocking"/>

    <variablelist class="dbus-property" generated="True" extra-ref="StandardInput"/>

    <variablelist class="dbus-property" generated="True" extra-ref="StandardInputFileDescriptorName"/>

    <variablelist class="dbus-property" generated="True" extra-ref="StandardInputData"/>

    <variablelist class="dbus-property" generated="True" extra-ref="StandardOutput"/>

    <variablelist class="dbus-property" generated="True" extra-ref="StandardOutputFileDescriptorName"/>

    <variablelist class="dbus-property" generated="True" extra-ref="StandardError"/>

    <variablelist class="dbus-property" generated="True" extra-ref="StandardErrorFileDescriptorName"/>

    <variablelist class="dbus-property" generated="True" extra-ref="TTYPath"/>

    <variablelist class="dbus-property" generated="True" extra-ref="TTYReset"/>

    <variablelist class="dbus-property" generated="True" extra-ref="TTYVHangup"/>

    <variablelist class="dbus-property" generated="True" extra-ref="TTYVTDisallocate"/>

    <variablelist class="dbus-property" generated="True" extra-ref="SyslogPriority"/>

    <variablelist class="dbus-property" generated="True" extra-ref="SyslogIdentifier"/>

    <variablelist class="dbus-property" generated="True" extra-ref="SyslogLevelPrefix"/>

    <variablelist class="dbus-property" generated="True" extra-ref="SyslogLevel"/>

    <variablelist class="dbus-property" generated="True" extra-ref="SyslogFacility"/>

    <variablelist class="dbus-property" generated="True" extra-ref="LogLevelMax"/>

    <variablelist class="dbus-property" generated="True" extra-ref="LogRateLimitIntervalUSec"/>

    <variablelist class="dbus-property" generated="True" extra-ref="LogRateLimitBurst"/>

    <variablelist class="dbus-property" generated="True" extra-ref="LogExtraFields"/>

    <variablelist class="dbus-property" generated="True" extra-ref="LogNamespace"/>

    <variablelist class="dbus-property" generated="True" extra-ref="SecureBits"/>

    <variablelist class="dbus-property" generated="True" extra-ref="CapabilityBoundingSet"/>

    <variablelist class="dbus-property" generated="True" extra-ref="AmbientCapabilities"/>

    <variablelist class="dbus-property" generated="True" extra-ref="User"/>

    <variablelist class="dbus-property" generated="True" extra-ref="Group"/>

    <variablelist class="dbus-property" generated="True" extra-ref="DynamicUser"/>

    <variablelist class="dbus-property" generated="True" extra-ref="RemoveIPC"/>

    <variablelist class="dbus-property" generated="True" extra-ref="SetCredential"/>

    <variablelist class="dbus-property" generated="True" extra-ref="LoadCredential"/>

    <variablelist class="dbus-property" generated="True" extra-ref="SupplementaryGroups"/>

    <variablelist class="dbus-property" generated="True" extra-ref="PAMName"/>

    <variablelist class="dbus-property" generated="True" extra-ref="ReadWritePaths"/>

    <variablelist class="dbus-property" generated="True" extra-ref="ReadOnlyPaths"/>

    <variablelist class="dbus-property" generated="True" extra-ref="InaccessiblePaths"/>

    <variablelist class="dbus-property" generated="True" extra-ref="ExecPaths"/>

    <variablelist class="dbus-property" generated="True" extra-ref="NoExecPaths"/>

    <variablelist class="dbus-property" generated="True" extra-ref="MountFlags"/>

    <variablelist class="dbus-property" generated="True" extra-ref="PrivateTmp"/>

    <variablelist class="dbus-property" generated="True" extra-ref="PrivateDevices"/>

    <variablelist class="dbus-property" generated="True" extra-ref="ProtectClock"/>

    <variablelist class="dbus-property" generated="True" extra-ref="ProtectKernelTunables"/>

    <variablelist class="dbus-property" generated="True" extra-ref="ProtectKernelModules"/>

    <variablelist class="dbus-property" generated="True" extra-ref="ProtectKernelLogs"/>

    <variablelist class="dbus-property" generated="True" extra-ref="ProtectControlGroups"/>

    <variablelist class="dbus-property" generated="True" extra-ref="PrivateNetwork"/>

    <variablelist class="dbus-property" generated="True" extra-ref="PrivateUsers"/>

    <variablelist class="dbus-property" generated="True" extra-ref="PrivateMounts"/>

    <variablelist class="dbus-property" generated="True" extra-ref="PrivateIPC"/>

    <variablelist class="dbus-property" generated="True" extra-ref="ProtectHome"/>

    <variablelist class="dbus-property" generated="True" extra-ref="ProtectSystem"/>

    <variablelist class="dbus-property" generated="True" extra-ref="SameProcessGroup"/>

    <variablelist class="dbus-property" generated="True" extra-ref="UtmpIdentifier"/>

    <variablelist class="dbus-property" generated="True" extra-ref="UtmpMode"/>

    <variablelist class="dbus-property" generated="True" extra-ref="SELinuxContext"/>

    <variablelist class="dbus-property" generated="True" extra-ref="AppArmorProfile"/>

    <variablelist class="dbus-property" generated="True" extra-ref="SmackProcessLabel"/>

    <variablelist class="dbus-property" generated="True" extra-ref="IgnoreSIGPIPE"/>

    <variablelist class="dbus-property" generated="True" extra-ref="NoNewPrivileges"/>

    <variablelist class="dbus-property" generated="True" extra-ref="SystemCallFilter"/>

    <variablelist class="dbus-property" generated="True" extra-ref="SystemCallArchitectures"/>

    <variablelist class="dbus-property" generated="True" extra-ref="SystemCallErrorNumber"/>

    <variablelist class="dbus-property" generated="True" extra-ref="SystemCallLog"/>

    <variablelist class="dbus-property" generated="True" extra-ref="Personality"/>

    <variablelist class="dbus-property" generated="True" extra-ref="LockPersonality"/>

    <variablelist class="dbus-property" generated="True" extra-ref="RestrictAddressFamilies"/>

    <variablelist class="dbus-property" generated="True" extra-ref="RuntimeDirectoryPreserve"/>

    <variablelist class="dbus-property" generated="True" extra-ref="RuntimeDirectoryMode"/>

    <variablelist class="dbus-property" generated="True" extra-ref="RuntimeDirectory"/>

    <variablelist class="dbus-property" generated="True" extra-ref="StateDirectoryMode"/>

    <variablelist class="dbus-property" generated="True" extra-ref="StateDirectory"/>

    <variablelist class="dbus-property" generated="True" extra-ref="CacheDirectoryMode"/>

    <variablelist class="dbus-property" generated="True" extra-ref="CacheDirectory"/>

    <variablelist class="dbus-property" generated="True" extra-ref="LogsDirectoryMode"/>

    <variablelist class="dbus-property" generated="True" extra-ref="LogsDirectory"/>

    <variablelist class="dbus-property" generated="True" extra-ref="ConfigurationDirectoryMode"/>

    <variablelist class="dbus-property" generated="True" extra-ref="ConfigurationDirectory"/>

    <variablelist class="dbus-property" generated="True" extra-ref="TimeoutCleanUSec"/>

    <variablelist class="dbus-property" generated="True" extra-ref="MemoryDenyWriteExecute"/>

    <variablelist class="dbus-property" generated="True" extra-ref="RestrictRealtime"/>

    <variablelist class="dbus-property" generated="True" extra-ref="RestrictSUIDSGID"/>

    <variablelist class="dbus-property" generated="True" extra-ref="RestrictNamespaces"/>

    <variablelist class="dbus-property" generated="True" extra-ref="BindPaths"/>

    <variablelist class="dbus-property" generated="True" extra-ref="BindReadOnlyPaths"/>

    <variablelist class="dbus-property" generated="True" extra-ref="TemporaryFileSystem"/>

    <variablelist class="dbus-property" generated="True" extra-ref="MountAPIVFS"/>

    <variablelist class="dbus-property" generated="True" extra-ref="KeyringMode"/>

    <variablelist class="dbus-property" generated="True" extra-ref="ProtectProc"/>

    <variablelist class="dbus-property" generated="True" extra-ref="ProcSubset"/>

    <variablelist class="dbus-property" generated="True" extra-ref="ProtectHostname"/>

    <variablelist class="dbus-property" generated="True" extra-ref="NetworkNamespacePath"/>

    <variablelist class="dbus-property" generated="True" extra-ref="IPCNamespacePath"/>

    <variablelist class="dbus-property" generated="True" extra-ref="KillMode"/>

    <variablelist class="dbus-property" generated="True" extra-ref="KillSignal"/>

    <variablelist class="dbus-property" generated="True" extra-ref="RestartKillSignal"/>

    <variablelist class="dbus-property" generated="True" extra-ref="FinalKillSignal"/>

    <variablelist class="dbus-property" generated="True" extra-ref="SendSIGKILL"/>

    <variablelist class="dbus-property" generated="True" extra-ref="SendSIGHUP"/>

    <variablelist class="dbus-property" generated="True" extra-ref="WatchdogSignal"/>

    <!--End of Autogenerated section-->

    <refsect2>
      <title>Properties</title>

      <para>Most of the properties map directly to the corresponding settings in swap unit files. As mount
      units invoke the
      <citerefentry project="man-pages"><refentrytitle>swapon</refentrytitle><manvolnum>8</manvolnum></citerefentry> command,
      their bus objects include implicit <varname>ExecActivate</varname> (and similar) fields which contain
      information about processes to execute. They also share most of the fields related to the execution
      context that Service objects expose (see above). In addition to these properties there are the
      following:</para>

      <para><varname>ControlPID</varname> contains the PID of the currently running
      <citerefentry project="man-pages"><refentrytitle>swapon</refentrytitle><manvolnum>8</manvolnum></citerefentry> or
      <citerefentry project="man-pages"><refentrytitle>swapoff</refentrytitle><manvolnum>8</manvolnum></citerefentry>
      command if there is one running, otherwise 0.</para>

      <para><varname>Result</varname> contains a value explaining why a mount unit failed if it failed. It
      can take the values <literal>success</literal>, <literal>resources</literal>,
      <literal>timeout</literal>, <literal>exit-code</literal>, <literal>signal</literal>, or
      <literal>core-dump</literal> which have the identical meanings as the corresponding values of the
      corresponding field of service unit objects (see above).</para>
    </refsect2>
  </refsect1>


  <refsect1>
    <title>Path Unit Objects</title>

    <programlisting executable="systemd" node="/org/freedesktop/systemd1/unit/cups_2epath" interface="org.freedesktop.systemd1.Path">
node /org/freedesktop/systemd1/unit/cups_2epath {
  interface org.freedesktop.systemd1.Path {
    properties:
      @org.freedesktop.DBus.Property.EmitsChangedSignal("const")
      readonly s Unit = '...';
      @org.freedesktop.DBus.Property.EmitsChangedSignal("const")
      readonly a(ss) Paths = [...];
      @org.freedesktop.DBus.Property.EmitsChangedSignal("const")
      readonly b MakeDirectory = ...;
      @org.freedesktop.DBus.Property.EmitsChangedSignal("const")
      readonly u DirectoryMode = ...;
      readonly s Result = '...';
  };
  interface org.freedesktop.DBus.Peer { ... };
  interface org.freedesktop.DBus.Introspectable { ... };
  interface org.freedesktop.DBus.Properties { ... };
  interface org.freedesktop.systemd1.Unit { ... };
};
    </programlisting>

    <!--property MakeDirectory is not documented!-->

    <!--property DirectoryMode is not documented!-->

    <!--Autogenerated cross-references for systemd.directives, do not edit-->

    <variablelist class="dbus-interface" generated="True" extra-ref="org.freedesktop.systemd1.Unit"/>

    <variablelist class="dbus-interface" generated="True" extra-ref="org.freedesktop.systemd1.Path"/>

    <variablelist class="dbus-interface" generated="True" extra-ref="org.freedesktop.systemd1.Unit"/>

    <variablelist class="dbus-interface" generated="True" extra-ref="org.freedesktop.systemd1.Path"/>

    <variablelist class="dbus-property" generated="True" extra-ref="Unit"/>

    <variablelist class="dbus-property" generated="True" extra-ref="Paths"/>

    <variablelist class="dbus-property" generated="True" extra-ref="MakeDirectory"/>

    <variablelist class="dbus-property" generated="True" extra-ref="DirectoryMode"/>

    <variablelist class="dbus-property" generated="True" extra-ref="Result"/>

    <!--End of Autogenerated section-->

    <refsect2>
      <title>Properties</title>

      <para>Most properties correspond directly with the matching settings in path unit files.</para>

      <para>The others:</para>

      <para><varname>Paths</varname> contains an array of structs. Each struct contains the condition to
      watch, which can be one of <literal>PathExists</literal>, <literal>PathExistsGlob</literal>,
      <literal>PathChanged</literal>, <literal>PathModified</literal>, or <literal>DirectoryNotEmpty</literal>
      which correspond directly to the matching settings in the path unit files; and the path to watch,
      possibly including glob expressions.</para>

      <para><varname>Result</varname> contains a result value which can be <literal>success</literal> or
      <literal>resources</literal> which have the same meaning as the corresponding field of the Service
      interface.</para>
    </refsect2>
  </refsect1>

  <refsect1>
    <title>Slice Unit Objects</title>

    <para>All slice unit objects implement the <interfacename>org.freedesktop.systemd1.Slice</interfacename>
    interface (described here) in addition to the generic
    <interfacename>org.freedesktop.systemd1.Unit</interfacename> interface (see above).</para>

    <programlisting executable="systemd" node="/org/freedesktop/systemd1/unit/system_2eslice" interface="org.freedesktop.systemd1.Slice">
node /org/freedesktop/systemd1/unit/system_2eslice {
  interface org.freedesktop.systemd1.Slice {
    methods:
      GetProcesses(out a(sus) processes);
      AttachProcesses(in  s subcgroup,
                      in  au pids);
    properties:
      @org.freedesktop.DBus.Property.EmitsChangedSignal("false")
      readonly s Slice = '...';
      @org.freedesktop.DBus.Property.EmitsChangedSignal("false")
      readonly s ControlGroup = '...';
      @org.freedesktop.DBus.Property.EmitsChangedSignal("false")
      readonly t MemoryCurrent = ...;
      @org.freedesktop.DBus.Property.EmitsChangedSignal("false")
      readonly t MemoryAvailable = ...;
      @org.freedesktop.DBus.Property.EmitsChangedSignal("false")
      readonly t CPUUsageNSec = ...;
      @org.freedesktop.DBus.Property.EmitsChangedSignal("false")
      readonly ay EffectiveCPUs = [...];
      @org.freedesktop.DBus.Property.EmitsChangedSignal("false")
      readonly ay EffectiveMemoryNodes = [...];
      @org.freedesktop.DBus.Property.EmitsChangedSignal("false")
      readonly t TasksCurrent = ...;
      @org.freedesktop.DBus.Property.EmitsChangedSignal("false")
      readonly t IPIngressBytes = ...;
      @org.freedesktop.DBus.Property.EmitsChangedSignal("false")
      readonly t IPIngressPackets = ...;
      @org.freedesktop.DBus.Property.EmitsChangedSignal("false")
      readonly t IPEgressBytes = ...;
      @org.freedesktop.DBus.Property.EmitsChangedSignal("false")
      readonly t IPEgressPackets = ...;
      @org.freedesktop.DBus.Property.EmitsChangedSignal("false")
      readonly t IOReadBytes = ...;
      @org.freedesktop.DBus.Property.EmitsChangedSignal("false")
      readonly t IOReadOperations = ...;
      @org.freedesktop.DBus.Property.EmitsChangedSignal("false")
      readonly t IOWriteBytes = ...;
      @org.freedesktop.DBus.Property.EmitsChangedSignal("false")
      readonly t IOWriteOperations = ...;
      @org.freedesktop.DBus.Property.EmitsChangedSignal("false")
      readonly b Delegate = ...;
      @org.freedesktop.DBus.Property.EmitsChangedSignal("false")
      readonly as DelegateControllers = ['...', ...];
      @org.freedesktop.DBus.Property.EmitsChangedSignal("false")
      readonly b CPUAccounting = ...;
      @org.freedesktop.DBus.Property.EmitsChangedSignal("false")
      readonly t CPUWeight = ...;
      @org.freedesktop.DBus.Property.EmitsChangedSignal("false")
      readonly t StartupCPUWeight = ...;
      @org.freedesktop.DBus.Property.EmitsChangedSignal("false")
      readonly t CPUShares = ...;
      @org.freedesktop.DBus.Property.EmitsChangedSignal("false")
      readonly t StartupCPUShares = ...;
      @org.freedesktop.DBus.Property.EmitsChangedSignal("false")
      readonly t CPUQuotaPerSecUSec = ...;
      @org.freedesktop.DBus.Property.EmitsChangedSignal("false")
      readonly t CPUQuotaPeriodUSec = ...;
      @org.freedesktop.DBus.Property.EmitsChangedSignal("false")
      readonly ay AllowedCPUs = [...];
      @org.freedesktop.DBus.Property.EmitsChangedSignal("false")
      readonly ay AllowedMemoryNodes = [...];
      @org.freedesktop.DBus.Property.EmitsChangedSignal("false")
      readonly b IOAccounting = ...;
      @org.freedesktop.DBus.Property.EmitsChangedSignal("false")
      readonly t IOWeight = ...;
      @org.freedesktop.DBus.Property.EmitsChangedSignal("false")
      readonly t StartupIOWeight = ...;
      @org.freedesktop.DBus.Property.EmitsChangedSignal("false")
      readonly a(st) IODeviceWeight = [...];
      @org.freedesktop.DBus.Property.EmitsChangedSignal("false")
      readonly a(st) IOReadBandwidthMax = [...];
      @org.freedesktop.DBus.Property.EmitsChangedSignal("false")
      readonly a(st) IOWriteBandwidthMax = [...];
      @org.freedesktop.DBus.Property.EmitsChangedSignal("false")
      readonly a(st) IOReadIOPSMax = [...];
      @org.freedesktop.DBus.Property.EmitsChangedSignal("false")
      readonly a(st) IOWriteIOPSMax = [...];
      @org.freedesktop.DBus.Property.EmitsChangedSignal("false")
      readonly a(st) IODeviceLatencyTargetUSec = [...];
      @org.freedesktop.DBus.Property.EmitsChangedSignal("false")
      readonly b BlockIOAccounting = ...;
      @org.freedesktop.DBus.Property.EmitsChangedSignal("false")
      readonly t BlockIOWeight = ...;
      @org.freedesktop.DBus.Property.EmitsChangedSignal("false")
      readonly t StartupBlockIOWeight = ...;
      @org.freedesktop.DBus.Property.EmitsChangedSignal("false")
      readonly a(st) BlockIODeviceWeight = [...];
      @org.freedesktop.DBus.Property.EmitsChangedSignal("false")
      readonly a(st) BlockIOReadBandwidth = [...];
      @org.freedesktop.DBus.Property.EmitsChangedSignal("false")
      readonly a(st) BlockIOWriteBandwidth = [...];
      @org.freedesktop.DBus.Property.EmitsChangedSignal("false")
      readonly b MemoryAccounting = ...;
      @org.freedesktop.DBus.Property.EmitsChangedSignal("false")
      readonly t DefaultMemoryLow = ...;
      @org.freedesktop.DBus.Property.EmitsChangedSignal("false")
      readonly t DefaultMemoryMin = ...;
      @org.freedesktop.DBus.Property.EmitsChangedSignal("false")
      readonly t MemoryMin = ...;
      @org.freedesktop.DBus.Property.EmitsChangedSignal("false")
      readonly t MemoryLow = ...;
      @org.freedesktop.DBus.Property.EmitsChangedSignal("false")
      readonly t MemoryHigh = ...;
      @org.freedesktop.DBus.Property.EmitsChangedSignal("false")
      readonly t MemoryMax = ...;
      @org.freedesktop.DBus.Property.EmitsChangedSignal("false")
      readonly t MemorySwapMax = ...;
      @org.freedesktop.DBus.Property.EmitsChangedSignal("false")
      readonly t MemoryLimit = ...;
      @org.freedesktop.DBus.Property.EmitsChangedSignal("false")
      readonly s DevicePolicy = '...';
      @org.freedesktop.DBus.Property.EmitsChangedSignal("false")
      readonly a(ss) DeviceAllow = [...];
      @org.freedesktop.DBus.Property.EmitsChangedSignal("false")
      readonly b TasksAccounting = ...;
      @org.freedesktop.DBus.Property.EmitsChangedSignal("false")
      readonly t TasksMax = ...;
      @org.freedesktop.DBus.Property.EmitsChangedSignal("false")
      readonly b IPAccounting = ...;
      @org.freedesktop.DBus.Property.EmitsChangedSignal("false")
      readonly a(iayu) IPAddressAllow = [...];
      @org.freedesktop.DBus.Property.EmitsChangedSignal("false")
      readonly a(iayu) IPAddressDeny = [...];
      @org.freedesktop.DBus.Property.EmitsChangedSignal("false")
      readonly as IPIngressFilterPath = ['...', ...];
      @org.freedesktop.DBus.Property.EmitsChangedSignal("false")
      readonly as IPEgressFilterPath = ['...', ...];
      @org.freedesktop.DBus.Property.EmitsChangedSignal("false")
      readonly as DisableControllers = ['...', ...];
      @org.freedesktop.DBus.Property.EmitsChangedSignal("false")
      readonly s ManagedOOMSwap = '...';
      @org.freedesktop.DBus.Property.EmitsChangedSignal("false")
      readonly s ManagedOOMMemoryPressure = '...';
      @org.freedesktop.DBus.Property.EmitsChangedSignal("false")
      readonly u ManagedOOMMemoryPressureLimit = ...;
      @org.freedesktop.DBus.Property.EmitsChangedSignal("false")
      readonly s ManagedOOMPreference = '...';
      @org.freedesktop.DBus.Property.EmitsChangedSignal("false")
      readonly a(ss) BPFProgram = [...];
      @org.freedesktop.DBus.Property.EmitsChangedSignal("false")
      readonly a(iiqq) SocketBindAllow = [...];
      @org.freedesktop.DBus.Property.EmitsChangedSignal("false")
      readonly a(iiqq) SocketBindDeny = [...];
  };
  interface org.freedesktop.DBus.Peer { ... };
  interface org.freedesktop.DBus.Introspectable { ... };
  interface org.freedesktop.DBus.Properties { ... };
  interface org.freedesktop.systemd1.Unit { ... };
};
    </programlisting>

    <!--method GetProcesses is not documented!-->

    <!--method AttachProcesses is not documented!-->

    <!--property Slice is not documented!-->

    <!--property MemoryCurrent is not documented!-->

    <!--property CPUUsageNSec is not documented!-->

    <!--property EffectiveCPUs is not documented!-->

    <!--property EffectiveMemoryNodes is not documented!-->

    <!--property TasksCurrent is not documented!-->

    <!--property IPIngressBytes is not documented!-->

    <!--property IPIngressPackets is not documented!-->

    <!--property IPEgressBytes is not documented!-->

    <!--property IPEgressPackets is not documented!-->

    <!--property IOReadBytes is not documented!-->

    <!--property IOReadOperations is not documented!-->

    <!--property IOWriteBytes is not documented!-->

    <!--property IOWriteOperations is not documented!-->

    <!--property Delegate is not documented!-->

    <!--property DelegateControllers is not documented!-->

    <!--property CPUAccounting is not documented!-->

    <!--property CPUWeight is not documented!-->

    <!--property StartupCPUWeight is not documented!-->

    <!--property CPUShares is not documented!-->

    <!--property StartupCPUShares is not documented!-->

    <!--property CPUQuotaPerSecUSec is not documented!-->

    <!--property CPUQuotaPeriodUSec is not documented!-->

    <!--property AllowedCPUs is not documented!-->

    <!--property AllowedMemoryNodes is not documented!-->

    <!--property IOAccounting is not documented!-->

    <!--property IOWeight is not documented!-->

    <!--property StartupIOWeight is not documented!-->

    <!--property IODeviceWeight is not documented!-->

    <!--property IOReadBandwidthMax is not documented!-->

    <!--property IOWriteBandwidthMax is not documented!-->

    <!--property IOReadIOPSMax is not documented!-->

    <!--property IOWriteIOPSMax is not documented!-->

    <!--property IODeviceLatencyTargetUSec is not documented!-->

    <!--property BlockIOAccounting is not documented!-->

    <!--property BlockIOWeight is not documented!-->

    <!--property StartupBlockIOWeight is not documented!-->

    <!--property BlockIODeviceWeight is not documented!-->

    <!--property BlockIOReadBandwidth is not documented!-->

    <!--property BlockIOWriteBandwidth is not documented!-->

    <!--property MemoryAccounting is not documented!-->

    <!--property DefaultMemoryLow is not documented!-->

    <!--property DefaultMemoryMin is not documented!-->

    <!--property MemoryMin is not documented!-->

    <!--property MemoryLow is not documented!-->

    <!--property MemoryHigh is not documented!-->

    <!--property MemoryMax is not documented!-->

    <!--property MemorySwapMax is not documented!-->

    <!--property MemoryLimit is not documented!-->

    <!--property DevicePolicy is not documented!-->

    <!--property DeviceAllow is not documented!-->

    <!--property TasksAccounting is not documented!-->

    <!--property TasksMax is not documented!-->

    <!--property IPAccounting is not documented!-->

    <!--property IPAddressAllow is not documented!-->

    <!--property IPAddressDeny is not documented!-->

    <!--property IPIngressFilterPath is not documented!-->

    <!--property IPEgressFilterPath is not documented!-->

    <!--property DisableControllers is not documented!-->

    <!--property ManagedOOMSwap is not documented!-->

    <!--property ManagedOOMMemoryPressure is not documented!-->

    <!--property ManagedOOMMemoryPressureLimit is not documented!-->

    <!--property ManagedOOMPreference is not documented!-->

    <!--property BPFProgram is not documented!-->

    <!--property SocketBindAllow is not documented!-->

    <!--property SocketBindDeny is not documented!-->

    <!--Autogenerated cross-references for systemd.directives, do not edit-->

    <variablelist class="dbus-interface" generated="True" extra-ref="org.freedesktop.systemd1.Unit"/>

    <variablelist class="dbus-interface" generated="True" extra-ref="org.freedesktop.systemd1.Slice"/>

    <variablelist class="dbus-interface" generated="True" extra-ref="org.freedesktop.systemd1.Unit"/>

    <variablelist class="dbus-interface" generated="True" extra-ref="org.freedesktop.systemd1.Slice"/>

    <variablelist class="dbus-method" generated="True" extra-ref="GetProcesses()"/>

    <variablelist class="dbus-method" generated="True" extra-ref="AttachProcesses()"/>

    <variablelist class="dbus-property" generated="True" extra-ref="Slice"/>

    <variablelist class="dbus-property" generated="True" extra-ref="ControlGroup"/>

    <variablelist class="dbus-property" generated="True" extra-ref="MemoryCurrent"/>

    <variablelist class="dbus-property" generated="True" extra-ref="MemoryAvailable"/>

    <variablelist class="dbus-property" generated="True" extra-ref="CPUUsageNSec"/>

    <variablelist class="dbus-property" generated="True" extra-ref="EffectiveCPUs"/>

    <variablelist class="dbus-property" generated="True" extra-ref="EffectiveMemoryNodes"/>

    <variablelist class="dbus-property" generated="True" extra-ref="TasksCurrent"/>

    <variablelist class="dbus-property" generated="True" extra-ref="IPIngressBytes"/>

    <variablelist class="dbus-property" generated="True" extra-ref="IPIngressPackets"/>

    <variablelist class="dbus-property" generated="True" extra-ref="IPEgressBytes"/>

    <variablelist class="dbus-property" generated="True" extra-ref="IPEgressPackets"/>

    <variablelist class="dbus-property" generated="True" extra-ref="IOReadBytes"/>

    <variablelist class="dbus-property" generated="True" extra-ref="IOReadOperations"/>

    <variablelist class="dbus-property" generated="True" extra-ref="IOWriteBytes"/>

    <variablelist class="dbus-property" generated="True" extra-ref="IOWriteOperations"/>

    <variablelist class="dbus-property" generated="True" extra-ref="Delegate"/>

    <variablelist class="dbus-property" generated="True" extra-ref="DelegateControllers"/>

    <variablelist class="dbus-property" generated="True" extra-ref="CPUAccounting"/>

    <variablelist class="dbus-property" generated="True" extra-ref="CPUWeight"/>

    <variablelist class="dbus-property" generated="True" extra-ref="StartupCPUWeight"/>

    <variablelist class="dbus-property" generated="True" extra-ref="CPUShares"/>

    <variablelist class="dbus-property" generated="True" extra-ref="StartupCPUShares"/>

    <variablelist class="dbus-property" generated="True" extra-ref="CPUQuotaPerSecUSec"/>

    <variablelist class="dbus-property" generated="True" extra-ref="CPUQuotaPeriodUSec"/>

    <variablelist class="dbus-property" generated="True" extra-ref="AllowedCPUs"/>

    <variablelist class="dbus-property" generated="True" extra-ref="AllowedMemoryNodes"/>

    <variablelist class="dbus-property" generated="True" extra-ref="IOAccounting"/>

    <variablelist class="dbus-property" generated="True" extra-ref="IOWeight"/>

    <variablelist class="dbus-property" generated="True" extra-ref="StartupIOWeight"/>

    <variablelist class="dbus-property" generated="True" extra-ref="IODeviceWeight"/>

    <variablelist class="dbus-property" generated="True" extra-ref="IOReadBandwidthMax"/>

    <variablelist class="dbus-property" generated="True" extra-ref="IOWriteBandwidthMax"/>

    <variablelist class="dbus-property" generated="True" extra-ref="IOReadIOPSMax"/>

    <variablelist class="dbus-property" generated="True" extra-ref="IOWriteIOPSMax"/>

    <variablelist class="dbus-property" generated="True" extra-ref="IODeviceLatencyTargetUSec"/>

    <variablelist class="dbus-property" generated="True" extra-ref="BlockIOAccounting"/>

    <variablelist class="dbus-property" generated="True" extra-ref="BlockIOWeight"/>

    <variablelist class="dbus-property" generated="True" extra-ref="StartupBlockIOWeight"/>

    <variablelist class="dbus-property" generated="True" extra-ref="BlockIODeviceWeight"/>

    <variablelist class="dbus-property" generated="True" extra-ref="BlockIOReadBandwidth"/>

    <variablelist class="dbus-property" generated="True" extra-ref="BlockIOWriteBandwidth"/>

    <variablelist class="dbus-property" generated="True" extra-ref="MemoryAccounting"/>

    <variablelist class="dbus-property" generated="True" extra-ref="DefaultMemoryLow"/>

    <variablelist class="dbus-property" generated="True" extra-ref="DefaultMemoryMin"/>

    <variablelist class="dbus-property" generated="True" extra-ref="MemoryMin"/>

    <variablelist class="dbus-property" generated="True" extra-ref="MemoryLow"/>

    <variablelist class="dbus-property" generated="True" extra-ref="MemoryHigh"/>

    <variablelist class="dbus-property" generated="True" extra-ref="MemoryMax"/>

    <variablelist class="dbus-property" generated="True" extra-ref="MemorySwapMax"/>

    <variablelist class="dbus-property" generated="True" extra-ref="MemoryLimit"/>

    <variablelist class="dbus-property" generated="True" extra-ref="DevicePolicy"/>

    <variablelist class="dbus-property" generated="True" extra-ref="DeviceAllow"/>

    <variablelist class="dbus-property" generated="True" extra-ref="TasksAccounting"/>

    <variablelist class="dbus-property" generated="True" extra-ref="TasksMax"/>

    <variablelist class="dbus-property" generated="True" extra-ref="IPAccounting"/>

    <variablelist class="dbus-property" generated="True" extra-ref="IPAddressAllow"/>

    <variablelist class="dbus-property" generated="True" extra-ref="IPAddressDeny"/>

    <variablelist class="dbus-property" generated="True" extra-ref="IPIngressFilterPath"/>

    <variablelist class="dbus-property" generated="True" extra-ref="IPEgressFilterPath"/>

    <variablelist class="dbus-property" generated="True" extra-ref="DisableControllers"/>

    <variablelist class="dbus-property" generated="True" extra-ref="ManagedOOMSwap"/>

    <variablelist class="dbus-property" generated="True" extra-ref="ManagedOOMMemoryPressure"/>

    <variablelist class="dbus-property" generated="True" extra-ref="ManagedOOMMemoryPressureLimit"/>

    <variablelist class="dbus-property" generated="True" extra-ref="ManagedOOMPreference"/>

    <variablelist class="dbus-property" generated="True" extra-ref="BPFProgram"/>

    <variablelist class="dbus-property" generated="True" extra-ref="SocketBindAllow"/>

    <variablelist class="dbus-property" generated="True" extra-ref="SocketBindDeny"/>

    <!--End of Autogenerated section-->

    <refsect2>
      <title>Properties</title>

      <para>Most properties correspond directly with the matching settings in slice unit files.</para>
    </refsect2>
  </refsect1>

  <refsect1>
    <title>Scope Unit Objects</title>

    <para>All scope unit objects implement the <interfacename>org.freedesktop.systemd1.Scope</interfacename>
    interface (described here) in addition to the generic
    <interfacename>org.freedesktop.systemd1.Unit</interfacename> interface (see above).</para>

    <programlisting executable="systemd" node="/org/freedesktop/systemd1/unit/session_2d1_2escope" interface="org.freedesktop.systemd1.Scope">
node /org/freedesktop/systemd1/unit/session_2d1_2escope {
  interface org.freedesktop.systemd1.Scope {
    methods:
      Abandon();
      GetProcesses(out a(sus) processes);
      AttachProcesses(in  s subcgroup,
                      in  au pids);
    signals:
      RequestStop();
    properties:
      readonly s Controller = '...';
      @org.freedesktop.DBus.Property.EmitsChangedSignal("const")
      readonly t TimeoutStopUSec = ...;
      readonly s Result = '...';
      @org.freedesktop.DBus.Property.EmitsChangedSignal("const")
      readonly t RuntimeMaxUSec = ...;
      @org.freedesktop.DBus.Property.EmitsChangedSignal("false")
      readonly s Slice = '...';
      @org.freedesktop.DBus.Property.EmitsChangedSignal("false")
      readonly s ControlGroup = '...';
      @org.freedesktop.DBus.Property.EmitsChangedSignal("false")
      readonly t MemoryCurrent = ...;
      @org.freedesktop.DBus.Property.EmitsChangedSignal("false")
      readonly t MemoryAvailable = ...;
      @org.freedesktop.DBus.Property.EmitsChangedSignal("false")
      readonly t CPUUsageNSec = ...;
      @org.freedesktop.DBus.Property.EmitsChangedSignal("false")
      readonly ay EffectiveCPUs = [...];
      @org.freedesktop.DBus.Property.EmitsChangedSignal("false")
      readonly ay EffectiveMemoryNodes = [...];
      @org.freedesktop.DBus.Property.EmitsChangedSignal("false")
      readonly t TasksCurrent = ...;
      @org.freedesktop.DBus.Property.EmitsChangedSignal("false")
      readonly t IPIngressBytes = ...;
      @org.freedesktop.DBus.Property.EmitsChangedSignal("false")
      readonly t IPIngressPackets = ...;
      @org.freedesktop.DBus.Property.EmitsChangedSignal("false")
      readonly t IPEgressBytes = ...;
      @org.freedesktop.DBus.Property.EmitsChangedSignal("false")
      readonly t IPEgressPackets = ...;
      @org.freedesktop.DBus.Property.EmitsChangedSignal("false")
      readonly t IOReadBytes = ...;
      @org.freedesktop.DBus.Property.EmitsChangedSignal("false")
      readonly t IOReadOperations = ...;
      @org.freedesktop.DBus.Property.EmitsChangedSignal("false")
      readonly t IOWriteBytes = ...;
      @org.freedesktop.DBus.Property.EmitsChangedSignal("false")
      readonly t IOWriteOperations = ...;
      @org.freedesktop.DBus.Property.EmitsChangedSignal("false")
      readonly b Delegate = ...;
      @org.freedesktop.DBus.Property.EmitsChangedSignal("false")
      readonly as DelegateControllers = ['...', ...];
      @org.freedesktop.DBus.Property.EmitsChangedSignal("false")
      readonly b CPUAccounting = ...;
      @org.freedesktop.DBus.Property.EmitsChangedSignal("false")
      readonly t CPUWeight = ...;
      @org.freedesktop.DBus.Property.EmitsChangedSignal("false")
      readonly t StartupCPUWeight = ...;
      @org.freedesktop.DBus.Property.EmitsChangedSignal("false")
      readonly t CPUShares = ...;
      @org.freedesktop.DBus.Property.EmitsChangedSignal("false")
      readonly t StartupCPUShares = ...;
      @org.freedesktop.DBus.Property.EmitsChangedSignal("false")
      readonly t CPUQuotaPerSecUSec = ...;
      @org.freedesktop.DBus.Property.EmitsChangedSignal("false")
      readonly t CPUQuotaPeriodUSec = ...;
      @org.freedesktop.DBus.Property.EmitsChangedSignal("false")
      readonly ay AllowedCPUs = [...];
      @org.freedesktop.DBus.Property.EmitsChangedSignal("false")
      readonly ay AllowedMemoryNodes = [...];
      @org.freedesktop.DBus.Property.EmitsChangedSignal("false")
      readonly b IOAccounting = ...;
      @org.freedesktop.DBus.Property.EmitsChangedSignal("false")
      readonly t IOWeight = ...;
      @org.freedesktop.DBus.Property.EmitsChangedSignal("false")
      readonly t StartupIOWeight = ...;
      @org.freedesktop.DBus.Property.EmitsChangedSignal("false")
      readonly a(st) IODeviceWeight = [...];
      @org.freedesktop.DBus.Property.EmitsChangedSignal("false")
      readonly a(st) IOReadBandwidthMax = [...];
      @org.freedesktop.DBus.Property.EmitsChangedSignal("false")
      readonly a(st) IOWriteBandwidthMax = [...];
      @org.freedesktop.DBus.Property.EmitsChangedSignal("false")
      readonly a(st) IOReadIOPSMax = [...];
      @org.freedesktop.DBus.Property.EmitsChangedSignal("false")
      readonly a(st) IOWriteIOPSMax = [...];
      @org.freedesktop.DBus.Property.EmitsChangedSignal("false")
      readonly a(st) IODeviceLatencyTargetUSec = [...];
      @org.freedesktop.DBus.Property.EmitsChangedSignal("false")
      readonly b BlockIOAccounting = ...;
      @org.freedesktop.DBus.Property.EmitsChangedSignal("false")
      readonly t BlockIOWeight = ...;
      @org.freedesktop.DBus.Property.EmitsChangedSignal("false")
      readonly t StartupBlockIOWeight = ...;
      @org.freedesktop.DBus.Property.EmitsChangedSignal("false")
      readonly a(st) BlockIODeviceWeight = [...];
      @org.freedesktop.DBus.Property.EmitsChangedSignal("false")
      readonly a(st) BlockIOReadBandwidth = [...];
      @org.freedesktop.DBus.Property.EmitsChangedSignal("false")
      readonly a(st) BlockIOWriteBandwidth = [...];
      @org.freedesktop.DBus.Property.EmitsChangedSignal("false")
      readonly b MemoryAccounting = ...;
      @org.freedesktop.DBus.Property.EmitsChangedSignal("false")
      readonly t DefaultMemoryLow = ...;
      @org.freedesktop.DBus.Property.EmitsChangedSignal("false")
      readonly t DefaultMemoryMin = ...;
      @org.freedesktop.DBus.Property.EmitsChangedSignal("false")
      readonly t MemoryMin = ...;
      @org.freedesktop.DBus.Property.EmitsChangedSignal("false")
      readonly t MemoryLow = ...;
      @org.freedesktop.DBus.Property.EmitsChangedSignal("false")
      readonly t MemoryHigh = ...;
      @org.freedesktop.DBus.Property.EmitsChangedSignal("false")
      readonly t MemoryMax = ...;
      @org.freedesktop.DBus.Property.EmitsChangedSignal("false")
      readonly t MemorySwapMax = ...;
      @org.freedesktop.DBus.Property.EmitsChangedSignal("false")
      readonly t MemoryLimit = ...;
      @org.freedesktop.DBus.Property.EmitsChangedSignal("false")
      readonly s DevicePolicy = '...';
      @org.freedesktop.DBus.Property.EmitsChangedSignal("false")
      readonly a(ss) DeviceAllow = [...];
      @org.freedesktop.DBus.Property.EmitsChangedSignal("false")
      readonly b TasksAccounting = ...;
      @org.freedesktop.DBus.Property.EmitsChangedSignal("false")
      readonly t TasksMax = ...;
      @org.freedesktop.DBus.Property.EmitsChangedSignal("false")
      readonly b IPAccounting = ...;
      @org.freedesktop.DBus.Property.EmitsChangedSignal("false")
      readonly a(iayu) IPAddressAllow = [...];
      @org.freedesktop.DBus.Property.EmitsChangedSignal("false")
      readonly a(iayu) IPAddressDeny = [...];
      @org.freedesktop.DBus.Property.EmitsChangedSignal("false")
      readonly as IPIngressFilterPath = ['...', ...];
      @org.freedesktop.DBus.Property.EmitsChangedSignal("false")
      readonly as IPEgressFilterPath = ['...', ...];
      @org.freedesktop.DBus.Property.EmitsChangedSignal("false")
      readonly as DisableControllers = ['...', ...];
      @org.freedesktop.DBus.Property.EmitsChangedSignal("false")
      readonly s ManagedOOMSwap = '...';
      @org.freedesktop.DBus.Property.EmitsChangedSignal("false")
      readonly s ManagedOOMMemoryPressure = '...';
      @org.freedesktop.DBus.Property.EmitsChangedSignal("false")
      readonly u ManagedOOMMemoryPressureLimit = ...;
      @org.freedesktop.DBus.Property.EmitsChangedSignal("false")
      readonly s ManagedOOMPreference = '...';
      @org.freedesktop.DBus.Property.EmitsChangedSignal("false")
      readonly a(ss) BPFProgram = [...];
      @org.freedesktop.DBus.Property.EmitsChangedSignal("false")
      readonly a(iiqq) SocketBindAllow = [...];
      @org.freedesktop.DBus.Property.EmitsChangedSignal("false")
      readonly a(iiqq) SocketBindDeny = [...];
      @org.freedesktop.DBus.Property.EmitsChangedSignal("const")
      readonly s KillMode = '...';
      @org.freedesktop.DBus.Property.EmitsChangedSignal("const")
      readonly i KillSignal = ...;
      @org.freedesktop.DBus.Property.EmitsChangedSignal("const")
      readonly i RestartKillSignal = ...;
      @org.freedesktop.DBus.Property.EmitsChangedSignal("const")
      readonly i FinalKillSignal = ...;
      @org.freedesktop.DBus.Property.EmitsChangedSignal("const")
      readonly b SendSIGKILL = ...;
      @org.freedesktop.DBus.Property.EmitsChangedSignal("const")
      readonly b SendSIGHUP = ...;
      @org.freedesktop.DBus.Property.EmitsChangedSignal("const")
      readonly i WatchdogSignal = ...;
  };
  interface org.freedesktop.DBus.Peer { ... };
  interface org.freedesktop.DBus.Introspectable { ... };
  interface org.freedesktop.DBus.Properties { ... };
  interface org.freedesktop.systemd1.Unit { ... };
};
    </programlisting>

    <!--method GetProcesses is not documented!-->

    <!--method AttachProcesses is not documented!-->

    <!--property RuntimeMaxUSec is not documented!-->

    <!--property Slice is not documented!-->

    <!--property MemoryCurrent is not documented!-->

    <!--property CPUUsageNSec is not documented!-->

    <!--property EffectiveCPUs is not documented!-->

    <!--property EffectiveMemoryNodes is not documented!-->

    <!--property TasksCurrent is not documented!-->

    <!--property IPIngressBytes is not documented!-->

    <!--property IPIngressPackets is not documented!-->

    <!--property IPEgressBytes is not documented!-->

    <!--property IPEgressPackets is not documented!-->

    <!--property IOReadBytes is not documented!-->

    <!--property IOReadOperations is not documented!-->

    <!--property IOWriteBytes is not documented!-->

    <!--property IOWriteOperations is not documented!-->

    <!--property Delegate is not documented!-->

    <!--property DelegateControllers is not documented!-->

    <!--property CPUAccounting is not documented!-->

    <!--property CPUWeight is not documented!-->

    <!--property StartupCPUWeight is not documented!-->

    <!--property CPUShares is not documented!-->

    <!--property StartupCPUShares is not documented!-->

    <!--property CPUQuotaPerSecUSec is not documented!-->

    <!--property CPUQuotaPeriodUSec is not documented!-->

    <!--property AllowedCPUs is not documented!-->

    <!--property AllowedMemoryNodes is not documented!-->

    <!--property IOAccounting is not documented!-->

    <!--property IOWeight is not documented!-->

    <!--property StartupIOWeight is not documented!-->

    <!--property IODeviceWeight is not documented!-->

    <!--property IOReadBandwidthMax is not documented!-->

    <!--property IOWriteBandwidthMax is not documented!-->

    <!--property IOReadIOPSMax is not documented!-->

    <!--property IOWriteIOPSMax is not documented!-->

    <!--property IODeviceLatencyTargetUSec is not documented!-->

    <!--property BlockIOAccounting is not documented!-->

    <!--property BlockIOWeight is not documented!-->

    <!--property StartupBlockIOWeight is not documented!-->

    <!--property BlockIODeviceWeight is not documented!-->

    <!--property BlockIOReadBandwidth is not documented!-->

    <!--property BlockIOWriteBandwidth is not documented!-->

    <!--property MemoryAccounting is not documented!-->

    <!--property DefaultMemoryLow is not documented!-->

    <!--property DefaultMemoryMin is not documented!-->

    <!--property MemoryMin is not documented!-->

    <!--property MemoryLow is not documented!-->

    <!--property MemoryHigh is not documented!-->

    <!--property MemoryMax is not documented!-->

    <!--property MemorySwapMax is not documented!-->

    <!--property MemoryLimit is not documented!-->

    <!--property DevicePolicy is not documented!-->

    <!--property DeviceAllow is not documented!-->

    <!--property TasksAccounting is not documented!-->

    <!--property TasksMax is not documented!-->

    <!--property IPAccounting is not documented!-->

    <!--property IPAddressAllow is not documented!-->

    <!--property IPAddressDeny is not documented!-->

    <!--property IPIngressFilterPath is not documented!-->

    <!--property IPEgressFilterPath is not documented!-->

    <!--property DisableControllers is not documented!-->

    <!--property ManagedOOMSwap is not documented!-->

    <!--property ManagedOOMMemoryPressure is not documented!-->

    <!--property ManagedOOMMemoryPressureLimit is not documented!-->

    <!--property ManagedOOMPreference is not documented!-->

    <!--property BPFProgram is not documented!-->

    <!--property SocketBindAllow is not documented!-->

    <!--property SocketBindDeny is not documented!-->

    <!--property KillMode is not documented!-->

    <!--property KillSignal is not documented!-->

    <!--property RestartKillSignal is not documented!-->

    <!--property FinalKillSignal is not documented!-->

    <!--property SendSIGKILL is not documented!-->

    <!--property SendSIGHUP is not documented!-->

    <!--property WatchdogSignal is not documented!-->

    <!--Autogenerated cross-references for systemd.directives, do not edit-->

    <variablelist class="dbus-interface" generated="True" extra-ref="org.freedesktop.systemd1.Unit"/>

    <variablelist class="dbus-interface" generated="True" extra-ref="org.freedesktop.systemd1.Scope"/>

    <variablelist class="dbus-interface" generated="True" extra-ref="org.freedesktop.systemd1.Unit"/>

    <variablelist class="dbus-interface" generated="True" extra-ref="org.freedesktop.systemd1.Scope"/>

    <variablelist class="dbus-method" generated="True" extra-ref="Abandon()"/>

    <variablelist class="dbus-method" generated="True" extra-ref="GetProcesses()"/>

    <variablelist class="dbus-method" generated="True" extra-ref="AttachProcesses()"/>

    <variablelist class="dbus-signal" generated="True" extra-ref="RequestStop"/>

    <variablelist class="dbus-property" generated="True" extra-ref="Controller"/>

    <variablelist class="dbus-property" generated="True" extra-ref="TimeoutStopUSec"/>

    <variablelist class="dbus-property" generated="True" extra-ref="Result"/>

    <variablelist class="dbus-property" generated="True" extra-ref="RuntimeMaxUSec"/>

    <variablelist class="dbus-property" generated="True" extra-ref="Slice"/>

    <variablelist class="dbus-property" generated="True" extra-ref="ControlGroup"/>

    <variablelist class="dbus-property" generated="True" extra-ref="MemoryCurrent"/>

    <variablelist class="dbus-property" generated="True" extra-ref="MemoryAvailable"/>

    <variablelist class="dbus-property" generated="True" extra-ref="CPUUsageNSec"/>

    <variablelist class="dbus-property" generated="True" extra-ref="EffectiveCPUs"/>

    <variablelist class="dbus-property" generated="True" extra-ref="EffectiveMemoryNodes"/>

    <variablelist class="dbus-property" generated="True" extra-ref="TasksCurrent"/>

    <variablelist class="dbus-property" generated="True" extra-ref="IPIngressBytes"/>

    <variablelist class="dbus-property" generated="True" extra-ref="IPIngressPackets"/>

    <variablelist class="dbus-property" generated="True" extra-ref="IPEgressBytes"/>

    <variablelist class="dbus-property" generated="True" extra-ref="IPEgressPackets"/>

    <variablelist class="dbus-property" generated="True" extra-ref="IOReadBytes"/>

    <variablelist class="dbus-property" generated="True" extra-ref="IOReadOperations"/>

    <variablelist class="dbus-property" generated="True" extra-ref="IOWriteBytes"/>

    <variablelist class="dbus-property" generated="True" extra-ref="IOWriteOperations"/>

    <variablelist class="dbus-property" generated="True" extra-ref="Delegate"/>

    <variablelist class="dbus-property" generated="True" extra-ref="DelegateControllers"/>

    <variablelist class="dbus-property" generated="True" extra-ref="CPUAccounting"/>

    <variablelist class="dbus-property" generated="True" extra-ref="CPUWeight"/>

    <variablelist class="dbus-property" generated="True" extra-ref="StartupCPUWeight"/>

    <variablelist class="dbus-property" generated="True" extra-ref="CPUShares"/>

    <variablelist class="dbus-property" generated="True" extra-ref="StartupCPUShares"/>

    <variablelist class="dbus-property" generated="True" extra-ref="CPUQuotaPerSecUSec"/>

    <variablelist class="dbus-property" generated="True" extra-ref="CPUQuotaPeriodUSec"/>

    <variablelist class="dbus-property" generated="True" extra-ref="AllowedCPUs"/>

    <variablelist class="dbus-property" generated="True" extra-ref="AllowedMemoryNodes"/>

    <variablelist class="dbus-property" generated="True" extra-ref="IOAccounting"/>

    <variablelist class="dbus-property" generated="True" extra-ref="IOWeight"/>

    <variablelist class="dbus-property" generated="True" extra-ref="StartupIOWeight"/>

    <variablelist class="dbus-property" generated="True" extra-ref="IODeviceWeight"/>

    <variablelist class="dbus-property" generated="True" extra-ref="IOReadBandwidthMax"/>

    <variablelist class="dbus-property" generated="True" extra-ref="IOWriteBandwidthMax"/>

    <variablelist class="dbus-property" generated="True" extra-ref="IOReadIOPSMax"/>

    <variablelist class="dbus-property" generated="True" extra-ref="IOWriteIOPSMax"/>

    <variablelist class="dbus-property" generated="True" extra-ref="IODeviceLatencyTargetUSec"/>

    <variablelist class="dbus-property" generated="True" extra-ref="BlockIOAccounting"/>

    <variablelist class="dbus-property" generated="True" extra-ref="BlockIOWeight"/>

    <variablelist class="dbus-property" generated="True" extra-ref="StartupBlockIOWeight"/>

    <variablelist class="dbus-property" generated="True" extra-ref="BlockIODeviceWeight"/>

    <variablelist class="dbus-property" generated="True" extra-ref="BlockIOReadBandwidth"/>

    <variablelist class="dbus-property" generated="True" extra-ref="BlockIOWriteBandwidth"/>

    <variablelist class="dbus-property" generated="True" extra-ref="MemoryAccounting"/>

    <variablelist class="dbus-property" generated="True" extra-ref="DefaultMemoryLow"/>

    <variablelist class="dbus-property" generated="True" extra-ref="DefaultMemoryMin"/>

    <variablelist class="dbus-property" generated="True" extra-ref="MemoryMin"/>

    <variablelist class="dbus-property" generated="True" extra-ref="MemoryLow"/>

    <variablelist class="dbus-property" generated="True" extra-ref="MemoryHigh"/>

    <variablelist class="dbus-property" generated="True" extra-ref="MemoryMax"/>

    <variablelist class="dbus-property" generated="True" extra-ref="MemorySwapMax"/>

    <variablelist class="dbus-property" generated="True" extra-ref="MemoryLimit"/>

    <variablelist class="dbus-property" generated="True" extra-ref="DevicePolicy"/>

    <variablelist class="dbus-property" generated="True" extra-ref="DeviceAllow"/>

    <variablelist class="dbus-property" generated="True" extra-ref="TasksAccounting"/>

    <variablelist class="dbus-property" generated="True" extra-ref="TasksMax"/>

    <variablelist class="dbus-property" generated="True" extra-ref="IPAccounting"/>

    <variablelist class="dbus-property" generated="True" extra-ref="IPAddressAllow"/>

    <variablelist class="dbus-property" generated="True" extra-ref="IPAddressDeny"/>

    <variablelist class="dbus-property" generated="True" extra-ref="IPIngressFilterPath"/>

    <variablelist class="dbus-property" generated="True" extra-ref="IPEgressFilterPath"/>

    <variablelist class="dbus-property" generated="True" extra-ref="DisableControllers"/>

    <variablelist class="dbus-property" generated="True" extra-ref="ManagedOOMSwap"/>

    <variablelist class="dbus-property" generated="True" extra-ref="ManagedOOMMemoryPressure"/>

    <variablelist class="dbus-property" generated="True" extra-ref="ManagedOOMMemoryPressureLimit"/>

    <variablelist class="dbus-property" generated="True" extra-ref="ManagedOOMPreference"/>

    <variablelist class="dbus-property" generated="True" extra-ref="BPFProgram"/>

    <variablelist class="dbus-property" generated="True" extra-ref="SocketBindAllow"/>

    <variablelist class="dbus-property" generated="True" extra-ref="SocketBindDeny"/>

    <variablelist class="dbus-property" generated="True" extra-ref="KillMode"/>

    <variablelist class="dbus-property" generated="True" extra-ref="KillSignal"/>

    <variablelist class="dbus-property" generated="True" extra-ref="RestartKillSignal"/>

    <variablelist class="dbus-property" generated="True" extra-ref="FinalKillSignal"/>

    <variablelist class="dbus-property" generated="True" extra-ref="SendSIGKILL"/>

    <variablelist class="dbus-property" generated="True" extra-ref="SendSIGHUP"/>

    <variablelist class="dbus-property" generated="True" extra-ref="WatchdogSignal"/>

    <!--End of Autogenerated section-->

    <refsect2>
      <title>Methods</title>

      <para><function>Abandon()</function> may be used to place a scope unit in the "abandoned" state. This
      may be used to inform the system manager that the manager that created the scope lost interest in the
      scope (for example, because it is terminating), without wanting to shut down the scope entirely.</para>
    </refsect2>

    <refsect2>
      <title>Signals</title>

      <para><function>RequestStop</function> is sent to the peer that is configured in the
      <varname>Controller</varname> property when systemd is requested to terminate the scope unit. A program
      registering a scope can use this to cleanly shut down the processes it added to the scope instead of
      letting systemd do it with the usual <constant>SIGTERM</constant> logic.</para>
    </refsect2>

    <refsect2>
      <title>Properties</title>

      <para>All properties correspond directly with the matching properties of service units.</para>

      <para><varname>Controller</varname> contains the bus name (unique or well-known) that is notified when
      the scope unit is to be shut down via a <function>RequestStop</function> signal (see below). This is
      set when the scope is created. If not set, the scope's processes will terminated with
      <constant>SIGTERM</constant> directly.</para>
    </refsect2>
  </refsect1>


  <refsect1>
    <title>Job Objects</title>

    <para>Job objects encapsulate scheduled or running jobs. Each unit can have none or one jobs in the
    execution queue. Each job is attached to exactly one unit.</para>

    <programlisting executable="systemd" node="/org/freedesktop/systemd1/job/666" interface="org.freedesktop.systemd1.Job">
node /org/freedesktop/systemd1/job/666 {
  interface org.freedesktop.systemd1.Job {
    methods:
      Cancel();
      GetAfter(out a(usssoo) jobs);
      GetBefore(out a(usssoo) jobs);
    properties:
      @org.freedesktop.DBus.Property.EmitsChangedSignal("const")
      readonly u Id = ...;
      @org.freedesktop.DBus.Property.EmitsChangedSignal("const")
      readonly (so) Unit = ...;
      @org.freedesktop.DBus.Property.EmitsChangedSignal("const")
      readonly s JobType = '...';
      readonly s State = '...';
  };
  interface org.freedesktop.DBus.Peer { ... };
  interface org.freedesktop.DBus.Introspectable { ... };
  interface org.freedesktop.DBus.Properties { ... };
};
    </programlisting>

    <!--method GetAfter is not documented!-->

    <!--method GetBefore is not documented!-->

    <!--Autogenerated cross-references for systemd.directives, do not edit-->

    <variablelist class="dbus-interface" generated="True" extra-ref="org.freedesktop.systemd1.Job"/>

    <variablelist class="dbus-interface" generated="True" extra-ref="org.freedesktop.systemd1.Job"/>

    <variablelist class="dbus-method" generated="True" extra-ref="Cancel()"/>

    <variablelist class="dbus-method" generated="True" extra-ref="GetAfter()"/>

    <variablelist class="dbus-method" generated="True" extra-ref="GetBefore()"/>

    <variablelist class="dbus-property" generated="True" extra-ref="Id"/>

    <variablelist class="dbus-property" generated="True" extra-ref="Unit"/>

    <variablelist class="dbus-property" generated="True" extra-ref="JobType"/>

    <variablelist class="dbus-property" generated="True" extra-ref="State"/>

    <!--End of Autogenerated section-->

    <refsect2>
      <title>Methods</title>

      <para><function>Cancel()</function> cancels the job. Note that this will remove a job from the queue if
      it is not yet executed but generally will not cause a job that is already in the process of being
      executed to be aborted. This operation may also be requested via the <function>CancelJob()</function>
      method of the Manager object (see above), which is sometimes useful to reduce roundtrips.</para>
    </refsect2>

    <refsect2>
      <title>Properties</title>

      <para><varname>Id</varname> is the numeric Id of the job. During the runtime of a systemd instance each
      numeric ID is only assigned once.</para>

      <para><varname>Unit</varname> refers to the unit this job belongs to. It is a structure consisting of
      the name of the unit and a bus path to the unit's object.</para>

      <para><varname>JobType</varname> refers to the job's type and is one of <literal>start</literal>,
      <literal>verify-active</literal>, <literal>stop</literal>, <literal>reload</literal>,
      <literal>restart</literal>, <literal>try-restart</literal>, or <literal>reload-or-start</literal>. Note
      that later versions might define additional values.</para>

      <para><varname>State</varname> refers to the job's state and is one of <literal>waiting</literal> and
      <literal>running</literal>. The former indicates that a job is currently queued but has not begun to
      execute yet. The latter indicates that a job is currently being executed.</para>
    </refsect2>
  </refsect1>

  <refsect1>
    <title>Examples</title>

    <example>
      <title>Introspect <interfacename>org.freedesktop.systemd1.Manager</interfacename> on the bus</title>

      <programlisting>
$ gdbus introspect --system \
        --dest org.freedesktop.systemd1 \
        --object-path /org/freedesktop/systemd1
      </programlisting>
    </example>

    <example>
      <title>Introspect a unit on the bus</title>

      <programlisting>
$ busctl introspect org.freedesktop.systemd1 \
  $(busctl call org.freedesktop.systemd1 \
     /org/freedesktop/systemd1 \
     org.freedesktop.systemd1.Manager \
     GetUnit s systemd-resolved.service | cut -d'"' -f2)
      </programlisting>
    </example>

    <example>
      <title>Introspect <interfacename>org.freedesktop.systemd1.Job</interfacename> on the bus</title>

      <programlisting>
$ gdbus introspect --system --dest org.freedesktop.systemd1 \
  --object-path /org/freedesktop/systemd1/job/1292
      </programlisting>
    </example>
  </refsect1>

  <refsect1>
    <title>Versioning</title>

    <para>These D-Bus interfaces follow <ulink url="http://0pointer.de/blog/projects/versioning-dbus.html">
    the usual interface versioning guidelines</ulink>.</para>
  </refsect1>
</refentry>
