BlobServiceProperties
Storage Service Properties.
using Azure.Core;
using Azure.Storage.Common;
using System.Collections.Generic;
using System.Xml;
using System.Xml.Linq;
namespace Azure.Storage.Blobs.Models
{
[CodeGenModel("StorageServiceProperties")]
public class BlobServiceProperties : IXmlSerializable
{
public BlobAnalyticsLogging Logging { get; set; }
public BlobMetrics HourMetrics { get; set; }
public BlobMetrics MinuteMetrics { get; set; }
public string DefaultServiceVersion { get; set; }
public BlobRetentionPolicy DeleteRetentionPolicy { get; set; }
public BlobStaticWebsite StaticWebsite { get; set; }
public IList<BlobCorsRule> Cors { get; set; }
internal BlobServiceProperties(BlobAnalyticsLogging logging, BlobMetrics hourMetrics, BlobMetrics minuteMetrics, IList<BlobCorsRule> cors, string defaultServiceVersion, BlobRetentionPolicy deleteRetentionPolicy, BlobStaticWebsite staticWebsite)
{
Logging = logging;
HourMetrics = hourMetrics;
MinuteMetrics = minuteMetrics;
Cors = cors;
DefaultServiceVersion = defaultServiceVersion;
DeleteRetentionPolicy = deleteRetentionPolicy;
StaticWebsite = staticWebsite;
}
void IXmlSerializable.Write(XmlWriter writer, string nameHint)
{
writer.WriteStartElement(nameHint ?? "StorageServiceProperties");
if (Optional.IsDefined(Logging))
writer.WriteObjectValue(Logging, "Logging");
if (Optional.IsDefined(HourMetrics))
writer.WriteObjectValue(HourMetrics, "HourMetrics");
if (Optional.IsDefined(MinuteMetrics))
writer.WriteObjectValue(MinuteMetrics, "MinuteMetrics");
if (Optional.IsDefined(DefaultServiceVersion)) {
writer.WriteStartElement("DefaultServiceVersion");
writer.WriteValue(DefaultServiceVersion);
writer.WriteEndElement();
}
if (Optional.IsDefined(DeleteRetentionPolicy))
writer.WriteObjectValue(DeleteRetentionPolicy, "DeleteRetentionPolicy");
if (Optional.IsDefined(StaticWebsite))
writer.WriteObjectValue(StaticWebsite, "StaticWebsite");
if (Optional.IsCollectionDefined(Cors)) {
writer.WriteStartElement("Cors");
foreach (BlobCorsRule cor in Cors) {
writer.WriteObjectValue(cor, "CorsRule");
}
writer.WriteEndElement();
}
writer.WriteEndElement();
}
internal static BlobServiceProperties DeserializeBlobServiceProperties(XElement element)
{
BlobAnalyticsLogging logging = null;
BlobMetrics hourMetrics = null;
BlobMetrics minuteMetrics = null;
string defaultServiceVersion = null;
BlobRetentionPolicy deleteRetentionPolicy = null;
BlobStaticWebsite staticWebsite = null;
IList<BlobCorsRule> cors = null;
XElement xElement = element.Element("Logging");
if (xElement != null)
logging = BlobAnalyticsLogging.DeserializeBlobAnalyticsLogging(xElement);
XElement xElement2 = element.Element("HourMetrics");
if (xElement2 != null)
hourMetrics = BlobMetrics.DeserializeBlobMetrics(xElement2);
XElement xElement3 = element.Element("MinuteMetrics");
if (xElement3 != null)
minuteMetrics = BlobMetrics.DeserializeBlobMetrics(xElement3);
XElement xElement4 = element.Element("DefaultServiceVersion");
if (xElement4 != null)
defaultServiceVersion = (string)xElement4;
XElement xElement5 = element.Element("DeleteRetentionPolicy");
if (xElement5 != null)
deleteRetentionPolicy = BlobRetentionPolicy.DeserializeBlobRetentionPolicy(xElement5);
XElement xElement6 = element.Element("StaticWebsite");
if (xElement6 != null)
staticWebsite = BlobStaticWebsite.DeserializeBlobStaticWebsite(xElement6);
XElement xElement7 = element.Element("Cors");
if (xElement7 != null) {
List<BlobCorsRule> list = new List<BlobCorsRule>();
foreach (XElement item in xElement7.Elements("CorsRule")) {
list.Add(BlobCorsRule.DeserializeBlobCorsRule(item));
}
cors = list;
}
return new BlobServiceProperties(logging, hourMetrics, minuteMetrics, cors, defaultServiceVersion, deleteRetentionPolicy, staticWebsite);
}
public BlobServiceProperties()
: this(false)
{
}
internal BlobServiceProperties(bool skipInitialization)
{
if (!skipInitialization) {
Logging = new BlobAnalyticsLogging();
HourMetrics = new BlobMetrics();
MinuteMetrics = new BlobMetrics();
DeleteRetentionPolicy = new BlobRetentionPolicy();
StaticWebsite = new BlobStaticWebsite();
}
}
}
}