%YAML 1.2
---
proxies:
  description: Proxy configuration
  _type: leadership

  title:
    description: Title or Description
    mandatory: false

  type:
    description: Proxy Type
    choices:
      - HTTP
      - HTTPS/SSL
      - SOCKS4
      - SOCKS5
      - PAC URL
      - WPAD
      - System (use system settings)
      - Direct (no proxy)
    default: Direct (no proxy)

  color:
    description: Color
    regexp: ^#(?:[0-9a-f]{3}){1,2}$
    default:
      jinja: >-
        #

        {%- for i in range(6) -%}
          {{- '0123456789abcdef' | random -}}
        {%- endfor -%}
      description: random color value
    auto_save: true

  address:
    description: IP address, DNS name, server name
    type: domainname
    params:
      allow_ip: true
      allow_without_dot: true
    default:
      jinja: >-
        {% if firefox.manual.http_proxy.address is not propertyerror %}
          {{ firefox.manual.http_proxy.address }}
        {% endif %}
      description: copy HTTP address if proxy is not "Manual"
    disabled:
      jinja: |-
        {% if _.type not in ['HTTP', 'HTTPS/SSL', 'SOCKS4', 'SOCKS5'] %}
          disabled
        {% endif %}
      description: |
        if type not in:
        - HTTP
        - HTTPS/SSL
        - SOCKS4
        - SOCKS5


  port:
    description: Port
    type: port
    default:
      jinja: >-
        {% if firefox.manual.http_proxy.port is not propertyerror %}
          {{ firefox.manual.http_proxy.port }}
        {% endif %}
      description: copy HTTP port if proxy is not "Manual"
    disabled:
      jinja: |-
        {% if _.type not in ['HTTP', 'HTTPS/SSL', 'SOCKS4', 'SOCKS5'] %}
          disabled
        {% endif %}
      description: |
        if type not in:
        - HTTP
        - HTTPS/SSL
        - SOCKS4
        - SOCKS5


  username:
    description: Username
    type: unix_user
    mandatory:
      jinja: |-
        {% if _.password is not propertyerror and _.password %}
          username is mandatory
        {% endif %}
      description: if a password is set
    disabled:
      jinja: |-
        {% if _.type not in ['HTTP', 'HTTPS/SSL', 'SOCKS4', 'SOCKS5'] %}
          disabled
        {% endif %}
      description: |
        if type not in:
        - HTTP
        - HTTPS/SSL
        - SOCKS4
        - SOCKS5


  password:
    description: Password
    type: secret
    mandatory: false
    disabled:
      jinja: |-
        {% if _.type not in ['HTTP', 'HTTPS/SSL', 'SOCKS4', 'SOCKS5'] %}
          disabled
        {% endif %}
      description: |
        if type not in:
        - HTTP
        - HTTPS/SSL
        - SOCKS4
        - SOCKS5


  url:
    description: URL
    type: web_address
    default:
      jinja: >-
        {% if firefox.auto is not propertyerror %}
          {{ firefox.auto }}
        {% endif %}
      description: copy HTTP address if proxy is "Auto"
    disabled:
      jinja: |-
        {% if _.type not in ['PAC URL', 'WPAD'] %}
          proxy does not need url
        {% endif %}
      description: |
        if type is not in:
        - PAC URL
        - WPAD
...
