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,81 @@
1
+ import datetime
2
+ from collections.abc import Mapping
3
+ from io import BytesIO
4
+ from typing import Any, TypeVar, Union
5
+
6
+ from attrs import define as _attrs_define
7
+ from attrs import field as _attrs_field
8
+ from dateutil.parser import isoparse
9
+
10
+ from .. import types
11
+ from ..types import UNSET, File, Unset
12
+
13
+ T = TypeVar("T", bound="PaidRequestForm")
14
+
15
+
16
+ @_attrs_define
17
+ class PaidRequestForm:
18
+ """
19
+ Attributes:
20
+ date (datetime.date):
21
+ proof (Union[Unset, File]):
22
+ """
23
+
24
+ date: datetime.date
25
+ proof: Union[Unset, File] = UNSET
26
+ additional_properties: dict[str, Any] = _attrs_field(init=False, factory=dict)
27
+
28
+ def to_dict(self) -> dict[str, Any]:
29
+ date = self.date.isoformat()
30
+
31
+ proof: Union[Unset, types.FileTypes] = UNSET
32
+ if not isinstance(self.proof, Unset):
33
+ proof = self.proof.to_tuple()
34
+
35
+ field_dict: dict[str, Any] = {}
36
+ field_dict.update(self.additional_properties)
37
+ field_dict.update(
38
+ {
39
+ "date": date,
40
+ }
41
+ )
42
+ if proof is not UNSET:
43
+ field_dict["proof"] = proof
44
+
45
+ return field_dict
46
+
47
+ @classmethod
48
+ def from_dict(cls: type[T], src_dict: Mapping[str, Any]) -> T:
49
+ d = dict(src_dict)
50
+ date = isoparse(d.pop("date")).date()
51
+
52
+ _proof = d.pop("proof", UNSET)
53
+ proof: Union[Unset, File]
54
+ if isinstance(_proof, Unset):
55
+ proof = UNSET
56
+ else:
57
+ proof = File(payload=BytesIO(_proof))
58
+
59
+ paid_request_form = cls(
60
+ date=date,
61
+ proof=proof,
62
+ )
63
+
64
+ paid_request_form.additional_properties = d
65
+ return paid_request_form
66
+
67
+ @property
68
+ def additional_keys(self) -> list[str]:
69
+ return list(self.additional_properties.keys())
70
+
71
+ def __getitem__(self, key: str) -> Any:
72
+ return self.additional_properties[key]
73
+
74
+ def __setitem__(self, key: str, value: Any) -> None:
75
+ self.additional_properties[key] = value
76
+
77
+ def __delitem__(self, key: str) -> None:
78
+ del self.additional_properties[key]
79
+
80
+ def __contains__(self, key: str) -> bool:
81
+ return key in self.additional_properties
@@ -0,0 +1,94 @@
1
+ import datetime
2
+ from collections.abc import Mapping
3
+ from io import BytesIO
4
+ from typing import Any, TypeVar, Union
5
+
6
+ from attrs import define as _attrs_define
7
+ from attrs import field as _attrs_field
8
+ from dateutil.parser import isoparse
9
+
10
+ from .. import types
11
+ from ..types import UNSET, File, Unset
12
+
13
+ T = TypeVar("T", bound="PaidRequestMultipart")
14
+
15
+
16
+ @_attrs_define
17
+ class PaidRequestMultipart:
18
+ """
19
+ Attributes:
20
+ date (datetime.date):
21
+ proof (Union[Unset, File]):
22
+ """
23
+
24
+ date: datetime.date
25
+ proof: Union[Unset, File] = UNSET
26
+ additional_properties: dict[str, Any] = _attrs_field(init=False, factory=dict)
27
+
28
+ def to_dict(self) -> dict[str, Any]:
29
+ date = self.date.isoformat()
30
+
31
+ proof: Union[Unset, types.FileTypes] = UNSET
32
+ if not isinstance(self.proof, Unset):
33
+ proof = self.proof.to_tuple()
34
+
35
+ field_dict: dict[str, Any] = {}
36
+ field_dict.update(self.additional_properties)
37
+ field_dict.update(
38
+ {
39
+ "date": date,
40
+ }
41
+ )
42
+ if proof is not UNSET:
43
+ field_dict["proof"] = proof
44
+
45
+ return field_dict
46
+
47
+ def to_multipart(self) -> types.RequestFiles:
48
+ files: types.RequestFiles = []
49
+
50
+ files.append(("date", (None, self.date.isoformat().encode(), "text/plain")))
51
+
52
+ if not isinstance(self.proof, Unset):
53
+ files.append(("proof", self.proof.to_tuple()))
54
+
55
+ for prop_name, prop in self.additional_properties.items():
56
+ files.append((prop_name, (None, str(prop).encode(), "text/plain")))
57
+
58
+ return files
59
+
60
+ @classmethod
61
+ def from_dict(cls: type[T], src_dict: Mapping[str, Any]) -> T:
62
+ d = dict(src_dict)
63
+ date = isoparse(d.pop("date")).date()
64
+
65
+ _proof = d.pop("proof", UNSET)
66
+ proof: Union[Unset, File]
67
+ if isinstance(_proof, Unset):
68
+ proof = UNSET
69
+ else:
70
+ proof = File(payload=BytesIO(_proof))
71
+
72
+ paid_request_multipart = cls(
73
+ date=date,
74
+ proof=proof,
75
+ )
76
+
77
+ paid_request_multipart.additional_properties = d
78
+ return paid_request_multipart
79
+
80
+ @property
81
+ def additional_keys(self) -> list[str]:
82
+ return list(self.additional_properties.keys())
83
+
84
+ def __getitem__(self, key: str) -> Any:
85
+ return self.additional_properties[key]
86
+
87
+ def __setitem__(self, key: str, value: Any) -> None:
88
+ self.additional_properties[key] = value
89
+
90
+ def __delitem__(self, key: str) -> None:
91
+ del self.additional_properties[key]
92
+
93
+ def __contains__(self, key: str) -> bool:
94
+ return key in self.additional_properties
@@ -0,0 +1,92 @@
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="PatchedCallManagingOrganisationRequestForm")
12
+
13
+
14
+ @_attrs_define
15
+ class PatchedCallManagingOrganisationRequestForm:
16
+ """
17
+ Attributes:
18
+ description (Union[Unset, str]):
19
+ image (Union[File, None, Unset]):
20
+ """
21
+
22
+ description: Union[Unset, str] = UNSET
23
+ image: Union[File, None, Unset] = UNSET
24
+ additional_properties: dict[str, Any] = _attrs_field(init=False, factory=dict)
25
+
26
+ def to_dict(self) -> dict[str, Any]:
27
+ description = self.description
28
+
29
+ image: Union[None, Unset, types.FileTypes]
30
+ if isinstance(self.image, Unset):
31
+ image = UNSET
32
+ elif isinstance(self.image, File):
33
+ image = self.image.to_tuple()
34
+
35
+ else:
36
+ image = self.image
37
+
38
+ field_dict: dict[str, Any] = {}
39
+ field_dict.update(self.additional_properties)
40
+ field_dict.update({})
41
+ if description is not UNSET:
42
+ field_dict["description"] = description
43
+ if image is not UNSET:
44
+ field_dict["image"] = image
45
+
46
+ return field_dict
47
+
48
+ @classmethod
49
+ def from_dict(cls: type[T], src_dict: Mapping[str, Any]) -> T:
50
+ d = dict(src_dict)
51
+ description = d.pop("description", UNSET)
52
+
53
+ def _parse_image(data: object) -> Union[File, None, Unset]:
54
+ if data is None:
55
+ return data
56
+ if isinstance(data, Unset):
57
+ return data
58
+ try:
59
+ if not isinstance(data, bytes):
60
+ raise TypeError()
61
+ image_type_0 = File(payload=BytesIO(data))
62
+
63
+ return image_type_0
64
+ except: # noqa: E722
65
+ pass
66
+ return cast(Union[File, None, Unset], data)
67
+
68
+ image = _parse_image(d.pop("image", UNSET))
69
+
70
+ patched_call_managing_organisation_request_form = cls(
71
+ description=description,
72
+ image=image,
73
+ )
74
+
75
+ patched_call_managing_organisation_request_form.additional_properties = d
76
+ return patched_call_managing_organisation_request_form
77
+
78
+ @property
79
+ def additional_keys(self) -> list[str]:
80
+ return list(self.additional_properties.keys())
81
+
82
+ def __getitem__(self, key: str) -> Any:
83
+ return self.additional_properties[key]
84
+
85
+ def __setitem__(self, key: str, value: Any) -> None:
86
+ self.additional_properties[key] = value
87
+
88
+ def __delitem__(self, key: str) -> None:
89
+ del self.additional_properties[key]
90
+
91
+ def __contains__(self, key: str) -> bool:
92
+ return key in self.additional_properties
@@ -0,0 +1,109 @@
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="PatchedCallManagingOrganisationRequestMultipart")
12
+
13
+
14
+ @_attrs_define
15
+ class PatchedCallManagingOrganisationRequestMultipart:
16
+ """
17
+ Attributes:
18
+ description (Union[Unset, str]):
19
+ image (Union[File, None, Unset]):
20
+ """
21
+
22
+ description: Union[Unset, str] = UNSET
23
+ image: Union[File, None, Unset] = UNSET
24
+ additional_properties: dict[str, Any] = _attrs_field(init=False, factory=dict)
25
+
26
+ def to_dict(self) -> dict[str, Any]:
27
+ description = self.description
28
+
29
+ image: Union[None, Unset, types.FileTypes]
30
+ if isinstance(self.image, Unset):
31
+ image = UNSET
32
+ elif isinstance(self.image, File):
33
+ image = self.image.to_tuple()
34
+
35
+ else:
36
+ image = self.image
37
+
38
+ field_dict: dict[str, Any] = {}
39
+ field_dict.update(self.additional_properties)
40
+ field_dict.update({})
41
+ if description is not UNSET:
42
+ field_dict["description"] = description
43
+ if image is not UNSET:
44
+ field_dict["image"] = image
45
+
46
+ return field_dict
47
+
48
+ def to_multipart(self) -> types.RequestFiles:
49
+ files: types.RequestFiles = []
50
+
51
+ if not isinstance(self.description, Unset):
52
+ files.append(("description", (None, str(self.description).encode(), "text/plain")))
53
+
54
+ if not isinstance(self.image, Unset):
55
+ if isinstance(self.image, File):
56
+ files.append(("image", self.image.to_tuple()))
57
+ else:
58
+ files.append(("image", (None, str(self.image).encode(), "text/plain")))
59
+
60
+ for prop_name, prop in self.additional_properties.items():
61
+ files.append((prop_name, (None, str(prop).encode(), "text/plain")))
62
+
63
+ return files
64
+
65
+ @classmethod
66
+ def from_dict(cls: type[T], src_dict: Mapping[str, Any]) -> T:
67
+ d = dict(src_dict)
68
+ description = d.pop("description", UNSET)
69
+
70
+ def _parse_image(data: object) -> Union[File, None, Unset]:
71
+ if data is None:
72
+ return data
73
+ if isinstance(data, Unset):
74
+ return data
75
+ try:
76
+ if not isinstance(data, bytes):
77
+ raise TypeError()
78
+ image_type_0 = File(payload=BytesIO(data))
79
+
80
+ return image_type_0
81
+ except: # noqa: E722
82
+ pass
83
+ return cast(Union[File, None, Unset], data)
84
+
85
+ image = _parse_image(d.pop("image", UNSET))
86
+
87
+ patched_call_managing_organisation_request_multipart = cls(
88
+ description=description,
89
+ image=image,
90
+ )
91
+
92
+ patched_call_managing_organisation_request_multipart.additional_properties = d
93
+ return patched_call_managing_organisation_request_multipart
94
+
95
+ @property
96
+ def additional_keys(self) -> list[str]:
97
+ return list(self.additional_properties.keys())
98
+
99
+ def __getitem__(self, key: str) -> Any:
100
+ return self.additional_properties[key]
101
+
102
+ def __setitem__(self, key: str, value: Any) -> None:
103
+ self.additional_properties[key] = value
104
+
105
+ def __delitem__(self, key: str) -> None:
106
+ del self.additional_properties[key]
107
+
108
+ def __contains__(self, key: str) -> bool:
109
+ return key in self.additional_properties
@@ -0,0 +1,101 @@
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="PatchedCategoryGroupRequestForm")
12
+
13
+
14
+ @_attrs_define
15
+ class PatchedCategoryGroupRequestForm:
16
+ """
17
+ Attributes:
18
+ title (Union[Unset, str]):
19
+ description (Union[Unset, str]):
20
+ icon (Union[File, None, Unset]):
21
+ """
22
+
23
+ title: Union[Unset, str] = UNSET
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
+ if title is not UNSET:
46
+ field_dict["title"] = title
47
+ if description is not UNSET:
48
+ field_dict["description"] = description
49
+ if icon is not UNSET:
50
+ field_dict["icon"] = icon
51
+
52
+ return field_dict
53
+
54
+ @classmethod
55
+ def from_dict(cls: type[T], src_dict: Mapping[str, Any]) -> T:
56
+ d = dict(src_dict)
57
+ title = d.pop("title", UNSET)
58
+
59
+ description = d.pop("description", UNSET)
60
+
61
+ def _parse_icon(data: object) -> Union[File, None, Unset]:
62
+ if data is None:
63
+ return data
64
+ if isinstance(data, Unset):
65
+ return data
66
+ try:
67
+ if not isinstance(data, bytes):
68
+ raise TypeError()
69
+ icon_type_0 = File(payload=BytesIO(data))
70
+
71
+ return icon_type_0
72
+ except: # noqa: E722
73
+ pass
74
+ return cast(Union[File, None, Unset], data)
75
+
76
+ icon = _parse_icon(d.pop("icon", UNSET))
77
+
78
+ patched_category_group_request_form = cls(
79
+ title=title,
80
+ description=description,
81
+ icon=icon,
82
+ )
83
+
84
+ patched_category_group_request_form.additional_properties = d
85
+ return patched_category_group_request_form
86
+
87
+ @property
88
+ def additional_keys(self) -> list[str]:
89
+ return list(self.additional_properties.keys())
90
+
91
+ def __getitem__(self, key: str) -> Any:
92
+ return self.additional_properties[key]
93
+
94
+ def __setitem__(self, key: str, value: Any) -> None:
95
+ self.additional_properties[key] = value
96
+
97
+ def __delitem__(self, key: str) -> None:
98
+ del self.additional_properties[key]
99
+
100
+ def __contains__(self, key: str) -> bool:
101
+ return key in self.additional_properties
@@ -0,0 +1,121 @@
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="PatchedCategoryGroupRequestMultipart")
12
+
13
+
14
+ @_attrs_define
15
+ class PatchedCategoryGroupRequestMultipart:
16
+ """
17
+ Attributes:
18
+ title (Union[Unset, str]):
19
+ description (Union[Unset, str]):
20
+ icon (Union[File, None, Unset]):
21
+ """
22
+
23
+ title: Union[Unset, str] = UNSET
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
+ if title is not UNSET:
46
+ field_dict["title"] = title
47
+ if description is not UNSET:
48
+ field_dict["description"] = description
49
+ if icon is not UNSET:
50
+ field_dict["icon"] = icon
51
+
52
+ return field_dict
53
+
54
+ def to_multipart(self) -> types.RequestFiles:
55
+ files: types.RequestFiles = []
56
+
57
+ if not isinstance(self.title, Unset):
58
+ files.append(("title", (None, str(self.title).encode(), "text/plain")))
59
+
60
+ if not isinstance(self.description, Unset):
61
+ files.append(("description", (None, str(self.description).encode(), "text/plain")))
62
+
63
+ if not isinstance(self.icon, Unset):
64
+ if isinstance(self.icon, File):
65
+ files.append(("icon", self.icon.to_tuple()))
66
+ else:
67
+ files.append(("icon", (None, str(self.icon).encode(), "text/plain")))
68
+
69
+ for prop_name, prop in self.additional_properties.items():
70
+ files.append((prop_name, (None, str(prop).encode(), "text/plain")))
71
+
72
+ return files
73
+
74
+ @classmethod
75
+ def from_dict(cls: type[T], src_dict: Mapping[str, Any]) -> T:
76
+ d = dict(src_dict)
77
+ title = d.pop("title", UNSET)
78
+
79
+ description = d.pop("description", UNSET)
80
+
81
+ def _parse_icon(data: object) -> Union[File, None, Unset]:
82
+ if data is None:
83
+ return data
84
+ if isinstance(data, Unset):
85
+ return data
86
+ try:
87
+ if not isinstance(data, bytes):
88
+ raise TypeError()
89
+ icon_type_0 = File(payload=BytesIO(data))
90
+
91
+ return icon_type_0
92
+ except: # noqa: E722
93
+ pass
94
+ return cast(Union[File, None, Unset], data)
95
+
96
+ icon = _parse_icon(d.pop("icon", UNSET))
97
+
98
+ patched_category_group_request_multipart = cls(
99
+ title=title,
100
+ description=description,
101
+ icon=icon,
102
+ )
103
+
104
+ patched_category_group_request_multipart.additional_properties = d
105
+ return patched_category_group_request_multipart
106
+
107
+ @property
108
+ def additional_keys(self) -> list[str]:
109
+ return list(self.additional_properties.keys())
110
+
111
+ def __getitem__(self, key: str) -> Any:
112
+ return self.additional_properties[key]
113
+
114
+ def __setitem__(self, key: str, value: Any) -> None:
115
+ self.additional_properties[key] = value
116
+
117
+ def __delitem__(self, key: str) -> None:
118
+ del self.additional_properties[key]
119
+
120
+ def __contains__(self, key: str) -> bool:
121
+ return key in self.additional_properties
@@ -0,0 +1,102 @@
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="PatchedChecklistCategoryRequestForm")
12
+
13
+
14
+ @_attrs_define
15
+ class PatchedChecklistCategoryRequestForm:
16
+ """
17
+ Attributes:
18
+ icon (Union[File, None, Unset]):
19
+ name (Union[Unset, str]):
20
+ description (Union[Unset, str]):
21
+ """
22
+
23
+ icon: Union[File, None, Unset] = UNSET
24
+ name: Union[Unset, str] = UNSET
25
+ description: Union[Unset, str] = UNSET
26
+ additional_properties: dict[str, Any] = _attrs_field(init=False, factory=dict)
27
+
28
+ def to_dict(self) -> dict[str, Any]:
29
+ icon: Union[None, Unset, types.FileTypes]
30
+ if isinstance(self.icon, Unset):
31
+ icon = UNSET
32
+ elif isinstance(self.icon, File):
33
+ icon = self.icon.to_tuple()
34
+
35
+ else:
36
+ icon = self.icon
37
+
38
+ name = self.name
39
+
40
+ description = self.description
41
+
42
+ field_dict: dict[str, Any] = {}
43
+ field_dict.update(self.additional_properties)
44
+ field_dict.update({})
45
+ if icon is not UNSET:
46
+ field_dict["icon"] = icon
47
+ if name is not UNSET:
48
+ field_dict["name"] = name
49
+ if description is not UNSET:
50
+ field_dict["description"] = description
51
+
52
+ return field_dict
53
+
54
+ @classmethod
55
+ def from_dict(cls: type[T], src_dict: Mapping[str, Any]) -> T:
56
+ d = dict(src_dict)
57
+
58
+ def _parse_icon(data: object) -> Union[File, None, Unset]:
59
+ if data is None:
60
+ return data
61
+ if isinstance(data, Unset):
62
+ return data
63
+ try:
64
+ if not isinstance(data, bytes):
65
+ raise TypeError()
66
+ icon_type_0 = File(payload=BytesIO(data))
67
+
68
+ return icon_type_0
69
+ except: # noqa: E722
70
+ pass
71
+ return cast(Union[File, None, Unset], data)
72
+
73
+ icon = _parse_icon(d.pop("icon", UNSET))
74
+
75
+ name = d.pop("name", UNSET)
76
+
77
+ description = d.pop("description", UNSET)
78
+
79
+ patched_checklist_category_request_form = cls(
80
+ icon=icon,
81
+ name=name,
82
+ description=description,
83
+ )
84
+
85
+ patched_checklist_category_request_form.additional_properties = d
86
+ return patched_checklist_category_request_form
87
+
88
+ @property
89
+ def additional_keys(self) -> list[str]:
90
+ return list(self.additional_properties.keys())
91
+
92
+ def __getitem__(self, key: str) -> Any:
93
+ return self.additional_properties[key]
94
+
95
+ def __setitem__(self, key: str, value: Any) -> None:
96
+ self.additional_properties[key] = value
97
+
98
+ def __delitem__(self, key: str) -> None:
99
+ del self.additional_properties[key]
100
+
101
+ def __contains__(self, key: str) -> bool:
102
+ return key in self.additional_properties