Skip to content

Commit b6e6411

Browse files
Generator: Update SDK /services/iaas (#50)
Co-authored-by: Melvin <[email protected]>
1 parent 0363266 commit b6e6411

22 files changed

+4620
-1373
lines changed

examples/iaas/example_setup.py

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -11,7 +11,7 @@
1111
from stackit.iaas.models.boot_volume import BootVolume
1212
from stackit.iaas.models.allowed_addresses_inner import AllowedAddressesInner
1313
from stackit.iaas.models.boot_volume_source import BootVolumeSource
14-
from stackit.iaas.models.create_nic_payload import CreateNICPayload
14+
from stackit.iaas.models.create_nic_payload import CreateNicPayload
1515
from stackit.iaas.models.create_public_ip_payload import CreatePublicIPPayload
1616
from stackit.iaas.models.create_security_group_payload import CreateSecurityGroupPayload
1717
from stackit.iaas.models.create_server_payload import CreateServerPayload
@@ -81,7 +81,7 @@
8181
nic1 = client.create_nic(
8282
project_id,
8383
network.network_id,
84-
CreateNICPayload(
84+
CreateNicPayload(
8585
allowed_addresses=[AllowedAddressesInner("192.0.2.0/24")],
8686
security_groups=[security_group1_groupid],
8787
),

services/iaas/src/stackit/iaas/__init__.py

Lines changed: 12 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -44,6 +44,7 @@
4444
from stackit.iaas.models.boot_volume_source import BootVolumeSource
4545
from stackit.iaas.models.create_area_address_family import CreateAreaAddressFamily
4646
from stackit.iaas.models.create_area_ipv4 import CreateAreaIPv4
47+
from stackit.iaas.models.create_key_pair_payload import CreateKeyPairPayload
4748
from stackit.iaas.models.create_network_address_family import CreateNetworkAddressFamily
4849
from stackit.iaas.models.create_network_area_payload import CreateNetworkAreaPayload
4950
from stackit.iaas.models.create_network_area_range_payload import (
@@ -55,7 +56,7 @@
5556
from stackit.iaas.models.create_network_ipv4_body import CreateNetworkIPv4Body
5657
from stackit.iaas.models.create_network_ipv6_body import CreateNetworkIPv6Body
5758
from stackit.iaas.models.create_network_payload import CreateNetworkPayload
58-
from stackit.iaas.models.create_nic_payload import CreateNICPayload
59+
from stackit.iaas.models.create_nic_payload import CreateNicPayload
5960
from stackit.iaas.models.create_protocol import CreateProtocol
6061
from stackit.iaas.models.create_public_ip_payload import CreatePublicIPPayload
6162
from stackit.iaas.models.create_security_group_payload import CreateSecurityGroupPayload
@@ -78,6 +79,10 @@
7879
from stackit.iaas.models.get_server_log200_response import GetServerLog200Response
7980
from stackit.iaas.models.get_server_log_request import GetServerLogRequest
8081
from stackit.iaas.models.icmp_parameters import ICMPParameters
82+
from stackit.iaas.models.key_pair_list_response import KeyPairListResponse
83+
from stackit.iaas.models.keypair import Keypair
84+
from stackit.iaas.models.machine_type import MachineType
85+
from stackit.iaas.models.machine_type_list_response import MachineTypeListResponse
8186
from stackit.iaas.models.network import Network
8287
from stackit.iaas.models.network_area import NetworkArea
8388
from stackit.iaas.models.network_area_ipv4 import NetworkAreaIPv4
@@ -125,13 +130,14 @@
125130
from stackit.iaas.models.update_attached_volume_payload import (
126131
UpdateAttachedVolumePayload,
127132
)
133+
from stackit.iaas.models.update_key_pair_payload import UpdateKeyPairPayload
128134
from stackit.iaas.models.update_network_address_family import UpdateNetworkAddressFamily
129135
from stackit.iaas.models.update_network_area_route_payload import (
130136
UpdateNetworkAreaRoutePayload,
131137
)
132138
from stackit.iaas.models.update_network_ipv4_body import UpdateNetworkIPv4Body
133139
from stackit.iaas.models.update_network_ipv6_body import UpdateNetworkIPv6Body
134-
from stackit.iaas.models.update_nic_payload import UpdateNICPayload
140+
from stackit.iaas.models.update_nic_payload import UpdateNicPayload
135141
from stackit.iaas.models.update_public_ip_payload import UpdatePublicIPPayload
136142
from stackit.iaas.models.update_security_group_payload import UpdateSecurityGroupPayload
137143
from stackit.iaas.models.update_server_payload import UpdateServerPayload
@@ -142,4 +148,8 @@
142148
VolumeAttachmentListResponse,
143149
)
144150
from stackit.iaas.models.volume_list_response import VolumeListResponse
151+
from stackit.iaas.models.volume_performance_class import VolumePerformanceClass
152+
from stackit.iaas.models.volume_performance_class_list_response import (
153+
VolumePerformanceClassListResponse,
154+
)
145155
from stackit.iaas.models.volume_source import VolumeSource

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

Lines changed: 3659 additions & 1349 deletions
Large diffs are not rendered by default.

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

Lines changed: 12 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -25,6 +25,7 @@
2525
from stackit.iaas.models.boot_volume_source import BootVolumeSource
2626
from stackit.iaas.models.create_area_address_family import CreateAreaAddressFamily
2727
from stackit.iaas.models.create_area_ipv4 import CreateAreaIPv4
28+
from stackit.iaas.models.create_key_pair_payload import CreateKeyPairPayload
2829
from stackit.iaas.models.create_network_address_family import CreateNetworkAddressFamily
2930
from stackit.iaas.models.create_network_area_payload import CreateNetworkAreaPayload
3031
from stackit.iaas.models.create_network_area_range_payload import (
@@ -36,7 +37,7 @@
3637
from stackit.iaas.models.create_network_ipv4_body import CreateNetworkIPv4Body
3738
from stackit.iaas.models.create_network_ipv6_body import CreateNetworkIPv6Body
3839
from stackit.iaas.models.create_network_payload import CreateNetworkPayload
39-
from stackit.iaas.models.create_nic_payload import CreateNICPayload
40+
from stackit.iaas.models.create_nic_payload import CreateNicPayload
4041
from stackit.iaas.models.create_protocol import CreateProtocol
4142
from stackit.iaas.models.create_public_ip_payload import CreatePublicIPPayload
4243
from stackit.iaas.models.create_security_group_payload import CreateSecurityGroupPayload
@@ -59,6 +60,10 @@
5960
from stackit.iaas.models.get_server_log200_response import GetServerLog200Response
6061
from stackit.iaas.models.get_server_log_request import GetServerLogRequest
6162
from stackit.iaas.models.icmp_parameters import ICMPParameters
63+
from stackit.iaas.models.key_pair_list_response import KeyPairListResponse
64+
from stackit.iaas.models.keypair import Keypair
65+
from stackit.iaas.models.machine_type import MachineType
66+
from stackit.iaas.models.machine_type_list_response import MachineTypeListResponse
6267
from stackit.iaas.models.network import Network
6368
from stackit.iaas.models.network_area import NetworkArea
6469
from stackit.iaas.models.network_area_ipv4 import NetworkAreaIPv4
@@ -106,13 +111,14 @@
106111
from stackit.iaas.models.update_attached_volume_payload import (
107112
UpdateAttachedVolumePayload,
108113
)
114+
from stackit.iaas.models.update_key_pair_payload import UpdateKeyPairPayload
109115
from stackit.iaas.models.update_network_address_family import UpdateNetworkAddressFamily
110116
from stackit.iaas.models.update_network_area_route_payload import (
111117
UpdateNetworkAreaRoutePayload,
112118
)
113119
from stackit.iaas.models.update_network_ipv4_body import UpdateNetworkIPv4Body
114120
from stackit.iaas.models.update_network_ipv6_body import UpdateNetworkIPv6Body
115-
from stackit.iaas.models.update_nic_payload import UpdateNICPayload
121+
from stackit.iaas.models.update_nic_payload import UpdateNicPayload
116122
from stackit.iaas.models.update_public_ip_payload import UpdatePublicIPPayload
117123
from stackit.iaas.models.update_security_group_payload import UpdateSecurityGroupPayload
118124
from stackit.iaas.models.update_server_payload import UpdateServerPayload
@@ -123,4 +129,8 @@
123129
VolumeAttachmentListResponse,
124130
)
125131
from stackit.iaas.models.volume_list_response import VolumeListResponse
132+
from stackit.iaas.models.volume_performance_class import VolumePerformanceClass
133+
from stackit.iaas.models.volume_performance_class_list_response import (
134+
VolumePerformanceClassListResponse,
135+
)
126136
from stackit.iaas.models.volume_source import VolumeSource

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

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -35,7 +35,7 @@ class AreaPrefixConfigIPv4(BaseModel):
3535
max_prefix_len: Optional[Annotated[int, Field(le=29, strict=True, ge=24)]] = Field(
3636
default=None, description="The maximal prefix length for networks in the network area.", alias="maxPrefixLen"
3737
)
38-
min_prefix_len: Optional[Annotated[int, Field(le=29, strict=True, ge=22)]] = Field(
38+
min_prefix_len: Optional[Annotated[int, Field(le=29, strict=True, ge=8)]] = Field(
3939
default=None, description="The minimal prefix length for networks in the network area.", alias="minPrefixLen"
4040
)
4141
__properties: ClassVar[List[str]] = ["defaultPrefixLen", "maxPrefixLen", "minPrefixLen"]

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

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -49,7 +49,7 @@ class CreateAreaIPv4(BaseModel):
4949
max_prefix_len: Optional[Annotated[int, Field(le=29, strict=True, ge=24)]] = Field(
5050
default=None, description="The maximal prefix length for networks in the network area.", alias="maxPrefixLen"
5151
)
52-
min_prefix_len: Optional[Annotated[int, Field(le=29, strict=True, ge=22)]] = Field(
52+
min_prefix_len: Optional[Annotated[int, Field(le=29, strict=True, ge=8)]] = Field(
5353
default=None, description="The minimal prefix length for networks in the network area.", alias="minPrefixLen"
5454
)
5555
__properties: ClassVar[List[str]] = [
Lines changed: 149 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,149 @@
1+
# coding: utf-8
2+
3+
"""
4+
IaaS-API
5+
6+
This API allows you to create and modify IaaS resources.
7+
8+
The version of the OpenAPI document: 1beta1
9+
10+
Generated by OpenAPI Generator (https://openapi-generator.tech)
11+
12+
Do not edit the class manually.
13+
""" # noqa: E501 docstring might be too long
14+
15+
from __future__ import annotations
16+
17+
import json
18+
import pprint
19+
import re
20+
from datetime import datetime
21+
from typing import Any, ClassVar, Dict, List, Optional, Set
22+
23+
from pydantic import BaseModel, ConfigDict, Field, field_validator
24+
from typing_extensions import Annotated, Self
25+
26+
27+
class CreateKeyPairPayload(BaseModel):
28+
"""
29+
Object that represents the public key of an SSH keypair and its name.
30+
"""
31+
32+
created_at: Optional[datetime] = Field(
33+
default=None, description="Date-time when resource was created.", alias="createdAt"
34+
)
35+
fingerprint: Optional[Annotated[str, Field(min_length=47, strict=True, max_length=47)]] = Field(
36+
default=None, description="Object that represents an SSH keypair MD5 fingerprint."
37+
)
38+
labels: Optional[Dict[str, Any]] = Field(
39+
default=None, description="Object that represents the labels of an object."
40+
)
41+
name: Optional[Annotated[str, Field(strict=True, max_length=127)]] = Field(
42+
default=None,
43+
description="The name of an SSH keypair. Allowed characters are letters [a-zA-Z], digits [0-9] and the following special characters: [@._-].",
44+
)
45+
public_key: Annotated[str, Field(strict=True)] = Field(
46+
description="Object that represents a public SSH key.", alias="publicKey"
47+
)
48+
updated_at: Optional[datetime] = Field(
49+
default=None, description="Date-time when resource was last updated.", alias="updatedAt"
50+
)
51+
__properties: ClassVar[List[str]] = ["createdAt", "fingerprint", "labels", "name", "publicKey", "updatedAt"]
52+
53+
@field_validator("fingerprint")
54+
def fingerprint_validate_regular_expression(cls, value):
55+
"""Validates the regular expression"""
56+
if value is None:
57+
return value
58+
59+
if not re.match(r"^([0-9A-Fa-f]{2}[:-]){15}([0-9A-Fa-f]{2})$", value):
60+
raise ValueError(r"must validate the regular expression /^([0-9A-Fa-f]{2}[:-]){15}([0-9A-Fa-f]{2})$/")
61+
return value
62+
63+
@field_validator("name")
64+
def name_validate_regular_expression(cls, value):
65+
"""Validates the regular expression"""
66+
if value is None:
67+
return value
68+
69+
if not re.match(r"^[A-Za-z0-9@._-]*$", value):
70+
raise ValueError(r"must validate the regular expression /^[A-Za-z0-9@._-]*$/")
71+
return value
72+
73+
@field_validator("public_key")
74+
def public_key_validate_regular_expression(cls, value):
75+
"""Validates the regular expression"""
76+
if not re.match(r"^(ssh-rsa|ssh-ed25519)\s+[A-Za-z0-9+\/]+[=]{0,3}(\s+.+)?\s*$", value):
77+
raise ValueError(
78+
r"must validate the regular expression /^(ssh-rsa|ssh-ed25519)\s+[A-Za-z0-9+\/]+[=]{0,3}(\s+.+)?\s*$/"
79+
)
80+
return value
81+
82+
model_config = ConfigDict(
83+
populate_by_name=True,
84+
validate_assignment=True,
85+
protected_namespaces=(),
86+
)
87+
88+
def to_str(self) -> str:
89+
"""Returns the string representation of the model using alias"""
90+
return pprint.pformat(self.model_dump(by_alias=True))
91+
92+
def to_json(self) -> str:
93+
"""Returns the JSON representation of the model using alias"""
94+
# TODO: pydantic v2: use .model_dump_json(by_alias=True, exclude_unset=True) instead
95+
return json.dumps(self.to_dict())
96+
97+
@classmethod
98+
def from_json(cls, json_str: str) -> Optional[Self]:
99+
"""Create an instance of CreateKeyPairPayload from a JSON string"""
100+
return cls.from_dict(json.loads(json_str))
101+
102+
def to_dict(self) -> Dict[str, Any]:
103+
"""Return the dictionary representation of the model using alias.
104+
105+
This has the following differences from calling pydantic's
106+
`self.model_dump(by_alias=True)`:
107+
108+
* `None` is only added to the output dict for nullable fields that
109+
were set at model initialization. Other fields with value `None`
110+
are ignored.
111+
* OpenAPI `readOnly` fields are excluded.
112+
* OpenAPI `readOnly` fields are excluded.
113+
* OpenAPI `readOnly` fields are excluded.
114+
"""
115+
excluded_fields: Set[str] = set(
116+
[
117+
"created_at",
118+
"fingerprint",
119+
"updated_at",
120+
]
121+
)
122+
123+
_dict = self.model_dump(
124+
by_alias=True,
125+
exclude=excluded_fields,
126+
exclude_none=True,
127+
)
128+
return _dict
129+
130+
@classmethod
131+
def from_dict(cls, obj: Optional[Dict[str, Any]]) -> Optional[Self]:
132+
"""Create an instance of CreateKeyPairPayload from a dict"""
133+
if obj is None:
134+
return None
135+
136+
if not isinstance(obj, dict):
137+
return cls.model_validate(obj)
138+
139+
_obj = cls.model_validate(
140+
{
141+
"createdAt": obj.get("createdAt"),
142+
"fingerprint": obj.get("fingerprint"),
143+
"labels": obj.get("labels"),
144+
"name": obj.get("name"),
145+
"publicKey": obj.get("publicKey"),
146+
"updatedAt": obj.get("updatedAt"),
147+
}
148+
)
149+
return _obj

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

Lines changed: 1 addition & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -38,9 +38,7 @@ class CreateNetworkIPv4Body(BaseModel):
3838
prefix: Optional[Annotated[str, Field(strict=True)]] = Field(
3939
default=None, description="Classless Inter-Domain Routing (CIDR)."
4040
)
41-
prefix_length: Optional[Annotated[int, Field(le=29, strict=True, ge=22)]] = Field(
42-
default=None, alias="prefixLength"
43-
)
41+
prefix_length: Optional[Annotated[int, Field(le=29, strict=True, ge=8)]] = Field(default=None, alias="prefixLength")
4442
__properties: ClassVar[List[str]] = ["gateway", "nameservers", "prefix", "prefixLength"]
4543

4644
@field_validator("gateway")

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

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -32,7 +32,7 @@
3232
from stackit.iaas.models.allowed_addresses_inner import AllowedAddressesInner
3333

3434

35-
class CreateNICPayload(BaseModel):
35+
class CreateNicPayload(BaseModel):
3636
"""
3737
Object that represents a network interface.
3838
"""
@@ -193,7 +193,7 @@ def to_json(self) -> str:
193193

194194
@classmethod
195195
def from_json(cls, json_str: str) -> Optional[Self]:
196-
"""Create an instance of CreateNICPayload from a JSON string"""
196+
"""Create an instance of CreateNicPayload from a JSON string"""
197197
return cls.from_dict(json.loads(json_str))
198198

199199
def to_dict(self) -> Dict[str, Any]:
@@ -239,7 +239,7 @@ def to_dict(self) -> Dict[str, Any]:
239239

240240
@classmethod
241241
def from_dict(cls, obj: Optional[Dict[str, Any]]) -> Optional[Self]:
242-
"""Create an instance of CreateNICPayload from a dict"""
242+
"""Create an instance of CreateNicPayload from a dict"""
243243
if obj is None:
244244
return None
245245

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

Lines changed: 12 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -20,7 +20,15 @@
2020
from datetime import datetime
2121
from typing import Any, ClassVar, Dict, List, Optional, Set
2222

23-
from pydantic import BaseModel, ConfigDict, Field, StrictInt, StrictStr, field_validator
23+
from pydantic import (
24+
BaseModel,
25+
ConfigDict,
26+
Field,
27+
StrictBool,
28+
StrictInt,
29+
StrictStr,
30+
field_validator,
31+
)
2432
from typing_extensions import Annotated, Self
2533

2634
from stackit.iaas.models.volume_source import VolumeSource
@@ -34,6 +42,7 @@ class CreateVolumePayload(BaseModel):
3442
availability_zone: StrictStr = Field(
3543
description="Object that represents an availability zone.", alias="availabilityZone"
3644
)
45+
bootable: Optional[StrictBool] = Field(default=None, description="Indicates if a volume is bootable.")
3746
created_at: Optional[datetime] = Field(
3847
default=None, description="Date-time when resource was created.", alias="createdAt"
3948
)
@@ -65,6 +74,7 @@ class CreateVolumePayload(BaseModel):
6574
)
6675
__properties: ClassVar[List[str]] = [
6776
"availabilityZone",
77+
"bootable",
6878
"createdAt",
6979
"description",
7080
"id",
@@ -189,6 +199,7 @@ def from_dict(cls, obj: Optional[Dict[str, Any]]) -> Optional[Self]:
189199
_obj = cls.model_validate(
190200
{
191201
"availabilityZone": obj.get("availabilityZone"),
202+
"bootable": obj.get("bootable"),
192203
"createdAt": obj.get("createdAt"),
193204
"description": obj.get("description"),
194205
"id": obj.get("id"),

0 commit comments

Comments
 (0)