Add systemd module, required by rabbitmq
[mirror/dsa-puppet.git] / 3rdparty / modules / systemd / types / servicelimits.pp
1 # Matches Systemd Service Limit Struct
2 type Systemd::ServiceLimits = Struct[
3   {
4     Optional['LimitCPU']            => Pattern['^\d+(s|m|h|d|w|M|y)?(:\d+(s|m|h|d|w|M|y)?)?$'],
5     Optional['LimitFSIZE']          => Pattern['^(infinity|((\d+(K|M|G|T|P|E)(:\d+(K|M|G|T|P|E))?)))$'],
6     Optional['LimitDATA']           => Pattern['^(infinity|((\d+(K|M|G|T|P|E)(:\d+(K|M|G|T|P|E))?)))$'],
7     Optional['LimitSTACK']          => Pattern['^(infinity|((\d+(K|M|G|T|P|E)(:\d+(K|M|G|T|P|E))?)))$'],
8     Optional['LimitCORE']           => Pattern['^(infinity|((\d+(K|M|G|T|P|E)(:\d+(K|M|G|T|P|E))?)))$'],
9     Optional['LimitRSS']            => Pattern['^(infinity|((\d+(K|M|G|T|P|E)(:\d+(K|M|G|T|P|E))?)))$'],
10     Optional['LimitNOFILE']         => Variant[Integer[-1],Pattern['^(infinity|\d+(:(infinity|\d+))?)$']],
11     Optional['LimitAS']             => Pattern['^(infinity|((\d+(K|M|G|T|P|E)(:\d+(K|M|G|T|P|E))?)))$'],
12     Optional['LimitNPROC']          => Integer[1],
13     Optional['LimitMEMLOCK']        => Pattern['^(infinity|((\d+(K|M|G|T|P|E)(:\d+(K|M|G|T|P|E))?)))$'],
14     Optional['LimitLOCKS']          => Integer[1],
15     Optional['LimitSIGPENDING']     => Integer[1],
16     Optional['LimitMSGQUEUE']       => Pattern['^(infinity|((\d+(K|M|G|T|P|E)(:\d+(K|M|G|T|P|E))?)))$'],
17     Optional['LimitNICE']           => Variant[Integer[0,40], Pattern['^(-\+([0-1]?[0-9]|20))|([0-3]?[0-9]|40)$']],
18     Optional['LimitRTPRIO']         => Integer[0],
19     Optional['LimitRTTIME']         => Pattern['^\d+(ms|s|m|h|d|w|M|y)?(:\d+(ms|s|m|h|d|w|M|y)?)?$'],
20     Optional['CPUAccounting']       => Boolean,
21     Optional['CPUShares']           => Integer[2,262144],
22     Optional['StartupCPUShares']    => Integer[2,262144],
23     Optional['CPUQuota']            => Pattern['^([1-9][0-9]?$|^100)%$'],
24     Optional['MemoryAccounting']    => Boolean,
25     Optional['MemoryLow']           => Pattern['^(\d+(K|M|G|T)?)$'],
26     Optional['MemoryHigh']          => Pattern['^(\d+(K|M|G|T)?)$'],
27     Optional['MemoryMax']           => Pattern['^(\d+(K|M|G|T)?)$'],
28     Optional['MemoryLimit']         => Pattern['^(\d+(K|M|G|T)?)$'],
29     Optional['TasksAccounting']     => Boolean,
30     Optional['TasksMax']            => Variant[Integer[1],Pattern['^(infinity|([1-9][0-9]?$|^100)%)$']],
31     Optional['IOAccounting']        => Boolean,
32     Optional['IOWeight']            => Integer[1,10000],
33     Optional['StartupIOWeight']     => Integer[1,10000],
34     Optional['IODeviceWeight']      => Array[Hash[Stdlib::Absolutepath, Integer[1,10000], 1, 1]],
35     Optional['IOReadBandwidthMax']  => Array[Hash[Stdlib::Absolutepath, Pattern['^(\d+(K|M|G|T)?)$'], 1, 1]],
36     Optional['IOWriteBandwidthMax'] => Array[Hash[Stdlib::Absolutepath, Pattern['^(\d+(K|M|G|T)?)$'], 1, 1]],
37     Optional['IOReadIOPSMax']       => Array[Hash[Stdlib::Absolutepath, Pattern['^(\d+(K|M|G|T)?)$'], 1, 1]],
38     Optional['IOWriteIOPSMax']      => Array[Hash[Stdlib::Absolutepath, Pattern['^(\d+(K|M|G|T)?)$'], 1, 1]],
39     Optional['DeviceAllow']         => String[1],
40     Optional['DevicePolicy']        => Enum['auto','closed','strict'],
41     Optional['Slice']               => String[1],
42     Optional['Delegate']            => Boolean
43   }
44 ]