{"command":{"effect":"read","timeoutSeconds":30,"inputSchema":{"type":"object","description":"Keyset-paginated on an opaque cursor. Results are scoped to the authenticated team. Destroyed and failed sessions are omitted by default (matching the Cloud Console); pass `status=SESSION_STATUS_ALL` to list every session regardless of status, or an explicit status such as `status=SESSION_STATUS_FAILED` or `status=SESSION_STATUS_DESTROYED` to list only those.","properties":{"query":{"type":"object","properties":{"page_size":{"type":"integer","minimum":1,"maximum":200,"default":50,"examples":[50],"description":"Page size. Defaults to 50 when omitted or non-positive; values above 200 are clamped to 200 (not rejected)."},"page_token":{"type":"string","examples":[""],"description":"Opaque keyset cursor returned by the previous page. Empty starts from the beginning."},"status":{"$ref":"#/definitions/session_status","examples":["SESSION_STATUS_UNSPECIFIED"],"description":"Optional filter on session status. Empty / SESSION_STATUS_UNSPECIFIED means no explicit filter, which still hides destroyed and failed sessions by default; SESSION_STATUS_ALL opts out and returns every session regardless of status (no session is ever actually in this status; it only means something as a filter value here); any other explicit status overrides the default."},"name":{"type":"string","examples":["demo-agent"],"description":"Optional exact-name filter (case-insensitive). Returns the single live (non-terminal) session that currently holds this name for the caller's team, or an empty list if none does. Matches the live holder only, so historical terminal rows and reused names never make it ambiguous (per-team live-name uniqueness bounds it to at most one). This is how clients (doctl / Console) resolve a session name to its id; the {session_id} path stays UUID-only."},"search":{"type":"string","maxLength":64,"examples":["demo"],"description":"Optional case-insensitive substring filter on session name (contains), for callers that don't know the exact name (e.g. a UI search box). Unlike `name`, this may return zero, one, or many sessions, including terminal ones. Independent of `name`; at most 64 characters."}},"required":[],"additionalProperties":false}},"required":[],"additionalProperties":false,"definitions":{"session_status":{"type":"string","enum":["SESSION_STATUS_UNSPECIFIED","SESSION_STATUS_PROVISIONING","SESSION_STATUS_READY","SESSION_STATUS_DETACHED","SESSION_STATUS_DESTROYING","SESSION_STATUS_DESTROYED","SESSION_STATUS_FAILED","SESSION_STATUS_PAUSED","SESSION_STATUS_ALL","SESSION_STATUS_LOCKED"],"default":"SESSION_STATUS_UNSPECIFIED","description":"SessionStatus is the lifecycle state of the sandbox + agent pair. SESSION_STATUS_ALL is a ListSessions status-filter value only -- no session is ever actually in this status. SESSION_STATUS_LOCKED is reserved for internal use and never appears in an end-user-facing response.","examples":["SESSION_STATUS_UNSPECIFIED"]}}},"name":"ListSessions enumerates sessions for the caller's tenant.","id":"digitalocean.harness_list_sessions","example":{},"maxRequests":1,"summary":false}}