---
title: KeepAwakeReport
description: What a finished keepalive did.
---

```python
@final
class KeepAwakeReport
```

What a finished keepalive did.

## Constructor

`KeepAwakeReport` declares no `__new__` or `__init__`, so it is not constructed directly: an instance comes back from another call in this package.

## Properties

### `elapsed_sec`

```python
elapsed_sec: float
```

Seconds from start to end.

### `end`

```python
end: str
```

Why it ended: `"stopped"`, `"idle"`, `"elapsed"`, or `"not-running"`.

### `last_busy`

```python
last_busy: bool | None
```

`busy` from the last answered poll, or `None` when none answered.

### `polls`

```python
polls: int
```

Health polls that answered.

## Special methods

### `__repr__`

```python
def __repr__() -> str
```

## Provenance

This page is generated from `bindings/microvms-py/microvms.pyi` by Griffe 2.3.0, run from `site/scripts/gen-reference.mjs` on every `pnpm run sync`, so an edit made here is overwritten by the next run.

To change the page, change the doc comment in the binding's Rust source, then regenerate the declarations with `mise run stubs`. `mise run stubs:check` fails when the committed file no longer matches the source.