hrobot 0.1.2

Unofficial Hetzner Robot API client
Documentation
# hrobot-rs [![Latest Version]][crates.io] [![Docs]][docs.rs]

[Latest Version]: https://img.shields.io/crates/v/hrobot
[crates.io]: https://crates.io/crates/hrobot
[Docs]: https://docs.rs/hrobot/badge.svg
[docs.rs]: https://docs.rs/hrobot

Hetzner Robot API Client library for Rust.

Uses the blocking Reqwest client and rustls under the hood.

**Disclaimer:** the authors are not associated with Hetzner (except as customers), and the crate is in no way endorsed or supported by Hetzner Online GmbH.

# API Endpoint Implementation Progress

* [Failover]https://robot.your-server.de/doc/webservice/en.html#failover: Not implemented.
*[Traffic]https://robot.your-server.de/doc/webservice/en.html#traffic: Not implemented.
*[Server Ordering]https://robot.your-server.de/doc/webservice/en.html#server-ordering: Not implemented. I'm not made of money!
*[Storage Box]https://robot.your-server.de/doc/webservice/en.html#storage-box: Not implemented.
* ⚠️ [Firewall]https://robot.your-server.de/doc/webservice/en.html#firewall
    * ✅ get & update firewall rules & configuration directly.
    * ❌ create, modify or delete firewall templates.
    * ❌ apply firewall templates.
* ⚠️ [IP]https://robot.your-server.de/doc/webservice/en.html#ip
    * ✅ get ip address information.
    * ✅ get mac address information.
    * ❌ update traffic warnings for IP.
    * ❌ modify or delete additional MAC-addresses.
* ⚠️ [Subnet]https://robot.your-server.de/doc/webservice/en.html#subnet
    * ✅ list & get subnets.
    * ❌ update traffic warnings for subnet.
    * ❌ get subnet MAC.
    * ❌ update subnet MAC.
    * ❌ delete subnet MAC.
*[vSwitch]https://robot.your-server.de/doc/webservice/en.html#vswitch: Not implemented.
*[Server]https://robot.your-server.de/doc/webservice/en.html#server: All functionality implemented.
*[Reset]https://robot.your-server.de/doc/webservice/en.html#reset: All functionality implemented.
*[Wake On Lan]https://robot.your-server.de/doc/webservice/en.html#wake-on-lan: All functionality implemented.
*[Boot Configuration]https://robot.your-server.de/doc/webservice/en.html#boot-configuration: All functionality implemented (but some untested due to costs of add-ons).
*[Reverse DNS]https://robot.your-server.de/doc/webservice/en.html#reverse-dns: All functionality implemented.
*[SSH Keys]https://robot.your-server.de/doc/webservice/en.html#ssh-keys: All functionality implemented.

# Testing
Testing relies on `$HROBOT_USERNAME` and `$HROBOT_PASSWORD` being defined in the environment, corresponding to a Hetzner WebService/app login.

Some of the tests which interact with the Hetzner API can be disruptive, and therefore any test which interacts with Hetzner is marked as `#[ignore]` just in case `cargo test` is accidentally run while the `HROBOT_USERNAME` and `HROBOT_PASSWORD` environment variables are available. To explicitly run these potentially disruptive tests, either use `cargo test -- --ignored` to run all of them, or run the test explicitly using `cargo test server::tests::list_servers -- --ignored`