From 5e2b1909bbafd13a40c90fbddc04d56114312cb0 Mon Sep 17 00:00:00 2001 From: SDK Generator Bot Date: Mon, 11 May 2026 14:22:25 +0000 Subject: [PATCH] Generate authorization --- services/authorization/oas_commit | 2 +- .../src/stackit/authorization/api_client.py | 32 +++++++++---------- .../models/add_custom_role_response.py | 13 ++++++-- .../models/add_members_payload.py | 10 ++++-- .../authorization/models/add_role_payload.py | 10 ++++-- .../models/delete_role_response.py | 7 ++-- .../authorization/models/error_response.py | 7 ++-- .../models/existing_permission.py | 10 ++++-- .../authorization/models/get_role_response.py | 13 ++++++-- .../models/list_members_response.py | 13 ++++++-- .../models/list_permissions_response.py | 7 ++-- .../models/list_user_memberships_response.py | 7 ++-- .../models/list_user_permissions_response.py | 7 ++-- .../stackit/authorization/models/member.py | 10 ++++-- .../authorization/models/members_response.py | 13 ++++++-- .../authorization/models/permission.py | 10 ++++-- .../models/permission_request.py | 10 ++++-- .../models/remove_members_payload.py | 10 ++++-- .../src/stackit/authorization/models/role.py | 13 ++++++-- .../authorization/models/roles_response.py | 13 ++++++-- .../models/update_role_payload.py | 10 ++++-- .../models/update_role_response.py | 13 ++++++-- .../authorization/models/user_membership.py | 16 ++++++++-- .../authorization/models/user_permission.py | 13 ++++++-- .../stackit/authorization/models/zookie.py | 7 ++-- 25 files changed, 189 insertions(+), 87 deletions(-) diff --git a/services/authorization/oas_commit b/services/authorization/oas_commit index e3713dde3..72dcff29c 100644 --- a/services/authorization/oas_commit +++ b/services/authorization/oas_commit @@ -1 +1 @@ -0e64886dd0847341800d7191ed193b75413be998 +0867dbbb09a8032415dc6debe18bc392bd58ba42 diff --git a/services/authorization/src/stackit/authorization/api_client.py b/services/authorization/src/stackit/authorization/api_client.py index 1eb145afc..dd4079992 100644 --- a/services/authorization/src/stackit/authorization/api_client.py +++ b/services/authorization/src/stackit/authorization/api_client.py @@ -66,6 +66,7 @@ class ApiClient: "date": datetime.date, "datetime": datetime.datetime, "decimal": decimal.Decimal, + "UUID": uuid.UUID, "object": object, } _pool = None @@ -265,7 +266,7 @@ def response_deserialize( response_text = None return_data = None try: - if response_type == "bytearray": + if response_type in ("bytearray", "bytes"): return_data = response_data.data elif response_type == "file": return_data = self.__deserialize_file(response_data) @@ -326,25 +327,20 @@ def sanitize_for_serialization(self, obj): return obj.isoformat() elif isinstance(obj, decimal.Decimal): return str(obj) - elif isinstance(obj, dict): - obj_dict = obj + return {key: self.sanitize_for_serialization(val) for key, val in obj.items()} + + # Convert model obj to dict except + # attributes `openapi_types`, `attribute_map` + # and attributes which value is not None. + # Convert attribute name to json key in + # model definition for request. + if hasattr(obj, "to_dict") and callable(getattr(obj, "to_dict")): + obj_dict = obj.to_dict() else: - # Convert model obj to dict except - # attributes `openapi_types`, `attribute_map` - # and attributes which value is not None. - # Convert attribute name to json key in - # model definition for request. - if hasattr(obj, "to_dict") and callable(getattr(obj, "to_dict")): # noqa: B009 - obj_dict = obj.to_dict() - else: - obj_dict = obj.__dict__ - - if isinstance(obj_dict, list): - # 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 - return self.sanitize_for_serialization(obj_dict) + obj_dict = obj.__dict__ - return {key: self.sanitize_for_serialization(val) for key, val in obj_dict.items()} + return self.sanitize_for_serialization(obj_dict) def deserialize(self, response_text: str, response_type: str, content_type: Optional[str]): """Deserializes response into an object. @@ -417,6 +413,8 @@ def __deserialize(self, data, klass): return self.__deserialize_datetime(data) elif klass is decimal.Decimal: return decimal.Decimal(data) + elif klass is uuid.UUID: + return uuid.UUID(data) elif issubclass(klass, Enum): return self.__deserialize_enum(data, klass) else: diff --git a/services/authorization/src/stackit/authorization/models/add_custom_role_response.py b/services/authorization/src/stackit/authorization/models/add_custom_role_response.py index 6c35d314b..29a0c03c1 100644 --- a/services/authorization/src/stackit/authorization/models/add_custom_role_response.py +++ b/services/authorization/src/stackit/authorization/models/add_custom_role_response.py @@ -19,6 +19,7 @@ from typing import Any, ClassVar, Dict, List, Optional, Set from pydantic import BaseModel, ConfigDict, Field, field_validator +from pydantic_core import to_jsonable_python from typing_extensions import Annotated, Self from stackit.authorization.models.role import Role @@ -37,6 +38,9 @@ class AddCustomRoleResponse(BaseModel): @field_validator("resource_id") def resource_id_validate_regular_expression(cls, value): """Validates the regular expression""" + if not isinstance(value, str): + value = str(value) + if not re.match(r"^([a-zA-Z0-9\/_|\-=+@.]{1,})$", value): raise ValueError(r"must validate the regular expression /^([a-zA-Z0-9\/_|\-=+@.]{1,})$/") return value @@ -44,12 +48,16 @@ def resource_id_validate_regular_expression(cls, value): @field_validator("resource_type") def resource_type_validate_regular_expression(cls, value): """Validates the regular expression""" + if not isinstance(value, str): + value = str(value) + if not re.match(r"^[a-z](?:-?[a-z]){1,63}$", value): raise ValueError(r"must validate the regular expression /^[a-z](?:-?[a-z]){1,63}$/") return value model_config = ConfigDict( - populate_by_name=True, + validate_by_name=True, + validate_by_alias=True, validate_assignment=True, protected_namespaces=(), ) @@ -60,8 +68,7 @@ def to_str(self) -> str: def to_json(self) -> str: """Returns the JSON representation of the model using alias""" - # TODO: pydantic v2: use .model_dump_json(by_alias=True, exclude_unset=True) instead - return json.dumps(self.to_dict()) + return json.dumps(to_jsonable_python(self.to_dict())) @classmethod def from_json(cls, json_str: str) -> Optional[Self]: diff --git a/services/authorization/src/stackit/authorization/models/add_members_payload.py b/services/authorization/src/stackit/authorization/models/add_members_payload.py index a01cd4e13..f2be7542d 100644 --- a/services/authorization/src/stackit/authorization/models/add_members_payload.py +++ b/services/authorization/src/stackit/authorization/models/add_members_payload.py @@ -19,6 +19,7 @@ from typing import Any, ClassVar, Dict, List, Optional, Set from pydantic import BaseModel, ConfigDict, Field, field_validator +from pydantic_core import to_jsonable_python from typing_extensions import Annotated, Self from stackit.authorization.models.member import Member @@ -36,12 +37,16 @@ class AddMembersPayload(BaseModel): @field_validator("resource_type") def resource_type_validate_regular_expression(cls, value): """Validates the regular expression""" + if not isinstance(value, str): + value = str(value) + if not re.match(r"^[a-z](?:-?[a-z]){1,63}$", value): raise ValueError(r"must validate the regular expression /^[a-z](?:-?[a-z]){1,63}$/") return value model_config = ConfigDict( - populate_by_name=True, + validate_by_name=True, + validate_by_alias=True, validate_assignment=True, protected_namespaces=(), ) @@ -52,8 +57,7 @@ def to_str(self) -> str: def to_json(self) -> str: """Returns the JSON representation of the model using alias""" - # TODO: pydantic v2: use .model_dump_json(by_alias=True, exclude_unset=True) instead - return json.dumps(self.to_dict()) + return json.dumps(to_jsonable_python(self.to_dict())) @classmethod def from_json(cls, json_str: str) -> Optional[Self]: diff --git a/services/authorization/src/stackit/authorization/models/add_role_payload.py b/services/authorization/src/stackit/authorization/models/add_role_payload.py index ca9c58241..3c0a1460a 100644 --- a/services/authorization/src/stackit/authorization/models/add_role_payload.py +++ b/services/authorization/src/stackit/authorization/models/add_role_payload.py @@ -19,6 +19,7 @@ from typing import Any, ClassVar, Dict, List, Optional, Set from pydantic import BaseModel, ConfigDict, Field, field_validator +from pydantic_core import to_jsonable_python from typing_extensions import Annotated, Self from stackit.authorization.models.permission_request import PermissionRequest @@ -37,12 +38,16 @@ class AddRolePayload(BaseModel): @field_validator("name") def name_validate_regular_expression(cls, value): """Validates the regular expression""" + if not isinstance(value, str): + value = str(value) + if not re.match(r"^[a-z](?:[-.]?[a-z]){1,63}$", value): raise ValueError(r"must validate the regular expression /^[a-z](?:[-.]?[a-z]){1,63}$/") return value model_config = ConfigDict( - populate_by_name=True, + validate_by_name=True, + validate_by_alias=True, validate_assignment=True, protected_namespaces=(), ) @@ -53,8 +58,7 @@ def to_str(self) -> str: def to_json(self) -> str: """Returns the JSON representation of the model using alias""" - # TODO: pydantic v2: use .model_dump_json(by_alias=True, exclude_unset=True) instead - return json.dumps(self.to_dict()) + return json.dumps(to_jsonable_python(self.to_dict())) @classmethod def from_json(cls, json_str: str) -> Optional[Self]: diff --git a/services/authorization/src/stackit/authorization/models/delete_role_response.py b/services/authorization/src/stackit/authorization/models/delete_role_response.py index e1b097ae9..f76a3f406 100644 --- a/services/authorization/src/stackit/authorization/models/delete_role_response.py +++ b/services/authorization/src/stackit/authorization/models/delete_role_response.py @@ -18,6 +18,7 @@ from typing import Any, ClassVar, Dict, List, Optional, Set from pydantic import BaseModel, ConfigDict, Field +from pydantic_core import to_jsonable_python from typing_extensions import Self from stackit.authorization.models.zookie import Zookie @@ -32,7 +33,8 @@ class DeleteRoleResponse(BaseModel): __properties: ClassVar[List[str]] = ["writtenAt"] model_config = ConfigDict( - populate_by_name=True, + validate_by_name=True, + validate_by_alias=True, validate_assignment=True, protected_namespaces=(), ) @@ -43,8 +45,7 @@ def to_str(self) -> str: def to_json(self) -> str: """Returns the JSON representation of the model using alias""" - # TODO: pydantic v2: use .model_dump_json(by_alias=True, exclude_unset=True) instead - return json.dumps(self.to_dict()) + return json.dumps(to_jsonable_python(self.to_dict())) @classmethod def from_json(cls, json_str: str) -> Optional[Self]: diff --git a/services/authorization/src/stackit/authorization/models/error_response.py b/services/authorization/src/stackit/authorization/models/error_response.py index 9eff4a3c3..0cb9ff2b7 100644 --- a/services/authorization/src/stackit/authorization/models/error_response.py +++ b/services/authorization/src/stackit/authorization/models/error_response.py @@ -20,6 +20,7 @@ from typing import Any, ClassVar, Dict, List, Optional, Set from pydantic import BaseModel, ConfigDict, Field, StrictInt, StrictStr, field_validator +from pydantic_core import to_jsonable_python from typing_extensions import Self @@ -49,7 +50,8 @@ def time_stamp_change_year_zero_to_one(cls, value): return value model_config = ConfigDict( - populate_by_name=True, + validate_by_name=True, + validate_by_alias=True, validate_assignment=True, protected_namespaces=(), ) @@ -60,8 +62,7 @@ def to_str(self) -> str: def to_json(self) -> str: """Returns the JSON representation of the model using alias""" - # TODO: pydantic v2: use .model_dump_json(by_alias=True, exclude_unset=True) instead - return json.dumps(self.to_dict()) + return json.dumps(to_jsonable_python(self.to_dict())) @classmethod def from_json(cls, json_str: str) -> Optional[Self]: diff --git a/services/authorization/src/stackit/authorization/models/existing_permission.py b/services/authorization/src/stackit/authorization/models/existing_permission.py index c46b4a3e1..de573afea 100644 --- a/services/authorization/src/stackit/authorization/models/existing_permission.py +++ b/services/authorization/src/stackit/authorization/models/existing_permission.py @@ -19,6 +19,7 @@ from typing import Any, ClassVar, Dict, List, Optional, Set from pydantic import BaseModel, ConfigDict, Field, field_validator +from pydantic_core import to_jsonable_python from typing_extensions import Annotated, Self @@ -34,12 +35,16 @@ class ExistingPermission(BaseModel): @field_validator("name") def name_validate_regular_expression(cls, value): """Validates the regular expression""" + if not isinstance(value, str): + value = str(value) + if not re.match(r"^[a-z](?:[-.]?[a-z]){1,63}$", value): raise ValueError(r"must validate the regular expression /^[a-z](?:[-.]?[a-z]){1,63}$/") return value model_config = ConfigDict( - populate_by_name=True, + validate_by_name=True, + validate_by_alias=True, validate_assignment=True, protected_namespaces=(), ) @@ -50,8 +55,7 @@ def to_str(self) -> str: def to_json(self) -> str: """Returns the JSON representation of the model using alias""" - # TODO: pydantic v2: use .model_dump_json(by_alias=True, exclude_unset=True) instead - return json.dumps(self.to_dict()) + return json.dumps(to_jsonable_python(self.to_dict())) @classmethod def from_json(cls, json_str: str) -> Optional[Self]: diff --git a/services/authorization/src/stackit/authorization/models/get_role_response.py b/services/authorization/src/stackit/authorization/models/get_role_response.py index e4b3bb38e..6120f39a0 100644 --- a/services/authorization/src/stackit/authorization/models/get_role_response.py +++ b/services/authorization/src/stackit/authorization/models/get_role_response.py @@ -19,6 +19,7 @@ from typing import Any, ClassVar, Dict, List, Optional, Set from pydantic import BaseModel, ConfigDict, Field, field_validator +from pydantic_core import to_jsonable_python from typing_extensions import Annotated, Self from stackit.authorization.models.role import Role @@ -37,6 +38,9 @@ class GetRoleResponse(BaseModel): @field_validator("resource_id") def resource_id_validate_regular_expression(cls, value): """Validates the regular expression""" + if not isinstance(value, str): + value = str(value) + if not re.match(r"^([a-zA-Z0-9\/_|\-=+@.]{1,})$", value): raise ValueError(r"must validate the regular expression /^([a-zA-Z0-9\/_|\-=+@.]{1,})$/") return value @@ -44,12 +48,16 @@ def resource_id_validate_regular_expression(cls, value): @field_validator("resource_type") def resource_type_validate_regular_expression(cls, value): """Validates the regular expression""" + if not isinstance(value, str): + value = str(value) + if not re.match(r"^[a-z](?:-?[a-z]){1,63}$", value): raise ValueError(r"must validate the regular expression /^[a-z](?:-?[a-z]){1,63}$/") return value model_config = ConfigDict( - populate_by_name=True, + validate_by_name=True, + validate_by_alias=True, validate_assignment=True, protected_namespaces=(), ) @@ -60,8 +68,7 @@ def to_str(self) -> str: def to_json(self) -> str: """Returns the JSON representation of the model using alias""" - # TODO: pydantic v2: use .model_dump_json(by_alias=True, exclude_unset=True) instead - return json.dumps(self.to_dict()) + return json.dumps(to_jsonable_python(self.to_dict())) @classmethod def from_json(cls, json_str: str) -> Optional[Self]: diff --git a/services/authorization/src/stackit/authorization/models/list_members_response.py b/services/authorization/src/stackit/authorization/models/list_members_response.py index ebdb4d4e5..ccd5b1e66 100644 --- a/services/authorization/src/stackit/authorization/models/list_members_response.py +++ b/services/authorization/src/stackit/authorization/models/list_members_response.py @@ -19,6 +19,7 @@ from typing import Any, ClassVar, Dict, List, Optional, Set from pydantic import BaseModel, ConfigDict, Field, field_validator +from pydantic_core import to_jsonable_python from typing_extensions import Annotated, Self from stackit.authorization.models.member import Member @@ -37,6 +38,9 @@ class ListMembersResponse(BaseModel): @field_validator("resource_id") def resource_id_validate_regular_expression(cls, value): """Validates the regular expression""" + if not isinstance(value, str): + value = str(value) + if not re.match(r"^([a-zA-Z0-9\/_|\-=+@.]{1,})$", value): raise ValueError(r"must validate the regular expression /^([a-zA-Z0-9\/_|\-=+@.]{1,})$/") return value @@ -44,12 +48,16 @@ def resource_id_validate_regular_expression(cls, value): @field_validator("resource_type") def resource_type_validate_regular_expression(cls, value): """Validates the regular expression""" + if not isinstance(value, str): + value = str(value) + if not re.match(r"^[a-z](?:-?[a-z]){1,63}$", value): raise ValueError(r"must validate the regular expression /^[a-z](?:-?[a-z]){1,63}$/") return value model_config = ConfigDict( - populate_by_name=True, + validate_by_name=True, + validate_by_alias=True, validate_assignment=True, protected_namespaces=(), ) @@ -60,8 +68,7 @@ def to_str(self) -> str: def to_json(self) -> str: """Returns the JSON representation of the model using alias""" - # TODO: pydantic v2: use .model_dump_json(by_alias=True, exclude_unset=True) instead - return json.dumps(self.to_dict()) + return json.dumps(to_jsonable_python(self.to_dict())) @classmethod def from_json(cls, json_str: str) -> Optional[Self]: diff --git a/services/authorization/src/stackit/authorization/models/list_permissions_response.py b/services/authorization/src/stackit/authorization/models/list_permissions_response.py index 222e76078..62556aaa9 100644 --- a/services/authorization/src/stackit/authorization/models/list_permissions_response.py +++ b/services/authorization/src/stackit/authorization/models/list_permissions_response.py @@ -18,6 +18,7 @@ from typing import Any, ClassVar, Dict, List, Optional, Set from pydantic import BaseModel, ConfigDict +from pydantic_core import to_jsonable_python from typing_extensions import Self from stackit.authorization.models.permission import Permission @@ -32,7 +33,8 @@ class ListPermissionsResponse(BaseModel): __properties: ClassVar[List[str]] = ["permissions"] model_config = ConfigDict( - populate_by_name=True, + validate_by_name=True, + validate_by_alias=True, validate_assignment=True, protected_namespaces=(), ) @@ -43,8 +45,7 @@ def to_str(self) -> str: def to_json(self) -> str: """Returns the JSON representation of the model using alias""" - # TODO: pydantic v2: use .model_dump_json(by_alias=True, exclude_unset=True) instead - return json.dumps(self.to_dict()) + return json.dumps(to_jsonable_python(self.to_dict())) @classmethod def from_json(cls, json_str: str) -> Optional[Self]: diff --git a/services/authorization/src/stackit/authorization/models/list_user_memberships_response.py b/services/authorization/src/stackit/authorization/models/list_user_memberships_response.py index e6ecebf55..adbbd8354 100644 --- a/services/authorization/src/stackit/authorization/models/list_user_memberships_response.py +++ b/services/authorization/src/stackit/authorization/models/list_user_memberships_response.py @@ -18,6 +18,7 @@ from typing import Any, ClassVar, Dict, List, Optional, Set from pydantic import BaseModel, ConfigDict +from pydantic_core import to_jsonable_python from typing_extensions import Self from stackit.authorization.models.user_membership import UserMembership @@ -32,7 +33,8 @@ class ListUserMembershipsResponse(BaseModel): __properties: ClassVar[List[str]] = ["items"] model_config = ConfigDict( - populate_by_name=True, + validate_by_name=True, + validate_by_alias=True, validate_assignment=True, protected_namespaces=(), ) @@ -43,8 +45,7 @@ def to_str(self) -> str: def to_json(self) -> str: """Returns the JSON representation of the model using alias""" - # TODO: pydantic v2: use .model_dump_json(by_alias=True, exclude_unset=True) instead - return json.dumps(self.to_dict()) + return json.dumps(to_jsonable_python(self.to_dict())) @classmethod def from_json(cls, json_str: str) -> Optional[Self]: diff --git a/services/authorization/src/stackit/authorization/models/list_user_permissions_response.py b/services/authorization/src/stackit/authorization/models/list_user_permissions_response.py index 5e4010c9b..086d81302 100644 --- a/services/authorization/src/stackit/authorization/models/list_user_permissions_response.py +++ b/services/authorization/src/stackit/authorization/models/list_user_permissions_response.py @@ -18,6 +18,7 @@ from typing import Any, ClassVar, Dict, List, Optional, Set from pydantic import BaseModel, ConfigDict +from pydantic_core import to_jsonable_python from typing_extensions import Self from stackit.authorization.models.user_permission import UserPermission @@ -32,7 +33,8 @@ class ListUserPermissionsResponse(BaseModel): __properties: ClassVar[List[str]] = ["items"] model_config = ConfigDict( - populate_by_name=True, + validate_by_name=True, + validate_by_alias=True, validate_assignment=True, protected_namespaces=(), ) @@ -43,8 +45,7 @@ def to_str(self) -> str: def to_json(self) -> str: """Returns the JSON representation of the model using alias""" - # TODO: pydantic v2: use .model_dump_json(by_alias=True, exclude_unset=True) instead - return json.dumps(self.to_dict()) + return json.dumps(to_jsonable_python(self.to_dict())) @classmethod def from_json(cls, json_str: str) -> Optional[Self]: diff --git a/services/authorization/src/stackit/authorization/models/member.py b/services/authorization/src/stackit/authorization/models/member.py index 5f8454a1a..71deb7f45 100644 --- a/services/authorization/src/stackit/authorization/models/member.py +++ b/services/authorization/src/stackit/authorization/models/member.py @@ -19,6 +19,7 @@ from typing import Any, ClassVar, Dict, List, Optional, Set from pydantic import BaseModel, ConfigDict, Field, field_validator +from pydantic_core import to_jsonable_python from typing_extensions import Annotated, Self @@ -34,12 +35,16 @@ class Member(BaseModel): @field_validator("role") def role_validate_regular_expression(cls, value): """Validates the regular expression""" + if not isinstance(value, str): + value = str(value) + if not re.match(r"^[a-z](?:[-.]?[a-z]){1,63}$", value): raise ValueError(r"must validate the regular expression /^[a-z](?:[-.]?[a-z]){1,63}$/") return value model_config = ConfigDict( - populate_by_name=True, + validate_by_name=True, + validate_by_alias=True, validate_assignment=True, protected_namespaces=(), ) @@ -50,8 +55,7 @@ def to_str(self) -> str: def to_json(self) -> str: """Returns the JSON representation of the model using alias""" - # TODO: pydantic v2: use .model_dump_json(by_alias=True, exclude_unset=True) instead - return json.dumps(self.to_dict()) + return json.dumps(to_jsonable_python(self.to_dict())) @classmethod def from_json(cls, json_str: str) -> Optional[Self]: diff --git a/services/authorization/src/stackit/authorization/models/members_response.py b/services/authorization/src/stackit/authorization/models/members_response.py index 46154d22c..dd55171b6 100644 --- a/services/authorization/src/stackit/authorization/models/members_response.py +++ b/services/authorization/src/stackit/authorization/models/members_response.py @@ -19,6 +19,7 @@ from typing import Any, ClassVar, Dict, List, Optional, Set from pydantic import BaseModel, ConfigDict, Field, field_validator +from pydantic_core import to_jsonable_python from typing_extensions import Annotated, Self from stackit.authorization.models.member import Member @@ -39,6 +40,9 @@ class MembersResponse(BaseModel): @field_validator("resource_id") def resource_id_validate_regular_expression(cls, value): """Validates the regular expression""" + if not isinstance(value, str): + value = str(value) + if not re.match(r"^([a-zA-Z0-9\/_|\-=+@.]{1,})$", value): raise ValueError(r"must validate the regular expression /^([a-zA-Z0-9\/_|\-=+@.]{1,})$/") return value @@ -46,12 +50,16 @@ def resource_id_validate_regular_expression(cls, value): @field_validator("resource_type") def resource_type_validate_regular_expression(cls, value): """Validates the regular expression""" + if not isinstance(value, str): + value = str(value) + if not re.match(r"^[a-z](?:-?[a-z]){1,63}$", value): raise ValueError(r"must validate the regular expression /^[a-z](?:-?[a-z]){1,63}$/") return value model_config = ConfigDict( - populate_by_name=True, + validate_by_name=True, + validate_by_alias=True, validate_assignment=True, protected_namespaces=(), ) @@ -62,8 +70,7 @@ def to_str(self) -> str: def to_json(self) -> str: """Returns the JSON representation of the model using alias""" - # TODO: pydantic v2: use .model_dump_json(by_alias=True, exclude_unset=True) instead - return json.dumps(self.to_dict()) + return json.dumps(to_jsonable_python(self.to_dict())) @classmethod def from_json(cls, json_str: str) -> Optional[Self]: diff --git a/services/authorization/src/stackit/authorization/models/permission.py b/services/authorization/src/stackit/authorization/models/permission.py index df24b5805..c3ad992ca 100644 --- a/services/authorization/src/stackit/authorization/models/permission.py +++ b/services/authorization/src/stackit/authorization/models/permission.py @@ -19,6 +19,7 @@ from typing import Any, ClassVar, Dict, List, Optional, Set from pydantic import BaseModel, ConfigDict, Field, field_validator +from pydantic_core import to_jsonable_python from typing_extensions import Annotated, Self @@ -34,12 +35,16 @@ class Permission(BaseModel): @field_validator("name") def name_validate_regular_expression(cls, value): """Validates the regular expression""" + if not isinstance(value, str): + value = str(value) + if not re.match(r"^[a-z](?:[-.]?[a-z]){1,63}$", value): raise ValueError(r"must validate the regular expression /^[a-z](?:[-.]?[a-z]){1,63}$/") return value model_config = ConfigDict( - populate_by_name=True, + validate_by_name=True, + validate_by_alias=True, validate_assignment=True, protected_namespaces=(), ) @@ -50,8 +55,7 @@ def to_str(self) -> str: def to_json(self) -> str: """Returns the JSON representation of the model using alias""" - # TODO: pydantic v2: use .model_dump_json(by_alias=True, exclude_unset=True) instead - return json.dumps(self.to_dict()) + return json.dumps(to_jsonable_python(self.to_dict())) @classmethod def from_json(cls, json_str: str) -> Optional[Self]: diff --git a/services/authorization/src/stackit/authorization/models/permission_request.py b/services/authorization/src/stackit/authorization/models/permission_request.py index 2e3d910ec..0cef4abce 100644 --- a/services/authorization/src/stackit/authorization/models/permission_request.py +++ b/services/authorization/src/stackit/authorization/models/permission_request.py @@ -19,6 +19,7 @@ from typing import Any, ClassVar, Dict, List, Optional, Set from pydantic import BaseModel, ConfigDict, Field, field_validator +from pydantic_core import to_jsonable_python from typing_extensions import Annotated, Self @@ -33,12 +34,16 @@ class PermissionRequest(BaseModel): @field_validator("name") def name_validate_regular_expression(cls, value): """Validates the regular expression""" + if not isinstance(value, str): + value = str(value) + if not re.match(r"^[a-z](?:[-.]?[a-z]){1,63}$", value): raise ValueError(r"must validate the regular expression /^[a-z](?:[-.]?[a-z]){1,63}$/") return value model_config = ConfigDict( - populate_by_name=True, + validate_by_name=True, + validate_by_alias=True, validate_assignment=True, protected_namespaces=(), ) @@ -49,8 +54,7 @@ def to_str(self) -> str: def to_json(self) -> str: """Returns the JSON representation of the model using alias""" - # TODO: pydantic v2: use .model_dump_json(by_alias=True, exclude_unset=True) instead - return json.dumps(self.to_dict()) + return json.dumps(to_jsonable_python(self.to_dict())) @classmethod def from_json(cls, json_str: str) -> Optional[Self]: diff --git a/services/authorization/src/stackit/authorization/models/remove_members_payload.py b/services/authorization/src/stackit/authorization/models/remove_members_payload.py index 5658461f1..a13b88d53 100644 --- a/services/authorization/src/stackit/authorization/models/remove_members_payload.py +++ b/services/authorization/src/stackit/authorization/models/remove_members_payload.py @@ -19,6 +19,7 @@ from typing import Any, ClassVar, Dict, List, Optional, Set from pydantic import BaseModel, ConfigDict, Field, StrictBool, field_validator +from pydantic_core import to_jsonable_python from typing_extensions import Annotated, Self from stackit.authorization.models.member import Member @@ -37,12 +38,16 @@ class RemoveMembersPayload(BaseModel): @field_validator("resource_type") def resource_type_validate_regular_expression(cls, value): """Validates the regular expression""" + if not isinstance(value, str): + value = str(value) + if not re.match(r"^[a-z](?:-?[a-z]){1,63}$", value): raise ValueError(r"must validate the regular expression /^[a-z](?:-?[a-z]){1,63}$/") return value model_config = ConfigDict( - populate_by_name=True, + validate_by_name=True, + validate_by_alias=True, validate_assignment=True, protected_namespaces=(), ) @@ -53,8 +58,7 @@ def to_str(self) -> str: def to_json(self) -> str: """Returns the JSON representation of the model using alias""" - # TODO: pydantic v2: use .model_dump_json(by_alias=True, exclude_unset=True) instead - return json.dumps(self.to_dict()) + return json.dumps(to_jsonable_python(self.to_dict())) @classmethod def from_json(cls, json_str: str) -> Optional[Self]: diff --git a/services/authorization/src/stackit/authorization/models/role.py b/services/authorization/src/stackit/authorization/models/role.py index facd5125f..834be9c94 100644 --- a/services/authorization/src/stackit/authorization/models/role.py +++ b/services/authorization/src/stackit/authorization/models/role.py @@ -19,6 +19,7 @@ from typing import Any, ClassVar, Dict, List, Optional, Set from pydantic import BaseModel, ConfigDict, Field, StrictStr, field_validator +from pydantic_core import to_jsonable_python from typing_extensions import Annotated, Self from stackit.authorization.models.permission import Permission @@ -42,6 +43,9 @@ def id_validate_regular_expression(cls, value): if value is None: return value + if not isinstance(value, str): + value = str(value) + if not re.match(r"^([a-zA-Z0-9\/_|\-=+]{1,})$", value): raise ValueError(r"must validate the regular expression /^([a-zA-Z0-9\/_|\-=+]{1,})$/") return value @@ -49,12 +53,16 @@ def id_validate_regular_expression(cls, value): @field_validator("name") def name_validate_regular_expression(cls, value): """Validates the regular expression""" + if not isinstance(value, str): + value = str(value) + if not re.match(r"^[a-z](?:[-.]?[a-z]){1,63}$", value): raise ValueError(r"must validate the regular expression /^[a-z](?:[-.]?[a-z]){1,63}$/") return value model_config = ConfigDict( - populate_by_name=True, + validate_by_name=True, + validate_by_alias=True, validate_assignment=True, protected_namespaces=(), ) @@ -65,8 +73,7 @@ def to_str(self) -> str: def to_json(self) -> str: """Returns the JSON representation of the model using alias""" - # TODO: pydantic v2: use .model_dump_json(by_alias=True, exclude_unset=True) instead - return json.dumps(self.to_dict()) + return json.dumps(to_jsonable_python(self.to_dict())) @classmethod def from_json(cls, json_str: str) -> Optional[Self]: diff --git a/services/authorization/src/stackit/authorization/models/roles_response.py b/services/authorization/src/stackit/authorization/models/roles_response.py index 336e59aa1..9e89ab7a3 100644 --- a/services/authorization/src/stackit/authorization/models/roles_response.py +++ b/services/authorization/src/stackit/authorization/models/roles_response.py @@ -19,6 +19,7 @@ from typing import Any, ClassVar, Dict, List, Optional, Set from pydantic import BaseModel, ConfigDict, Field, field_validator +from pydantic_core import to_jsonable_python from typing_extensions import Annotated, Self from stackit.authorization.models.role import Role @@ -37,6 +38,9 @@ class RolesResponse(BaseModel): @field_validator("resource_id") def resource_id_validate_regular_expression(cls, value): """Validates the regular expression""" + if not isinstance(value, str): + value = str(value) + if not re.match(r"^([a-zA-Z0-9\/_|\-=+@.]{1,})$", value): raise ValueError(r"must validate the regular expression /^([a-zA-Z0-9\/_|\-=+@.]{1,})$/") return value @@ -44,12 +48,16 @@ def resource_id_validate_regular_expression(cls, value): @field_validator("resource_type") def resource_type_validate_regular_expression(cls, value): """Validates the regular expression""" + if not isinstance(value, str): + value = str(value) + if not re.match(r"^[a-z](?:-?[a-z]){1,63}$", value): raise ValueError(r"must validate the regular expression /^[a-z](?:-?[a-z]){1,63}$/") return value model_config = ConfigDict( - populate_by_name=True, + validate_by_name=True, + validate_by_alias=True, validate_assignment=True, protected_namespaces=(), ) @@ -60,8 +68,7 @@ def to_str(self) -> str: def to_json(self) -> str: """Returns the JSON representation of the model using alias""" - # TODO: pydantic v2: use .model_dump_json(by_alias=True, exclude_unset=True) instead - return json.dumps(self.to_dict()) + return json.dumps(to_jsonable_python(self.to_dict())) @classmethod def from_json(cls, json_str: str) -> Optional[Self]: diff --git a/services/authorization/src/stackit/authorization/models/update_role_payload.py b/services/authorization/src/stackit/authorization/models/update_role_payload.py index 772370476..f78469a38 100644 --- a/services/authorization/src/stackit/authorization/models/update_role_payload.py +++ b/services/authorization/src/stackit/authorization/models/update_role_payload.py @@ -19,6 +19,7 @@ from typing import Any, ClassVar, Dict, List, Optional, Set from pydantic import BaseModel, ConfigDict, Field, StrictStr, field_validator +from pydantic_core import to_jsonable_python from typing_extensions import Annotated, Self from stackit.authorization.models.permission_request import PermissionRequest @@ -38,12 +39,16 @@ class UpdateRolePayload(BaseModel): @field_validator("name") def name_validate_regular_expression(cls, value): """Validates the regular expression""" + if not isinstance(value, str): + value = str(value) + if not re.match(r"^[a-z](?:[-.]?[a-z]){1,63}$", value): raise ValueError(r"must validate the regular expression /^[a-z](?:[-.]?[a-z]){1,63}$/") return value model_config = ConfigDict( - populate_by_name=True, + validate_by_name=True, + validate_by_alias=True, validate_assignment=True, protected_namespaces=(), ) @@ -54,8 +59,7 @@ def to_str(self) -> str: def to_json(self) -> str: """Returns the JSON representation of the model using alias""" - # TODO: pydantic v2: use .model_dump_json(by_alias=True, exclude_unset=True) instead - return json.dumps(self.to_dict()) + return json.dumps(to_jsonable_python(self.to_dict())) @classmethod def from_json(cls, json_str: str) -> Optional[Self]: diff --git a/services/authorization/src/stackit/authorization/models/update_role_response.py b/services/authorization/src/stackit/authorization/models/update_role_response.py index 72331a0a0..786de615a 100644 --- a/services/authorization/src/stackit/authorization/models/update_role_response.py +++ b/services/authorization/src/stackit/authorization/models/update_role_response.py @@ -19,6 +19,7 @@ from typing import Any, ClassVar, Dict, List, Optional, Set from pydantic import BaseModel, ConfigDict, Field, field_validator +from pydantic_core import to_jsonable_python from typing_extensions import Annotated, Self from stackit.authorization.models.role import Role @@ -37,6 +38,9 @@ class UpdateRoleResponse(BaseModel): @field_validator("resource_id") def resource_id_validate_regular_expression(cls, value): """Validates the regular expression""" + if not isinstance(value, str): + value = str(value) + if not re.match(r"^([a-zA-Z0-9\/_|\-=+@.]{1,})$", value): raise ValueError(r"must validate the regular expression /^([a-zA-Z0-9\/_|\-=+@.]{1,})$/") return value @@ -44,12 +48,16 @@ def resource_id_validate_regular_expression(cls, value): @field_validator("resource_type") def resource_type_validate_regular_expression(cls, value): """Validates the regular expression""" + if not isinstance(value, str): + value = str(value) + if not re.match(r"^[a-z](?:-?[a-z]){1,63}$", value): raise ValueError(r"must validate the regular expression /^[a-z](?:-?[a-z]){1,63}$/") return value model_config = ConfigDict( - populate_by_name=True, + validate_by_name=True, + validate_by_alias=True, validate_assignment=True, protected_namespaces=(), ) @@ -60,8 +68,7 @@ def to_str(self) -> str: def to_json(self) -> str: """Returns the JSON representation of the model using alias""" - # TODO: pydantic v2: use .model_dump_json(by_alias=True, exclude_unset=True) instead - return json.dumps(self.to_dict()) + return json.dumps(to_jsonable_python(self.to_dict())) @classmethod def from_json(cls, json_str: str) -> Optional[Self]: diff --git a/services/authorization/src/stackit/authorization/models/user_membership.py b/services/authorization/src/stackit/authorization/models/user_membership.py index 7a547aa05..33de65ee5 100644 --- a/services/authorization/src/stackit/authorization/models/user_membership.py +++ b/services/authorization/src/stackit/authorization/models/user_membership.py @@ -19,6 +19,7 @@ from typing import Any, ClassVar, Dict, List, Optional, Set from pydantic import BaseModel, ConfigDict, Field, field_validator +from pydantic_core import to_jsonable_python from typing_extensions import Annotated, Self @@ -36,6 +37,9 @@ class UserMembership(BaseModel): @field_validator("resource_id") def resource_id_validate_regular_expression(cls, value): """Validates the regular expression""" + if not isinstance(value, str): + value = str(value) + if not re.match(r"^([a-zA-Z0-9\/_|\-=+@.]{1,})$", value): raise ValueError(r"must validate the regular expression /^([a-zA-Z0-9\/_|\-=+@.]{1,})$/") return value @@ -43,6 +47,9 @@ def resource_id_validate_regular_expression(cls, value): @field_validator("resource_type") def resource_type_validate_regular_expression(cls, value): """Validates the regular expression""" + if not isinstance(value, str): + value = str(value) + if not re.match(r"^[a-z](?:-?[a-z]){1,63}$", value): raise ValueError(r"must validate the regular expression /^[a-z](?:-?[a-z]){1,63}$/") return value @@ -50,12 +57,16 @@ def resource_type_validate_regular_expression(cls, value): @field_validator("role") def role_validate_regular_expression(cls, value): """Validates the regular expression""" + if not isinstance(value, str): + value = str(value) + if not re.match(r"^[a-z](?:[-.]?[a-z]){1,63}$", value): raise ValueError(r"must validate the regular expression /^[a-z](?:[-.]?[a-z]){1,63}$/") return value model_config = ConfigDict( - populate_by_name=True, + validate_by_name=True, + validate_by_alias=True, validate_assignment=True, protected_namespaces=(), ) @@ -66,8 +77,7 @@ def to_str(self) -> str: def to_json(self) -> str: """Returns the JSON representation of the model using alias""" - # TODO: pydantic v2: use .model_dump_json(by_alias=True, exclude_unset=True) instead - return json.dumps(self.to_dict()) + return json.dumps(to_jsonable_python(self.to_dict())) @classmethod def from_json(cls, json_str: str) -> Optional[Self]: diff --git a/services/authorization/src/stackit/authorization/models/user_permission.py b/services/authorization/src/stackit/authorization/models/user_permission.py index 6d132bdb3..11f4d1add 100644 --- a/services/authorization/src/stackit/authorization/models/user_permission.py +++ b/services/authorization/src/stackit/authorization/models/user_permission.py @@ -19,6 +19,7 @@ from typing import Any, ClassVar, Dict, List, Optional, Set from pydantic import BaseModel, ConfigDict, Field, field_validator +from pydantic_core import to_jsonable_python from typing_extensions import Annotated, Self from stackit.authorization.models.existing_permission import ExistingPermission @@ -37,6 +38,9 @@ class UserPermission(BaseModel): @field_validator("resource_id") def resource_id_validate_regular_expression(cls, value): """Validates the regular expression""" + if not isinstance(value, str): + value = str(value) + if not re.match(r"^([a-zA-Z0-9\/_|\-=+@.]{1,})$", value): raise ValueError(r"must validate the regular expression /^([a-zA-Z0-9\/_|\-=+@.]{1,})$/") return value @@ -44,12 +48,16 @@ def resource_id_validate_regular_expression(cls, value): @field_validator("resource_type") def resource_type_validate_regular_expression(cls, value): """Validates the regular expression""" + if not isinstance(value, str): + value = str(value) + if not re.match(r"^[a-z](?:-?[a-z]){1,63}$", value): raise ValueError(r"must validate the regular expression /^[a-z](?:-?[a-z]){1,63}$/") return value model_config = ConfigDict( - populate_by_name=True, + validate_by_name=True, + validate_by_alias=True, validate_assignment=True, protected_namespaces=(), ) @@ -60,8 +68,7 @@ def to_str(self) -> str: def to_json(self) -> str: """Returns the JSON representation of the model using alias""" - # TODO: pydantic v2: use .model_dump_json(by_alias=True, exclude_unset=True) instead - return json.dumps(self.to_dict()) + return json.dumps(to_jsonable_python(self.to_dict())) @classmethod def from_json(cls, json_str: str) -> Optional[Self]: diff --git a/services/authorization/src/stackit/authorization/models/zookie.py b/services/authorization/src/stackit/authorization/models/zookie.py index 23423fea0..6d9ba0a96 100644 --- a/services/authorization/src/stackit/authorization/models/zookie.py +++ b/services/authorization/src/stackit/authorization/models/zookie.py @@ -18,6 +18,7 @@ from typing import Any, ClassVar, Dict, List, Optional, Set from pydantic import BaseModel, ConfigDict, StrictStr +from pydantic_core import to_jsonable_python from typing_extensions import Self @@ -30,7 +31,8 @@ class Zookie(BaseModel): __properties: ClassVar[List[str]] = ["zookie"] model_config = ConfigDict( - populate_by_name=True, + validate_by_name=True, + validate_by_alias=True, validate_assignment=True, protected_namespaces=(), ) @@ -41,8 +43,7 @@ def to_str(self) -> str: def to_json(self) -> str: """Returns the JSON representation of the model using alias""" - # TODO: pydantic v2: use .model_dump_json(by_alias=True, exclude_unset=True) instead - return json.dumps(self.to_dict()) + return json.dumps(to_jsonable_python(self.to_dict())) @classmethod def from_json(cls, json_str: str) -> Optional[Self]: