# Node Notification

The `NodeNotificationEvent` is used for self-monitoring of the Hetzner servers (nodes) in the Cloud.

### Methods

1. **`getNodeId()`** Returns the ID of the node.
2. **`getState()`** Returns the state of the node.

{% code title="# Available node states" %}

```java
REQUESTED, CONNECTED, DISCONNECTED
```

{% endcode %}

### Code example

```java
@Eventable
public void handle(NodeNotificationEvent event) {
    String nodeId = event.getNodeId().substring(0, 5);

    switch (event.getState()) {
        case CONNECTED -> broadcast("Node %s has been connected".formatted(nodeId));
        case DISCONNECTED -> broadcast("Node %s has been disconnected".formatted(nodeId));
        case REQUESTED -> broadcast("A new node server (%s) has been requested".formatted(event.getNodeId()));
    }
}
```

{% hint style="info" %}
When the status is **REQUESTED**, the Node ID is the ID of the Hetzner server, for example, *cpx31*
{% endhint %}
