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,87 @@
1
+ from collections.abc import Mapping
2
+ from io import BytesIO
3
+ from typing import Any, TypeVar, Union
4
+
5
+ from attrs import define as _attrs_define
6
+ from attrs import field as _attrs_field
7
+
8
+ from ..types import UNSET, File, Unset
9
+
10
+ T = TypeVar("T", bound="ScreenshotRequestForm")
11
+
12
+
13
+ @_attrs_define
14
+ class ScreenshotRequestForm:
15
+ """
16
+ Attributes:
17
+ name (str):
18
+ image (File):
19
+ offering (str):
20
+ description (Union[Unset, str]):
21
+ """
22
+
23
+ name: str
24
+ image: File
25
+ offering: str
26
+ description: Union[Unset, str] = UNSET
27
+ additional_properties: dict[str, Any] = _attrs_field(init=False, factory=dict)
28
+
29
+ def to_dict(self) -> dict[str, Any]:
30
+ name = self.name
31
+
32
+ image = self.image.to_tuple()
33
+
34
+ offering = self.offering
35
+
36
+ description = self.description
37
+
38
+ field_dict: dict[str, Any] = {}
39
+ field_dict.update(self.additional_properties)
40
+ field_dict.update(
41
+ {
42
+ "name": name,
43
+ "image": image,
44
+ "offering": offering,
45
+ }
46
+ )
47
+ if description is not UNSET:
48
+ field_dict["description"] = description
49
+
50
+ return field_dict
51
+
52
+ @classmethod
53
+ def from_dict(cls: type[T], src_dict: Mapping[str, Any]) -> T:
54
+ d = dict(src_dict)
55
+ name = d.pop("name")
56
+
57
+ image = File(payload=BytesIO(d.pop("image")))
58
+
59
+ offering = d.pop("offering")
60
+
61
+ description = d.pop("description", UNSET)
62
+
63
+ screenshot_request_form = cls(
64
+ name=name,
65
+ image=image,
66
+ offering=offering,
67
+ description=description,
68
+ )
69
+
70
+ screenshot_request_form.additional_properties = d
71
+ return screenshot_request_form
72
+
73
+ @property
74
+ def additional_keys(self) -> list[str]:
75
+ return list(self.additional_properties.keys())
76
+
77
+ def __getitem__(self, key: str) -> Any:
78
+ return self.additional_properties[key]
79
+
80
+ def __setitem__(self, key: str, value: Any) -> None:
81
+ self.additional_properties[key] = value
82
+
83
+ def __delitem__(self, key: str) -> None:
84
+ del self.additional_properties[key]
85
+
86
+ def __contains__(self, key: str) -> bool:
87
+ return key in self.additional_properties
@@ -0,0 +1,105 @@
1
+ from collections.abc import Mapping
2
+ from io import BytesIO
3
+ from typing import Any, TypeVar, Union
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="ScreenshotRequestMultipart")
12
+
13
+
14
+ @_attrs_define
15
+ class ScreenshotRequestMultipart:
16
+ """
17
+ Attributes:
18
+ name (str):
19
+ image (File):
20
+ offering (str):
21
+ description (Union[Unset, str]):
22
+ """
23
+
24
+ name: str
25
+ image: File
26
+ offering: str
27
+ description: Union[Unset, str] = UNSET
28
+ additional_properties: dict[str, Any] = _attrs_field(init=False, factory=dict)
29
+
30
+ def to_dict(self) -> dict[str, Any]:
31
+ name = self.name
32
+
33
+ image = self.image.to_tuple()
34
+
35
+ offering = self.offering
36
+
37
+ description = self.description
38
+
39
+ field_dict: dict[str, Any] = {}
40
+ field_dict.update(self.additional_properties)
41
+ field_dict.update(
42
+ {
43
+ "name": name,
44
+ "image": image,
45
+ "offering": offering,
46
+ }
47
+ )
48
+ if description is not UNSET:
49
+ field_dict["description"] = description
50
+
51
+ return field_dict
52
+
53
+ def to_multipart(self) -> types.RequestFiles:
54
+ files: types.RequestFiles = []
55
+
56
+ files.append(("name", (None, str(self.name).encode(), "text/plain")))
57
+
58
+ files.append(("image", self.image.to_tuple()))
59
+
60
+ files.append(("offering", (None, str(self.offering).encode(), "text/plain")))
61
+
62
+ if not isinstance(self.description, Unset):
63
+ files.append(("description", (None, str(self.description).encode(), "text/plain")))
64
+
65
+ for prop_name, prop in self.additional_properties.items():
66
+ files.append((prop_name, (None, str(prop).encode(), "text/plain")))
67
+
68
+ return files
69
+
70
+ @classmethod
71
+ def from_dict(cls: type[T], src_dict: Mapping[str, Any]) -> T:
72
+ d = dict(src_dict)
73
+ name = d.pop("name")
74
+
75
+ image = File(payload=BytesIO(d.pop("image")))
76
+
77
+ offering = d.pop("offering")
78
+
79
+ description = d.pop("description", UNSET)
80
+
81
+ screenshot_request_multipart = cls(
82
+ name=name,
83
+ image=image,
84
+ offering=offering,
85
+ description=description,
86
+ )
87
+
88
+ screenshot_request_multipart.additional_properties = d
89
+ return screenshot_request_multipart
90
+
91
+ @property
92
+ def additional_keys(self) -> list[str]:
93
+ return list(self.additional_properties.keys())
94
+
95
+ def __getitem__(self, key: str) -> Any:
96
+ return self.additional_properties[key]
97
+
98
+ def __setitem__(self, key: str, value: Any) -> None:
99
+ self.additional_properties[key] = value
100
+
101
+ def __delitem__(self, key: str) -> None:
102
+ del self.additional_properties[key]
103
+
104
+ def __contains__(self, key: str) -> bool:
105
+ return key in self.additional_properties
@@ -0,0 +1,112 @@
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="ServiceProviderRequestForm")
12
+
13
+
14
+ @_attrs_define
15
+ class ServiceProviderRequestForm:
16
+ """
17
+ Attributes:
18
+ customer (str):
19
+ description (Union[Unset, str]):
20
+ enable_notifications (Union[Unset, bool]):
21
+ image (Union[File, None, Unset]):
22
+ """
23
+
24
+ customer: str
25
+ description: Union[Unset, str] = UNSET
26
+ enable_notifications: Union[Unset, bool] = UNSET
27
+ image: Union[File, None, Unset] = UNSET
28
+ additional_properties: dict[str, Any] = _attrs_field(init=False, factory=dict)
29
+
30
+ def to_dict(self) -> dict[str, Any]:
31
+ customer = self.customer
32
+
33
+ description = self.description
34
+
35
+ enable_notifications = self.enable_notifications
36
+
37
+ image: Union[None, Unset, types.FileTypes]
38
+ if isinstance(self.image, Unset):
39
+ image = UNSET
40
+ elif isinstance(self.image, File):
41
+ image = self.image.to_tuple()
42
+
43
+ else:
44
+ image = self.image
45
+
46
+ field_dict: dict[str, Any] = {}
47
+ field_dict.update(self.additional_properties)
48
+ field_dict.update(
49
+ {
50
+ "customer": customer,
51
+ }
52
+ )
53
+ if description is not UNSET:
54
+ field_dict["description"] = description
55
+ if enable_notifications is not UNSET:
56
+ field_dict["enable_notifications"] = enable_notifications
57
+ if image is not UNSET:
58
+ field_dict["image"] = image
59
+
60
+ return field_dict
61
+
62
+ @classmethod
63
+ def from_dict(cls: type[T], src_dict: Mapping[str, Any]) -> T:
64
+ d = dict(src_dict)
65
+ customer = d.pop("customer")
66
+
67
+ description = d.pop("description", UNSET)
68
+
69
+ enable_notifications = d.pop("enable_notifications", UNSET)
70
+
71
+ def _parse_image(data: object) -> Union[File, None, Unset]:
72
+ if data is None:
73
+ return data
74
+ if isinstance(data, Unset):
75
+ return data
76
+ try:
77
+ if not isinstance(data, bytes):
78
+ raise TypeError()
79
+ image_type_0 = File(payload=BytesIO(data))
80
+
81
+ return image_type_0
82
+ except: # noqa: E722
83
+ pass
84
+ return cast(Union[File, None, Unset], data)
85
+
86
+ image = _parse_image(d.pop("image", UNSET))
87
+
88
+ service_provider_request_form = cls(
89
+ customer=customer,
90
+ description=description,
91
+ enable_notifications=enable_notifications,
92
+ image=image,
93
+ )
94
+
95
+ service_provider_request_form.additional_properties = d
96
+ return service_provider_request_form
97
+
98
+ @property
99
+ def additional_keys(self) -> list[str]:
100
+ return list(self.additional_properties.keys())
101
+
102
+ def __getitem__(self, key: str) -> Any:
103
+ return self.additional_properties[key]
104
+
105
+ def __setitem__(self, key: str, value: Any) -> None:
106
+ self.additional_properties[key] = value
107
+
108
+ def __delitem__(self, key: str) -> None:
109
+ del self.additional_properties[key]
110
+
111
+ def __contains__(self, key: str) -> bool:
112
+ return key in self.additional_properties
@@ -0,0 +1,134 @@
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="ServiceProviderRequestMultipart")
12
+
13
+
14
+ @_attrs_define
15
+ class ServiceProviderRequestMultipart:
16
+ """
17
+ Attributes:
18
+ customer (str):
19
+ description (Union[Unset, str]):
20
+ enable_notifications (Union[Unset, bool]):
21
+ image (Union[File, None, Unset]):
22
+ """
23
+
24
+ customer: str
25
+ description: Union[Unset, str] = UNSET
26
+ enable_notifications: Union[Unset, bool] = UNSET
27
+ image: Union[File, None, Unset] = UNSET
28
+ additional_properties: dict[str, Any] = _attrs_field(init=False, factory=dict)
29
+
30
+ def to_dict(self) -> dict[str, Any]:
31
+ customer = self.customer
32
+
33
+ description = self.description
34
+
35
+ enable_notifications = self.enable_notifications
36
+
37
+ image: Union[None, Unset, types.FileTypes]
38
+ if isinstance(self.image, Unset):
39
+ image = UNSET
40
+ elif isinstance(self.image, File):
41
+ image = self.image.to_tuple()
42
+
43
+ else:
44
+ image = self.image
45
+
46
+ field_dict: dict[str, Any] = {}
47
+ field_dict.update(self.additional_properties)
48
+ field_dict.update(
49
+ {
50
+ "customer": customer,
51
+ }
52
+ )
53
+ if description is not UNSET:
54
+ field_dict["description"] = description
55
+ if enable_notifications is not UNSET:
56
+ field_dict["enable_notifications"] = enable_notifications
57
+ if image is not UNSET:
58
+ field_dict["image"] = image
59
+
60
+ return field_dict
61
+
62
+ def to_multipart(self) -> types.RequestFiles:
63
+ files: types.RequestFiles = []
64
+
65
+ files.append(("customer", (None, str(self.customer).encode(), "text/plain")))
66
+
67
+ if not isinstance(self.description, Unset):
68
+ files.append(("description", (None, str(self.description).encode(), "text/plain")))
69
+
70
+ if not isinstance(self.enable_notifications, Unset):
71
+ files.append(("enable_notifications", (None, str(self.enable_notifications).encode(), "text/plain")))
72
+
73
+ if not isinstance(self.image, Unset):
74
+ if isinstance(self.image, File):
75
+ files.append(("image", self.image.to_tuple()))
76
+ else:
77
+ files.append(("image", (None, str(self.image).encode(), "text/plain")))
78
+
79
+ for prop_name, prop in self.additional_properties.items():
80
+ files.append((prop_name, (None, str(prop).encode(), "text/plain")))
81
+
82
+ return files
83
+
84
+ @classmethod
85
+ def from_dict(cls: type[T], src_dict: Mapping[str, Any]) -> T:
86
+ d = dict(src_dict)
87
+ customer = d.pop("customer")
88
+
89
+ description = d.pop("description", UNSET)
90
+
91
+ enable_notifications = d.pop("enable_notifications", UNSET)
92
+
93
+ def _parse_image(data: object) -> Union[File, None, Unset]:
94
+ if data is None:
95
+ return data
96
+ if isinstance(data, Unset):
97
+ return data
98
+ try:
99
+ if not isinstance(data, bytes):
100
+ raise TypeError()
101
+ image_type_0 = File(payload=BytesIO(data))
102
+
103
+ return image_type_0
104
+ except: # noqa: E722
105
+ pass
106
+ return cast(Union[File, None, Unset], data)
107
+
108
+ image = _parse_image(d.pop("image", UNSET))
109
+
110
+ service_provider_request_multipart = cls(
111
+ customer=customer,
112
+ description=description,
113
+ enable_notifications=enable_notifications,
114
+ image=image,
115
+ )
116
+
117
+ service_provider_request_multipart.additional_properties = d
118
+ return service_provider_request_multipart
119
+
120
+ @property
121
+ def additional_keys(self) -> list[str]:
122
+ return list(self.additional_properties.keys())
123
+
124
+ def __getitem__(self, key: str) -> Any:
125
+ return self.additional_properties[key]
126
+
127
+ def __setitem__(self, key: str, value: Any) -> None:
128
+ self.additional_properties[key] = value
129
+
130
+ def __delitem__(self, key: str) -> None:
131
+ del self.additional_properties[key]
132
+
133
+ def __contains__(self, key: str) -> bool:
134
+ return key in self.additional_properties
@@ -11,15 +11,10 @@ T = TypeVar("T", bound="SlurmInvoicesSlurmPackageCreateOrderAttributes")
11
11
 
12
12
  @_attrs_define
13
13
  class SlurmInvoicesSlurmPackageCreateOrderAttributes:
14
- """This mixin allows to specify list of fields to be rendered by serializer.
15
- It expects that request is available in serializer's context.
16
-
17
- It is disabled for nested serializers (where parent is another serializer)
18
- but remains active for list views (where parent is a ListSerializer).
19
-
20
- Attributes:
21
- name (str):
22
- description (Union[Unset, str]):
14
+ """
15
+ Attributes:
16
+ name (str):
17
+ description (Union[Unset, str]):
23
18
  """
24
19
 
25
20
  name: str
@@ -0,0 +1,250 @@
1
+ from collections.abc import Mapping
2
+ from io import BytesIO
3
+ from typing import Any, TypeVar, Union, cast
4
+
5
+ from attrs import define as _attrs_define
6
+ from attrs import field as _attrs_field
7
+
8
+ from .. import types
9
+ from ..types import UNSET, File, Unset
10
+
11
+ T = TypeVar("T", bound="UserRequestForm")
12
+
13
+
14
+ @_attrs_define
15
+ class UserRequestForm:
16
+ """
17
+ Attributes:
18
+ username (str): Required. 128 characters or fewer. Lowercase letters, numbers and @/./+/-/_ characters
19
+ email (str):
20
+ slug (Union[Unset, str]):
21
+ native_name (Union[Unset, str]):
22
+ job_title (Union[Unset, str]):
23
+ phone_number (Union[Unset, str]):
24
+ organization (Union[Unset, str]):
25
+ description (Union[Unset, str]):
26
+ is_staff (Union[Unset, bool]): Designates whether the user can log into this admin site.
27
+ is_active (Union[Unset, bool]): Designates whether this user should be treated as active. Unselect this instead
28
+ of deleting accounts.
29
+ is_support (Union[Unset, bool]): Designates whether the user is a global support user.
30
+ token_lifetime (Union[None, Unset, int]): Token lifetime in seconds.
31
+ agree_with_policy (Union[Unset, bool]): User must agree with the policy to register.
32
+ notifications_enabled (Union[Unset, bool]): Designates whether the user is allowed to receive email
33
+ notifications.
34
+ preferred_language (Union[Unset, str]):
35
+ first_name (Union[Unset, str]):
36
+ last_name (Union[Unset, str]):
37
+ image (Union[File, None, Unset]):
38
+ """
39
+
40
+ username: str
41
+ email: str
42
+ slug: Union[Unset, str] = UNSET
43
+ native_name: Union[Unset, str] = UNSET
44
+ job_title: Union[Unset, str] = UNSET
45
+ phone_number: Union[Unset, str] = UNSET
46
+ organization: Union[Unset, str] = UNSET
47
+ description: Union[Unset, str] = UNSET
48
+ is_staff: Union[Unset, bool] = UNSET
49
+ is_active: Union[Unset, bool] = UNSET
50
+ is_support: Union[Unset, bool] = UNSET
51
+ token_lifetime: Union[None, Unset, int] = UNSET
52
+ agree_with_policy: Union[Unset, bool] = UNSET
53
+ notifications_enabled: Union[Unset, bool] = UNSET
54
+ preferred_language: Union[Unset, str] = UNSET
55
+ first_name: Union[Unset, str] = UNSET
56
+ last_name: Union[Unset, str] = UNSET
57
+ image: Union[File, None, Unset] = UNSET
58
+ additional_properties: dict[str, Any] = _attrs_field(init=False, factory=dict)
59
+
60
+ def to_dict(self) -> dict[str, Any]:
61
+ username = self.username
62
+
63
+ email = self.email
64
+
65
+ slug = self.slug
66
+
67
+ native_name = self.native_name
68
+
69
+ job_title = self.job_title
70
+
71
+ phone_number = self.phone_number
72
+
73
+ organization = self.organization
74
+
75
+ description = self.description
76
+
77
+ is_staff = self.is_staff
78
+
79
+ is_active = self.is_active
80
+
81
+ is_support = self.is_support
82
+
83
+ token_lifetime: Union[None, Unset, int]
84
+ if isinstance(self.token_lifetime, Unset):
85
+ token_lifetime = UNSET
86
+ else:
87
+ token_lifetime = self.token_lifetime
88
+
89
+ agree_with_policy = self.agree_with_policy
90
+
91
+ notifications_enabled = self.notifications_enabled
92
+
93
+ preferred_language = self.preferred_language
94
+
95
+ first_name = self.first_name
96
+
97
+ last_name = self.last_name
98
+
99
+ image: Union[None, Unset, types.FileTypes]
100
+ if isinstance(self.image, Unset):
101
+ image = UNSET
102
+ elif isinstance(self.image, File):
103
+ image = self.image.to_tuple()
104
+
105
+ else:
106
+ image = self.image
107
+
108
+ field_dict: dict[str, Any] = {}
109
+ field_dict.update(self.additional_properties)
110
+ field_dict.update(
111
+ {
112
+ "username": username,
113
+ "email": email,
114
+ }
115
+ )
116
+ if slug is not UNSET:
117
+ field_dict["slug"] = slug
118
+ if native_name is not UNSET:
119
+ field_dict["native_name"] = native_name
120
+ if job_title is not UNSET:
121
+ field_dict["job_title"] = job_title
122
+ if phone_number is not UNSET:
123
+ field_dict["phone_number"] = phone_number
124
+ if organization is not UNSET:
125
+ field_dict["organization"] = organization
126
+ if description is not UNSET:
127
+ field_dict["description"] = description
128
+ if is_staff is not UNSET:
129
+ field_dict["is_staff"] = is_staff
130
+ if is_active is not UNSET:
131
+ field_dict["is_active"] = is_active
132
+ if is_support is not UNSET:
133
+ field_dict["is_support"] = is_support
134
+ if token_lifetime is not UNSET:
135
+ field_dict["token_lifetime"] = token_lifetime
136
+ if agree_with_policy is not UNSET:
137
+ field_dict["agree_with_policy"] = agree_with_policy
138
+ if notifications_enabled is not UNSET:
139
+ field_dict["notifications_enabled"] = notifications_enabled
140
+ if preferred_language is not UNSET:
141
+ field_dict["preferred_language"] = preferred_language
142
+ if first_name is not UNSET:
143
+ field_dict["first_name"] = first_name
144
+ if last_name is not UNSET:
145
+ field_dict["last_name"] = last_name
146
+ if image is not UNSET:
147
+ field_dict["image"] = image
148
+
149
+ return field_dict
150
+
151
+ @classmethod
152
+ def from_dict(cls: type[T], src_dict: Mapping[str, Any]) -> T:
153
+ d = dict(src_dict)
154
+ username = d.pop("username")
155
+
156
+ email = d.pop("email")
157
+
158
+ slug = d.pop("slug", UNSET)
159
+
160
+ native_name = d.pop("native_name", UNSET)
161
+
162
+ job_title = d.pop("job_title", UNSET)
163
+
164
+ phone_number = d.pop("phone_number", UNSET)
165
+
166
+ organization = d.pop("organization", UNSET)
167
+
168
+ description = d.pop("description", UNSET)
169
+
170
+ is_staff = d.pop("is_staff", UNSET)
171
+
172
+ is_active = d.pop("is_active", UNSET)
173
+
174
+ is_support = d.pop("is_support", UNSET)
175
+
176
+ def _parse_token_lifetime(data: object) -> Union[None, Unset, int]:
177
+ if data is None:
178
+ return data
179
+ if isinstance(data, Unset):
180
+ return data
181
+ return cast(Union[None, Unset, int], data)
182
+
183
+ token_lifetime = _parse_token_lifetime(d.pop("token_lifetime", UNSET))
184
+
185
+ agree_with_policy = d.pop("agree_with_policy", UNSET)
186
+
187
+ notifications_enabled = d.pop("notifications_enabled", UNSET)
188
+
189
+ preferred_language = d.pop("preferred_language", UNSET)
190
+
191
+ first_name = d.pop("first_name", UNSET)
192
+
193
+ last_name = d.pop("last_name", UNSET)
194
+
195
+ def _parse_image(data: object) -> Union[File, None, Unset]:
196
+ if data is None:
197
+ return data
198
+ if isinstance(data, Unset):
199
+ return data
200
+ try:
201
+ if not isinstance(data, bytes):
202
+ raise TypeError()
203
+ image_type_0 = File(payload=BytesIO(data))
204
+
205
+ return image_type_0
206
+ except: # noqa: E722
207
+ pass
208
+ return cast(Union[File, None, Unset], data)
209
+
210
+ image = _parse_image(d.pop("image", UNSET))
211
+
212
+ user_request_form = cls(
213
+ username=username,
214
+ email=email,
215
+ slug=slug,
216
+ native_name=native_name,
217
+ job_title=job_title,
218
+ phone_number=phone_number,
219
+ organization=organization,
220
+ description=description,
221
+ is_staff=is_staff,
222
+ is_active=is_active,
223
+ is_support=is_support,
224
+ token_lifetime=token_lifetime,
225
+ agree_with_policy=agree_with_policy,
226
+ notifications_enabled=notifications_enabled,
227
+ preferred_language=preferred_language,
228
+ first_name=first_name,
229
+ last_name=last_name,
230
+ image=image,
231
+ )
232
+
233
+ user_request_form.additional_properties = d
234
+ return user_request_form
235
+
236
+ @property
237
+ def additional_keys(self) -> list[str]:
238
+ return list(self.additional_properties.keys())
239
+
240
+ def __getitem__(self, key: str) -> Any:
241
+ return self.additional_properties[key]
242
+
243
+ def __setitem__(self, key: str, value: Any) -> None:
244
+ self.additional_properties[key] = value
245
+
246
+ def __delitem__(self, key: str) -> None:
247
+ del self.additional_properties[key]
248
+
249
+ def __contains__(self, key: str) -> bool:
250
+ return key in self.additional_properties