From 192139e000480174bf20391f0048659e8adf0ee6 Mon Sep 17 00:00:00 2001
From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com>
Date: Thu, 10 Jul 2025 10:31:55 +0200
Subject: [PATCH] chore(deps): update dependency hcloud to v2.5.4 (#668)
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
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.5.3` -> `2.5.4` |
[](https://docs.renovatebot.com/merge-confidence/)
|
[](https://docs.renovatebot.com/merge-confidence/)
|
---
### Release Notes
hetznercloud/hcloud-python (hcloud)
###
[`v2.5.4`](https://redirect.github.com/hetznercloud/hcloud-python/blob/HEAD/CHANGELOG.md#v254)
[Compare
Source](https://redirect.github.com/hetznercloud/hcloud-python/compare/v2.5.3...v2.5.4)
##### Bug Fixes
- typo in `LoadBalancerHealthCheckHttp` class name
([#511](https://redirect.github.com/hetznercloud/hcloud-python/issues/511))
- equality for some domain classes
([#510](https://redirect.github.com/hetznercloud/hcloud-python/issues/510))
- use valid license identifier (SPDX)
([#514](https://redirect.github.com/hetznercloud/hcloud-python/issues/514))
---
### Configuration
📅 **Schedule**: Branch creation - At any time (no schedule defined),
Automerge - At any time (no schedule defined).
🚦 **Automerge**: Enabled.
â™» **Rebasing**: Whenever PR is behind base branch, 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/certificates/domain.py | 13 +++
.../vendor/hcloud/load_balancers/__init__.py | 2 +
.../vendor/hcloud/load_balancers/client.py | 4 +-
.../vendor/hcloud/load_balancers/domain.py | 87 ++++++++++++++++++-
scripts/vendor.py | 2 +-
6 files changed, 102 insertions(+), 8 deletions(-)
diff --git a/plugins/module_utils/vendor/hcloud/_version.py b/plugins/module_utils/vendor/hcloud/_version.py
index 7252467..b8c5f78 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.5.3" # x-releaser-pleaser-version
+__version__ = "2.5.4" # x-releaser-pleaser-version
diff --git a/plugins/module_utils/vendor/hcloud/certificates/domain.py b/plugins/module_utils/vendor/hcloud/certificates/domain.py
index 390af07..67daa8e 100644
--- a/plugins/module_utils/vendor/hcloud/certificates/domain.py
+++ b/plugins/module_utils/vendor/hcloud/certificates/domain.py
@@ -90,6 +90,13 @@ class ManagedCertificateStatus(BaseDomain):
If issuance or renewal reports failure, this property contains information about what happened
"""
+ __api_properties__ = (
+ "issuance",
+ "renewal",
+ "error",
+ )
+ __slots__ = __api_properties__
+
def __init__(
self,
issuance: str | None = None,
@@ -110,6 +117,12 @@ class ManagedCertificateError(BaseDomain):
Message detailing the error
"""
+ __api_properties__ = (
+ "code",
+ "message",
+ )
+ __slots__ = __api_properties__
+
def __init__(self, code: str | None = None, message: str | None = None):
self.code = code
self.message = message
diff --git a/plugins/module_utils/vendor/hcloud/load_balancers/__init__.py b/plugins/module_utils/vendor/hcloud/load_balancers/__init__.py
index 3374516..f84c7e2 100644
--- a/plugins/module_utils/vendor/hcloud/load_balancers/__init__.py
+++ b/plugins/module_utils/vendor/hcloud/load_balancers/__init__.py
@@ -14,6 +14,7 @@ from .domain import (
LoadBalancerAlgorithm,
LoadBalancerHealtCheckHttp,
LoadBalancerHealthCheck,
+ LoadBalancerHealthCheckHttp,
LoadBalancerService,
LoadBalancerServiceHttp,
LoadBalancerTarget,
@@ -33,6 +34,7 @@ __all__ = [
"LoadBalancer",
"LoadBalancerAlgorithm",
"LoadBalancerHealtCheckHttp",
+ "LoadBalancerHealthCheckHttp",
"LoadBalancerHealthCheck",
"LoadBalancerService",
"LoadBalancerServiceHttp",
diff --git a/plugins/module_utils/vendor/hcloud/load_balancers/client.py b/plugins/module_utils/vendor/hcloud/load_balancers/client.py
index a0661fe..2d920ea 100644
--- a/plugins/module_utils/vendor/hcloud/load_balancers/client.py
+++ b/plugins/module_utils/vendor/hcloud/load_balancers/client.py
@@ -23,8 +23,8 @@ from .domain import (
IPv6Network,
LoadBalancer,
LoadBalancerAlgorithm,
- LoadBalancerHealtCheckHttp,
LoadBalancerHealthCheck,
+ LoadBalancerHealthCheckHttp,
LoadBalancerService,
LoadBalancerServiceHttp,
LoadBalancerTarget,
@@ -142,7 +142,7 @@ class BoundLoadBalancer(BoundModelBase, LoadBalancer):
timeout=service["health_check"]["timeout"],
)
if tmp_service.health_check.protocol != "tcp":
- tmp_service.health_check.http = LoadBalancerHealtCheckHttp(
+ tmp_service.health_check.http = LoadBalancerHealthCheckHttp(
domain=service["health_check"]["http"]["domain"],
path=service["health_check"]["http"]["path"],
response=service["health_check"]["http"]["response"],
diff --git a/plugins/module_utils/vendor/hcloud/load_balancers/domain.py b/plugins/module_utils/vendor/hcloud/load_balancers/domain.py
index 22a03bf..4a34812 100644
--- a/plugins/module_utils/vendor/hcloud/load_balancers/domain.py
+++ b/plugins/module_utils/vendor/hcloud/load_balancers/domain.py
@@ -1,5 +1,6 @@
from __future__ import annotations
+import warnings
from typing import TYPE_CHECKING, Any, Literal
try:
@@ -231,6 +232,15 @@ class LoadBalancerServiceHttp(BaseDomain):
Use sticky sessions. Only available if protocol is "http" or "https".
"""
+ __api_properties__ = (
+ "cookie_name",
+ "cookie_lifetime",
+ "certificates",
+ "redirect_http",
+ "sticky_sessions",
+ )
+ __slots__ = __api_properties__
+
def __init__(
self,
cookie_name: str | None = None,
@@ -259,10 +269,20 @@ class LoadBalancerHealthCheck(BaseDomain):
Timeout in sec after a try is assumed as timeout
:param retries: int
Retries we perform until we assume a target as unhealthy
- :param http: LoadBalancerHealtCheckHttp
+ :param http: LoadBalancerHealthCheckHttp
HTTP Config
"""
+ __api_properties__ = (
+ "protocol",
+ "port",
+ "interval",
+ "timeout",
+ "retries",
+ "http",
+ )
+ __slots__ = __api_properties__
+
def __init__(
self,
protocol: str | None = None,
@@ -270,7 +290,7 @@ class LoadBalancerHealthCheck(BaseDomain):
interval: int | None = None,
timeout: int | None = None,
retries: int | None = None,
- http: LoadBalancerHealtCheckHttp | None = None,
+ http: LoadBalancerHealthCheckHttp | None = None,
):
self.protocol = protocol
self.port = port
@@ -280,8 +300,8 @@ class LoadBalancerHealthCheck(BaseDomain):
self.http = http
-class LoadBalancerHealtCheckHttp(BaseDomain):
- """LoadBalancerHealtCheckHttp Domain
+class LoadBalancerHealthCheckHttp(BaseDomain):
+ """LoadBalancerHealthCheckHttp Domain
:param domain: str
Domain name to send in HTTP request. Can be null: In that case we will not send a domain name
@@ -295,6 +315,15 @@ class LoadBalancerHealtCheckHttp(BaseDomain):
Type of health check
"""
+ __api_properties__ = (
+ "domain",
+ "path",
+ "response",
+ "status_codes",
+ "tls",
+ )
+ __slots__ = __api_properties__
+
def __init__(
self,
domain: str | None = None,
@@ -310,6 +339,31 @@ class LoadBalancerHealtCheckHttp(BaseDomain):
self.tls = tls
+class LoadBalancerHealtCheckHttp(LoadBalancerHealthCheckHttp):
+ """
+ Kept for backward compatibility.
+
+ .. deprecated:: 2.5.4
+ Use :class:``hcloud.load_balancers.domain.LoadBalancerHealthCheckHttp`` instead.
+ """
+
+ def __init__(
+ self,
+ domain: str | None = None,
+ path: str | None = None,
+ response: str | None = None,
+ status_codes: list | None = None,
+ tls: bool | None = None,
+ ):
+ warnings.warn(
+ "The 'hcloud.load_balancers.domain.LoadBalancerHealtCheckHttp' class is deprecated, please use the "
+ "'hcloud.load_balancers.domain.LoadBalancerHealthCheckHttp' class instead.",
+ DeprecationWarning,
+ stacklevel=2,
+ )
+ super().__init__(domain, path, response, status_codes, tls)
+
+
class LoadBalancerTarget(BaseDomain):
"""LoadBalancerTarget Domain
@@ -327,6 +381,16 @@ class LoadBalancerTarget(BaseDomain):
List of health statuses of the services on this target. Only present for target types "server" and "ip".
"""
+ __api_properties__ = (
+ "type",
+ "server",
+ "label_selector",
+ "ip",
+ "use_private_ip",
+ "health_status",
+ )
+ __slots__ = __api_properties__
+
def __init__(
self,
type: str | None = None,
@@ -378,6 +442,12 @@ class LoadBalancerTargetHealthStatus(BaseDomain):
:param status: Load Balancer Target status. Choices: healthy, unhealthy, unknown
"""
+ __api_properties__ = (
+ "listen_port",
+ "status",
+ )
+ __slots__ = __api_properties__
+
def __init__(
self,
listen_port: int | None = None,
@@ -393,6 +463,9 @@ class LoadBalancerTargetLabelSelector(BaseDomain):
:param selector: str Target label selector
"""
+ __api_properties__ = ("selector",)
+ __slots__ = __api_properties__
+
def __init__(self, selector: str | None = None):
self.selector = selector
@@ -403,6 +476,9 @@ class LoadBalancerTargetIP(BaseDomain):
:param ip: str Target IP
"""
+ __api_properties__ = ("ip",)
+ __slots__ = __api_properties__
+
def __init__(self, ip: str | None = None):
self.ip = ip
@@ -414,6 +490,9 @@ class LoadBalancerAlgorithm(BaseDomain):
Algorithm of the Load Balancer. Choices: round_robin, least_connections
"""
+ __api_properties__ = ("type",)
+ __slots__ = __api_properties__
+
def __init__(self, type: str | None = None):
self.type = type
diff --git a/scripts/vendor.py b/scripts/vendor.py
index 7a2000b..74be7db 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.5.3"
+HCLOUD_VERSION = "v2.5.4"
HCLOUD_VENDOR_PATH = "plugins/module_utils/vendor/hcloud"