1 Name = "Akamai EdgeDNS"
2 Description = '''
3 Akamai edgedns supersedes FastDNS; implementing a DNS provider for solving the DNS-01 challenge using Akamai EdgeDNS
4 '''
5 URL = "https://www.akamai.com/us/en/products/security/edge-dns.jsp"
6 Code = "edgedns"
7 Aliases = ["fastdns"] # "fastdns" is for compatibility with v3, must be dropped in v5
8 Since = "v3.9.0"
9 10 Example = '''
11 AKAMAI_CLIENT_SECRET=abcdefghijklmnopqrstuvwxyz1234567890ABCDEFG= \
12 AKAMAI_CLIENT_TOKEN=akab-mnbvcxzlkjhgfdsapoiuytrewq1234567 \
13 AKAMAI_HOST=akab-aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa.luna.akamaiapis.net \
14 AKAMAI_ACCESS_TOKEN=akab-1234567890qwerty-asdfghjklzxcvtnu \
15 lego --dns edgedns -d '*.example.com' -d example.com run
16 '''
17 18 Additional = '''
19 Akamai's credentials are automatically detected in the following locations and prioritized in the following order:
20 21 1. Section-specific environment variables (where `{SECTION}` is specified using `AKAMAI_EDGERC_SECTION`):
22 - `AKAMAI_{SECTION}_HOST`
23 - `AKAMAI_{SECTION}_ACCESS_TOKEN`
24 - `AKAMAI_{SECTION}_CLIENT_TOKEN`
25 - `AKAMAI_{SECTION}_CLIENT_SECRET`
26 2. If `AKAMAI_EDGERC_SECTION` is not defined or is set to `default`, environment variables:
27 - `AKAMAI_HOST`
28 - `AKAMAI_ACCESS_TOKEN`
29 - `AKAMAI_CLIENT_TOKEN`
30 - `AKAMAI_CLIENT_SECRET`
31 3. `.edgerc` file located at `AKAMAI_EDGERC`
32 - defaults to `~/.edgerc`, sections can be specified using `AKAMAI_EDGERC_SECTION`
33 4. Default environment variables:
34 - `AKAMAI_HOST`
35 - `AKAMAI_ACCESS_TOKEN`
36 - `AKAMAI_CLIENT_TOKEN`
37 - `AKAMAI_CLIENT_SECRET`
38 39 See also:
40 41 - [Setting up Akamai credentials](https://developer.akamai.com/api/getting-started)
42 - [.edgerc Format](https://developer.akamai.com/legacy/introduction/Conf_Client.html#edgercformat)
43 - [API Client Authentication](https://developer.akamai.com/legacy/introduction/Client_Auth.html)
44 - [Config from Env](https://github.com/akamai/AkamaiOPEN-edgegrid-golang/blob/master/pkg/edgegrid/config.go#L118)
45 - [Manage many accounts](https://techdocs.akamai.com/developer/docs/manage-many-accounts-with-one-api-client)
46 '''
47 48 [Configuration]
49 [Configuration.Credentials]
50 AKAMAI_HOST = "API host, managed by the Akamai EdgeGrid client"
51 AKAMAI_CLIENT_TOKEN = "Client token, managed by the Akamai EdgeGrid client"
52 AKAMAI_CLIENT_SECRET = "Client secret, managed by the Akamai EdgeGrid client"
53 AKAMAI_ACCESS_TOKEN = "Access token, managed by the Akamai EdgeGrid client"
54 AKAMAI_EDGERC = "Path to the .edgerc file, managed by the Akamai EdgeGrid client"
55 AKAMAI_EDGERC_SECTION = "Configuration section, managed by the Akamai EdgeGrid client"
56 [Configuration.Additional]
57 AKAMAI_ACCOUNT_SWITCH_KEY = "Target account ID when the DNS zone and credentials belong to different accounts"
58 AKAMAI_POLLING_INTERVAL = "Time between DNS propagation check in seconds (Default: 15)"
59 AKAMAI_PROPAGATION_TIMEOUT = "Maximum waiting time for DNS propagation in seconds (Default: 180)"
60 AKAMAI_TTL = "The TTL of the TXT record used for the DNS challenge in seconds (Default: 120)"
61 62 [Links]
63 API = "https://developer.akamai.com/api/cloud_security/edge_dns_zone_management/v2.html"
64 GoClient = "https://github.com/akamai/AkamaiOPEN-edgegrid-golang"
65 66 67