Table of Contents

Interface ISandboxProviderClient

Namespace
OpenShell
Assembly
OpenShell.Sdk.dll

Provider attachment and readiness for sandboxes, scoped to one workspace.

public interface ISandboxProviderClient

Methods

AttachAsync(string, string, SandboxProviderMutationOptions?, CancellationToken)

Attaches a provider to a sandbox. Pass the receipt to WaitAsync(ProviderMutationReceipt, TimeSpan, CancellationToken) to await installation.

ValueTask<AttachProviderResult> AttachAsync(string sandbox, string provider, SandboxProviderMutationOptions? options = null, CancellationToken cancellationToken = default)

Parameters

sandbox string
provider string
options SandboxProviderMutationOptions
cancellationToken CancellationToken

Returns

ValueTask<AttachProviderResult>

DetachAsync(string, string, SandboxProviderMutationOptions?, CancellationToken)

Detaches a provider from a sandbox. Revocation is complete only when the receipt reports Revoked.

ValueTask<DetachProviderResult> DetachAsync(string sandbox, string provider, SandboxProviderMutationOptions? options = null, CancellationToken cancellationToken = default)

Parameters

sandbox string
provider string
options SandboxProviderMutationOptions
cancellationToken CancellationToken

Returns

ValueTask<DetachProviderResult>

GetStatusAsync(ProviderMutationReceipt, CancellationToken)

Gets readiness for the exact authority a receipt names.

ValueTask<ProviderReadinessStatus> GetStatusAsync(ProviderMutationReceipt receipt, CancellationToken cancellationToken = default)

Parameters

receipt ProviderMutationReceipt
cancellationToken CancellationToken

Returns

ValueTask<ProviderReadinessStatus>

GetStatusAsync(string, string?, string?, CancellationToken)

Gets validated readiness for a provider on a sandbox. With receiptId it queries that immutable receipt; otherwise it reconstructs the current desired state. At least one of provider or receipt id is required.

ValueTask<ProviderReadinessStatus> GetStatusAsync(string sandbox, string? provider = null, string? receiptId = null, CancellationToken cancellationToken = default)

Parameters

sandbox string
provider string
receiptId string
cancellationToken CancellationToken

Returns

ValueTask<ProviderReadinessStatus>

List(string, ListOptions?)

Lists the providers attached to a sandbox lazily.

Pager<Provider> List(string sandbox, ListOptions? options = null)

Parameters

sandbox string
options ListOptions

Returns

Pager<Provider>

WaitAllAsync(IReadOnlyCollection<ProviderMutationReceipt>, TimeSpan, CancellationToken)

Waits for several receipts, for example TargetReceipts, under one total deadline.

ValueTask<IReadOnlyList<ProviderWaitResult>> WaitAllAsync(IReadOnlyCollection<ProviderMutationReceipt> receipts, TimeSpan timeout, CancellationToken cancellationToken = default)

Parameters

receipts IReadOnlyCollection<ProviderMutationReceipt>
timeout TimeSpan
cancellationToken CancellationToken

Returns

ValueTask<IReadOnlyList<ProviderWaitResult>>

WaitAsync(ProviderMutationReceipt, TimeSpan, CancellationToken)

Waits, bounded by timeout (greater than zero, at most one hour), for the exact authority a receipt names. Detach requires Revoked; attach and update require Ready. A later mutation yields Terminal, never success.

ValueTask<ProviderWaitResult> WaitAsync(ProviderMutationReceipt receipt, TimeSpan timeout, CancellationToken cancellationToken = default)

Parameters

receipt ProviderMutationReceipt
timeout TimeSpan
cancellationToken CancellationToken

Returns

ValueTask<ProviderWaitResult>

WaitAsync(ProviderReadinessStatus, TimeSpan, CancellationToken)

Continues a bounded wait from a status that was already observed; a later RPC failure cannot discard it.

ValueTask<ProviderWaitResult> WaitAsync(ProviderReadinessStatus status, TimeSpan timeout, CancellationToken cancellationToken = default)

Parameters

status ProviderReadinessStatus
timeout TimeSpan
cancellationToken CancellationToken

Returns

ValueTask<ProviderWaitResult>