BlobRetentionPolicy
the retention policy which determines how long the associated data should persist. 
                using Azure.Core;
using Azure.Storage.Common;
using System.Xml;
using System.Xml.Linq;
namespace Azure.Storage.Blobs.Models
{
    [CodeGenModel("RetentionPolicy")]
    public class BlobRetentionPolicy : IXmlSerializable
    {
        public bool Enabled { get; set; }
        public int? Days { get; set; }
        internal bool? AllowPermanentDelete { get; set; }
        internal BlobRetentionPolicy(bool enabled, int? days, bool? allowPermanentDelete)
        {
            Enabled = enabled;
            Days = days;
            AllowPermanentDelete = allowPermanentDelete;
        }
        void IXmlSerializable.Write(XmlWriter writer, string nameHint)
        {
            writer.WriteStartElement(nameHint ?? "RetentionPolicy");
            writer.WriteStartElement("Enabled");
            writer.WriteValue(Enabled);
            writer.WriteEndElement();
            if (Optional.IsDefined(Days)) {
                writer.WriteStartElement("Days");
                writer.WriteValue(Days.Value);
                writer.WriteEndElement();
            }
            if (Optional.IsDefined(AllowPermanentDelete)) {
                writer.WriteStartElement("AllowPermanentDelete");
                writer.WriteValue(AllowPermanentDelete.Value);
                writer.WriteEndElement();
            }
            writer.WriteEndElement();
        }
        internal static BlobRetentionPolicy DeserializeBlobRetentionPolicy(XElement element)
        {
            bool enabled = false;
            int? days = null;
            bool? allowPermanentDelete = null;
            XElement xElement = element.Element("Enabled");
            if (xElement != null)
                enabled = (bool)xElement;
            XElement xElement2 = element.Element("Days");
            if (xElement2 != null)
                days = (int?)xElement2;
            XElement xElement3 = element.Element("AllowPermanentDelete");
            if (xElement3 != null)
                allowPermanentDelete = (bool?)xElement3;
            return new BlobRetentionPolicy(enabled, days, allowPermanentDelete);
        }
        public BlobRetentionPolicy()
        {
        }
        internal BlobRetentionPolicy(bool enabled)
        {
            Enabled = enabled;
        }
    }
}