<PackageReference Include="Azure.Storage.Blobs" Version="12.31.0-beta.1" />

Azure.Storage.Blobs.Models.BlobLayoutSegmentCacheValue

Cache entry wrapping a snapshot of BlobLayoutSegments returned by GetLayout, along with the expiry metadata required by AutoRefreshingCache<T>. Layout responses become stale on the service side after roughly 5 minutes, so the cache proactively refreshes shortly before that.
public static readonly TimeSpan LayoutLifetime

Server-side layout TTL.

public static readonly TimeSpan RefreshBuffer

How long before ExpiresOn a background refresh should be initiated.

public DateTimeOffset ExpiresOn { get; }

The time at which this value is no longer valid and must be re-acquired.

public DateTimeOffset RefreshOn { get; }

The time at which a background refresh should be initiated so that a new value is ready before ExpiresOn is reached.

public BlobLayoutSegment[] Segments { get; }

The cached layout segments. Non-empty when locality routing applies. Empty when the service returned no layout (HTTP 204); cached for the full TTL. Null on a soft GetLayout failure (400/5xx); also cached for the full TTL so the rest of the download avoids re-hitting a known-bad layout endpoint. In all non-routing cases, consumers fall back to the original endpoint.

Returns a new copy of this value with the specified refreshOn time. Used by the cache to modify the refresh time while keeping everything else the same.