← API reference
CANONICAL TYPE REFERENCE

StorageBackendOutput

A configured storage destination for a tenant (archives, transfers, folder bindings). Credentials are never returned; each backend kind's block exposes a hasCredentials flag instead.

TypeID of this storage backend (sbk_ prefix, e.g. "sbk_01K…").

TypeID of the tenant that owns this backend (ten_ prefix). Backends are tenant-scoped; every read and mutation is filtered by the caller's tenant.

nameString!

Human-readable name for the backend, unique-ish per tenant only by convention.

Free-text note about the backend; null when the operator left it blank.

How this backend connects. __typename names the protocol — there is no separate kind field to contradict it. Credentials never appear here; the members report whether one is set and when it last changed.

Whether the backend's stored credentials are usable right now. Only OAuth backends ever leave CONNECTED — either while a draft awaits its first consent, or after a refresh token is revoked/expires.

Why the backend needs reauthorizing (e.g. "authorization pending"). Non-null only when status is NEEDS_REAUTHORIZATION, and even then may be null if no reason was recorded.

createdAtString!

ISO-8601 timestamp of when the backend row was first created.

updatedAtString!

ISO-8601 timestamp of the last change to the backend — including a config or credential change, not just a rename.

View exact SDL
"""
A configured storage destination for a tenant (archives, transfers, folder bindings). Credentials are never returned; each backend kind's block exposes a hasCredentials flag instead.
"""
type StorageBackendOutput @iac_resource(name: "storage_backend") @iac_ops(create: "createStorageBackend", read: "getStorageBackend", update: "updateStorageBackend", delete: "deleteStorageBackend") {
  """TypeID of this storage backend (`sbk_` prefix, e.g. "sbk_01K…")."""
  id: StorageBackendID! @iac_identity(assignedBy: SERVER) @iac_computed
  """
  TypeID of the tenant that owns this backend (`ten_` prefix). Backends are tenant-scoped; every read and mutation is filtered by the caller's tenant.
  """
  tenantId: TenantID! @iac_computed
  """
  Human-readable name for the backend, unique-ish per tenant only by convention.
  """
  name: String!
  """
  Free-text note about the backend; null when the operator left it blank.
  """
  description: String
  """
  How this backend connects. `__typename` names the protocol — there is no separate `kind` field to contradict it. Credentials never appear here; the members report whether one is set and when it last changed.
  """
  config: StorageBackendConfig!
  """
  Whether the backend's stored credentials are usable right now. Only OAuth backends ever leave CONNECTED — either while a draft awaits its first consent, or after a refresh token is revoked/expires.
  """
  status: StorageBackendConnectionStatus! @iac_computed
  """
  Why the backend needs reauthorizing (e.g. "authorization pending"). Non-null only when status is NEEDS_REAUTHORIZATION, and even then may be null if no reason was recorded.
  """
  reauthorizationReason: String @iac_computed
  """ISO-8601 timestamp of when the backend row was first created."""
  createdAt: String! @iac_computed
  """
  ISO-8601 timestamp of the last change to the backend — including a config or credential change, not just a rename.
  """
  updatedAt: String! @iac_computed
}

One stable address across all schema views. Follow a field’s type to explore connections between domains.