Skip to content

Commit c68a8f6

Browse files
Merge branch 'main' into generator-bot-25783380352/resourcemanager
2 parents 179fbff + 8e87fca commit c68a8f6

1,336 files changed

Lines changed: 6667 additions & 4372 deletions

File tree

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

CHANGELOG.md

Lines changed: 146 additions & 36 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,78 @@
11
## Release (2026-MM-DD)
2-
- `cost`: [v0.1.0](services/cost/CHANGELOG.md#v010)
3-
- **New**: STACKIT cost service
2+
- `auditlog`:
3+
- [v0.2.0](services/auditlog/CHANGELOG.md#v020)
4+
- **Feature:** regenerate with openapi-generator v7.22.0
5+
- `authorization`:
6+
- [v0.8.0](services/authorization/CHANGELOG.md#080)
7+
- **Feature:** regenerate with openapi-generator v7.22.0
8+
- `cost`:
9+
- [v0.2.0](services/cost/CHANGELOG.md#v020)
10+
- **Feature:** regenerate with openapi-generator v7.22.0
11+
- [v0.1.0](services/cost/CHANGELOG.md#v010)
12+
- **New**: STACKIT cost service
13+
- `dns`:
14+
- [v0.6.0](services/dns/CHANGELOG.md#v060)
15+
- **Feature:** regenerate with openapi-generator v7.22.0
16+
- `edge`:
17+
- [v0.4.0](services/edge/CHANGELOG.md#v040)
18+
- **Feature:** regenerate with openapi-generator v7.22.0
19+
- `git`:
20+
- [v0.9.0](services/git/CHANGELOG.md#v090)
21+
- **Feature:** regenerate with openapi-generator v7.22.0
22+
- `intake`:
23+
- [v0.6.0](services/intake/CHANGELOG.md#v060)
24+
- **Feature:** regenerate with openapi-generator v7.22.0
25+
- `logme`:
26+
- [v0.5.0](services/logme/CHANGELOG.md#v050)
27+
- **Feature:** regenerate with openapi-generator v7.22.0
28+
- `logs`:
29+
- [v0.3.0](services/logs/CHANGELOG.md#v030)
30+
- **Feature:** regenerate with openapi-generator v7.22.0
31+
- `mariadb`:
32+
- [v0.4.0](services/mariadb/CHANGELOG.md#v040)
33+
- **Feature:** regenerate with openapi-generator v7.22.0
34+
- `modelserving`:
35+
- [v0.3.0](services/modelserving/CHANGELOG.md#v030)
36+
- **Feature:** regenerate with openapi-generator v7.22.0
37+
- `mongodbflex`:
38+
- [v1.3.0](services/mongodbflex/CHANGELOG.md#v130)
39+
- **Feature:** regenerate with openapi-generator v7.22.0
40+
- `opensearch`:
41+
- [v0.5.0](services/opensearch/CHANGELOG.md#v050)
42+
- **Feature:** regenerate with openapi-generator v7.22.0
43+
- `postgresflex`:
44+
- [v1.3.0](services/postgresflex/CHANGELOG.md#v130)
45+
- **Feature:** regenerate with openapi-generator v7.22.0
46+
- `rabbitmq`:
47+
- [v0.5.0](services/rabbitmq/CHANGELOG.md#v050)
48+
- **Feature:** regenerate with openapi-generator v7.22.0
49+
- `redis`:
50+
- [v0.4.0](services/redis/CHANGELOG.md#v040)
51+
- **Feature:** regenerate with openapi-generator v7.22.0
52+
- `resourcemanager`:
53+
- [v0.8.0](services/resourcemanager/CHANGELOG.md#v080)
54+
- **Feature:** regenerate with openapi-generator v7.22.0
55+
- `runcommand`:
56+
- [v1.2.0](services/runcommand/CHANGELOG.md#v120)
57+
- **Feature:** regenerate with openapi-generator v7.22.0
58+
- `scf`:
59+
- [v0.5.0](services/scf/CHANGELOG.md#v050)
60+
- **Feature:** regenerate with openapi-generator v7.22.0
61+
- `secretsmanager`:
62+
- [v0.5.0](services/secretsmanager/CHANGELOG.md#v050)
63+
- **Feature:** regenerate with openapi-generator v7.22.0
64+
- `serverbackup`:
65+
- [v1.2.0](services/serverbackup/CHANGELOG.md#v120)
66+
- **Feature:** regenerate with openapi-generator v7.22.0
67+
- `serverupdate`:
68+
- [v1.2.0](services/serverupdate/CHANGELOG.md#v120)
69+
- **Feature:** regenerate with openapi-generator v7.22.0
70+
- `serviceenablement`:
71+
- [v1.2.0](services/serviceenablement/CHANGELOG.md#v120)
72+
- **Feature:** regenerate with openapi-generator v7.22.0
473
- `sfs`:
74+
- [v0.6.0](services/sfs/CHANGELOG.md#v060)
75+
- **Feature:** regenerate with openapi-generator v7.22.0
576
- [v0.5.0](services/sfs/CHANGELOG.md#v050)
677
- **Deprecation:** deprecated field `schedules` in model `SnapshotPolicy`
778
- **Feature:** new field `snapshotSchedules` in model `SnapshotPolicy`
@@ -16,45 +87,84 @@
1687
- **Feature:** model `UpdateResourcePoolPayload` now has an additional field `snapshotPolicyId`
1788
- **Feature:** new models: `DisableLockResponse`, `EnableLockResponse`, `GetLockResponse`, `GetScheduleResponse`, `GetSnapshotPolicyResponse`, `ListSchedulesResponse`, `ListSnapshotPoliciesResponse`, `ResourcePoolSnapshotPolicy`, `Schedule`, `SnapshotPolicy`, `SnapshotPolicySchedule`, `UpdateResourcePoolSnapshotPayload`, `UpdateResourcePoolSnapshotResponse`
1889
- **Feature:** new operations: `UpdateResourcePoolSnapshot`, `ListSchedules`, `GetSchedule`, `ListSnapshotPolicies`, `GetSnapshotPolicy`, `DisableLock`, `GetLock`, `EnableLock`,
19-
- `ske`: [v1.8.0](services/ske/CHANGELOG.md#v180)
20-
- **Breaking Change:** Change status codes: remove 200, change response type of 202 and add 400 in some API calls
21-
- **Breaking Change:** Aligned CRI name validation with the API side validation (removed docker)
22-
- **Feature:** New models `ExpirationStatus`, `ExpirationStatusKubernetes` and `ExpirationStatusNodepool`
23-
- **Feature:** Add attribute `expiration` of type `ExpirationStatus` to model `ClusterStatus`
24-
- **Improvement:** Update description of `AccessScope`
25-
- `iaas`: [v1.3.0](services/iaas/CHANGELOG.md#v130)
26-
- **Feature:** Add optional `cascade` parameter to `delete_volume` API call
27-
- **Feature:** Add `config_drive` attribute to ModelClass `Server` and `CreateServerPayload`
28-
- `alb`: [v0.9.3](services/alb/CHANGELOG.md#v093)
29-
- Add HTTP 429 status code to some API client methods
30-
- `cdn`: [v2.5.0](services/cdn/CHANGELOG.md#v250)
31-
- **Feature:** New model classes `TlsConfigPatch` and `TlsConfig`
32-
- **Feature:** add attributes `forwardHostHeader`, `stripResponseCookies` and `tls` to the model classes:
33-
- `Config`
34-
- `ConfigPatch`
35-
- `CreateDistributionPayload`
36-
- `certificates`: [v1.3.1](services/certificates/CHANGELOG.md#v131)
37-
- Add HTTP 429 status code to some API client methods
38-
- `loadbalancer`: [v0.9.3](services/loadbalancer/CHANGELOG.md#v093)
39-
- Add HTTP 429 status code to some API client methods
40-
- `iaas`: [v1.2.2](services/iaas/CHANGELOG.md#v122)
41-
- **Docs:** Extend description of `PortRange` class
42-
- `kms`: [v0.9.0](services/kms/CHANGELOG.md#v090)
43-
- Set field `public_key` optional in `WrappingKey` model
44-
- `objectstorage`: [v1.3.0](services/objectstorage/CHANGELOG.md#v130)
45-
- **Feature:** New models: `SetDefaultRetentionPayload`, `GetCredentialsGroupResponse`, `DeleteDefaultRetentionResponse`, `DefaultRetentionResponse`, `CredentialsGroupExtended`, `ComplianceLockResponse`
46-
- **Feature:** New enum type `RetentionMode`
47-
- **Feature:** New field `object_lock_enabled` in `Bucket` model struct
48-
- **Feature:** New API client methods: `create_compliance_lock`, `delete_compliance_lock`, `delete_default_retention`, `get_compliance_lock`, `get_credentials_group`, `get_default_retention`, `set_default_retention`
90+
- `ske`:
91+
- [v1.9.0](services/ske/CHANGELOG.md#v190)
92+
- **Feature:** regenerate with openapi-generator v7.22.0
93+
- [v1.8.0](services/ske/CHANGELOG.md#v180)
94+
- **Breaking Change:** Change status codes: remove 200, change response type of 202 and add 400 in some API calls
95+
- **Breaking Change:** Aligned CRI name validation with the API side validation (removed docker)
96+
- **Feature:** New models `ExpirationStatus`, `ExpirationStatusKubernetes` and `ExpirationStatusNodepool`
97+
- **Feature:** Add attribute `expiration` of type `ExpirationStatus` to model `ClusterStatus`
98+
- **Improvement:** Update description of `AccessScope`
99+
- `sqlserverflex`:
100+
- [v1.2.0](services/sqlserverflex/CHANGELOG.md#v120)
101+
- **Feature:** regenerate with openapi-generator v7.22.0
102+
- `telemetryrouter`:
103+
- [v0.2.0](services/telemetryrouter/CHANGELOG.md#v020)
104+
- **Feature:** regenerate with openapi-generator v7.22.0
105+
- `iaas`:
106+
- [v1.4.0](services/iaas/CHANGELOG.md#v140)
107+
- **Feature:** regenerate with openapi-generator v7.22.0
108+
- [v1.3.0](services/iaas/CHANGELOG.md#v130)
109+
- **Feature:** Add optional `cascade` parameter to `delete_volume` API call
110+
- **Feature:** Add `config_drive` attribute to ModelClass `Server` and `CreateServerPayload`
111+
- `alb`:
112+
- [v0.10.0](services/alb/CHANGELOG.md#v0100)
113+
- **Feature:** regenerate with openapi-generator v7.22.0
114+
- [v0.9.3](services/alb/CHANGELOG.md#v093)
115+
- Add HTTP 429 status code to some API client methods
116+
- `cdn`:
117+
- [v2.6.0](services/cdn/CHANGELOG.md#v260)
118+
- **Feature:** regenerate with openapi-generator v7.22.0
119+
- [v2.5.0](services/cdn/CHANGELOG.md#v250)
120+
- **Feature:** New model classes `TlsConfigPatch` and `TlsConfig`
121+
- **Feature:** add attributes `forwardHostHeader`, `stripResponseCookies` and `tls` to the model classes:
122+
- `Config`
123+
- `ConfigPatch`
124+
- `CreateDistributionPayload`
125+
- `certificates`:
126+
- [v1.4.0](services/certificates/CHANGELOG.md#v140)
127+
- **Feature:** regenerate with openapi-generator v7.22.0
128+
- [v1.3.1](services/certificates/CHANGELOG.md#v131)
129+
- Add HTTP 429 status code to some API client methods
130+
- `loadbalancer`:
131+
- [v0.10.0](services/loadbalancer/CHANGELOG.md#v0100)
132+
- **Feature:** regenerate with openapi-generator v7.22.0
133+
- [v0.9.3](services/loadbalancer/CHANGELOG.md#v093)
134+
- Add HTTP 429 status code to some API client methods
135+
- `iaas`:
136+
- [v1.2.2](services/iaas/CHANGELOG.md#v122)
137+
- **Docs:** Extend description of `PortRange` class
138+
- `kms`:
139+
- [v0.10.0](services/kms/CHANGELOG.md#v0100)
140+
- **Feature:** regenerate with openapi-generator v7.22.0
141+
- [v0.9.0](services/kms/CHANGELOG.md#v090)
142+
- Set field `public_key` optional in `WrappingKey` model
143+
- `objectstorage`:
144+
- [v1.4.0](services/objectstorage/CHANGELOG.md#v140)
145+
- **Feature:** regenerate with openapi-generator v7.22.0
146+
- [v1.3.0](services/objectstorage/CHANGELOG.md#v130)
147+
- **Feature:** New models: `SetDefaultRetentionPayload`, `GetCredentialsGroupResponse`, `DeleteDefaultRetentionResponse`, `DefaultRetentionResponse`, `CredentialsGroupExtended`, `ComplianceLockResponse`
148+
- **Feature:** New enum type `RetentionMode`
149+
- **Feature:** New field `object_lock_enabled` in `Bucket` model struct
150+
- **Feature:** New API client methods: `create_compliance_lock`, `delete_compliance_lock`, `delete_default_retention`, `get_compliance_lock`, `get_credentials_group`, `get_default_retention`, `set_default_retention`
49151
- `serviceaccount`:
152+
- [v0.8.0](services/serviceaccount/CHANGELOG.md#v080)
153+
- **Feature:** regenerate with openapi-generator v7.22.0
50154
- [v0.7.0](services/serviceaccount/CHANGELOG.md#v070)
51155
- **Feature:** Add `token_endpoint` attribute to `CreateServiceAccountKeyResponseCredentials` model class
52156
- [v0.8.0](services/serviceaccount/CHANGELOG.md#v080)
53157
- **Feature:** New API client method `get_federated_identity_provider`
54-
- `observability`: [v0.14.0](services/observability/CHANGELOG.md#v0140)
55-
- **Feature:** Add attribute `otlp_http_logs_url` to `InstanceSensitiveData` model class
56-
- `vpn`: [v0.1.0](services/vpn/CHANGELOG.md#v010)
57-
- Initial publication of STACKIT Python SDK module for STACKIT VPN service
158+
- `observability`:
159+
- [v0.15.0](services/observability/CHANGELOG.md#v0150)
160+
- **Feature:** regenerate with openapi-generator v7.22.0
161+
- [v0.14.0](services/observability/CHANGELOG.md#v0140)
162+
- **Feature:** Add attribute `otlp_http_logs_url` to `InstanceSensitiveData` model class
163+
- `vpn`:
164+
- [v0.2.0](services/vpn/CHANGELOG.md#v020)
165+
- **Feature:** regenerate with openapi-generator v7.22.0
166+
- [v0.1.0](services/vpn/CHANGELOG.md#v010)
167+
- Initial publication of STACKIT Python SDK module for STACKIT VPN service
58168

59169

60170
## Release (2026-03-27)

services/alb/CHANGELOG.md

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,6 @@
1+
## v0.10.0
2+
- **Feature:** regenerate with openapi-generator v7.22.0
3+
14
## v0.9.3
25
- Add HTTP 429 status code to some API client methods
36

services/alb/pyproject.toml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
[project]
22
name = "stackit-alb"
3-
version = "v0.9.3"
3+
version = "v0.10.0"
44
description = "Application Load Balancer API"
55
authors = [{ name = "STACKIT Developer Tools", email = "developer-tools@stackit.cloud" }]
66
requires-python = ">=3.9,<4.0"

services/alb/src/stackit/alb/api_client.py

Lines changed: 15 additions & 17 deletions
Original file line numberDiff line numberDiff line change
@@ -66,6 +66,7 @@ class ApiClient:
6666
"date": datetime.date,
6767
"datetime": datetime.datetime,
6868
"decimal": decimal.Decimal,
69+
"UUID": uuid.UUID,
6970
"object": object,
7071
}
7172
_pool = None
@@ -265,7 +266,7 @@ def response_deserialize(
265266
response_text = None
266267
return_data = None
267268
try:
268-
if response_type == "bytearray":
269+
if response_type in ("bytearray", "bytes"):
269270
return_data = response_data.data
270271
elif response_type == "file":
271272
return_data = self.__deserialize_file(response_data)
@@ -326,25 +327,20 @@ def sanitize_for_serialization(self, obj):
326327
return obj.isoformat()
327328
elif isinstance(obj, decimal.Decimal):
328329
return str(obj)
329-
330330
elif isinstance(obj, dict):
331-
obj_dict = obj
331+
return {key: self.sanitize_for_serialization(val) for key, val in obj.items()}
332+
333+
# Convert model obj to dict except
334+
# attributes `openapi_types`, `attribute_map`
335+
# and attributes which value is not None.
336+
# Convert attribute name to json key in
337+
# model definition for request.
338+
if hasattr(obj, "to_dict") and callable(getattr(obj, "to_dict")): # noqa: B009
339+
obj_dict = obj.to_dict()
332340
else:
333-
# Convert model obj to dict except
334-
# attributes `openapi_types`, `attribute_map`
335-
# and attributes which value is not None.
336-
# Convert attribute name to json key in
337-
# model definition for request.
338-
if hasattr(obj, "to_dict") and callable(getattr(obj, "to_dict")): # noqa: B009
339-
obj_dict = obj.to_dict()
340-
else:
341-
obj_dict = obj.__dict__
342-
343-
if isinstance(obj_dict, list):
344-
# here we handle instances that can either be a list or something else, and only became a real list by calling to_dict() # noqa: E501
345-
return self.sanitize_for_serialization(obj_dict)
341+
obj_dict = obj.__dict__
346342

347-
return {key: self.sanitize_for_serialization(val) for key, val in obj_dict.items()}
343+
return self.sanitize_for_serialization(obj_dict)
348344

349345
def deserialize(self, response_text: str, response_type: str, content_type: Optional[str]):
350346
"""Deserializes response into an object.
@@ -417,6 +413,8 @@ def __deserialize(self, data, klass):
417413
return self.__deserialize_datetime(data)
418414
elif klass is decimal.Decimal:
419415
return decimal.Decimal(data)
416+
elif klass is uuid.UUID:
417+
return uuid.UUID(data)
420418
elif issubclass(klass, Enum):
421419
return self.__deserialize_enum(data, klass)
422420
else:

services/alb/src/stackit/alb/models/active_health_check.py

Lines changed: 13 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -19,6 +19,7 @@
1919
from typing import Any, ClassVar, Dict, List, Optional, Set
2020

2121
from pydantic import BaseModel, ConfigDict, Field, StrictInt, field_validator
22+
from pydantic_core import to_jsonable_python
2223
from typing_extensions import Annotated, Self
2324

2425
from stackit.alb.models.http_health_checks import HttpHealthChecks
@@ -66,6 +67,9 @@ def interval_validate_regular_expression(cls, value):
6667
if value is None:
6768
return value
6869

70+
if not isinstance(value, str):
71+
value = str(value)
72+
6973
if not re.match(r"^-?(?:0|[1-9][0-9]{0,11})(?:\.[0-9]{1,9})?s$", value):
7074
raise ValueError(r"must validate the regular expression /^-?(?:0|[1-9][0-9]{0,11})(?:\.[0-9]{1,9})?s$/")
7175
return value
@@ -76,6 +80,9 @@ def interval_jitter_validate_regular_expression(cls, value):
7680
if value is None:
7781
return value
7882

83+
if not isinstance(value, str):
84+
value = str(value)
85+
7986
if not re.match(r"^-?(?:0|[1-9][0-9]{0,11})(?:\.[0-9]{1,9})?s$", value):
8087
raise ValueError(r"must validate the regular expression /^-?(?:0|[1-9][0-9]{0,11})(?:\.[0-9]{1,9})?s$/")
8188
return value
@@ -86,12 +93,16 @@ def timeout_validate_regular_expression(cls, value):
8693
if value is None:
8794
return value
8895

96+
if not isinstance(value, str):
97+
value = str(value)
98+
8999
if not re.match(r"^-?(?:0|[1-9][0-9]{0,11})(?:\.[0-9]{1,9})?s$", value):
90100
raise ValueError(r"must validate the regular expression /^-?(?:0|[1-9][0-9]{0,11})(?:\.[0-9]{1,9})?s$/")
91101
return value
92102

93103
model_config = ConfigDict(
94-
populate_by_name=True,
104+
validate_by_name=True,
105+
validate_by_alias=True,
95106
validate_assignment=True,
96107
protected_namespaces=(),
97108
)
@@ -102,8 +113,7 @@ def to_str(self) -> str:
102113

103114
def to_json(self) -> str:
104115
"""Returns the JSON representation of the model using alias"""
105-
# TODO: pydantic v2: use .model_dump_json(by_alias=True, exclude_unset=True) instead
106-
return json.dumps(self.to_dict())
116+
return json.dumps(to_jsonable_python(self.to_dict()))
107117

108118
@classmethod
109119
def from_json(cls, json_str: str) -> Optional[Self]:

services/alb/src/stackit/alb/models/certificate_config.py

Lines changed: 4 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -18,6 +18,7 @@
1818
from typing import Any, ClassVar, Dict, List, Optional, Set
1919

2020
from pydantic import BaseModel, ConfigDict, Field, StrictStr
21+
from pydantic_core import to_jsonable_python
2122
from typing_extensions import Self
2223

2324

@@ -32,7 +33,8 @@ class CertificateConfig(BaseModel):
3233
__properties: ClassVar[List[str]] = ["certificateIds"]
3334

3435
model_config = ConfigDict(
35-
populate_by_name=True,
36+
validate_by_name=True,
37+
validate_by_alias=True,
3638
validate_assignment=True,
3739
protected_namespaces=(),
3840
)
@@ -43,8 +45,7 @@ def to_str(self) -> str:
4345

4446
def to_json(self) -> str:
4547
"""Returns the JSON representation of the model using alias"""
46-
# TODO: pydantic v2: use .model_dump_json(by_alias=True, exclude_unset=True) instead
47-
return json.dumps(self.to_dict())
48+
return json.dumps(to_jsonable_python(self.to_dict()))
4849

4950
@classmethod
5051
def from_json(cls, json_str: str) -> Optional[Self]:

services/alb/src/stackit/alb/models/cookie_persistence.py

Lines changed: 7 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -19,6 +19,7 @@
1919
from typing import Any, ClassVar, Dict, List, Optional, Set
2020

2121
from pydantic import BaseModel, ConfigDict, Field, StrictStr, field_validator
22+
from pydantic_core import to_jsonable_python
2223
from typing_extensions import Annotated, Self
2324

2425

@@ -40,12 +41,16 @@ def ttl_validate_regular_expression(cls, value):
4041
if value is None:
4142
return value
4243

44+
if not isinstance(value, str):
45+
value = str(value)
46+
4347
if not re.match(r"^-?(?:0|[1-9][0-9]{0,11})(?:\.[0-9]{1,9})?s$", value):
4448
raise ValueError(r"must validate the regular expression /^-?(?:0|[1-9][0-9]{0,11})(?:\.[0-9]{1,9})?s$/")
4549
return value
4650

4751
model_config = ConfigDict(
48-
populate_by_name=True,
52+
validate_by_name=True,
53+
validate_by_alias=True,
4954
validate_assignment=True,
5055
protected_namespaces=(),
5156
)
@@ -56,8 +61,7 @@ def to_str(self) -> str:
5661

5762
def to_json(self) -> str:
5863
"""Returns the JSON representation of the model using alias"""
59-
# TODO: pydantic v2: use .model_dump_json(by_alias=True, exclude_unset=True) instead
60-
return json.dumps(self.to_dict())
64+
return json.dumps(to_jsonable_python(self.to_dict()))
6165

6266
@classmethod
6367
def from_json(cls, json_str: str) -> Optional[Self]:

0 commit comments

Comments
 (0)