Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
1 change: 0 additions & 1 deletion services/iaas/src/stackit/iaas/__init__.py
Original file line number Diff line number Diff line change
Expand Up @@ -14,7 +14,6 @@
Do not edit the class manually.
""" # noqa: E501


__version__ = "1.0.0"

# Define package exports
Expand Down
6,079 changes: 1,579 additions & 4,500 deletions services/iaas/src/stackit/iaas/api/default_api.py

Large diffs are not rendered by default.

1 change: 0 additions & 1 deletion services/iaas/src/stackit/iaas/models/__init__.py
Original file line number Diff line number Diff line change
Expand Up @@ -13,7 +13,6 @@
Do not edit the class manually.
""" # noqa: E501


# import models into model package
from stackit.iaas.models.add_routes_to_routing_table_payload import (
AddRoutesToRoutingTablePayload,
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -19,6 +19,7 @@
import re # noqa: F401
from datetime import datetime
from typing import Any, ClassVar, Dict, List, Optional, Set
from uuid import UUID

from pydantic import BaseModel, ConfigDict, Field, StrictBool, field_validator
from typing_extensions import Annotated, Self
Expand All @@ -44,9 +45,7 @@ class AddRoutingTableToAreaPayload(BaseModel):
description="A config setting for a routing table which allows propagation of dynamic routes to this routing table.",
alias="dynamicRoutes",
)
id: Optional[Annotated[str, Field(min_length=36, strict=True, max_length=36)]] = Field(
default=None, description="Universally Unique Identifier (UUID)."
)
id: Optional[UUID] = Field(default=None, description="Universally Unique Identifier (UUID).")
labels: Optional[Dict[str, Any]] = Field(
default=None,
description="Object that represents the labels of an object. Regex for keys: `^(?=.{1,63}$)([A-Za-z0-9][-A-Za-z0-9_.]*)?[A-Za-z0-9]$`. Regex for values: `^(?=.{0,63}$)(([A-Za-z0-9][-A-Za-z0-9_.]*)?[A-Za-z0-9])*$`. Providing a `null` value for a key will remove that key.",
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -18,9 +18,10 @@
import pprint
import re # noqa: F401
from typing import Any, ClassVar, Dict, List, Optional, Set
from uuid import UUID

from pydantic import BaseModel, ConfigDict, Field, StrictBool, field_validator
from typing_extensions import Annotated, Self
from typing_extensions import Self


class AddVolumeToServerPayload(BaseModel):
Expand All @@ -33,10 +34,10 @@ class AddVolumeToServerPayload(BaseModel):
description="Delete the volume during the termination of the server. Defaults to false.",
alias="deleteOnTermination",
)
server_id: Optional[Annotated[str, Field(min_length=36, strict=True, max_length=36)]] = Field(
server_id: Optional[UUID] = Field(
default=None, description="Universally Unique Identifier (UUID).", alias="serverId"
)
volume_id: Optional[Annotated[str, Field(min_length=36, strict=True, max_length=36)]] = Field(
volume_id: Optional[UUID] = Field(
default=None, description="Universally Unique Identifier (UUID).", alias="volumeId"
)
__properties: ClassVar[List[str]] = ["deleteOnTermination", "serverId", "volumeId"]
Expand Down
9 changes: 3 additions & 6 deletions services/iaas/src/stackit/iaas/models/affinity_group.py
Original file line number Diff line number Diff line change
Expand Up @@ -18,6 +18,7 @@
import pprint
import re # noqa: F401
from typing import Any, ClassVar, Dict, List, Optional, Set
from uuid import UUID

from pydantic import BaseModel, ConfigDict, Field, StrictStr, field_validator
from typing_extensions import Annotated, Self
Expand All @@ -28,12 +29,8 @@ class AffinityGroup(BaseModel):
Definition of an affinity group.
""" # noqa: E501

id: Optional[Annotated[str, Field(min_length=36, strict=True, max_length=36)]] = Field(
default=None, description="Universally Unique Identifier (UUID)."
)
members: Optional[List[Annotated[str, Field(min_length=36, strict=True, max_length=36)]]] = Field(
default=None, description="The servers that are part of the affinity group."
)
id: Optional[UUID] = Field(default=None, description="Universally Unique Identifier (UUID).")
members: Optional[List[UUID]] = Field(default=None, description="The servers that are part of the affinity group.")
name: Annotated[str, Field(strict=True, max_length=127)] = Field(
description="The name for a General Object. Matches Names and also UUIDs."
)
Expand Down
27 changes: 15 additions & 12 deletions services/iaas/src/stackit/iaas/models/area_id.py
Original file line number Diff line number Diff line change
Expand Up @@ -18,6 +18,7 @@
import pprint
import re
from typing import Any, Dict, Optional, Set, Union
from uuid import UUID

from pydantic import (
BaseModel,
Expand All @@ -26,34 +27,36 @@
ValidationError,
field_validator,
)
from typing_extensions import Annotated, Self
from typing_extensions import Self

from stackit.iaas.models.static_area_id import StaticAreaID

from typing import Annotated

AREAID_ONE_OF_SCHEMAS = ["StaticAreaID", "str"]

AREAID_ONE_OF_SCHEMAS = ["StaticAreaID", "UUID"]


class AreaId(BaseModel):
"""
The identifier (ID) of an area.
"""

# data type: str
# data type: UUID
# BEGIN of the workaround until upstream issues are fixed:
# https://github.com/OpenAPITools/openapi-generator/issues/19034 from Jun 28, 2024
# and https://github.com/OpenAPITools/openapi-generator/issues/19842 from Oct 11, 2024
# Tracking issue on our side: https://jira.schwarz/browse/STACKITSDK-227
oneof_schema_1_validator: Optional[Annotated[str, Field(strict=True)]] = Field(
oneof_schema_1_validator: Optional[Annotated[UUID, Field(strict=True)]] = Field(
default=None,
description="Universally Unique Identifier (UUID).",
pattern=re.sub(r"^\/|\/$", "", r"/^[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}$/"),
)
# END of the workaround
# data type: StaticAreaID
oneof_schema_2_validator: Optional[StaticAreaID] = None
actual_instance: Optional[Union[StaticAreaID, str]] = None
one_of_schemas: Set[str] = {"StaticAreaID", "str"}
actual_instance: Optional[Union[StaticAreaID, UUID]] = None
one_of_schemas: Set[str] = {"StaticAreaID", "UUID"}

model_config = ConfigDict(
validate_assignment=True,
Expand All @@ -75,7 +78,7 @@ def actual_instance_must_validate_oneof(cls, v):
instance = AreaId.model_construct()
error_messages = []
match = 0
# validate data type: str
# validate data type: UUID
try:
instance.oneof_schema_1_validator = v
match += 1
Expand All @@ -89,7 +92,7 @@ def actual_instance_must_validate_oneof(cls, v):
if match == 0:
# no match
raise ValueError(
"No match found when setting `actual_instance` in AreaId with oneOf schemas: StaticAreaID, str. Details: "
"No match found when setting `actual_instance` in AreaId with oneOf schemas: StaticAreaID, UUID. Details: "
+ ", ".join(error_messages)
)
else:
Expand All @@ -106,7 +109,7 @@ def from_json(cls, json_str: str) -> Self:
error_messages = []
match = 0

# deserialize data into str
# deserialize data into UUID
try:
# validation
instance.oneof_schema_1_validator = json.loads(json_str)
Expand All @@ -125,13 +128,13 @@ def from_json(cls, json_str: str) -> Self:
if match > 1:
# more than 1 match
raise ValueError(
"Multiple matches found when deserializing the JSON string into AreaId with oneOf schemas: StaticAreaID, str. Details: "
"Multiple matches found when deserializing the JSON string into AreaId with oneOf schemas: StaticAreaID, UUID. Details: "
+ ", ".join(error_messages)
)
elif match == 0:
# no match
raise ValueError(
"No match found when deserializing the JSON string into AreaId with oneOf schemas: StaticAreaID, str. Details: "
"No match found when deserializing the JSON string into AreaId with oneOf schemas: StaticAreaID, UUID. Details: "
+ ", ".join(error_messages)
)
else:
Expand All @@ -147,7 +150,7 @@ def to_json(self) -> str:
else:
return json.dumps(self.actual_instance)

def to_dict(self) -> Optional[Union[Dict[str, Any], StaticAreaID, str]]:
def to_dict(self) -> Optional[Union[Dict[str, Any], StaticAreaID, UUID]]:
"""Returns the dict representation of the actual instance"""
if self.actual_instance is None:
return None
Expand Down
9 changes: 4 additions & 5 deletions services/iaas/src/stackit/iaas/models/backup.py
Original file line number Diff line number Diff line change
Expand Up @@ -19,6 +19,7 @@
import re # noqa: F401
from datetime import datetime
from typing import Any, ClassVar, Dict, List, Optional, Set
from uuid import UUID

from pydantic import (
BaseModel,
Expand All @@ -44,9 +45,7 @@ class Backup(BaseModel):
default=None, description="Date-time when resource was created.", alias="createdAt"
)
encrypted: Optional[StrictBool] = Field(default=None, description="Indicates if a volume is encrypted.")
id: Optional[Annotated[str, Field(min_length=36, strict=True, max_length=36)]] = Field(
default=None, description="Universally Unique Identifier (UUID)."
)
id: Optional[UUID] = Field(default=None, description="Universally Unique Identifier (UUID).")
labels: Optional[Dict[str, Any]] = Field(
default=None,
description="Object that represents the labels of an object. Regex for keys: `^(?=.{1,63}$)([A-Za-z0-9][-A-Za-z0-9_.]*)?[A-Za-z0-9]$`. Regex for values: `^(?=.{0,63}$)(([A-Za-z0-9][-A-Za-z0-9_.]*)?[A-Za-z0-9])*$`. Providing a `null` value for a key will remove that key.",
Expand All @@ -55,7 +54,7 @@ class Backup(BaseModel):
default=None, description="The name for a General Object. Matches Names and also UUIDs."
)
size: Optional[StrictInt] = Field(default=None, description="Size in Gigabyte.")
snapshot_id: Optional[Annotated[str, Field(min_length=36, strict=True, max_length=36)]] = Field(
snapshot_id: Optional[UUID] = Field(
default=None, description="Universally Unique Identifier (UUID).", alias="snapshotId"
)
status: Optional[StrictStr] = Field(
Expand All @@ -65,7 +64,7 @@ class Backup(BaseModel):
updated_at: Optional[datetime] = Field(
default=None, description="Date-time when resource was last updated.", alias="updatedAt"
)
volume_id: Optional[Annotated[str, Field(min_length=36, strict=True, max_length=36)]] = Field(
volume_id: Optional[UUID] = Field(
default=None, description="Universally Unique Identifier (UUID).", alias="volumeId"
)
__properties: ClassVar[List[str]] = [
Expand Down
7 changes: 3 additions & 4 deletions services/iaas/src/stackit/iaas/models/backup_source.py
Original file line number Diff line number Diff line change
Expand Up @@ -18,19 +18,18 @@
import pprint
import re # noqa: F401
from typing import Any, ClassVar, Dict, List, Optional, Set
from uuid import UUID

from pydantic import BaseModel, ConfigDict, Field, StrictStr, field_validator
from typing_extensions import Annotated, Self
from typing_extensions import Self


class BackupSource(BaseModel):
"""
The source object of a backup.
""" # noqa: E501

id: Annotated[str, Field(min_length=36, strict=True, max_length=36)] = Field(
description="Universally Unique Identifier (UUID)."
)
id: UUID = Field(description="Universally Unique Identifier (UUID).")
type: StrictStr = Field(description="The source types of a backup. Possible values: `volume`, `snapshot`.")
__properties: ClassVar[List[str]] = ["id", "type"]

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -19,6 +19,7 @@
import re # noqa: F401
from datetime import datetime
from typing import Any, ClassVar, Dict, List, Optional, Set
from uuid import UUID

from pydantic import BaseModel, ConfigDict, Field, StrictStr, field_validator
from typing_extensions import Annotated, Self
Expand All @@ -45,19 +46,17 @@ class BaseSecurityGroupRule(BaseModel):
default="IPv4", description="The ethertype which the rule should match. Possible values: `IPv4`, `IPv6`."
)
icmp_parameters: Optional[ICMPParameters] = Field(default=None, alias="icmpParameters")
id: Optional[Annotated[str, Field(min_length=36, strict=True, max_length=36)]] = Field(
default=None, description="Universally Unique Identifier (UUID)."
)
id: Optional[UUID] = Field(default=None, description="Universally Unique Identifier (UUID).")
ip_range: Optional[Annotated[str, Field(strict=True)]] = Field(
default=None, description="The remote IP range which the rule should match.", alias="ipRange"
)
port_range: Optional[PortRange] = Field(default=None, alias="portRange")
remote_security_group_id: Optional[Annotated[str, Field(min_length=36, strict=True, max_length=36)]] = Field(
remote_security_group_id: Optional[UUID] = Field(
default=None,
description="The remote security group which the rule should match.",
alias="remoteSecurityGroupId",
)
security_group_id: Optional[Annotated[str, Field(min_length=36, strict=True, max_length=36)]] = Field(
security_group_id: Optional[UUID] = Field(
default=None, description="Universally Unique Identifier (UUID).", alias="securityGroupId"
)
updated_at: Optional[datetime] = Field(
Expand Down
5 changes: 2 additions & 3 deletions services/iaas/src/stackit/iaas/models/boot_volume.py
Original file line number Diff line number Diff line change
Expand Up @@ -18,6 +18,7 @@
import pprint
import re # noqa: F401
from typing import Any, ClassVar, Dict, List, Optional, Set
from uuid import UUID

from pydantic import (
BaseModel,
Expand All @@ -42,9 +43,7 @@ class BootVolume(BaseModel):
description="Delete the volume during the termination of the server. Defaults to false.",
alias="deleteOnTermination",
)
id: Optional[Annotated[str, Field(min_length=36, strict=True, max_length=36)]] = Field(
default=None, description="Universally Unique Identifier (UUID)."
)
id: Optional[UUID] = Field(default=None, description="Universally Unique Identifier (UUID).")
performance_class: Optional[Annotated[str, Field(strict=True, max_length=127)]] = Field(
default=None,
description="The name for a General Object. Matches Names and also UUIDs.",
Expand Down
7 changes: 3 additions & 4 deletions services/iaas/src/stackit/iaas/models/boot_volume_source.py
Original file line number Diff line number Diff line change
Expand Up @@ -18,19 +18,18 @@
import pprint
import re # noqa: F401
from typing import Any, ClassVar, Dict, List, Optional, Set
from uuid import UUID

from pydantic import BaseModel, ConfigDict, Field, StrictStr, field_validator
from typing_extensions import Annotated, Self
from typing_extensions import Self


class BootVolumeSource(BaseModel):
"""
The source object of a boot volume.
""" # noqa: E501

id: Annotated[str, Field(min_length=36, strict=True, max_length=36)] = Field(
description="Universally Unique Identifier (UUID)."
)
id: UUID = Field(description="Universally Unique Identifier (UUID).")
type: StrictStr = Field(description="The source types of a boot volume. Possible values: `image`, `volume`.")
__properties: ClassVar[List[str]] = ["id", "type"]

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -18,6 +18,7 @@
import pprint
import re # noqa: F401
from typing import Any, ClassVar, Dict, List, Optional, Set
from uuid import UUID

from pydantic import BaseModel, ConfigDict, Field, StrictStr, field_validator
from typing_extensions import Annotated, Self
Expand All @@ -28,12 +29,8 @@ class CreateAffinityGroupPayload(BaseModel):
Definition of an affinity group.
""" # noqa: E501

id: Optional[Annotated[str, Field(min_length=36, strict=True, max_length=36)]] = Field(
default=None, description="Universally Unique Identifier (UUID)."
)
members: Optional[List[Annotated[str, Field(min_length=36, strict=True, max_length=36)]]] = Field(
default=None, description="The servers that are part of the affinity group."
)
id: Optional[UUID] = Field(default=None, description="Universally Unique Identifier (UUID).")
members: Optional[List[UUID]] = Field(default=None, description="The servers that are part of the affinity group.")
name: Annotated[str, Field(strict=True, max_length=127)] = Field(
description="The name for a General Object. Matches Names and also UUIDs."
)
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -19,6 +19,7 @@
import re # noqa: F401
from datetime import datetime
from typing import Any, ClassVar, Dict, List, Optional, Set
from uuid import UUID

from pydantic import (
BaseModel,
Expand Down Expand Up @@ -50,9 +51,7 @@ class CreateImagePayload(BaseModel):
disk_format: StrictStr = Field(
description="Object that represents a disk format. Possible values: `raw`, `qcow2`, `iso`.", alias="diskFormat"
)
id: Optional[Annotated[str, Field(min_length=36, strict=True, max_length=36)]] = Field(
default=None, description="Universally Unique Identifier (UUID)."
)
id: Optional[UUID] = Field(default=None, description="Universally Unique Identifier (UUID).")
import_progress: Optional[StrictInt] = Field(
default=None, description="Indicates Image Import Progress in percent.", alias="importProgress"
)
Expand All @@ -65,9 +64,7 @@ class CreateImagePayload(BaseModel):
name: Annotated[str, Field(strict=True, max_length=127)] = Field(
description="The name for a General Object. Matches Names and also UUIDs."
)
owner: Optional[Annotated[str, Field(min_length=36, strict=True, max_length=36)]] = Field(
default=None, description="Universally Unique Identifier (UUID)."
)
owner: Optional[UUID] = Field(default=None, description="Universally Unique Identifier (UUID).")
protected: Optional[StrictBool] = Field(
default=None, description="When true the image is prevented from being deleted."
)
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -18,6 +18,7 @@
import pprint
import re # noqa: F401
from typing import Any, ClassVar, Dict, List, Optional, Set
from uuid import UUID

from pydantic import BaseModel, ConfigDict, Field, StrictBool, field_validator
from typing_extensions import Annotated, Self
Expand All @@ -44,7 +45,7 @@ class CreateNetworkPayload(BaseModel):
routed: Optional[StrictBool] = Field(
default=None, description="Shows if the network is routed and therefore accessible from other networks."
)
routing_table_id: Optional[Annotated[str, Field(min_length=36, strict=True, max_length=36)]] = Field(
routing_table_id: Optional[UUID] = Field(
default=None, description="Universally Unique Identifier (UUID).", alias="routingTableId"
)
__properties: ClassVar[List[str]] = ["dhcp", "ipv4", "ipv6", "labels", "name", "routed", "routingTableId"]
Expand Down
Loading