BlobMetrics
a summary of request statistics grouped by API in hour or minute aggregates for blobs. 
                using Azure.Core;
using Azure.Storage.Common;
using System.Xml;
using System.Xml.Linq;
namespace Azure.Storage.Blobs.Models
{
    [CodeGenModel("Metrics")]
    public class BlobMetrics : IXmlSerializable
    {
        public string Version { get; set; }
        public bool Enabled { get; set; }
        public BlobRetentionPolicy RetentionPolicy { get; set; }
        [CodeGenMember("IncludeAPIs")]
        public bool? IncludeApis { get; set; }
        internal BlobMetrics(string version, bool enabled, bool? includeApis, BlobRetentionPolicy retentionPolicy)
        {
            Version = version;
            Enabled = enabled;
            IncludeApis = includeApis;
            RetentionPolicy = retentionPolicy;
        }
        void IXmlSerializable.Write(XmlWriter writer, string nameHint)
        {
            writer.WriteStartElement(nameHint ?? "Metrics");
            if (Optional.IsDefined(Version)) {
                writer.WriteStartElement("Version");
                writer.WriteValue(Version);
                writer.WriteEndElement();
            }
            writer.WriteStartElement("Enabled");
            writer.WriteValue(Enabled);
            writer.WriteEndElement();
            if (Optional.IsDefined(IncludeApis)) {
                writer.WriteStartElement("IncludeAPIs");
                writer.WriteValue(IncludeApis.Value);
                writer.WriteEndElement();
            }
            if (Optional.IsDefined(RetentionPolicy))
                writer.WriteObjectValue(RetentionPolicy, "RetentionPolicy");
            writer.WriteEndElement();
        }
        internal static BlobMetrics DeserializeBlobMetrics(XElement element)
        {
            string version = null;
            bool enabled = false;
            bool? includeApis = null;
            BlobRetentionPolicy retentionPolicy = null;
            XElement xElement = element.Element("Version");
            if (xElement != null)
                version = (string)xElement;
            XElement xElement2 = element.Element("Enabled");
            if (xElement2 != null)
                enabled = (bool)xElement2;
            XElement xElement3 = element.Element("IncludeAPIs");
            if (xElement3 != null)
                includeApis = (bool?)xElement3;
            XElement xElement4 = element.Element("RetentionPolicy");
            if (xElement4 != null)
                retentionPolicy = BlobRetentionPolicy.DeserializeBlobRetentionPolicy(xElement4);
            return new BlobMetrics(version, enabled, includeApis, retentionPolicy);
        }
        public BlobMetrics()
            : this(false)
        {
        }
        internal BlobMetrics(bool skipInitialization)
        {
            if (!skipInitialization)
                RetentionPolicy = new BlobRetentionPolicy();
        }
    }
}