questions.yaml 13 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362
  1. groups:
  2. - name: Unifi Protect Backup Configuration
  3. description: Configure Unifi Protect Backup
  4. - name: User and Group Configuration
  5. description: Configure User and Group for Unifi Protect Backup
  6. - name: Storage Configuration
  7. description: Configure Storage for Unifi Protect Backup
  8. - name: Resources Configuration
  9. description: Configure Resources for Unifi Protect Backup
  10. questions:
  11. - variable: TZ
  12. group: Unifi Protect Backup Configuration
  13. label: Timezone
  14. schema:
  15. type: string
  16. default: Etc/UTC
  17. required: true
  18. $ref:
  19. - definitions/timezone
  20. - variable: upbConfig
  21. label: ""
  22. group: Unifi Protect Backup Configuration
  23. schema:
  24. type: dict
  25. attrs:
  26. - variable: unifiProtectUsername
  27. label: Unifi Protect Username
  28. description: Username to login to Unifi Protect instance
  29. schema:
  30. type: string
  31. required: true
  32. - variable: unifiProtectPassword
  33. label: Unifi Protect Password
  34. description: Password for Unifi Protect user
  35. schema:
  36. type: string
  37. required: true
  38. private: true
  39. - variable: unifiProtectAddress
  40. label: Unifi Protect Address
  41. description: Address of Unifi Protect instance
  42. schema:
  43. type: string
  44. required: true
  45. - variable: unifiProtectPort
  46. label: Unifi Protect Port
  47. description: Port of Unifi Protect instance
  48. schema:
  49. type: int
  50. min: 1
  51. max: 65535
  52. required: true
  53. default: 443
  54. - variable: unifiProtectVerifySsl
  55. label: Unifi Protect Verify SSL
  56. description: Verify SSL certificate of Unifi Protect instance
  57. schema:
  58. type: boolean
  59. default: true
  60. - variable: skipMissing
  61. label: Skip Missing
  62. description: If set, events which are 'missing' at the start will be ignored.
  63. schema:
  64. type: boolean
  65. default: false
  66. - variable: ignoreCameras
  67. label: Ignore Cameras
  68. description: IDs of cameras for which events should not be backed up. One per line.
  69. schema:
  70. type: list
  71. default: []
  72. items:
  73. - variable: id
  74. label: Camera ID
  75. schema:
  76. type: string
  77. required: true
  78. - variable: detectionTypes
  79. label: Detection Types
  80. description: Types of detections to back up. One per line.
  81. schema:
  82. type: list
  83. default:
  84. - motion
  85. - person
  86. - vehicle
  87. - ring
  88. items:
  89. - variable: type
  90. label: Detection Type
  91. schema:
  92. type: string
  93. required: true
  94. enum:
  95. - value: "motion"
  96. description: Motion
  97. - value: "person"
  98. description: Person
  99. - value: "vehicle"
  100. description: Vehicle
  101. - value: "ring"
  102. description: Ring
  103. - variable: rcloneDestination
  104. label: Rclone Destination
  105. description: |
  106. Rclone destination path in the format {rclone-remote}:{path-on-remote} </br.>
  107. E.g. `gdrive:/backups/unifi_protect`
  108. schema:
  109. type: string
  110. required: true
  111. - variable: rcloneArgs
  112. label: Rclone Arguments
  113. description: |
  114. Optional extra arguments to pass to rclone rcat directly. One per line</br>
  115. Common usage for this would be to set a bandwidth limit</br>
  116. E.g. --bwlimit 8M
  117. schema:
  118. type: list
  119. default: []
  120. items:
  121. - variable: arg
  122. label: Argument
  123. schema:
  124. type: string
  125. required: true
  126. - variable: rclonePurgeArgs
  127. label: Rclone Purge Arguments
  128. description: |
  129. Optional extra arguments to pass to rclone delete. One per line</br>
  130. Common usage for this would be to execute a permanent delete
  131. instead of using the recycle bin on a destination.</br>
  132. Google Drive example: --drive-use-trash=false
  133. schema:
  134. type: list
  135. default: []
  136. items:
  137. - variable: arg
  138. label: Argument
  139. schema:
  140. type: string
  141. required: true
  142. - variable: additionalEnvs
  143. label: Additional Environment Variables
  144. description: Configure additional environment variables for Unifi Protect Backup.
  145. schema:
  146. type: list
  147. default: []
  148. items:
  149. - variable: env
  150. label: Environment Variable
  151. schema:
  152. type: dict
  153. attrs:
  154. - variable: name
  155. label: Name
  156. schema:
  157. type: string
  158. required: true
  159. - variable: value
  160. label: Value
  161. schema:
  162. type: string
  163. required: true
  164. - variable: upbID
  165. label: ""
  166. group: User and Group Configuration
  167. schema:
  168. type: dict
  169. attrs:
  170. - variable: user
  171. label: User ID
  172. description: The user id that Unifi Protect Backup files will be owned by.
  173. schema:
  174. type: int
  175. min: 568
  176. default: 568
  177. required: true
  178. - variable: group
  179. label: Group ID
  180. description: The group id that Unifi Protect Backup files will be owned by.
  181. schema:
  182. type: int
  183. min: 568
  184. default: 568
  185. required: true
  186. - variable: upbStorage
  187. label: ""
  188. group: Storage Configuration
  189. schema:
  190. type: dict
  191. attrs:
  192. - variable: config
  193. label: Unifi Protect Backup Config Storage
  194. description: The path to store Unifi Protect Backup Configuration.
  195. schema:
  196. type: dict
  197. attrs:
  198. - variable: type
  199. label: Type
  200. description: |
  201. ixVolume: Is dataset created automatically by the system.</br>
  202. Host Path: Is a path that already exists on the system.
  203. schema:
  204. type: string
  205. required: true
  206. default: "ixVolume"
  207. enum:
  208. - value: "hostPath"
  209. description: Host Path (Path that already exists on the system)
  210. - value: "ixVolume"
  211. description: ixVolume (Dataset created automatically by the system)
  212. - variable: datasetName
  213. label: Dataset Name
  214. schema:
  215. type: string
  216. show_if: [["type", "=", "ixVolume"]]
  217. required: true
  218. hidden: true
  219. immutable: true
  220. default: "config"
  221. $ref:
  222. - "normalize/ixVolume"
  223. - variable: hostPath
  224. label: Host Path
  225. schema:
  226. type: hostpath
  227. show_if: [["type", "=", "hostPath"]]
  228. immutable: true
  229. required: true
  230. - variable: data
  231. label: Unifi Protect Backup Data Storage
  232. description: The path to store Unifi Protect Backup Data.
  233. schema:
  234. type: dict
  235. attrs:
  236. - variable: type
  237. label: Type
  238. description: |
  239. ixVolume: Is dataset created automatically by the system.</br>
  240. Host Path: Is a path that already exists on the system.
  241. schema:
  242. type: string
  243. required: true
  244. default: "ixVolume"
  245. enum:
  246. - value: "hostPath"
  247. description: Host Path (Path that already exists on the system)
  248. - value: "ixVolume"
  249. description: ixVolume (Dataset created automatically by the system)
  250. - variable: datasetName
  251. label: Dataset Name
  252. schema:
  253. type: string
  254. show_if: [["type", "=", "ixVolume"]]
  255. required: true
  256. hidden: true
  257. immutable: true
  258. default: "data"
  259. $ref:
  260. - "normalize/ixVolume"
  261. - variable: hostPath
  262. label: Host Path
  263. schema:
  264. type: hostpath
  265. show_if: [["type", "=", "hostPath"]]
  266. immutable: true
  267. required: true
  268. - variable: additionalStorages
  269. label: Additional Storage
  270. description: Additional storage for Unifi Protect Backup.
  271. schema:
  272. type: list
  273. default: []
  274. items:
  275. - variable: storageEntry
  276. label: Storage Entry
  277. schema:
  278. type: dict
  279. attrs:
  280. - variable: type
  281. label: Type
  282. description: |
  283. ixVolume: Is dataset created automatically by the system.</br>
  284. Host Path: Is a path that already exists on the system.
  285. schema:
  286. type: string
  287. required: true
  288. default: "ixVolume"
  289. enum:
  290. - value: "hostPath"
  291. description: Host Path (Path that already exists on the system)
  292. - value: "ixVolume"
  293. description: ixVolume (Dataset created automatically by the system)
  294. - variable: mountPath
  295. label: Mount Path
  296. description: The path inside the container to mount the storage.
  297. schema:
  298. type: path
  299. required: true
  300. - variable: hostPath
  301. label: Host Path
  302. description: The host path to use for storage.
  303. schema:
  304. type: hostpath
  305. show_if: [["type", "=", "hostPath"]]
  306. required: true
  307. - variable: datasetName
  308. label: Dataset Name
  309. description: The name of the dataset to use for storage.
  310. schema:
  311. type: string
  312. show_if: [["type", "=", "ixVolume"]]
  313. required: true
  314. immutable: true
  315. default: "storage_entry"
  316. $ref:
  317. - "normalize/ixVolume"
  318. - variable: resources
  319. group: Resources Configuration
  320. label: ""
  321. schema:
  322. type: dict
  323. attrs:
  324. - variable: limits
  325. label: Limits
  326. schema:
  327. type: dict
  328. attrs:
  329. - variable: cpu
  330. label: CPU
  331. description: CPU limit for Unifi Protect Backup.
  332. schema:
  333. type: string
  334. max_length: 6
  335. valid_chars: '^(0\.[1-9]|[1-9][0-9]*)(\.[0-9]|m?)$'
  336. valid_chars_error: |
  337. Valid CPU limit formats are</br>
  338. - Plain Integer - eg. 1</br>
  339. - Float - eg. 0.5</br>
  340. - Milicpu - eg. 500m
  341. default: "4000m"
  342. required: true
  343. - variable: memory
  344. label: Memory
  345. description: Memory limit for Unifi Protect Backup.
  346. schema:
  347. type: string
  348. max_length: 12
  349. valid_chars: '^[1-9][0-9]*([EPTGMK]i?|e[0-9]+)?$'
  350. valid_chars_error: |
  351. Valid Memory limit formats are</br>
  352. - Suffixed with E/P/T/G/M/K - eg. 1G</br>
  353. - Suffixed with Ei/Pi/Ti/Gi/Mi/Ki - eg. 1Gi</br>
  354. - Plain Integer in bytes - eg. 1024</br>
  355. - Exponent - eg. 134e6
  356. default: "8Gi"
  357. required: true