// Providers:
// A “Registrar” is who you register the domain with.
// Start with NONE, which is a provider that never talks to or updates
// the registrar.

var REG_NONE = NewRegistrar('none');
var REG_GANDI = NewRegistrar('gandi');
// Porkbun as a registrar is not supported
// var REG_PORKBUN = NewRegistrar('porkbun');

// Domains:
// A “DnsProvider” is the service that actually provides DNS service (port 53)
// and may be the same or different as the registrar.
var DNS_BIND = NewDnsProvider('bind');
var DNS_DESEC = NewDnsProvider('desec');

D('sanchayanmaity.net', REG_NONE, DnsProvider(DNS_DESEC),
    DefaultTTL("1h"),
    A('@', '157.90.118.14'),
    AAAA("@", '2a01:4f8:1c1c:30e9::1'),
    CAA("@", "issue", "letsencrypt.org"),
    CNAME("git" , "sanchayanmaity.net."),
    CNAME("www" , "sanchayanmaity.net."),
    CNAME("monitor" , "sanchayanmaity.net."),
    CNAME("openpgpkey", "wkd.keys.openpgp.org."),
    TXT('openpgp', '41B3422B03703BF5FD03FAFB6F6A0609C12038F3'),
    TXT('keyoxide', 'openpgp4fpr:41b3422b03703bf5fd03fafb6f6a0609c12038f3'),
    MX("@", 10, "in1-smtp.messagingengine.com."),
    MX("@", 20, "in2-smtp.messagingengine.com."),
    TXT('@', 'v=spf1 include:spf.messagingengine.com ?all'),
    TXT('*', 'v=spf1 include:spf.messagingengine.com ?all'),
    CNAME("fm1._domainkey", "fm1.sanchayanmaity.net.dkim.fmhosted.com."),
    CNAME("fm2._domainkey", "fm2.sanchayanmaity.net.dkim.fmhosted.com."),
    CNAME("fm3._domainkey", "fm3.sanchayanmaity.net.dkim.fmhosted.com."),
    // Create SRV records for mail service
    //                    ,priority, weight, port, target
    SRV('_submission._tcp', 0 , 1, 587, 'smtp.fastmail.com.'),
    SRV('_imap._tcp'      , 0 , 0, 0  , '.'),
    SRV('_imaps._tcp'     , 0 , 1, 993, 'imap.fastmail.com.'),
    SRV('_pop3._tcp'      , 0 , 0, 0  , '.'),
    SRV('_pop3s._tcp'     , 10, 1, 995, 'pop.fastmail.com.'),
    SRV('_jmap._tcp'      , 0 , 1, 443, 'api.fastmail.com.'),
    SRV('_carddav._tcp'   , 0 , 0, 0  , '.'),
    SRV('_carddavs._tcp'  , 0 , 1, 443, 'carddav.fastmail.com.'),
    SRV('_caldav._tcp'    , 0 , 0, 0  , '.'),
    SRV('_caldavs._tcp'   , 0 , 1, 443, 'caldav.fastmail.com.'),
    TLSA("_443._tcp"      , 3 , 1, 1  , "421ea3303e6f4f72329ad70307179463ed70b38be518233b9d1075ea295866a8")
);

D('sanchayanmaity.com', REG_NONE, DnsProvider(DNS_DESEC),
    DefaultTTL("1h"),
    A('@', '157.90.118.14'),
    AAAA("@", '2a01:4f8:1c1c:30e9::1'),
    CAA("@", "issue", "letsencrypt.org"),
    CNAME("git" , "sanchayanmaity.com."),
    CNAME("www" , "sanchayanmaity.com."),
    CNAME("monitor" , "sanchayanmaity.com."),
    MX("@", 10, "in1-smtp.messagingengine.com."),
    MX("@", 20, "in2-smtp.messagingengine.com."),
    TXT('@', 'v=spf1 include:spf.messagingengine.com ?all'),
    TXT('*', 'v=spf1 include:spf.messagingengine.com ?all'),
    CNAME("fm1._domainkey", "fm1.sanchayanmaity.com.dkim.fmhosted.com."),
    CNAME("fm2._domainkey", "fm2.sanchayanmaity.com.dkim.fmhosted.com."),
    CNAME("fm3._domainkey", "fm3.sanchayanmaity.com.dkim.fmhosted.com."),
    // Create SRV records for mail service
    //                    ,priority, weight, port, target
    SRV('_submission._tcp', 0 , 1, 587, 'smtp.fastmail.com.'),
    SRV('_imap._tcp'      , 0 , 0, 0  , '.'),
    SRV('_imaps._tcp'     , 0 , 1, 993, 'imap.fastmail.com.'),
    SRV('_pop3._tcp'      , 0 , 0, 0  , '.'),
    SRV('_pop3s._tcp'     , 10, 1, 995, 'pop.fastmail.com.'),
    SRV('_jmap._tcp'      , 0 , 1, 443, 'api.fastmail.com.'),
    SRV('_carddav._tcp'   , 0 , 0, 0  , '.'),
    SRV('_carddavs._tcp'  , 0 , 1, 443, 'carddav.fastmail.com.'),
    SRV('_caldav._tcp'    , 0 , 0, 0  , '.'),
    SRV('_caldavs._tcp'   , 0 , 1, 443, 'caldav.fastmail.com.'),
    TLSA("_443._tcp"      , 3 , 1, 1  , "bc66287a474ef9b6bd41cf38da8d02a58d07b39ea851d117359c1cc9e70b6272")
);
