# Events

Platform events are an experimental feature, enabled for select clients and sent through RabbitMQ. Our platform generates all of the events described below at different points within the different services of the platform allowing clients to track what is happening with application instances, VMs and other components. We are adding more events and making changes over time, to eventually create a public events system for everyone, published in several ways, e.g. RabbitMQ, Web Sockets, Webhooks, etc.

If you are interested in taking part in this test, please contact us via the usual means of communication.

## Service API

### Event Group: Session

| Event name                   | Example message |
| ---------------------------- | --------------- |
| LoginFailedAlreadyLoggedIn   |                 |
| LoginFailedIncorrectPassword |                 |
| LoginFailedInvalidForm       |                 |
| LoginFailedIPNotWhitelisted  |                 |
| LoginFailedOTPExpired        |                 |
| LoginFailedOTPInvalid        |                 |
| LoginFailedOTPInvalidForm    |                 |
| LoginFailedTooManyRequests   |                 |
| LoginFailedUserNotFound      |                 |
| LoginSuccessful              |                 |
| LoginSuccessfulOTP           |                 |
| LogoutSuccessful             |                 |

## Service API

### Event Group: User

| Event name                            | Example message |
| ------------------------------------- | --------------- |
| EmailChangeRequested                  |                 |
| EmailChangeRequestedResend            |                 |
| EmailChangeRequestFailedEmailConflict |                 |
| EmailChangeRequestFailedWrongPassword |                 |
| EmailChangeSuccessful                 |                 |
| PasswordChangeFailedTooManyRequests   |                 |
| PasswordChangeFailedWrongPassword     |                 |
| PasswordChangeSuccessful              |                 |
| PasswordResetRequested                |                 |
| PasswordResetRequestedUnknownUser     |                 |

## Service ha-vmmanager

### Event Group: VM (1)

| Event name  | Example message              |
| ----------- | ---------------------------- |
| VmCreate    | VM create started            |
| VmCreated   | VM is created successfully   |
| VmDestroy   | VM destroy started           |
| VmDestroyed | VM is destroyed successfully |
| VmStarted   | VM is started successfully   |
| VmStopped   | VM is stopped successfully   |

### Event Group: VM (2)

| Event name | Example message                                                                                   |
| ---------- | ------------------------------------------------------------------------------------------------- |
| 19001      | Instance quota has been reached / exceeded                                                        |
| 19015      | Invalid key/pair name provided                                                                    |
| 19014      | The instance configuration is not supported, check instance types, regions, and operating systems |
| 19002      | Instance zone resource pool exhausted                                                             |

### Event Group: VM (3)

| Event name          | Example message          |
| ------------------- | ------------------------ |
| UNDEFINED\_ERROR    | *variable error message* |
| RESOURCE\_EXHAUSTED | *variable error message* |
| QUOTA\_EXCEEDED     | *variable error message* |

## Service ha-application-instance-manager

### Event Group: AIM

| Event name                   | Example message                                                                              |
| ---------------------------- | -------------------------------------------------------------------------------------------- |
| AIMCreate                    | Application instance create                                                                  |
| AIMDeployed                  | Application instance is deployed                                                             |
| AIMStarted                   | Application instance couldn't be started because already inactive (0)                        |
| AIMCrashed                   | Application instance is crashed                                                              |
| AIMStopped                   | Application instance is stopped                                                              |
| AIMDestroy                   | Application instance delete                                                                  |
| AIMAllocated                 | Application instance is allocated.                                                           |
| AIMAllocatedArcus            | Application instance is allocated by Arcus.                                                  |
| AIMOnline                    | Application instance was allocated and is now online again after match conclusion.           |
| AIMOnlineArcus               | Application instance is put in online state by Arcus. An allocated match may have concluded. |
| DependencyInstallerSuccess   | Dependency Installer is stopped.                                                             |
| DependencyUninstallerSuccess | Dependency Uninstaller is stopped.                                                           |
| DependencyInstallerError     | Dependency Installer failed - retrying.                                                      |
| DependencyUninstallerError   | Dependency Uninstaller failed - retrying.                                                    |
| Downloading                  | Application instance is downloading (progress).                                              |
| Downloaded                   | Application instance is downloaded.                                                          |

## Service ha-application-event

### Event Group: LIVESTATE

| Event name | Example message    |
| ---------- | ------------------ |
| livestate  | *variable message* |

## Service ha-error

### Event Group: Arcus

| Event name | Example message |
| ---------- | --------------- |
| ?          | ?               |


---

# Agent Instructions: Querying This Documentation

If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter:

```
GET https://docs.i3d.net/game-hosting/events.md?ask=<question>
```

The question should be specific, self-contained, and written in natural language.
The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
