Skip to content

Commit c7340e3

Browse files
Generator: Update SDK /services/iaas (#1299)
Co-authored-by: Benjosh95 <[email protected]>
1 parent 3b07ac5 commit c7340e3

36 files changed

+172
-116
lines changed

CHANGELOG.md

Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -9,6 +9,17 @@
99
- new model `OfferType`
1010
- new attribute `CatalogProductDetail` for `CatalogProductDetail` model
1111
- Attribute `is_product_listing` in `CatalogProductDetail` is now of type `Optional[StrictBool]` (previously `StrictBool`)
12+
- `iaas`: [v0.5.4](services/iaas/CHANGELOG.md#v054)
13+
- **Improvement:** Increase max length of `machine_type` and `volume_performance_class` fields from 63 to 127 characters in API methods
14+
- **Improvement:** Increase max length of `name` fields from 63 to 127 characters for various models:
15+
- `AffinityGroup`, `Backup`, `BootVolume`, `CreateAffinityGroupPayload`, `CreateBackupPayload`
16+
`CreateImagePayload`, `CreateNetworkAreaPayload`, `CreateNetworkPayload`, `CreateNicPayload`
17+
`CreateSecurityGroupPayload`, `CreateServerPayload`, `CreateSnapshotPayload`, `CreateVolumePayload`
18+
`Image`, `MachineType`, `Nic`, `PartialUpdateNetworkAreaPayload`, `PartialUpdateNetworkPayload`
19+
`ResizeServerPayload`, `SecurityGroup`, `Server`, `ServerNetwork`, `Snapshot`
20+
`UpdateBackupPayload`, `UpdateImagePayload`, `UpdateNicPayload`, `UpdateSecurityGroupPayload`
21+
`UpdateServerPayload`, `UpdateSnapshotPayload`, `UpdateVolumePayload`, `Volume`, `VolumePerformanceClass`
22+
- **Improvement:** Update regular expression pattern for name validation to allow more flexible naming conventions
1223

1324
## Release (2025-06-16)
1425
- `core`: [v0.2.0](core/CHANGELOG.md#v020-2025-06-12)

services/iaas/CHANGELOG.md

Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,15 @@
1+
## v0.5.4
2+
- **Improvement:** Increase max length of `machine_type` and `volume_performance_class` fields from 63 to 127 characters in API methods
3+
- **Improvement:** Increase max length of `name` fields from 63 to 127 characters for various models:
4+
- `AffinityGroup`, `Backup`, `BootVolume`, `CreateAffinityGroupPayload`, `CreateBackupPayload`
5+
`CreateImagePayload`, `CreateNetworkAreaPayload`, `CreateNetworkPayload`, `CreateNicPayload`
6+
`CreateSecurityGroupPayload`, `CreateServerPayload`, `CreateSnapshotPayload`, `CreateVolumePayload`
7+
`Image`, `MachineType`, `Nic`, `PartialUpdateNetworkAreaPayload`, `PartialUpdateNetworkPayload`
8+
`ResizeServerPayload`, `SecurityGroup`, `Server`, `ServerNetwork`, `Snapshot`
9+
`UpdateBackupPayload`, `UpdateImagePayload`, `UpdateNicPayload`, `UpdateSecurityGroupPayload`
10+
`UpdateServerPayload`, `UpdateSnapshotPayload`, `UpdateVolumePayload`, `Volume`, `VolumePerformanceClass`
11+
- **Improvement:** Update regular expression pattern for name validation to allow more flexible naming conventions
12+
113
## v0.5.3 (2025-06-12)
214
- Increase max length of description from 127 to 255 for
315
- Security groups: `BaseSecurityGroupRule`, `CreateSecurityGroupPayload`, `CreateSecurityGroupRulePayload`, `SecurityGroup`, `SecurityGroupRule`, `UpdateSecurityGroupPayload`

services/iaas/pyproject.toml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,7 @@ name = "stackit-iaas"
33

44
[tool.poetry]
55
name = "stackit-iaas"
6-
version = "v0.5.3"
6+
version = "v0.5.4"
77
authors = [
88
"STACKIT Developer Tools <[email protected]>",
99
]

services/iaas/src/stackit/iaas/api/default_api.py

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -13378,7 +13378,7 @@ def get_machine_type(
1337813378
str,
1337913379
Field(min_length=36, strict=True, max_length=36, description="The identifier (ID) of a STACKIT Project."),
1338013380
],
13381-
machine_type: Annotated[str, Field(strict=True, max_length=63, description="STACKIT machine type Name.")],
13381+
machine_type: Annotated[str, Field(strict=True, max_length=127, description="STACKIT machine type Name.")],
1338213382
_request_timeout: Union[
1338313383
None,
1338413384
Annotated[StrictFloat, Field(gt=0)],
@@ -13450,7 +13450,7 @@ def get_machine_type_with_http_info(
1345013450
str,
1345113451
Field(min_length=36, strict=True, max_length=36, description="The identifier (ID) of a STACKIT Project."),
1345213452
],
13453-
machine_type: Annotated[str, Field(strict=True, max_length=63, description="STACKIT machine type Name.")],
13453+
machine_type: Annotated[str, Field(strict=True, max_length=127, description="STACKIT machine type Name.")],
1345413454
_request_timeout: Union[
1345513455
None,
1345613456
Annotated[StrictFloat, Field(gt=0)],
@@ -13522,7 +13522,7 @@ def get_machine_type_without_preload_content(
1352213522
str,
1352313523
Field(min_length=36, strict=True, max_length=36, description="The identifier (ID) of a STACKIT Project."),
1352413524
],
13525-
machine_type: Annotated[str, Field(strict=True, max_length=63, description="STACKIT machine type Name.")],
13525+
machine_type: Annotated[str, Field(strict=True, max_length=127, description="STACKIT machine type Name.")],
1352613526
_request_timeout: Union[
1352713527
None,
1352813528
Annotated[StrictFloat, Field(gt=0)],
@@ -18260,7 +18260,7 @@ def get_volume_performance_class(
1826018260
Field(min_length=36, strict=True, max_length=36, description="The identifier (ID) of a STACKIT Project."),
1826118261
],
1826218262
volume_performance_class: Annotated[
18263-
str, Field(strict=True, max_length=63, description="The name of a STACKIT Volume performance class.")
18263+
str, Field(strict=True, max_length=127, description="The name of a STACKIT Volume performance class.")
1826418264
],
1826518265
_request_timeout: Union[
1826618266
None,
@@ -18334,7 +18334,7 @@ def get_volume_performance_class_with_http_info(
1833418334
Field(min_length=36, strict=True, max_length=36, description="The identifier (ID) of a STACKIT Project."),
1833518335
],
1833618336
volume_performance_class: Annotated[
18337-
str, Field(strict=True, max_length=63, description="The name of a STACKIT Volume performance class.")
18337+
str, Field(strict=True, max_length=127, description="The name of a STACKIT Volume performance class.")
1833818338
],
1833918339
_request_timeout: Union[
1834018340
None,
@@ -18408,7 +18408,7 @@ def get_volume_performance_class_without_preload_content(
1840818408
Field(min_length=36, strict=True, max_length=36, description="The identifier (ID) of a STACKIT Project."),
1840918409
],
1841018410
volume_performance_class: Annotated[
18411-
str, Field(strict=True, max_length=63, description="The name of a STACKIT Volume performance class.")
18411+
str, Field(strict=True, max_length=127, description="The name of a STACKIT Volume performance class.")
1841218412
],
1841318413
_request_timeout: Union[
1841418414
None,

services/iaas/src/stackit/iaas/models/affinity_group.py

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -34,7 +34,7 @@ class AffinityGroup(BaseModel):
3434
members: Optional[List[Annotated[str, Field(min_length=36, strict=True, max_length=36)]]] = Field(
3535
default=None, description="The servers that are part of the affinity group."
3636
)
37-
name: Annotated[str, Field(strict=True, max_length=63)] = Field(
37+
name: Annotated[str, Field(strict=True, max_length=127)] = Field(
3838
description="The name for a General Object. Matches Names and also UUIDs."
3939
)
4040
policy: StrictStr = Field(
@@ -57,8 +57,8 @@ def id_validate_regular_expression(cls, value):
5757
@field_validator("name")
5858
def name_validate_regular_expression(cls, value):
5959
"""Validates the regular expression"""
60-
if not re.match(r"^[A-Za-z0-9]+((-|_|\s|\.)[A-Za-z0-9]+)*$", value):
61-
raise ValueError(r"must validate the regular expression /^[A-Za-z0-9]+((-|_|\s|\.)[A-Za-z0-9]+)*$/")
60+
if not re.match(r"^[A-Za-z0-9]+([ \/._-]*[A-Za-z0-9]+)*$", value):
61+
raise ValueError(r"must validate the regular expression /^[A-Za-z0-9]+([ \/._-]*[A-Za-z0-9]+)*$/")
6262
return value
6363

6464
model_config = ConfigDict(

services/iaas/src/stackit/iaas/models/backup.py

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -42,7 +42,7 @@ class Backup(BaseModel):
4242
default=None,
4343
description="Object that represents the labels of an object. Regex for keys: `^[a-z]((-|_|[a-z0-9])){0,62}$`. Regex for values: `^(-|_|[a-z0-9]){0,63}$`.",
4444
)
45-
name: Optional[Annotated[str, Field(strict=True, max_length=63)]] = Field(
45+
name: Optional[Annotated[str, Field(strict=True, max_length=127)]] = Field(
4646
default=None, description="The name for a General Object. Matches Names and also UUIDs."
4747
)
4848
size: Optional[StrictInt] = Field(default=None, description="Size in Gigabyte.")
@@ -90,8 +90,8 @@ def name_validate_regular_expression(cls, value):
9090
if value is None:
9191
return value
9292

93-
if not re.match(r"^[A-Za-z0-9]+((-|_|\s|\.)[A-Za-z0-9]+)*$", value):
94-
raise ValueError(r"must validate the regular expression /^[A-Za-z0-9]+((-|_|\s|\.)[A-Za-z0-9]+)*$/")
93+
if not re.match(r"^[A-Za-z0-9]+([ \/._-]*[A-Za-z0-9]+)*$", value):
94+
raise ValueError(r"must validate the regular expression /^[A-Za-z0-9]+([ \/._-]*[A-Za-z0-9]+)*$/")
9595
return value
9696

9797
@field_validator("snapshot_id")

services/iaas/src/stackit/iaas/models/boot_volume.py

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -45,7 +45,7 @@ class BootVolume(BaseModel):
4545
id: Optional[Annotated[str, Field(min_length=36, strict=True, max_length=36)]] = Field(
4646
default=None, description="Universally Unique Identifier (UUID)."
4747
)
48-
performance_class: Optional[Annotated[str, Field(strict=True, max_length=63)]] = Field(
48+
performance_class: Optional[Annotated[str, Field(strict=True, max_length=127)]] = Field(
4949
default=None,
5050
description="The name for a General Object. Matches Names and also UUIDs.",
5151
alias="performanceClass",
@@ -72,8 +72,8 @@ def performance_class_validate_regular_expression(cls, value):
7272
if value is None:
7373
return value
7474

75-
if not re.match(r"^[A-Za-z0-9]+((-|_|\s|\.)[A-Za-z0-9]+)*$", value):
76-
raise ValueError(r"must validate the regular expression /^[A-Za-z0-9]+((-|_|\s|\.)[A-Za-z0-9]+)*$/")
75+
if not re.match(r"^[A-Za-z0-9]+([ \/._-]*[A-Za-z0-9]+)*$", value):
76+
raise ValueError(r"must validate the regular expression /^[A-Za-z0-9]+([ \/._-]*[A-Za-z0-9]+)*$/")
7777
return value
7878

7979
model_config = ConfigDict(

services/iaas/src/stackit/iaas/models/create_affinity_group_payload.py

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -34,7 +34,7 @@ class CreateAffinityGroupPayload(BaseModel):
3434
members: Optional[List[Annotated[str, Field(min_length=36, strict=True, max_length=36)]]] = Field(
3535
default=None, description="The servers that are part of the affinity group."
3636
)
37-
name: Annotated[str, Field(strict=True, max_length=63)] = Field(
37+
name: Annotated[str, Field(strict=True, max_length=127)] = Field(
3838
description="The name for a General Object. Matches Names and also UUIDs."
3939
)
4040
policy: StrictStr = Field(
@@ -57,8 +57,8 @@ def id_validate_regular_expression(cls, value):
5757
@field_validator("name")
5858
def name_validate_regular_expression(cls, value):
5959
"""Validates the regular expression"""
60-
if not re.match(r"^[A-Za-z0-9]+((-|_|\s|\.)[A-Za-z0-9]+)*$", value):
61-
raise ValueError(r"must validate the regular expression /^[A-Za-z0-9]+((-|_|\s|\.)[A-Za-z0-9]+)*$/")
60+
if not re.match(r"^[A-Za-z0-9]+([ \/._-]*[A-Za-z0-9]+)*$", value):
61+
raise ValueError(r"must validate the regular expression /^[A-Za-z0-9]+([ \/._-]*[A-Za-z0-9]+)*$/")
6262
return value
6363

6464
model_config = ConfigDict(

services/iaas/src/stackit/iaas/models/create_backup_payload.py

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -34,7 +34,7 @@ class CreateBackupPayload(BaseModel):
3434
default=None,
3535
description="Object that represents the labels of an object. Regex for keys: `^[a-z]((-|_|[a-z0-9])){0,62}$`. Regex for values: `^(-|_|[a-z0-9]){0,63}$`.",
3636
)
37-
name: Optional[Annotated[str, Field(strict=True, max_length=63)]] = Field(
37+
name: Optional[Annotated[str, Field(strict=True, max_length=127)]] = Field(
3838
default=None, description="The name for a General Object. Matches Names and also UUIDs."
3939
)
4040
source: BackupSource
@@ -46,8 +46,8 @@ def name_validate_regular_expression(cls, value):
4646
if value is None:
4747
return value
4848

49-
if not re.match(r"^[A-Za-z0-9]+((-|_|\s|\.)[A-Za-z0-9]+)*$", value):
50-
raise ValueError(r"must validate the regular expression /^[A-Za-z0-9]+((-|_|\s|\.)[A-Za-z0-9]+)*$/")
49+
if not re.match(r"^[A-Za-z0-9]+([ \/._-]*[A-Za-z0-9]+)*$", value):
50+
raise ValueError(r"must validate the regular expression /^[A-Za-z0-9]+([ \/._-]*[A-Za-z0-9]+)*$/")
5151
return value
5252

5353
model_config = ConfigDict(

services/iaas/src/stackit/iaas/models/create_image_payload.py

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -57,7 +57,7 @@ class CreateImagePayload(BaseModel):
5757
)
5858
min_disk_size: Optional[StrictInt] = Field(default=None, description="Size in Gigabyte.", alias="minDiskSize")
5959
min_ram: Optional[StrictInt] = Field(default=None, description="Size in Megabyte.", alias="minRam")
60-
name: Annotated[str, Field(strict=True, max_length=63)] = Field(
60+
name: Annotated[str, Field(strict=True, max_length=127)] = Field(
6161
description="The name for a General Object. Matches Names and also UUIDs."
6262
)
6363
owner: Optional[Annotated[str, Field(min_length=36, strict=True, max_length=36)]] = Field(
@@ -108,8 +108,8 @@ def id_validate_regular_expression(cls, value):
108108
@field_validator("name")
109109
def name_validate_regular_expression(cls, value):
110110
"""Validates the regular expression"""
111-
if not re.match(r"^[A-Za-z0-9]+((-|_|\s|\.)[A-Za-z0-9]+)*$", value):
112-
raise ValueError(r"must validate the regular expression /^[A-Za-z0-9]+((-|_|\s|\.)[A-Za-z0-9]+)*$/")
111+
if not re.match(r"^[A-Za-z0-9]+([ \/._-]*[A-Za-z0-9]+)*$", value):
112+
raise ValueError(r"must validate the regular expression /^[A-Za-z0-9]+([ \/._-]*[A-Za-z0-9]+)*$/")
113113
return value
114114

115115
@field_validator("owner")

services/iaas/src/stackit/iaas/models/create_network_area_payload.py

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -35,16 +35,16 @@ class CreateNetworkAreaPayload(BaseModel):
3535
default=None,
3636
description="Object that represents the labels of an object. Regex for keys: `^[a-z]((-|_|[a-z0-9])){0,62}$`. Regex for values: `^(-|_|[a-z0-9]){0,63}$`.",
3737
)
38-
name: Annotated[str, Field(strict=True, max_length=63)] = Field(
38+
name: Annotated[str, Field(strict=True, max_length=127)] = Field(
3939
description="The name for a General Object. Matches Names and also UUIDs."
4040
)
4141
__properties: ClassVar[List[str]] = ["addressFamily", "labels", "name"]
4242

4343
@field_validator("name")
4444
def name_validate_regular_expression(cls, value):
4545
"""Validates the regular expression"""
46-
if not re.match(r"^[A-Za-z0-9]+((-|_|\s|\.)[A-Za-z0-9]+)*$", value):
47-
raise ValueError(r"must validate the regular expression /^[A-Za-z0-9]+((-|_|\s|\.)[A-Za-z0-9]+)*$/")
46+
if not re.match(r"^[A-Za-z0-9]+([ \/._-]*[A-Za-z0-9]+)*$", value):
47+
raise ValueError(r"must validate the regular expression /^[A-Za-z0-9]+([ \/._-]*[A-Za-z0-9]+)*$/")
4848
return value
4949

5050
model_config = ConfigDict(

services/iaas/src/stackit/iaas/models/create_network_payload.py

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -35,7 +35,7 @@ class CreateNetworkPayload(BaseModel):
3535
default=None,
3636
description="Object that represents the labels of an object. Regex for keys: `^[a-z]((-|_|[a-z0-9])){0,62}$`. Regex for values: `^(-|_|[a-z0-9]){0,63}$`.",
3737
)
38-
name: Annotated[str, Field(strict=True, max_length=63)] = Field(
38+
name: Annotated[str, Field(strict=True, max_length=127)] = Field(
3939
description="The name for a General Object. Matches Names and also UUIDs."
4040
)
4141
routed: Optional[StrictBool] = Field(
@@ -46,8 +46,8 @@ class CreateNetworkPayload(BaseModel):
4646
@field_validator("name")
4747
def name_validate_regular_expression(cls, value):
4848
"""Validates the regular expression"""
49-
if not re.match(r"^[A-Za-z0-9]+((-|_|\s|\.)[A-Za-z0-9]+)*$", value):
50-
raise ValueError(r"must validate the regular expression /^[A-Za-z0-9]+((-|_|\s|\.)[A-Za-z0-9]+)*$/")
49+
if not re.match(r"^[A-Za-z0-9]+([ \/._-]*[A-Za-z0-9]+)*$", value):
50+
raise ValueError(r"must validate the regular expression /^[A-Za-z0-9]+([ \/._-]*[A-Za-z0-9]+)*$/")
5151
return value
5252

5353
model_config = ConfigDict(

services/iaas/src/stackit/iaas/models/create_nic_payload.py

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -59,7 +59,7 @@ class CreateNicPayload(BaseModel):
5959
mac: Optional[Annotated[str, Field(strict=True)]] = Field(
6060
default=None, description="Object that represents an MAC address."
6161
)
62-
name: Optional[Annotated[str, Field(strict=True, max_length=63)]] = Field(
62+
name: Optional[Annotated[str, Field(strict=True, max_length=127)]] = Field(
6363
default=None, description="The name for a General Object. Matches Names and also UUIDs."
6464
)
6565
network_id: Optional[Annotated[str, Field(min_length=36, strict=True, max_length=36)]] = Field(
@@ -161,8 +161,8 @@ def name_validate_regular_expression(cls, value):
161161
if value is None:
162162
return value
163163

164-
if not re.match(r"^[A-Za-z0-9]+((-|_|\s|\.)[A-Za-z0-9]+)*$", value):
165-
raise ValueError(r"must validate the regular expression /^[A-Za-z0-9]+((-|_|\s|\.)[A-Za-z0-9]+)*$/")
164+
if not re.match(r"^[A-Za-z0-9]+([ \/._-]*[A-Za-z0-9]+)*$", value):
165+
raise ValueError(r"must validate the regular expression /^[A-Za-z0-9]+([ \/._-]*[A-Za-z0-9]+)*$/")
166166
return value
167167

168168
@field_validator("network_id")

services/iaas/src/stackit/iaas/models/create_security_group_payload.py

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -44,7 +44,7 @@ class CreateSecurityGroupPayload(BaseModel):
4444
default=None,
4545
description="Object that represents the labels of an object. Regex for keys: `^[a-z]((-|_|[a-z0-9])){0,62}$`. Regex for values: `^(-|_|[a-z0-9]){0,63}$`.",
4646
)
47-
name: Annotated[str, Field(strict=True, max_length=63)] = Field(
47+
name: Annotated[str, Field(strict=True, max_length=127)] = Field(
4848
description="The name for a General Object. Matches Names and also UUIDs."
4949
)
5050
rules: Optional[List[SecurityGroupRule]] = Field(
@@ -83,8 +83,8 @@ def id_validate_regular_expression(cls, value):
8383
@field_validator("name")
8484
def name_validate_regular_expression(cls, value):
8585
"""Validates the regular expression"""
86-
if not re.match(r"^[A-Za-z0-9]+((-|_|\s|\.)[A-Za-z0-9]+)*$", value):
87-
raise ValueError(r"must validate the regular expression /^[A-Za-z0-9]+((-|_|\s|\.)[A-Za-z0-9]+)*$/")
86+
if not re.match(r"^[A-Za-z0-9]+([ \/._-]*[A-Za-z0-9]+)*$", value):
87+
raise ValueError(r"must validate the regular expression /^[A-Za-z0-9]+([ \/._-]*[A-Za-z0-9]+)*$/")
8888
return value
8989

9090
model_config = ConfigDict(

0 commit comments

Comments
 (0)