Skip to content

Tags: hetznercloud/hcloud-python

Tags

v2.13.0

Toggle v2.13.0's commit message

Verified

This commit was created on GitHub.com and signed with GitHub’s verified signature.
chore(main): release v2.13.0 (#610)

<!-- section-start changelog -->
### Features

- add per primary ip actions list operations (#608)
- deprecate datacenter in `primary ips` and `servers` (#609)

<!-- section-end changelog -->

---

<details>
<summary><h4>PR by <a
href="https://github.com/apricote/releaser-pleaser">releaser-pleaser</a>
🤖</h4></summary>

If you want to modify the proposed release, add you overrides here. You
can learn more about the options in the docs.

## Release Notes

### Prefix / Start

This will be added to the start of the release notes.

~~~~rp-prefix
~~~~

### Suffix / End

This will be added to the end of the release notes.

~~~~rp-suffix
~~~~

</details>

Co-authored-by: Hetzner Cloud Bot <>

v2.12.0

Toggle v2.12.0's commit message

Verified

This commit was created on GitHub.com and signed with GitHub’s verified signature.
chore(main): release v2.12.0 (#599)

### Storage Box API Experimental

This release adds support for the [Storage Box
API](https://docs.hetzner.cloud/reference/hetzner#storage-boxes).

The Storage Box integration will be introduced as an **experimental**
feature. This experimental phase is expected to last at least until **12
January 2026**. During this period, upcoming minor releases of the
project may include breaking changes to features related to Storage
Boxes.

This release includes all changes from the recent [Storage Box API
changelog](https://docs.hetzner.cloud/changelog#2025-10-21-storage-box-api-update)
entry.

#### Examples

```python
response = client.storage_boxes.create(
    name="string",
    location=Location(name="fsn1"),
    storage_box_type=StorageBoxType(name="bx11"),
    labels={
        "environment": "prod",
        "example.com/my": "label",
        "just-a-key": "",
    },
    password="my-password",
    access_settings=StorageBoxAccessSettings(
        reachable_externally=False,
        samba_enabled=False,
        ssh_enabled=False,
        webdav_enabled=False,
        zfs_enabled=False,
    ),
    ssh_keys=[SSHKey(public_key="ssh-rsa AAAjjk76kgf...Xt")],
)

response.action.wait_until_finished()

storage_box = response.storage_box
```

### Features

- add update rrset records action to zone client (#597)
- add support for Storage Boxes (#524)

v2.11.1

Toggle v2.11.1's commit message

Verified

This commit was created on GitHub.com and signed with GitHub’s verified signature.
chore(main): release v2.11.1 (#594)

<!-- section-start changelog -->
### Bug Fixes

- support reloading sub resource bound models (#590)

<!-- section-end changelog -->

---

<details>
<summary><h4>PR by <a
href="https://github.com/apricote/releaser-pleaser">releaser-pleaser</a>
🤖</h4></summary>

If you want to modify the proposed release, add you overrides here. You
can learn more about the options in the docs.

## Release Notes

### Prefix / Start

This will be added to the start of the release notes.

~~~~rp-prefix
~~~~

### Suffix / End

This will be added to the end of the release notes.

~~~~rp-suffix
~~~~

</details>

Co-authored-by: Hetzner Cloud Bot <>

v2.11.0

Toggle v2.11.0's commit message

Verified

This commit was created on GitHub.com and signed with GitHub’s verified signature.
chore(main): release v2.11.0 (#585)

<!-- section-start changelog -->
### DNS API is now generally available

The DNS API is now generally available, as well as support for features
in this project that are related to the DNS API.

To migrate existing zones to the new DNS API, see the [DNS migration
guide](https://docs.hetzner.com/networking/dns/migration-to-hetzner-console/process).

See the
[changelog](https://docs.hetzner.cloud/changelog#2025-11-10-dns-ga) for
more details.

### Features

- DNS support is now generally available (#581)

<!-- section-end changelog -->

---

<details>
<summary><h4>PR by <a
href="https://github.com/apricote/releaser-pleaser">releaser-pleaser</a>
🤖</h4></summary>

If you want to modify the proposed release, add you overrides here. You
can learn more about the options in the docs.

## Release Notes

### Prefix / Start

This will be added to the start of the release notes.

~~~~rp-prefix
### DNS API is now generally available

The DNS API is now generally available, as well as support for features
in this project that are related to the DNS API.

To migrate existing zones to the new DNS API, see the [DNS migration
guide](https://docs.hetzner.com/networking/dns/migration-to-hetzner-console/process).

See the
[changelog](https://docs.hetzner.cloud/changelog#2025-11-10-dns-ga) for
more details.
~~~~

### Suffix / End

This will be added to the end of the release notes.

~~~~rp-suffix
~~~~

</details>

Co-authored-by: Hetzner Cloud Bot <>

v2.10.0

Toggle v2.10.0's commit message

Verified

This commit was created on GitHub.com and signed with GitHub’s verified signature.
chore(main): release v2.10.0 (#579)

<!-- section-start changelog -->
### Features

- **exp**: add zone format txt record helper (#578)
- add server and load balancer `private_net_for` helper method (#580)

<!-- section-end changelog -->

---

<details>
<summary><h4>PR by <a
href="https://github.com/apricote/releaser-pleaser">releaser-pleaser</a>
🤖</h4></summary>

If you want to modify the proposed release, add you overrides here. You
can learn more about the options in the docs.

## Release Notes

### Prefix / Start

This will be added to the start of the release notes.

~~~~rp-prefix
~~~~

### Suffix / End

This will be added to the end of the release notes.

~~~~rp-suffix
~~~~

</details>

Co-authored-by: Hetzner Cloud Bot <>

v2.9.0

Toggle v2.9.0's commit message

Verified

This commit was created on GitHub.com and signed with GitHub’s verified signature.
chore(main): release v2.9.0 (#570)

<!-- section-start changelog -->
### Features

- support python 3.14 (#566)
- drop support for python 3.9 (#574)

<!-- section-end changelog -->

---

<details>
<summary><h4>PR by <a
href="https://github.com/apricote/releaser-pleaser">releaser-pleaser</a>
🤖</h4></summary>

If you want to modify the proposed release, add you overrides here. You
can learn more about the options in the docs.

## Release Notes

### Prefix / Start

This will be added to the start of the release notes.

~~~~rp-prefix
~~~~

### Suffix / End

This will be added to the end of the release notes.

~~~~rp-suffix
~~~~

</details>

Co-authored-by: Hetzner Cloud Bot <>

v2.8.0

Toggle v2.8.0's commit message

Verified

This commit was created on GitHub.com and signed with GitHub’s verified signature.
chore(main): release v2.8.0 (#563)

<!-- section-start changelog -->
### DNS API Beta

This release adds support for the new [DNS
API](https://docs.hetzner.cloud/reference/cloud#dns).

The DNS API is currently in **beta**, which will likely end on 10
November 2025. After the beta ended, it will no longer be possible to
create new zones in the old DNS system. See the [DNS Beta
FAQ](https://docs.hetzner.com/networking/dns/faq/beta) for more details.

Future minor releases of this project may include breaking changes for
features that are related to the DNS API.

See the [DNS API Beta
changelog](https://docs.hetzner.cloud/changelog#2025-10-07-dns-beta) for
more details.

**Examples**

```py
resp = client.zones.create(
    name="example.com",
    mode="primary",
    labels={"key": "value"},
    rrsets=[
        ZoneRRSet(
            name="@",
            type="A",
            records=[
                ZoneRecord(value="201.180.75.2", comment="server1")
            ],
        )
    ],
)

resp.action.wait_until_finished()
zone = resp.zone
```

### Features

- add new `ip_range` param to load balancer `attach_to_network` (#562)
- add new `ip_range` param to server `attach_to_network` (#561)
- support the new DNS API (#568)

### Bug Fixes

- source_ips property is optional in firewall rule (#567)

<!-- section-end changelog -->

---

<details>
<summary><h4>PR by <a
href="https://github.com/apricote/releaser-pleaser">releaser-pleaser</a>
🤖</h4></summary>

If you want to modify the proposed release, add you overrides here. You
can learn more about the options in the docs.

## Release Notes

### Prefix / Start

This will be added to the start of the release notes.

~~~~rp-prefix
### DNS API Beta

This release adds support for the new [DNS
API](https://docs.hetzner.cloud/reference/cloud#dns).

The DNS API is currently in **beta**, which will likely end on 10
November 2025. After the beta ended, it will no longer be possible to
create new zones in the old DNS system. See the [DNS Beta
FAQ](https://docs.hetzner.com/networking/dns/faq/beta) for more details.

Future minor releases of this project may include breaking changes for
features that are related to the DNS API.

See the [DNS API Beta
changelog](https://docs.hetzner.cloud/changelog#2025-10-07-dns-beta) for
more details.

**Examples**

```py
resp = client.zones.create(
    name="example.com",
    mode="primary",
    labels={"key": "value"},
    rrsets=[
        ZoneRRSet(
            name="@",
            type="A",
            records=[
                ZoneRecord(value="201.180.75.2", comment="server1")
            ],
        )
    ],
)

resp.action.wait_until_finished()
zone = resp.zone
```
~~~~

### Suffix / End

This will be added to the end of the release notes.

~~~~rp-suffix
~~~~

</details>

Co-authored-by: Hetzner Cloud Bot <>

v2.7.0

Toggle v2.7.0's commit message

Verified

This commit was created on GitHub.com and signed with GitHub’s verified signature.
chore(main): release v2.7.0 (#559)

<!-- section-start changelog -->
[Server Types](https://docs.hetzner.cloud/reference/cloud#server-types)
now depend on
[Locations](https://docs.hetzner.cloud/reference/cloud#locations).

- We added a new `locations` property to the [Server
Types](https://docs.hetzner.cloud/reference/cloud#server-types)
resource. The new property defines a list of supported
[Locations](https://docs.hetzner.cloud/reference/cloud#locations) and
additional per
[Locations](https://docs.hetzner.cloud/reference/cloud#locations)
details such as deprecations information.

- We deprecated the `deprecation` property from the [Server
Types](https://docs.hetzner.cloud/reference/cloud#server-types)
resource. The property will gradually be phased out as per
[Locations](https://docs.hetzner.cloud/reference/cloud#locations)
deprecations are being announced. Please use the new per
[Locations](https://docs.hetzner.cloud/reference/cloud#locations)
deprecation information instead.

See our
[changelog](https://docs.hetzner.cloud/changelog#2025-09-24-per-location-server-types)
for more details.

**Upgrading**

```py
# Before
def validate_server_type(server_type: ServerType):
    if server_type.deprecation is not None:
        raise ValueError(f"server type {server_type.name} is deprecated")
```

```py
# After
def validate_server_type(server_type: ServerType, location: Location):
    found = [o for o in server_type.locations if location.name == o.location.name]
    if not found:
        raise ValueError(
            f"server type {server_type.name} is not supported in location {location.name}"
        )

    server_type_location = found[0]

    if server_type_location.deprecation is not None:
        raise ValueError(
            f"server type {server_type.name} is deprecated in location {location.name}"
        )
```

### Features

- per location server types (#558)

<!-- section-end changelog -->

---

<details>
<summary><h4>PR by <a
href="https://github.com/apricote/releaser-pleaser">releaser-pleaser</a>
🤖</h4></summary>

If you want to modify the proposed release, add you overrides here. You
can learn more about the options in the docs.

## Release Notes

### Prefix / Start

This will be added to the start of the release notes.

~~~~rp-prefix
[Server Types](https://docs.hetzner.cloud/reference/cloud#server-types)
now depend on
[Locations](https://docs.hetzner.cloud/reference/cloud#locations).

- We added a new `locations` property to the [Server
Types](https://docs.hetzner.cloud/reference/cloud#server-types)
resource. The new property defines a list of supported
[Locations](https://docs.hetzner.cloud/reference/cloud#locations) and
additional per
[Locations](https://docs.hetzner.cloud/reference/cloud#locations)
details such as deprecations information.

- We deprecated the `deprecation` property from the [Server
Types](https://docs.hetzner.cloud/reference/cloud#server-types)
resource. The property will gradually be phased out as per
[Locations](https://docs.hetzner.cloud/reference/cloud#locations)
deprecations are being announced. Please use the new per
[Locations](https://docs.hetzner.cloud/reference/cloud#locations)
deprecation information instead.

See our
[changelog](https://docs.hetzner.cloud/changelog#2025-09-24-per-location-server-types)
for more details.

**Upgrading**

```py
# Before
def validate_server_type(server_type: ServerType):
    if server_type.deprecation is not None:
        raise ValueError(f"server type {server_type.name} is deprecated")
```

```py
# After
def validate_server_type(server_type: ServerType, location: Location):
    found = [o for o in server_type.locations if location.name == o.location.name]
    if not found:
        raise ValueError(
            f"server type {server_type.name} is not supported in location {location.name}"
        )

    server_type_location = found[0]

    if server_type_location.deprecation is not None:
        raise ValueError(
            f"server type {server_type.name} is deprecated in location {location.name}"
        )
```
~~~~

### Suffix / End

This will be added to the end of the release notes.

~~~~rp-suffix
~~~~

</details>

Co-authored-by: Hetzner Cloud Bot <>

v2.6.0

Toggle v2.6.0's commit message

Verified

This commit was created on GitHub.com and signed with GitHub’s verified signature.
chore(main): release v2.6.0 (#553)

<!-- section-start changelog -->
### Features

- add category property to server type (#549)

### Bug Fixes

- rename `ClientEntityBase` to `ResourceClientBase`  (#532)

<!-- section-end changelog -->

---

<details>
<summary><h4>PR by <a
href="https://github.com/apricote/releaser-pleaser">releaser-pleaser</a>
🤖</h4></summary>

If you want to modify the proposed release, add you overrides here. You
can learn more about the options in the docs.

## Release Notes

### Prefix / Start

This will be added to the start of the release notes.

```rp-prefix
```

### Suffix / End

This will be added to the end of the release notes.

```rp-suffix
```

</details>

---------

Co-authored-by: Hetzner Cloud Bot <>
Co-authored-by: jo <ljonas@riseup.net>

v2.5.4

Toggle v2.5.4's commit message

Verified

This commit was created on GitHub.com and signed with GitHub’s verified signature.
chore(main): release v2.5.4 (#512)

<!-- section-start changelog -->
### Bug Fixes

- typo in `LoadBalancerHealthCheckHttp` class name (#511)
- equality for some domain classes (#510)
- use valid license identifier (SPDX) (#514)

<!-- section-end changelog -->

---

<details>
<summary><h4>PR by <a
href="https://github.com/apricote/releaser-pleaser">releaser-pleaser</a>
🤖</h4></summary>

If you want to modify the proposed release, add you overrides here. You
can learn more about the options in the docs.

## Release Notes

### Prefix / Start

This will be added to the start of the release notes.

```rp-prefix
```

### Suffix / End

This will be added to the end of the release notes.

```rp-suffix
```

</details>

Co-authored-by: Hetzner Cloud Bot <>