ContainerPropertiesInternal
Properties of a container.
using Azure.Core;
using Azure.Storage.Common;
using System;
using System.Xml.Linq;
namespace Azure.Storage.Blobs.Models
{
[CodeGenModel("ContainerProperties")]
internal class ContainerPropertiesInternal
{
public DateTimeOffset LastModified { get; }
public string Etag { get; }
public LeaseStatus? LeaseStatus { get; }
public LeaseState? LeaseState { get; }
public LeaseDurationType? LeaseDuration { get; }
public PublicAccessType? PublicAccess { get; }
public bool? HasImmutabilityPolicy { get; }
public bool? HasLegalHold { get; }
public string DefaultEncryptionScope { get; }
public bool? PreventEncryptionScopeOverride { get; }
public DateTimeOffset? DeletedTime { get; }
public int? RemainingRetentionDays { get; }
public bool? IsImmutableStorageWithVersioningEnabled { get; }
internal ContainerPropertiesInternal(DateTimeOffset lastModified, string etag)
{
Argument.AssertNotNull(etag, "etag");
LastModified = lastModified;
Etag = etag;
}
internal ContainerPropertiesInternal(DateTimeOffset lastModified, string etag, LeaseStatus? leaseStatus, LeaseState? leaseState, LeaseDurationType? leaseDuration, PublicAccessType? publicAccess, bool? hasImmutabilityPolicy, bool? hasLegalHold, string defaultEncryptionScope, bool? preventEncryptionScopeOverride, DateTimeOffset? deletedTime, int? remainingRetentionDays, bool? isImmutableStorageWithVersioningEnabled)
{
LastModified = lastModified;
Etag = etag;
LeaseStatus = leaseStatus;
LeaseState = leaseState;
LeaseDuration = leaseDuration;
PublicAccess = publicAccess;
HasImmutabilityPolicy = hasImmutabilityPolicy;
HasLegalHold = hasLegalHold;
DefaultEncryptionScope = defaultEncryptionScope;
PreventEncryptionScopeOverride = preventEncryptionScopeOverride;
DeletedTime = deletedTime;
RemainingRetentionDays = remainingRetentionDays;
IsImmutableStorageWithVersioningEnabled = isImmutableStorageWithVersioningEnabled;
}
internal static ContainerPropertiesInternal DeserializeContainerPropertiesInternal(XElement element)
{
DateTimeOffset lastModified = default(DateTimeOffset);
string etag = null;
LeaseStatus? leaseStatus = null;
LeaseState? leaseState = null;
LeaseDurationType? leaseDuration = null;
PublicAccessType? publicAccess = null;
bool? hasImmutabilityPolicy = null;
bool? hasLegalHold = null;
string defaultEncryptionScope = null;
bool? preventEncryptionScopeOverride = null;
DateTimeOffset? deletedTime = null;
int? remainingRetentionDays = null;
bool? isImmutableStorageWithVersioningEnabled = null;
XElement xElement = element.Element("Last-Modified");
if (xElement != null)
lastModified = xElement.GetDateTimeOffsetValue("R");
XElement xElement2 = element.Element("Etag");
if (xElement2 != null)
etag = (string)xElement2;
XElement xElement3 = element.Element("LeaseStatus");
if (xElement3 != null)
leaseStatus = xElement3.Value.ToLeaseStatus();
XElement xElement4 = element.Element("LeaseState");
if (xElement4 != null)
leaseState = xElement4.Value.ToLeaseState();
XElement xElement5 = element.Element("LeaseDuration");
if (xElement5 != null)
leaseDuration = xElement5.Value.ToLeaseDurationType();
XElement xElement6 = element.Element("PublicAccess");
if (xElement6 != null)
publicAccess = xElement6.Value.ToPublicAccessType();
XElement xElement7 = element.Element("HasImmutabilityPolicy");
if (xElement7 != null)
hasImmutabilityPolicy = (bool?)xElement7;
XElement xElement8 = element.Element("HasLegalHold");
if (xElement8 != null)
hasLegalHold = (bool?)xElement8;
XElement xElement9 = element.Element("DefaultEncryptionScope");
if (xElement9 != null)
defaultEncryptionScope = (string)xElement9;
XElement xElement10 = element.Element("DenyEncryptionScopeOverride");
if (xElement10 != null)
preventEncryptionScopeOverride = (bool?)xElement10;
XElement xElement11 = element.Element("DeletedTime");
if (xElement11 != null)
deletedTime = xElement11.GetDateTimeOffsetValue("R");
XElement xElement12 = element.Element("RemainingRetentionDays");
if (xElement12 != null)
remainingRetentionDays = (int?)xElement12;
XElement xElement13 = element.Element("ImmutableStorageWithVersioningEnabled");
if (xElement13 != null)
isImmutableStorageWithVersioningEnabled = (bool?)xElement13;
return new ContainerPropertiesInternal(lastModified, etag, leaseStatus, leaseState, leaseDuration, publicAccess, hasImmutabilityPolicy, hasLegalHold, defaultEncryptionScope, preventEncryptionScopeOverride, deletedTime, remainingRetentionDays, isImmutableStorageWithVersioningEnabled);
}
}
}