|
1 | 1 | from __future__ import annotations |
2 | 2 |
|
3 | | -from typing import Any, NamedTuple |
| 3 | +import warnings |
| 4 | +from typing import TYPE_CHECKING, Any, NamedTuple |
4 | 5 |
|
5 | 6 | from ..core import BoundModelBase, Meta, ResourceClientBase |
6 | 7 | from ..locations import BoundLocation |
7 | 8 | from ..server_types import BoundServerType |
8 | 9 | from .domain import Datacenter, DatacenterServerTypes |
9 | 10 |
|
| 11 | +if TYPE_CHECKING: |
| 12 | + from .._client import Client |
| 13 | + |
10 | 14 | __all__ = [ |
11 | 15 | "BoundDatacenter", |
12 | 16 | "DatacentersPageResult", |
|
15 | 19 |
|
16 | 20 |
|
17 | 21 | class BoundDatacenter(BoundModelBase[Datacenter], Datacenter): |
| 22 | + """ |
| 23 | + .. deprecated:: 2.22.0 |
| 24 | + The bound datacenter class is deprecated and will be removed after the 2026-10-01. |
| 25 | + See https://docs.hetzner.cloud/changelog#2026-06-02-datacenters-deprecated. |
| 26 | + """ |
| 27 | + |
18 | 28 | _client: DatacentersClient |
19 | 29 |
|
20 | 30 | model = Datacenter |
@@ -54,13 +64,34 @@ def __init__(self, client: DatacentersClient, data: dict[str, Any]): |
54 | 64 |
|
55 | 65 |
|
56 | 66 | class DatacentersPageResult(NamedTuple): |
| 67 | + """ |
| 68 | + .. deprecated:: 2.22.0 |
| 69 | + The datacenters page result class is deprecated and will be removed after the 2026-10-01. |
| 70 | + See https://docs.hetzner.cloud/changelog#2026-06-02-datacenters-deprecated. |
| 71 | + """ |
| 72 | + |
57 | 73 | datacenters: list[BoundDatacenter] |
58 | 74 | meta: Meta |
59 | 75 |
|
60 | 76 |
|
61 | 77 | class DatacentersClient(ResourceClientBase): |
| 78 | + """ |
| 79 | + .. deprecated:: 2.22.0 |
| 80 | + The datacenters client class is deprecated and will be removed after the 2026-10-01. |
| 81 | + See https://docs.hetzner.cloud/changelog#2026-06-02-datacenters-deprecated. |
| 82 | + """ |
| 83 | + |
62 | 84 | _base_url = "/datacenters" |
63 | 85 |
|
| 86 | + def __init__(self, client: Client): |
| 87 | + warnings.warn( |
| 88 | + "The datacenters client class is deprecated and will be removed after the 2026-10-01. " |
| 89 | + "See https://docs.hetzner.cloud/changelog#2026-06-02-datacenters-deprecated.", |
| 90 | + DeprecationWarning, |
| 91 | + stacklevel=2, |
| 92 | + ) |
| 93 | + super().__init__(client) |
| 94 | + |
64 | 95 | def get_by_id(self, id: int) -> BoundDatacenter: |
65 | 96 | """Get a specific datacenter by its ID. |
66 | 97 |
|
|
0 commit comments