waldur-api-client 7.8.1__py3-none-any.whl → 7.8.3__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 (234) 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_project_update_requests/marketplace_project_update_requests_count.py +18 -18
  28. waldur_api_client/api/marketplace_project_update_requests/marketplace_project_update_requests_list.py +18 -18
  29. waldur_api_client/api/marketplace_provider_offerings/marketplace_provider_offerings_create.py +44 -7
  30. waldur_api_client/api/marketplace_provider_offerings/marketplace_provider_offerings_update_image.py +44 -7
  31. waldur_api_client/api/marketplace_provider_offerings/marketplace_provider_offerings_update_thumbnail.py +30 -5
  32. waldur_api_client/api/marketplace_provider_resources/marketplace_provider_resources_count.py +10 -13
  33. waldur_api_client/api/marketplace_provider_resources/marketplace_provider_resources_list.py +10 -13
  34. waldur_api_client/api/marketplace_provider_resources/marketplace_provider_resources_move_resource.py +22 -0
  35. waldur_api_client/api/marketplace_resources/marketplace_resources_count.py +10 -13
  36. waldur_api_client/api/marketplace_resources/marketplace_resources_list.py +10 -13
  37. waldur_api_client/api/marketplace_resources/marketplace_resources_move_resource.py +22 -0
  38. waldur_api_client/api/marketplace_screenshots/marketplace_screenshots_create.py +44 -7
  39. waldur_api_client/api/marketplace_screenshots/marketplace_screenshots_update.py +44 -7
  40. waldur_api_client/api/marketplace_service_providers/marketplace_service_providers_create.py +44 -7
  41. waldur_api_client/api/marketplace_service_providers/marketplace_service_providers_partial_update.py +44 -7
  42. waldur_api_client/api/marketplace_service_providers/marketplace_service_providers_update.py +44 -7
  43. waldur_api_client/api/openstack_backups/openstack_backups_restore.py +10 -10
  44. waldur_api_client/api/override_settings/override_settings.py +30 -5
  45. waldur_api_client/api/payments/payments_create.py +44 -7
  46. waldur_api_client/api/payments/payments_partial_update.py +44 -7
  47. waldur_api_client/api/payments/payments_update.py +44 -7
  48. waldur_api_client/api/projects/projects_create.py +44 -7
  49. waldur_api_client/api/projects/projects_partial_update.py +44 -7
  50. waldur_api_client/api/projects/projects_update.py +44 -7
  51. waldur_api_client/api/proposal_proposals/proposal_proposals_attach_document.py +30 -5
  52. waldur_api_client/api/rancher_services/rancher_services_create.py +22 -22
  53. waldur_api_client/api/slurm_jobs/slurm_jobs_create.py +44 -7
  54. waldur_api_client/api/slurm_jobs/slurm_jobs_update.py +44 -7
  55. waldur_api_client/api/support_attachments/support_attachments_create.py +44 -7
  56. waldur_api_client/api/user_group_invitations/user_group_invitations_count.py +15 -0
  57. waldur_api_client/api/user_group_invitations/user_group_invitations_list.py +15 -0
  58. waldur_api_client/api/users/users_create.py +44 -7
  59. waldur_api_client/api/users/users_partial_update.py +44 -7
  60. waldur_api_client/api/users/users_update.py +44 -7
  61. waldur_api_client/models/__init__.py +172 -8
  62. waldur_api_client/models/agent_type_enum.py +13 -0
  63. waldur_api_client/models/attachment_request_form.py +70 -0
  64. waldur_api_client/models/attachment_request_multipart.py +83 -0
  65. waldur_api_client/models/azure_sql_server_create_order_attributes.py +5 -10
  66. waldur_api_client/models/azure_virtual_machine_create_order_attributes.py +7 -12
  67. waldur_api_client/models/booking_offerings_list_field_item.py +1 -0
  68. waldur_api_client/models/booking_offerings_retrieve_field_item.py +1 -0
  69. waldur_api_client/models/booking_resource.py +16 -34
  70. waldur_api_client/models/booking_resources_list_field_item.py +1 -3
  71. waldur_api_client/models/booking_resources_retrieve_field_item.py +1 -3
  72. waldur_api_client/models/call_managing_organisation_request_form.py +103 -0
  73. waldur_api_client/models/call_managing_organisation_request_multipart.py +122 -0
  74. waldur_api_client/models/call_round.py +11 -1
  75. waldur_api_client/models/category_group_request_form.py +103 -0
  76. waldur_api_client/models/category_group_request_multipart.py +122 -0
  77. waldur_api_client/models/checklist_category_request_form.py +103 -0
  78. waldur_api_client/models/checklist_category_request_multipart.py +122 -0
  79. waldur_api_client/models/checklists_admin_checklist_questions_checklist_type.py +11 -0
  80. waldur_api_client/models/checklists_admin_checklist_questions_checklist_type_in_item.py +11 -0
  81. waldur_api_client/models/checklists_admin_count_checklist_type.py +11 -0
  82. waldur_api_client/models/checklists_admin_count_checklist_type_in_item.py +11 -0
  83. waldur_api_client/models/checklists_admin_list_checklist_type.py +11 -0
  84. waldur_api_client/models/checklists_admin_list_checklist_type_in_item.py +11 -0
  85. waldur_api_client/models/constance_settings.py +18 -0
  86. waldur_api_client/models/constance_settings_request.py +18 -0
  87. waldur_api_client/models/constance_settings_request_form.py +1556 -0
  88. waldur_api_client/models/constance_settings_request_multipart.py +2187 -0
  89. waldur_api_client/models/customer.py +9 -0
  90. waldur_api_client/models/customer_request.py +9 -0
  91. waldur_api_client/models/customer_request_form.py +312 -0
  92. waldur_api_client/models/customer_request_multipart.py +394 -0
  93. waldur_api_client/models/customers_list_field_item.py +1 -0
  94. waldur_api_client/models/customers_retrieve_field_item.py +1 -0
  95. waldur_api_client/models/event_groups_enum.py +1 -0
  96. waldur_api_client/models/event_types_enum.py +2 -0
  97. waldur_api_client/models/external_link_request_form.py +111 -0
  98. waldur_api_client/models/external_link_request_multipart.py +132 -0
  99. waldur_api_client/models/firecrest_job_request_form.py +104 -0
  100. waldur_api_client/models/firecrest_job_request_multipart.py +127 -0
  101. waldur_api_client/models/generic_order_attributes.py +1 -2
  102. waldur_api_client/models/integration_status.py +21 -4
  103. waldur_api_client/models/managed_rancher_cluster_resources_list_field_item.py +1 -3
  104. waldur_api_client/models/managed_rancher_cluster_resources_retrieve_field_item.py +1 -3
  105. waldur_api_client/models/marketplace_category_request_form.py +153 -0
  106. waldur_api_client/models/marketplace_category_request_multipart.py +187 -0
  107. waldur_api_client/models/marketplace_orders_list_field_item.py +1 -3
  108. waldur_api_client/models/marketplace_orders_retrieve_field_item.py +1 -3
  109. waldur_api_client/models/marketplace_provider_offerings_list_course_accounts_retrieve_field_item.py +1 -0
  110. waldur_api_client/models/marketplace_provider_offerings_list_customer_service_accounts_retrieve_field_item.py +1 -0
  111. waldur_api_client/models/marketplace_provider_offerings_list_field_item.py +1 -0
  112. waldur_api_client/models/marketplace_provider_offerings_list_project_service_accounts_retrieve_field_item.py +1 -0
  113. waldur_api_client/models/marketplace_provider_offerings_retrieve_field_item.py +1 -0
  114. waldur_api_client/models/marketplace_provider_offerings_stats_retrieve_field_item.py +1 -0
  115. waldur_api_client/models/marketplace_provider_offerings_user_has_resource_access_retrieve_field_item.py +1 -0
  116. waldur_api_client/models/marketplace_provider_resources_details_retrieve_field_item.py +1 -3
  117. waldur_api_client/models/marketplace_provider_resources_list_field_item.py +1 -3
  118. waldur_api_client/models/marketplace_provider_resources_retrieve_field_item.py +1 -3
  119. waldur_api_client/models/marketplace_public_offerings_list_field_item.py +1 -0
  120. waldur_api_client/models/marketplace_public_offerings_retrieve_field_item.py +1 -0
  121. waldur_api_client/models/marketplace_resources_details_retrieve_field_item.py +1 -3
  122. waldur_api_client/models/marketplace_resources_list_field_item.py +1 -3
  123. waldur_api_client/models/marketplace_resources_retrieve_field_item.py +1 -3
  124. waldur_api_client/models/marketplace_robot_accounts_list_field_item.py +2 -1
  125. waldur_api_client/models/marketplace_robot_accounts_retrieve_field_item.py +2 -1
  126. waldur_api_client/models/marketplace_service_providers_offerings_list_field_item.py +1 -0
  127. waldur_api_client/models/merged_plugin_options.py +9 -0
  128. waldur_api_client/models/merged_plugin_options_request.py +9 -0
  129. waldur_api_client/models/move_resource_request.py +65 -0
  130. waldur_api_client/models/nested_round.py +9 -0
  131. waldur_api_client/models/nested_round_request.py +9 -0
  132. waldur_api_client/models/offering.py +20 -0
  133. waldur_api_client/models/offering_create.py +20 -0
  134. waldur_api_client/models/offering_create_request.py +20 -0
  135. waldur_api_client/models/offering_create_request_form.py +479 -0
  136. waldur_api_client/models/offering_create_request_form_limits.py +57 -0
  137. waldur_api_client/models/offering_create_request_multipart.py +599 -0
  138. waldur_api_client/models/offering_create_request_multipart_limits.py +57 -0
  139. waldur_api_client/models/offering_file_request_form.py +78 -0
  140. waldur_api_client/models/offering_file_request_multipart.py +93 -0
  141. waldur_api_client/models/offering_image_request_form.py +62 -0
  142. waldur_api_client/models/offering_image_request_multipart.py +73 -0
  143. waldur_api_client/models/offering_thumbnail_request_form.py +62 -0
  144. waldur_api_client/models/offering_thumbnail_request_multipart.py +73 -0
  145. waldur_api_client/models/offering_user.py +5 -5
  146. waldur_api_client/models/{offering_user_state_enum.py → offering_user_state.py} +1 -1
  147. waldur_api_client/models/open_stack_backup_restoration.py +3 -5
  148. waldur_api_client/models/open_stack_backup_restoration_create_request.py +141 -0
  149. waldur_api_client/models/open_stack_backup_restoration_request.py +22 -30
  150. waldur_api_client/models/{open_stack_nested_security_group_request.py → open_stack_create_floating_ip_request.py} +17 -6
  151. waldur_api_client/models/open_stack_create_port_request.py +104 -0
  152. waldur_api_client/models/open_stack_instance.py +13 -29
  153. waldur_api_client/models/open_stack_instance_create_order_attributes.py +67 -54
  154. waldur_api_client/models/open_stack_instance_floating_i_ps_update_request.py +5 -5
  155. waldur_api_client/models/open_stack_instance_ports_update_request.py +5 -5
  156. waldur_api_client/models/open_stack_instance_request.py +1 -67
  157. waldur_api_client/models/open_stack_nested_port_request.py +0 -9
  158. waldur_api_client/models/open_stack_security_group_hyperlink_request.py +59 -0
  159. waldur_api_client/models/open_stack_server_group_hyperlink_request.py +59 -0
  160. waldur_api_client/models/open_stack_tenant_create_order_attributes.py +9 -14
  161. waldur_api_client/models/open_stack_volume_create_order_attributes.py +8 -13
  162. waldur_api_client/models/openstack_instances_list_field_item.py +0 -7
  163. waldur_api_client/models/openstack_instances_retrieve_field_item.py +0 -7
  164. waldur_api_client/models/order_attachment_request_form.py +84 -0
  165. waldur_api_client/models/order_attachment_request_multipart.py +98 -0
  166. waldur_api_client/models/order_create.py +8 -0
  167. waldur_api_client/models/order_details.py +16 -34
  168. waldur_api_client/models/paid_request_form.py +81 -0
  169. waldur_api_client/models/paid_request_multipart.py +94 -0
  170. waldur_api_client/models/patched_call_managing_organisation_request_form.py +92 -0
  171. waldur_api_client/models/patched_call_managing_organisation_request_multipart.py +109 -0
  172. waldur_api_client/models/patched_category_group_request_form.py +101 -0
  173. waldur_api_client/models/patched_category_group_request_multipart.py +121 -0
  174. waldur_api_client/models/patched_checklist_category_request_form.py +102 -0
  175. waldur_api_client/models/patched_checklist_category_request_multipart.py +122 -0
  176. waldur_api_client/models/patched_customer_request.py +9 -0
  177. waldur_api_client/models/patched_customer_request_form.py +310 -0
  178. waldur_api_client/models/patched_customer_request_multipart.py +393 -0
  179. waldur_api_client/models/patched_external_link_request_form.py +110 -0
  180. waldur_api_client/models/patched_external_link_request_multipart.py +133 -0
  181. waldur_api_client/models/patched_marketplace_category_request_form.py +151 -0
  182. waldur_api_client/models/patched_marketplace_category_request_multipart.py +186 -0
  183. waldur_api_client/models/patched_open_stack_instance_request.py +1 -67
  184. waldur_api_client/models/patched_payment_request_form.py +119 -0
  185. waldur_api_client/models/patched_payment_request_multipart.py +142 -0
  186. waldur_api_client/models/patched_project_request_form.py +279 -0
  187. waldur_api_client/models/patched_project_request_multipart.py +342 -0
  188. waldur_api_client/models/patched_service_provider_request_form.py +101 -0
  189. waldur_api_client/models/patched_service_provider_request_multipart.py +121 -0
  190. waldur_api_client/models/patched_user_request_form.py +241 -0
  191. waldur_api_client/models/patched_user_request_multipart.py +306 -0
  192. waldur_api_client/models/payment_request_form.py +113 -0
  193. waldur_api_client/models/payment_request_multipart.py +134 -0
  194. waldur_api_client/models/{rancher_nested_security_group.py → project_hyperlink_request.py} +5 -5
  195. waldur_api_client/models/project_request_form.py +280 -0
  196. waldur_api_client/models/project_request_multipart.py +341 -0
  197. waldur_api_client/models/project_user.py +9 -0
  198. waldur_api_client/models/proposal.py +8 -0
  199. waldur_api_client/models/proposal_documentation_request_form.py +84 -0
  200. waldur_api_client/models/proposal_documentation_request_multipart.py +98 -0
  201. waldur_api_client/models/proposal_proposals_count_o_item.py +3 -1
  202. waldur_api_client/models/proposal_proposals_list_o_item.py +3 -1
  203. waldur_api_client/models/proposal_review.py +40 -0
  204. waldur_api_client/models/protected_proposal_list.py +8 -0
  205. waldur_api_client/models/protected_proposal_list_request.py +8 -0
  206. waldur_api_client/models/protected_round.py +8 -0
  207. waldur_api_client/models/provider_offering.py +21 -1
  208. waldur_api_client/models/provider_offering_details.py +20 -0
  209. waldur_api_client/models/public_offering_details.py +20 -0
  210. waldur_api_client/models/rancher_clusters_list_field_item.py +0 -1
  211. waldur_api_client/models/rancher_clusters_retrieve_field_item.py +0 -1
  212. waldur_api_client/models/rancher_service_create.py +508 -0
  213. waldur_api_client/models/rancher_service_create_marketplace_offering_plugin_options_type_0.py +44 -0
  214. waldur_api_client/models/rancher_service_create_request.py +185 -0
  215. waldur_api_client/models/rancher_service_request.py +16 -19
  216. waldur_api_client/models/rancher_workload_create.py +59 -0
  217. waldur_api_client/models/rancher_workload_create_request.py +59 -0
  218. waldur_api_client/models/resource.py +16 -34
  219. waldur_api_client/models/robot_account_details.py +22 -13
  220. waldur_api_client/models/screenshot_request_form.py +87 -0
  221. waldur_api_client/models/screenshot_request_multipart.py +105 -0
  222. waldur_api_client/models/service_provider_request_form.py +112 -0
  223. waldur_api_client/models/service_provider_request_multipart.py +134 -0
  224. waldur_api_client/models/slurm_invoices_slurm_package_create_order_attributes.py +4 -9
  225. waldur_api_client/models/user_request_form.py +250 -0
  226. waldur_api_client/models/user_request_multipart.py +316 -0
  227. waldur_api_client/models/v_mware_virtual_machine_create_order_attributes.py +11 -16
  228. waldur_api_client/models/vmware_nested_network.py +0 -25
  229. waldur_api_client/models/vmware_nested_network_request.py +6 -14
  230. {waldur_api_client-7.8.1.dist-info → waldur_api_client-7.8.3.dist-info}/METADATA +1 -1
  231. {waldur_api_client-7.8.1.dist-info → waldur_api_client-7.8.3.dist-info}/RECORD +233 -153
  232. waldur_api_client/models/open_stack_data_volume.py +0 -81
  233. {waldur_api_client-7.8.1.dist-info → waldur_api_client-7.8.3.dist-info}/WHEEL +0 -0
  234. {waldur_api_client-7.8.1.dist-info → waldur_api_client-7.8.3.dist-info}/licenses/LICENSE +0 -0
@@ -0,0 +1,241 @@
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="PatchedUserRequestForm")
12
+
13
+
14
+ @_attrs_define
15
+ class PatchedUserRequestForm:
16
+ """
17
+ Attributes:
18
+ username (Union[Unset, str]): Required. 128 characters or fewer. Lowercase letters, numbers and @/./+/-/_
19
+ characters
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: Union[Unset, str] = UNSET
41
+ slug: Union[Unset, str] = UNSET
42
+ native_name: Union[Unset, str] = UNSET
43
+ job_title: Union[Unset, str] = UNSET
44
+ phone_number: Union[Unset, str] = UNSET
45
+ organization: Union[Unset, str] = UNSET
46
+ description: Union[Unset, str] = UNSET
47
+ is_staff: Union[Unset, bool] = UNSET
48
+ is_active: Union[Unset, bool] = UNSET
49
+ is_support: Union[Unset, bool] = UNSET
50
+ token_lifetime: Union[None, Unset, int] = UNSET
51
+ agree_with_policy: Union[Unset, bool] = UNSET
52
+ notifications_enabled: Union[Unset, bool] = UNSET
53
+ preferred_language: Union[Unset, str] = UNSET
54
+ first_name: Union[Unset, str] = UNSET
55
+ last_name: Union[Unset, str] = UNSET
56
+ image: Union[File, None, Unset] = UNSET
57
+ additional_properties: dict[str, Any] = _attrs_field(init=False, factory=dict)
58
+
59
+ def to_dict(self) -> dict[str, Any]:
60
+ username = self.username
61
+
62
+ slug = self.slug
63
+
64
+ native_name = self.native_name
65
+
66
+ job_title = self.job_title
67
+
68
+ phone_number = self.phone_number
69
+
70
+ organization = self.organization
71
+
72
+ description = self.description
73
+
74
+ is_staff = self.is_staff
75
+
76
+ is_active = self.is_active
77
+
78
+ is_support = self.is_support
79
+
80
+ token_lifetime: Union[None, Unset, int]
81
+ if isinstance(self.token_lifetime, Unset):
82
+ token_lifetime = UNSET
83
+ else:
84
+ token_lifetime = self.token_lifetime
85
+
86
+ agree_with_policy = self.agree_with_policy
87
+
88
+ notifications_enabled = self.notifications_enabled
89
+
90
+ preferred_language = self.preferred_language
91
+
92
+ first_name = self.first_name
93
+
94
+ last_name = self.last_name
95
+
96
+ image: Union[None, Unset, types.FileTypes]
97
+ if isinstance(self.image, Unset):
98
+ image = UNSET
99
+ elif isinstance(self.image, File):
100
+ image = self.image.to_tuple()
101
+
102
+ else:
103
+ image = self.image
104
+
105
+ field_dict: dict[str, Any] = {}
106
+ field_dict.update(self.additional_properties)
107
+ field_dict.update({})
108
+ if username is not UNSET:
109
+ field_dict["username"] = username
110
+ if slug is not UNSET:
111
+ field_dict["slug"] = slug
112
+ if native_name is not UNSET:
113
+ field_dict["native_name"] = native_name
114
+ if job_title is not UNSET:
115
+ field_dict["job_title"] = job_title
116
+ if phone_number is not UNSET:
117
+ field_dict["phone_number"] = phone_number
118
+ if organization is not UNSET:
119
+ field_dict["organization"] = organization
120
+ if description is not UNSET:
121
+ field_dict["description"] = description
122
+ if is_staff is not UNSET:
123
+ field_dict["is_staff"] = is_staff
124
+ if is_active is not UNSET:
125
+ field_dict["is_active"] = is_active
126
+ if is_support is not UNSET:
127
+ field_dict["is_support"] = is_support
128
+ if token_lifetime is not UNSET:
129
+ field_dict["token_lifetime"] = token_lifetime
130
+ if agree_with_policy is not UNSET:
131
+ field_dict["agree_with_policy"] = agree_with_policy
132
+ if notifications_enabled is not UNSET:
133
+ field_dict["notifications_enabled"] = notifications_enabled
134
+ if preferred_language is not UNSET:
135
+ field_dict["preferred_language"] = preferred_language
136
+ if first_name is not UNSET:
137
+ field_dict["first_name"] = first_name
138
+ if last_name is not UNSET:
139
+ field_dict["last_name"] = last_name
140
+ if image is not UNSET:
141
+ field_dict["image"] = image
142
+
143
+ return field_dict
144
+
145
+ @classmethod
146
+ def from_dict(cls: type[T], src_dict: Mapping[str, Any]) -> T:
147
+ d = dict(src_dict)
148
+ username = d.pop("username", UNSET)
149
+
150
+ slug = d.pop("slug", UNSET)
151
+
152
+ native_name = d.pop("native_name", UNSET)
153
+
154
+ job_title = d.pop("job_title", UNSET)
155
+
156
+ phone_number = d.pop("phone_number", UNSET)
157
+
158
+ organization = d.pop("organization", UNSET)
159
+
160
+ description = d.pop("description", UNSET)
161
+
162
+ is_staff = d.pop("is_staff", UNSET)
163
+
164
+ is_active = d.pop("is_active", UNSET)
165
+
166
+ is_support = d.pop("is_support", UNSET)
167
+
168
+ def _parse_token_lifetime(data: object) -> Union[None, Unset, int]:
169
+ if data is None:
170
+ return data
171
+ if isinstance(data, Unset):
172
+ return data
173
+ return cast(Union[None, Unset, int], data)
174
+
175
+ token_lifetime = _parse_token_lifetime(d.pop("token_lifetime", UNSET))
176
+
177
+ agree_with_policy = d.pop("agree_with_policy", UNSET)
178
+
179
+ notifications_enabled = d.pop("notifications_enabled", UNSET)
180
+
181
+ preferred_language = d.pop("preferred_language", UNSET)
182
+
183
+ first_name = d.pop("first_name", UNSET)
184
+
185
+ last_name = d.pop("last_name", UNSET)
186
+
187
+ def _parse_image(data: object) -> Union[File, None, Unset]:
188
+ if data is None:
189
+ return data
190
+ if isinstance(data, Unset):
191
+ return data
192
+ try:
193
+ if not isinstance(data, bytes):
194
+ raise TypeError()
195
+ image_type_0 = File(payload=BytesIO(data))
196
+
197
+ return image_type_0
198
+ except: # noqa: E722
199
+ pass
200
+ return cast(Union[File, None, Unset], data)
201
+
202
+ image = _parse_image(d.pop("image", UNSET))
203
+
204
+ patched_user_request_form = cls(
205
+ username=username,
206
+ slug=slug,
207
+ native_name=native_name,
208
+ job_title=job_title,
209
+ phone_number=phone_number,
210
+ organization=organization,
211
+ description=description,
212
+ is_staff=is_staff,
213
+ is_active=is_active,
214
+ is_support=is_support,
215
+ token_lifetime=token_lifetime,
216
+ agree_with_policy=agree_with_policy,
217
+ notifications_enabled=notifications_enabled,
218
+ preferred_language=preferred_language,
219
+ first_name=first_name,
220
+ last_name=last_name,
221
+ image=image,
222
+ )
223
+
224
+ patched_user_request_form.additional_properties = d
225
+ return patched_user_request_form
226
+
227
+ @property
228
+ def additional_keys(self) -> list[str]:
229
+ return list(self.additional_properties.keys())
230
+
231
+ def __getitem__(self, key: str) -> Any:
232
+ return self.additional_properties[key]
233
+
234
+ def __setitem__(self, key: str, value: Any) -> None:
235
+ self.additional_properties[key] = value
236
+
237
+ def __delitem__(self, key: str) -> None:
238
+ del self.additional_properties[key]
239
+
240
+ def __contains__(self, key: str) -> bool:
241
+ return key in self.additional_properties
@@ -0,0 +1,306 @@
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="PatchedUserRequestMultipart")
12
+
13
+
14
+ @_attrs_define
15
+ class PatchedUserRequestMultipart:
16
+ """
17
+ Attributes:
18
+ username (Union[Unset, str]): Required. 128 characters or fewer. Lowercase letters, numbers and @/./+/-/_
19
+ characters
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: Union[Unset, str] = UNSET
41
+ slug: Union[Unset, str] = UNSET
42
+ native_name: Union[Unset, str] = UNSET
43
+ job_title: Union[Unset, str] = UNSET
44
+ phone_number: Union[Unset, str] = UNSET
45
+ organization: Union[Unset, str] = UNSET
46
+ description: Union[Unset, str] = UNSET
47
+ is_staff: Union[Unset, bool] = UNSET
48
+ is_active: Union[Unset, bool] = UNSET
49
+ is_support: Union[Unset, bool] = UNSET
50
+ token_lifetime: Union[None, Unset, int] = UNSET
51
+ agree_with_policy: Union[Unset, bool] = UNSET
52
+ notifications_enabled: Union[Unset, bool] = UNSET
53
+ preferred_language: Union[Unset, str] = UNSET
54
+ first_name: Union[Unset, str] = UNSET
55
+ last_name: Union[Unset, str] = UNSET
56
+ image: Union[File, None, Unset] = UNSET
57
+ additional_properties: dict[str, Any] = _attrs_field(init=False, factory=dict)
58
+
59
+ def to_dict(self) -> dict[str, Any]:
60
+ username = self.username
61
+
62
+ slug = self.slug
63
+
64
+ native_name = self.native_name
65
+
66
+ job_title = self.job_title
67
+
68
+ phone_number = self.phone_number
69
+
70
+ organization = self.organization
71
+
72
+ description = self.description
73
+
74
+ is_staff = self.is_staff
75
+
76
+ is_active = self.is_active
77
+
78
+ is_support = self.is_support
79
+
80
+ token_lifetime: Union[None, Unset, int]
81
+ if isinstance(self.token_lifetime, Unset):
82
+ token_lifetime = UNSET
83
+ else:
84
+ token_lifetime = self.token_lifetime
85
+
86
+ agree_with_policy = self.agree_with_policy
87
+
88
+ notifications_enabled = self.notifications_enabled
89
+
90
+ preferred_language = self.preferred_language
91
+
92
+ first_name = self.first_name
93
+
94
+ last_name = self.last_name
95
+
96
+ image: Union[None, Unset, types.FileTypes]
97
+ if isinstance(self.image, Unset):
98
+ image = UNSET
99
+ elif isinstance(self.image, File):
100
+ image = self.image.to_tuple()
101
+
102
+ else:
103
+ image = self.image
104
+
105
+ field_dict: dict[str, Any] = {}
106
+ field_dict.update(self.additional_properties)
107
+ field_dict.update({})
108
+ if username is not UNSET:
109
+ field_dict["username"] = username
110
+ if slug is not UNSET:
111
+ field_dict["slug"] = slug
112
+ if native_name is not UNSET:
113
+ field_dict["native_name"] = native_name
114
+ if job_title is not UNSET:
115
+ field_dict["job_title"] = job_title
116
+ if phone_number is not UNSET:
117
+ field_dict["phone_number"] = phone_number
118
+ if organization is not UNSET:
119
+ field_dict["organization"] = organization
120
+ if description is not UNSET:
121
+ field_dict["description"] = description
122
+ if is_staff is not UNSET:
123
+ field_dict["is_staff"] = is_staff
124
+ if is_active is not UNSET:
125
+ field_dict["is_active"] = is_active
126
+ if is_support is not UNSET:
127
+ field_dict["is_support"] = is_support
128
+ if token_lifetime is not UNSET:
129
+ field_dict["token_lifetime"] = token_lifetime
130
+ if agree_with_policy is not UNSET:
131
+ field_dict["agree_with_policy"] = agree_with_policy
132
+ if notifications_enabled is not UNSET:
133
+ field_dict["notifications_enabled"] = notifications_enabled
134
+ if preferred_language is not UNSET:
135
+ field_dict["preferred_language"] = preferred_language
136
+ if first_name is not UNSET:
137
+ field_dict["first_name"] = first_name
138
+ if last_name is not UNSET:
139
+ field_dict["last_name"] = last_name
140
+ if image is not UNSET:
141
+ field_dict["image"] = image
142
+
143
+ return field_dict
144
+
145
+ def to_multipart(self) -> types.RequestFiles:
146
+ files: types.RequestFiles = []
147
+
148
+ if not isinstance(self.username, Unset):
149
+ files.append(("username", (None, str(self.username).encode(), "text/plain")))
150
+
151
+ if not isinstance(self.slug, Unset):
152
+ files.append(("slug", (None, str(self.slug).encode(), "text/plain")))
153
+
154
+ if not isinstance(self.native_name, Unset):
155
+ files.append(("native_name", (None, str(self.native_name).encode(), "text/plain")))
156
+
157
+ if not isinstance(self.job_title, Unset):
158
+ files.append(("job_title", (None, str(self.job_title).encode(), "text/plain")))
159
+
160
+ if not isinstance(self.phone_number, Unset):
161
+ files.append(("phone_number", (None, str(self.phone_number).encode(), "text/plain")))
162
+
163
+ if not isinstance(self.organization, Unset):
164
+ files.append(("organization", (None, str(self.organization).encode(), "text/plain")))
165
+
166
+ if not isinstance(self.description, Unset):
167
+ files.append(("description", (None, str(self.description).encode(), "text/plain")))
168
+
169
+ if not isinstance(self.is_staff, Unset):
170
+ files.append(("is_staff", (None, str(self.is_staff).encode(), "text/plain")))
171
+
172
+ if not isinstance(self.is_active, Unset):
173
+ files.append(("is_active", (None, str(self.is_active).encode(), "text/plain")))
174
+
175
+ if not isinstance(self.is_support, Unset):
176
+ files.append(("is_support", (None, str(self.is_support).encode(), "text/plain")))
177
+
178
+ if not isinstance(self.token_lifetime, Unset):
179
+ if isinstance(self.token_lifetime, int):
180
+ files.append(("token_lifetime", (None, str(self.token_lifetime).encode(), "text/plain")))
181
+ else:
182
+ files.append(("token_lifetime", (None, str(self.token_lifetime).encode(), "text/plain")))
183
+
184
+ if not isinstance(self.agree_with_policy, Unset):
185
+ files.append(("agree_with_policy", (None, str(self.agree_with_policy).encode(), "text/plain")))
186
+
187
+ if not isinstance(self.notifications_enabled, Unset):
188
+ files.append(("notifications_enabled", (None, str(self.notifications_enabled).encode(), "text/plain")))
189
+
190
+ if not isinstance(self.preferred_language, Unset):
191
+ files.append(("preferred_language", (None, str(self.preferred_language).encode(), "text/plain")))
192
+
193
+ if not isinstance(self.first_name, Unset):
194
+ files.append(("first_name", (None, str(self.first_name).encode(), "text/plain")))
195
+
196
+ if not isinstance(self.last_name, Unset):
197
+ files.append(("last_name", (None, str(self.last_name).encode(), "text/plain")))
198
+
199
+ if not isinstance(self.image, Unset):
200
+ if isinstance(self.image, File):
201
+ files.append(("image", self.image.to_tuple()))
202
+ else:
203
+ files.append(("image", (None, str(self.image).encode(), "text/plain")))
204
+
205
+ for prop_name, prop in self.additional_properties.items():
206
+ files.append((prop_name, (None, str(prop).encode(), "text/plain")))
207
+
208
+ return files
209
+
210
+ @classmethod
211
+ def from_dict(cls: type[T], src_dict: Mapping[str, Any]) -> T:
212
+ d = dict(src_dict)
213
+ username = d.pop("username", UNSET)
214
+
215
+ slug = d.pop("slug", UNSET)
216
+
217
+ native_name = d.pop("native_name", UNSET)
218
+
219
+ job_title = d.pop("job_title", UNSET)
220
+
221
+ phone_number = d.pop("phone_number", UNSET)
222
+
223
+ organization = d.pop("organization", UNSET)
224
+
225
+ description = d.pop("description", UNSET)
226
+
227
+ is_staff = d.pop("is_staff", UNSET)
228
+
229
+ is_active = d.pop("is_active", UNSET)
230
+
231
+ is_support = d.pop("is_support", UNSET)
232
+
233
+ def _parse_token_lifetime(data: object) -> Union[None, Unset, int]:
234
+ if data is None:
235
+ return data
236
+ if isinstance(data, Unset):
237
+ return data
238
+ return cast(Union[None, Unset, int], data)
239
+
240
+ token_lifetime = _parse_token_lifetime(d.pop("token_lifetime", UNSET))
241
+
242
+ agree_with_policy = d.pop("agree_with_policy", UNSET)
243
+
244
+ notifications_enabled = d.pop("notifications_enabled", UNSET)
245
+
246
+ preferred_language = d.pop("preferred_language", UNSET)
247
+
248
+ first_name = d.pop("first_name", UNSET)
249
+
250
+ last_name = d.pop("last_name", UNSET)
251
+
252
+ def _parse_image(data: object) -> Union[File, None, Unset]:
253
+ if data is None:
254
+ return data
255
+ if isinstance(data, Unset):
256
+ return data
257
+ try:
258
+ if not isinstance(data, bytes):
259
+ raise TypeError()
260
+ image_type_0 = File(payload=BytesIO(data))
261
+
262
+ return image_type_0
263
+ except: # noqa: E722
264
+ pass
265
+ return cast(Union[File, None, Unset], data)
266
+
267
+ image = _parse_image(d.pop("image", UNSET))
268
+
269
+ patched_user_request_multipart = cls(
270
+ username=username,
271
+ slug=slug,
272
+ native_name=native_name,
273
+ job_title=job_title,
274
+ phone_number=phone_number,
275
+ organization=organization,
276
+ description=description,
277
+ is_staff=is_staff,
278
+ is_active=is_active,
279
+ is_support=is_support,
280
+ token_lifetime=token_lifetime,
281
+ agree_with_policy=agree_with_policy,
282
+ notifications_enabled=notifications_enabled,
283
+ preferred_language=preferred_language,
284
+ first_name=first_name,
285
+ last_name=last_name,
286
+ image=image,
287
+ )
288
+
289
+ patched_user_request_multipart.additional_properties = d
290
+ return patched_user_request_multipart
291
+
292
+ @property
293
+ def additional_keys(self) -> list[str]:
294
+ return list(self.additional_properties.keys())
295
+
296
+ def __getitem__(self, key: str) -> Any:
297
+ return self.additional_properties[key]
298
+
299
+ def __setitem__(self, key: str, value: Any) -> None:
300
+ self.additional_properties[key] = value
301
+
302
+ def __delitem__(self, key: str) -> None:
303
+ del self.additional_properties[key]
304
+
305
+ def __contains__(self, key: str) -> bool:
306
+ return key in self.additional_properties
@@ -0,0 +1,113 @@
1
+ import datetime
2
+ from collections.abc import Mapping
3
+ from io import BytesIO
4
+ from typing import Any, TypeVar, Union, cast
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="PaymentRequestForm")
14
+
15
+
16
+ @_attrs_define
17
+ class PaymentRequestForm:
18
+ """
19
+ Attributes:
20
+ profile (str):
21
+ date_of_payment (datetime.date):
22
+ sum_ (Union[Unset, str]):
23
+ proof (Union[File, None, Unset]):
24
+ """
25
+
26
+ profile: str
27
+ date_of_payment: datetime.date
28
+ sum_: Union[Unset, str] = UNSET
29
+ proof: Union[File, None, Unset] = UNSET
30
+ additional_properties: dict[str, Any] = _attrs_field(init=False, factory=dict)
31
+
32
+ def to_dict(self) -> dict[str, Any]:
33
+ profile = self.profile
34
+
35
+ date_of_payment = self.date_of_payment.isoformat()
36
+
37
+ sum_ = self.sum_
38
+
39
+ proof: Union[None, Unset, types.FileTypes]
40
+ if isinstance(self.proof, Unset):
41
+ proof = UNSET
42
+ elif isinstance(self.proof, File):
43
+ proof = self.proof.to_tuple()
44
+
45
+ else:
46
+ proof = self.proof
47
+
48
+ field_dict: dict[str, Any] = {}
49
+ field_dict.update(self.additional_properties)
50
+ field_dict.update(
51
+ {
52
+ "profile": profile,
53
+ "date_of_payment": date_of_payment,
54
+ }
55
+ )
56
+ if sum_ is not UNSET:
57
+ field_dict["sum"] = sum_
58
+ if proof is not UNSET:
59
+ field_dict["proof"] = proof
60
+
61
+ return field_dict
62
+
63
+ @classmethod
64
+ def from_dict(cls: type[T], src_dict: Mapping[str, Any]) -> T:
65
+ d = dict(src_dict)
66
+ profile = d.pop("profile")
67
+
68
+ date_of_payment = isoparse(d.pop("date_of_payment")).date()
69
+
70
+ sum_ = d.pop("sum", UNSET)
71
+
72
+ def _parse_proof(data: object) -> Union[File, None, Unset]:
73
+ if data is None:
74
+ return data
75
+ if isinstance(data, Unset):
76
+ return data
77
+ try:
78
+ if not isinstance(data, bytes):
79
+ raise TypeError()
80
+ proof_type_0 = File(payload=BytesIO(data))
81
+
82
+ return proof_type_0
83
+ except: # noqa: E722
84
+ pass
85
+ return cast(Union[File, None, Unset], data)
86
+
87
+ proof = _parse_proof(d.pop("proof", UNSET))
88
+
89
+ payment_request_form = cls(
90
+ profile=profile,
91
+ date_of_payment=date_of_payment,
92
+ sum_=sum_,
93
+ proof=proof,
94
+ )
95
+
96
+ payment_request_form.additional_properties = d
97
+ return payment_request_form
98
+
99
+ @property
100
+ def additional_keys(self) -> list[str]:
101
+ return list(self.additional_properties.keys())
102
+
103
+ def __getitem__(self, key: str) -> Any:
104
+ return self.additional_properties[key]
105
+
106
+ def __setitem__(self, key: str, value: Any) -> None:
107
+ self.additional_properties[key] = value
108
+
109
+ def __delitem__(self, key: str) -> None:
110
+ del self.additional_properties[key]
111
+
112
+ def __contains__(self, key: str) -> bool:
113
+ return key in self.additional_properties