I'm not a fan of these ugly hashCode/equals implementations. It's harder to read and maintain than:

    return Objects.hashCode(id, isRunning, name, originalMetadata, primaryIp)

And using things like `Objects.equal(id, other.id)` in `equals()`.

But presuming this is auto-generated so no very strong feelings.