public async Task UpdateAsync(string domainName, string recordName, string newValue)
        {
            if (string.IsNullOrEmpty(newValue))
            {
                using (var progress = new ProgressMessage("detecting your external IP address..."))
                {
                    newValue = await GetMyPublicIp();

                    progress.Message += " " + newValue + ".";
                }
            }

            GoDaddyDnsRecord record;

            using (var progress = new ProgressMessage("fetching details..."))
            {
                record = (await _goDaddyClient.GetDomainRecordDetailsAsync(domainName, "A", recordName)).FirstOrDefault();

                PoshWriteLine($"IP: {{{record.Data}}}, TTL: {{{record.Ttl}}}", ConsoleColor.Green, ConsoleColor.Magenta);
            }

            using (var progress = new ProgressMessage($"updating IP address to {newValue}..."))
            {
                record.Data = newValue;

                await _goDaddyClient.SetDomainRecordDetailsAsync(domainName, "A", recordName, new[] { record });
            }
        }