From 4caf3e67f437612de2f15af331fa852091432238 Mon Sep 17 00:00:00 2001
From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com>
Date: Fri, 26 Sep 2025 10:51:34 +0200
Subject: [PATCH] chore(deps): update dependency hcloud to v2.7.0 (#693)
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
Coming soon: The Renovate bot (GitHub App) will be renamed to Mend. PRs
from Renovate will soon appear from 'Mend'. Learn more
[here](https://redirect.github.com/renovatebot/renovate/discussions/37842).
This PR contains the following updates:
| Package | Change | Age | Confidence |
|---|---|---|---|
| [hcloud](https://redirect.github.com/hetznercloud/hcloud-python)
([changelog](https://redirect.github.com/hetznercloud/hcloud-python/blob/main/CHANGELOG.md))
| `2.6.0` -> `2.7.0` |
[](https://docs.renovatebot.com/merge-confidence/)
|
[](https://docs.renovatebot.com/merge-confidence/)
|
---
### Release Notes
hetznercloud/hcloud-python (hcloud)
###
[`v2.7.0`](https://redirect.github.com/hetznercloud/hcloud-python/blob/HEAD/CHANGELOG.md#v270)
[Compare
Source](https://redirect.github.com/hetznercloud/hcloud-python/compare/v2.6.0...v2.7.0)
[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
```
---
### Configuration
📅 **Schedule**: Branch creation - At any time (no schedule defined),
Automerge - At any time (no schedule defined).
🚦 **Automerge**: Disabled by config. Please merge this manually once you
are satisfied.
â™» **Rebasing**: Whenever PR becomes conflicted, or you tick the
rebase/retry checkbox.
🔕 **Ignore**: Close this PR and you won't be reminded about this update
again.
---
- [ ] If you want to rebase/retry this PR, check
this box
---
This PR was generated by [Mend Renovate](https://mend.io/renovate/).
View the [repository job
log](https://developer.mend.io/github/ansible-collections/hetzner.hcloud).
---------
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Co-authored-by: jo
---
.../module_utils/vendor/hcloud/_version.py | 2 +-
.../vendor/hcloud/server_types/__init__.py | 3 +-
.../vendor/hcloud/server_types/client.py | 25 +++++-
.../vendor/hcloud/server_types/domain.py | 82 ++++++++++++++++++-
scripts/vendor.py | 2 +-
5 files changed, 108 insertions(+), 6 deletions(-)
diff --git a/plugins/module_utils/vendor/hcloud/_version.py b/plugins/module_utils/vendor/hcloud/_version.py
index 206817e..c99e801 100644
--- a/plugins/module_utils/vendor/hcloud/_version.py
+++ b/plugins/module_utils/vendor/hcloud/_version.py
@@ -1,3 +1,3 @@
from __future__ import annotations
-__version__ = "2.6.0" # x-releaser-pleaser-version
+__version__ = "2.7.0" # x-releaser-pleaser-version
diff --git a/plugins/module_utils/vendor/hcloud/server_types/__init__.py b/plugins/module_utils/vendor/hcloud/server_types/__init__.py
index 2cdab17..6840e32 100644
--- a/plugins/module_utils/vendor/hcloud/server_types/__init__.py
+++ b/plugins/module_utils/vendor/hcloud/server_types/__init__.py
@@ -5,11 +5,12 @@ from .client import (
ServerTypesClient,
ServerTypesPageResult,
)
-from .domain import ServerType
+from .domain import ServerType, ServerTypeLocation
__all__ = [
"BoundServerType",
"ServerType",
+ "ServerTypeLocation",
"ServerTypesClient",
"ServerTypesPageResult",
]
diff --git a/plugins/module_utils/vendor/hcloud/server_types/client.py b/plugins/module_utils/vendor/hcloud/server_types/client.py
index 085b66f..bfa525c 100644
--- a/plugins/module_utils/vendor/hcloud/server_types/client.py
+++ b/plugins/module_utils/vendor/hcloud/server_types/client.py
@@ -3,7 +3,8 @@ from __future__ import annotations
from typing import Any, NamedTuple
from ..core import BoundModelBase, Meta, ResourceClientBase
-from .domain import ServerType
+from ..locations import BoundLocation
+from .domain import ServerType, ServerTypeLocation
class BoundServerType(BoundModelBase, ServerType):
@@ -11,6 +12,28 @@ class BoundServerType(BoundModelBase, ServerType):
model = ServerType
+ def __init__(
+ self,
+ client: ServerTypesClient,
+ data: dict,
+ complete: bool = True,
+ ):
+ raw = data.get("locations")
+ if raw is not None:
+ data["locations"] = [
+ ServerTypeLocation.from_dict(
+ {
+ "location": BoundLocation(
+ client._parent.locations, o, complete=False
+ ),
+ **o,
+ }
+ )
+ for o in raw
+ ]
+
+ super().__init__(client, data, complete)
+
class ServerTypesPageResult(NamedTuple):
server_types: list[BoundServerType]
diff --git a/plugins/module_utils/vendor/hcloud/server_types/domain.py b/plugins/module_utils/vendor/hcloud/server_types/domain.py
index ad5ca4b..ff9e3fd 100644
--- a/plugins/module_utils/vendor/hcloud/server_types/domain.py
+++ b/plugins/module_utils/vendor/hcloud/server_types/domain.py
@@ -4,6 +4,7 @@ import warnings
from ..core import BaseDomain, DomainIdentityMixin
from ..deprecation import DeprecationInfo
+from ..locations import BoundLocation
class ServerType(BaseDomain, DomainIdentityMixin):
@@ -38,6 +39,7 @@ class ServerType(BaseDomain, DomainIdentityMixin):
deprecated. If it has a value, it is considered deprecated.
:param included_traffic: int
Free traffic per month in bytes
+ :param locations: Supported Location of the Server Type.
"""
__properties__ = (
@@ -52,18 +54,22 @@ class ServerType(BaseDomain, DomainIdentityMixin):
"storage_type",
"cpu_type",
"architecture",
- "deprecated",
- "deprecation",
+ "locations",
)
__api_properties__ = (
*__properties__,
+ "deprecated",
+ "deprecation",
"included_traffic",
)
__slots__ = (
*__properties__,
+ "_deprecated",
+ "_deprecation",
"_included_traffic",
)
+ # pylint: disable=too-many-locals
def __init__(
self,
id: int | None = None,
@@ -80,6 +86,7 @@ class ServerType(BaseDomain, DomainIdentityMixin):
deprecated: bool | None = None,
deprecation: dict | None = None,
included_traffic: int | None = None,
+ locations: list[ServerTypeLocation] | None = None,
):
self.id = id
self.name = name
@@ -92,12 +99,58 @@ class ServerType(BaseDomain, DomainIdentityMixin):
self.storage_type = storage_type
self.cpu_type = cpu_type
self.architecture = architecture
+ self.locations = locations
+
self.deprecated = deprecated
self.deprecation = (
DeprecationInfo.from_dict(deprecation) if deprecation is not None else None
)
self.included_traffic = included_traffic
+ @property
+ def deprecated(self) -> bool | None:
+ """
+ .. deprecated:: 2.6.0
+ The 'deprecated' property is deprecated and will gradually be phased starting 24 September 2025.
+ Please refer to the '.locations[].deprecation' property instead.
+
+ See https://docs.hetzner.cloud/changelog#2025-09-24-per-location-server-types.
+ """
+ warnings.warn(
+ "The 'deprecated' property is deprecated and will gradually be phased starting 24 September 2025. "
+ "Please refer to the '.locations[].deprecation' property instead. "
+ "See https://docs.hetzner.cloud/changelog#2025-09-24-per-location-server-types",
+ DeprecationWarning,
+ stacklevel=2,
+ )
+ return self._deprecated
+
+ @deprecated.setter
+ def deprecated(self, value: bool | None) -> None:
+ self._deprecated = value
+
+ @property
+ def deprecation(self) -> DeprecationInfo | None:
+ """
+ .. deprecated:: 2.6.0
+ The 'deprecation' property is deprecated and will gradually be phased starting 24 September 2025.
+ Please refer to the '.locations[].deprecation' property instead.
+
+ See https://docs.hetzner.cloud/changelog#2025-09-24-per-location-server-types.
+ """
+ warnings.warn(
+ "The 'deprecation' property is deprecated and will gradually be phased starting 24 September 2025. "
+ "Please refer to the '.locations[].deprecation' property instead. "
+ "See https://docs.hetzner.cloud/changelog#2025-09-24-per-location-server-types",
+ DeprecationWarning,
+ stacklevel=2,
+ )
+ return self._deprecation
+
+ @deprecation.setter
+ def deprecation(self, value: DeprecationInfo | None) -> None:
+ self._deprecation = value
+
@property
def included_traffic(self) -> int | None:
"""
@@ -119,3 +172,28 @@ class ServerType(BaseDomain, DomainIdentityMixin):
@included_traffic.setter
def included_traffic(self, value: int | None) -> None:
self._included_traffic = value
+
+
+class ServerTypeLocation(BaseDomain):
+ """Server Type Location Domain
+
+ :param location: Location of the Server Type.
+ :param deprecation: Wether the Server Type is deprecated in this Location.
+ """
+
+ __api_properties__ = (
+ "location",
+ "deprecation",
+ )
+ __slots__ = __api_properties__
+
+ def __init__(
+ self,
+ *,
+ location: BoundLocation,
+ deprecation: dict | None,
+ ):
+ self.location = location
+ self.deprecation = (
+ DeprecationInfo.from_dict(deprecation) if deprecation is not None else None
+ )
diff --git a/scripts/vendor.py b/scripts/vendor.py
index 5e70c30..ee29974 100755
--- a/scripts/vendor.py
+++ b/scripts/vendor.py
@@ -22,7 +22,7 @@ from textwrap import dedent
logger = logging.getLogger("vendor")
HCLOUD_SOURCE_URL = "https://github.com/hetznercloud/hcloud-python"
-HCLOUD_VERSION = "v2.6.0"
+HCLOUD_VERSION = "v2.7.0"
HCLOUD_VENDOR_PATH = "plugins/module_utils/vendor/hcloud"