Name = "HTTP request"
Description = ''''''
URL = "/lego/dns/httpreq/"
Code = "httpreq"
Since = "v2.0.0"

Example = '''
HTTPREQ_ENDPOINT=http://my.server.com:9090 \
lego --email you@example.com --dns httpreq -d '*.example.com' -d example.com run
'''

Additional = '''
## Description

The server must provide:

- `POST` `/present`
- `POST` `/cleanup`

The URL of the server must be defined by `HTTPREQ_ENDPOINT`.

### Mode

There are 2 modes (`HTTPREQ_MODE`):

- default mode:
```json
{
  "fqdn": "_acme-challenge.domain.",
  "value": "LHDhK3oGRvkiefQnx7OOczTY5Tic_xZ6HcMOc_gmtoM"
}
```

- `RAW`
```json
{
  "domain": "domain",
  "token": "token",
  "keyAuth": "key"
}
```

### Authentication

Basic authentication (optional) can be set with some environment variables:

- `HTTPREQ_USERNAME` and `HTTPREQ_PASSWORD`
- both values must be set, otherwise basic authentication is not defined.

'''

[Configuration]
  [Configuration.Credentials]
    HTTPREQ_MODE = "`RAW`, none"
    HTTPREQ_ENDPOINT = "The URL of the server"
  [Configuration.Additional]
    HTTPREQ_USERNAME = "Basic authentication username"
    HTTPREQ_PASSWORD = "Basic authentication password"
    HTTPREQ_POLLING_INTERVAL = "Time between DNS propagation check in seconds (Default: 2)"
    HTTPREQ_PROPAGATION_TIMEOUT = "Maximum waiting time for DNS propagation in seconds (Default: 60)"
    HTTPREQ_HTTP_TIMEOUT = "API request timeout in seconds (Default: 30)"
