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,142 @@
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="PatchedPaymentRequestMultipart")
14
+
15
+
16
+ @_attrs_define
17
+ class PatchedPaymentRequestMultipart:
18
+ """
19
+ Attributes:
20
+ profile (Union[Unset, str]):
21
+ date_of_payment (Union[Unset, datetime.date]):
22
+ sum_ (Union[Unset, str]):
23
+ proof (Union[File, None, Unset]):
24
+ """
25
+
26
+ profile: Union[Unset, str] = UNSET
27
+ date_of_payment: Union[Unset, datetime.date] = UNSET
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: Union[Unset, str] = UNSET
36
+ if not isinstance(self.date_of_payment, Unset):
37
+ date_of_payment = self.date_of_payment.isoformat()
38
+
39
+ sum_ = self.sum_
40
+
41
+ proof: Union[None, Unset, types.FileTypes]
42
+ if isinstance(self.proof, Unset):
43
+ proof = UNSET
44
+ elif isinstance(self.proof, File):
45
+ proof = self.proof.to_tuple()
46
+
47
+ else:
48
+ proof = self.proof
49
+
50
+ field_dict: dict[str, Any] = {}
51
+ field_dict.update(self.additional_properties)
52
+ field_dict.update({})
53
+ if profile is not UNSET:
54
+ field_dict["profile"] = profile
55
+ if date_of_payment is not UNSET:
56
+ field_dict["date_of_payment"] = date_of_payment
57
+ if sum_ is not UNSET:
58
+ field_dict["sum"] = sum_
59
+ if proof is not UNSET:
60
+ field_dict["proof"] = proof
61
+
62
+ return field_dict
63
+
64
+ def to_multipart(self) -> types.RequestFiles:
65
+ files: types.RequestFiles = []
66
+
67
+ if not isinstance(self.profile, Unset):
68
+ files.append(("profile", (None, str(self.profile).encode(), "text/plain")))
69
+
70
+ if not isinstance(self.date_of_payment, Unset):
71
+ files.append(("date_of_payment", (None, self.date_of_payment.isoformat().encode(), "text/plain")))
72
+
73
+ if not isinstance(self.sum_, Unset):
74
+ files.append(("sum", (None, str(self.sum_).encode(), "text/plain")))
75
+
76
+ if not isinstance(self.proof, Unset):
77
+ if isinstance(self.proof, File):
78
+ files.append(("proof", self.proof.to_tuple()))
79
+ else:
80
+ files.append(("proof", (None, str(self.proof).encode(), "text/plain")))
81
+
82
+ for prop_name, prop in self.additional_properties.items():
83
+ files.append((prop_name, (None, str(prop).encode(), "text/plain")))
84
+
85
+ return files
86
+
87
+ @classmethod
88
+ def from_dict(cls: type[T], src_dict: Mapping[str, Any]) -> T:
89
+ d = dict(src_dict)
90
+ profile = d.pop("profile", UNSET)
91
+
92
+ _date_of_payment = d.pop("date_of_payment", UNSET)
93
+ date_of_payment: Union[Unset, datetime.date]
94
+ if isinstance(_date_of_payment, Unset):
95
+ date_of_payment = UNSET
96
+ else:
97
+ date_of_payment = isoparse(_date_of_payment).date()
98
+
99
+ sum_ = d.pop("sum", UNSET)
100
+
101
+ def _parse_proof(data: object) -> Union[File, None, Unset]:
102
+ if data is None:
103
+ return data
104
+ if isinstance(data, Unset):
105
+ return data
106
+ try:
107
+ if not isinstance(data, bytes):
108
+ raise TypeError()
109
+ proof_type_0 = File(payload=BytesIO(data))
110
+
111
+ return proof_type_0
112
+ except: # noqa: E722
113
+ pass
114
+ return cast(Union[File, None, Unset], data)
115
+
116
+ proof = _parse_proof(d.pop("proof", UNSET))
117
+
118
+ patched_payment_request_multipart = cls(
119
+ profile=profile,
120
+ date_of_payment=date_of_payment,
121
+ sum_=sum_,
122
+ proof=proof,
123
+ )
124
+
125
+ patched_payment_request_multipart.additional_properties = d
126
+ return patched_payment_request_multipart
127
+
128
+ @property
129
+ def additional_keys(self) -> list[str]:
130
+ return list(self.additional_properties.keys())
131
+
132
+ def __getitem__(self, key: str) -> Any:
133
+ return self.additional_properties[key]
134
+
135
+ def __setitem__(self, key: str, value: Any) -> None:
136
+ self.additional_properties[key] = value
137
+
138
+ def __delitem__(self, key: str) -> None:
139
+ del self.additional_properties[key]
140
+
141
+ def __contains__(self, key: str) -> bool:
142
+ return key in self.additional_properties
@@ -0,0 +1,279 @@
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 ..models.blank_enum import BlankEnum
12
+ from ..models.kind_enum import KindEnum
13
+ from ..models.oecd_fos_2007_code_enum import OecdFos2007CodeEnum
14
+ from ..types import UNSET, File, Unset
15
+
16
+ T = TypeVar("T", bound="PatchedProjectRequestForm")
17
+
18
+
19
+ @_attrs_define
20
+ class PatchedProjectRequestForm:
21
+ """
22
+ Attributes:
23
+ name (Union[Unset, str]):
24
+ slug (Union[Unset, str]):
25
+ customer (Union[Unset, str]):
26
+ description (Union[Unset, str]):
27
+ type_ (Union[None, Unset, str]):
28
+ backend_id (Union[Unset, str]):
29
+ start_date (Union[None, Unset, datetime.date]):
30
+ end_date (Union[None, Unset, datetime.date]): The date is inclusive. Once reached, all project resource will be
31
+ scheduled for termination.
32
+ oecd_fos_2007_code (Union[BlankEnum, None, OecdFos2007CodeEnum, Unset]):
33
+ is_industry (Union[Unset, bool]):
34
+ image (Union[File, None, Unset]):
35
+ kind (Union[Unset, KindEnum]):
36
+ """
37
+
38
+ name: Union[Unset, str] = UNSET
39
+ slug: Union[Unset, str] = UNSET
40
+ customer: Union[Unset, str] = UNSET
41
+ description: Union[Unset, str] = UNSET
42
+ type_: Union[None, Unset, str] = UNSET
43
+ backend_id: Union[Unset, str] = UNSET
44
+ start_date: Union[None, Unset, datetime.date] = UNSET
45
+ end_date: Union[None, Unset, datetime.date] = UNSET
46
+ oecd_fos_2007_code: Union[BlankEnum, None, OecdFos2007CodeEnum, Unset] = UNSET
47
+ is_industry: Union[Unset, bool] = UNSET
48
+ image: Union[File, None, Unset] = UNSET
49
+ kind: Union[Unset, KindEnum] = UNSET
50
+ additional_properties: dict[str, Any] = _attrs_field(init=False, factory=dict)
51
+
52
+ def to_dict(self) -> dict[str, Any]:
53
+ name = self.name
54
+
55
+ slug = self.slug
56
+
57
+ customer = self.customer
58
+
59
+ description = self.description
60
+
61
+ type_: Union[None, Unset, str]
62
+ if isinstance(self.type_, Unset):
63
+ type_ = UNSET
64
+ else:
65
+ type_ = self.type_
66
+
67
+ backend_id = self.backend_id
68
+
69
+ start_date: Union[None, Unset, str]
70
+ if isinstance(self.start_date, Unset):
71
+ start_date = UNSET
72
+ elif isinstance(self.start_date, datetime.date):
73
+ start_date = self.start_date.isoformat()
74
+ else:
75
+ start_date = self.start_date
76
+
77
+ end_date: Union[None, Unset, str]
78
+ if isinstance(self.end_date, Unset):
79
+ end_date = UNSET
80
+ elif isinstance(self.end_date, datetime.date):
81
+ end_date = self.end_date.isoformat()
82
+ else:
83
+ end_date = self.end_date
84
+
85
+ oecd_fos_2007_code: Union[None, Unset, str]
86
+ if isinstance(self.oecd_fos_2007_code, Unset):
87
+ oecd_fos_2007_code = UNSET
88
+ elif isinstance(self.oecd_fos_2007_code, OecdFos2007CodeEnum):
89
+ oecd_fos_2007_code = self.oecd_fos_2007_code.value
90
+ elif isinstance(self.oecd_fos_2007_code, BlankEnum):
91
+ oecd_fos_2007_code = self.oecd_fos_2007_code.value
92
+ else:
93
+ oecd_fos_2007_code = self.oecd_fos_2007_code
94
+
95
+ is_industry = self.is_industry
96
+
97
+ image: Union[None, Unset, types.FileTypes]
98
+ if isinstance(self.image, Unset):
99
+ image = UNSET
100
+ elif isinstance(self.image, File):
101
+ image = self.image.to_tuple()
102
+
103
+ else:
104
+ image = self.image
105
+
106
+ kind: Union[Unset, str] = UNSET
107
+ if not isinstance(self.kind, Unset):
108
+ kind = self.kind.value
109
+
110
+ field_dict: dict[str, Any] = {}
111
+ field_dict.update(self.additional_properties)
112
+ field_dict.update({})
113
+ if name is not UNSET:
114
+ field_dict["name"] = name
115
+ if slug is not UNSET:
116
+ field_dict["slug"] = slug
117
+ if customer is not UNSET:
118
+ field_dict["customer"] = customer
119
+ if description is not UNSET:
120
+ field_dict["description"] = description
121
+ if type_ is not UNSET:
122
+ field_dict["type"] = type_
123
+ if backend_id is not UNSET:
124
+ field_dict["backend_id"] = backend_id
125
+ if start_date is not UNSET:
126
+ field_dict["start_date"] = start_date
127
+ if end_date is not UNSET:
128
+ field_dict["end_date"] = end_date
129
+ if oecd_fos_2007_code is not UNSET:
130
+ field_dict["oecd_fos_2007_code"] = oecd_fos_2007_code
131
+ if is_industry is not UNSET:
132
+ field_dict["is_industry"] = is_industry
133
+ if image is not UNSET:
134
+ field_dict["image"] = image
135
+ if kind is not UNSET:
136
+ field_dict["kind"] = kind
137
+
138
+ return field_dict
139
+
140
+ @classmethod
141
+ def from_dict(cls: type[T], src_dict: Mapping[str, Any]) -> T:
142
+ d = dict(src_dict)
143
+ name = d.pop("name", UNSET)
144
+
145
+ slug = d.pop("slug", UNSET)
146
+
147
+ customer = d.pop("customer", UNSET)
148
+
149
+ description = d.pop("description", UNSET)
150
+
151
+ def _parse_type_(data: object) -> Union[None, Unset, str]:
152
+ if data is None:
153
+ return data
154
+ if isinstance(data, Unset):
155
+ return data
156
+ return cast(Union[None, Unset, str], data)
157
+
158
+ type_ = _parse_type_(d.pop("type", UNSET))
159
+
160
+ backend_id = d.pop("backend_id", UNSET)
161
+
162
+ def _parse_start_date(data: object) -> Union[None, Unset, datetime.date]:
163
+ if data is None:
164
+ return data
165
+ if isinstance(data, Unset):
166
+ return data
167
+ try:
168
+ if not isinstance(data, str):
169
+ raise TypeError()
170
+ start_date_type_0 = isoparse(data).date()
171
+
172
+ return start_date_type_0
173
+ except: # noqa: E722
174
+ pass
175
+ return cast(Union[None, Unset, datetime.date], data)
176
+
177
+ start_date = _parse_start_date(d.pop("start_date", UNSET))
178
+
179
+ def _parse_end_date(data: object) -> Union[None, Unset, datetime.date]:
180
+ if data is None:
181
+ return data
182
+ if isinstance(data, Unset):
183
+ return data
184
+ try:
185
+ if not isinstance(data, str):
186
+ raise TypeError()
187
+ end_date_type_0 = isoparse(data).date()
188
+
189
+ return end_date_type_0
190
+ except: # noqa: E722
191
+ pass
192
+ return cast(Union[None, Unset, datetime.date], data)
193
+
194
+ end_date = _parse_end_date(d.pop("end_date", UNSET))
195
+
196
+ def _parse_oecd_fos_2007_code(data: object) -> Union[BlankEnum, None, OecdFos2007CodeEnum, Unset]:
197
+ if data is None:
198
+ return data
199
+ if isinstance(data, Unset):
200
+ return data
201
+ try:
202
+ if not isinstance(data, str):
203
+ raise TypeError()
204
+ oecd_fos_2007_code_type_0 = OecdFos2007CodeEnum(data)
205
+
206
+ return oecd_fos_2007_code_type_0
207
+ except: # noqa: E722
208
+ pass
209
+ try:
210
+ if not isinstance(data, str):
211
+ raise TypeError()
212
+ oecd_fos_2007_code_type_1 = BlankEnum(data)
213
+
214
+ return oecd_fos_2007_code_type_1
215
+ except: # noqa: E722
216
+ pass
217
+ return cast(Union[BlankEnum, None, OecdFos2007CodeEnum, Unset], data)
218
+
219
+ oecd_fos_2007_code = _parse_oecd_fos_2007_code(d.pop("oecd_fos_2007_code", UNSET))
220
+
221
+ is_industry = d.pop("is_industry", UNSET)
222
+
223
+ def _parse_image(data: object) -> Union[File, None, Unset]:
224
+ if data is None:
225
+ return data
226
+ if isinstance(data, Unset):
227
+ return data
228
+ try:
229
+ if not isinstance(data, bytes):
230
+ raise TypeError()
231
+ image_type_0 = File(payload=BytesIO(data))
232
+
233
+ return image_type_0
234
+ except: # noqa: E722
235
+ pass
236
+ return cast(Union[File, None, Unset], data)
237
+
238
+ image = _parse_image(d.pop("image", UNSET))
239
+
240
+ _kind = d.pop("kind", UNSET)
241
+ kind: Union[Unset, KindEnum]
242
+ if isinstance(_kind, Unset):
243
+ kind = UNSET
244
+ else:
245
+ kind = KindEnum(_kind)
246
+
247
+ patched_project_request_form = cls(
248
+ name=name,
249
+ slug=slug,
250
+ customer=customer,
251
+ description=description,
252
+ type_=type_,
253
+ backend_id=backend_id,
254
+ start_date=start_date,
255
+ end_date=end_date,
256
+ oecd_fos_2007_code=oecd_fos_2007_code,
257
+ is_industry=is_industry,
258
+ image=image,
259
+ kind=kind,
260
+ )
261
+
262
+ patched_project_request_form.additional_properties = d
263
+ return patched_project_request_form
264
+
265
+ @property
266
+ def additional_keys(self) -> list[str]:
267
+ return list(self.additional_properties.keys())
268
+
269
+ def __getitem__(self, key: str) -> Any:
270
+ return self.additional_properties[key]
271
+
272
+ def __setitem__(self, key: str, value: Any) -> None:
273
+ self.additional_properties[key] = value
274
+
275
+ def __delitem__(self, key: str) -> None:
276
+ del self.additional_properties[key]
277
+
278
+ def __contains__(self, key: str) -> bool:
279
+ return key in self.additional_properties