stackit-auditlog 0.1.2__tar.gz → 0.2.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 (25) hide show
  1. {stackit_auditlog-0.1.2 → stackit_auditlog-0.2.0}/PKG-INFO +1 -1
  2. {stackit_auditlog-0.1.2 → stackit_auditlog-0.2.0}/pyproject.toml +1 -1
  3. {stackit_auditlog-0.1.2 → stackit_auditlog-0.2.0}/src/stackit/auditlog/api_client.py +15 -17
  4. {stackit_auditlog-0.1.2 → stackit_auditlog-0.2.0}/src/stackit/auditlog/models/audit_log_entry_context_response.py +4 -3
  5. {stackit_auditlog-0.1.2 → stackit_auditlog-0.2.0}/src/stackit/auditlog/models/audit_log_entry_initiator_response.py +4 -3
  6. {stackit_auditlog-0.1.2 → stackit_auditlog-0.2.0}/src/stackit/auditlog/models/audit_log_entry_request_response.py +4 -3
  7. {stackit_auditlog-0.1.2 → stackit_auditlog-0.2.0}/src/stackit/auditlog/models/audit_log_entry_response.py +4 -3
  8. {stackit_auditlog-0.1.2 → stackit_auditlog-0.2.0}/src/stackit/auditlog/models/audit_log_entry_service_account_delegation_info_response.py +4 -3
  9. {stackit_auditlog-0.1.2 → stackit_auditlog-0.2.0}/src/stackit/auditlog/models/error_response.py +4 -3
  10. {stackit_auditlog-0.1.2 → stackit_auditlog-0.2.0}/src/stackit/auditlog/models/gateway_error_response.py +4 -3
  11. {stackit_auditlog-0.1.2 → stackit_auditlog-0.2.0}/src/stackit/auditlog/models/list_audit_log_entries_response.py +4 -3
  12. {stackit_auditlog-0.1.2 → stackit_auditlog-0.2.0}/src/stackit/auditlog/models/service_account_delegation_info_principal_response.py +4 -3
  13. {stackit_auditlog-0.1.2 → stackit_auditlog-0.2.0}/.gitignore +0 -0
  14. {stackit_auditlog-0.1.2 → stackit_auditlog-0.2.0}/LICENSE.md +0 -0
  15. {stackit_auditlog-0.1.2 → stackit_auditlog-0.2.0}/NOTICE.txt +0 -0
  16. {stackit_auditlog-0.1.2 → stackit_auditlog-0.2.0}/README.md +0 -0
  17. {stackit_auditlog-0.1.2 → stackit_auditlog-0.2.0}/src/stackit/auditlog/__init__.py +0 -0
  18. {stackit_auditlog-0.1.2 → stackit_auditlog-0.2.0}/src/stackit/auditlog/api/__init__.py +0 -0
  19. {stackit_auditlog-0.1.2 → stackit_auditlog-0.2.0}/src/stackit/auditlog/api/default_api.py +0 -0
  20. {stackit_auditlog-0.1.2 → stackit_auditlog-0.2.0}/src/stackit/auditlog/api_response.py +0 -0
  21. {stackit_auditlog-0.1.2 → stackit_auditlog-0.2.0}/src/stackit/auditlog/configuration.py +0 -0
  22. {stackit_auditlog-0.1.2 → stackit_auditlog-0.2.0}/src/stackit/auditlog/exceptions.py +0 -0
  23. {stackit_auditlog-0.1.2 → stackit_auditlog-0.2.0}/src/stackit/auditlog/models/__init__.py +0 -0
  24. {stackit_auditlog-0.1.2 → stackit_auditlog-0.2.0}/src/stackit/auditlog/py.typed +0 -0
  25. {stackit_auditlog-0.1.2 → stackit_auditlog-0.2.0}/src/stackit/auditlog/rest.py +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: stackit-auditlog
3
- Version: 0.1.2
3
+ Version: 0.2.0
4
4
  Summary: Audit Log 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-auditlog"
3
- version = "v0.1.2"
3
+ version = "v0.2.0"
4
4
  description = "Audit Log API"
5
5
  authors = [{ name = "STACKIT Developer Tools", email = "developer-tools@stackit.cloud" }]
6
6
  requires-python = ">=3.9,<4"
@@ -66,6 +66,7 @@ class ApiClient:
66
66
  "date": datetime.date,
67
67
  "datetime": datetime.datetime,
68
68
  "decimal": decimal.Decimal,
69
+ "UUID": uuid.UUID,
69
70
  "object": object,
70
71
  }
71
72
  _pool = None
@@ -265,7 +266,7 @@ class ApiClient:
265
266
  response_text = None
266
267
  return_data = None
267
268
  try:
268
- if response_type == "bytearray":
269
+ if response_type in ("bytearray", "bytes"):
269
270
  return_data = response_data.data
270
271
  elif response_type == "file":
271
272
  return_data = self.__deserialize_file(response_data)
@@ -326,25 +327,20 @@ class ApiClient:
326
327
  return obj.isoformat()
327
328
  elif isinstance(obj, decimal.Decimal):
328
329
  return str(obj)
329
-
330
330
  elif isinstance(obj, dict):
331
- obj_dict = obj
331
+ return {key: self.sanitize_for_serialization(val) for key, val in obj.items()}
332
+
333
+ # Convert model obj to dict except
334
+ # attributes `openapi_types`, `attribute_map`
335
+ # and attributes which value is not None.
336
+ # Convert attribute name to json key in
337
+ # model definition for request.
338
+ if hasattr(obj, "to_dict") and callable(getattr(obj, "to_dict")): # noqa: B009
339
+ obj_dict = obj.to_dict()
332
340
  else:
333
- # Convert model obj to dict except
334
- # attributes `openapi_types`, `attribute_map`
335
- # and attributes which value is not None.
336
- # Convert attribute name to json key in
337
- # model definition for request.
338
- if hasattr(obj, "to_dict") and callable(getattr(obj, "to_dict")): # noqa: B009
339
- obj_dict = obj.to_dict()
340
- else:
341
- obj_dict = obj.__dict__
342
-
343
- if isinstance(obj_dict, list):
344
- # 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
345
- return self.sanitize_for_serialization(obj_dict)
341
+ obj_dict = obj.__dict__
346
342
 
347
- return {key: self.sanitize_for_serialization(val) for key, val in obj_dict.items()}
343
+ return self.sanitize_for_serialization(obj_dict)
348
344
 
349
345
  def deserialize(self, response_text: str, response_type: str, content_type: Optional[str]):
350
346
  """Deserializes response into an object.
@@ -417,6 +413,8 @@ class ApiClient:
417
413
  return self.__deserialize_datetime(data)
418
414
  elif klass is decimal.Decimal:
419
415
  return decimal.Decimal(data)
416
+ elif klass is uuid.UUID:
417
+ return uuid.UUID(data)
420
418
  elif issubclass(klass, Enum):
421
419
  return self.__deserialize_enum(data, klass)
422
420
  else:
@@ -18,6 +18,7 @@ import pprint
18
18
  from typing import Any, ClassVar, Dict, List, Optional, Set
19
19
 
20
20
  from pydantic import BaseModel, ConfigDict, Field
21
+ from pydantic_core import to_jsonable_python
21
22
  from typing_extensions import Annotated, Self
22
23
 
23
24
 
@@ -38,7 +39,8 @@ class AuditLogEntryContextResponse(BaseModel):
38
39
  __properties: ClassVar[List[str]] = ["folderId", "organizationId", "projectId"]
39
40
 
40
41
  model_config = ConfigDict(
41
- populate_by_name=True,
42
+ validate_by_name=True,
43
+ validate_by_alias=True,
42
44
  validate_assignment=True,
43
45
  protected_namespaces=(),
44
46
  )
@@ -49,8 +51,7 @@ class AuditLogEntryContextResponse(BaseModel):
49
51
 
50
52
  def to_json(self) -> str:
51
53
  """Returns the JSON representation of the model using alias"""
52
- # TODO: pydantic v2: use .model_dump_json(by_alias=True, exclude_unset=True) instead
53
- return json.dumps(self.to_dict())
54
+ return json.dumps(to_jsonable_python(self.to_dict()))
54
55
 
55
56
  @classmethod
56
57
  def from_json(cls, json_str: str) -> Optional[Self]:
@@ -18,6 +18,7 @@ import pprint
18
18
  from typing import Any, ClassVar, Dict, List, Optional, Set
19
19
 
20
20
  from pydantic import BaseModel, ConfigDict, Field, StrictStr
21
+ from pydantic_core import to_jsonable_python
21
22
  from typing_extensions import Annotated, Self
22
23
 
23
24
 
@@ -33,7 +34,8 @@ class AuditLogEntryInitiatorResponse(BaseModel):
33
34
  __properties: ClassVar[List[str]] = ["email", "id"]
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 AuditLogEntryInitiatorResponse(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]:
@@ -18,6 +18,7 @@ import pprint
18
18
  from typing import Any, ClassVar, Dict, List, Optional, Set
19
19
 
20
20
  from pydantic import BaseModel, ConfigDict, Field
21
+ from pydantic_core import to_jsonable_python
21
22
  from typing_extensions import Annotated, Self
22
23
 
23
24
 
@@ -38,7 +39,8 @@ class AuditLogEntryRequestResponse(BaseModel):
38
39
  __properties: ClassVar[List[str]] = ["body", "endpoint", "headers", "parameters"]
39
40
 
40
41
  model_config = ConfigDict(
41
- populate_by_name=True,
42
+ validate_by_name=True,
43
+ validate_by_alias=True,
42
44
  validate_assignment=True,
43
45
  protected_namespaces=(),
44
46
  )
@@ -49,8 +51,7 @@ class AuditLogEntryRequestResponse(BaseModel):
49
51
 
50
52
  def to_json(self) -> str:
51
53
  """Returns the JSON representation of the model using alias"""
52
- # TODO: pydantic v2: use .model_dump_json(by_alias=True, exclude_unset=True) instead
53
- return json.dumps(self.to_dict())
54
+ return json.dumps(to_jsonable_python(self.to_dict()))
54
55
 
55
56
  @classmethod
56
57
  def from_json(cls, json_str: str) -> Optional[Self]:
@@ -20,6 +20,7 @@ from datetime import datetime
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
  from stackit.auditlog.models.audit_log_entry_context_response import (
@@ -167,7 +168,8 @@ class AuditLogEntryResponse(BaseModel):
167
168
  return value
168
169
 
169
170
  model_config = ConfigDict(
170
- populate_by_name=True,
171
+ validate_by_name=True,
172
+ validate_by_alias=True,
171
173
  validate_assignment=True,
172
174
  protected_namespaces=(),
173
175
  )
@@ -178,8 +180,7 @@ class AuditLogEntryResponse(BaseModel):
178
180
 
179
181
  def to_json(self) -> str:
180
182
  """Returns the JSON representation of the model using alias"""
181
- # TODO: pydantic v2: use .model_dump_json(by_alias=True, exclude_unset=True) instead
182
- return json.dumps(self.to_dict())
183
+ return json.dumps(to_jsonable_python(self.to_dict()))
183
184
 
184
185
  @classmethod
185
186
  def from_json(cls, json_str: str) -> Optional[Self]:
@@ -18,6 +18,7 @@ import pprint
18
18
  from typing import Any, ClassVar, Dict, List, Optional, Set
19
19
 
20
20
  from pydantic import BaseModel, ConfigDict, Field
21
+ from pydantic_core import to_jsonable_python
21
22
  from typing_extensions import Self
22
23
 
23
24
  from stackit.auditlog.models.service_account_delegation_info_principal_response import (
@@ -36,7 +37,8 @@ class AuditLogEntryServiceAccountDelegationInfoResponse(BaseModel):
36
37
  __properties: ClassVar[List[str]] = ["principals"]
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 AuditLogEntryServiceAccountDelegationInfoResponse(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]:
@@ -28,6 +28,7 @@ from pydantic import (
28
28
  StrictStr,
29
29
  field_validator,
30
30
  )
31
+ from pydantic_core import to_jsonable_python
31
32
  from typing_extensions import Self
32
33
 
33
34
 
@@ -56,7 +57,8 @@ class ErrorResponse(BaseModel):
56
57
  return value
57
58
 
58
59
  model_config = ConfigDict(
59
- populate_by_name=True,
60
+ validate_by_name=True,
61
+ validate_by_alias=True,
60
62
  validate_assignment=True,
61
63
  protected_namespaces=(),
62
64
  )
@@ -67,8 +69,7 @@ class ErrorResponse(BaseModel):
67
69
 
68
70
  def to_json(self) -> str:
69
71
  """Returns the JSON representation of the model using alias"""
70
- # TODO: pydantic v2: use .model_dump_json(by_alias=True, exclude_unset=True) instead
71
- return json.dumps(self.to_dict())
72
+ return json.dumps(to_jsonable_python(self.to_dict()))
72
73
 
73
74
  @classmethod
74
75
  def from_json(cls, json_str: str) -> Optional[Self]:
@@ -25,6 +25,7 @@ from pydantic import (
25
25
  StrictInt,
26
26
  StrictStr,
27
27
  )
28
+ from pydantic_core import to_jsonable_python
28
29
  from typing_extensions import Self
29
30
 
30
31
 
@@ -38,7 +39,8 @@ class GatewayErrorResponse(BaseModel):
38
39
  __properties: ClassVar[List[str]] = ["message", "status"]
39
40
 
40
41
  model_config = ConfigDict(
41
- populate_by_name=True,
42
+ validate_by_name=True,
43
+ validate_by_alias=True,
42
44
  validate_assignment=True,
43
45
  protected_namespaces=(),
44
46
  )
@@ -49,8 +51,7 @@ class GatewayErrorResponse(BaseModel):
49
51
 
50
52
  def to_json(self) -> str:
51
53
  """Returns the JSON representation of the model using alias"""
52
- # TODO: pydantic v2: use .model_dump_json(by_alias=True, exclude_unset=True) instead
53
- return json.dumps(self.to_dict())
54
+ return json.dumps(to_jsonable_python(self.to_dict()))
54
55
 
55
56
  @classmethod
56
57
  def from_json(cls, json_str: str) -> Optional[Self]:
@@ -25,6 +25,7 @@ from pydantic import (
25
25
  StrictInt,
26
26
  StrictStr,
27
27
  )
28
+ from pydantic_core import to_jsonable_python
28
29
  from typing_extensions import Self
29
30
 
30
31
  from stackit.auditlog.models.audit_log_entry_response import AuditLogEntryResponse
@@ -43,7 +44,8 @@ class ListAuditLogEntriesResponse(BaseModel):
43
44
  __properties: ClassVar[List[str]] = ["cursor", "items", "limit"]
44
45
 
45
46
  model_config = ConfigDict(
46
- populate_by_name=True,
47
+ validate_by_name=True,
48
+ validate_by_alias=True,
47
49
  validate_assignment=True,
48
50
  protected_namespaces=(),
49
51
  )
@@ -54,8 +56,7 @@ class ListAuditLogEntriesResponse(BaseModel):
54
56
 
55
57
  def to_json(self) -> str:
56
58
  """Returns the JSON representation of the model using alias"""
57
- # TODO: pydantic v2: use .model_dump_json(by_alias=True, exclude_unset=True) instead
58
- return json.dumps(self.to_dict())
59
+ return json.dumps(to_jsonable_python(self.to_dict()))
59
60
 
60
61
  @classmethod
61
62
  def from_json(cls, json_str: str) -> Optional[Self]:
@@ -18,6 +18,7 @@ import pprint
18
18
  from typing import Any, ClassVar, Dict, List, Optional, Set
19
19
 
20
20
  from pydantic import BaseModel, ConfigDict, Field, StrictStr
21
+ from pydantic_core import to_jsonable_python
21
22
  from typing_extensions import Annotated, Self
22
23
 
23
24
 
@@ -33,7 +34,8 @@ class ServiceAccountDelegationInfoPrincipalResponse(BaseModel):
33
34
  __properties: ClassVar[List[str]] = ["email", "id"]
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 ServiceAccountDelegationInfoPrincipalResponse(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]: