Skip to content

ReasonersClient

relationalai.services.reasoners.client
ReasonersClient(
gateway: ReasonersGateway,
*,
config: Config | None = None,
execution_metrics: Any | None = None
)

Async-first reasoners client.

This client exposes a single set of async def methods (no *_async suffixes). Long-running lifecycle actions return a ReasonerOperation handle immediately.

ReasonersClient.aclose() -> None

Close the client (best-effort).

Returns:

  • None - Always returns None.
ReasonersClient.list(
*,
state: str | None = None,
reasoner_name: str | None = None,
reasoner_type: str | None = None,
reasoner_size: str | None = None,
created_by: str | None = None
) -> list[Reasoner]

List reasoners, optionally filtering by attributes.

Returns:

  • list[Reasoner] - Matching reasoners.
ReasonersClient.get(reasoner_type: str, reasoner_name: str) -> Reasoner | None

Get a reasoner by (type, name), returning None if not found.

Returns:

  • Reasoner | None - The reasoner, or None if not found.
ReasonersClient.create(
reasoner_type: str,
reasoner_name: str | None = None,
*,
reasoner_size: str | None = None,
auto_suspend_mins: int | None = None,
settings: dict[str, Any] | None = None
) -> ReasonerOperation

Create a reasoner and return an operation handle.

Returns:

  • ReasonerOperation - An operation handle you can await op.wait(...) on.
ReasonersClient.create_ready(
reasoner_type: str,
reasoner_name: str | None = None,
*,
reasoner_size: str | None = None,
auto_suspend_mins: int | None = None,
settings: dict[str, Any] | None = None,
timeout_s: int = 900
) -> Reasoner

Create a reasoner and block until it is READY.

Returns:

  • Reasoner - The created reasoner in READY state.
ReasonersClient.delete(reasoner_type: str, reasoner_name: str | None = None) -> None

Delete a reasoner.

Args: reasoner_type: Reasoner type (Logic, Prescriptive, Predictive). reasoner_name: Optional name (defaults to config/user-derived).

Returns:

  • None - Always returns None.
ReasonersClient.suspend(reasoner_type: str, reasoner_name: str | None = None) -> None

Suspend a reasoner.

Returns:

  • None - Always returns None.
ReasonersClient.resume(reasoner_type: str, reasoner_name: str | None = None) -> ReasonerOperation

Resume a reasoner and return an operation handle.

Returns:

  • ReasonerOperation - An operation handle you can await op.wait(...) on.
ReasonersClient.resume_ready(
reasoner_type: str, reasoner_name: str | None = None, *, timeout_s: int = 900
) -> Reasoner

Resume a reasoner and block until it is READY.

Returns:

  • Reasoner - The reasoner in READY state.
ReasonersClient.ensure(
reasoner_type: str,
reasoner_name: str | None = None,
*,
reasoner_size: str | None = None,
auto_suspend_mins: int | None = None,
settings: dict[str, Any] | None = None,
create: bool = True,
resume: bool = True,
timeout_s: int = 900
) -> ReasonerOperation

Ensure a reasoner exists and is READY, returning an operation handle.

This method requires a running event loop and schedules an internal task. Prefer await ensure_ready(...) when you just want the final Reasoner.

Returns:

  • ReasonerOperation - An operation handle representing the ensure workflow.
ReasonersClient.ensure_ready(
reasoner_type: str,
reasoner_name: str | None = None,
*,
reasoner_size: str | None = None,
auto_suspend_mins: int | None = None,
settings: dict[str, Any] | None = None,
create: bool = True,
resume: bool = True,
timeout_s: int = 900
) -> Reasoner

Ensure a reasoner exists and is READY, returning the Reasoner.

Returns:

  • Reasoner - The reasoner in READY state.
ReasonersClient.wait_until_ready(
reasoner_type: str, reasoner_name: str, *, timeout_s: float = 900
) -> Reasoner

Poll until the reasoner is READY (or raise on timeout/not-found).

Returns:

  • Reasoner - The reasoner in READY state.
ReasonersClient.sizes() -> list[str]

Return supported reasoner sizes for the configured backend.

Returns:

  • list[str] - Allowed size identifiers.
ReasonersClient.validate_size(size: str | None) -> tuple[bool, list[str]]

Validate a size, returning (is_valid, allowed_sizes).

Returns:

  • tuple[bool, list[str]] - A (is_valid, allowed_sizes) pair.
ReasonersClient.get_operation(operation_id: str) -> Operation

Fetch an operation by id.

Returns:

  • Operation - The operation status.
ReasonersClient.wait_for_operation(operation_id: str, *, timeout_s: int = 900) -> Operation

Wait for an operation to complete (or fail on timeout).

Returns:

  • Operation - The final operation status.