Name = "Sonic"
Description = ''''''
URL = "https://www.sonic.com/"
Code = "sonic"
Since = "v4.4.0"

Example = '''
SONIC_USER_ID=12345 \
SONIC_API_KEY=4d6fbf2f9ab0fa11697470918d37625851fc0c51 \
lego --email you@example.com --dns sonic -d '*.example.com' -d example.com run
'''

Additional = '''
## API keys

The API keys must be generated by calling the `dyndns/api_key` endpoint.

Example:

```bash
$ curl -X POST -H "Content-Type: application/json" --data '{"username":"notarealuser","password":"notarealpassword","hostname":"example.com"}' https://public-api.sonic.net/dyndns/api_key
{"userid":"12345","apikey":"4d6fbf2f9ab0fa11697470918d37625851fc0c51","result":200,"message":"OK"}
```

See https://public-api.sonic.net/dyndns/#requesting_an_api_key for additional details.

This `userid` and `apikey` combo allow modifications to any DNS entries connected to the managed domain (hostname).

Hostname should be the toplevel domain managed e.g. `example.com` not `www.example.com`.
'''

[Configuration]
  [Configuration.Credentials]
    SONIC_USER_ID = "User ID"
    SONIC_API_KEY = "API Key"
  [Configuration.Additional]
    SONIC_POLLING_INTERVAL = "Time between DNS propagation check in seconds (Default: 2)"
    SONIC_PROPAGATION_TIMEOUT = "Maximum waiting time for DNS propagation in seconds (Default: 60)"
    SONIC_TTL = "The TTL of the TXT record used for the DNS challenge in seconds (Default: 120)"
    SONIC_SEQUENCE_INTERVAL = "Time between sequential requests in seconds (Default: 60)"
    SONIC_HTTP_TIMEOUT = "API request timeout in seconds (Default: 10)"

[Links]
  API = "https://public-api.sonic.net/dyndns/"

