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,151 @@
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="PatchedMarketplaceCategoryRequestForm")
12
+
13
+
14
+ @_attrs_define
15
+ class PatchedMarketplaceCategoryRequestForm:
16
+ """
17
+ Attributes:
18
+ title (Union[Unset, str]):
19
+ description (Union[Unset, str]):
20
+ icon (Union[File, None, Unset]):
21
+ default_vm_category (Union[Unset, bool]): Set to "true" if this category is for OpenStack VM. Only one category
22
+ can have "true" value.
23
+ default_volume_category (Union[Unset, bool]): Set to true if this category is for OpenStack Volume. Only one
24
+ category can have "true" value.
25
+ default_tenant_category (Union[Unset, bool]): Set to true if this category is for OpenStack Tenant. Only one
26
+ category can have "true" value.
27
+ group (Union[None, Unset, str]):
28
+ """
29
+
30
+ title: Union[Unset, str] = UNSET
31
+ description: Union[Unset, str] = UNSET
32
+ icon: Union[File, None, Unset] = UNSET
33
+ default_vm_category: Union[Unset, bool] = UNSET
34
+ default_volume_category: Union[Unset, bool] = UNSET
35
+ default_tenant_category: Union[Unset, bool] = UNSET
36
+ group: Union[None, Unset, str] = UNSET
37
+ additional_properties: dict[str, Any] = _attrs_field(init=False, factory=dict)
38
+
39
+ def to_dict(self) -> dict[str, Any]:
40
+ title = self.title
41
+
42
+ description = self.description
43
+
44
+ icon: Union[None, Unset, types.FileTypes]
45
+ if isinstance(self.icon, Unset):
46
+ icon = UNSET
47
+ elif isinstance(self.icon, File):
48
+ icon = self.icon.to_tuple()
49
+
50
+ else:
51
+ icon = self.icon
52
+
53
+ default_vm_category = self.default_vm_category
54
+
55
+ default_volume_category = self.default_volume_category
56
+
57
+ default_tenant_category = self.default_tenant_category
58
+
59
+ group: Union[None, Unset, str]
60
+ if isinstance(self.group, Unset):
61
+ group = UNSET
62
+ else:
63
+ group = self.group
64
+
65
+ field_dict: dict[str, Any] = {}
66
+ field_dict.update(self.additional_properties)
67
+ field_dict.update({})
68
+ if title is not UNSET:
69
+ field_dict["title"] = title
70
+ if description is not UNSET:
71
+ field_dict["description"] = description
72
+ if icon is not UNSET:
73
+ field_dict["icon"] = icon
74
+ if default_vm_category is not UNSET:
75
+ field_dict["default_vm_category"] = default_vm_category
76
+ if default_volume_category is not UNSET:
77
+ field_dict["default_volume_category"] = default_volume_category
78
+ if default_tenant_category is not UNSET:
79
+ field_dict["default_tenant_category"] = default_tenant_category
80
+ if group is not UNSET:
81
+ field_dict["group"] = group
82
+
83
+ return field_dict
84
+
85
+ @classmethod
86
+ def from_dict(cls: type[T], src_dict: Mapping[str, Any]) -> T:
87
+ d = dict(src_dict)
88
+ title = d.pop("title", UNSET)
89
+
90
+ description = d.pop("description", UNSET)
91
+
92
+ def _parse_icon(data: object) -> Union[File, None, Unset]:
93
+ if data is None:
94
+ return data
95
+ if isinstance(data, Unset):
96
+ return data
97
+ try:
98
+ if not isinstance(data, bytes):
99
+ raise TypeError()
100
+ icon_type_0 = File(payload=BytesIO(data))
101
+
102
+ return icon_type_0
103
+ except: # noqa: E722
104
+ pass
105
+ return cast(Union[File, None, Unset], data)
106
+
107
+ icon = _parse_icon(d.pop("icon", UNSET))
108
+
109
+ default_vm_category = d.pop("default_vm_category", UNSET)
110
+
111
+ default_volume_category = d.pop("default_volume_category", UNSET)
112
+
113
+ default_tenant_category = d.pop("default_tenant_category", UNSET)
114
+
115
+ def _parse_group(data: object) -> Union[None, Unset, str]:
116
+ if data is None:
117
+ return data
118
+ if isinstance(data, Unset):
119
+ return data
120
+ return cast(Union[None, Unset, str], data)
121
+
122
+ group = _parse_group(d.pop("group", UNSET))
123
+
124
+ patched_marketplace_category_request_form = cls(
125
+ title=title,
126
+ description=description,
127
+ icon=icon,
128
+ default_vm_category=default_vm_category,
129
+ default_volume_category=default_volume_category,
130
+ default_tenant_category=default_tenant_category,
131
+ group=group,
132
+ )
133
+
134
+ patched_marketplace_category_request_form.additional_properties = d
135
+ return patched_marketplace_category_request_form
136
+
137
+ @property
138
+ def additional_keys(self) -> list[str]:
139
+ return list(self.additional_properties.keys())
140
+
141
+ def __getitem__(self, key: str) -> Any:
142
+ return self.additional_properties[key]
143
+
144
+ def __setitem__(self, key: str, value: Any) -> None:
145
+ self.additional_properties[key] = value
146
+
147
+ def __delitem__(self, key: str) -> None:
148
+ del self.additional_properties[key]
149
+
150
+ def __contains__(self, key: str) -> bool:
151
+ return key in self.additional_properties
@@ -0,0 +1,186 @@
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="PatchedMarketplaceCategoryRequestMultipart")
12
+
13
+
14
+ @_attrs_define
15
+ class PatchedMarketplaceCategoryRequestMultipart:
16
+ """
17
+ Attributes:
18
+ title (Union[Unset, str]):
19
+ description (Union[Unset, str]):
20
+ icon (Union[File, None, Unset]):
21
+ default_vm_category (Union[Unset, bool]): Set to "true" if this category is for OpenStack VM. Only one category
22
+ can have "true" value.
23
+ default_volume_category (Union[Unset, bool]): Set to true if this category is for OpenStack Volume. Only one
24
+ category can have "true" value.
25
+ default_tenant_category (Union[Unset, bool]): Set to true if this category is for OpenStack Tenant. Only one
26
+ category can have "true" value.
27
+ group (Union[None, Unset, str]):
28
+ """
29
+
30
+ title: Union[Unset, str] = UNSET
31
+ description: Union[Unset, str] = UNSET
32
+ icon: Union[File, None, Unset] = UNSET
33
+ default_vm_category: Union[Unset, bool] = UNSET
34
+ default_volume_category: Union[Unset, bool] = UNSET
35
+ default_tenant_category: Union[Unset, bool] = UNSET
36
+ group: Union[None, Unset, str] = UNSET
37
+ additional_properties: dict[str, Any] = _attrs_field(init=False, factory=dict)
38
+
39
+ def to_dict(self) -> dict[str, Any]:
40
+ title = self.title
41
+
42
+ description = self.description
43
+
44
+ icon: Union[None, Unset, types.FileTypes]
45
+ if isinstance(self.icon, Unset):
46
+ icon = UNSET
47
+ elif isinstance(self.icon, File):
48
+ icon = self.icon.to_tuple()
49
+
50
+ else:
51
+ icon = self.icon
52
+
53
+ default_vm_category = self.default_vm_category
54
+
55
+ default_volume_category = self.default_volume_category
56
+
57
+ default_tenant_category = self.default_tenant_category
58
+
59
+ group: Union[None, Unset, str]
60
+ if isinstance(self.group, Unset):
61
+ group = UNSET
62
+ else:
63
+ group = self.group
64
+
65
+ field_dict: dict[str, Any] = {}
66
+ field_dict.update(self.additional_properties)
67
+ field_dict.update({})
68
+ if title is not UNSET:
69
+ field_dict["title"] = title
70
+ if description is not UNSET:
71
+ field_dict["description"] = description
72
+ if icon is not UNSET:
73
+ field_dict["icon"] = icon
74
+ if default_vm_category is not UNSET:
75
+ field_dict["default_vm_category"] = default_vm_category
76
+ if default_volume_category is not UNSET:
77
+ field_dict["default_volume_category"] = default_volume_category
78
+ if default_tenant_category is not UNSET:
79
+ field_dict["default_tenant_category"] = default_tenant_category
80
+ if group is not UNSET:
81
+ field_dict["group"] = group
82
+
83
+ return field_dict
84
+
85
+ def to_multipart(self) -> types.RequestFiles:
86
+ files: types.RequestFiles = []
87
+
88
+ if not isinstance(self.title, Unset):
89
+ files.append(("title", (None, str(self.title).encode(), "text/plain")))
90
+
91
+ if not isinstance(self.description, Unset):
92
+ files.append(("description", (None, str(self.description).encode(), "text/plain")))
93
+
94
+ if not isinstance(self.icon, Unset):
95
+ if isinstance(self.icon, File):
96
+ files.append(("icon", self.icon.to_tuple()))
97
+ else:
98
+ files.append(("icon", (None, str(self.icon).encode(), "text/plain")))
99
+
100
+ if not isinstance(self.default_vm_category, Unset):
101
+ files.append(("default_vm_category", (None, str(self.default_vm_category).encode(), "text/plain")))
102
+
103
+ if not isinstance(self.default_volume_category, Unset):
104
+ files.append(("default_volume_category", (None, str(self.default_volume_category).encode(), "text/plain")))
105
+
106
+ if not isinstance(self.default_tenant_category, Unset):
107
+ files.append(("default_tenant_category", (None, str(self.default_tenant_category).encode(), "text/plain")))
108
+
109
+ if not isinstance(self.group, Unset):
110
+ if isinstance(self.group, str):
111
+ files.append(("group", (None, str(self.group).encode(), "text/plain")))
112
+ else:
113
+ files.append(("group", (None, str(self.group).encode(), "text/plain")))
114
+
115
+ for prop_name, prop in self.additional_properties.items():
116
+ files.append((prop_name, (None, str(prop).encode(), "text/plain")))
117
+
118
+ return files
119
+
120
+ @classmethod
121
+ def from_dict(cls: type[T], src_dict: Mapping[str, Any]) -> T:
122
+ d = dict(src_dict)
123
+ title = d.pop("title", UNSET)
124
+
125
+ description = d.pop("description", UNSET)
126
+
127
+ def _parse_icon(data: object) -> Union[File, None, Unset]:
128
+ if data is None:
129
+ return data
130
+ if isinstance(data, Unset):
131
+ return data
132
+ try:
133
+ if not isinstance(data, bytes):
134
+ raise TypeError()
135
+ icon_type_0 = File(payload=BytesIO(data))
136
+
137
+ return icon_type_0
138
+ except: # noqa: E722
139
+ pass
140
+ return cast(Union[File, None, Unset], data)
141
+
142
+ icon = _parse_icon(d.pop("icon", UNSET))
143
+
144
+ default_vm_category = d.pop("default_vm_category", UNSET)
145
+
146
+ default_volume_category = d.pop("default_volume_category", UNSET)
147
+
148
+ default_tenant_category = d.pop("default_tenant_category", UNSET)
149
+
150
+ def _parse_group(data: object) -> Union[None, Unset, str]:
151
+ if data is None:
152
+ return data
153
+ if isinstance(data, Unset):
154
+ return data
155
+ return cast(Union[None, Unset, str], data)
156
+
157
+ group = _parse_group(d.pop("group", UNSET))
158
+
159
+ patched_marketplace_category_request_multipart = cls(
160
+ title=title,
161
+ description=description,
162
+ icon=icon,
163
+ default_vm_category=default_vm_category,
164
+ default_volume_category=default_volume_category,
165
+ default_tenant_category=default_tenant_category,
166
+ group=group,
167
+ )
168
+
169
+ patched_marketplace_category_request_multipart.additional_properties = d
170
+ return patched_marketplace_category_request_multipart
171
+
172
+ @property
173
+ def additional_keys(self) -> list[str]:
174
+ return list(self.additional_properties.keys())
175
+
176
+ def __getitem__(self, key: str) -> Any:
177
+ return self.additional_properties[key]
178
+
179
+ def __setitem__(self, key: str, value: Any) -> None:
180
+ self.additional_properties[key] = value
181
+
182
+ def __delitem__(self, key: str) -> None:
183
+ del self.additional_properties[key]
184
+
185
+ def __contains__(self, key: str) -> bool:
186
+ return key in self.additional_properties
@@ -1,15 +1,11 @@
1
1
  from collections.abc import Mapping
2
- from typing import TYPE_CHECKING, Any, TypeVar, Union, cast
2
+ from typing import Any, TypeVar, Union
3
3
 
4
4
  from attrs import define as _attrs_define
5
5
  from attrs import field as _attrs_field
6
6
 
7
7
  from ..types import UNSET, Unset
8
8
 
9
- if TYPE_CHECKING:
10
- from ..models.open_stack_data_volume_request import OpenStackDataVolumeRequest
11
-
12
-
13
9
  T = TypeVar("T", bound="PatchedOpenStackInstanceRequest")
14
10
 
15
11
 
@@ -19,17 +15,10 @@ class PatchedOpenStackInstanceRequest:
19
15
  Attributes:
20
16
  name (Union[Unset, str]):
21
17
  description (Union[Unset, str]):
22
- system_volume_type (Union[None, Unset, str]): Volume type for the system volume
23
- data_volume_type (Union[None, Unset, str]): Volume type for the data volume
24
- data_volumes (Union[Unset, list['OpenStackDataVolumeRequest']]): Additional data volumes to attach to the
25
- instance
26
18
  """
27
19
 
28
20
  name: Union[Unset, str] = UNSET
29
21
  description: Union[Unset, str] = UNSET
30
- system_volume_type: Union[None, Unset, str] = UNSET
31
- data_volume_type: Union[None, Unset, str] = UNSET
32
- data_volumes: Union[Unset, list["OpenStackDataVolumeRequest"]] = UNSET
33
22
  additional_properties: dict[str, Any] = _attrs_field(init=False, factory=dict)
34
23
 
35
24
  def to_dict(self) -> dict[str, Any]:
@@ -37,25 +26,6 @@ class PatchedOpenStackInstanceRequest:
37
26
 
38
27
  description = self.description
39
28
 
40
- system_volume_type: Union[None, Unset, str]
41
- if isinstance(self.system_volume_type, Unset):
42
- system_volume_type = UNSET
43
- else:
44
- system_volume_type = self.system_volume_type
45
-
46
- data_volume_type: Union[None, Unset, str]
47
- if isinstance(self.data_volume_type, Unset):
48
- data_volume_type = UNSET
49
- else:
50
- data_volume_type = self.data_volume_type
51
-
52
- data_volumes: Union[Unset, list[dict[str, Any]]] = UNSET
53
- if not isinstance(self.data_volumes, Unset):
54
- data_volumes = []
55
- for data_volumes_item_data in self.data_volumes:
56
- data_volumes_item = data_volumes_item_data.to_dict()
57
- data_volumes.append(data_volumes_item)
58
-
59
29
  field_dict: dict[str, Any] = {}
60
30
  field_dict.update(self.additional_properties)
61
31
  field_dict.update({})
@@ -63,55 +33,19 @@ class PatchedOpenStackInstanceRequest:
63
33
  field_dict["name"] = name
64
34
  if description is not UNSET:
65
35
  field_dict["description"] = description
66
- if system_volume_type is not UNSET:
67
- field_dict["system_volume_type"] = system_volume_type
68
- if data_volume_type is not UNSET:
69
- field_dict["data_volume_type"] = data_volume_type
70
- if data_volumes is not UNSET:
71
- field_dict["data_volumes"] = data_volumes
72
36
 
73
37
  return field_dict
74
38
 
75
39
  @classmethod
76
40
  def from_dict(cls: type[T], src_dict: Mapping[str, Any]) -> T:
77
- from ..models.open_stack_data_volume_request import OpenStackDataVolumeRequest
78
-
79
41
  d = dict(src_dict)
80
42
  name = d.pop("name", UNSET)
81
43
 
82
44
  description = d.pop("description", UNSET)
83
45
 
84
- def _parse_system_volume_type(data: object) -> Union[None, Unset, str]:
85
- if data is None:
86
- return data
87
- if isinstance(data, Unset):
88
- return data
89
- return cast(Union[None, Unset, str], data)
90
-
91
- system_volume_type = _parse_system_volume_type(d.pop("system_volume_type", UNSET))
92
-
93
- def _parse_data_volume_type(data: object) -> Union[None, Unset, str]:
94
- if data is None:
95
- return data
96
- if isinstance(data, Unset):
97
- return data
98
- return cast(Union[None, Unset, str], data)
99
-
100
- data_volume_type = _parse_data_volume_type(d.pop("data_volume_type", UNSET))
101
-
102
- data_volumes = []
103
- _data_volumes = d.pop("data_volumes", UNSET)
104
- for data_volumes_item_data in _data_volumes or []:
105
- data_volumes_item = OpenStackDataVolumeRequest.from_dict(data_volumes_item_data)
106
-
107
- data_volumes.append(data_volumes_item)
108
-
109
46
  patched_open_stack_instance_request = cls(
110
47
  name=name,
111
48
  description=description,
112
- system_volume_type=system_volume_type,
113
- data_volume_type=data_volume_type,
114
- data_volumes=data_volumes,
115
49
  )
116
50
 
117
51
  patched_open_stack_instance_request.additional_properties = d
@@ -0,0 +1,119 @@
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="PatchedPaymentRequestForm")
14
+
15
+
16
+ @_attrs_define
17
+ class PatchedPaymentRequestForm:
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
+ @classmethod
65
+ def from_dict(cls: type[T], src_dict: Mapping[str, Any]) -> T:
66
+ d = dict(src_dict)
67
+ profile = d.pop("profile", UNSET)
68
+
69
+ _date_of_payment = d.pop("date_of_payment", UNSET)
70
+ date_of_payment: Union[Unset, datetime.date]
71
+ if isinstance(_date_of_payment, Unset):
72
+ date_of_payment = UNSET
73
+ else:
74
+ date_of_payment = isoparse(_date_of_payment).date()
75
+
76
+ sum_ = d.pop("sum", UNSET)
77
+
78
+ def _parse_proof(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
+ proof_type_0 = File(payload=BytesIO(data))
87
+
88
+ return proof_type_0
89
+ except: # noqa: E722
90
+ pass
91
+ return cast(Union[File, None, Unset], data)
92
+
93
+ proof = _parse_proof(d.pop("proof", UNSET))
94
+
95
+ patched_payment_request_form = cls(
96
+ profile=profile,
97
+ date_of_payment=date_of_payment,
98
+ sum_=sum_,
99
+ proof=proof,
100
+ )
101
+
102
+ patched_payment_request_form.additional_properties = d
103
+ return patched_payment_request_form
104
+
105
+ @property
106
+ def additional_keys(self) -> list[str]:
107
+ return list(self.additional_properties.keys())
108
+
109
+ def __getitem__(self, key: str) -> Any:
110
+ return self.additional_properties[key]
111
+
112
+ def __setitem__(self, key: str, value: Any) -> None:
113
+ self.additional_properties[key] = value
114
+
115
+ def __delitem__(self, key: str) -> None:
116
+ del self.additional_properties[key]
117
+
118
+ def __contains__(self, key: str) -> bool:
119
+ return key in self.additional_properties