コード例 #1
0
 public async Task UpsertTxtRecordAsync(DnsZone zone, string relativeRecordName, IEnumerable<string> values)
 {
     foreach (var value in values)
     {
         await _gratisDnsClient.CreateTxtRecordAsync(zone.Name, $"{relativeRecordName}.{zone.Name}", value);
     }
 }
コード例 #2
0
        public async Task DeleteTxtRecordAsync(DnsZone zone, string relativeRecordName)
        {
            var recordName = $"{relativeRecordName}.{zone.Name}.";

            var listRequest = new ListResourceRecordSetsRequest(zone.Id)
            {
                StartRecordName = recordName,
                StartRecordType = RRType.TXT
            };

            var listResponse = await _amazonRoute53Client.ListResourceRecordSetsAsync(listRequest);

            if (listResponse.ResourceRecordSets.Count == 0)
            {
                return;
            }

            var changes = listResponse.ResourceRecordSets
                          .Select(x => new Change {
                Action = ChangeAction.DELETE, ResourceRecordSet = x
            })
                          .ToList();

            var request = new ChangeResourceRecordSetsRequest(zone.Id, new ChangeBatch(changes));

            await _amazonRoute53Client.ChangeResourceRecordSetsAsync(request);
        }
コード例 #3
0
        public async Task CreateTxtRecordAsync(DnsZone zone, string relativeRecordName, IEnumerable <string> values)
        {
            var recordName = $"{relativeRecordName}.{zone.Name}";

            var response = await _httpClient.PutAsync($"zones/{zone.Id}/records/{recordName}", new { type = "TXT", ttl = 60, values });

            response.EnsureSuccessStatusCode();
        }
コード例 #4
0
        public async Task DeleteTxtRecordAsync(DnsZone zone, string relativeRecordName)
        {
            var recordName = $"{relativeRecordName}.{zone.Name}";

            var response = await _httpClient.DeleteAsync($"zones/{zone.Id}/records/{recordName}");

            response.EnsureSuccessStatusCode();
        }
コード例 #5
0
        public async Task CreateTxtRecordAsync(DnsZone zone, string relativeRecordName, IEnumerable <string> values)
        {
            var recordName = $"{relativeRecordName}.{zone.Name}";

            // 必要な検証用の値の数だけ新しく追加する
            foreach (var value in values)
            {
                await _cloudflareDnsClient.CreateDnsRecordAsync(zone.Id, recordName, value);
            }
        }
コード例 #6
0
        public async Task DeleteTxtRecordAsync(DnsZone zone, string relativeRecordName)
        {
            var records = await _transIpClient.ListRecordsAsync(zone.Name);

            var recordsToDelete = records.Where(r => r.Name == relativeRecordName && r.Type == "TXT");

            foreach (var record in recordsToDelete)
            {
                await _transIpClient.DeleteRecordAsync(zone.Name, record);
            }
        }
コード例 #7
0
        public async Task DeleteTxtRecordAsync(DnsZone zone, string relativeRecordName)
        {
            var recordName = $"{relativeRecordName}.{zone.Name}";

            var records = await _cloudflareDnsClient.GetDnsRecordsAsync(zone.Id, recordName);

            // 該当する全てのレコードを削除する
            foreach (var record in records)
            {
                await _cloudflareDnsClient.DeleteDnsRecordAsync(zone.Id, record.Id);
            }
        }
コード例 #8
0
        public async Task UpsertTxtRecordAsync(DnsZone zone, string recordName, IEnumerable <string> values)
        {
            var resourceGroup = ExtractResourceGroup(zone.Id);

            // 既存の TXT レコードがあれば取得する
            var recordSet = await _dnsManagementClient.RecordSets.GetOrDefaultAsync(resourceGroup, zone.Name, recordName, RecordType.TXT) ?? new RecordSet();

            // TXT レコードに TTL と値をセットする
            recordSet.TTL        = 60;
            recordSet.TxtRecords = values.Select(x => new TxtRecord(new[] { x })).ToArray();

            await _dnsManagementClient.RecordSets.CreateOrUpdateAsync(resourceGroup, zone.Name, recordName, RecordType.TXT, recordSet);
        }
コード例 #9
0
 public async Task CreateTxtRecordAsync(DnsZone zone, string relativeRecordName, IEnumerable <string> values)
 {
     foreach (var value in values)
     {
         await _transIpClient.AddRecordAsync(zone.Name, new DnsEntry
         {
             Name    = relativeRecordName,
             Type    = "TXT",
             Expire  = 60,
             Content = value
         });
     }
 }
コード例 #10
0
        public async Task CreateTxtRecordAsync(DnsZone zone, string relativeRecordName, IEnumerable <string> values)
        {
            var resourceGroup = ExtractResourceGroup(zone.Id);

            // TXT レコードに TTL と値をセットする
            var recordSet = new RecordSet
            {
                TTL        = 60,
                TxtRecords = values.Select(x => new TxtRecord(new[] { x })).ToArray()
            };

            await _dnsManagementClient.RecordSets.CreateOrUpdateAsync(resourceGroup, zone.Name, relativeRecordName, RecordType.TXT, recordSet);
        }
コード例 #11
0
        public Task CreateTxtRecordAsync(DnsZone zone, string relativeRecordName, IEnumerable <string> values)
        {
            var entries = new List <DnsEntry>();

            foreach (var value in values)
            {
                entries.Add(new DnsEntry
                {
                    Name = relativeRecordName,
                    Type = "TXT",
                    TTL  = 600,
                    Data = value
                });
            }

            return(_client.AddRecordAsync(zone.Name, entries));
        }
コード例 #12
0
        public async Task UpsertTxtRecordAsync(DnsZone zone, string relativeRecordName, IEnumerable <string> values)
        {
            var recordName = $"{relativeRecordName}.{zone.Name}";

            var records = await _cloudflareDnsClient.GetDnsRecordsAsync(zone.Id, recordName);

            // 該当する全てのレコードを一度削除する
            foreach (var record in records)
            {
                await _cloudflareDnsClient.DeleteDnsRecordAsync(zone.Id, record.Id);
            }

            // 必要な検証用の値の数だけ新しく追加しなおす
            foreach (var value in values)
            {
                await _cloudflareDnsClient.CreateDnsRecordAsync(zone.Id, recordName, value);
            }
        }
コード例 #13
0
        public async Task CreateTxtRecordAsync(DnsZone zone, string relativeRecordName, IEnumerable <string> values)
        {
            var resourceGroup = ExtractResourceGroup(zone.Id);

            // TXT レコードに TTL と値をセットする
            var recordSet = new RecordSet
            {
                TTL = 60
            };

            foreach (var value in values)
            {
                recordSet.TxtRecords.Add(new TxtRecord {
                    Value = { value }
                });
            }

            await _dnsManagementClient.RecordSets.CreateOrUpdateAsync(resourceGroup, zone.Name, relativeRecordName, RecordType.TXT, recordSet);
        }
コード例 #14
0
        public async Task CreateTxtRecordAsync(DnsZone zone, string relativeRecordName, IEnumerable <string> values)
        {
            var recordName = $"{relativeRecordName}.{zone.Name}.";

            var change = new Change
            {
                Additions = new[]
                {
                    new ResourceRecordSet
                    {
                        Name    = recordName,
                        Type    = "TXT",
                        Ttl     = 60,
                        Rrdatas = values.ToArray()
                    }
                }
            };

            await _dnsService.Changes.Create(change, _credsParameters.ProjectId, zone.Id).ExecuteAsync();
        }
コード例 #15
0
        public async Task DeleteTxtRecordAsync(DnsZone zone, string relativeRecordName)
        {
            var recordName = $"{relativeRecordName}.{zone.Name}.";

            var request = _dnsService.ResourceRecordSets.List(_credsParameters.ProjectId, zone.Id);

            request.Name = recordName;
            request.Type = "TXT";

            var txtRecords = await request.ExecuteAsync();

            if (txtRecords.Rrsets.Count == 0)
            {
                return;
            }

            var change = new Change {
                Deletions = txtRecords.Rrsets
            };

            await _dnsService.Changes.Create(change, _credsParameters.ProjectId, zone.Id).ExecuteAsync();
        }
コード例 #16
0
        public async Task CreateTxtRecordAsync(DnsZone zone, string relativeRecordName, IEnumerable <string> values)
        {
            var recordName = $"{relativeRecordName}.{zone.Name}.";

            var change = new Change
            {
                Action            = ChangeAction.CREATE,
                ResourceRecordSet = new ResourceRecordSet
                {
                    Name            = recordName,
                    Type            = RRType.TXT,
                    TTL             = 60,
                    ResourceRecords = values.Select(x => new ResourceRecord($"\"{x}\"")).ToList()
                }
            };

            var request = new ChangeResourceRecordSetsRequest(zone.Id, new ChangeBatch(new List <Change> {
                change
            }));

            await _amazonRoute53Client.ChangeResourceRecordSetsAsync(request);
        }
コード例 #17
0
 public async Task CreateTxtRecordAsync(DnsZone zone, string relativeRecordName, IEnumerable <string> values)
 {
     await _godaddyClient.CreateTxtRecordAsync(zone, relativeRecordName, values);
 }
コード例 #18
0
 public async Task DeleteTxtRecordAsync(DnsZone zone, string relativeRecordName)
 {
     await _godaddyClient.DeleteTxtRecordAsync(zone, relativeRecordName);
 }
コード例 #19
0
 public Task CreateTxtRecordAsync(DnsZone zone, string relativeRecordName, IEnumerable <string> values)
 {
     return(_client.AddRecordAsync(zone.Name, relativeRecordName, values));
 }
コード例 #20
0
 public Task DeleteTxtRecordAsync(DnsZone zone, string relativeRecordName)
 {
     return(Task.CompletedTask);
 }
コード例 #21
0
 public Task DeleteTxtRecordAsync(DnsZone zone, string relativeRecordName)
 {
     return(_client.DeleteRecordAsync(zone.Name, "TXT", relativeRecordName));
 }
コード例 #22
0
 public Task DeleteTxtRecordAsync(DnsZone zone, string relativeRecordName)
 {
     // TODO: Requires implementation
     return(Task.CompletedTask);
 }
コード例 #23
0
        public async Task DeleteTxtRecordAsync(DnsZone zone, string relativeRecordName)
        {
            var resourceGroup = ExtractResourceGroup(zone.Id);

            await _dnsManagementClient.RecordSets.DeleteAsync(resourceGroup, zone.Name, relativeRecordName, RecordType.TXT);
        }