BlobMetrics
a summary of request statistics grouped by API in hour or minute aggregates for blobs.
using Azure.Core;
using Azure.Storage.Common;
using System.Xml;
using System.Xml.Linq;
namespace Azure.Storage.Blobs.Models
{
[CodeGenModel("Metrics")]
public class BlobMetrics : IXmlSerializable
{
public string Version { get; set; }
public bool Enabled { get; set; }
public BlobRetentionPolicy RetentionPolicy { get; set; }
[CodeGenMember("IncludeAPIs")]
public bool? IncludeApis { get; set; }
internal BlobMetrics(string version, bool enabled, bool? includeApis, BlobRetentionPolicy retentionPolicy)
{
Version = version;
Enabled = enabled;
IncludeApis = includeApis;
RetentionPolicy = retentionPolicy;
}
void IXmlSerializable.Write(XmlWriter writer, string nameHint)
{
writer.WriteStartElement(nameHint ?? "Metrics");
if (Optional.IsDefined(Version)) {
writer.WriteStartElement("Version");
writer.WriteValue(Version);
writer.WriteEndElement();
}
writer.WriteStartElement("Enabled");
writer.WriteValue(Enabled);
writer.WriteEndElement();
if (Optional.IsDefined(IncludeApis)) {
writer.WriteStartElement("IncludeAPIs");
writer.WriteValue(IncludeApis.Value);
writer.WriteEndElement();
}
if (Optional.IsDefined(RetentionPolicy))
writer.WriteObjectValue(RetentionPolicy, "RetentionPolicy");
writer.WriteEndElement();
}
internal static BlobMetrics DeserializeBlobMetrics(XElement element)
{
string version = null;
bool enabled = false;
bool? includeApis = null;
BlobRetentionPolicy retentionPolicy = null;
XElement xElement = element.Element("Version");
if (xElement != null)
version = (string)xElement;
XElement xElement2 = element.Element("Enabled");
if (xElement2 != null)
enabled = (bool)xElement2;
XElement xElement3 = element.Element("IncludeAPIs");
if (xElement3 != null)
includeApis = (bool?)xElement3;
XElement xElement4 = element.Element("RetentionPolicy");
if (xElement4 != null)
retentionPolicy = BlobRetentionPolicy.DeserializeBlobRetentionPolicy(xElement4);
return new BlobMetrics(version, enabled, includeApis, retentionPolicy);
}
public BlobMetrics()
: this(false)
{
}
internal BlobMetrics(bool skipInitialization)
{
if (!skipInitialization)
RetentionPolicy = new BlobRetentionPolicy();
}
}
}