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); } }
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); }
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(); }
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(); }
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); } }
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); } }
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); } }
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); }
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 }); } }
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); }
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)); }
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); } }
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); }
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(); }
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(); }
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); }
public async Task CreateTxtRecordAsync(DnsZone zone, string relativeRecordName, IEnumerable <string> values) { await _godaddyClient.CreateTxtRecordAsync(zone, relativeRecordName, values); }
public async Task DeleteTxtRecordAsync(DnsZone zone, string relativeRecordName) { await _godaddyClient.DeleteTxtRecordAsync(zone, relativeRecordName); }
public Task CreateTxtRecordAsync(DnsZone zone, string relativeRecordName, IEnumerable <string> values) { return(_client.AddRecordAsync(zone.Name, relativeRecordName, values)); }
public Task DeleteTxtRecordAsync(DnsZone zone, string relativeRecordName) { return(Task.CompletedTask); }
public Task DeleteTxtRecordAsync(DnsZone zone, string relativeRecordName) { return(_client.DeleteRecordAsync(zone.Name, "TXT", relativeRecordName)); }
public Task DeleteTxtRecordAsync(DnsZone zone, string relativeRecordName) { // TODO: Requires implementation return(Task.CompletedTask); }
public async Task DeleteTxtRecordAsync(DnsZone zone, string relativeRecordName) { var resourceGroup = ExtractResourceGroup(zone.Id); await _dnsManagementClient.RecordSets.DeleteAsync(resourceGroup, zone.Name, relativeRecordName, RecordType.TXT); }