
  - variable: advancedresources
    label: "Set Custom Resource Limits/Requests (Advanced)"
    group: "Resources and Devices"
    schema:
      type: boolean
      default: false
      show_subquestions_if: true
      subquestions:
        - variable: resources
          label: ""
          schema:
            additional_attrs: true
            type: dict
            attrs:
              - variable: limits
                label: "Advanced Limit Resource Consumption"
                schema:
                  additional_attrs: true
                  type: dict
                  attrs:
                    - variable: cpu
                      label: "CPU"
                      description: "1000m means 1 hyperthread. Detailed info: https://truecharts.org/manual/indepth/validation/"
                      schema:
                        type: string
                        default: "4000m"
                        valid_chars: '^(?!^0(\.0|m|)$)([0-9]+)(\.[0-9]|m?)$'
                    - variable: memory
                      label: "RAM"
                      description: "1Gi means 1 Gibibyte RAM. Detailed info: https://truecharts.org/manual/indepth/validation/"
                      schema:
                        type: string
                        default: "8Gi"
                        valid_chars: '^(?!^0(e[0-9]|[EPTGMK]i?|)$)([0-9]+)(|[EPTGMK]i?|e[0-9]+)$'
              - variable: requests
                label: "Minimum Resources Required (request)"
                schema:
                  additional_attrs: true
                  type: dict
                  attrs:
                    - variable: cpu
                      label: "CPU"
                      description: "1000m means 1 hyperthread. Detailed info: https://truecharts.org/manual/indepth/validation/"
                      schema:
                        type: string
                        default: "10m"
                        valid_chars: '^(?!^0(\.0|m|)$)([0-9]+)(\.[0-9]|m?)$'
                    - variable: memory
                      label: "RAM"
                      description: "1Gi means 1 Gibibyte RAM. Detailed info: https://truecharts.org/manual/indepth/validation/"
                      schema:
                        type: string
                        default: "50Mi"
                        valid_chars: '^(?!^0(e[0-9]|[EPTGMK]i?|)$)([0-9]+)(|[EPTGMK]i?|e[0-9]+)$'

  - variable: deviceList
    label: "Mount USB devices"
    group: "Resources and Devices"
    schema:
      type: list
      default: []
      items:
        - variable: deviceListEntry
          label: "Device"
          schema:
            additional_attrs: true
            type: dict
            attrs:
              - variable: enabled
                label: "Enable the storage"
                schema:
                  type: boolean
                  default: true
              - variable: type
                label: "(Advanced) Type of Storage"
                description: "Sets the persistence type"
                schema:
                  type: string
                  default: "hostPath"
                  hidden: true
              - variable: readOnly
                label: "readOnly"
                schema:
                  type: boolean
                  default: false
              - variable: hostPath
                label: "Host Device Path"
                description: "Path to the device on the host system"
                schema:
                  type: path
              - variable: mountPath
                label: "Container Device Path"
                description: "Path inside the container the device is mounted"
                schema:
                  type: string
                  default: "/dev/ttyACM0"

  # Specify GPU configuration
  - variable: scaleGPU
    label: "GPU Configuration"
    group: "Resources and Devices"
    schema:
      type: dict
      $ref:
        - "definitions/gpuConfiguration"
      attrs: []
