UserDelegationKey
A user delegation key. 
                using Azure.Core;
using Azure.Storage.Common;
using System;
using System.Xml.Linq;
namespace Azure.Storage.Blobs.Models
{
    public class UserDelegationKey
    {
        [CodeGenMember("SignedOid")]
        public string SignedObjectId { get; set; }
        [CodeGenMember("SignedTid")]
        public string SignedTenantId { get; set; }
        [CodeGenMember("SignedExpiry")]
        public DateTimeOffset SignedExpiresOn { get; set; }
        [CodeGenMember("SignedStart")]
        public DateTimeOffset SignedStartsOn { get; set; }
        public string SignedService { get; set; }
        public string SignedVersion { get; set; }
        public string Value { get; set; }
        internal UserDelegationKey(string signedObjectId, string signedTenantId, DateTimeOffset signedStartsOn, DateTimeOffset signedExpiresOn, string signedService, string signedVersion, string value)
        {
            Argument.AssertNotNull(signedObjectId, "signedObjectId");
            Argument.AssertNotNull(signedTenantId, "signedTenantId");
            Argument.AssertNotNull(signedService, "signedService");
            Argument.AssertNotNull(signedVersion, "signedVersion");
            Argument.AssertNotNull(value, "value");
            SignedObjectId = signedObjectId;
            SignedTenantId = signedTenantId;
            SignedStartsOn = signedStartsOn;
            SignedExpiresOn = signedExpiresOn;
            SignedService = signedService;
            SignedVersion = signedVersion;
            Value = value;
        }
        internal static UserDelegationKey DeserializeUserDelegationKey(XElement element)
        {
            string signedObjectId = null;
            string signedTenantId = null;
            DateTimeOffset signedStartsOn = default(DateTimeOffset);
            DateTimeOffset signedExpiresOn = default(DateTimeOffset);
            string signedService = null;
            string signedVersion = null;
            string value = null;
            XElement xElement = element.Element("SignedOid");
            if (xElement != null)
                signedObjectId = (string)xElement;
            XElement xElement2 = element.Element("SignedTid");
            if (xElement2 != null)
                signedTenantId = (string)xElement2;
            XElement xElement3 = element.Element("SignedStart");
            if (xElement3 != null)
                signedStartsOn = xElement3.GetDateTimeOffsetValue("O");
            XElement xElement4 = element.Element("SignedExpiry");
            if (xElement4 != null)
                signedExpiresOn = xElement4.GetDateTimeOffsetValue("O");
            XElement xElement5 = element.Element("SignedService");
            if (xElement5 != null)
                signedService = (string)xElement5;
            XElement xElement6 = element.Element("SignedVersion");
            if (xElement6 != null)
                signedVersion = (string)xElement6;
            XElement xElement7 = element.Element("Value");
            if (xElement7 != null)
                value = (string)xElement7;
            return new UserDelegationKey(signedObjectId, signedTenantId, signedStartsOn, signedExpiresOn, signedService, signedVersion, value);
        }
        internal UserDelegationKey()
        {
        }
    }
}