/// <summary> /// Delete zone Detail asynchronously /// </summary> /// <param name="uuid">The uuid of the zone</param> /// <returns>an error code and the json response</returns> public async Task <ZoneUpdateResponse> DeleteAsync(string uuid) { ApiResponse resp = await _client.DeleteAsync(uuid); ZoneUpdateResponse retour = new ZoneUpdateResponse(); retour.Load(resp); return(retour); }
/// <summary> /// Create zone Snapshot asynchronously /// </summary> /// <param name="uuid">The uuid of the zone</param> /// <param name="content">Http request body content</param> /// <returns>an error code and the json response</returns> public async Task <ZoneUpdateResponse> CreateSnapshotAsync(string uuid) { ApiResponse resp = await _client.CreateSnapshotAsync(uuid); ZoneUpdateResponse retour = new ZoneUpdateResponse(); retour.Load(resp); return(retour); }
/// <summary> /// Update zone Detail asynchronously /// </summary> /// <param name="uuid">The uuid of the zone</param> /// <param name="zone">the zone data </param> /// <returns>an error code and the json response</returns> public async Task <ZoneUpdateResponse> UpdateDetailAsync(string uuid, ZoneDto zone) { ApiResponse resp = await _client.UpdateDetailAsync(uuid, zone); ZoneUpdateResponse retour = new ZoneUpdateResponse(); retour.Load(resp); return(retour); }
/// <summary> /// Delete Named zone Records asynchronously /// </summary> /// <param name="uuid">The uuid of the zone</param> /// <param name="name">Name of Records</param> /// <returns>an error code and the json response</returns> public async Task <ZoneUpdateResponse> DeleteNamedRecordsAsync(string uuid, string name) { ApiResponse resp = await _client.DeleteNamedRecordsAsync(uuid, name); ZoneUpdateResponse retour = new ZoneUpdateResponse(); retour.Load(resp); return(retour); }
/// <summary> /// Update one zone Records in parameter asynchronously /// </summary> /// <param name="uuid">The uuid of the zone</param> /// <param name="name">Name of Records</param> /// <param name="type">Type of Records</param> /// <param name="record">records data</param> /// <returns>an error code and the json response</returns> public async Task <ZoneUpdateResponse> UpdateOneRecordsAsync(string uuid, string name, string type, RecordDto record) { ApiResponse resp = await _client.UpdateOneRecordsAsync(uuid, name, type, record); ZoneUpdateResponse retour = new ZoneUpdateResponse(); retour.Load(resp); return(retour); }
/// <summary> /// Update zone Records with name in parameter asynchronously /// </summary> /// <param name="uuid">The uuid of the zone</param> /// <param name="name">Name of Records</param> /// <param name="records">All records data </param> /// <returns>an error code and the json response</returns> public async Task <ZoneUpdateResponse> UpdateNamedRecordsAsync(string uuid, string name, List <RecordDto> records) { ApiResponse resp = await _client.UpdateNamedRecordsAsync(uuid, name, records); ZoneUpdateResponse retour = new ZoneUpdateResponse(); retour.Load(resp); return(retour); }
/// <summary> /// Create zone Records asynchronously /// </summary> /// <param name="uuid">The uuid of the zone</param> /// <param name="record">the record data </param> /// <returns>an error code and the json response</returns> public async Task <ZoneUpdateResponse> CreateRecordsAsync(string uuid, RecordDto record) { ApiResponse resp = await _client.CreateRecordsAsync(uuid, record); ZoneUpdateResponse retour = new ZoneUpdateResponse(); retour.Load(resp); return(retour); }
/// <summary> /// Function to update a domain in Gandi /// </summary> /// <param name="domain">domain name</param> /// <param name="apikey">The Gandi api key</param> /// <returns>a message in case of error</returns> public static string UpdateDomainGandi(string domain, string apikey) { //Read ip //https://api.ipify.org?format=json //https://api.myip.com //https://ip.seeip.org/jsonip? // brute //http://ipv4bot.whatismyipaddress.com/ string ip = GetIPJson("https://api.ipify.org?format=json"); if (string.IsNullOrEmpty(ip)) { ip = GetIPJson("https://api.myip.com"); } if (string.IsNullOrEmpty(ip)) { ip = GetIPJson("https://ip.seeip.org/jsonip?"); } if (string.IsNullOrEmpty(ip)) { ip = GetIP("http://ipv4bot.whatismyipaddress.com/"); } using (ManagerZone GandiZone = new ManagerZone("https://dns.api.gandi.net/api/v5/", apikey)) using (ManagerDomain GandiDomain = new ManagerDomain("https://dns.api.gandi.net/api/v5/", apikey)) { DomainDetailResponse rep = GandiDomain.GetDetail(domain); if (rep.ErrorMessage != null) { return("Error occurs on getting domain :" + domain + " \r\nError:" + rep.ErrorMessage.GetMessage()); } RecordListResponse rec = GandiZone.GetAllRecords(rep.Data.Domain.ZoneUuid); if (rec.ErrorMessage != null) { return("Error occurs on getting Record of zone :" + rep.Data.Domain.ZoneUuid + " \r\nError:" + rec.ErrorMessage.GetMessage()); } //find record and modify it if different foreach (RecordDto r in rec.Data.Records) { if (r.RrsetName == "@" && r.RrsetType == "A") { string before = string.Empty; foreach (string s in r.RrsetValues) { before += s + " "; if (s == ip) { return(string.Empty); } } r.RrsetValues = new List <string>() { ip }; ZoneUpdateResponse zu = GandiZone.UpdateOneRecords(rep.Data.Domain.ZoneUuid, "@", "A", r); if (rec.ErrorMessage != null) { return("Error occurs on update Record @ A with ip :" + ip + " of zone :" + rep.Data.Domain.ZoneUuid + " \r\nError:" + rec.ErrorMessage.GetMessage()); } } } } return(string.Empty); }