  - variable: resources
    group: Resources and Devices
    label: "Resource Limits"
    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/docs/manual/SCALE%20Apps/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/docs/manual/SCALE%20Apps/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
            hidden: true
            attrs:
              - variable: cpu
                label: CPU
                description: "1000m means 1 hyperthread. Detailed info: https://truecharts.org/docs/manual/SCALE%20Apps/indepth/validation"
                schema:
                  type: string
                  default: 10m
                  hidden: true
                  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/docs/manual/SCALE%20Apps/indepth/validation"
                schema:
                  type: string
                  default: 50Mi
                  hidden: true
                  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: device
                  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"
  - variable: scaleGPU
    label: GPU Configuration
    group: Resources and Devices
    schema:
      type: list
      default: []
      items:
        - variable: scaleGPUEntry
          label: GPU
          schema:
            additional_attrs: true
            type: dict
            attrs:
              # Specify GPU configuration
              - variable: gpu
                label: Select GPU
                schema:
                  type: dict
                  $ref:
                    - "definitions/gpuConfiguration"
                  attrs: []
              - variable: workaround
                label: "Workaround"
                schema:
                  type: string
                  default: workaround
                  hidden: true
