  - variable: ingressList
    label: Add Manual Custom Ingresses
    group: Ingress
    schema:
      type: list
      default: []
      items:
        - variable: ingressListEntry
          label: Custom Ingress
          schema:
            additional_attrs: true
            type: dict
            attrs:
              - variable: enabled
                label: Enable Ingress
                schema:
                  type: boolean
                  default: true
                  hidden: true
              - variable: name
                label: Name
                schema:
                  type: string
                  default: ""
              - variable: ingressClassName
                label: IngressClass Name
                schema:
                  type: string
                  default: ""
              - variable: hosts
                label: Hosts
                schema:
                  type: list
                  default: []
                  items:
                    - variable: hostEntry
                      label: Host
                      schema:
                        additional_attrs: true
                        type: dict
                        attrs:
                          - variable: host
                            label: HostName
                            schema:
                              type: string
                              default: ""
                              required: true
                          - variable: paths
                            label: Paths
                            schema:
                              type: list
                              default: []
                              items:
                                - variable: pathEntry
                                  label: Host
                                  schema:
                                    additional_attrs: true
                                    type: dict
                                    attrs:
                                      - variable: path
                                        label: Path
                                        schema:
                                          type: string
                                          required: true
                                          default: "/"
                                      - variable: pathType
                                        label: Path Type
                                        schema:
                                          type: string
                                          required: true
                                          default: Prefix
                                      - variable: service
                                        label: Linked Service
                                        schema:
                                          additional_attrs: true
                                          type: dict
                                          attrs:
                                            - variable: name
                                              label: Service Name
                                              schema:
                                                type: string
                                                default: ""
                                            - variable: port
                                              label: Service Port
                                              schema:
                                                type: int
              - variable: clusterIssuer
                label: clusterIssuer
                description: 'add the name of your cert-manager clusterIssuer here for automatic tls certificates. Cannot be used combined with tls option below'
                schema:
                  type: string
                  default: ""
              - variable: tls
                label: TLS-Settings
                schema:
                  type: list
                  default: []
                  show_if: [["clusterIssuer", "=", ""]]
                  items:
                    - variable: tlsEntry
                      label: Host
                      schema:
                        additional_attrs: true
                        type: dict
                        attrs:
                          - variable: hosts
                            label: Certificate Hosts
                            schema:
                              type: list
                              default: []
                              items:
                                - variable: host
                                  label: Host
                                  schema:
                                    type: string
                                    default: ""
                                    required: true
                          - variable: clusterIssuer
                            label: Use Cert-Manager clusterIssuer
                            description: 'add the name of your Cert-Manager clusterIssuer here for automatic tls certificates.'
                            schema:
                              type: string
                              default: ""
                          - variable: scaleCert
                            label: Use TrueNAS SCALE Certificate (Deprecated)
                            schema:
                              show_if: [["clusterIssuer", "=", ""]]
                              type: int
                              $ref:
                                - "definitions/certificate"
                          - variable: secretName
                            label: Use Custom Secret (Advanced)
                            schema:
                              type: string
                              show_if: [["clusterIssuer", "=", ""]]
                              default: ""
              - variable: entrypoint
                label: Traefik Entrypoint
                description: Entrypoint used by Traefik when using Traefik as Ingress Provider
                schema:
                  type: string
                  default: websecure
                  required: true
              - variable: middlewares
                label: Traefik Middlewares
                description: Add previously created Traefik Middlewares to this Ingress
                schema:
                  type: list
                  default: []
                  items:
                    - variable: name
                      label: Name
                      schema:
                        type: string
                        default: ""
                        required: true
