BlobAccessPolicy
An Access policy.
using Azure.Core;
using Azure.Storage.Common;
using System;
using System.ComponentModel;
using System.Xml;
using System.Xml.Linq;
namespace Azure.Storage.Blobs.Models
{
[CodeGenModel("AccessPolicy")]
public class BlobAccessPolicy : IXmlSerializable
{
[CodeGenMember("Start")]
public DateTimeOffset? PolicyStartsOn { get; set; }
[CodeGenMember("Expiry")]
public DateTimeOffset? PolicyExpiresOn { get; set; }
[CodeGenMember("Permission")]
public string Permissions { get; set; }
[EditorBrowsable(EditorBrowsableState.Never)]
public DateTimeOffset StartsOn {
get {
if (PolicyStartsOn.HasValue)
return PolicyStartsOn.Value;
return default(DateTimeOffset);
}
set {
PolicyStartsOn = value;
}
}
[EditorBrowsable(EditorBrowsableState.Never)]
public DateTimeOffset ExpiresOn {
get {
if (PolicyExpiresOn.HasValue)
return PolicyExpiresOn.Value;
return default(DateTimeOffset);
}
set {
PolicyExpiresOn = value;
}
}
public BlobAccessPolicy()
{
}
internal BlobAccessPolicy(DateTimeOffset? policyStartsOn, DateTimeOffset? policyExpiresOn, string permissions)
{
PolicyStartsOn = policyStartsOn;
PolicyExpiresOn = policyExpiresOn;
Permissions = permissions;
}
void IXmlSerializable.Write(XmlWriter writer, string nameHint)
{
writer.WriteStartElement(nameHint ?? "AccessPolicy");
if (Optional.IsDefined(PolicyStartsOn)) {
writer.WriteStartElement("Start");
writer.WriteValue(PolicyStartsOn.Value, "O");
writer.WriteEndElement();
}
if (Optional.IsDefined(PolicyExpiresOn)) {
writer.WriteStartElement("Expiry");
writer.WriteValue(PolicyExpiresOn.Value, "O");
writer.WriteEndElement();
}
if (Optional.IsDefined(Permissions)) {
writer.WriteStartElement("Permission");
writer.WriteValue(Permissions);
writer.WriteEndElement();
}
writer.WriteEndElement();
}
internal static BlobAccessPolicy DeserializeBlobAccessPolicy(XElement element)
{
DateTimeOffset? policyStartsOn = null;
DateTimeOffset? policyExpiresOn = null;
string permissions = null;
XElement xElement = element.Element("Start");
if (xElement != null)
policyStartsOn = xElement.GetDateTimeOffsetValue("O");
XElement xElement2 = element.Element("Expiry");
if (xElement2 != null)
policyExpiresOn = xElement2.GetDateTimeOffsetValue("O");
XElement xElement3 = element.Element("Permission");
if (xElement3 != null)
permissions = (string)xElement3;
return new BlobAccessPolicy(policyStartsOn, policyExpiresOn, permissions);
}
}
}