BlobPropertiesInternal
class BlobPropertiesInternal
Properties of a blob.
using Azure.Core;
using Azure.Storage.Common;
using System;
using System.Xml.Linq;
namespace Azure.Storage.Blobs.Models
{
internal class BlobPropertiesInternal
{
public DateTimeOffset? CreationTime { get; }
public DateTimeOffset LastModified { get; }
public string Etag { get; }
public long? ContentLength { get; }
public string ContentType { get; }
public string ContentEncoding { get; }
public string ContentLanguage { get; }
public byte[] ContentMD5 { get; }
public string ContentDisposition { get; }
public string CacheControl { get; }
public long? BlobSequenceNumber { get; }
public BlobType? BlobType { get; }
public LeaseStatus? LeaseStatus { get; }
public LeaseState? LeaseState { get; }
public LeaseDurationType? LeaseDuration { get; }
public string CopyId { get; }
public CopyStatus? CopyStatus { get; }
public string CopySource { get; }
public string CopyProgress { get; }
public DateTimeOffset? CopyCompletionTime { get; }
public string CopyStatusDescription { get; }
public bool? ServerEncrypted { get; }
public bool? IncrementalCopy { get; }
public string DestinationSnapshot { get; }
public DateTimeOffset? DeletedTime { get; }
public int? RemainingRetentionDays { get; }
public AccessTier? AccessTier { get; }
public bool? AccessTierInferred { get; }
public ArchiveStatus? ArchiveStatus { get; }
public string CustomerProvidedKeySha256 { get; }
public string EncryptionScope { get; }
public DateTimeOffset? AccessTierChangeTime { get; }
public int? TagCount { get; }
public DateTimeOffset? ExpiresOn { get; }
public bool? IsSealed { get; }
public RehydratePriority? RehydratePriority { get; }
public DateTimeOffset? LastAccessedOn { get; }
public DateTimeOffset? ImmutabilityPolicyExpiresOn { get; }
public BlobImmutabilityPolicyMode? ImmutabilityPolicyMode { get; }
public bool? LegalHold { get; }
internal BlobPropertiesInternal(DateTimeOffset lastModified, string etag)
{
Argument.AssertNotNull(etag, "etag");
LastModified = lastModified;
Etag = etag;
}
internal BlobPropertiesInternal(DateTimeOffset? creationTime, DateTimeOffset lastModified, string etag, long? contentLength, string contentType, string contentEncoding, string contentLanguage, byte[] contentMD5, string contentDisposition, string cacheControl, long? blobSequenceNumber, BlobType? blobType, LeaseStatus? leaseStatus, LeaseState? leaseState, LeaseDurationType? leaseDuration, string copyId, CopyStatus? copyStatus, string copySource, string copyProgress, DateTimeOffset? copyCompletionTime, string copyStatusDescription, bool? serverEncrypted, bool? incrementalCopy, string destinationSnapshot, DateTimeOffset? deletedTime, int? remainingRetentionDays, AccessTier? accessTier, bool? accessTierInferred, ArchiveStatus? archiveStatus, string customerProvidedKeySha256, string encryptionScope, DateTimeOffset? accessTierChangeTime, int? tagCount, DateTimeOffset? expiresOn, bool? isSealed, RehydratePriority? rehydratePriority, DateTimeOffset? lastAccessedOn, DateTimeOffset? immutabilityPolicyExpiresOn, BlobImmutabilityPolicyMode? immutabilityPolicyMode, bool? legalHold)
{
CreationTime = creationTime;
LastModified = lastModified;
Etag = etag;
ContentLength = contentLength;
ContentType = contentType;
ContentEncoding = contentEncoding;
ContentLanguage = contentLanguage;
ContentMD5 = contentMD5;
ContentDisposition = contentDisposition;
CacheControl = cacheControl;
BlobSequenceNumber = blobSequenceNumber;
BlobType = blobType;
LeaseStatus = leaseStatus;
LeaseState = leaseState;
LeaseDuration = leaseDuration;
CopyId = copyId;
CopyStatus = copyStatus;
CopySource = copySource;
CopyProgress = copyProgress;
CopyCompletionTime = copyCompletionTime;
CopyStatusDescription = copyStatusDescription;
ServerEncrypted = serverEncrypted;
IncrementalCopy = incrementalCopy;
DestinationSnapshot = destinationSnapshot;
DeletedTime = deletedTime;
RemainingRetentionDays = remainingRetentionDays;
AccessTier = accessTier;
AccessTierInferred = accessTierInferred;
ArchiveStatus = archiveStatus;
CustomerProvidedKeySha256 = customerProvidedKeySha256;
EncryptionScope = encryptionScope;
AccessTierChangeTime = accessTierChangeTime;
TagCount = tagCount;
ExpiresOn = expiresOn;
IsSealed = isSealed;
RehydratePriority = rehydratePriority;
LastAccessedOn = lastAccessedOn;
ImmutabilityPolicyExpiresOn = immutabilityPolicyExpiresOn;
ImmutabilityPolicyMode = immutabilityPolicyMode;
LegalHold = legalHold;
}
internal static BlobPropertiesInternal DeserializeBlobPropertiesInternal(XElement element)
{
DateTimeOffset? creationTime = null;
DateTimeOffset lastModified = default(DateTimeOffset);
string etag = null;
long? contentLength = null;
string contentType = null;
string contentEncoding = null;
string contentLanguage = null;
byte[] contentMD = null;
string contentDisposition = null;
string cacheControl = null;
long? blobSequenceNumber = null;
BlobType? blobType = null;
LeaseStatus? leaseStatus = null;
LeaseState? leaseState = null;
LeaseDurationType? leaseDuration = null;
string copyId = null;
CopyStatus? copyStatus = null;
string copySource = null;
string copyProgress = null;
DateTimeOffset? copyCompletionTime = null;
string copyStatusDescription = null;
bool? serverEncrypted = null;
bool? incrementalCopy = null;
string destinationSnapshot = null;
DateTimeOffset? deletedTime = null;
int? remainingRetentionDays = null;
AccessTier? accessTier = null;
bool? accessTierInferred = null;
ArchiveStatus? archiveStatus = null;
string customerProvidedKeySha = null;
string encryptionScope = null;
DateTimeOffset? accessTierChangeTime = null;
int? tagCount = null;
DateTimeOffset? expiresOn = null;
bool? isSealed = null;
RehydratePriority? rehydratePriority = null;
DateTimeOffset? lastAccessedOn = null;
DateTimeOffset? immutabilityPolicyExpiresOn = null;
BlobImmutabilityPolicyMode? immutabilityPolicyMode = null;
bool? legalHold = null;
XElement xElement = element.Element("Creation-Time");
if (xElement != null)
creationTime = xElement.GetDateTimeOffsetValue("R");
XElement xElement2 = element.Element("Last-Modified");
if (xElement2 != null)
lastModified = xElement2.GetDateTimeOffsetValue("R");
XElement xElement3 = element.Element("Etag");
if (xElement3 != null)
etag = (string)xElement3;
XElement xElement4 = element.Element("Content-Length");
if (xElement4 != null)
contentLength = (long?)xElement4;
XElement xElement5 = element.Element("Content-Type");
if (xElement5 != null)
contentType = (string)xElement5;
XElement xElement6 = element.Element("Content-Encoding");
if (xElement6 != null)
contentEncoding = (string)xElement6;
XElement xElement7 = element.Element("Content-Language");
if (xElement7 != null)
contentLanguage = (string)xElement7;
XElement xElement8 = element.Element("Content-MD5");
if (xElement8 != null)
contentMD = xElement8.GetBytesFromBase64Value("D");
XElement xElement9 = element.Element("Content-Disposition");
if (xElement9 != null)
contentDisposition = (string)xElement9;
XElement xElement10 = element.Element("Cache-Control");
if (xElement10 != null)
cacheControl = (string)xElement10;
XElement xElement11 = element.Element("x-ms-blob-sequence-number");
if (xElement11 != null)
blobSequenceNumber = (long?)xElement11;
XElement xElement12 = element.Element("BlobType");
if (xElement12 != null)
blobType = xElement12.Value.ToBlobType();
XElement xElement13 = element.Element("LeaseStatus");
if (xElement13 != null)
leaseStatus = xElement13.Value.ToLeaseStatus();
XElement xElement14 = element.Element("LeaseState");
if (xElement14 != null)
leaseState = xElement14.Value.ToLeaseState();
XElement xElement15 = element.Element("LeaseDuration");
if (xElement15 != null)
leaseDuration = xElement15.Value.ToLeaseDurationType();
XElement xElement16 = element.Element("CopyId");
if (xElement16 != null)
copyId = (string)xElement16;
XElement xElement17 = element.Element("CopyStatus");
if (xElement17 != null)
copyStatus = xElement17.Value.ToCopyStatus();
XElement xElement18 = element.Element("CopySource");
if (xElement18 != null)
copySource = (string)xElement18;
XElement xElement19 = element.Element("CopyProgress");
if (xElement19 != null)
copyProgress = (string)xElement19;
XElement xElement20 = element.Element("CopyCompletionTime");
if (xElement20 != null)
copyCompletionTime = xElement20.GetDateTimeOffsetValue("R");
XElement xElement21 = element.Element("CopyStatusDescription");
if (xElement21 != null)
copyStatusDescription = (string)xElement21;
XElement xElement22 = element.Element("ServerEncrypted");
if (xElement22 != null)
serverEncrypted = (bool?)xElement22;
XElement xElement23 = element.Element("IncrementalCopy");
if (xElement23 != null)
incrementalCopy = (bool?)xElement23;
XElement xElement24 = element.Element("DestinationSnapshot");
if (xElement24 != null)
destinationSnapshot = (string)xElement24;
XElement xElement25 = element.Element("DeletedTime");
if (xElement25 != null)
deletedTime = xElement25.GetDateTimeOffsetValue("R");
XElement xElement26 = element.Element("RemainingRetentionDays");
if (xElement26 != null)
remainingRetentionDays = (int?)xElement26;
XElement xElement27 = element.Element("AccessTier");
if (xElement27 != null)
accessTier = new AccessTier(xElement27.Value);
XElement xElement28 = element.Element("AccessTierInferred");
if (xElement28 != null)
accessTierInferred = (bool?)xElement28;
XElement xElement29 = element.Element("ArchiveStatus");
if (xElement29 != null)
archiveStatus = xElement29.Value.ToArchiveStatus();
XElement xElement30 = element.Element("CustomerProvidedKeySha256");
if (xElement30 != null)
customerProvidedKeySha = (string)xElement30;
XElement xElement31 = element.Element("EncryptionScope");
if (xElement31 != null)
encryptionScope = (string)xElement31;
XElement xElement32 = element.Element("AccessTierChangeTime");
if (xElement32 != null)
accessTierChangeTime = xElement32.GetDateTimeOffsetValue("R");
XElement xElement33 = element.Element("TagCount");
if (xElement33 != null)
tagCount = (int?)xElement33;
XElement xElement34 = element.Element("Expiry-Time");
if (xElement34 != null)
expiresOn = xElement34.GetDateTimeOffsetValue("R");
XElement xElement35 = element.Element("Sealed");
if (xElement35 != null)
isSealed = (bool?)xElement35;
XElement xElement36 = element.Element("RehydratePriority");
if (xElement36 != null)
rehydratePriority = xElement36.Value.ToRehydratePriority();
XElement xElement37 = element.Element("LastAccessTime");
if (xElement37 != null)
lastAccessedOn = xElement37.GetDateTimeOffsetValue("R");
XElement xElement38 = element.Element("ImmutabilityPolicyUntilDate");
if (xElement38 != null)
immutabilityPolicyExpiresOn = xElement38.GetDateTimeOffsetValue("R");
XElement xElement39 = element.Element("ImmutabilityPolicyMode");
if (xElement39 != null)
immutabilityPolicyMode = xElement39.Value.ToBlobImmutabilityPolicyMode();
XElement xElement40 = element.Element("LegalHold");
if (xElement40 != null)
legalHold = (bool?)xElement40;
return new BlobPropertiesInternal(creationTime, lastModified, etag, contentLength, contentType, contentEncoding, contentLanguage, contentMD, contentDisposition, cacheControl, blobSequenceNumber, blobType, leaseStatus, leaseState, leaseDuration, copyId, copyStatus, copySource, copyProgress, copyCompletionTime, copyStatusDescription, serverEncrypted, incrementalCopy, destinationSnapshot, deletedTime, remainingRetentionDays, accessTier, accessTierInferred, archiveStatus, customerProvidedKeySha, encryptionScope, accessTierChangeTime, tagCount, expiresOn, isSealed, rehydratePriority, lastAccessedOn, immutabilityPolicyExpiresOn, immutabilityPolicyMode, legalHold);
}
}
}