BlobSignedIdentifier
signed identifier. 
                using Azure.Core;
using System;
using System.Xml;
using System.Xml.Linq;
namespace Azure.Storage.Blobs.Models
{
    [CodeGenModel("SignedIdentifier")]
    public class BlobSignedIdentifier : IXmlSerializable
    {
        public string Id { get; set; }
        public BlobAccessPolicy AccessPolicy { get; set; }
        void IXmlSerializable.Write(XmlWriter writer, string nameHint)
        {
            writer.WriteStartElement(nameHint ?? "SignedIdentifier");
            writer.WriteStartElement("Id");
            writer.WriteValue(Id);
            writer.WriteEndElement();
            writer.WriteObjectValue(AccessPolicy, "AccessPolicy");
            writer.WriteEndElement();
        }
        internal static BlobSignedIdentifier DeserializeBlobSignedIdentifier(XElement element)
        {
            string id = null;
            BlobAccessPolicy accessPolicy = null;
            XElement xElement = element.Element("Id");
            if (xElement != null)
                id = (string)xElement;
            XElement xElement2 = element.Element("AccessPolicy");
            if (xElement2 != null)
                accessPolicy = BlobAccessPolicy.DeserializeBlobAccessPolicy(xElement2);
            return new BlobSignedIdentifier(id, accessPolicy);
        }
        internal BlobSignedIdentifier(string id, BlobAccessPolicy accessPolicy)
        {
            if (id == null)
                throw new ArgumentNullException("id");
            Id = id;
            AccessPolicy = accessPolicy;
        }
        public BlobSignedIdentifier()
            : this(false)
        {
        }
        internal BlobSignedIdentifier(bool skipInitialization)
        {
            if (!skipInitialization)
                AccessPolicy = new BlobAccessPolicy();
        }
    }
}