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,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
@@ -0,0 +1,122 @@
1
+ from collections.abc import Mapping
2
+ from io import BytesIO
3
+ from typing import Any, TypeVar, Union, cast
4
+
5
+ from attrs import define as _attrs_define
6
+ from attrs import field as _attrs_field
7
+
8
+ from .. import types
9
+ from ..types import UNSET, File, Unset
10
+
11
+ T = TypeVar("T", bound="PatchedChecklistCategoryRequestMultipart")
12
+
13
+
14
+ @_attrs_define
15
+ class PatchedChecklistCategoryRequestMultipart:
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
+ def to_multipart(self) -> types.RequestFiles:
55
+ files: types.RequestFiles = []
56
+
57
+ if not isinstance(self.icon, Unset):
58
+ if isinstance(self.icon, File):
59
+ files.append(("icon", self.icon.to_tuple()))
60
+ else:
61
+ files.append(("icon", (None, str(self.icon).encode(), "text/plain")))
62
+
63
+ if not isinstance(self.name, Unset):
64
+ files.append(("name", (None, str(self.name).encode(), "text/plain")))
65
+
66
+ if not isinstance(self.description, Unset):
67
+ files.append(("description", (None, str(self.description).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
+
78
+ def _parse_icon(data: object) -> Union[File, None, Unset]:
79
+ if data is None:
80
+ return data
81
+ if isinstance(data, Unset):
82
+ return data
83
+ try:
84
+ if not isinstance(data, bytes):
85
+ raise TypeError()
86
+ icon_type_0 = File(payload=BytesIO(data))
87
+
88
+ return icon_type_0
89
+ except: # noqa: E722
90
+ pass
91
+ return cast(Union[File, None, Unset], data)
92
+
93
+ icon = _parse_icon(d.pop("icon", UNSET))
94
+
95
+ name = d.pop("name", UNSET)
96
+
97
+ description = d.pop("description", UNSET)
98
+
99
+ patched_checklist_category_request_multipart = cls(
100
+ icon=icon,
101
+ name=name,
102
+ description=description,
103
+ )
104
+
105
+ patched_checklist_category_request_multipart.additional_properties = d
106
+ return patched_checklist_category_request_multipart
107
+
108
+ @property
109
+ def additional_keys(self) -> list[str]:
110
+ return list(self.additional_properties.keys())
111
+
112
+ def __getitem__(self, key: str) -> Any:
113
+ return self.additional_properties[key]
114
+
115
+ def __setitem__(self, key: str, value: Any) -> None:
116
+ self.additional_properties[key] = value
117
+
118
+ def __delitem__(self, key: str) -> None:
119
+ del self.additional_properties[key]
120
+
121
+ def __contains__(self, key: str) -> bool:
122
+ return key in self.additional_properties
@@ -37,6 +37,7 @@ class PatchedCustomerRequest:
37
37
  longitude (Union[None, Unset, float]):
38
38
  bank_account (Union[Unset, str]):
39
39
  country (Union[BlankEnum, CountryEnum, Unset]):
40
+ notification_emails (Union[Unset, str]): Comma-separated list of notification email addresses
40
41
  """
41
42
 
42
43
  backend_id: Union[Unset, str] = UNSET
@@ -59,6 +60,7 @@ class PatchedCustomerRequest:
59
60
  longitude: Union[None, Unset, float] = UNSET
60
61
  bank_account: Union[Unset, str] = UNSET
61
62
  country: Union[BlankEnum, CountryEnum, Unset] = UNSET
63
+ notification_emails: Union[Unset, str] = UNSET
62
64
  additional_properties: dict[str, Any] = _attrs_field(init=False, factory=dict)
63
65
 
64
66
  def to_dict(self) -> dict[str, Any]:
@@ -123,6 +125,8 @@ class PatchedCustomerRequest:
123
125
  else:
124
126
  country = self.country.value
125
127
 
128
+ notification_emails = self.notification_emails
129
+
126
130
  field_dict: dict[str, Any] = {}
127
131
  field_dict.update(self.additional_properties)
128
132
  field_dict.update({})
@@ -166,6 +170,8 @@ class PatchedCustomerRequest:
166
170
  field_dict["bank_account"] = bank_account
167
171
  if country is not UNSET:
168
172
  field_dict["country"] = country
173
+ if notification_emails is not UNSET:
174
+ field_dict["notification_emails"] = notification_emails
169
175
 
170
176
  return field_dict
171
177
 
@@ -258,6 +264,8 @@ class PatchedCustomerRequest:
258
264
 
259
265
  country = _parse_country(d.pop("country", UNSET))
260
266
 
267
+ notification_emails = d.pop("notification_emails", UNSET)
268
+
261
269
  patched_customer_request = cls(
262
270
  backend_id=backend_id,
263
271
  image=image,
@@ -279,6 +287,7 @@ class PatchedCustomerRequest:
279
287
  longitude=longitude,
280
288
  bank_account=bank_account,
281
289
  country=country,
290
+ notification_emails=notification_emails,
282
291
  )
283
292
 
284
293
  patched_customer_request.additional_properties = d
@@ -0,0 +1,310 @@
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 ..models.blank_enum import BlankEnum
10
+ from ..models.country_enum import CountryEnum
11
+ from ..types import UNSET, File, Unset
12
+
13
+ T = TypeVar("T", bound="PatchedCustomerRequestForm")
14
+
15
+
16
+ @_attrs_define
17
+ class PatchedCustomerRequestForm:
18
+ """
19
+ Attributes:
20
+ backend_id (Union[Unset, str]): Organization identifier in another application.
21
+ image (Union[File, None, Unset]):
22
+ name (Union[Unset, str]):
23
+ slug (Union[Unset, str]):
24
+ native_name (Union[Unset, str]):
25
+ abbreviation (Union[Unset, str]):
26
+ description (Union[Unset, str]):
27
+ contact_details (Union[Unset, str]):
28
+ email (Union[Unset, str]):
29
+ phone_number (Union[Unset, str]):
30
+ registration_code (Union[Unset, str]):
31
+ homepage (Union[Unset, str]):
32
+ vat_code (Union[Unset, str]): VAT number
33
+ postal (Union[Unset, str]):
34
+ address (Union[Unset, str]):
35
+ bank_name (Union[Unset, str]):
36
+ latitude (Union[None, Unset, float]):
37
+ longitude (Union[None, Unset, float]):
38
+ bank_account (Union[Unset, str]):
39
+ country (Union[BlankEnum, CountryEnum, Unset]):
40
+ notification_emails (Union[Unset, str]): Comma-separated list of notification email addresses
41
+ """
42
+
43
+ backend_id: Union[Unset, str] = UNSET
44
+ image: Union[File, None, Unset] = UNSET
45
+ name: Union[Unset, str] = UNSET
46
+ slug: Union[Unset, str] = UNSET
47
+ native_name: Union[Unset, str] = UNSET
48
+ abbreviation: Union[Unset, str] = UNSET
49
+ description: Union[Unset, str] = UNSET
50
+ contact_details: Union[Unset, str] = UNSET
51
+ email: Union[Unset, str] = UNSET
52
+ phone_number: Union[Unset, str] = UNSET
53
+ registration_code: Union[Unset, str] = UNSET
54
+ homepage: Union[Unset, str] = UNSET
55
+ vat_code: Union[Unset, str] = UNSET
56
+ postal: Union[Unset, str] = UNSET
57
+ address: Union[Unset, str] = UNSET
58
+ bank_name: Union[Unset, str] = UNSET
59
+ latitude: Union[None, Unset, float] = UNSET
60
+ longitude: Union[None, Unset, float] = UNSET
61
+ bank_account: Union[Unset, str] = UNSET
62
+ country: Union[BlankEnum, CountryEnum, Unset] = UNSET
63
+ notification_emails: Union[Unset, str] = UNSET
64
+ additional_properties: dict[str, Any] = _attrs_field(init=False, factory=dict)
65
+
66
+ def to_dict(self) -> dict[str, Any]:
67
+ backend_id = self.backend_id
68
+
69
+ image: Union[None, Unset, types.FileTypes]
70
+ if isinstance(self.image, Unset):
71
+ image = UNSET
72
+ elif isinstance(self.image, File):
73
+ image = self.image.to_tuple()
74
+
75
+ else:
76
+ image = self.image
77
+
78
+ name = self.name
79
+
80
+ slug = self.slug
81
+
82
+ native_name = self.native_name
83
+
84
+ abbreviation = self.abbreviation
85
+
86
+ description = self.description
87
+
88
+ contact_details = self.contact_details
89
+
90
+ email = self.email
91
+
92
+ phone_number = self.phone_number
93
+
94
+ registration_code = self.registration_code
95
+
96
+ homepage = self.homepage
97
+
98
+ vat_code = self.vat_code
99
+
100
+ postal = self.postal
101
+
102
+ address = self.address
103
+
104
+ bank_name = self.bank_name
105
+
106
+ latitude: Union[None, Unset, float]
107
+ if isinstance(self.latitude, Unset):
108
+ latitude = UNSET
109
+ else:
110
+ latitude = self.latitude
111
+
112
+ longitude: Union[None, Unset, float]
113
+ if isinstance(self.longitude, Unset):
114
+ longitude = UNSET
115
+ else:
116
+ longitude = self.longitude
117
+
118
+ bank_account = self.bank_account
119
+
120
+ country: Union[Unset, str]
121
+ if isinstance(self.country, Unset):
122
+ country = UNSET
123
+ elif isinstance(self.country, CountryEnum):
124
+ country = self.country.value
125
+ else:
126
+ country = self.country.value
127
+
128
+ notification_emails = self.notification_emails
129
+
130
+ field_dict: dict[str, Any] = {}
131
+ field_dict.update(self.additional_properties)
132
+ field_dict.update({})
133
+ if backend_id is not UNSET:
134
+ field_dict["backend_id"] = backend_id
135
+ if image is not UNSET:
136
+ field_dict["image"] = image
137
+ if name is not UNSET:
138
+ field_dict["name"] = name
139
+ if slug is not UNSET:
140
+ field_dict["slug"] = slug
141
+ if native_name is not UNSET:
142
+ field_dict["native_name"] = native_name
143
+ if abbreviation is not UNSET:
144
+ field_dict["abbreviation"] = abbreviation
145
+ if description is not UNSET:
146
+ field_dict["description"] = description
147
+ if contact_details is not UNSET:
148
+ field_dict["contact_details"] = contact_details
149
+ if email is not UNSET:
150
+ field_dict["email"] = email
151
+ if phone_number is not UNSET:
152
+ field_dict["phone_number"] = phone_number
153
+ if registration_code is not UNSET:
154
+ field_dict["registration_code"] = registration_code
155
+ if homepage is not UNSET:
156
+ field_dict["homepage"] = homepage
157
+ if vat_code is not UNSET:
158
+ field_dict["vat_code"] = vat_code
159
+ if postal is not UNSET:
160
+ field_dict["postal"] = postal
161
+ if address is not UNSET:
162
+ field_dict["address"] = address
163
+ if bank_name is not UNSET:
164
+ field_dict["bank_name"] = bank_name
165
+ if latitude is not UNSET:
166
+ field_dict["latitude"] = latitude
167
+ if longitude is not UNSET:
168
+ field_dict["longitude"] = longitude
169
+ if bank_account is not UNSET:
170
+ field_dict["bank_account"] = bank_account
171
+ if country is not UNSET:
172
+ field_dict["country"] = country
173
+ if notification_emails is not UNSET:
174
+ field_dict["notification_emails"] = notification_emails
175
+
176
+ return field_dict
177
+
178
+ @classmethod
179
+ def from_dict(cls: type[T], src_dict: Mapping[str, Any]) -> T:
180
+ d = dict(src_dict)
181
+ backend_id = d.pop("backend_id", UNSET)
182
+
183
+ def _parse_image(data: object) -> Union[File, None, Unset]:
184
+ if data is None:
185
+ return data
186
+ if isinstance(data, Unset):
187
+ return data
188
+ try:
189
+ if not isinstance(data, bytes):
190
+ raise TypeError()
191
+ image_type_0 = File(payload=BytesIO(data))
192
+
193
+ return image_type_0
194
+ except: # noqa: E722
195
+ pass
196
+ return cast(Union[File, None, Unset], data)
197
+
198
+ image = _parse_image(d.pop("image", UNSET))
199
+
200
+ name = d.pop("name", UNSET)
201
+
202
+ slug = d.pop("slug", UNSET)
203
+
204
+ native_name = d.pop("native_name", UNSET)
205
+
206
+ abbreviation = d.pop("abbreviation", UNSET)
207
+
208
+ description = d.pop("description", UNSET)
209
+
210
+ contact_details = d.pop("contact_details", UNSET)
211
+
212
+ email = d.pop("email", UNSET)
213
+
214
+ phone_number = d.pop("phone_number", UNSET)
215
+
216
+ registration_code = d.pop("registration_code", UNSET)
217
+
218
+ homepage = d.pop("homepage", UNSET)
219
+
220
+ vat_code = d.pop("vat_code", UNSET)
221
+
222
+ postal = d.pop("postal", UNSET)
223
+
224
+ address = d.pop("address", UNSET)
225
+
226
+ bank_name = d.pop("bank_name", UNSET)
227
+
228
+ def _parse_latitude(data: object) -> Union[None, Unset, float]:
229
+ if data is None:
230
+ return data
231
+ if isinstance(data, Unset):
232
+ return data
233
+ return cast(Union[None, Unset, float], data)
234
+
235
+ latitude = _parse_latitude(d.pop("latitude", UNSET))
236
+
237
+ def _parse_longitude(data: object) -> Union[None, Unset, float]:
238
+ if data is None:
239
+ return data
240
+ if isinstance(data, Unset):
241
+ return data
242
+ return cast(Union[None, Unset, float], data)
243
+
244
+ longitude = _parse_longitude(d.pop("longitude", UNSET))
245
+
246
+ bank_account = d.pop("bank_account", UNSET)
247
+
248
+ def _parse_country(data: object) -> Union[BlankEnum, CountryEnum, Unset]:
249
+ if isinstance(data, Unset):
250
+ return data
251
+ try:
252
+ if not isinstance(data, str):
253
+ raise TypeError()
254
+ country_type_0 = CountryEnum(data)
255
+
256
+ return country_type_0
257
+ except: # noqa: E722
258
+ pass
259
+ if not isinstance(data, str):
260
+ raise TypeError()
261
+ country_type_1 = BlankEnum(data)
262
+
263
+ return country_type_1
264
+
265
+ country = _parse_country(d.pop("country", UNSET))
266
+
267
+ notification_emails = d.pop("notification_emails", UNSET)
268
+
269
+ patched_customer_request_form = cls(
270
+ backend_id=backend_id,
271
+ image=image,
272
+ name=name,
273
+ slug=slug,
274
+ native_name=native_name,
275
+ abbreviation=abbreviation,
276
+ description=description,
277
+ contact_details=contact_details,
278
+ email=email,
279
+ phone_number=phone_number,
280
+ registration_code=registration_code,
281
+ homepage=homepage,
282
+ vat_code=vat_code,
283
+ postal=postal,
284
+ address=address,
285
+ bank_name=bank_name,
286
+ latitude=latitude,
287
+ longitude=longitude,
288
+ bank_account=bank_account,
289
+ country=country,
290
+ notification_emails=notification_emails,
291
+ )
292
+
293
+ patched_customer_request_form.additional_properties = d
294
+ return patched_customer_request_form
295
+
296
+ @property
297
+ def additional_keys(self) -> list[str]:
298
+ return list(self.additional_properties.keys())
299
+
300
+ def __getitem__(self, key: str) -> Any:
301
+ return self.additional_properties[key]
302
+
303
+ def __setitem__(self, key: str, value: Any) -> None:
304
+ self.additional_properties[key] = value
305
+
306
+ def __delitem__(self, key: str) -> None:
307
+ del self.additional_properties[key]
308
+
309
+ def __contains__(self, key: str) -> bool:
310
+ return key in self.additional_properties