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;
}
}
}