stackit-git 0.8.0__tar.gz → 0.9.0__tar.gz

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (39) hide show
  1. {stackit_git-0.8.0 → stackit_git-0.9.0}/PKG-INFO +1 -1
  2. {stackit_git-0.8.0 → stackit_git-0.9.0}/pyproject.toml +1 -1
  3. {stackit_git-0.8.0 → stackit_git-0.9.0}/src/stackit/git/api/default_api.py +7 -1
  4. {stackit_git-0.8.0 → stackit_git-0.9.0}/src/stackit/git/api_client.py +15 -17
  5. {stackit_git-0.8.0 → stackit_git-0.9.0}/src/stackit/git/models/already_exists_error.py +4 -3
  6. {stackit_git-0.8.0 → stackit_git-0.9.0}/src/stackit/git/models/authentication.py +10 -3
  7. {stackit_git-0.8.0 → stackit_git-0.9.0}/src/stackit/git/models/authentication_list.py +4 -3
  8. {stackit_git-0.8.0 → stackit_git-0.9.0}/src/stackit/git/models/bad_error_response.py +4 -3
  9. {stackit_git-0.8.0 → stackit_git-0.9.0}/src/stackit/git/models/conflict_error_response.py +4 -3
  10. {stackit_git-0.8.0 → stackit_git-0.9.0}/src/stackit/git/models/create_authentication_payload.py +10 -3
  11. {stackit_git-0.8.0 → stackit_git-0.9.0}/src/stackit/git/models/create_instance_payload.py +7 -3
  12. {stackit_git-0.8.0 → stackit_git-0.9.0}/src/stackit/git/models/create_runner_payload.py +4 -3
  13. {stackit_git-0.8.0 → stackit_git-0.9.0}/src/stackit/git/models/feature_toggle.py +4 -3
  14. {stackit_git-0.8.0 → stackit_git-0.9.0}/src/stackit/git/models/flavor.py +4 -3
  15. {stackit_git-0.8.0 → stackit_git-0.9.0}/src/stackit/git/models/generic_error_response.py +4 -3
  16. {stackit_git-0.8.0 → stackit_git-0.9.0}/src/stackit/git/models/instance.py +4 -3
  17. {stackit_git-0.8.0 → stackit_git-0.9.0}/src/stackit/git/models/internal_server_error_response.py +4 -3
  18. {stackit_git-0.8.0 → stackit_git-0.9.0}/src/stackit/git/models/list_flavors.py +4 -3
  19. {stackit_git-0.8.0 → stackit_git-0.9.0}/src/stackit/git/models/list_instances.py +4 -3
  20. {stackit_git-0.8.0 → stackit_git-0.9.0}/src/stackit/git/models/not_found_error_response.py +4 -3
  21. {stackit_git-0.8.0 → stackit_git-0.9.0}/src/stackit/git/models/patch_authentication_payload.py +10 -3
  22. {stackit_git-0.8.0 → stackit_git-0.9.0}/src/stackit/git/models/patch_instance_payload.py +4 -3
  23. {stackit_git-0.8.0 → stackit_git-0.9.0}/src/stackit/git/models/patch_operation.py +4 -3
  24. {stackit_git-0.8.0 → stackit_git-0.9.0}/src/stackit/git/models/runner.py +4 -3
  25. {stackit_git-0.8.0 → stackit_git-0.9.0}/src/stackit/git/models/runner_runtime.py +4 -3
  26. {stackit_git-0.8.0 → stackit_git-0.9.0}/src/stackit/git/models/runner_runtime_list.py +4 -3
  27. {stackit_git-0.8.0 → stackit_git-0.9.0}/src/stackit/git/models/unauthorized_error_response.py +4 -3
  28. {stackit_git-0.8.0 → stackit_git-0.9.0}/.gitignore +0 -0
  29. {stackit_git-0.8.0 → stackit_git-0.9.0}/LICENSE.md +0 -0
  30. {stackit_git-0.8.0 → stackit_git-0.9.0}/NOTICE.txt +0 -0
  31. {stackit_git-0.8.0 → stackit_git-0.9.0}/README.md +0 -0
  32. {stackit_git-0.8.0 → stackit_git-0.9.0}/src/stackit/git/__init__.py +0 -0
  33. {stackit_git-0.8.0 → stackit_git-0.9.0}/src/stackit/git/api/__init__.py +0 -0
  34. {stackit_git-0.8.0 → stackit_git-0.9.0}/src/stackit/git/api_response.py +0 -0
  35. {stackit_git-0.8.0 → stackit_git-0.9.0}/src/stackit/git/configuration.py +0 -0
  36. {stackit_git-0.8.0 → stackit_git-0.9.0}/src/stackit/git/exceptions.py +0 -0
  37. {stackit_git-0.8.0 → stackit_git-0.9.0}/src/stackit/git/models/__init__.py +0 -0
  38. {stackit_git-0.8.0 → stackit_git-0.9.0}/src/stackit/git/py.typed +0 -0
  39. {stackit_git-0.8.0 → stackit_git-0.9.0}/src/stackit/git/rest.py +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: stackit-git
3
- Version: 0.8.0
3
+ Version: 0.9.0
4
4
  Summary: STACKIT Git API
5
5
  Project-URL: Homepage, https://github.com/stackitcloud/stackit-sdk-python
6
6
  Project-URL: Issues, https://github.com/stackitcloud/stackit-sdk-python/issues
@@ -1,6 +1,6 @@
1
1
  [project]
2
2
  name = "stackit-git"
3
- version = "v0.8.0"
3
+ version = "v0.9.0"
4
4
  description = "STACKIT Git API"
5
5
  authors = [{ name = "STACKIT Developer Tools", email = "developer-tools@stackit.cloud" }]
6
6
  requires-python = ">=3.9,<4.0"
@@ -15,7 +15,13 @@
15
15
  from typing import Any, Dict, List, Optional, Tuple, Union
16
16
  from uuid import UUID
17
17
 
18
- from pydantic import Field, StrictFloat, StrictInt, StrictStr, validate_call
18
+ from pydantic import (
19
+ Field,
20
+ StrictFloat,
21
+ StrictInt,
22
+ StrictStr,
23
+ validate_call,
24
+ )
19
25
  from stackit.core.configuration import Configuration
20
26
  from typing_extensions import Annotated
21
27
 
@@ -67,6 +67,7 @@ class ApiClient:
67
67
  "date": datetime.date,
68
68
  "datetime": datetime.datetime,
69
69
  "decimal": decimal.Decimal,
70
+ "UUID": uuid.UUID,
70
71
  "object": object,
71
72
  }
72
73
  _pool = None
@@ -266,7 +267,7 @@ class ApiClient:
266
267
  response_text = None
267
268
  return_data = None
268
269
  try:
269
- if response_type == "bytearray":
270
+ if response_type in ("bytearray", "bytes"):
270
271
  return_data = response_data.data
271
272
  elif response_type == "file":
272
273
  return_data = self.__deserialize_file(response_data)
@@ -327,25 +328,20 @@ class ApiClient:
327
328
  return obj.isoformat()
328
329
  elif isinstance(obj, decimal.Decimal):
329
330
  return str(obj)
330
-
331
331
  elif isinstance(obj, dict):
332
- obj_dict = obj
332
+ return {key: self.sanitize_for_serialization(val) for key, val in obj.items()}
333
+
334
+ # Convert model obj to dict except
335
+ # attributes `openapi_types`, `attribute_map`
336
+ # and attributes which value is not None.
337
+ # Convert attribute name to json key in
338
+ # model definition for request.
339
+ if hasattr(obj, "to_dict") and callable(getattr(obj, "to_dict")): # noqa: B009
340
+ obj_dict = obj.to_dict()
333
341
  else:
334
- # Convert model obj to dict except
335
- # attributes `openapi_types`, `attribute_map`
336
- # and attributes which value is not None.
337
- # Convert attribute name to json key in
338
- # model definition for request.
339
- if hasattr(obj, "to_dict") and callable(getattr(obj, "to_dict")): # noqa: B009
340
- obj_dict = obj.to_dict()
341
- else:
342
- obj_dict = obj.__dict__
343
-
344
- if isinstance(obj_dict, list):
345
- # 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
346
- return self.sanitize_for_serialization(obj_dict)
342
+ obj_dict = obj.__dict__
347
343
 
348
- return {key: self.sanitize_for_serialization(val) for key, val in obj_dict.items()}
344
+ return self.sanitize_for_serialization(obj_dict)
349
345
 
350
346
  def deserialize(self, response_text: str, response_type: str, content_type: Optional[str]):
351
347
  """Deserializes response into an object.
@@ -418,6 +414,8 @@ class ApiClient:
418
414
  return self.__deserialize_datetime(data)
419
415
  elif klass is decimal.Decimal:
420
416
  return decimal.Decimal(data)
417
+ elif klass is uuid.UUID:
418
+ return uuid.UUID(data)
421
419
  elif issubclass(klass, Enum):
422
420
  return self.__deserialize_enum(data, klass)
423
421
  else:
@@ -19,6 +19,7 @@ import pprint
19
19
  from typing import Any, ClassVar, Dict, List, Optional, Set
20
20
 
21
21
  from pydantic import BaseModel, ConfigDict, StrictStr
22
+ from pydantic_core import to_jsonable_python
22
23
  from typing_extensions import Self
23
24
 
24
25
 
@@ -31,7 +32,8 @@ class AlreadyExistsError(BaseModel):
31
32
  __properties: ClassVar[List[str]] = ["message"]
32
33
 
33
34
  model_config = ConfigDict(
34
- populate_by_name=True,
35
+ validate_by_name=True,
36
+ validate_by_alias=True,
35
37
  validate_assignment=True,
36
38
  protected_namespaces=(),
37
39
  )
@@ -42,8 +44,7 @@ class AlreadyExistsError(BaseModel):
42
44
 
43
45
  def to_json(self) -> str:
44
46
  """Returns the JSON representation of the model using alias"""
45
- # TODO: pydantic v2: use .model_dump_json(by_alias=True, exclude_unset=True) instead
46
- return json.dumps(self.to_dict())
47
+ return json.dumps(to_jsonable_python(self.to_dict()))
47
48
 
48
49
  @classmethod
49
50
  def from_json(cls, json_str: str) -> Optional[Self]:
@@ -22,6 +22,7 @@ from typing import Any, ClassVar, Dict, List, Optional, Set
22
22
  from uuid import UUID
23
23
 
24
24
  from pydantic import BaseModel, ConfigDict, Field, StrictStr, field_validator
25
+ from pydantic_core import to_jsonable_python
25
26
  from typing_extensions import Annotated, Self
26
27
 
27
28
 
@@ -64,6 +65,9 @@ class Authentication(BaseModel):
64
65
  @field_validator("auto_discover_url")
65
66
  def auto_discover_url_validate_regular_expression(cls, value):
66
67
  """Validates the regular expression"""
68
+ if not isinstance(value, str):
69
+ value = str(value)
70
+
67
71
  if not re.match(r"^https:\/\/[a-zA-Z0-9\-\.]+(\.[a-zA-Z]{2,})+(\/.*)?$", value):
68
72
  raise ValueError(
69
73
  r"must validate the regular expression /^https:\/\/[a-zA-Z0-9\-\.]+(\.[a-zA-Z]{2,})+(\/.*)?$/"
@@ -86,6 +90,9 @@ class Authentication(BaseModel):
86
90
  @field_validator("icon_url")
87
91
  def icon_url_validate_regular_expression(cls, value):
88
92
  """Validates the regular expression"""
93
+ if not isinstance(value, str):
94
+ value = str(value)
95
+
89
96
  if not re.match(r"^https:\/\/[a-zA-Z0-9\-\.]+(\.[a-zA-Z]{2,})+(\/.*)?$", value):
90
97
  raise ValueError(
91
98
  r"must validate the regular expression /^https:\/\/[a-zA-Z0-9\-\.]+(\.[a-zA-Z]{2,})+(\/.*)?$/"
@@ -93,7 +100,8 @@ class Authentication(BaseModel):
93
100
  return value
94
101
 
95
102
  model_config = ConfigDict(
96
- populate_by_name=True,
103
+ validate_by_name=True,
104
+ validate_by_alias=True,
97
105
  validate_assignment=True,
98
106
  protected_namespaces=(),
99
107
  )
@@ -104,8 +112,7 @@ class Authentication(BaseModel):
104
112
 
105
113
  def to_json(self) -> str:
106
114
  """Returns the JSON representation of the model using alias"""
107
- # TODO: pydantic v2: use .model_dump_json(by_alias=True, exclude_unset=True) instead
108
- return json.dumps(self.to_dict())
115
+ return json.dumps(to_jsonable_python(self.to_dict()))
109
116
 
110
117
  @classmethod
111
118
  def from_json(cls, json_str: str) -> Optional[Self]:
@@ -19,6 +19,7 @@ import pprint
19
19
  from typing import Any, ClassVar, Dict, List, Optional, Set
20
20
 
21
21
  from pydantic import BaseModel, ConfigDict, Field
22
+ from pydantic_core import to_jsonable_python
22
23
  from typing_extensions import Annotated, Self
23
24
 
24
25
  from stackit.git.models.authentication import Authentication
@@ -33,7 +34,8 @@ class AuthenticationList(BaseModel):
33
34
  __properties: ClassVar[List[str]] = ["authentication"]
34
35
 
35
36
  model_config = ConfigDict(
36
- populate_by_name=True,
37
+ validate_by_name=True,
38
+ validate_by_alias=True,
37
39
  validate_assignment=True,
38
40
  protected_namespaces=(),
39
41
  )
@@ -44,8 +46,7 @@ class AuthenticationList(BaseModel):
44
46
 
45
47
  def to_json(self) -> str:
46
48
  """Returns the JSON representation of the model using alias"""
47
- # TODO: pydantic v2: use .model_dump_json(by_alias=True, exclude_unset=True) instead
48
- return json.dumps(self.to_dict())
49
+ return json.dumps(to_jsonable_python(self.to_dict()))
49
50
 
50
51
  @classmethod
51
52
  def from_json(cls, json_str: str) -> Optional[Self]:
@@ -19,6 +19,7 @@ import pprint
19
19
  from typing import Any, ClassVar, Dict, List, Optional, Set
20
20
 
21
21
  from pydantic import BaseModel, ConfigDict, StrictStr
22
+ from pydantic_core import to_jsonable_python
22
23
  from typing_extensions import Self
23
24
 
24
25
 
@@ -32,7 +33,8 @@ class BadErrorResponse(BaseModel):
32
33
  __properties: ClassVar[List[str]] = ["details", "error"]
33
34
 
34
35
  model_config = ConfigDict(
35
- populate_by_name=True,
36
+ validate_by_name=True,
37
+ validate_by_alias=True,
36
38
  validate_assignment=True,
37
39
  protected_namespaces=(),
38
40
  )
@@ -43,8 +45,7 @@ class BadErrorResponse(BaseModel):
43
45
 
44
46
  def to_json(self) -> str:
45
47
  """Returns the JSON representation of the model using alias"""
46
- # TODO: pydantic v2: use .model_dump_json(by_alias=True, exclude_unset=True) instead
47
- return json.dumps(self.to_dict())
48
+ return json.dumps(to_jsonable_python(self.to_dict()))
48
49
 
49
50
  @classmethod
50
51
  def from_json(cls, json_str: str) -> Optional[Self]:
@@ -19,6 +19,7 @@ import pprint
19
19
  from typing import Any, ClassVar, Dict, List, Optional, Set
20
20
 
21
21
  from pydantic import BaseModel, ConfigDict, StrictStr
22
+ from pydantic_core import to_jsonable_python
22
23
  from typing_extensions import Self
23
24
 
24
25
 
@@ -32,7 +33,8 @@ class ConflictErrorResponse(BaseModel):
32
33
  __properties: ClassVar[List[str]] = ["details", "error"]
33
34
 
34
35
  model_config = ConfigDict(
35
- populate_by_name=True,
36
+ validate_by_name=True,
37
+ validate_by_alias=True,
36
38
  validate_assignment=True,
37
39
  protected_namespaces=(),
38
40
  )
@@ -43,8 +45,7 @@ class ConflictErrorResponse(BaseModel):
43
45
 
44
46
  def to_json(self) -> str:
45
47
  """Returns the JSON representation of the model using alias"""
46
- # TODO: pydantic v2: use .model_dump_json(by_alias=True, exclude_unset=True) instead
47
- return json.dumps(self.to_dict())
48
+ return json.dumps(to_jsonable_python(self.to_dict()))
48
49
 
49
50
  @classmethod
50
51
  def from_json(cls, json_str: str) -> Optional[Self]:
@@ -20,6 +20,7 @@ import re # noqa: F401
20
20
  from typing import Any, ClassVar, Dict, List, Optional, Set
21
21
 
22
22
  from pydantic import BaseModel, ConfigDict, Field, StrictStr, field_validator
23
+ from pydantic_core import to_jsonable_python
23
24
  from typing_extensions import Annotated, Self
24
25
 
25
26
 
@@ -56,6 +57,9 @@ class CreateAuthenticationPayload(BaseModel):
56
57
  @field_validator("auto_discover_url")
57
58
  def auto_discover_url_validate_regular_expression(cls, value):
58
59
  """Validates the regular expression"""
60
+ if not isinstance(value, str):
61
+ value = str(value)
62
+
59
63
  if not re.match(r"^https:\/\/[a-zA-Z0-9\-\.]+(\.[a-zA-Z]{2,})+(\/.*)?$", value):
60
64
  raise ValueError(
61
65
  r"must validate the regular expression /^https:\/\/[a-zA-Z0-9\-\.]+(\.[a-zA-Z]{2,})+(\/.*)?$/"
@@ -68,6 +72,9 @@ class CreateAuthenticationPayload(BaseModel):
68
72
  if value is None:
69
73
  return value
70
74
 
75
+ if not isinstance(value, str):
76
+ value = str(value)
77
+
71
78
  if not re.match(r"^https:\/\/[a-zA-Z0-9\-\.]+(\.[a-zA-Z]{2,})+(\/.*)?$", value):
72
79
  raise ValueError(
73
80
  r"must validate the regular expression /^https:\/\/[a-zA-Z0-9\-\.]+(\.[a-zA-Z]{2,})+(\/.*)?$/"
@@ -75,7 +82,8 @@ class CreateAuthenticationPayload(BaseModel):
75
82
  return value
76
83
 
77
84
  model_config = ConfigDict(
78
- populate_by_name=True,
85
+ validate_by_name=True,
86
+ validate_by_alias=True,
79
87
  validate_assignment=True,
80
88
  protected_namespaces=(),
81
89
  )
@@ -86,8 +94,7 @@ class CreateAuthenticationPayload(BaseModel):
86
94
 
87
95
  def to_json(self) -> str:
88
96
  """Returns the JSON representation of the model using alias"""
89
- # TODO: pydantic v2: use .model_dump_json(by_alias=True, exclude_unset=True) instead
90
- return json.dumps(self.to_dict())
97
+ return json.dumps(to_jsonable_python(self.to_dict()))
91
98
 
92
99
  @classmethod
93
100
  def from_json(cls, json_str: str) -> Optional[Self]:
@@ -20,6 +20,7 @@ import re # noqa: F401
20
20
  from typing import Any, ClassVar, Dict, List, Optional, Set
21
21
 
22
22
  from pydantic import BaseModel, ConfigDict, Field, StrictStr, field_validator
23
+ from pydantic_core import to_jsonable_python
23
24
  from typing_extensions import Annotated, Self
24
25
 
25
26
 
@@ -50,12 +51,16 @@ class CreateInstancePayload(BaseModel):
50
51
  @field_validator("name")
51
52
  def name_validate_regular_expression(cls, value):
52
53
  """Validates the regular expression"""
54
+ if not isinstance(value, str):
55
+ value = str(value)
56
+
53
57
  if not re.match(r"^[a-z]([a-z0-9\-]){0,30}[a-z0-9]+$", value):
54
58
  raise ValueError(r"must validate the regular expression /^[a-z]([a-z0-9\-]){0,30}[a-z0-9]+$/")
55
59
  return value
56
60
 
57
61
  model_config = ConfigDict(
58
- populate_by_name=True,
62
+ validate_by_name=True,
63
+ validate_by_alias=True,
59
64
  validate_assignment=True,
60
65
  protected_namespaces=(),
61
66
  )
@@ -66,8 +71,7 @@ class CreateInstancePayload(BaseModel):
66
71
 
67
72
  def to_json(self) -> str:
68
73
  """Returns the JSON representation of the model using alias"""
69
- # TODO: pydantic v2: use .model_dump_json(by_alias=True, exclude_unset=True) instead
70
- return json.dumps(self.to_dict())
74
+ return json.dumps(to_jsonable_python(self.to_dict()))
71
75
 
72
76
  @classmethod
73
77
  def from_json(cls, json_str: str) -> Optional[Self]:
@@ -19,6 +19,7 @@ import pprint
19
19
  from typing import Any, ClassVar, Dict, List, Optional, Set
20
20
 
21
21
  from pydantic import BaseModel, ConfigDict, StrictStr
22
+ from pydantic_core import to_jsonable_python
22
23
  from typing_extensions import Self
23
24
 
24
25
 
@@ -31,7 +32,8 @@ class CreateRunnerPayload(BaseModel):
31
32
  __properties: ClassVar[List[str]] = ["labels"]
32
33
 
33
34
  model_config = ConfigDict(
34
- populate_by_name=True,
35
+ validate_by_name=True,
36
+ validate_by_alias=True,
35
37
  validate_assignment=True,
36
38
  protected_namespaces=(),
37
39
  )
@@ -42,8 +44,7 @@ class CreateRunnerPayload(BaseModel):
42
44
 
43
45
  def to_json(self) -> str:
44
46
  """Returns the JSON representation of the model using alias"""
45
- # TODO: pydantic v2: use .model_dump_json(by_alias=True, exclude_unset=True) instead
46
- return json.dumps(self.to_dict())
47
+ return json.dumps(to_jsonable_python(self.to_dict()))
47
48
 
48
49
  @classmethod
49
50
  def from_json(cls, json_str: str) -> Optional[Self]:
@@ -26,6 +26,7 @@ from pydantic import (
26
26
  StrictStr,
27
27
  field_validator,
28
28
  )
29
+ from pydantic_core import to_jsonable_python
29
30
  from typing_extensions import Self
30
31
 
31
32
 
@@ -54,7 +55,8 @@ class FeatureToggle(BaseModel):
54
55
  return value
55
56
 
56
57
  model_config = ConfigDict(
57
- populate_by_name=True,
58
+ validate_by_name=True,
59
+ validate_by_alias=True,
58
60
  validate_assignment=True,
59
61
  protected_namespaces=(),
60
62
  )
@@ -65,8 +67,7 @@ class FeatureToggle(BaseModel):
65
67
 
66
68
  def to_json(self) -> str:
67
69
  """Returns the JSON representation of the model using alias"""
68
- # TODO: pydantic v2: use .model_dump_json(by_alias=True, exclude_unset=True) instead
69
- return json.dumps(self.to_dict())
70
+ return json.dumps(to_jsonable_python(self.to_dict()))
70
71
 
71
72
  @classmethod
72
73
  def from_json(cls, json_str: str) -> Optional[Self]:
@@ -19,6 +19,7 @@ import pprint
19
19
  from typing import Any, ClassVar, Dict, List, Optional, Set
20
20
 
21
21
  from pydantic import BaseModel, ConfigDict, Field, StrictStr, field_validator
22
+ from pydantic_core import to_jsonable_python
22
23
  from typing_extensions import Annotated, Self
23
24
 
24
25
 
@@ -42,7 +43,8 @@ class Flavor(BaseModel):
42
43
  return value
43
44
 
44
45
  model_config = ConfigDict(
45
- populate_by_name=True,
46
+ validate_by_name=True,
47
+ validate_by_alias=True,
46
48
  validate_assignment=True,
47
49
  protected_namespaces=(),
48
50
  )
@@ -53,8 +55,7 @@ class Flavor(BaseModel):
53
55
 
54
56
  def to_json(self) -> str:
55
57
  """Returns the JSON representation of the model using alias"""
56
- # TODO: pydantic v2: use .model_dump_json(by_alias=True, exclude_unset=True) instead
57
- return json.dumps(self.to_dict())
58
+ return json.dumps(to_jsonable_python(self.to_dict()))
58
59
 
59
60
  @classmethod
60
61
  def from_json(cls, json_str: str) -> Optional[Self]:
@@ -19,6 +19,7 @@ import pprint
19
19
  from typing import Any, ClassVar, Dict, List, Optional, Set
20
20
 
21
21
  from pydantic import BaseModel, ConfigDict, StrictStr
22
+ from pydantic_core import to_jsonable_python
22
23
  from typing_extensions import Self
23
24
 
24
25
 
@@ -32,7 +33,8 @@ class GenericErrorResponse(BaseModel):
32
33
  __properties: ClassVar[List[str]] = ["details", "message"]
33
34
 
34
35
  model_config = ConfigDict(
35
- populate_by_name=True,
36
+ validate_by_name=True,
37
+ validate_by_alias=True,
36
38
  validate_assignment=True,
37
39
  protected_namespaces=(),
38
40
  )
@@ -43,8 +45,7 @@ class GenericErrorResponse(BaseModel):
43
45
 
44
46
  def to_json(self) -> str:
45
47
  """Returns the JSON representation of the model using alias"""
46
- # TODO: pydantic v2: use .model_dump_json(by_alias=True, exclude_unset=True) instead
47
- return json.dumps(self.to_dict())
48
+ return json.dumps(to_jsonable_python(self.to_dict()))
48
49
 
49
50
  @classmethod
50
51
  def from_json(cls, json_str: str) -> Optional[Self]:
@@ -22,6 +22,7 @@ from typing import Any, ClassVar, Dict, List, Optional, Set
22
22
  from uuid import UUID
23
23
 
24
24
  from pydantic import BaseModel, ConfigDict, Field, StrictStr, field_validator
25
+ from pydantic_core import to_jsonable_python
25
26
  from typing_extensions import Annotated, Self
26
27
 
27
28
  from stackit.git.models.feature_toggle import FeatureToggle
@@ -88,7 +89,8 @@ class Instance(BaseModel):
88
89
  return value
89
90
 
90
91
  model_config = ConfigDict(
91
- populate_by_name=True,
92
+ validate_by_name=True,
93
+ validate_by_alias=True,
92
94
  validate_assignment=True,
93
95
  protected_namespaces=(),
94
96
  )
@@ -99,8 +101,7 @@ class Instance(BaseModel):
99
101
 
100
102
  def to_json(self) -> str:
101
103
  """Returns the JSON representation of the model using alias"""
102
- # TODO: pydantic v2: use .model_dump_json(by_alias=True, exclude_unset=True) instead
103
- return json.dumps(self.to_dict())
104
+ return json.dumps(to_jsonable_python(self.to_dict()))
104
105
 
105
106
  @classmethod
106
107
  def from_json(cls, json_str: str) -> Optional[Self]:
@@ -19,6 +19,7 @@ import pprint
19
19
  from typing import Any, ClassVar, Dict, List, Optional, Set
20
20
 
21
21
  from pydantic import BaseModel, ConfigDict, StrictStr
22
+ from pydantic_core import to_jsonable_python
22
23
  from typing_extensions import Self
23
24
 
24
25
 
@@ -32,7 +33,8 @@ class InternalServerErrorResponse(BaseModel):
32
33
  __properties: ClassVar[List[str]] = ["details", "error"]
33
34
 
34
35
  model_config = ConfigDict(
35
- populate_by_name=True,
36
+ validate_by_name=True,
37
+ validate_by_alias=True,
36
38
  validate_assignment=True,
37
39
  protected_namespaces=(),
38
40
  )
@@ -43,8 +45,7 @@ class InternalServerErrorResponse(BaseModel):
43
45
 
44
46
  def to_json(self) -> str:
45
47
  """Returns the JSON representation of the model using alias"""
46
- # TODO: pydantic v2: use .model_dump_json(by_alias=True, exclude_unset=True) instead
47
- return json.dumps(self.to_dict())
48
+ return json.dumps(to_jsonable_python(self.to_dict()))
48
49
 
49
50
  @classmethod
50
51
  def from_json(cls, json_str: str) -> Optional[Self]:
@@ -19,6 +19,7 @@ import pprint
19
19
  from typing import Any, ClassVar, Dict, List, Optional, Set
20
20
 
21
21
  from pydantic import BaseModel, ConfigDict
22
+ from pydantic_core import to_jsonable_python
22
23
  from typing_extensions import Self
23
24
 
24
25
  from stackit.git.models.flavor import Flavor
@@ -33,7 +34,8 @@ class ListFlavors(BaseModel):
33
34
  __properties: ClassVar[List[str]] = ["flavors"]
34
35
 
35
36
  model_config = ConfigDict(
36
- populate_by_name=True,
37
+ validate_by_name=True,
38
+ validate_by_alias=True,
37
39
  validate_assignment=True,
38
40
  protected_namespaces=(),
39
41
  )
@@ -44,8 +46,7 @@ class ListFlavors(BaseModel):
44
46
 
45
47
  def to_json(self) -> str:
46
48
  """Returns the JSON representation of the model using alias"""
47
- # TODO: pydantic v2: use .model_dump_json(by_alias=True, exclude_unset=True) instead
48
- return json.dumps(self.to_dict())
49
+ return json.dumps(to_jsonable_python(self.to_dict()))
49
50
 
50
51
  @classmethod
51
52
  def from_json(cls, json_str: str) -> Optional[Self]:
@@ -19,6 +19,7 @@ import pprint
19
19
  from typing import Any, ClassVar, Dict, List, Optional, Set
20
20
 
21
21
  from pydantic import BaseModel, ConfigDict, Field
22
+ from pydantic_core import to_jsonable_python
22
23
  from typing_extensions import Annotated, Self
23
24
 
24
25
  from stackit.git.models.instance import Instance
@@ -33,7 +34,8 @@ class ListInstances(BaseModel):
33
34
  __properties: ClassVar[List[str]] = ["instances"]
34
35
 
35
36
  model_config = ConfigDict(
36
- populate_by_name=True,
37
+ validate_by_name=True,
38
+ validate_by_alias=True,
37
39
  validate_assignment=True,
38
40
  protected_namespaces=(),
39
41
  )
@@ -44,8 +46,7 @@ class ListInstances(BaseModel):
44
46
 
45
47
  def to_json(self) -> str:
46
48
  """Returns the JSON representation of the model using alias"""
47
- # TODO: pydantic v2: use .model_dump_json(by_alias=True, exclude_unset=True) instead
48
- return json.dumps(self.to_dict())
49
+ return json.dumps(to_jsonable_python(self.to_dict()))
49
50
 
50
51
  @classmethod
51
52
  def from_json(cls, json_str: str) -> Optional[Self]:
@@ -19,6 +19,7 @@ import pprint
19
19
  from typing import Any, ClassVar, Dict, List, Optional, Set
20
20
 
21
21
  from pydantic import BaseModel, ConfigDict, StrictStr
22
+ from pydantic_core import to_jsonable_python
22
23
  from typing_extensions import Self
23
24
 
24
25
 
@@ -32,7 +33,8 @@ class NotFoundErrorResponse(BaseModel):
32
33
  __properties: ClassVar[List[str]] = ["details", "error"]
33
34
 
34
35
  model_config = ConfigDict(
35
- populate_by_name=True,
36
+ validate_by_name=True,
37
+ validate_by_alias=True,
36
38
  validate_assignment=True,
37
39
  protected_namespaces=(),
38
40
  )
@@ -43,8 +45,7 @@ class NotFoundErrorResponse(BaseModel):
43
45
 
44
46
  def to_json(self) -> str:
45
47
  """Returns the JSON representation of the model using alias"""
46
- # TODO: pydantic v2: use .model_dump_json(by_alias=True, exclude_unset=True) instead
47
- return json.dumps(self.to_dict())
48
+ return json.dumps(to_jsonable_python(self.to_dict()))
48
49
 
49
50
  @classmethod
50
51
  def from_json(cls, json_str: str) -> Optional[Self]:
@@ -20,6 +20,7 @@ import re # noqa: F401
20
20
  from typing import Any, ClassVar, Dict, List, Optional, Set
21
21
 
22
22
  from pydantic import BaseModel, ConfigDict, Field, StrictStr, field_validator
23
+ from pydantic_core import to_jsonable_python
23
24
  from typing_extensions import Annotated, Self
24
25
 
25
26
 
@@ -55,6 +56,9 @@ class PatchAuthenticationPayload(BaseModel):
55
56
  if value is None:
56
57
  return value
57
58
 
59
+ if not isinstance(value, str):
60
+ value = str(value)
61
+
58
62
  if not re.match(r"^https:\/\/[a-zA-Z0-9\-\.]+(\.[a-zA-Z]{2,})+(\/.*)?$", value):
59
63
  raise ValueError(
60
64
  r"must validate the regular expression /^https:\/\/[a-zA-Z0-9\-\.]+(\.[a-zA-Z]{2,})+(\/.*)?$/"
@@ -67,6 +71,9 @@ class PatchAuthenticationPayload(BaseModel):
67
71
  if value is None:
68
72
  return value
69
73
 
74
+ if not isinstance(value, str):
75
+ value = str(value)
76
+
70
77
  if not re.match(r"^https:\/\/[a-zA-Z0-9\-\.]+(\.[a-zA-Z]{2,})+(\/.*)?$", value):
71
78
  raise ValueError(
72
79
  r"must validate the regular expression /^https:\/\/[a-zA-Z0-9\-\.]+(\.[a-zA-Z]{2,})+(\/.*)?$/"
@@ -74,7 +81,8 @@ class PatchAuthenticationPayload(BaseModel):
74
81
  return value
75
82
 
76
83
  model_config = ConfigDict(
77
- populate_by_name=True,
84
+ validate_by_name=True,
85
+ validate_by_alias=True,
78
86
  validate_assignment=True,
79
87
  protected_namespaces=(),
80
88
  )
@@ -85,8 +93,7 @@ class PatchAuthenticationPayload(BaseModel):
85
93
 
86
94
  def to_json(self) -> str:
87
95
  """Returns the JSON representation of the model using alias"""
88
- # TODO: pydantic v2: use .model_dump_json(by_alias=True, exclude_unset=True) instead
89
- return json.dumps(self.to_dict())
96
+ return json.dumps(to_jsonable_python(self.to_dict()))
90
97
 
91
98
  @classmethod
92
99
  def from_json(cls, json_str: str) -> Optional[Self]:
@@ -19,6 +19,7 @@ import pprint
19
19
  from typing import Any, ClassVar, Dict, List, Optional, Set
20
20
 
21
21
  from pydantic import BaseModel, ConfigDict, Field, StrictStr
22
+ from pydantic_core import to_jsonable_python
22
23
  from typing_extensions import Annotated, Self
23
24
 
24
25
  from stackit.git.models.feature_toggle import FeatureToggle
@@ -36,7 +37,8 @@ class PatchInstancePayload(BaseModel):
36
37
  __properties: ClassVar[List[str]] = ["acl", "feature_toggle"]
37
38
 
38
39
  model_config = ConfigDict(
39
- populate_by_name=True,
40
+ validate_by_name=True,
41
+ validate_by_alias=True,
40
42
  validate_assignment=True,
41
43
  protected_namespaces=(),
42
44
  )
@@ -47,8 +49,7 @@ class PatchInstancePayload(BaseModel):
47
49
 
48
50
  def to_json(self) -> str:
49
51
  """Returns the JSON representation of the model using alias"""
50
- # TODO: pydantic v2: use .model_dump_json(by_alias=True, exclude_unset=True) instead
51
- return json.dumps(self.to_dict())
52
+ return json.dumps(to_jsonable_python(self.to_dict()))
52
53
 
53
54
  @classmethod
54
55
  def from_json(cls, json_str: str) -> Optional[Self]:
@@ -19,6 +19,7 @@ import pprint
19
19
  from typing import Any, ClassVar, Dict, List, Optional, Set
20
20
 
21
21
  from pydantic import BaseModel, ConfigDict, Field, StrictStr, field_validator
22
+ from pydantic_core import to_jsonable_python
22
23
  from typing_extensions import Self
23
24
 
24
25
 
@@ -42,7 +43,8 @@ class PatchOperation(BaseModel):
42
43
  return value
43
44
 
44
45
  model_config = ConfigDict(
45
- populate_by_name=True,
46
+ validate_by_name=True,
47
+ validate_by_alias=True,
46
48
  validate_assignment=True,
47
49
  protected_namespaces=(),
48
50
  )
@@ -53,8 +55,7 @@ class PatchOperation(BaseModel):
53
55
 
54
56
  def to_json(self) -> str:
55
57
  """Returns the JSON representation of the model using alias"""
56
- # TODO: pydantic v2: use .model_dump_json(by_alias=True, exclude_unset=True) instead
57
- return json.dumps(self.to_dict())
58
+ return json.dumps(to_jsonable_python(self.to_dict()))
58
59
 
59
60
  @classmethod
60
61
  def from_json(cls, json_str: str) -> Optional[Self]:
@@ -22,6 +22,7 @@ from typing import Any, ClassVar, Dict, List, Optional, Set
22
22
  from uuid import UUID
23
23
 
24
24
  from pydantic import BaseModel, ConfigDict, Field, StrictStr, field_validator
25
+ from pydantic_core import to_jsonable_python
25
26
  from typing_extensions import Self
26
27
 
27
28
 
@@ -50,7 +51,8 @@ class Runner(BaseModel):
50
51
  return value
51
52
 
52
53
  model_config = ConfigDict(
53
- populate_by_name=True,
54
+ validate_by_name=True,
55
+ validate_by_alias=True,
54
56
  validate_assignment=True,
55
57
  protected_namespaces=(),
56
58
  )
@@ -61,8 +63,7 @@ class Runner(BaseModel):
61
63
 
62
64
  def to_json(self) -> str:
63
65
  """Returns the JSON representation of the model using alias"""
64
- # TODO: pydantic v2: use .model_dump_json(by_alias=True, exclude_unset=True) instead
65
- return json.dumps(self.to_dict())
66
+ return json.dumps(to_jsonable_python(self.to_dict()))
66
67
 
67
68
  @classmethod
68
69
  def from_json(cls, json_str: str) -> Optional[Self]:
@@ -19,6 +19,7 @@ import pprint
19
19
  from typing import Any, ClassVar, Dict, List, Optional, Set
20
20
 
21
21
  from pydantic import BaseModel, ConfigDict, Field, StrictStr
22
+ from pydantic_core import to_jsonable_python
22
23
  from typing_extensions import Self
23
24
 
24
25
 
@@ -35,7 +36,8 @@ class RunnerRuntime(BaseModel):
35
36
  __properties: ClassVar[List[str]] = ["availability", "description", "display_name", "id", "label"]
36
37
 
37
38
  model_config = ConfigDict(
38
- populate_by_name=True,
39
+ validate_by_name=True,
40
+ validate_by_alias=True,
39
41
  validate_assignment=True,
40
42
  protected_namespaces=(),
41
43
  )
@@ -46,8 +48,7 @@ class RunnerRuntime(BaseModel):
46
48
 
47
49
  def to_json(self) -> str:
48
50
  """Returns the JSON representation of the model using alias"""
49
- # TODO: pydantic v2: use .model_dump_json(by_alias=True, exclude_unset=True) instead
50
- return json.dumps(self.to_dict())
51
+ return json.dumps(to_jsonable_python(self.to_dict()))
51
52
 
52
53
  @classmethod
53
54
  def from_json(cls, json_str: str) -> Optional[Self]:
@@ -19,6 +19,7 @@ import pprint
19
19
  from typing import Any, ClassVar, Dict, List, Optional, Set
20
20
 
21
21
  from pydantic import BaseModel, ConfigDict
22
+ from pydantic_core import to_jsonable_python
22
23
  from typing_extensions import Self
23
24
 
24
25
  from stackit.git.models.runner_runtime import RunnerRuntime
@@ -33,7 +34,8 @@ class RunnerRuntimeList(BaseModel):
33
34
  __properties: ClassVar[List[str]] = ["items"]
34
35
 
35
36
  model_config = ConfigDict(
36
- populate_by_name=True,
37
+ validate_by_name=True,
38
+ validate_by_alias=True,
37
39
  validate_assignment=True,
38
40
  protected_namespaces=(),
39
41
  )
@@ -44,8 +46,7 @@ class RunnerRuntimeList(BaseModel):
44
46
 
45
47
  def to_json(self) -> str:
46
48
  """Returns the JSON representation of the model using alias"""
47
- # TODO: pydantic v2: use .model_dump_json(by_alias=True, exclude_unset=True) instead
48
- return json.dumps(self.to_dict())
49
+ return json.dumps(to_jsonable_python(self.to_dict()))
49
50
 
50
51
  @classmethod
51
52
  def from_json(cls, json_str: str) -> Optional[Self]:
@@ -21,6 +21,7 @@ from datetime import datetime
21
21
  from typing import Any, ClassVar, Dict, List, Optional, Set
22
22
 
23
23
  from pydantic import BaseModel, ConfigDict, StrictInt, StrictStr, field_validator
24
+ from pydantic_core import to_jsonable_python
24
25
  from typing_extensions import Self
25
26
 
26
27
 
@@ -50,7 +51,8 @@ class UnauthorizedErrorResponse(BaseModel):
50
51
  return value
51
52
 
52
53
  model_config = ConfigDict(
53
- populate_by_name=True,
54
+ validate_by_name=True,
55
+ validate_by_alias=True,
54
56
  validate_assignment=True,
55
57
  protected_namespaces=(),
56
58
  )
@@ -61,8 +63,7 @@ class UnauthorizedErrorResponse(BaseModel):
61
63
 
62
64
  def to_json(self) -> str:
63
65
  """Returns the JSON representation of the model using alias"""
64
- # TODO: pydantic v2: use .model_dump_json(by_alias=True, exclude_unset=True) instead
65
- return json.dumps(self.to_dict())
66
+ return json.dumps(to_jsonable_python(self.to_dict()))
66
67
 
67
68
  @classmethod
68
69
  def from_json(cls, json_str: str) -> Optional[Self]:
File without changes
File without changes
File without changes
File without changes