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

# Include{replicas1}
# Include{podSpec}
# Include{containerMain}
# Include{containerBasic}
# Include{containerAdvanced}

  - variable: pialert
    group: App Configuration
    label: PiAlert Configuration
    schema:
      additional_attrs: true
      type: dict
      attrs:
        - variable: general
          label: General
          schema:
            additional_attrs: true
            type: dict
            attrs:
              - variable: dark_mode
                label: Dark Mode
                description: Forces dark mode by creating a <setting_darkmode> file in the container
                schema:
                  type: boolean
                  default: true
              - variable: web_protection
                label: Web Protection
                schema:
                  type: boolean
                  default: false
                  show_subquestions_if: true
                  subquestions:
                    - variable: web_password
                      label: Web Password
                      schema:
                        type: string
                        default: ""
                        private: true
                        required: true
              - variable: print_log
                label: Print Log
                schema:
                  type: boolean
                  default: false
              - variable: report_dashboard_url
                label: Report Dashboard URL
                schema:
                  type: string
                  default: ""
                  required: true
              - variable: days_to_keep_events
                label: Days to Keep Events
                schema:
                  type: int
                  default: 90
                  required: true
              - variable: scan_cycle_minutes
                label: Scan Cycle Minutes
                schema:
                  type: int
                  default: 5
                  required: true
              - variable: included_sections
                label: Included Sections
                description: Empty list, will add all sections
                schema:
                  type: list
                  default: []
                  items:
                    - variable: section
                      label: Section
                      schema:
                        type: string
                        default: ""
                        required: true
                        enum:
                          - value: internet
                            description: Internet
                          - value: new_devices
                            description: New Devices
                          - value: down_devices
                            description: Down Devices
                          - value: events
                            description: Events
              - variable: scan_subnets
                label: Scan Subnets
                description: CIDR format is <192.168.1.0/24> and interface format is <eth0>
                schema:
                  type: list
                  required: true
                  default: []
                  items:
                    - variable: subnet
                      label: Subnet
                      schema:
                        additional_attrs: true
                        type: dict
                        attrs:
                          - variable: cidr
                            label: CIDR
                            schema:
                              type: string
                              default: ""
                              required: true
                          - variable: interface
                            label: Interface
                            schema:
                              type: string
                              default: ""
                              required: true
        - variable: pushsafer
          label: PushSafer
          schema:
            additional_attrs: true
            type: dict
            attrs:
              - variable: enabled
                label: Enabled
                schema:
                  type: boolean
                  default: false
                  show_subquestions_if: true
                  subquestions:
                    - variable: token
                      label: Token
                      schema:
                        type: string
                        default: ""
                        private: true
                        required: true
        - variable: apprise
          label: Apprise
          schema:
            additional_attrs: true
            type: dict
            attrs:
              - variable: enabled
                label: Enabled
                schema:
                  type: boolean
                  default: false
                  show_subquestions_if: true
                  subquestions:
                    - variable: host
                      label: Host
                      schema:
                        type: string
                        default: ""
                        required: true
                    - variable: url
                      label: URL
                      schema:
                        type: string
                        default: ""
                        required: true
        - variable: ntfy
          label: ntfy
          schema:
            additional_attrs: true
            type: dict
            attrs:
              - variable: enabled
                label: Enabled
                schema:
                  type: boolean
                  default: false
                  show_subquestions_if: true
                  subquestions:
                    - variable: host
                      label: Host
                      schema:
                        type: string
                        default: ""
                        required: true
                    - variable: topic
                      label: Topic
                      schema:
                        type: string
                        default: ""
                        required: true
                    - variable: user
                      label: Username
                      schema:
                        type: string
                        default: ""
                    - variable: password
                      label: Password
                      schema:
                        type: string
                        default: ""
        - variable: webhook
          label: Webhook
          schema:
            additional_attrs: true
            type: dict
            attrs:
              - variable: enabled
                label: Enabled
                schema:
                  type: boolean
                  default: false
                  show_subquestions_if: true
                  subquestions:
                    - variable: url
                      label: URL
                      schema:
                        type: string
                        default: ""
                        required: true
                    - variable: payload
                      label: Payload
                      schema:
                        type: string
                        default: json
                        required: true
                        enum:
                          - value: json
                            description: JSON
                          - value: html
                            description: HTML
                          - value: text
                            description: TEXT
                    - variable: method
                      label: Method
                      schema:
                        type: string
                        default: GET
        - variable: email
          label: Email
          schema:
            additional_attrs: true
            type: dict
            attrs:
              - variable: enabled
                label: Enabled
                schema:
                  type: boolean
                  default: false
                  show_subquestions_if: true
                  subquestions:
                    - variable: server
                      label: Server
                      schema:
                        type: string
                        default: ""
                        required: true
                    - variable: port
                      label: Port
                      schema:
                        type: int
                        default: 587
                        required: true
                    - variable: report_to
                      label: Report To
                      schema:
                        type: string
                        default: ""
                        required: true
                    - variable: report_from
                      label: Report From
                      schema:
                        type: string
                        default: ""
                        required: true
                    - variable: skip_login
                      label: Skip Login
                      schema:
                        type: boolean
                        default: false
                    - variable: skip_tls
                      label: Skip TLS
                      schema:
                        type: boolean
                        default: false
                    - variable: user
                      label: Username
                      schema:
                        type: string
                        default: ""
                    - variable: password
                      label: Password
                      schema:
                        type: string
                        default: ""
        - variable: mqtt
          label: MQTT
          schema:
            additional_attrs: true
            type: dict
            attrs:
              - variable: enabled
                label: Enabled
                schema:
                  type: boolean
                  default: false
                  show_subquestions_if: true
                  subquestions:
                    - variable: broker
                      label: Broker
                      schema:
                        type: string
                        default: ""
                        required: true
                    - variable: port
                      label: Port
                      schema:
                        type: int
                        default: 587
                        required: true
                    - variable: user
                      label: Username
                      schema:
                        type: string
                        default: ""
                    - variable: password
                      label: Password
                      schema:
                        type: string
                        default: ""
                    - variable: qos
                      label: QOS
                      schema:
                        type: int
                        default: 0
                        required: true
                    - variable: delay_sec
                      label: Delay Sec
                      schema:
                        type: int
                        default: 2
                        required: true
        - variable: dyndns
          label: DynDNS
          schema:
            additional_attrs: true
            type: dict
            attrs:
              - variable: enabled
                label: Enabled
                schema:
                  type: boolean
                  default: false
                  show_subquestions_if: true
                  subquestions:
                    - variable: domain
                      label: Domain
                      schema:
                        type: string
                        default: ""
                        required: true
                    - variable: force
                      label: Force
                      schema:
                        type: boolean
                        default: false
                    - variable: timeout
                      label: Timeout
                      schema:
                        type: int
                        default: 20
                        required: true
                    - variable: days_data
                      label: Days Data
                      schema:
                        type: int
                        default: 7
                        required: true
                    - variable: days_data
                      label: Days Data
                      schema:
                        type: int
                        default: 7
                        required: true
                    - variable: run
                      label: Run
                      schema:
                        type: string
                        default: once
                        required: true
                    - variable: run_timeout
                      label: Run Timeout
                      schema:
                        type: int
                        default: 300
                        required: true
                    - variable: run_schedule
                      label: Run Schedule
                      schema:
                        type: string
                        default: "0 4 * * *"
                        required: true
        - variable: pihole
          label: PiHole
          schema:
            additional_attrs: true
            type: dict
            attrs:
              - variable: pihole_active
                label: PiHole Active (Not covered by support)
                description: If enabled you need to map '/etc/pihole/pihole-FTL.db' with additional storage. Not covered by support
                schema:
                  type: boolean
                  default: false
              - variable: dhcp_active
                label: DHCP Active (Not covered by support)
                description: If enabled you need to map '/etc/pihole/dhcp.leases' with additional storage. Not covered by support
                schema:
                  type: boolean
                  default: false

# Include{containerConfig}
# Include{podOptions}
# Include{serviceRoot}
        - variable: main
          label: Main Service
          description: The Primary service on which the healthcheck runs, often the webUI
          schema:
            additional_attrs: true
            type: dict
            attrs:
# Include{serviceSelectorLoadBalancer}
# Include{serviceSelectorExtras}
                    - variable: main
                      label: Main Service Port Configuration
                      schema:
                        additional_attrs: true
                        type: dict
                        attrs:
                          - variable: port
                            label: Port
                            description: This port exposes the container port on the service
                            schema:
                              type: int
                              default: 10600
                              required: true
# 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: db
          label: App DB Storage
          description: Stores the Application DB.
          schema:
            additional_attrs: true
            type: dict
            attrs:
# Include{persistenceBasic}
# Include{persistenceList}
# Include{ingressRoot}
        - variable: main
          label: Main Ingress
          schema:
            additional_attrs: true
            type: dict
            attrs:
# Include{ingressDefault}
# Include{ingressTLS}
# Include{ingressTraefik}
# Include{ingressAdvanced}
# Include{ingressList}

# 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 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}
