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,250 @@
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="UserRequestForm")
12
+
13
+
14
+ @_attrs_define
15
+ class UserRequestForm:
16
+ """
17
+ Attributes:
18
+ username (str): Required. 128 characters or fewer. Lowercase letters, numbers and @/./+/-/_ characters
19
+ email (str):
20
+ slug (Union[Unset, str]):
21
+ native_name (Union[Unset, str]):
22
+ job_title (Union[Unset, str]):
23
+ phone_number (Union[Unset, str]):
24
+ organization (Union[Unset, str]):
25
+ description (Union[Unset, str]):
26
+ is_staff (Union[Unset, bool]): Designates whether the user can log into this admin site.
27
+ is_active (Union[Unset, bool]): Designates whether this user should be treated as active. Unselect this instead
28
+ of deleting accounts.
29
+ is_support (Union[Unset, bool]): Designates whether the user is a global support user.
30
+ token_lifetime (Union[None, Unset, int]): Token lifetime in seconds.
31
+ agree_with_policy (Union[Unset, bool]): User must agree with the policy to register.
32
+ notifications_enabled (Union[Unset, bool]): Designates whether the user is allowed to receive email
33
+ notifications.
34
+ preferred_language (Union[Unset, str]):
35
+ first_name (Union[Unset, str]):
36
+ last_name (Union[Unset, str]):
37
+ image (Union[File, None, Unset]):
38
+ """
39
+
40
+ username: str
41
+ email: str
42
+ slug: Union[Unset, str] = UNSET
43
+ native_name: Union[Unset, str] = UNSET
44
+ job_title: Union[Unset, str] = UNSET
45
+ phone_number: Union[Unset, str] = UNSET
46
+ organization: Union[Unset, str] = UNSET
47
+ description: Union[Unset, str] = UNSET
48
+ is_staff: Union[Unset, bool] = UNSET
49
+ is_active: Union[Unset, bool] = UNSET
50
+ is_support: Union[Unset, bool] = UNSET
51
+ token_lifetime: Union[None, Unset, int] = UNSET
52
+ agree_with_policy: Union[Unset, bool] = UNSET
53
+ notifications_enabled: Union[Unset, bool] = UNSET
54
+ preferred_language: Union[Unset, str] = UNSET
55
+ first_name: Union[Unset, str] = UNSET
56
+ last_name: Union[Unset, str] = UNSET
57
+ image: Union[File, None, Unset] = UNSET
58
+ additional_properties: dict[str, Any] = _attrs_field(init=False, factory=dict)
59
+
60
+ def to_dict(self) -> dict[str, Any]:
61
+ username = self.username
62
+
63
+ email = self.email
64
+
65
+ slug = self.slug
66
+
67
+ native_name = self.native_name
68
+
69
+ job_title = self.job_title
70
+
71
+ phone_number = self.phone_number
72
+
73
+ organization = self.organization
74
+
75
+ description = self.description
76
+
77
+ is_staff = self.is_staff
78
+
79
+ is_active = self.is_active
80
+
81
+ is_support = self.is_support
82
+
83
+ token_lifetime: Union[None, Unset, int]
84
+ if isinstance(self.token_lifetime, Unset):
85
+ token_lifetime = UNSET
86
+ else:
87
+ token_lifetime = self.token_lifetime
88
+
89
+ agree_with_policy = self.agree_with_policy
90
+
91
+ notifications_enabled = self.notifications_enabled
92
+
93
+ preferred_language = self.preferred_language
94
+
95
+ first_name = self.first_name
96
+
97
+ last_name = self.last_name
98
+
99
+ image: Union[None, Unset, types.FileTypes]
100
+ if isinstance(self.image, Unset):
101
+ image = UNSET
102
+ elif isinstance(self.image, File):
103
+ image = self.image.to_tuple()
104
+
105
+ else:
106
+ image = self.image
107
+
108
+ field_dict: dict[str, Any] = {}
109
+ field_dict.update(self.additional_properties)
110
+ field_dict.update(
111
+ {
112
+ "username": username,
113
+ "email": email,
114
+ }
115
+ )
116
+ if slug is not UNSET:
117
+ field_dict["slug"] = slug
118
+ if native_name is not UNSET:
119
+ field_dict["native_name"] = native_name
120
+ if job_title is not UNSET:
121
+ field_dict["job_title"] = job_title
122
+ if phone_number is not UNSET:
123
+ field_dict["phone_number"] = phone_number
124
+ if organization is not UNSET:
125
+ field_dict["organization"] = organization
126
+ if description is not UNSET:
127
+ field_dict["description"] = description
128
+ if is_staff is not UNSET:
129
+ field_dict["is_staff"] = is_staff
130
+ if is_active is not UNSET:
131
+ field_dict["is_active"] = is_active
132
+ if is_support is not UNSET:
133
+ field_dict["is_support"] = is_support
134
+ if token_lifetime is not UNSET:
135
+ field_dict["token_lifetime"] = token_lifetime
136
+ if agree_with_policy is not UNSET:
137
+ field_dict["agree_with_policy"] = agree_with_policy
138
+ if notifications_enabled is not UNSET:
139
+ field_dict["notifications_enabled"] = notifications_enabled
140
+ if preferred_language is not UNSET:
141
+ field_dict["preferred_language"] = preferred_language
142
+ if first_name is not UNSET:
143
+ field_dict["first_name"] = first_name
144
+ if last_name is not UNSET:
145
+ field_dict["last_name"] = last_name
146
+ if image is not UNSET:
147
+ field_dict["image"] = image
148
+
149
+ return field_dict
150
+
151
+ @classmethod
152
+ def from_dict(cls: type[T], src_dict: Mapping[str, Any]) -> T:
153
+ d = dict(src_dict)
154
+ username = d.pop("username")
155
+
156
+ email = d.pop("email")
157
+
158
+ slug = d.pop("slug", UNSET)
159
+
160
+ native_name = d.pop("native_name", UNSET)
161
+
162
+ job_title = d.pop("job_title", UNSET)
163
+
164
+ phone_number = d.pop("phone_number", UNSET)
165
+
166
+ organization = d.pop("organization", UNSET)
167
+
168
+ description = d.pop("description", UNSET)
169
+
170
+ is_staff = d.pop("is_staff", UNSET)
171
+
172
+ is_active = d.pop("is_active", UNSET)
173
+
174
+ is_support = d.pop("is_support", UNSET)
175
+
176
+ def _parse_token_lifetime(data: object) -> Union[None, Unset, int]:
177
+ if data is None:
178
+ return data
179
+ if isinstance(data, Unset):
180
+ return data
181
+ return cast(Union[None, Unset, int], data)
182
+
183
+ token_lifetime = _parse_token_lifetime(d.pop("token_lifetime", UNSET))
184
+
185
+ agree_with_policy = d.pop("agree_with_policy", UNSET)
186
+
187
+ notifications_enabled = d.pop("notifications_enabled", UNSET)
188
+
189
+ preferred_language = d.pop("preferred_language", UNSET)
190
+
191
+ first_name = d.pop("first_name", UNSET)
192
+
193
+ last_name = d.pop("last_name", UNSET)
194
+
195
+ def _parse_image(data: object) -> Union[File, None, Unset]:
196
+ if data is None:
197
+ return data
198
+ if isinstance(data, Unset):
199
+ return data
200
+ try:
201
+ if not isinstance(data, bytes):
202
+ raise TypeError()
203
+ image_type_0 = File(payload=BytesIO(data))
204
+
205
+ return image_type_0
206
+ except: # noqa: E722
207
+ pass
208
+ return cast(Union[File, None, Unset], data)
209
+
210
+ image = _parse_image(d.pop("image", UNSET))
211
+
212
+ user_request_form = cls(
213
+ username=username,
214
+ email=email,
215
+ slug=slug,
216
+ native_name=native_name,
217
+ job_title=job_title,
218
+ phone_number=phone_number,
219
+ organization=organization,
220
+ description=description,
221
+ is_staff=is_staff,
222
+ is_active=is_active,
223
+ is_support=is_support,
224
+ token_lifetime=token_lifetime,
225
+ agree_with_policy=agree_with_policy,
226
+ notifications_enabled=notifications_enabled,
227
+ preferred_language=preferred_language,
228
+ first_name=first_name,
229
+ last_name=last_name,
230
+ image=image,
231
+ )
232
+
233
+ user_request_form.additional_properties = d
234
+ return user_request_form
235
+
236
+ @property
237
+ def additional_keys(self) -> list[str]:
238
+ return list(self.additional_properties.keys())
239
+
240
+ def __getitem__(self, key: str) -> Any:
241
+ return self.additional_properties[key]
242
+
243
+ def __setitem__(self, key: str, value: Any) -> None:
244
+ self.additional_properties[key] = value
245
+
246
+ def __delitem__(self, key: str) -> None:
247
+ del self.additional_properties[key]
248
+
249
+ def __contains__(self, key: str) -> bool:
250
+ return key in self.additional_properties
@@ -0,0 +1,316 @@
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="UserRequestMultipart")
12
+
13
+
14
+ @_attrs_define
15
+ class UserRequestMultipart:
16
+ """
17
+ Attributes:
18
+ username (str): Required. 128 characters or fewer. Lowercase letters, numbers and @/./+/-/_ characters
19
+ email (str):
20
+ slug (Union[Unset, str]):
21
+ native_name (Union[Unset, str]):
22
+ job_title (Union[Unset, str]):
23
+ phone_number (Union[Unset, str]):
24
+ organization (Union[Unset, str]):
25
+ description (Union[Unset, str]):
26
+ is_staff (Union[Unset, bool]): Designates whether the user can log into this admin site.
27
+ is_active (Union[Unset, bool]): Designates whether this user should be treated as active. Unselect this instead
28
+ of deleting accounts.
29
+ is_support (Union[Unset, bool]): Designates whether the user is a global support user.
30
+ token_lifetime (Union[None, Unset, int]): Token lifetime in seconds.
31
+ agree_with_policy (Union[Unset, bool]): User must agree with the policy to register.
32
+ notifications_enabled (Union[Unset, bool]): Designates whether the user is allowed to receive email
33
+ notifications.
34
+ preferred_language (Union[Unset, str]):
35
+ first_name (Union[Unset, str]):
36
+ last_name (Union[Unset, str]):
37
+ image (Union[File, None, Unset]):
38
+ """
39
+
40
+ username: str
41
+ email: str
42
+ slug: Union[Unset, str] = UNSET
43
+ native_name: Union[Unset, str] = UNSET
44
+ job_title: Union[Unset, str] = UNSET
45
+ phone_number: Union[Unset, str] = UNSET
46
+ organization: Union[Unset, str] = UNSET
47
+ description: Union[Unset, str] = UNSET
48
+ is_staff: Union[Unset, bool] = UNSET
49
+ is_active: Union[Unset, bool] = UNSET
50
+ is_support: Union[Unset, bool] = UNSET
51
+ token_lifetime: Union[None, Unset, int] = UNSET
52
+ agree_with_policy: Union[Unset, bool] = UNSET
53
+ notifications_enabled: Union[Unset, bool] = UNSET
54
+ preferred_language: Union[Unset, str] = UNSET
55
+ first_name: Union[Unset, str] = UNSET
56
+ last_name: Union[Unset, str] = UNSET
57
+ image: Union[File, None, Unset] = UNSET
58
+ additional_properties: dict[str, Any] = _attrs_field(init=False, factory=dict)
59
+
60
+ def to_dict(self) -> dict[str, Any]:
61
+ username = self.username
62
+
63
+ email = self.email
64
+
65
+ slug = self.slug
66
+
67
+ native_name = self.native_name
68
+
69
+ job_title = self.job_title
70
+
71
+ phone_number = self.phone_number
72
+
73
+ organization = self.organization
74
+
75
+ description = self.description
76
+
77
+ is_staff = self.is_staff
78
+
79
+ is_active = self.is_active
80
+
81
+ is_support = self.is_support
82
+
83
+ token_lifetime: Union[None, Unset, int]
84
+ if isinstance(self.token_lifetime, Unset):
85
+ token_lifetime = UNSET
86
+ else:
87
+ token_lifetime = self.token_lifetime
88
+
89
+ agree_with_policy = self.agree_with_policy
90
+
91
+ notifications_enabled = self.notifications_enabled
92
+
93
+ preferred_language = self.preferred_language
94
+
95
+ first_name = self.first_name
96
+
97
+ last_name = self.last_name
98
+
99
+ image: Union[None, Unset, types.FileTypes]
100
+ if isinstance(self.image, Unset):
101
+ image = UNSET
102
+ elif isinstance(self.image, File):
103
+ image = self.image.to_tuple()
104
+
105
+ else:
106
+ image = self.image
107
+
108
+ field_dict: dict[str, Any] = {}
109
+ field_dict.update(self.additional_properties)
110
+ field_dict.update(
111
+ {
112
+ "username": username,
113
+ "email": email,
114
+ }
115
+ )
116
+ if slug is not UNSET:
117
+ field_dict["slug"] = slug
118
+ if native_name is not UNSET:
119
+ field_dict["native_name"] = native_name
120
+ if job_title is not UNSET:
121
+ field_dict["job_title"] = job_title
122
+ if phone_number is not UNSET:
123
+ field_dict["phone_number"] = phone_number
124
+ if organization is not UNSET:
125
+ field_dict["organization"] = organization
126
+ if description is not UNSET:
127
+ field_dict["description"] = description
128
+ if is_staff is not UNSET:
129
+ field_dict["is_staff"] = is_staff
130
+ if is_active is not UNSET:
131
+ field_dict["is_active"] = is_active
132
+ if is_support is not UNSET:
133
+ field_dict["is_support"] = is_support
134
+ if token_lifetime is not UNSET:
135
+ field_dict["token_lifetime"] = token_lifetime
136
+ if agree_with_policy is not UNSET:
137
+ field_dict["agree_with_policy"] = agree_with_policy
138
+ if notifications_enabled is not UNSET:
139
+ field_dict["notifications_enabled"] = notifications_enabled
140
+ if preferred_language is not UNSET:
141
+ field_dict["preferred_language"] = preferred_language
142
+ if first_name is not UNSET:
143
+ field_dict["first_name"] = first_name
144
+ if last_name is not UNSET:
145
+ field_dict["last_name"] = last_name
146
+ if image is not UNSET:
147
+ field_dict["image"] = image
148
+
149
+ return field_dict
150
+
151
+ def to_multipart(self) -> types.RequestFiles:
152
+ files: types.RequestFiles = []
153
+
154
+ files.append(("username", (None, str(self.username).encode(), "text/plain")))
155
+
156
+ files.append(("email", (None, str(self.email).encode(), "text/plain")))
157
+
158
+ if not isinstance(self.slug, Unset):
159
+ files.append(("slug", (None, str(self.slug).encode(), "text/plain")))
160
+
161
+ if not isinstance(self.native_name, Unset):
162
+ files.append(("native_name", (None, str(self.native_name).encode(), "text/plain")))
163
+
164
+ if not isinstance(self.job_title, Unset):
165
+ files.append(("job_title", (None, str(self.job_title).encode(), "text/plain")))
166
+
167
+ if not isinstance(self.phone_number, Unset):
168
+ files.append(("phone_number", (None, str(self.phone_number).encode(), "text/plain")))
169
+
170
+ if not isinstance(self.organization, Unset):
171
+ files.append(("organization", (None, str(self.organization).encode(), "text/plain")))
172
+
173
+ if not isinstance(self.description, Unset):
174
+ files.append(("description", (None, str(self.description).encode(), "text/plain")))
175
+
176
+ if not isinstance(self.is_staff, Unset):
177
+ files.append(("is_staff", (None, str(self.is_staff).encode(), "text/plain")))
178
+
179
+ if not isinstance(self.is_active, Unset):
180
+ files.append(("is_active", (None, str(self.is_active).encode(), "text/plain")))
181
+
182
+ if not isinstance(self.is_support, Unset):
183
+ files.append(("is_support", (None, str(self.is_support).encode(), "text/plain")))
184
+
185
+ if not isinstance(self.token_lifetime, Unset):
186
+ if isinstance(self.token_lifetime, int):
187
+ files.append(("token_lifetime", (None, str(self.token_lifetime).encode(), "text/plain")))
188
+ else:
189
+ files.append(("token_lifetime", (None, str(self.token_lifetime).encode(), "text/plain")))
190
+
191
+ if not isinstance(self.agree_with_policy, Unset):
192
+ files.append(("agree_with_policy", (None, str(self.agree_with_policy).encode(), "text/plain")))
193
+
194
+ if not isinstance(self.notifications_enabled, Unset):
195
+ files.append(("notifications_enabled", (None, str(self.notifications_enabled).encode(), "text/plain")))
196
+
197
+ if not isinstance(self.preferred_language, Unset):
198
+ files.append(("preferred_language", (None, str(self.preferred_language).encode(), "text/plain")))
199
+
200
+ if not isinstance(self.first_name, Unset):
201
+ files.append(("first_name", (None, str(self.first_name).encode(), "text/plain")))
202
+
203
+ if not isinstance(self.last_name, Unset):
204
+ files.append(("last_name", (None, str(self.last_name).encode(), "text/plain")))
205
+
206
+ if not isinstance(self.image, Unset):
207
+ if isinstance(self.image, File):
208
+ files.append(("image", self.image.to_tuple()))
209
+ else:
210
+ files.append(("image", (None, str(self.image).encode(), "text/plain")))
211
+
212
+ for prop_name, prop in self.additional_properties.items():
213
+ files.append((prop_name, (None, str(prop).encode(), "text/plain")))
214
+
215
+ return files
216
+
217
+ @classmethod
218
+ def from_dict(cls: type[T], src_dict: Mapping[str, Any]) -> T:
219
+ d = dict(src_dict)
220
+ username = d.pop("username")
221
+
222
+ email = d.pop("email")
223
+
224
+ slug = d.pop("slug", UNSET)
225
+
226
+ native_name = d.pop("native_name", UNSET)
227
+
228
+ job_title = d.pop("job_title", UNSET)
229
+
230
+ phone_number = d.pop("phone_number", UNSET)
231
+
232
+ organization = d.pop("organization", UNSET)
233
+
234
+ description = d.pop("description", UNSET)
235
+
236
+ is_staff = d.pop("is_staff", UNSET)
237
+
238
+ is_active = d.pop("is_active", UNSET)
239
+
240
+ is_support = d.pop("is_support", UNSET)
241
+
242
+ def _parse_token_lifetime(data: object) -> Union[None, Unset, int]:
243
+ if data is None:
244
+ return data
245
+ if isinstance(data, Unset):
246
+ return data
247
+ return cast(Union[None, Unset, int], data)
248
+
249
+ token_lifetime = _parse_token_lifetime(d.pop("token_lifetime", UNSET))
250
+
251
+ agree_with_policy = d.pop("agree_with_policy", UNSET)
252
+
253
+ notifications_enabled = d.pop("notifications_enabled", UNSET)
254
+
255
+ preferred_language = d.pop("preferred_language", UNSET)
256
+
257
+ first_name = d.pop("first_name", UNSET)
258
+
259
+ last_name = d.pop("last_name", UNSET)
260
+
261
+ def _parse_image(data: object) -> Union[File, None, Unset]:
262
+ if data is None:
263
+ return data
264
+ if isinstance(data, Unset):
265
+ return data
266
+ try:
267
+ if not isinstance(data, bytes):
268
+ raise TypeError()
269
+ image_type_0 = File(payload=BytesIO(data))
270
+
271
+ return image_type_0
272
+ except: # noqa: E722
273
+ pass
274
+ return cast(Union[File, None, Unset], data)
275
+
276
+ image = _parse_image(d.pop("image", UNSET))
277
+
278
+ user_request_multipart = cls(
279
+ username=username,
280
+ email=email,
281
+ slug=slug,
282
+ native_name=native_name,
283
+ job_title=job_title,
284
+ phone_number=phone_number,
285
+ organization=organization,
286
+ description=description,
287
+ is_staff=is_staff,
288
+ is_active=is_active,
289
+ is_support=is_support,
290
+ token_lifetime=token_lifetime,
291
+ agree_with_policy=agree_with_policy,
292
+ notifications_enabled=notifications_enabled,
293
+ preferred_language=preferred_language,
294
+ first_name=first_name,
295
+ last_name=last_name,
296
+ image=image,
297
+ )
298
+
299
+ user_request_multipart.additional_properties = d
300
+ return user_request_multipart
301
+
302
+ @property
303
+ def additional_keys(self) -> list[str]:
304
+ return list(self.additional_properties.keys())
305
+
306
+ def __getitem__(self, key: str) -> Any:
307
+ return self.additional_properties[key]
308
+
309
+ def __setitem__(self, key: str, value: Any) -> None:
310
+ self.additional_properties[key] = value
311
+
312
+ def __delitem__(self, key: str) -> None:
313
+ del self.additional_properties[key]
314
+
315
+ def __contains__(self, key: str) -> bool:
316
+ return key in self.additional_properties
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: waldur-api-client
3
- Version: 7.8.1
3
+ Version: 7.8.2
4
4
  Summary: A client library for accessing Waldur API
5
5
  License: MIT
6
6
  License-File: LICENSE