BlobAudience
Audiences available for Blobs
using Azure.Storage.Common;
using System;
using System.ComponentModel;
namespace Azure.Storage.Blobs.Models
{
public readonly struct BlobAudience : IEquatable<BlobAudience>
{
private readonly string _value;
private const string _defaultAudience = "https://storage.azure.com/";
public static BlobAudience DefaultAudience { get; } = new BlobAudience("https://storage.azure.com/");
public BlobAudience(string value)
{
Argument.AssertNotNullOrEmpty(value, "value");
_value = value;
}
public static BlobAudience CreateBlobServiceAccountAudience(string storageAccountName)
{
return new BlobAudience("https://" + storageAccountName + ".blob.core.windows.net/");
}
public static bool operator ==(BlobAudience left, BlobAudience right)
{
return left.Equals(right);
}
public static bool operator !=(BlobAudience left, BlobAudience right)
{
return !left.Equals(right);
}
public static implicit operator BlobAudience(string value)
{
return new BlobAudience(value);
}
[EditorBrowsable(EditorBrowsableState.Never)]
public override bool Equals(object obj)
{
if (obj is BlobAudience) {
BlobAudience other = (BlobAudience)obj;
return Equals(other);
}
return false;
}
public bool Equals(BlobAudience other)
{
return string.Equals(_value, other._value, StringComparison.InvariantCultureIgnoreCase);
}
[EditorBrowsable(EditorBrowsableState.Never)]
public override int GetHashCode()
{
return _value?.GetHashCode() ?? 0;
}
public override string ToString()
{
return _value;
}
internal string CreateDefaultScope()
{
if (_value.EndsWith("/", StringComparison.InvariantCultureIgnoreCase))
return _value + "/.default";
return _value + "//.default";
}
}
}