/// <summary>
        /// Gets a collection of DNS zones.
        /// </summary>
        /// <param name="resourceGroup">The resource group.</param>
        /// <returns></returns>
        public IReadOnlyCollection<DnsZone> GetZones(ResourceGroup resourceGroup)
        {
            var response = _client.Zones.List(resourceGroup.Name, null);

            if (response.StatusCode != System.Net.HttpStatusCode.OK)
            {
                throw new DnsZoneException((int)response.StatusCode, "Could not retrieve DNS zones from the ARM.");
            }

            var zones = new List<DnsZone>(response.Zones.Count);

            foreach (var zone in response.Zones)
            {
                zones.Add(new DnsZone(
                    name: zone.Name,
                    id: zone.Id,
                    currentRecords: zone.Properties.NumberOfRecordSets ?? -1,
                    maxRecords: zone.Properties.MaxNumberOfRecordSets ?? -1,
                    location: zone.Location,
                    tags: zone.Tags,
                    type: zone.Type));
            }

            return zones.AsReadOnly();
        }
        /// <summary>
        /// Gets a DNS zone.
        /// </summary>
        /// <param name="resourceGroup">The resource group.</param>
        /// <param name="zoneName">Name of the zone.</param>
        /// <returns></returns>
        public DnsZone GetZone(ResourceGroup resourceGroup, string zoneName)
        {
            var response = _client.Zones.Get(resourceGroup.Name, zoneName);

            if (response.StatusCode != System.Net.HttpStatusCode.OK)
            {
                throw new DnsZoneException((int)response.StatusCode, string.Format("Zone '{0}' not found.", zoneName));
            }

            return new DnsZone(
                name: response.Zone.Name,
                id: response.Zone.Id,
                location: response.Zone.Location,
                tags: response.Zone.Tags,
                type: response.Zone.Type,
                currentRecords: response.Zone.Properties.NumberOfRecordSets ?? -1,
                maxRecords: response.Zone.Properties.MaxNumberOfRecordSets ?? -1);
        }