diff --git a/plugins/module_utils/vendor/hcloud/_client.py b/plugins/module_utils/vendor/hcloud/_client.py index b208181..afe1018 100644 --- a/plugins/module_utils/vendor/hcloud/_client.py +++ b/plugins/module_utils/vendor/hcloud/_client.py @@ -87,6 +87,11 @@ class Client: The Hetzner Cloud API reference is available at https://docs.hetzner.cloud. + Make sure to follow our API changelog available at + https://docs.hetzner.cloud/changelog (or the RRS feed available at + https://docs.hetzner.cloud/changelog/feed.rss) to be notified about additions, + deprecations and removals. + **Retry mechanism** The :attr:`Client.request` method will retry failed requests that match certain criteria. The diff --git a/plugins/module_utils/vendor/hcloud/_version.py b/plugins/module_utils/vendor/hcloud/_version.py index bb27999..591adbf 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.3.0" # x-release-please-version +__version__ = "2.4.0" # x-releaser-pleaser-version diff --git a/plugins/module_utils/vendor/hcloud/actions/__init__.py b/plugins/module_utils/vendor/hcloud/actions/__init__.py index ca93c89..8a96e5d 100644 --- a/plugins/module_utils/vendor/hcloud/actions/__init__.py +++ b/plugins/module_utils/vendor/hcloud/actions/__init__.py @@ -1,14 +1,25 @@ from __future__ import annotations -from .client import ( # noqa: F401 +from .client import ( ActionsClient, ActionsPageResult, BoundAction, ResourceActionsClient, ) -from .domain import ( # noqa: F401 +from .domain import ( Action, ActionException, ActionFailedException, ActionTimeoutException, ) + +__all__ = [ + "Action", + "ActionException", + "ActionFailedException", + "ActionTimeoutException", + "ActionsClient", + "ActionsPageResult", + "BoundAction", + "ResourceActionsClient", +] diff --git a/plugins/module_utils/vendor/hcloud/certificates/__init__.py b/plugins/module_utils/vendor/hcloud/certificates/__init__.py index 4e63df5..5b85358 100644 --- a/plugins/module_utils/vendor/hcloud/certificates/__init__.py +++ b/plugins/module_utils/vendor/hcloud/certificates/__init__.py @@ -1,13 +1,23 @@ from __future__ import annotations -from .client import ( # noqa: F401 +from .client import ( BoundCertificate, CertificatesClient, CertificatesPageResult, ) -from .domain import ( # noqa: F401 +from .domain import ( Certificate, CreateManagedCertificateResponse, ManagedCertificateError, ManagedCertificateStatus, ) + +__all__ = [ + "BoundCertificate", + "Certificate", + "CertificatesClient", + "CertificatesPageResult", + "CreateManagedCertificateResponse", + "ManagedCertificateError", + "ManagedCertificateStatus", +] diff --git a/plugins/module_utils/vendor/hcloud/core/__init__.py b/plugins/module_utils/vendor/hcloud/core/__init__.py index 4e17dac..b553546 100644 --- a/plugins/module_utils/vendor/hcloud/core/__init__.py +++ b/plugins/module_utils/vendor/hcloud/core/__init__.py @@ -1,4 +1,13 @@ from __future__ import annotations -from .client import BoundModelBase, ClientEntityBase # noqa: F401 -from .domain import BaseDomain, DomainIdentityMixin, Meta, Pagination # noqa: F401 +from .client import BoundModelBase, ClientEntityBase +from .domain import BaseDomain, DomainIdentityMixin, Meta, Pagination + +__all__ = [ + "BoundModelBase", + "ClientEntityBase", + "BaseDomain", + "DomainIdentityMixin", + "Meta", + "Pagination", +] diff --git a/plugins/module_utils/vendor/hcloud/core/client.py b/plugins/module_utils/vendor/hcloud/core/client.py index d213daf..0b86c83 100644 --- a/plugins/module_utils/vendor/hcloud/core/client.py +++ b/plugins/module_utils/vendor/hcloud/core/client.py @@ -96,3 +96,9 @@ class BoundModelBase: # models, as they will generate a lot of API call trying to print all the fields # of the model. return object.__repr__(self) + + def __eq__(self, other: Any) -> bool: + """Compare a bound model object with another of the same type.""" + if not isinstance(other, self.__class__): + return NotImplemented + return self.data_model == other.data_model diff --git a/plugins/module_utils/vendor/hcloud/core/domain.py b/plugins/module_utils/vendor/hcloud/core/domain.py index d848525..fa4b4bb 100644 --- a/plugins/module_utils/vendor/hcloud/core/domain.py +++ b/plugins/module_utils/vendor/hcloud/core/domain.py @@ -1,5 +1,7 @@ from __future__ import annotations +from typing import Any + class BaseDomain: __api_properties__: tuple @@ -16,6 +18,15 @@ class BaseDomain: kwargs = [f"{key}={getattr(self, key)!r}" for key in self.__api_properties__] # type: ignore[var-annotated] return f"{self.__class__.__qualname__}({', '.join(kwargs)})" + def __eq__(self, other: Any) -> bool: + """Compare a domain object with another of the same type.""" + if not isinstance(other, self.__class__): + return NotImplemented + for key in self.__api_properties__: + if getattr(self, key) != getattr(other, key): + return False + return True + class DomainIdentityMixin: diff --git a/plugins/module_utils/vendor/hcloud/datacenters/__init__.py b/plugins/module_utils/vendor/hcloud/datacenters/__init__.py index 559694c..fdfbb18 100644 --- a/plugins/module_utils/vendor/hcloud/datacenters/__init__.py +++ b/plugins/module_utils/vendor/hcloud/datacenters/__init__.py @@ -1,8 +1,16 @@ from __future__ import annotations -from .client import ( # noqa: F401 +from .client import ( BoundDatacenter, DatacentersClient, DatacentersPageResult, ) -from .domain import Datacenter, DatacenterServerTypes # noqa: F401 +from .domain import Datacenter, DatacenterServerTypes + +__all__ = [ + "BoundDatacenter", + "Datacenter", + "DatacenterServerTypes", + "DatacentersClient", + "DatacentersPageResult", +] diff --git a/plugins/module_utils/vendor/hcloud/deprecation/__init__.py b/plugins/module_utils/vendor/hcloud/deprecation/__init__.py index 315576b..db30b0f 100644 --- a/plugins/module_utils/vendor/hcloud/deprecation/__init__.py +++ b/plugins/module_utils/vendor/hcloud/deprecation/__init__.py @@ -1,3 +1,5 @@ from __future__ import annotations -from .domain import DeprecationInfo # noqa: F401 +from .domain import DeprecationInfo + +__all__ = ["DeprecationInfo"] diff --git a/plugins/module_utils/vendor/hcloud/firewalls/__init__.py b/plugins/module_utils/vendor/hcloud/firewalls/__init__.py index 5205d76..f81ae0d 100644 --- a/plugins/module_utils/vendor/hcloud/firewalls/__init__.py +++ b/plugins/module_utils/vendor/hcloud/firewalls/__init__.py @@ -1,7 +1,7 @@ from __future__ import annotations -from .client import BoundFirewall, FirewallsClient, FirewallsPageResult # noqa: F401 -from .domain import ( # noqa: F401 +from .client import BoundFirewall, FirewallsClient, FirewallsPageResult +from .domain import ( CreateFirewallResponse, Firewall, FirewallResource, @@ -9,3 +9,15 @@ from .domain import ( # noqa: F401 FirewallResourceLabelSelector, FirewallRule, ) + +__all__ = [ + "BoundFirewall", + "CreateFirewallResponse", + "Firewall", + "FirewallResource", + "FirewallResourceAppliedToResources", + "FirewallResourceLabelSelector", + "FirewallRule", + "FirewallsClient", + "FirewallsPageResult", +] diff --git a/plugins/module_utils/vendor/hcloud/floating_ips/__init__.py b/plugins/module_utils/vendor/hcloud/floating_ips/__init__.py index 4e55bf5..8c45c77 100644 --- a/plugins/module_utils/vendor/hcloud/floating_ips/__init__.py +++ b/plugins/module_utils/vendor/hcloud/floating_ips/__init__.py @@ -1,8 +1,16 @@ from __future__ import annotations -from .client import ( # noqa: F401 +from .client import ( BoundFloatingIP, FloatingIPsClient, FloatingIPsPageResult, ) -from .domain import CreateFloatingIPResponse, FloatingIP # noqa: F401 +from .domain import CreateFloatingIPResponse, FloatingIP + +__all__ = [ + "BoundFloatingIP", + "CreateFloatingIPResponse", + "FloatingIP", + "FloatingIPsClient", + "FloatingIPsPageResult", +] diff --git a/plugins/module_utils/vendor/hcloud/helpers/__init__.py b/plugins/module_utils/vendor/hcloud/helpers/__init__.py index b6a4cd7..044703b 100644 --- a/plugins/module_utils/vendor/hcloud/helpers/__init__.py +++ b/plugins/module_utils/vendor/hcloud/helpers/__init__.py @@ -1,3 +1,5 @@ from __future__ import annotations -from .labels import LabelValidator # noqa: F401 +from .labels import LabelValidator + +__all__ = ["LabelValidator"] diff --git a/plugins/module_utils/vendor/hcloud/images/__init__.py b/plugins/module_utils/vendor/hcloud/images/__init__.py index 78cb686..071a92b 100644 --- a/plugins/module_utils/vendor/hcloud/images/__init__.py +++ b/plugins/module_utils/vendor/hcloud/images/__init__.py @@ -1,4 +1,12 @@ from __future__ import annotations -from .client import BoundImage, ImagesClient, ImagesPageResult # noqa: F401 -from .domain import CreateImageResponse, Image # noqa: F401 +from .client import BoundImage, ImagesClient, ImagesPageResult +from .domain import CreateImageResponse, Image + +__all__ = [ + "BoundImage", + "CreateImageResponse", + "Image", + "ImagesClient", + "ImagesPageResult", +] diff --git a/plugins/module_utils/vendor/hcloud/isos/__init__.py b/plugins/module_utils/vendor/hcloud/isos/__init__.py index 0d5e38f..91f137c 100644 --- a/plugins/module_utils/vendor/hcloud/isos/__init__.py +++ b/plugins/module_utils/vendor/hcloud/isos/__init__.py @@ -1,4 +1,11 @@ from __future__ import annotations -from .client import BoundIso, IsosClient, IsosPageResult # noqa: F401 -from .domain import Iso # noqa: F401 +from .client import BoundIso, IsosClient, IsosPageResult +from .domain import Iso + +__all__ = [ + "BoundIso", + "Iso", + "IsosClient", + "IsosPageResult", +] diff --git a/plugins/module_utils/vendor/hcloud/load_balancer_types/__init__.py b/plugins/module_utils/vendor/hcloud/load_balancer_types/__init__.py index fa1dc33..1b147bf 100644 --- a/plugins/module_utils/vendor/hcloud/load_balancer_types/__init__.py +++ b/plugins/module_utils/vendor/hcloud/load_balancer_types/__init__.py @@ -1,8 +1,15 @@ from __future__ import annotations -from .client import ( # noqa: F401 +from .client import ( BoundLoadBalancerType, LoadBalancerTypesClient, LoadBalancerTypesPageResult, ) -from .domain import LoadBalancerType # noqa: F401 +from .domain import LoadBalancerType + +__all__ = [ + "BoundLoadBalancerType", + "LoadBalancerType", + "LoadBalancerTypesClient", + "LoadBalancerTypesPageResult", +] diff --git a/plugins/module_utils/vendor/hcloud/load_balancers/__init__.py b/plugins/module_utils/vendor/hcloud/load_balancers/__init__.py index 4bfd799..3374516 100644 --- a/plugins/module_utils/vendor/hcloud/load_balancers/__init__.py +++ b/plugins/module_utils/vendor/hcloud/load_balancers/__init__.py @@ -1,11 +1,11 @@ from __future__ import annotations -from .client import ( # noqa: F401 +from .client import ( BoundLoadBalancer, LoadBalancersClient, LoadBalancersPageResult, ) -from .domain import ( # noqa: F401 +from .domain import ( CreateLoadBalancerResponse, GetMetricsResponse, IPv4Address, @@ -23,3 +23,25 @@ from .domain import ( # noqa: F401 PrivateNet, PublicNetwork, ) + +__all__ = [ + "BoundLoadBalancer", + "CreateLoadBalancerResponse", + "GetMetricsResponse", + "IPv4Address", + "IPv6Network", + "LoadBalancer", + "LoadBalancerAlgorithm", + "LoadBalancerHealtCheckHttp", + "LoadBalancerHealthCheck", + "LoadBalancerService", + "LoadBalancerServiceHttp", + "LoadBalancerTarget", + "LoadBalancerTargetHealthStatus", + "LoadBalancerTargetIP", + "LoadBalancerTargetLabelSelector", + "LoadBalancersClient", + "LoadBalancersPageResult", + "PrivateNet", + "PublicNetwork", +] diff --git a/plugins/module_utils/vendor/hcloud/locations/__init__.py b/plugins/module_utils/vendor/hcloud/locations/__init__.py index 1c23a51..f59c264 100644 --- a/plugins/module_utils/vendor/hcloud/locations/__init__.py +++ b/plugins/module_utils/vendor/hcloud/locations/__init__.py @@ -1,4 +1,11 @@ from __future__ import annotations -from .client import BoundLocation, LocationsClient, LocationsPageResult # noqa: F401 -from .domain import Location # noqa: F401 +from .client import BoundLocation, LocationsClient, LocationsPageResult +from .domain import Location + +__all__ = [ + "BoundLocation", + "Location", + "LocationsClient", + "LocationsPageResult", +] diff --git a/plugins/module_utils/vendor/hcloud/metrics/__init__.py b/plugins/module_utils/vendor/hcloud/metrics/__init__.py index 65d393c..49555d1 100644 --- a/plugins/module_utils/vendor/hcloud/metrics/__init__.py +++ b/plugins/module_utils/vendor/hcloud/metrics/__init__.py @@ -1,3 +1,8 @@ from __future__ import annotations -from .domain import Metrics, TimeSeries # noqa: F401 +from .domain import Metrics, TimeSeries + +__all__ = [ + "Metrics", + "TimeSeries", +] diff --git a/plugins/module_utils/vendor/hcloud/metrics/domain.py b/plugins/module_utils/vendor/hcloud/metrics/domain.py index 940283a..7f29128 100644 --- a/plugins/module_utils/vendor/hcloud/metrics/domain.py +++ b/plugins/module_utils/vendor/hcloud/metrics/domain.py @@ -1,7 +1,7 @@ from __future__ import annotations from datetime import datetime -from typing import Dict, List, Literal, Tuple +from typing import Literal try: from dateutil.parser import isoparse @@ -10,7 +10,7 @@ except ImportError: from ..core import BaseDomain -TimeSeries = Dict[str, Dict[Literal["values"], List[Tuple[float, str]]]] +TimeSeries = dict[str, dict[Literal["values"], list[tuple[float, str]]]] class Metrics(BaseDomain): diff --git a/plugins/module_utils/vendor/hcloud/networks/__init__.py b/plugins/module_utils/vendor/hcloud/networks/__init__.py index 5bf4a88..fc86564 100644 --- a/plugins/module_utils/vendor/hcloud/networks/__init__.py +++ b/plugins/module_utils/vendor/hcloud/networks/__init__.py @@ -1,9 +1,19 @@ from __future__ import annotations -from .client import BoundNetwork, NetworksClient, NetworksPageResult # noqa: F401 -from .domain import ( # noqa: F401 +from .client import BoundNetwork, NetworksClient, NetworksPageResult +from .domain import ( CreateNetworkResponse, Network, NetworkRoute, NetworkSubnet, ) + +__all__ = [ + "BoundNetwork", + "CreateNetworkResponse", + "Network", + "NetworkRoute", + "NetworkSubnet", + "NetworksClient", + "NetworksPageResult", +] diff --git a/plugins/module_utils/vendor/hcloud/placement_groups/__init__.py b/plugins/module_utils/vendor/hcloud/placement_groups/__init__.py index 9c25dd7..ab82da5 100644 --- a/plugins/module_utils/vendor/hcloud/placement_groups/__init__.py +++ b/plugins/module_utils/vendor/hcloud/placement_groups/__init__.py @@ -1,8 +1,16 @@ from __future__ import annotations -from .client import ( # noqa: F401 +from .client import ( BoundPlacementGroup, PlacementGroupsClient, PlacementGroupsPageResult, ) -from .domain import CreatePlacementGroupResponse, PlacementGroup # noqa: F401 +from .domain import CreatePlacementGroupResponse, PlacementGroup + +__all__ = [ + "BoundPlacementGroup", + "CreatePlacementGroupResponse", + "PlacementGroup", + "PlacementGroupsClient", + "PlacementGroupsPageResult", +] diff --git a/plugins/module_utils/vendor/hcloud/primary_ips/__init__.py b/plugins/module_utils/vendor/hcloud/primary_ips/__init__.py index d079a23..3dc5ed0 100644 --- a/plugins/module_utils/vendor/hcloud/primary_ips/__init__.py +++ b/plugins/module_utils/vendor/hcloud/primary_ips/__init__.py @@ -1,4 +1,12 @@ from __future__ import annotations -from .client import BoundPrimaryIP, PrimaryIPsClient, PrimaryIPsPageResult # noqa: F401 -from .domain import CreatePrimaryIPResponse, PrimaryIP # noqa: F401 +from .client import BoundPrimaryIP, PrimaryIPsClient, PrimaryIPsPageResult +from .domain import CreatePrimaryIPResponse, PrimaryIP + +__all__ = [ + "BoundPrimaryIP", + "CreatePrimaryIPResponse", + "PrimaryIP", + "PrimaryIPsClient", + "PrimaryIPsPageResult", +] diff --git a/plugins/module_utils/vendor/hcloud/server_types/__init__.py b/plugins/module_utils/vendor/hcloud/server_types/__init__.py index 1e978d0..2cdab17 100644 --- a/plugins/module_utils/vendor/hcloud/server_types/__init__.py +++ b/plugins/module_utils/vendor/hcloud/server_types/__init__.py @@ -1,8 +1,15 @@ from __future__ import annotations -from .client import ( # noqa: F401 +from .client import ( BoundServerType, ServerTypesClient, ServerTypesPageResult, ) -from .domain import ServerType # noqa: F401 +from .domain import ServerType + +__all__ = [ + "BoundServerType", + "ServerType", + "ServerTypesClient", + "ServerTypesPageResult", +] diff --git a/plugins/module_utils/vendor/hcloud/servers/__init__.py b/plugins/module_utils/vendor/hcloud/servers/__init__.py index 58c811e..0b02a11 100644 --- a/plugins/module_utils/vendor/hcloud/servers/__init__.py +++ b/plugins/module_utils/vendor/hcloud/servers/__init__.py @@ -1,7 +1,7 @@ from __future__ import annotations -from .client import BoundServer, ServersClient, ServersPageResult # noqa: F401 -from .domain import ( # noqa: F401 +from .client import BoundServer, ServersClient, ServersPageResult +from .domain import ( CreateServerResponse, EnableRescueResponse, GetMetricsResponse, @@ -15,3 +15,21 @@ from .domain import ( # noqa: F401 Server, ServerCreatePublicNetwork, ) + +__all__ = [ + "BoundServer", + "CreateServerResponse", + "EnableRescueResponse", + "GetMetricsResponse", + "IPv4Address", + "IPv6Network", + "PrivateNet", + "PublicNetwork", + "PublicNetworkFirewall", + "RequestConsoleResponse", + "ResetPasswordResponse", + "Server", + "ServerCreatePublicNetwork", + "ServersClient", + "ServersPageResult", +] diff --git a/plugins/module_utils/vendor/hcloud/servers/domain.py b/plugins/module_utils/vendor/hcloud/servers/domain.py index 349c8dc..77c6d66 100644 --- a/plugins/module_utils/vendor/hcloud/servers/domain.py +++ b/plugins/module_utils/vendor/hcloud/servers/domain.py @@ -296,8 +296,8 @@ class PublicNetwork(BaseDomain): def __init__( self, - ipv4: IPv4Address, - ipv6: IPv6Network, + ipv4: IPv4Address | None, + ipv6: IPv6Network | None, floating_ips: list[BoundFloatingIP], primary_ipv4: BoundPrimaryIP | None, primary_ipv6: BoundPrimaryIP | None, diff --git a/plugins/module_utils/vendor/hcloud/ssh_keys/__init__.py b/plugins/module_utils/vendor/hcloud/ssh_keys/__init__.py index 2515590..6aefb42 100644 --- a/plugins/module_utils/vendor/hcloud/ssh_keys/__init__.py +++ b/plugins/module_utils/vendor/hcloud/ssh_keys/__init__.py @@ -1,4 +1,11 @@ from __future__ import annotations -from .client import BoundSSHKey, SSHKeysClient, SSHKeysPageResult # noqa: F401 -from .domain import SSHKey # noqa: F401 +from .client import BoundSSHKey, SSHKeysClient, SSHKeysPageResult +from .domain import SSHKey + +__all__ = [ + "BoundSSHKey", + "SSHKey", + "SSHKeysClient", + "SSHKeysPageResult", +] diff --git a/plugins/module_utils/vendor/hcloud/volumes/__init__.py b/plugins/module_utils/vendor/hcloud/volumes/__init__.py index dc8ccbb..046df10 100644 --- a/plugins/module_utils/vendor/hcloud/volumes/__init__.py +++ b/plugins/module_utils/vendor/hcloud/volumes/__init__.py @@ -1,4 +1,12 @@ from __future__ import annotations -from .client import BoundVolume, VolumesClient, VolumesPageResult # noqa: F401 -from .domain import CreateVolumeResponse, Volume # noqa: F401 +from .client import BoundVolume, VolumesClient, VolumesPageResult +from .domain import CreateVolumeResponse, Volume + +__all__ = [ + "BoundVolume", + "CreateVolumeResponse", + "Volume", + "VolumesClient", + "VolumesPageResult", +] diff --git a/scripts/vendor.py b/scripts/vendor.py index c6b9eb4..03db023 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.3.0" +HCLOUD_VERSION = "v2.4.0" HCLOUD_VENDOR_PATH = "plugins/module_utils/vendor/hcloud"