# Include{groups}
portals: {}
questions:
# Include{global}
# Include{workload}
# Include{workloadDeployment}

# Include{replicas1}
# Include{podSpec}
# Include{containerMain}
                                - variable: env
                                  group: "App Configuration"
                                  label: "Image Environment"
                                  schema:
                                    additional_attrs: true
                                    type: dict
                                    attrs:
                                      - variable: AUTOSTART
                                        label: "Auto Start"
                                        description: "true = Enabled :: Runs script automatically on startup"
                                        schema:
                                          type: boolean
                                          default: true
                                      - variable: SCRIPTINTERVAL
                                        label: "Script Interval"
                                        description: "#s or #m or #h or #d :: s = seconds, m = minutes, h = hours, d = days :: Amount of time between each script run, when AUTOSTART is enabled"
                                        schema:
                                          type: string
                                          default: "1h"
                                      - variable: DOWNLOADMODE
                                        label: "Download Mode"
                                        description: >
                                          "`wanted` or `artist` :: wanted mode only download missing/cutoff ::
                                          artist mode downloads all albums by an artist (requires lidarr volume mapping root media folders for import)"
                                        schema:
                                          type: string
                                          default: "wanted"
                                          enum:
                                            - value: "wanted"
                                              description: "Only missing/cutoff"
                                            - value: "artist"
                                              description: "All albums"
                                      - variable: FALLBACKSEARCH
                                        label: "Fallback Search"
                                        description: "True or False :: True = enabled :: Allows DL client to search for missing songs when they are not available"
                                        schema:
                                          type: boolean
                                          default: true
                                      - variable: LIST
                                        label: "LIST"
                                        description: "Both or missing or cutoff :: both = missing + cutoff :: missng = lidarr missing list :: cutoff = lidarr cutoff list"
                                        schema:
                                          type: string
                                          default: "both"
                                          enum:
                                            - value: "both"
                                              description: "missing + cutoff"
                                            - value: "missing"
                                              description: "lidarr missing list"
                                            - value: "cutoff"
                                              description: "lidarr cutoff list"
                                      - variable: SearchType
                                        label: "Search Type"
                                        description: |
                                          both or artist or fuzzy
                                          both = artist + fuzzy searching
                                          artist = only artist searching
                                          fuzzy = only fuzzy searching (Various Artist is always fuzzy searched, regardless of setting)
                                        schema:
                                          type: string
                                          default: "both"
                                          enum:
                                            - value: "both"
                                              description: "Artist + fuzzy searching."
                                            - value: "artist"
                                              description: "Only artist searching."
                                            - value: "fuzzy"
                                              description: "Only fuzzy searching."
                                      - variable: Concurrency
                                        label: "Concurrency"
                                        description: "Number of concurrent downloads"
                                        schema:
                                          type: int
                                          default: 1
                                      - variable: EMBEDDED_COVER_QUALITY
                                        label: "Embedded Cover Quality"
                                        description: "Controls the quality of the cover image compression in percentage, 100 = no compression"
                                        schema:
                                          type: int
                                          default: 80
                                      - variable: FORMAT
                                        label: "Format"
                                        description: |
                                          FLAC or MP3 or OPUS or AAC or ALAC.
                                          FLAC is an audio coding format for lossless compression of digital audio.
                                          MP3 (or mp3) as a file format commonly designates files containing an elementary stream of MPEG-1 Audio or MPEG-2 Audio encoded data.
                                          Opus is a lossy audio coding format developed by the Xiph.Org Foundation and standardized by the Internet Engineering Task Force.
                                          Advanced Audio Coding (AAC) is an audio coding standard for lossy digital audio compression.
                                        schema:
                                          type: string
                                          default: "FLAC"
                                          enum:
                                            - value: "FLAC"
                                              description: "FLAC"
                                            - value: "MP3"
                                              description: "MP3"
                                            - value: "OPUS"
                                              description: "OPUS"
                                            - value: "AAC"
                                              description: "AAC"
                                            - value: "ALAC"
                                              description: "ALAC"
                                      - variable: BITRATE
                                        label: "Bit Rate"
                                        description: "FLAC -> OPUS/AAC/MP3 will be converted using this bitrate (MP3 320/128 is native, not converted)"
                                        schema:
                                          type: int
                                          default: 320
                                      - variable: ENABLEPOSTPROCESSING
                                        label: "Enable Postprocessing"
                                        description: "true = enabled :: enables or disables post processing processes as much as possible"
                                        schema:
                                          type: boolean
                                          default: true
                                      - variable: FORCECONVERT
                                        label: "Force Convert"
                                        description: "true = enabled :: This will convert lossy MP3 to desired target format (exluding FLAC/ALAC, ALAC will convert to AAC)"
                                        schema:
                                          type: boolean
                                          default: true
                                      - variable: requirequality
                                        label: "Require Quality"
                                        description: "true = enabled :: Requires all downloaded files match target file extension (mp3 or flac) when enabled"
                                        schema:
                                          type: boolean
                                          default: true
                                      - variable: MatchDistance
                                        label: "Match Distance"
                                        description: >
                                          "Set as an integer, the higher the number, the more lenient it is.
                                          Example: A match score of 0 is a perfect match :: For more information,
                                          this score is produced using this function: Algorithm Implementation/Strings/Levenshtein distance"
                                        schema:
                                          type: int
                                          default: 10
                                      - variable: replaygain
                                        label: "Replay Gain"
                                        description: "true = enabled :: Scans and analyzes files to add replaygain tags to song metadata"
                                        schema:
                                          type: boolean
                                          default: true
                                      - variable: FolderPermissions
                                        label: "Folder Permissions"
                                        description: "Based on chmod linux permissions"
                                        schema:
                                          type: int
                                          default: 766
                                      - variable: FilePermissions
                                        label: "File Permissions"
                                        description: "Based on chmod linux permissions"
                                        schema:
                                          type: int
                                          default: 666
                                      - variable: MBRAINZMIRROR
                                        label: "Mbrainz Mirror"
                                        description: "OPTIONAL :: Only change if using a different mirror"
                                        schema:
                                          type: string
                                          default: "https://musicbrainz.org"
                                      - variable: MBRATELIMIT
                                        label: "Mb Rate Limit"
                                        description: "OPTIONAL: musicbrainz rate limit, musicbrainz allows only 1 connection per second, max setting is 10 :: Set to 101 to disable limit"
                                        schema:
                                          type: int
                                          default: 1
                                      - variable: LidarrUrl
                                        label: "Lidarr Url"
                                        description: "Set domain or IP to your Lidarr instance including port. If using reverse proxy, do not use a trailing slash. Ensure you specify http/s."
                                        schema:
                                          type: string
                                          default: "http://x.x.x.x:8686"
                                      - variable: LidarrAPIkey
                                        label: "Lidarr Api Key"
                                        description: "Lidarr API key."
                                        schema:
                                          type: string
                                          default: "LIDARRAPI"
                                      - variable: ARL_TOKEN
                                        label: "ARL Token"
                                        description: "Deezer ARL Cookie"
                                        schema:
                                          type: string
                                          default: "ARLTOKEN"
                                      - variable: NOTIFYPLEX
                                        label: "Notify PLEX"
                                        description: "true = enabled :: ONLY APPLIES ARTIST MODE :: Plex must have a music library added and be configured to use the exact same mount point as Lidarr's root folder"
                                        schema:
                                          type: boolean
                                          default: false
                                          show_subquestions_if: true
                                          subquestions:
                                          - variable: PLEXLIBRARYNAME
                                            label: "PLEX Library Name"
                                            description: "This must exactly match the name of the Plex Library that contains the Lidarr Media Folder data"
                                            schema:
                                              type: string
                                              default: "Music"
                                          - variable: PLEXURL
                                            label: "PLEX URL"
                                            description: "Path to PLEX."
                                            schema:
                                              type: string
                                              default: "http://x.x.x.x:32400"
                                          - variable: PLEXTOKEN
                                            label: "PLEX Token"
                                            description: "PLEX API token."
                                            schema:
                                              type: string
                                              default: "plextoken"
                                      - variable: ALBUM_TYPE_FILTER
                                        label: "Album Type Filter"
                                        description: 'Filter Types: COMPILE, SINGLE, ALBUM, EP (this is a ", " separated list of Album Types to skip) (Applicable to artist mode only)'
                                        schema:
                                          type: string
                                          default: "COMPILE"
                                      - variable: POSTPROCESSTHREADS
                                        label: "Post Process Threads"
                                        description: "Controls number of threads used for Format conversion and replay gain tagging"
                                        schema:
                                          type: int
                                          default: 1
# Include{containerBasic}
# Include{containerAdvanced}

# Include{containerConfig}
# Include{serviceExpertRoot}
# Include{serviceExpert}
# Include{serviceList}
# Include{persistenceRoot}
        - variable: config
          label: "App Config Storage"
          description: "Stores the Application Configuration."
          schema:
            additional_attrs: true
            type: dict
            attrs:
# Include{persistenceBasic}
        - variable: data
          label: "App Data Storage"
          description: "Stores the Application Data."
          schema:
            additional_attrs: true
            type: dict
            attrs:
# Include{persistenceBasic}
# Include{persistenceList}
# Include{securityContextRoot}

              - variable: runAsUser
                label: "runAsUser"
                description: "The UserID of the user running the application"
                schema:
                  type: int
                  default: 0
              - variable: runAsGroup
                label: "runAsGroup"
                description: "The groupID this App of the user running the application"
                schema:
                  type: int
                  default: 0
# Include{securityContextContainer}
# Include{securityContextAdvanced}
# Include{securityContextPod}
              - variable: fsGroup
                label: "fsGroup"
                description: "The group that should own ALL storage."
                schema:
                  type: int
                  default: 568

# Include{resources}
# Include{advanced}
# Include{addons}
# Include{codeserver}
# Include{netshoot}
# Include{vpn}
# Include{documentation}
