waldur-api-client 7.8.1__py3-none-any.whl → 7.8.2__py3-none-any.whl

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.

Potentially problematic release.


This version of waldur-api-client might be problematic. Click here for more details.

Files changed (169) hide show
  1. waldur_api_client/api/booking_resources/booking_resources_count.py +10 -13
  2. waldur_api_client/api/booking_resources/booking_resources_list.py +10 -13
  3. waldur_api_client/api/call_managing_organisations/call_managing_organisations_create.py +44 -7
  4. waldur_api_client/api/call_managing_organisations/call_managing_organisations_partial_update.py +46 -7
  5. waldur_api_client/api/call_managing_organisations/call_managing_organisations_update.py +44 -7
  6. waldur_api_client/api/checklists_admin/checklists_admin_checklist_questions.py +49 -0
  7. waldur_api_client/api/checklists_admin/checklists_admin_count.py +43 -0
  8. waldur_api_client/api/checklists_admin/checklists_admin_list.py +43 -0
  9. waldur_api_client/api/checklists_admin_categories/checklists_admin_categories_create.py +44 -7
  10. waldur_api_client/api/checklists_admin_categories/checklists_admin_categories_partial_update.py +44 -7
  11. waldur_api_client/api/checklists_admin_categories/checklists_admin_categories_update.py +44 -7
  12. waldur_api_client/api/customers/customers_create.py +44 -7
  13. waldur_api_client/api/customers/customers_partial_update.py +44 -7
  14. waldur_api_client/api/customers/customers_update.py +44 -7
  15. waldur_api_client/api/external_links/external_links_create.py +44 -7
  16. waldur_api_client/api/external_links/external_links_partial_update.py +44 -7
  17. waldur_api_client/api/external_links/external_links_update.py +44 -7
  18. waldur_api_client/api/invoices/invoices_paid.py +44 -7
  19. waldur_api_client/api/marketplace_categories/marketplace_categories_create.py +44 -7
  20. waldur_api_client/api/marketplace_categories/marketplace_categories_partial_update.py +44 -7
  21. waldur_api_client/api/marketplace_categories/marketplace_categories_update.py +44 -7
  22. waldur_api_client/api/marketplace_category_groups/marketplace_category_groups_create.py +44 -7
  23. waldur_api_client/api/marketplace_category_groups/marketplace_category_groups_partial_update.py +44 -7
  24. waldur_api_client/api/marketplace_category_groups/marketplace_category_groups_update.py +44 -7
  25. waldur_api_client/api/marketplace_offering_files/marketplace_offering_files_create.py +44 -7
  26. waldur_api_client/api/marketplace_orders/marketplace_orders_update_attachment.py +44 -7
  27. waldur_api_client/api/marketplace_provider_offerings/marketplace_provider_offerings_create.py +44 -7
  28. waldur_api_client/api/marketplace_provider_offerings/marketplace_provider_offerings_update_image.py +44 -7
  29. waldur_api_client/api/marketplace_provider_offerings/marketplace_provider_offerings_update_thumbnail.py +30 -5
  30. waldur_api_client/api/marketplace_provider_resources/marketplace_provider_resources_count.py +10 -13
  31. waldur_api_client/api/marketplace_provider_resources/marketplace_provider_resources_list.py +10 -13
  32. waldur_api_client/api/marketplace_resources/marketplace_resources_count.py +10 -13
  33. waldur_api_client/api/marketplace_resources/marketplace_resources_list.py +10 -13
  34. waldur_api_client/api/marketplace_screenshots/marketplace_screenshots_create.py +44 -7
  35. waldur_api_client/api/marketplace_screenshots/marketplace_screenshots_update.py +44 -7
  36. waldur_api_client/api/marketplace_service_providers/marketplace_service_providers_create.py +44 -7
  37. waldur_api_client/api/marketplace_service_providers/marketplace_service_providers_partial_update.py +44 -7
  38. waldur_api_client/api/marketplace_service_providers/marketplace_service_providers_update.py +44 -7
  39. waldur_api_client/api/override_settings/override_settings.py +30 -5
  40. waldur_api_client/api/payments/payments_create.py +44 -7
  41. waldur_api_client/api/payments/payments_partial_update.py +44 -7
  42. waldur_api_client/api/payments/payments_update.py +44 -7
  43. waldur_api_client/api/projects/projects_create.py +44 -7
  44. waldur_api_client/api/projects/projects_partial_update.py +44 -7
  45. waldur_api_client/api/projects/projects_update.py +44 -7
  46. waldur_api_client/api/proposal_proposals/proposal_proposals_attach_document.py +30 -5
  47. waldur_api_client/api/slurm_jobs/slurm_jobs_create.py +44 -7
  48. waldur_api_client/api/slurm_jobs/slurm_jobs_update.py +44 -7
  49. waldur_api_client/api/support_attachments/support_attachments_create.py +44 -7
  50. waldur_api_client/api/user_group_invitations/user_group_invitations_count.py +15 -0
  51. waldur_api_client/api/user_group_invitations/user_group_invitations_list.py +15 -0
  52. waldur_api_client/api/users/users_create.py +44 -7
  53. waldur_api_client/api/users/users_partial_update.py +44 -7
  54. waldur_api_client/api/users/users_update.py +44 -7
  55. waldur_api_client/models/__init__.py +146 -2
  56. waldur_api_client/models/agent_type_enum.py +13 -0
  57. waldur_api_client/models/attachment_request_form.py +70 -0
  58. waldur_api_client/models/attachment_request_multipart.py +83 -0
  59. waldur_api_client/models/booking_offerings_list_field_item.py +1 -0
  60. waldur_api_client/models/booking_offerings_retrieve_field_item.py +1 -0
  61. waldur_api_client/models/call_managing_organisation_request_form.py +103 -0
  62. waldur_api_client/models/call_managing_organisation_request_multipart.py +122 -0
  63. waldur_api_client/models/call_round.py +11 -1
  64. waldur_api_client/models/category_group_request_form.py +103 -0
  65. waldur_api_client/models/category_group_request_multipart.py +122 -0
  66. waldur_api_client/models/checklist_category_request_form.py +103 -0
  67. waldur_api_client/models/checklist_category_request_multipart.py +122 -0
  68. waldur_api_client/models/checklists_admin_checklist_questions_checklist_type.py +11 -0
  69. waldur_api_client/models/checklists_admin_checklist_questions_checklist_type_in_item.py +11 -0
  70. waldur_api_client/models/checklists_admin_count_checklist_type.py +11 -0
  71. waldur_api_client/models/checklists_admin_count_checklist_type_in_item.py +11 -0
  72. waldur_api_client/models/checklists_admin_list_checklist_type.py +11 -0
  73. waldur_api_client/models/checklists_admin_list_checklist_type_in_item.py +11 -0
  74. waldur_api_client/models/constance_settings.py +9 -0
  75. waldur_api_client/models/constance_settings_request.py +9 -0
  76. waldur_api_client/models/constance_settings_request_form.py +1547 -0
  77. waldur_api_client/models/constance_settings_request_multipart.py +2173 -0
  78. waldur_api_client/models/customer.py +9 -0
  79. waldur_api_client/models/customer_request.py +9 -0
  80. waldur_api_client/models/customer_request_form.py +312 -0
  81. waldur_api_client/models/customer_request_multipart.py +394 -0
  82. waldur_api_client/models/customers_list_field_item.py +1 -0
  83. waldur_api_client/models/customers_retrieve_field_item.py +1 -0
  84. waldur_api_client/models/external_link_request_form.py +111 -0
  85. waldur_api_client/models/external_link_request_multipart.py +132 -0
  86. waldur_api_client/models/firecrest_job_request_form.py +104 -0
  87. waldur_api_client/models/firecrest_job_request_multipart.py +127 -0
  88. waldur_api_client/models/integration_status.py +21 -4
  89. waldur_api_client/models/marketplace_category_request_form.py +153 -0
  90. waldur_api_client/models/marketplace_category_request_multipart.py +187 -0
  91. waldur_api_client/models/marketplace_provider_offerings_list_course_accounts_retrieve_field_item.py +1 -0
  92. waldur_api_client/models/marketplace_provider_offerings_list_customer_service_accounts_retrieve_field_item.py +1 -0
  93. waldur_api_client/models/marketplace_provider_offerings_list_field_item.py +1 -0
  94. waldur_api_client/models/marketplace_provider_offerings_list_project_service_accounts_retrieve_field_item.py +1 -0
  95. waldur_api_client/models/marketplace_provider_offerings_retrieve_field_item.py +1 -0
  96. waldur_api_client/models/marketplace_provider_offerings_stats_retrieve_field_item.py +1 -0
  97. waldur_api_client/models/marketplace_provider_offerings_user_has_resource_access_retrieve_field_item.py +1 -0
  98. waldur_api_client/models/marketplace_public_offerings_list_field_item.py +1 -0
  99. waldur_api_client/models/marketplace_public_offerings_retrieve_field_item.py +1 -0
  100. waldur_api_client/models/marketplace_service_providers_offerings_list_field_item.py +1 -0
  101. waldur_api_client/models/nested_round.py +9 -0
  102. waldur_api_client/models/nested_round_request.py +9 -0
  103. waldur_api_client/models/offering.py +20 -0
  104. waldur_api_client/models/offering_create.py +20 -0
  105. waldur_api_client/models/offering_create_request.py +20 -0
  106. waldur_api_client/models/offering_create_request_form.py +479 -0
  107. waldur_api_client/models/offering_create_request_form_limits.py +57 -0
  108. waldur_api_client/models/offering_create_request_multipart.py +599 -0
  109. waldur_api_client/models/offering_create_request_multipart_limits.py +57 -0
  110. waldur_api_client/models/offering_file_request_form.py +78 -0
  111. waldur_api_client/models/offering_file_request_multipart.py +93 -0
  112. waldur_api_client/models/offering_image_request_form.py +62 -0
  113. waldur_api_client/models/offering_image_request_multipart.py +73 -0
  114. waldur_api_client/models/offering_thumbnail_request_form.py +62 -0
  115. waldur_api_client/models/offering_thumbnail_request_multipart.py +73 -0
  116. waldur_api_client/models/offering_user.py +5 -5
  117. waldur_api_client/models/{offering_user_state_enum.py → offering_user_state.py} +1 -1
  118. waldur_api_client/models/order_attachment_request_form.py +84 -0
  119. waldur_api_client/models/order_attachment_request_multipart.py +98 -0
  120. waldur_api_client/models/paid_request_form.py +81 -0
  121. waldur_api_client/models/paid_request_multipart.py +94 -0
  122. waldur_api_client/models/patched_call_managing_organisation_request_form.py +92 -0
  123. waldur_api_client/models/patched_call_managing_organisation_request_multipart.py +109 -0
  124. waldur_api_client/models/patched_category_group_request_form.py +101 -0
  125. waldur_api_client/models/patched_category_group_request_multipart.py +121 -0
  126. waldur_api_client/models/patched_checklist_category_request_form.py +102 -0
  127. waldur_api_client/models/patched_checklist_category_request_multipart.py +122 -0
  128. waldur_api_client/models/patched_customer_request.py +9 -0
  129. waldur_api_client/models/patched_customer_request_form.py +310 -0
  130. waldur_api_client/models/patched_customer_request_multipart.py +393 -0
  131. waldur_api_client/models/patched_external_link_request_form.py +110 -0
  132. waldur_api_client/models/patched_external_link_request_multipart.py +133 -0
  133. waldur_api_client/models/patched_marketplace_category_request_form.py +151 -0
  134. waldur_api_client/models/patched_marketplace_category_request_multipart.py +186 -0
  135. waldur_api_client/models/patched_payment_request_form.py +119 -0
  136. waldur_api_client/models/patched_payment_request_multipart.py +142 -0
  137. waldur_api_client/models/patched_project_request_form.py +279 -0
  138. waldur_api_client/models/patched_project_request_multipart.py +342 -0
  139. waldur_api_client/models/patched_service_provider_request_form.py +101 -0
  140. waldur_api_client/models/patched_service_provider_request_multipart.py +121 -0
  141. waldur_api_client/models/patched_user_request_form.py +241 -0
  142. waldur_api_client/models/patched_user_request_multipart.py +306 -0
  143. waldur_api_client/models/payment_request_form.py +113 -0
  144. waldur_api_client/models/payment_request_multipart.py +134 -0
  145. waldur_api_client/models/project_request_form.py +280 -0
  146. waldur_api_client/models/project_request_multipart.py +341 -0
  147. waldur_api_client/models/project_user.py +9 -0
  148. waldur_api_client/models/proposal.py +8 -0
  149. waldur_api_client/models/proposal_documentation_request_form.py +84 -0
  150. waldur_api_client/models/proposal_documentation_request_multipart.py +98 -0
  151. waldur_api_client/models/proposal_proposals_count_o_item.py +3 -1
  152. waldur_api_client/models/proposal_proposals_list_o_item.py +3 -1
  153. waldur_api_client/models/proposal_review.py +40 -0
  154. waldur_api_client/models/protected_proposal_list.py +8 -0
  155. waldur_api_client/models/protected_proposal_list_request.py +8 -0
  156. waldur_api_client/models/protected_round.py +8 -0
  157. waldur_api_client/models/provider_offering.py +21 -1
  158. waldur_api_client/models/provider_offering_details.py +20 -0
  159. waldur_api_client/models/public_offering_details.py +20 -0
  160. waldur_api_client/models/screenshot_request_form.py +87 -0
  161. waldur_api_client/models/screenshot_request_multipart.py +105 -0
  162. waldur_api_client/models/service_provider_request_form.py +112 -0
  163. waldur_api_client/models/service_provider_request_multipart.py +134 -0
  164. waldur_api_client/models/user_request_form.py +250 -0
  165. waldur_api_client/models/user_request_multipart.py +316 -0
  166. {waldur_api_client-7.8.1.dist-info → waldur_api_client-7.8.2.dist-info}/METADATA +1 -1
  167. {waldur_api_client-7.8.1.dist-info → waldur_api_client-7.8.2.dist-info}/RECORD +169 -98
  168. {waldur_api_client-7.8.1.dist-info → waldur_api_client-7.8.2.dist-info}/WHEEL +0 -0
  169. {waldur_api_client-7.8.1.dist-info → waldur_api_client-7.8.2.dist-info}/licenses/LICENSE +0 -0
@@ -0,0 +1,83 @@
1
+ from collections.abc import Mapping
2
+ from io import BytesIO
3
+ from typing import Any, TypeVar
4
+
5
+ from attrs import define as _attrs_define
6
+ from attrs import field as _attrs_field
7
+
8
+ from .. import types
9
+ from ..types import File
10
+
11
+ T = TypeVar("T", bound="AttachmentRequestMultipart")
12
+
13
+
14
+ @_attrs_define
15
+ class AttachmentRequestMultipart:
16
+ """
17
+ Attributes:
18
+ issue (str):
19
+ file (File):
20
+ """
21
+
22
+ issue: str
23
+ file: File
24
+ additional_properties: dict[str, Any] = _attrs_field(init=False, factory=dict)
25
+
26
+ def to_dict(self) -> dict[str, Any]:
27
+ issue = self.issue
28
+
29
+ file = self.file.to_tuple()
30
+
31
+ field_dict: dict[str, Any] = {}
32
+ field_dict.update(self.additional_properties)
33
+ field_dict.update(
34
+ {
35
+ "issue": issue,
36
+ "file": file,
37
+ }
38
+ )
39
+
40
+ return field_dict
41
+
42
+ def to_multipart(self) -> types.RequestFiles:
43
+ files: types.RequestFiles = []
44
+
45
+ files.append(("issue", (None, str(self.issue).encode(), "text/plain")))
46
+
47
+ files.append(("file", self.file.to_tuple()))
48
+
49
+ for prop_name, prop in self.additional_properties.items():
50
+ files.append((prop_name, (None, str(prop).encode(), "text/plain")))
51
+
52
+ return files
53
+
54
+ @classmethod
55
+ def from_dict(cls: type[T], src_dict: Mapping[str, Any]) -> T:
56
+ d = dict(src_dict)
57
+ issue = d.pop("issue")
58
+
59
+ file = File(payload=BytesIO(d.pop("file")))
60
+
61
+ attachment_request_multipart = cls(
62
+ issue=issue,
63
+ file=file,
64
+ )
65
+
66
+ attachment_request_multipart.additional_properties = d
67
+ return attachment_request_multipart
68
+
69
+ @property
70
+ def additional_keys(self) -> list[str]:
71
+ return list(self.additional_properties.keys())
72
+
73
+ def __getitem__(self, key: str) -> Any:
74
+ return self.additional_properties[key]
75
+
76
+ def __setitem__(self, key: str, value: Any) -> None:
77
+ self.additional_properties[key] = value
78
+
79
+ def __delitem__(self, key: str) -> None:
80
+ del self.additional_properties[key]
81
+
82
+ def __contains__(self, key: str) -> bool:
83
+ return key in self.additional_properties
@@ -11,6 +11,7 @@ class BookingOfferingsListFieldItem(str, Enum):
11
11
  CATEGORY_TITLE = "category_title"
12
12
  CATEGORY_UUID = "category_uuid"
13
13
  CITATION_COUNT = "citation_count"
14
+ COMPLIANCE_CHECKLIST = "compliance_checklist"
14
15
  COMPONENTS = "components"
15
16
  COUNTRY = "country"
16
17
  CREATED = "created"
@@ -11,6 +11,7 @@ class BookingOfferingsRetrieveFieldItem(str, Enum):
11
11
  CATEGORY_TITLE = "category_title"
12
12
  CATEGORY_UUID = "category_uuid"
13
13
  CITATION_COUNT = "citation_count"
14
+ COMPLIANCE_CHECKLIST = "compliance_checklist"
14
15
  COMPONENTS = "components"
15
16
  COUNTRY = "country"
16
17
  CREATED = "created"
@@ -0,0 +1,103 @@
1
+ from collections.abc import Mapping
2
+ from io import BytesIO
3
+ from typing import Any, TypeVar, Union, cast
4
+
5
+ from attrs import define as _attrs_define
6
+ from attrs import field as _attrs_field
7
+
8
+ from .. import types
9
+ from ..types import UNSET, File, Unset
10
+
11
+ T = TypeVar("T", bound="CallManagingOrganisationRequestForm")
12
+
13
+
14
+ @_attrs_define
15
+ class CallManagingOrganisationRequestForm:
16
+ """
17
+ Attributes:
18
+ customer (str):
19
+ description (Union[Unset, str]):
20
+ image (Union[File, None, Unset]):
21
+ """
22
+
23
+ customer: str
24
+ description: Union[Unset, str] = UNSET
25
+ image: Union[File, None, Unset] = UNSET
26
+ additional_properties: dict[str, Any] = _attrs_field(init=False, factory=dict)
27
+
28
+ def to_dict(self) -> dict[str, Any]:
29
+ customer = self.customer
30
+
31
+ description = self.description
32
+
33
+ image: Union[None, Unset, types.FileTypes]
34
+ if isinstance(self.image, Unset):
35
+ image = UNSET
36
+ elif isinstance(self.image, File):
37
+ image = self.image.to_tuple()
38
+
39
+ else:
40
+ image = self.image
41
+
42
+ field_dict: dict[str, Any] = {}
43
+ field_dict.update(self.additional_properties)
44
+ field_dict.update(
45
+ {
46
+ "customer": customer,
47
+ }
48
+ )
49
+ if description is not UNSET:
50
+ field_dict["description"] = description
51
+ if image is not UNSET:
52
+ field_dict["image"] = image
53
+
54
+ return field_dict
55
+
56
+ @classmethod
57
+ def from_dict(cls: type[T], src_dict: Mapping[str, Any]) -> T:
58
+ d = dict(src_dict)
59
+ customer = d.pop("customer")
60
+
61
+ description = d.pop("description", UNSET)
62
+
63
+ def _parse_image(data: object) -> Union[File, None, Unset]:
64
+ if data is None:
65
+ return data
66
+ if isinstance(data, Unset):
67
+ return data
68
+ try:
69
+ if not isinstance(data, bytes):
70
+ raise TypeError()
71
+ image_type_0 = File(payload=BytesIO(data))
72
+
73
+ return image_type_0
74
+ except: # noqa: E722
75
+ pass
76
+ return cast(Union[File, None, Unset], data)
77
+
78
+ image = _parse_image(d.pop("image", UNSET))
79
+
80
+ call_managing_organisation_request_form = cls(
81
+ customer=customer,
82
+ description=description,
83
+ image=image,
84
+ )
85
+
86
+ call_managing_organisation_request_form.additional_properties = d
87
+ return call_managing_organisation_request_form
88
+
89
+ @property
90
+ def additional_keys(self) -> list[str]:
91
+ return list(self.additional_properties.keys())
92
+
93
+ def __getitem__(self, key: str) -> Any:
94
+ return self.additional_properties[key]
95
+
96
+ def __setitem__(self, key: str, value: Any) -> None:
97
+ self.additional_properties[key] = value
98
+
99
+ def __delitem__(self, key: str) -> None:
100
+ del self.additional_properties[key]
101
+
102
+ def __contains__(self, key: str) -> bool:
103
+ return key in self.additional_properties
@@ -0,0 +1,122 @@
1
+ from collections.abc import Mapping
2
+ from io import BytesIO
3
+ from typing import Any, TypeVar, Union, cast
4
+
5
+ from attrs import define as _attrs_define
6
+ from attrs import field as _attrs_field
7
+
8
+ from .. import types
9
+ from ..types import UNSET, File, Unset
10
+
11
+ T = TypeVar("T", bound="CallManagingOrganisationRequestMultipart")
12
+
13
+
14
+ @_attrs_define
15
+ class CallManagingOrganisationRequestMultipart:
16
+ """
17
+ Attributes:
18
+ customer (str):
19
+ description (Union[Unset, str]):
20
+ image (Union[File, None, Unset]):
21
+ """
22
+
23
+ customer: str
24
+ description: Union[Unset, str] = UNSET
25
+ image: Union[File, None, Unset] = UNSET
26
+ additional_properties: dict[str, Any] = _attrs_field(init=False, factory=dict)
27
+
28
+ def to_dict(self) -> dict[str, Any]:
29
+ customer = self.customer
30
+
31
+ description = self.description
32
+
33
+ image: Union[None, Unset, types.FileTypes]
34
+ if isinstance(self.image, Unset):
35
+ image = UNSET
36
+ elif isinstance(self.image, File):
37
+ image = self.image.to_tuple()
38
+
39
+ else:
40
+ image = self.image
41
+
42
+ field_dict: dict[str, Any] = {}
43
+ field_dict.update(self.additional_properties)
44
+ field_dict.update(
45
+ {
46
+ "customer": customer,
47
+ }
48
+ )
49
+ if description is not UNSET:
50
+ field_dict["description"] = description
51
+ if image is not UNSET:
52
+ field_dict["image"] = image
53
+
54
+ return field_dict
55
+
56
+ def to_multipart(self) -> types.RequestFiles:
57
+ files: types.RequestFiles = []
58
+
59
+ files.append(("customer", (None, str(self.customer).encode(), "text/plain")))
60
+
61
+ if not isinstance(self.description, Unset):
62
+ files.append(("description", (None, str(self.description).encode(), "text/plain")))
63
+
64
+ if not isinstance(self.image, Unset):
65
+ if isinstance(self.image, File):
66
+ files.append(("image", self.image.to_tuple()))
67
+ else:
68
+ files.append(("image", (None, str(self.image).encode(), "text/plain")))
69
+
70
+ for prop_name, prop in self.additional_properties.items():
71
+ files.append((prop_name, (None, str(prop).encode(), "text/plain")))
72
+
73
+ return files
74
+
75
+ @classmethod
76
+ def from_dict(cls: type[T], src_dict: Mapping[str, Any]) -> T:
77
+ d = dict(src_dict)
78
+ customer = d.pop("customer")
79
+
80
+ description = d.pop("description", UNSET)
81
+
82
+ def _parse_image(data: object) -> Union[File, None, Unset]:
83
+ if data is None:
84
+ return data
85
+ if isinstance(data, Unset):
86
+ return data
87
+ try:
88
+ if not isinstance(data, bytes):
89
+ raise TypeError()
90
+ image_type_0 = File(payload=BytesIO(data))
91
+
92
+ return image_type_0
93
+ except: # noqa: E722
94
+ pass
95
+ return cast(Union[File, None, Unset], data)
96
+
97
+ image = _parse_image(d.pop("image", UNSET))
98
+
99
+ call_managing_organisation_request_multipart = cls(
100
+ customer=customer,
101
+ description=description,
102
+ image=image,
103
+ )
104
+
105
+ call_managing_organisation_request_multipart.additional_properties = d
106
+ return call_managing_organisation_request_multipart
107
+
108
+ @property
109
+ def additional_keys(self) -> list[str]:
110
+ return list(self.additional_properties.keys())
111
+
112
+ def __getitem__(self, key: str) -> Any:
113
+ return self.additional_properties[key]
114
+
115
+ def __setitem__(self, key: str, value: Any) -> None:
116
+ self.additional_properties[key] = value
117
+
118
+ def __delitem__(self, key: str) -> None:
119
+ del self.additional_properties[key]
120
+
121
+ def __contains__(self, key: str) -> bool:
122
+ return key in self.additional_properties
@@ -1,6 +1,6 @@
1
1
  import datetime
2
2
  from collections.abc import Mapping
3
- from typing import Any, TypeVar
3
+ from typing import Any, TypeVar, Union
4
4
  from uuid import UUID
5
5
 
6
6
  from attrs import define as _attrs_define
@@ -8,6 +8,7 @@ from attrs import field as _attrs_field
8
8
  from dateutil.parser import isoparse
9
9
 
10
10
  from ..models.status_enum import StatusEnum
11
+ from ..types import UNSET, Unset
11
12
 
12
13
  T = TypeVar("T", bound="CallRound")
13
14
 
@@ -23,6 +24,7 @@ class CallRound:
23
24
  call_uuid (UUID):
24
25
  call_name (str):
25
26
  status (StatusEnum):
27
+ slug (Union[Unset, str]):
26
28
  """
27
29
 
28
30
  url: str
@@ -32,6 +34,7 @@ class CallRound:
32
34
  call_uuid: UUID
33
35
  call_name: str
34
36
  status: StatusEnum
37
+ slug: Union[Unset, str] = UNSET
35
38
  additional_properties: dict[str, Any] = _attrs_field(init=False, factory=dict)
36
39
 
37
40
  def to_dict(self) -> dict[str, Any]:
@@ -49,6 +52,8 @@ class CallRound:
49
52
 
50
53
  status = self.status.value
51
54
 
55
+ slug = self.slug
56
+
52
57
  field_dict: dict[str, Any] = {}
53
58
  field_dict.update(self.additional_properties)
54
59
  field_dict.update(
@@ -62,6 +67,8 @@ class CallRound:
62
67
  "status": status,
63
68
  }
64
69
  )
70
+ if slug is not UNSET:
71
+ field_dict["slug"] = slug
65
72
 
66
73
  return field_dict
67
74
 
@@ -82,6 +89,8 @@ class CallRound:
82
89
 
83
90
  status = StatusEnum(d.pop("status"))
84
91
 
92
+ slug = d.pop("slug", UNSET)
93
+
85
94
  call_round = cls(
86
95
  url=url,
87
96
  uuid=uuid,
@@ -90,6 +99,7 @@ class CallRound:
90
99
  call_uuid=call_uuid,
91
100
  call_name=call_name,
92
101
  status=status,
102
+ slug=slug,
93
103
  )
94
104
 
95
105
  call_round.additional_properties = d
@@ -0,0 +1,103 @@
1
+ from collections.abc import Mapping
2
+ from io import BytesIO
3
+ from typing import Any, TypeVar, Union, cast
4
+
5
+ from attrs import define as _attrs_define
6
+ from attrs import field as _attrs_field
7
+
8
+ from .. import types
9
+ from ..types import UNSET, File, Unset
10
+
11
+ T = TypeVar("T", bound="CategoryGroupRequestForm")
12
+
13
+
14
+ @_attrs_define
15
+ class CategoryGroupRequestForm:
16
+ """
17
+ Attributes:
18
+ title (str):
19
+ description (Union[Unset, str]):
20
+ icon (Union[File, None, Unset]):
21
+ """
22
+
23
+ title: str
24
+ description: Union[Unset, str] = UNSET
25
+ icon: Union[File, None, Unset] = UNSET
26
+ additional_properties: dict[str, Any] = _attrs_field(init=False, factory=dict)
27
+
28
+ def to_dict(self) -> dict[str, Any]:
29
+ title = self.title
30
+
31
+ description = self.description
32
+
33
+ icon: Union[None, Unset, types.FileTypes]
34
+ if isinstance(self.icon, Unset):
35
+ icon = UNSET
36
+ elif isinstance(self.icon, File):
37
+ icon = self.icon.to_tuple()
38
+
39
+ else:
40
+ icon = self.icon
41
+
42
+ field_dict: dict[str, Any] = {}
43
+ field_dict.update(self.additional_properties)
44
+ field_dict.update(
45
+ {
46
+ "title": title,
47
+ }
48
+ )
49
+ if description is not UNSET:
50
+ field_dict["description"] = description
51
+ if icon is not UNSET:
52
+ field_dict["icon"] = icon
53
+
54
+ return field_dict
55
+
56
+ @classmethod
57
+ def from_dict(cls: type[T], src_dict: Mapping[str, Any]) -> T:
58
+ d = dict(src_dict)
59
+ title = d.pop("title")
60
+
61
+ description = d.pop("description", UNSET)
62
+
63
+ def _parse_icon(data: object) -> Union[File, None, Unset]:
64
+ if data is None:
65
+ return data
66
+ if isinstance(data, Unset):
67
+ return data
68
+ try:
69
+ if not isinstance(data, bytes):
70
+ raise TypeError()
71
+ icon_type_0 = File(payload=BytesIO(data))
72
+
73
+ return icon_type_0
74
+ except: # noqa: E722
75
+ pass
76
+ return cast(Union[File, None, Unset], data)
77
+
78
+ icon = _parse_icon(d.pop("icon", UNSET))
79
+
80
+ category_group_request_form = cls(
81
+ title=title,
82
+ description=description,
83
+ icon=icon,
84
+ )
85
+
86
+ category_group_request_form.additional_properties = d
87
+ return category_group_request_form
88
+
89
+ @property
90
+ def additional_keys(self) -> list[str]:
91
+ return list(self.additional_properties.keys())
92
+
93
+ def __getitem__(self, key: str) -> Any:
94
+ return self.additional_properties[key]
95
+
96
+ def __setitem__(self, key: str, value: Any) -> None:
97
+ self.additional_properties[key] = value
98
+
99
+ def __delitem__(self, key: str) -> None:
100
+ del self.additional_properties[key]
101
+
102
+ def __contains__(self, key: str) -> bool:
103
+ return key in self.additional_properties
@@ -0,0 +1,122 @@
1
+ from collections.abc import Mapping
2
+ from io import BytesIO
3
+ from typing import Any, TypeVar, Union, cast
4
+
5
+ from attrs import define as _attrs_define
6
+ from attrs import field as _attrs_field
7
+
8
+ from .. import types
9
+ from ..types import UNSET, File, Unset
10
+
11
+ T = TypeVar("T", bound="CategoryGroupRequestMultipart")
12
+
13
+
14
+ @_attrs_define
15
+ class CategoryGroupRequestMultipart:
16
+ """
17
+ Attributes:
18
+ title (str):
19
+ description (Union[Unset, str]):
20
+ icon (Union[File, None, Unset]):
21
+ """
22
+
23
+ title: str
24
+ description: Union[Unset, str] = UNSET
25
+ icon: Union[File, None, Unset] = UNSET
26
+ additional_properties: dict[str, Any] = _attrs_field(init=False, factory=dict)
27
+
28
+ def to_dict(self) -> dict[str, Any]:
29
+ title = self.title
30
+
31
+ description = self.description
32
+
33
+ icon: Union[None, Unset, types.FileTypes]
34
+ if isinstance(self.icon, Unset):
35
+ icon = UNSET
36
+ elif isinstance(self.icon, File):
37
+ icon = self.icon.to_tuple()
38
+
39
+ else:
40
+ icon = self.icon
41
+
42
+ field_dict: dict[str, Any] = {}
43
+ field_dict.update(self.additional_properties)
44
+ field_dict.update(
45
+ {
46
+ "title": title,
47
+ }
48
+ )
49
+ if description is not UNSET:
50
+ field_dict["description"] = description
51
+ if icon is not UNSET:
52
+ field_dict["icon"] = icon
53
+
54
+ return field_dict
55
+
56
+ def to_multipart(self) -> types.RequestFiles:
57
+ files: types.RequestFiles = []
58
+
59
+ files.append(("title", (None, str(self.title).encode(), "text/plain")))
60
+
61
+ if not isinstance(self.description, Unset):
62
+ files.append(("description", (None, str(self.description).encode(), "text/plain")))
63
+
64
+ if not isinstance(self.icon, Unset):
65
+ if isinstance(self.icon, File):
66
+ files.append(("icon", self.icon.to_tuple()))
67
+ else:
68
+ files.append(("icon", (None, str(self.icon).encode(), "text/plain")))
69
+
70
+ for prop_name, prop in self.additional_properties.items():
71
+ files.append((prop_name, (None, str(prop).encode(), "text/plain")))
72
+
73
+ return files
74
+
75
+ @classmethod
76
+ def from_dict(cls: type[T], src_dict: Mapping[str, Any]) -> T:
77
+ d = dict(src_dict)
78
+ title = d.pop("title")
79
+
80
+ description = d.pop("description", UNSET)
81
+
82
+ def _parse_icon(data: object) -> Union[File, None, Unset]:
83
+ if data is None:
84
+ return data
85
+ if isinstance(data, Unset):
86
+ return data
87
+ try:
88
+ if not isinstance(data, bytes):
89
+ raise TypeError()
90
+ icon_type_0 = File(payload=BytesIO(data))
91
+
92
+ return icon_type_0
93
+ except: # noqa: E722
94
+ pass
95
+ return cast(Union[File, None, Unset], data)
96
+
97
+ icon = _parse_icon(d.pop("icon", UNSET))
98
+
99
+ category_group_request_multipart = cls(
100
+ title=title,
101
+ description=description,
102
+ icon=icon,
103
+ )
104
+
105
+ category_group_request_multipart.additional_properties = d
106
+ return category_group_request_multipart
107
+
108
+ @property
109
+ def additional_keys(self) -> list[str]:
110
+ return list(self.additional_properties.keys())
111
+
112
+ def __getitem__(self, key: str) -> Any:
113
+ return self.additional_properties[key]
114
+
115
+ def __setitem__(self, key: str, value: Any) -> None:
116
+ self.additional_properties[key] = value
117
+
118
+ def __delitem__(self, key: str) -> None:
119
+ del self.additional_properties[key]
120
+
121
+ def __contains__(self, key: str) -> bool:
122
+ return key in self.additional_properties