AppSurface Search
API Reference

Provider

Type

DurableWorkGetRequest

Source

Requests a privacy-bounded snapshot of one work aggregate in an already authorized scope.

Property

ScopeId

DurableScopeId ScopeId { get; } Source

Gets the trusted owning scope.

Property

WorkId

DurableWorkId WorkId { get; } Source

Gets the opaque work identifier.

Type

DurableWorkSnapshot

Source

Reports authoritative work state without returning the original work payload or provider diagnostics.

Remarks

Registered names, versions, and terminal codes accept only ASCII letters, digits, hyphens, underscores, periods, and colons. Empty, whitespace-only, control-containing, and other-character values are rejected; a terminal code may instead be null.

Property

ScopeId

DurableScopeId ScopeId { get; } Source

Gets the trusted owning scope.

Property

WorkId

DurableWorkId WorkId { get; } Source

Gets the work aggregate identity.

Property

ActivityId

string ActivityId { get; } Source

Gets the immutable effect activity identity.

Property

WorkName

string WorkName { get; } Source

Gets the registered Work name, limited to 200 durable-identifier characters.

Property

WorkVersion

string WorkVersion { get; } Source

Gets the registered Work version, limited to 100 durable-identifier characters.

Property

State

DurableWorkState State { get; } Source

Gets the current authoritative state.

Property

ProviderSafety

DurableProviderSafety ProviderSafety { get; } Source

Gets the accepted provider ambiguity policy.

Property

ProviderKey

string ProviderKey { get; } Source

Gets the immutable provider-safe idempotency key.

Property

AttemptNumber

int AttemptNumber { get; } Source

Gets the number of claims that reached this aggregate.

Property

Revision

long Revision { get; } Source

Gets the optimistic-concurrency revision.

Property

AcceptedAtUtc

DateTimeOffset AcceptedAtUtc { get; } Source

Gets the authoritative store acceptance timestamp.

Property

DueAtUtc

DateTimeOffset DueAtUtc { get; } Source

Gets the current eligibility timestamp.

Property

UpdatedAtUtc

DateTimeOffset UpdatedAtUtc { get; } Source

Gets the most recent authoritative update timestamp.

Property

TerminalAtUtc

DateTimeOffset? TerminalAtUtc { get; } Source

Gets the terminal timestamp when terminal.

Property

TerminalCode

string? TerminalCode { get; } Source

Gets the safe terminal or suspension code, limited to 120 durable-identifier characters, when present.

Property

Result

DurableEncodedPayload? Result { get; } Source

Gets the encoded terminal business result when work succeeded.

Remarks

The original work payload and stale provider observations are intentionally not returned.

Type

DurableWorkCancelRequest

Source

Requests an audited cancellation under optimistic concurrency.

Remarks

The application must authorize the actor and scope before calling this API. Actor and reason values must be privacy-safe identifiers, not free-form user content.

Property

ScopeId

DurableScopeId ScopeId { get; } Source

Gets the trusted owning scope.

Property

WorkId

DurableWorkId WorkId { get; } Source

Gets the work aggregate identity.

Property

ActorId

string ActorId { get; } Source

Gets the privacy-safe authorized actor identity written to history.

Property

ReasonCode

string ReasonCode { get; } Source

Gets the privacy-safe reason code written to history.

Property

ExpectedRevision

long ExpectedRevision { get; } Source

Gets the required current revision.

Type

DurableWorkCancelResult

Source

Reports a successful work cancellation command.

Method

Deconstruct

void Deconstruct(out DurableWorkId WorkId, out DurableWorkCancelOutcome Outcome, out DurableWorkState State, out long Revision) Source

Deconstructs the result in its original positional-record field order.

Property

WorkId

DurableWorkId WorkId { get; } Source

Gets the affected Work aggregate.

Property

Outcome

DurableWorkCancelOutcome Outcome { get; } Source

Gets the accepted cancellation outcome.

Property

State

DurableWorkState State { get; } Source

Gets the resulting authoritative Work state.

Property

Revision

long Revision { get; } Source

Gets the resulting aggregate revision.

Type

DurableWorkListRequest

Source

Requests one bounded, ordered, payload-free page of Work operations in an authorized scope.

Property

ScopeId

DurableScopeId ScopeId { get; } Source

Gets the trusted owning scope.

Property

State

DurableWorkState? State { get; } Source

Gets the optional public Work state filter.

Property

RequiresRecoveryReleaseOnly

bool RequiresRecoveryReleaseOnly { get; } Source

Gets whether only nonterminal rows owned by an older runtime epoch should be returned.

Property

PageSize

int PageSize { get; } Source

Gets the maximum page size.

Property

ContinuationToken

string? ContinuationToken { get; } Source

Gets the prior page's opaque continuation token.

Type

DurableWorkListItem

Source

Reports one payload-free Work inventory item for recovery and operations.

Remarks

Registered names, versions, and terminal codes accept only ASCII letters, digits, hyphens, underscores, periods, and colons. Empty, whitespace-only, control-containing, and other-character values are rejected; a terminal code may instead be null.

Property

WorkId

DurableWorkId WorkId { get; } Source

Gets the opaque Work identity.

Property

ActivityId

string ActivityId { get; } Source

Gets the immutable activity identity used for cross-surface correlation.

Property

WorkName

string WorkName { get; } Source

Gets the registered Work name, limited to 200 durable-identifier characters.

Property

WorkVersion

string WorkVersion { get; } Source

Gets the immutable Work version, limited to 100 durable-identifier characters.

Property

State

DurableWorkState State { get; } Source

Gets the public authoritative state.

Property

ProviderSafety

DurableProviderSafety ProviderSafety { get; } Source

Gets the immutable provider-safety class.

Property

AttemptNumber

int AttemptNumber { get; } Source

Gets the current attempt number.

Property

Revision

long Revision { get; } Source

Gets the current aggregate revision required by operator commands.

Property

AcceptedAtUtc

DateTimeOffset AcceptedAtUtc { get; } Source

Gets the authoritative store acceptance time.

Property

DueAtUtc

DateTimeOffset DueAtUtc { get; } Source

Gets the current eligibility time.

Property

UpdatedAtUtc

DateTimeOffset UpdatedAtUtc { get; } Source

Gets the last authoritative mutation time.

Property

TerminalCode

string? TerminalCode { get; } Source

Gets the safe terminal or suspension code, limited to 120 durable-identifier characters, when present.

Property

CancellationRequested

bool CancellationRequested { get; } Source

Gets whether cancellation intent has been recorded.

Property

RequiresRecoveryRelease

bool RequiresRecoveryRelease { get; } Source

Gets whether this nonterminal Work row belongs to an older runtime epoch.

Type

DurableWorkListResult

Source

Reports one bounded Work inventory page.

Property

Items

IReadOnlyList<DurableWorkListItem> Items { get; } Source

Gets the ordered payload-free items.

Property

ContinuationToken

string? ContinuationToken { get; } Source

Gets the opaque token for the next page, or null when complete.

Type

IDurableWorkControlClient

Source

Provides application-authorized query and cancellation operations for work aggregates.

Method

GetAsync

ValueTask<DurableOperationResult<DurableWorkSnapshot>> GetAsync(DurableWorkGetRequest request, CancellationToken cancellationToken = default) Source

Reads one scoped work snapshot.

Method

ListAsync

ValueTask<DurableOperationResult<DurableWorkListResult>> ListAsync(DurableWorkListRequest request, CancellationToken cancellationToken = default) Source

Lists one bounded payload-free Work inventory page in an already authorized scope.

Method

CancelAsync

ValueTask<DurableOperationResult<DurableWorkCancelResult>> CancelAsync(DurableWorkCancelRequest request, CancellationToken cancellationToken = default) Source

Requests audited cancellation under optimistic concurrency.

Type

DurableScopeDisableRequest

Source

Requests disabling an owning durable scope and fencing every prior scope generation.

Property

ScopeId

DurableScopeId ScopeId { get; } Source

Gets the trusted owning scope.

Property

ActorId

string ActorId { get; } Source

Gets the privacy-safe authorized actor identity.

Property

ReasonCode

string ReasonCode { get; } Source

Gets the privacy-safe reason code.

Property

ExpectedGeneration

long ExpectedGeneration { get; } Source

Gets the required active generation.

Type

DurableScopeDisableResult

Source

Reports a successful scope disable command.

Method

Deconstruct

void Deconstruct(out DurableScopeId ScopeId, out DurableScopeDisableOutcome Outcome, out long Generation) Source

Deconstructs the result in its original positional-record field order.

Property

ScopeId

DurableScopeId ScopeId { get; } Source

Gets the disabled owning scope.

Property

Outcome

DurableScopeDisableOutcome Outcome { get; } Source

Gets the accepted disable outcome.

Property

Generation

long Generation { get; } Source

Gets the resulting scope lifecycle generation.

Type

IDurableScopeControlClient

Source

Provides application-authorized scope lifecycle fencing.

Method

DisableAsync

ValueTask<DurableOperationResult<DurableScopeDisableResult>> DisableAsync(DurableScopeDisableRequest request, CancellationToken cancellationToken = default) Source

Disables a scope and increments its generation atomically.

Type

DurableWorkOperatorResult

Source

Reports the authoritative result of a work operator command.

Method

Deconstruct

void Deconstruct(out DurableWorkId WorkId, out DurableWorkOperatorOutcome Outcome, out DurableWorkState State, out long Revision) Source

Deconstructs the result in its original positional-record field order.

Property

WorkId

DurableWorkId WorkId { get; } Source

Gets the affected Work aggregate.

Property

Outcome

DurableWorkOperatorOutcome Outcome { get; } Source

Gets the idempotent operator-command outcome.

Property

State

DurableWorkState State { get; } Source

Gets the resulting authoritative Work state.

Property

Revision

long Revision { get; } Source

Gets the resulting aggregate revision.

Type

DurableWorkReconcileRequest

Source

Requests side-effect-free reconciliation for suspended ReconcileBeforeRetry work.

Property

ScopeId

DurableScopeId ScopeId { get; } Source

Gets the trusted owning scope.

Property

WorkId

DurableWorkId WorkId { get; } Source

Gets the suspended work aggregate.

Property

CommandId

DurableCommandId CommandId { get; } Source

Gets the idempotent operator command identity.

Property

ActorId

string ActorId { get; } Source

Gets the authorized privacy-safe actor identity.

Property

ReasonCode

string ReasonCode { get; } Source

Gets the privacy-safe reason code.

Property

ExpectedRevision

long ExpectedRevision { get; } Source

Gets the expected work revision.

Property

Fingerprint

DurableCommandFingerprint Fingerprint { get; } Source

Gets the computed semantic command fingerprint.

Type

DurableWorkManualResolutionRequest

Source

Requests an audited resolution for ManualResolution work.

Property

ScopeId

DurableScopeId ScopeId { get; } Source

Gets the trusted owning scope.

Property

WorkId

DurableWorkId WorkId { get; } Source

Gets the suspended work aggregate.

Property

CommandId

DurableCommandId CommandId { get; } Source

Gets the idempotent operator command identity.

Property

ActorId

string ActorId { get; } Source

Gets the authorized privacy-safe actor identity.

Property

ReasonCode

string ReasonCode { get; } Source

Gets the privacy-safe reason code.

Property

ExpectedRevision

long ExpectedRevision { get; } Source

Gets the expected work revision.

Property

Resolution

DurableManualResolutionKind Resolution { get; } Source

Gets the provider proof supplied by the operator.

Property

Result

DurableEncodedPayload? Result { get; } Source

Gets the exact registered result when the effect is proven applied.

Property

Fingerprint

DurableCommandFingerprint Fingerprint { get; } Source

Gets the computed semantic command fingerprint.

Type

DurableWorkRetrySafeRequest

Source

Requests release of suspended work only when its effect policy proves a retry is safe.

Property

ScopeId

DurableScopeId ScopeId { get; } Source

Gets the trusted owning scope.

Property

WorkId

DurableWorkId WorkId { get; } Source

Gets the suspended work aggregate.

Property

CommandId

DurableCommandId CommandId { get; } Source

Gets the idempotent operator command identity.

Property

ActorId

string ActorId { get; } Source

Gets the authorized privacy-safe actor identity.

Property

ReasonCode

string ReasonCode { get; } Source

Gets the privacy-safe reason code.

Property

ExpectedRevision

long ExpectedRevision { get; } Source

Gets the expected work revision.

Property

Fingerprint

DurableCommandFingerprint Fingerprint { get; } Source

Gets the computed semantic command fingerprint.

Type

DurableWorkRecoveryReleaseRequest

Source

Requests release of nonterminal work fenced by a rotated restore epoch.

Property

ScopeId

DurableScopeId ScopeId { get; } Source

Gets the trusted owning scope.

Property

WorkId

DurableWorkId WorkId { get; } Source

Gets the old-epoch nonterminal work aggregate.

Property

CommandId

DurableCommandId CommandId { get; } Source

Gets the idempotent operator command identity.

Property

ActorId

string ActorId { get; } Source

Gets the authorized privacy-safe actor identity.

Property

ReasonCode

string ReasonCode { get; } Source

Gets the privacy-safe reason code.

Property

ExpectedRevision

long ExpectedRevision { get; } Source

Gets the expected work revision.

Property

Fingerprint

DurableCommandFingerprint Fingerprint { get; } Source

Gets the computed semantic command fingerprint.

Type

IDurableWorkOperatorClient

Source

Provides audited recovery operations for suspended durable work.

Remarks

Applications must authorize scope and actor before calling this surface. Reconciliation is a provider read and must never repeat the mutation. Manual resolution accepts only an exact registered result or proof of no effect. Safe retry and recovery release fail closed when a prior permit remains ambiguous.

Method

ReconcileAsync

ValueTask<DurableOperationResult<DurableWorkOperatorResult>> ReconcileAsync(DurableWorkReconcileRequest request, CancellationToken cancellationToken = default) Source

Runs the registered side-effect-free reconciler and commits its proof.

Method

ResolveAsync

ValueTask<DurableOperationResult<DurableWorkOperatorResult>> ResolveAsync(DurableWorkManualResolutionRequest request, CancellationToken cancellationToken = default) Source

Commits authorized applied or proven-not-applied provider truth for manual work or canceled replay-safe ambiguity.

Remarks

Idempotent and provider-keyed work is eligible only while suspended with an ambiguous permit and a preserved cancellation request. Applied proof becomes succeeded-after-cancel; proven-not-applied proof becomes canceled before effect. This lets an operator honor cancellation without authorizing replay.

Method

RetrySafeAsync

ValueTask<DurableOperationResult<DurableWorkOperatorResult>> RetrySafeAsync(DurableWorkRetrySafeRequest request, CancellationToken cancellationToken = default) Source

Releases suspended work only when replay is safe under its immutable provider policy.

Remarks

This audited command explicitly overrides and consumes a preserved cancellation request before making work eligible again. Use ResolveAsync instead when provider proof can honor cancellation without replay.

Method

ReleaseAfterRecoveryAsync

ValueTask<DurableOperationResult<DurableWorkOperatorResult>> ReleaseAfterRecoveryAsync(DurableWorkRecoveryReleaseRequest request, CancellationToken cancellationToken = default) Source

Re-fences old-epoch nonterminal work to the configured runtime epoch without erasing due time or effect evidence.

Enum

DurableWorkCancelOutcome

Source

Identifies an accepted work cancellation outcome.

Enum

DurableScopeDisableOutcome

Source

Identifies an accepted scope disable outcome.

Enum

DurableWorkOperatorOutcome

Source

Identifies an idempotent operator mutation outcome.

Enum

DurableManualResolutionKind

Source

Identifies the proof supplied by an authorized manual-resolution command.

Type

ProviderCommandFingerprints

Source

Creates canonical versioned fingerprints for provider/operator mutation commands.

Method

Create

DurableCommandFingerprint Create(string schemaId, DurableScopeId scopeId, DurableWorkId workId, string actorId, string reasonCode, long expectedRevision, DurableManualResolutionKind? resolution = null, DurableEncodedPayload? result = null) Source

Hashes the ordered semantic fields of one Work operator command.

Parameters

  • schemaIdVersioned canonical encoding schema.
  • scopeIdAuthorized scope identity.
  • workIdTarget Work identity.
  • actorIdAuthorized privacy-safe actor identity.
  • reasonCodePrivacy-safe audit reason.
  • expectedRevisionExpected aggregate revision.
  • resolutionOptional manual-resolution outcome.
  • resultRequired encoded result only for an applied manual resolution.

Returns

A canonical fingerprint for persisted replay/conflict comparison.

Remarks

Any change to field ordering or encoding requires a new schemaId.

Type

DurableRuntimeHealthSnapshot

Source

Reports compatibility, heartbeat, sweep, drain, and due-dispatch lag without exposing durable payloads.

Remarks

Worker ids and problem codes accept only ASCII letters, digits, hyphens, underscores, periods, and colons. Empty, whitespace-only, control-containing, and other-character values are rejected; a problem code may instead be null.

Property

State

DurableRuntimeHealthState State { get; } Source

Gets the overall liveness verdict.

Property

ProblemCode

string? ProblemCode { get; } Source

Gets the stable diagnostic code, limited to 120 durable-identifier characters, for a non-healthy verdict.

Property

SchemaCompatible

bool SchemaCompatible { get; } Source

Gets whether installed reader and writer ranges include this package.

Property

EpochCompatible

bool EpochCompatible { get; } Source

Gets whether the configured out-of-band runtime epoch matches the store.

Property

InstalledSchemaVersion

int InstalledSchemaVersion { get; } Source

Gets the highest installed schema migration.

Property

RequiredSchemaVersion

int RequiredSchemaVersion { get; } Source

Gets the schema migration required by this package.

Property

ConfiguredRuntimeEpoch

Guid ConfiguredRuntimeEpoch { get; } Source

Gets the process-configured out-of-band recovery epoch.

Property

ActiveRuntimeEpoch

Guid? ActiveRuntimeEpoch { get; } Source

Gets the store-wide active recovery epoch, when readable.

Property

WorkerId

string WorkerId { get; } Source

Gets the privacy-safe configured worker identity, limited to 200 durable-identifier characters.

Property

WorkerInstanceId

Guid? WorkerInstanceId { get; } Source

Gets the process-instance correlation id currently owning the worker identity.

Property

HostedSurfaces

DurableRuntimeSurface HostedSurfaces { get; } Source

Gets the surfaces this worker is configured to pump.

Property

ObservedAtUtc

DateTimeOffset ObservedAtUtc { get; } Source

Gets the authoritative store observation time.

Property

StartedAtUtc

DateTimeOffset? StartedAtUtc { get; } Source

Gets when the current worker instance first registered.

Property

LastHeartbeatAtUtc

DateTimeOffset? LastHeartbeatAtUtc { get; } Source

Gets the most recent attempted pump heartbeat.

Property

LastSuccessfulSweepAtUtc

DateTimeOffset? LastSuccessfulSweepAtUtc { get; } Source

Gets the most recent successfully completed bounded sweep.

Property

IsDraining

bool IsDraining { get; } Source

Gets whether this worker is refusing new passes while already-started operations drain.

Property

IsPassActive

bool IsPassActive { get; } Source

Gets whether this worker instance has an in-flight bounded pump pass.

Property

DueDispatchCount

long DueDispatchCount { get; } Source

Gets the number of selected-surface dispatch rows currently overdue and available or reclaimable.

Property

OldestDueAtUtc

DateTimeOffset? OldestDueAtUtc { get; } Source

Gets the oldest selected-surface available or reclaimable dispatch instant.

Property

OldestDueAge

TimeSpan? OldestDueAge { get; } Source

Gets the authoritative-store-observed age of the oldest overdue dispatch.

Type

IDurableRuntimeHealth

Source

Reads the configured worker's provider-backed compatibility and liveness snapshot.

Remarks

This API is safe to expose through an application-owned health endpoint. It contains no payloads or scope and aggregate identifiers. Applications should alert on DurableRuntimeHealthState.Stale, an incompatible schema or epoch, and oldest-due age outside their own service objective.

Method

GetAsync

ValueTask<DurableRuntimeHealthSnapshot> GetAsync(CancellationToken cancellationToken = default) Source

Reads one non-mutating health snapshot.

Type

IDurableRuntimeDrainControl

Source

Controls process-local graceful drain for the configured worker identity.

Remarks

Beginning drain prevents future pump passes from claiming new aggregates. It does not revoke an effect permit, cancel provider I/O already in progress, or wait for the caller's currently running pass. The host must wait for its in-flight pass to return before shutting down. Resume is intended for a canceled deployment rollback, not for bypassing a restore or compatibility fence.

Method

BeginDrainAsync

ValueTask BeginDrainAsync(CancellationToken cancellationToken = default) Source

Marks the current worker instance as draining and refuses subsequent pump passes.

Method

ResumeAsync

ValueTask ResumeAsync(CancellationToken cancellationToken = default) Source

Clears process-local drain after compatibility and recovery preconditions remain satisfied.

Enum

DurableRuntimeHealthState

Source

Describes the safe, low-cardinality liveness state of one configured durable runtime worker.

Type

DurableRuntimePumpRequest

Source

Bounds one runtime pump pass for hosted and externally activated execution.

Property

MaximumItems

int MaximumItems { get; } Source

Gets the total item bound.

Property

TimeBudget

TimeSpan TimeBudget { get; } Source

Gets the wall-clock budget for discovering and beginning additional items.

Remarks

An already-started provider call or authoritative-store transaction may finish past this budget. The runtime does not manufacture an ambiguous external outcome merely to enforce a hard stopwatch deadline.

Property

Surfaces

DurableRuntimeSurface Surfaces { get; } Source

Gets the selected durable surfaces.

Type

DurableRuntimePumpResult

Source

Summarizes one bounded runtime pump pass without high-cardinality identifiers.

Property

Discovered

int Discovered { get; } Source

Gets discovered candidate count.

Property

Claimed

int Claimed { get; } Source

Gets successfully claimed count.

Property

Processed

int Processed { get; } Source

Gets successfully processed count.

Property

Deferred

int Deferred { get; } Source

Gets policy-deferred count.

Property

Failed

int Failed { get; } Source

Gets safely failed or suspended count.

Property

HasMore

bool HasMore { get; } Source

Gets whether immediately eligible work may remain.

Property

NextDueAtUtc

DateTimeOffset? NextDueAtUtc { get; } Source

Gets the earliest known future due time.

Property

Elapsed

TimeSpan Elapsed { get; } Source

Gets elapsed duration of the bounded pass.

Type

IDurableRuntimePump

Source

Executes one bounded pass of the authoritative durable runtime.

Remarks

Hosted loops and external activators must call this same primitive. A notification, queue, or HTTP wake-up may accelerate a pass but cannot become a correctness dependency.

Method

RunOnceAsync

ValueTask<DurableRuntimePumpResult> RunOnceAsync(DurableRuntimePumpRequest request, CancellationToken cancellationToken = default) Source

Executes one bounded processing pass.

Enum

DurableRuntimeSurface

Source

Selects which durable surfaces a bounded pump pass may process.

Type

ProviderContractValidation

Source

Validates provider-facing identifiers at the contract boundary.

Method

Require

4 overloads
void Require(DurableScopeId value, string parameterName) Source

Requires a non-default scope identifier.

Parameters

  • valueScope identifier to validate.
  • parameterNameParameter name used by validation exceptions.

Exceptions

  • ArgumentExceptionThrown when the identifier is default or invalid.
void Require(DurableWorkId value, string parameterName) Source

Requires a non-default work identifier.

Parameters

  • valueWork identifier to validate.
  • parameterNameParameter name used by validation exceptions.

Exceptions

  • ArgumentExceptionThrown when the identifier is default or invalid.
void Require(DurableCommandId value, string parameterName) Source

Requires a non-default command identifier.

Parameters

  • valueCommand identifier to validate.
  • parameterNameParameter name used by validation exceptions.

Exceptions

  • ArgumentExceptionThrown when the identifier is default or invalid.
string Require(string value, string parameterName, int maximumLength) Source

Requires bounded portable identifier text.

Parameters

  • valueIdentifier text to validate.
  • parameterNameParameter name used by validation exceptions.
  • maximumLengthMaximum accepted character count.

Returns

The original validated value.

Exceptions

  • ArgumentExceptionThrown when the value is blank, too long, or contains another character.

Remarks

Accepted characters are ASCII letters, digits, hyphens, underscores, periods, and colons.

Type

DurableRetentionManifestId

Source

Identifies one immutable, one-Flow retention manifest.

Method

New

DurableRetentionManifestId New() Source

Creates a cryptographically random manifest identifier.

Property

Value

string Value { get; } Source

Gets the opaque manifest identifier.

Type

DurableRetentionDigest

Source

Identifies the versioned canonical bytes represented by a SHA-256 digest.

Remarks

This value identifies source correspondence only. It never claims that an application-owned external archive is durable, available, encrypted, or legally sufficient.

Property

SchemaId

string SchemaId { get; } Source

Gets the versioned canonicalization schema.

Property

Sha256

string Sha256 { get; } Source

Gets the lowercase SHA-256 digest.

Type

DurableRetentionAssessmentRequest

Source

Requests a bounded, non-mutating assessment of one Flow retention closure.

Remarks

Assessment never archives, changes state, or deletes. It applies no universal age threshold: applications own the policy that decides which terminal Flow to assess.

Property

ScopeId

DurableScopeId ScopeId { get; } Source

Gets the application-authorized owner scope.

Property

FlowInstanceId

DurableFlowInstanceId FlowInstanceId { get; } Source

Gets the one Flow candidate.

Property

MaximumClosureItems

int MaximumClosureItems { get; } Source

Gets the maximum inventory count, from one through 10,000.

Property

MaximumArchiveBytes

int MaximumArchiveBytes { get; } Source

Gets the maximum canonical archive size, from one byte through 64 MiB.

Type

DurableRetentionAssessment

Source

Reports a bounded Flow retention decision and its reproducible source facts.

Property

ScopeId

DurableScopeId ScopeId { get; } Source

Gets the assessed scope.

Property

FlowInstanceId

DurableFlowInstanceId FlowInstanceId { get; } Source

Gets the assessed Flow.

Property

Status

DurableRetentionAssessmentStatus Status { get; } Source

Gets whether the provider proved safety, found a blocker, or could not prove the closure.

Property

Reason

DurableRetentionAssessmentReason Reason { get; } Source

Gets the privacy-safe deterministic explanation.

Property

ClosureDigest

DurableRetentionDigest? ClosureDigest { get; } Source

Gets the canonical closure digest when the source could be inventoried.

Property

SourceWatermark

DurableRetentionDigest? SourceWatermark { get; } Source

Gets the current source watermark when the source could be inventoried.

Property

ClosureItemCount

int ClosureItemCount { get; } Source

Gets the canonical inventory item count.

Property

ArchiveByteCount

long ArchiveByteCount { get; } Source

Gets the exact canonical archive byte count when available.

Type

DurableRetentionManifest

Source

Reports immutable manifest facts together with its current lifecycle projection.

Property

ManifestId

DurableRetentionManifestId ManifestId { get; } Source

Gets the immutable manifest identity.

Property

ScopeId

DurableScopeId ScopeId { get; } Source

Gets the owning scope.

Property

FlowInstanceId

DurableFlowInstanceId FlowInstanceId { get; } Source

Gets the single Flow selected by this manifest.

Property

ClosureDigest

DurableRetentionDigest ClosureDigest { get; } Source

Gets the immutable canonical closure digest.

Property

SourceWatermark

DurableRetentionDigest SourceWatermark { get; } Source

Gets the immutable source watermark recorded when the manifest was created.

Property

ClosureItemCount

int ClosureItemCount { get; } Source

Gets the frozen inventory count.

Property

ArchiveByteCount

long ArchiveByteCount { get; } Source

Gets the frozen canonical archive size.

Property

State

DurableRetentionManifestState State { get; } Source

Gets the current event-derived lifecycle state.

Property

LifecycleSequence

long LifecycleSequence { get; } Source

Gets the compare-and-swap sequence for the projected lifecycle state.

Property

CreatedAtUtc

DateTimeOffset CreatedAtUtc { get; } Source

Gets when immutable manifest facts were recorded.

Type

DurableRetentionManifestCreateRequest

Source

Requests creation of an immutable manifest from a successful bounded assessment.

Property

CommandId

DurableCommandId CommandId { get; } Source

Gets the idempotent command identity.

Property

Assessment

DurableRetentionAssessment Assessment { get; } Source

Gets the successful assessment whose source facts must still match.

Property

Fingerprint

DurableCommandFingerprint Fingerprint { get; } Source

Gets the versioned semantic command fingerprint.

Type

DurableRetentionManifestCreateResult

Source

Reports an immutable-manifest creation result.

Property

Outcome

DurableRetentionManifestCreateOutcome Outcome { get; } Source

Gets whether this command created or replayed the manifest.

Property

Manifest

DurableRetentionManifest Manifest { get; } Source

Gets the immutable manifest and its current projection.

Type

DurableArchiveReceiptV1

Source

Represents a content-addressed adopter assertion about a durable-flow archive package.

Property

ReceiptId

string ReceiptId { get; } Source

Gets the adopter-owned opaque receipt identity; it is not a URI or external-storage claim.

Property

PackageDigest

DurableRetentionDigest PackageDigest { get; } Source

Gets the DFA1 package digest claimed by the archive writer.

Property

ClosureDigest

DurableRetentionDigest ClosureDigest { get; } Source

Gets the frozen closure digest named by the receipt.

Property

RecordCount

int RecordCount { get; } Source

Gets the canonical package record count.

Type

DurableArchivePackageV1

Source

Returns a reproducible DFA1 archive package without writing to external storage.

Property

Manifest

DurableRetentionManifest Manifest { get; } Source

Gets the manifest whose exact source facts the package represents.

Property

Bytes

ReadOnlyMemory<byte> Bytes { get; } Source

Gets the reproducible package bytes. The caller writes these bytes to application-owned storage.

Property

PackageDigest

DurableRetentionDigest PackageDigest { get; } Source

Gets the package's canonical SHA-256 digest.

Property

RecordCount

int RecordCount { get; } Source

Gets the manifest-ordered record count.

Type

DurableRetentionMutationResult

Source

Reports a successful lifecycle command.

Property

ManifestId

DurableRetentionManifestId ManifestId { get; } Source

Gets the affected manifest.

Property

Outcome

DurableRetentionMutationOutcome Outcome { get; } Source

Gets whether the mutation was applied, duplicated, or found after purge.

Property

State

DurableRetentionManifestState State { get; } Source

Gets the projected lifecycle state after the command.

Property

LifecycleSequence

long LifecycleSequence { get; } Source

Gets the projected lifecycle sequence after the command.

Type

DurableRetentionMutationRequest

Source

Requests one idempotent, compare-and-swap retention lifecycle mutation.

Property

ScopeId

DurableScopeId ScopeId { get; } Source

Gets the application-authorized scope.

Property

ManifestId

DurableRetentionManifestId ManifestId { get; } Source

Gets the exact target manifest.

Property

CommandId

DurableCommandId CommandId { get; } Source

Gets the idempotent command identity.

Property

ActorId

string ActorId { get; } Source

Gets the privacy-safe authorized actor identity.

Property

ReasonCode

string ReasonCode { get; } Source

Gets the privacy-safe audit reason.

Property

ExpectedLifecycleSequence

long ExpectedLifecycleSequence { get; } Source

Gets the required current lifecycle sequence.

Property

Fingerprint

DurableCommandFingerprint Fingerprint { get; } Source

Gets the versioned semantic fingerprint.

Type

DurableRetentionRecordArchiveReceiptRequest

Source

Records an adopter assertion that it stored one DFA1 package externally.

Property

Receipt

DurableArchiveReceiptV1 Receipt { get; } Source

Gets the opaque external-archive assertion to record.

Type

DurableRetentionVerifyArchiveRequest

Source

Requests source-correspondence verification for a recorded archive receipt.

Type

DurableRetentionHoldRequest

Source

Requests an explicit hold placement or release on a verified retention manifest.

Property

PlaceHold

bool PlaceHold { get; } Source

Gets whether this command places rather than releases the hold.

Type

DurableRetentionPurgeRequest

Source

Requests the separately authorized, irreversible purge of a verified and unheld manifest.

Type

IDurableFlowRetentionClient

Source

Provides application-authorized verified retention lifecycle operations for one Flow at a time.

Remarks

The application owns authorization, retention cadence, external archive transport, encryption, availability, and compliance. This API never accepts a date-range delete, archive URI, arbitrary SQL, continuation token, or a multi-Flow manifest. Verification proves only that the claimed package corresponds to the frozen source set.

Method

AssessAsync

ValueTask<DurableOperationResult<DurableRetentionAssessment>> AssessAsync(DurableRetentionAssessmentRequest request, CancellationToken cancellationToken = default) Source

Assesses one bounded Flow closure without mutating source rows.

Method

CreateManifestAsync

ValueTask<DurableOperationResult<DurableRetentionManifestCreateResult>> CreateManifestAsync(DurableRetentionManifestCreateRequest request, CancellationToken cancellationToken = default) Source

Freezes a still-matching successful assessment as an immutable manifest.

Method

GetManifestAsync

ValueTask<DurableOperationResult<DurableRetentionManifest>> GetManifestAsync(DurableScopeId scopeId, DurableRetentionManifestId manifestId, CancellationToken cancellationToken = default) Source

Reads one scope-isolated manifest lifecycle projection.

Method

BuildArchivePackageAsync

ValueTask<DurableOperationResult<DurableArchivePackageV1>> BuildArchivePackageAsync(DurableScopeId scopeId, DurableRetentionManifestId manifestId, CancellationToken cancellationToken = default) Source

Builds a reproducible package from a still-matching immutable manifest without external I/O.

Method

RecordArchiveReceiptAsync

ValueTask<DurableOperationResult<DurableRetentionMutationResult>> RecordArchiveReceiptAsync(DurableRetentionRecordArchiveReceiptRequest request, CancellationToken cancellationToken = default) Source

Records an adopter-provided archive receipt; this does not verify external storage.

Method

VerifyArchiveAsync

ValueTask<DurableOperationResult<DurableRetentionMutationResult>> VerifyArchiveAsync(DurableRetentionVerifyArchiveRequest request, CancellationToken cancellationToken = default) Source

Rebuilds the source package and verifies source correspondence with the receipt.

Method

SetHoldAsync

ValueTask<DurableOperationResult<DurableRetentionMutationResult>> SetHoldAsync(DurableRetentionHoldRequest request, CancellationToken cancellationToken = default) Source

Places or releases an application-owned hold on a verified manifest.

Method

PurgeAsync

ValueTask<DurableOperationResult<DurableRetentionMutationResult>> PurgeAsync(DurableRetentionPurgeRequest request, CancellationToken cancellationToken = default) Source

Atomically records separate purge authorization and deletes only verified manifest-covered source rows.

Enum

DurableRetentionAssessmentStatus

Source

Classifies the safety of removing one exact Flow history source set.

Enum

DurableRetentionAssessmentReason

Source

Provides a privacy-safe, deterministic reason for a retention assessment.

Enum

DurableRetentionManifestState

Source

Represents the append-only lifecycle state projected for a frozen retention manifest.

Enum

DurableRetentionManifestCreateOutcome

Source

Identifies an idempotent manifest-create result.

Enum

DurableRetentionMutationOutcome

Source

Identifies an idempotent lifecycle mutation result.

Type

DurableClaimedWork

Source

Carries one provider claim across the storage-to-executor boundary.

Remarks

Providers create this only after a scoped, fenced claim succeeds. The claim is not authorization by itself; the provider must record the matching effect permit before invoking prepared work.

Method

ToExecutionContext

DurableWorkExecutionContext ToExecutionContext() Source

Creates the validated application execution context for this provider claim.

Property

ScopeId

DurableScopeId ScopeId { get; } Source

Gets the trusted owning scope.

Property

WorkId

DurableWorkId WorkId { get; } Source

Gets the immutable work aggregate identifier.

Property

ActivityId

string ActivityId { get; } Source

Gets the immutable provider-operation activity identifier.

Property

WorkName

string WorkName { get; } Source

Gets the registered work name.

Property

WorkVersion

string WorkVersion { get; } Source

Gets the registered work version.

Property

Payload

DurableEncodedPayload Payload { get; } Source

Gets the encoded work payload.

Property

ProviderSafety

DurableProviderSafety ProviderSafety { get; } Source

Gets the provider ambiguity policy snapshot.

Property

AttemptNumber

int AttemptNumber { get; } Source

Gets the monotonically increasing attempt number.

Property

LeaseGeneration

long LeaseGeneration { get; } Source

Gets the claim lease generation.

Property

ScopeGeneration

long ScopeGeneration { get; } Source

Gets the owning scope lifecycle generation.

Property

RuntimeEpoch

string RuntimeEpoch { get; } Source

Gets the out-of-band recovery epoch.

Type

DurablePreparedWorkInvocation

Source

Wraps already prepared application work for invocation after the provider commits its effect permit.

Method

InvokeAsync

ValueTask<DurableEncodedPayload> InvokeAsync(CancellationToken cancellationToken = default) Source

Invokes the prepared application executor and returns its encoded terminal result.

Type

DurableProviderWorkAdapter

Source

Adapts validated provider claims to adopter-owned work registrations.

Method

Prepare

DurablePreparedWorkInvocation Prepare(DurableWorkRegistration registration, IServiceProvider services, DurableClaimedWork claim) Source

Prepares an application executor without performing provider I/O.

Method

ReconcileAsync

ValueTask<DurableEncodedEffectReconciliation> ReconcileAsync(DurableWorkRegistration registration, IServiceProvider services, DurableClaimedWork claim, CancellationToken cancellationToken = default) Source

Runs the adopter-owned side-effect-free reconciler for a validated provider claim.