app_versions.json 78 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757758759760761762763764765766767768769770771772773774775776777778779780781782783784785786787788789790791792793794795796797798799800801802803804805806807808809810811812813814815816817818819820821822823824825826827828829830831832833834835836837838839840841842843844845846847848849850851852853854855856857858859860861862863864865866867868869870871872873874875876877878879880881882883884885886887888889890891892893894895896897898899900901902903904905906907908909910911912913914915916917918919920921922923924925926927928929930931932933934935936937938939940941942943944945946947948949950951952953954955956957958959960961962963964965966967968969970971972973974975976977978979980981982983984985986987988989990991992993994995996997998999100010011002100310041005100610071008100910101011
  1. {
  2. "1.2.5": {
  3. "healthy": true,
  4. "supported": false,
  5. "healthy_error": null,
  6. "location": "/__w/charts/charts/community/plex-auto-languages/1.2.5",
  7. "last_update": "2025-03-05 14:27:33",
  8. "required_features": [
  9. "normalize/ixVolume",
  10. "definitions/timezone",
  11. "normalize/acl"
  12. ],
  13. "human_version": "1.2.3_1.2.5",
  14. "version": "1.2.5",
  15. "chart_metadata": {
  16. "name": "plex-auto-languages",
  17. "description": "Plex Auto Languages offer automated language selection for Plex TV Shows",
  18. "annotations": {
  19. "title": "Plex Auto Languages"
  20. },
  21. "type": "application",
  22. "version": "1.2.5",
  23. "apiVersion": "v2",
  24. "appVersion": "1.2.3",
  25. "kubeVersion": ">=1.16.0-0",
  26. "maintainers": [
  27. {
  28. "name": "truenas",
  29. "url": "https://www.truenas.com/",
  30. "email": "dev@ixsystems.com"
  31. }
  32. ],
  33. "dependencies": [
  34. {
  35. "name": "common",
  36. "repository": "file://../../../common",
  37. "version": "1.2.9"
  38. }
  39. ],
  40. "home": "https://github.com/RemiRigal/Plex-Auto-Languages",
  41. "icon": "https://media.sys.truenas.net/apps/plex-auto-languages/icons/icon.svg",
  42. "sources": [
  43. "https://github.com/RemiRigal/Plex-Auto-Languages",
  44. "https://github.com/truenas/charts/tree/master/community/plex-auto-languages",
  45. "https://hub.docker.com/r/remirigal/plex-auto-languages"
  46. ],
  47. "keywords": [
  48. "plex",
  49. "languages"
  50. ]
  51. },
  52. "app_metadata": {
  53. "runAsContext": [
  54. {
  55. "userName": "plex-auto-languages",
  56. "groupName": "plex-auto-languages",
  57. "gid": 568,
  58. "uid": 568,
  59. "description": "Plex Auto Languages can run as any non-root user."
  60. }
  61. ],
  62. "capabilities": [],
  63. "hostMounts": []
  64. },
  65. "schema": {
  66. "groups": [
  67. {
  68. "name": "Plex Auto Language Configuration",
  69. "description": "Configure Plex Auto Language"
  70. },
  71. {
  72. "name": "User and Group Configuration",
  73. "description": "Configure User and Group for Plex Auto Language"
  74. },
  75. {
  76. "name": "Storage Configuration",
  77. "description": "Configure Storage for Plex Auto Language"
  78. },
  79. {
  80. "name": "Resources Configuration",
  81. "description": "Configure Resources for Plex Auto Language"
  82. }
  83. ],
  84. "questions": [
  85. {
  86. "variable": "TZ",
  87. "group": "Plex Auto Language Configuration",
  88. "label": "Timezone",
  89. "schema": {
  90. "type": "string",
  91. "default": "America/Los_Angeles",
  92. "required": true,
  93. "$ref": [
  94. "definitions/timezone"
  95. ],
  96. "enum": [
  97. {
  98. "value": "Asia/Damascus",
  99. "description": "'Asia/Damascus' timezone"
  100. },
  101. {
  102. "value": "Asia/Saigon",
  103. "description": "'Asia/Saigon' timezone"
  104. }
  105. ]
  106. }
  107. },
  108. {
  109. "variable": "palConfig",
  110. "label": "",
  111. "group": "Plex Auto Language Configuration",
  112. "schema": {
  113. "type": "dict",
  114. "attrs": [
  115. {
  116. "variable": "plexURL",
  117. "label": "Plex URL",
  118. "description": "The URL to your Plex server.",
  119. "schema": {
  120. "type": "string",
  121. "required": true
  122. }
  123. },
  124. {
  125. "variable": "plexToken",
  126. "label": "Plex Token",
  127. "description": "The token to your Plex server.</br>\nMore information on how to get your\ntoken can be found here https://github.com/RemiRigal/Plex-Auto-Languages#getting-started\n",
  128. "schema": {
  129. "type": "string",
  130. "required": true
  131. }
  132. },
  133. {
  134. "variable": "additionalEnvs",
  135. "label": "Additional Environment Variables",
  136. "description": "Configure additional environment variables for Plex Auto Language.",
  137. "schema": {
  138. "type": "list",
  139. "default": [],
  140. "items": [
  141. {
  142. "variable": "env",
  143. "label": "Environment Variable",
  144. "schema": {
  145. "type": "dict",
  146. "attrs": [
  147. {
  148. "variable": "name",
  149. "label": "Name",
  150. "schema": {
  151. "type": "string",
  152. "required": true
  153. }
  154. },
  155. {
  156. "variable": "value",
  157. "label": "Value",
  158. "schema": {
  159. "type": "string",
  160. "required": true
  161. }
  162. }
  163. ]
  164. }
  165. }
  166. ]
  167. }
  168. }
  169. ]
  170. }
  171. },
  172. {
  173. "variable": "palRunAs",
  174. "label": "",
  175. "group": "User and Group Configuration",
  176. "schema": {
  177. "type": "dict",
  178. "attrs": [
  179. {
  180. "variable": "user",
  181. "label": "User ID",
  182. "description": "The user id that Plex Auto Language will run as.",
  183. "schema": {
  184. "type": "int",
  185. "min": 2,
  186. "default": 568,
  187. "required": true
  188. }
  189. },
  190. {
  191. "variable": "group",
  192. "label": "Group ID",
  193. "description": "The group id that Plex Auto Language will run as.",
  194. "schema": {
  195. "type": "int",
  196. "min": 2,
  197. "default": 568,
  198. "required": true
  199. }
  200. }
  201. ]
  202. }
  203. },
  204. {
  205. "variable": "palStorage",
  206. "label": "",
  207. "group": "Storage Configuration",
  208. "schema": {
  209. "type": "dict",
  210. "attrs": [
  211. {
  212. "variable": "config",
  213. "label": "Plex Auto Language Config Storage",
  214. "description": "The path to store Plex Auto Language Configuration.",
  215. "schema": {
  216. "type": "dict",
  217. "attrs": [
  218. {
  219. "variable": "type",
  220. "label": "Type",
  221. "description": "ixVolume: Is dataset created automatically by the system.</br>\nHost Path: Is a path that already exists on the system.\n",
  222. "schema": {
  223. "type": "string",
  224. "required": true,
  225. "immutable": true,
  226. "default": "ixVolume",
  227. "enum": [
  228. {
  229. "value": "hostPath",
  230. "description": "Host Path (Path that already exists on the system)"
  231. },
  232. {
  233. "value": "ixVolume",
  234. "description": "ixVolume (Dataset created automatically by the system)"
  235. }
  236. ]
  237. }
  238. },
  239. {
  240. "variable": "ixVolumeConfig",
  241. "label": "ixVolume Configuration",
  242. "description": "The configuration for the ixVolume dataset.",
  243. "schema": {
  244. "type": "dict",
  245. "show_if": [
  246. [
  247. "type",
  248. "=",
  249. "ixVolume"
  250. ]
  251. ],
  252. "$ref": [
  253. "normalize/ixVolume"
  254. ],
  255. "attrs": [
  256. {
  257. "variable": "aclEnable",
  258. "label": "Enable ACL",
  259. "description": "Enable ACL for the dataset.",
  260. "schema": {
  261. "type": "boolean",
  262. "default": false
  263. }
  264. },
  265. {
  266. "variable": "datasetName",
  267. "label": "Dataset Name",
  268. "description": "The name of the dataset to use for storage.",
  269. "schema": {
  270. "type": "string",
  271. "required": true,
  272. "immutable": true,
  273. "hidden": true,
  274. "default": "config"
  275. }
  276. },
  277. {
  278. "variable": "aclEntries",
  279. "label": "ACL Configuration",
  280. "schema": {
  281. "type": "dict",
  282. "show_if": [
  283. [
  284. "aclEnable",
  285. "=",
  286. true
  287. ]
  288. ],
  289. "attrs": [
  290. {
  291. "variable": "path",
  292. "label": "Path",
  293. "description": "Path to perform ACL",
  294. "schema": {
  295. "type": "string",
  296. "hidden": true
  297. }
  298. },
  299. {
  300. "variable": "entries",
  301. "label": "ACL Entries",
  302. "description": "ACL Entries",
  303. "schema": {
  304. "type": "list",
  305. "items": [
  306. {
  307. "variable": "aclEntry",
  308. "label": "ACL Entry",
  309. "schema": {
  310. "type": "dict",
  311. "attrs": [
  312. {
  313. "variable": "id_type",
  314. "label": "ID Type",
  315. "schema": {
  316. "type": "string",
  317. "enum": [
  318. {
  319. "value": "USER",
  320. "description": "Entry is for a USER"
  321. },
  322. {
  323. "value": "GROUP",
  324. "description": "Entry is for a GROUP"
  325. }
  326. ],
  327. "default": "USER"
  328. }
  329. },
  330. {
  331. "variable": "id",
  332. "label": "ID",
  333. "description": "Make sure to check the ID value is correct and aligns with RunAs user context of the application",
  334. "schema": {
  335. "type": "int",
  336. "required": true,
  337. "min": 0
  338. }
  339. },
  340. {
  341. "variable": "access",
  342. "label": "Access",
  343. "schema": {
  344. "type": "string",
  345. "enum": [
  346. {
  347. "value": "READ",
  348. "description": "Read Access"
  349. },
  350. {
  351. "value": "MODIFY",
  352. "description": "Modify Access"
  353. },
  354. {
  355. "value": "FULL_CONTROL",
  356. "description": "FULL_CONTROL Access"
  357. }
  358. ]
  359. }
  360. }
  361. ]
  362. }
  363. }
  364. ]
  365. }
  366. }
  367. ]
  368. }
  369. }
  370. ]
  371. }
  372. },
  373. {
  374. "variable": "hostPathConfig",
  375. "label": "Host Path Configuration",
  376. "schema": {
  377. "type": "dict",
  378. "show_if": [
  379. [
  380. "type",
  381. "=",
  382. "hostPath"
  383. ]
  384. ],
  385. "attrs": [
  386. {
  387. "variable": "aclEnable",
  388. "label": "Enable ACL",
  389. "description": "Enable ACL for the dataset.",
  390. "schema": {
  391. "type": "boolean",
  392. "default": false
  393. }
  394. },
  395. {
  396. "variable": "acl",
  397. "label": "ACL Configuration",
  398. "schema": {
  399. "type": "dict",
  400. "show_if": [
  401. [
  402. "aclEnable",
  403. "=",
  404. true
  405. ]
  406. ],
  407. "attrs": [
  408. {
  409. "variable": "path",
  410. "label": "Host Path",
  411. "description": "Host Path to perform ACL",
  412. "schema": {
  413. "type": "hostpath",
  414. "required": true,
  415. "empty": false
  416. }
  417. },
  418. {
  419. "variable": "entries",
  420. "label": "ACL Entries",
  421. "description": "ACL Entries",
  422. "schema": {
  423. "type": "list",
  424. "items": [
  425. {
  426. "variable": "aclEntry",
  427. "label": "ACL Entry",
  428. "schema": {
  429. "type": "dict",
  430. "attrs": [
  431. {
  432. "variable": "id_type",
  433. "label": "ID Type",
  434. "schema": {
  435. "type": "string",
  436. "enum": [
  437. {
  438. "value": "USER",
  439. "description": "Entry is for a USER"
  440. },
  441. {
  442. "value": "GROUP",
  443. "description": "Entry is for a GROUP"
  444. }
  445. ],
  446. "default": "USER"
  447. }
  448. },
  449. {
  450. "variable": "id",
  451. "label": "ID",
  452. "description": "Make sure to check the ID value is correct and aligns with RunAs user context of the application",
  453. "schema": {
  454. "type": "int",
  455. "required": true,
  456. "min": 0
  457. }
  458. },
  459. {
  460. "variable": "access",
  461. "label": "Access",
  462. "schema": {
  463. "type": "string",
  464. "enum": [
  465. {
  466. "value": "READ",
  467. "description": "Read Access"
  468. },
  469. {
  470. "value": "MODIFY",
  471. "description": "Modify Access"
  472. },
  473. {
  474. "value": "FULL_CONTROL",
  475. "description": "FULL_CONTROL Access"
  476. }
  477. ]
  478. }
  479. }
  480. ]
  481. }
  482. }
  483. ]
  484. }
  485. },
  486. {
  487. "variable": "options",
  488. "label": "ACL Options",
  489. "schema": {
  490. "type": "dict",
  491. "attrs": [
  492. {
  493. "variable": "force",
  494. "label": "Force Flag",
  495. "description": "Enabling `Force` applies ACL even if the path has existing data",
  496. "schema": {
  497. "type": "boolean",
  498. "default": false
  499. }
  500. }
  501. ]
  502. }
  503. }
  504. ],
  505. "$ref": [
  506. "normalize/acl"
  507. ]
  508. }
  509. },
  510. {
  511. "variable": "hostPath",
  512. "label": "Host Path",
  513. "description": "The host path to use for storage.",
  514. "schema": {
  515. "type": "hostpath",
  516. "show_if": [
  517. [
  518. "aclEnable",
  519. "=",
  520. false
  521. ]
  522. ],
  523. "required": true
  524. }
  525. }
  526. ]
  527. }
  528. }
  529. ]
  530. }
  531. },
  532. {
  533. "variable": "additionalStorages",
  534. "label": "Additional Storage",
  535. "description": "Additional storage for Plex Auto Language.",
  536. "schema": {
  537. "type": "list",
  538. "default": [],
  539. "items": [
  540. {
  541. "variable": "storageEntry",
  542. "label": "Storage Entry",
  543. "schema": {
  544. "type": "dict",
  545. "attrs": [
  546. {
  547. "variable": "type",
  548. "label": "Type",
  549. "description": "ixVolume: Is dataset created automatically by the system.</br>\nHost Path: Is a path that already exists on the system.</br>\nSMB Share: Is a SMB share that is mounted to a persistent volume claim.\n",
  550. "schema": {
  551. "type": "string",
  552. "required": true,
  553. "default": "ixVolume",
  554. "immutable": true,
  555. "enum": [
  556. {
  557. "value": "hostPath",
  558. "description": "Host Path (Path that already exists on the system)"
  559. },
  560. {
  561. "value": "ixVolume",
  562. "description": "ixVolume (Dataset created automatically by the system)"
  563. },
  564. {
  565. "value": "smb-pv-pvc",
  566. "description": "SMB Share (Mounts a persistent volume claim to a SMB share)"
  567. }
  568. ]
  569. }
  570. },
  571. {
  572. "variable": "readOnly",
  573. "label": "Read Only",
  574. "description": "Mount the volume as read only.",
  575. "schema": {
  576. "type": "boolean",
  577. "default": false
  578. }
  579. },
  580. {
  581. "variable": "mountPath",
  582. "label": "Mount Path",
  583. "description": "The path inside the container to mount the storage.",
  584. "schema": {
  585. "type": "path",
  586. "required": true
  587. }
  588. },
  589. {
  590. "variable": "hostPathConfig",
  591. "label": "Host Path Configuration",
  592. "schema": {
  593. "type": "dict",
  594. "show_if": [
  595. [
  596. "type",
  597. "=",
  598. "hostPath"
  599. ]
  600. ],
  601. "attrs": [
  602. {
  603. "variable": "aclEnable",
  604. "label": "Enable ACL",
  605. "description": "Enable ACL for the dataset.",
  606. "schema": {
  607. "type": "boolean",
  608. "default": false
  609. }
  610. },
  611. {
  612. "variable": "acl",
  613. "label": "ACL Configuration",
  614. "schema": {
  615. "type": "dict",
  616. "show_if": [
  617. [
  618. "aclEnable",
  619. "=",
  620. true
  621. ]
  622. ],
  623. "attrs": [
  624. {
  625. "variable": "path",
  626. "label": "Host Path",
  627. "description": "Host Path to perform ACL",
  628. "schema": {
  629. "type": "hostpath",
  630. "required": true,
  631. "empty": false
  632. }
  633. },
  634. {
  635. "variable": "entries",
  636. "label": "ACL Entries",
  637. "description": "ACL Entries",
  638. "schema": {
  639. "type": "list",
  640. "items": [
  641. {
  642. "variable": "aclEntry",
  643. "label": "ACL Entry",
  644. "schema": {
  645. "type": "dict",
  646. "attrs": [
  647. {
  648. "variable": "id_type",
  649. "label": "ID Type",
  650. "schema": {
  651. "type": "string",
  652. "enum": [
  653. {
  654. "value": "USER",
  655. "description": "Entry is for a USER"
  656. },
  657. {
  658. "value": "GROUP",
  659. "description": "Entry is for a GROUP"
  660. }
  661. ],
  662. "default": "USER"
  663. }
  664. },
  665. {
  666. "variable": "id",
  667. "label": "ID",
  668. "description": "Make sure to check the ID value is correct and aligns with RunAs user context of the application",
  669. "schema": {
  670. "type": "int",
  671. "required": true,
  672. "min": 0
  673. }
  674. },
  675. {
  676. "variable": "access",
  677. "label": "Access",
  678. "schema": {
  679. "type": "string",
  680. "enum": [
  681. {
  682. "value": "READ",
  683. "description": "Read Access"
  684. },
  685. {
  686. "value": "MODIFY",
  687. "description": "Modify Access"
  688. },
  689. {
  690. "value": "FULL_CONTROL",
  691. "description": "FULL_CONTROL Access"
  692. }
  693. ]
  694. }
  695. }
  696. ]
  697. }
  698. }
  699. ]
  700. }
  701. },
  702. {
  703. "variable": "options",
  704. "label": "ACL Options",
  705. "schema": {
  706. "type": "dict",
  707. "attrs": [
  708. {
  709. "variable": "force",
  710. "label": "Force Flag",
  711. "description": "Enabling `Force` applies ACL even if the path has existing data",
  712. "schema": {
  713. "type": "boolean",
  714. "default": false
  715. }
  716. }
  717. ]
  718. }
  719. }
  720. ],
  721. "$ref": [
  722. "normalize/acl"
  723. ]
  724. }
  725. },
  726. {
  727. "variable": "hostPath",
  728. "label": "Host Path",
  729. "description": "The host path to use for storage.",
  730. "schema": {
  731. "type": "hostpath",
  732. "show_if": [
  733. [
  734. "aclEnable",
  735. "=",
  736. false
  737. ]
  738. ],
  739. "required": true
  740. }
  741. }
  742. ]
  743. }
  744. },
  745. {
  746. "variable": "ixVolumeConfig",
  747. "label": "ixVolume Configuration",
  748. "description": "The configuration for the ixVolume dataset.",
  749. "schema": {
  750. "type": "dict",
  751. "show_if": [
  752. [
  753. "type",
  754. "=",
  755. "ixVolume"
  756. ]
  757. ],
  758. "$ref": [
  759. "normalize/ixVolume"
  760. ],
  761. "attrs": [
  762. {
  763. "variable": "aclEnable",
  764. "label": "Enable ACL",
  765. "description": "Enable ACL for the dataset.",
  766. "schema": {
  767. "type": "boolean",
  768. "default": false
  769. }
  770. },
  771. {
  772. "variable": "datasetName",
  773. "label": "Dataset Name",
  774. "description": "The name of the dataset to use for storage.",
  775. "schema": {
  776. "type": "string",
  777. "required": true,
  778. "immutable": true,
  779. "default": "storage_entry"
  780. }
  781. },
  782. {
  783. "variable": "aclEntries",
  784. "label": "ACL Configuration",
  785. "schema": {
  786. "type": "dict",
  787. "show_if": [
  788. [
  789. "aclEnable",
  790. "=",
  791. true
  792. ]
  793. ],
  794. "attrs": [
  795. {
  796. "variable": "path",
  797. "label": "Path",
  798. "description": "Path to perform ACL",
  799. "schema": {
  800. "type": "string",
  801. "hidden": true
  802. }
  803. },
  804. {
  805. "variable": "entries",
  806. "label": "ACL Entries",
  807. "description": "ACL Entries",
  808. "schema": {
  809. "type": "list",
  810. "items": [
  811. {
  812. "variable": "aclEntry",
  813. "label": "ACL Entry",
  814. "schema": {
  815. "type": "dict",
  816. "attrs": [
  817. {
  818. "variable": "id_type",
  819. "label": "ID Type",
  820. "schema": {
  821. "type": "string",
  822. "enum": [
  823. {
  824. "value": "USER",
  825. "description": "Entry is for a USER"
  826. },
  827. {
  828. "value": "GROUP",
  829. "description": "Entry is for a GROUP"
  830. }
  831. ],
  832. "default": "USER"
  833. }
  834. },
  835. {
  836. "variable": "id",
  837. "label": "ID",
  838. "description": "Make sure to check the ID value is correct and aligns with RunAs user context of the application",
  839. "schema": {
  840. "type": "int",
  841. "required": true,
  842. "min": 0
  843. }
  844. },
  845. {
  846. "variable": "access",
  847. "label": "Access",
  848. "schema": {
  849. "type": "string",
  850. "enum": [
  851. {
  852. "value": "READ",
  853. "description": "Read Access"
  854. },
  855. {
  856. "value": "MODIFY",
  857. "description": "Modify Access"
  858. },
  859. {
  860. "value": "FULL_CONTROL",
  861. "description": "FULL_CONTROL Access"
  862. }
  863. ]
  864. }
  865. }
  866. ]
  867. }
  868. }
  869. ]
  870. }
  871. }
  872. ]
  873. }
  874. }
  875. ]
  876. }
  877. },
  878. {
  879. "variable": "smbConfig",
  880. "label": "SMB Share Configuration",
  881. "description": "The configuration for the SMB Share.",
  882. "schema": {
  883. "type": "dict",
  884. "show_if": [
  885. [
  886. "type",
  887. "=",
  888. "smb-pv-pvc"
  889. ]
  890. ],
  891. "attrs": [
  892. {
  893. "variable": "server",
  894. "label": "Server",
  895. "description": "The server for the SMB share.",
  896. "schema": {
  897. "type": "string",
  898. "required": true
  899. }
  900. },
  901. {
  902. "variable": "share",
  903. "label": "Share",
  904. "description": "The share name for the SMB share.",
  905. "schema": {
  906. "type": "string",
  907. "required": true
  908. }
  909. },
  910. {
  911. "variable": "domain",
  912. "label": "Domain (Optional)",
  913. "description": "The domain for the SMB share.",
  914. "schema": {
  915. "type": "string"
  916. }
  917. },
  918. {
  919. "variable": "username",
  920. "label": "Username",
  921. "description": "The username for the SMB share.",
  922. "schema": {
  923. "type": "string",
  924. "required": true
  925. }
  926. },
  927. {
  928. "variable": "password",
  929. "label": "Password",
  930. "description": "The password for the SMB share.",
  931. "schema": {
  932. "type": "string",
  933. "required": true,
  934. "private": true
  935. }
  936. },
  937. {
  938. "variable": "size",
  939. "label": "Size (in Gi)",
  940. "description": "The size of the volume quota.",
  941. "schema": {
  942. "type": "int",
  943. "required": true,
  944. "min": 1,
  945. "default": 1
  946. }
  947. }
  948. ]
  949. }
  950. }
  951. ]
  952. }
  953. }
  954. ]
  955. }
  956. }
  957. ]
  958. }
  959. },
  960. {
  961. "variable": "resources",
  962. "group": "Resources Configuration",
  963. "label": "",
  964. "schema": {
  965. "type": "dict",
  966. "attrs": [
  967. {
  968. "variable": "limits",
  969. "label": "Limits",
  970. "schema": {
  971. "type": "dict",
  972. "attrs": [
  973. {
  974. "variable": "cpu",
  975. "label": "CPU",
  976. "description": "CPU limit for Plex Auto Language.",
  977. "schema": {
  978. "type": "string",
  979. "max_length": 6,
  980. "valid_chars": "^(0\\.[1-9]|[1-9][0-9]*)(\\.[0-9]|m?)$",
  981. "valid_chars_error": "Valid CPU limit formats are</br>\n- Plain Integer - eg. 1</br>\n- Float - eg. 0.5</br>\n- Milicpu - eg. 500m\n",
  982. "default": "4000m",
  983. "required": true
  984. }
  985. },
  986. {
  987. "variable": "memory",
  988. "label": "Memory",
  989. "description": "Memory limit for Plex Auto Language.",
  990. "schema": {
  991. "type": "string",
  992. "max_length": 12,
  993. "valid_chars": "^[1-9][0-9]*([EPTGMK]i?|e[0-9]+)?$",
  994. "valid_chars_error": "Valid Memory limit formats are</br>\n- Suffixed with E/P/T/G/M/K - eg. 1G</br>\n- Suffixed with Ei/Pi/Ti/Gi/Mi/Ki - eg. 1Gi</br>\n- Plain Integer in bytes - eg. 1024</br>\n- Exponent - eg. 134e6\n",
  995. "default": "8Gi",
  996. "required": true
  997. }
  998. }
  999. ]
  1000. }
  1001. }
  1002. ]
  1003. }
  1004. }
  1005. ]
  1006. },
  1007. "app_readme": "<h1>Plex Auto Languages</h1>\n<p><a href=\"https://github.com/RemiRigal/Plex-Auto-Languages\">Plex Auto Languages</a> offer automated language selection for Plex TV Shows</p>\n<blockquote>\n<p>When application is installed, a container will be launched with <strong>root</strong> privileges.\nThis is required in order to apply the correct permissions to the <code>Plex Auto Languages</code> directories.\nAfterward, the <code>Plex Auto Languages</code> container will run as a <strong>non</strong>-root user (Default: <code>568</code>).\nAll mounted storage(s) will be <code>chown</code>ed only if the parent directory does not match the configured user.</p>\n</blockquote>",
  1008. "detailed_readme": "<h1>Plex Auto Languages</h1>\n<p><a href=\"https://github.com/RemiRigal/Plex-Auto-Languages\">Plex Auto Languages</a> offer automated language selection for Plex TV Shows</p>\n<blockquote>\n<p>When application is installed, a container will be launched with <strong>root</strong> privileges.\nThis is required in order to apply the correct permissions to the <code>Plex Auto Languages</code> directories.\nAfterward, the <code>Plex Auto Languages</code> container will run as a <strong>non</strong>-root user (Default: <code>568</code>).\nAll mounted storage(s) will be <code>chown</code>ed only if the parent directory does not match the configured user.</p>\n</blockquote>",
  1009. "changelog": null
  1010. }
  1011. }