waldur-api-client 7.8.4__py3-none-any.whl → 7.8.5__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 (257) hide show
  1. waldur_api_client/api/backend_resources/backend_resources_import_resource.py +3 -3
  2. waldur_api_client/api/booking_resources/booking_resources_count.py +90 -0
  3. waldur_api_client/api/booking_resources/booking_resources_list.py +90 -0
  4. waldur_api_client/api/call_managing_organisations/call_managing_organisations_add_user.py +17 -10
  5. waldur_api_client/api/customers/customers_add_user.py +17 -10
  6. waldur_api_client/api/marketplace_component_usages/marketplace_component_usages_count.py +30 -0
  7. waldur_api_client/api/marketplace_component_usages/marketplace_component_usages_list.py +30 -0
  8. waldur_api_client/api/marketplace_customer_component_usage_policies/__init__.py +1 -0
  9. waldur_api_client/api/marketplace_customer_component_usage_policies/marketplace_customer_component_usage_policies_actions_count.py +125 -0
  10. waldur_api_client/api/marketplace_customer_component_usage_policies/marketplace_customer_component_usage_policies_actions_retrieve.py +119 -0
  11. waldur_api_client/api/marketplace_customer_component_usage_policies/marketplace_customer_component_usage_policies_count.py +239 -0
  12. waldur_api_client/api/marketplace_customer_component_usage_policies/marketplace_customer_component_usage_policies_create.py +152 -0
  13. waldur_api_client/api/marketplace_customer_component_usage_policies/marketplace_customer_component_usage_policies_destroy.py +89 -0
  14. waldur_api_client/api/marketplace_customer_component_usage_policies/marketplace_customer_component_usage_policies_list.py +242 -0
  15. waldur_api_client/api/marketplace_customer_component_usage_policies/marketplace_customer_component_usage_policies_partial_update.py +166 -0
  16. waldur_api_client/api/marketplace_customer_component_usage_policies/marketplace_customer_component_usage_policies_retrieve.py +144 -0
  17. waldur_api_client/api/marketplace_customer_component_usage_policies/marketplace_customer_component_usage_policies_update.py +166 -0
  18. waldur_api_client/api/marketplace_orders/marketplace_orders_set_backend_id.py +105 -0
  19. waldur_api_client/api/marketplace_plans/marketplace_plans_update_discounts.py +123 -0
  20. waldur_api_client/api/marketplace_provider_offerings/marketplace_provider_offerings_add_partition.py +168 -0
  21. waldur_api_client/api/marketplace_provider_offerings/marketplace_provider_offerings_add_software_catalog.py +168 -0
  22. waldur_api_client/api/marketplace_provider_offerings/marketplace_provider_offerings_add_user.py +19 -10
  23. waldur_api_client/api/marketplace_provider_offerings/marketplace_provider_offerings_component_stats_list.py +15 -0
  24. waldur_api_client/api/marketplace_provider_offerings/marketplace_provider_offerings_costs_list.py +15 -0
  25. waldur_api_client/api/marketplace_provider_offerings/marketplace_provider_offerings_count.py +15 -0
  26. waldur_api_client/api/marketplace_provider_offerings/marketplace_provider_offerings_create_offering_component.py +1 -1
  27. waldur_api_client/api/marketplace_provider_offerings/marketplace_provider_offerings_customers_list.py +15 -0
  28. waldur_api_client/api/marketplace_provider_offerings/marketplace_provider_offerings_groups_count.py +15 -0
  29. waldur_api_client/api/marketplace_provider_offerings/marketplace_provider_offerings_groups_list.py +15 -0
  30. waldur_api_client/api/marketplace_provider_offerings/marketplace_provider_offerings_list.py +15 -0
  31. waldur_api_client/api/marketplace_provider_offerings/marketplace_provider_offerings_remove_partition.py +107 -0
  32. waldur_api_client/api/marketplace_provider_offerings/marketplace_provider_offerings_remove_software_catalog.py +107 -0
  33. waldur_api_client/api/marketplace_provider_offerings/marketplace_provider_offerings_update_partition_partial_update.py +168 -0
  34. waldur_api_client/api/marketplace_provider_offerings/marketplace_provider_offerings_update_software_catalog_partial_update.py +168 -0
  35. waldur_api_client/api/marketplace_provider_resources/marketplace_provider_resources_count.py +90 -0
  36. waldur_api_client/api/marketplace_provider_resources/marketplace_provider_resources_list.py +90 -0
  37. waldur_api_client/api/marketplace_provider_resources/marketplace_provider_resources_set_downscaled.py +107 -0
  38. waldur_api_client/api/marketplace_provider_resources/marketplace_provider_resources_set_paused.py +107 -0
  39. waldur_api_client/api/marketplace_provider_resources/marketplace_provider_resources_set_restrict_member_access.py +107 -0
  40. waldur_api_client/api/marketplace_public_offerings/marketplace_public_offerings_count.py +15 -0
  41. waldur_api_client/api/marketplace_public_offerings/marketplace_public_offerings_list.py +15 -0
  42. waldur_api_client/api/marketplace_resources/marketplace_resources_count.py +90 -0
  43. waldur_api_client/api/marketplace_resources/marketplace_resources_list.py +90 -0
  44. waldur_api_client/api/marketplace_resources/marketplace_resources_set_downscaled.py +107 -0
  45. waldur_api_client/api/marketplace_resources/marketplace_resources_set_paused.py +107 -0
  46. waldur_api_client/api/marketplace_resources/marketplace_resources_set_restrict_member_access.py +107 -0
  47. waldur_api_client/api/marketplace_service_providers/marketplace_service_providers_add_user.py +17 -10
  48. waldur_api_client/api/marketplace_service_providers/marketplace_service_providers_customer_projects_list.py +15 -0
  49. waldur_api_client/api/marketplace_service_providers/marketplace_service_providers_offerings_list.py +15 -0
  50. waldur_api_client/api/marketplace_service_providers/marketplace_service_providers_projects_list.py +14 -24
  51. waldur_api_client/api/marketplace_service_providers/marketplace_service_providers_set_offerings_username.py +8 -67
  52. waldur_api_client/api/marketplace_site_agent_identities/__init__.py +1 -0
  53. waldur_api_client/api/marketplace_site_agent_identities/marketplace_site_agent_identities_count.py +240 -0
  54. waldur_api_client/api/marketplace_site_agent_identities/marketplace_site_agent_identities_create.py +148 -0
  55. waldur_api_client/api/marketplace_site_agent_identities/marketplace_site_agent_identities_destroy.py +89 -0
  56. waldur_api_client/api/marketplace_site_agent_identities/marketplace_site_agent_identities_list.py +241 -0
  57. waldur_api_client/api/marketplace_site_agent_identities/marketplace_site_agent_identities_register_event_subscription.py +176 -0
  58. waldur_api_client/api/marketplace_site_agent_identities/marketplace_site_agent_identities_register_service.py +170 -0
  59. waldur_api_client/api/marketplace_site_agent_identities/marketplace_site_agent_identities_retrieve.py +140 -0
  60. waldur_api_client/api/marketplace_site_agent_identities/marketplace_site_agent_identities_update.py +162 -0
  61. waldur_api_client/api/marketplace_site_agent_processors/__init__.py +1 -0
  62. waldur_api_client/api/marketplace_site_agent_processors/marketplace_site_agent_processors_count.py +240 -0
  63. waldur_api_client/api/marketplace_site_agent_processors/marketplace_site_agent_processors_list.py +241 -0
  64. waldur_api_client/api/marketplace_site_agent_processors/marketplace_site_agent_processors_retrieve.py +142 -0
  65. waldur_api_client/api/marketplace_site_agent_services/__init__.py +1 -0
  66. waldur_api_client/api/marketplace_site_agent_services/marketplace_site_agent_services_count.py +229 -0
  67. waldur_api_client/api/marketplace_site_agent_services/marketplace_site_agent_services_list.py +230 -0
  68. waldur_api_client/api/marketplace_site_agent_services/marketplace_site_agent_services_register_processor.py +172 -0
  69. waldur_api_client/api/marketplace_site_agent_services/marketplace_site_agent_services_retrieve.py +140 -0
  70. waldur_api_client/api/marketplace_site_agent_services/marketplace_site_agent_services_set_statistics.py +166 -0
  71. waldur_api_client/api/marketplace_software_catalogs/__init__.py +1 -0
  72. waldur_api_client/api/marketplace_software_catalogs/marketplace_software_catalogs_count.py +225 -0
  73. waldur_api_client/api/marketplace_software_catalogs/marketplace_software_catalogs_create.py +150 -0
  74. waldur_api_client/api/marketplace_software_catalogs/marketplace_software_catalogs_destroy.py +89 -0
  75. waldur_api_client/api/marketplace_software_catalogs/marketplace_software_catalogs_list.py +226 -0
  76. waldur_api_client/api/marketplace_software_catalogs/marketplace_software_catalogs_partial_update.py +164 -0
  77. waldur_api_client/api/marketplace_software_catalogs/marketplace_software_catalogs_retrieve.py +142 -0
  78. waldur_api_client/api/marketplace_software_catalogs/marketplace_software_catalogs_update.py +164 -0
  79. waldur_api_client/api/marketplace_software_packages/__init__.py +1 -0
  80. waldur_api_client/api/marketplace_software_packages/marketplace_software_packages_count.py +352 -0
  81. waldur_api_client/api/marketplace_software_packages/marketplace_software_packages_create.py +150 -0
  82. waldur_api_client/api/marketplace_software_packages/marketplace_software_packages_destroy.py +89 -0
  83. waldur_api_client/api/marketplace_software_packages/marketplace_software_packages_list.py +353 -0
  84. waldur_api_client/api/marketplace_software_packages/marketplace_software_packages_partial_update.py +164 -0
  85. waldur_api_client/api/marketplace_software_packages/marketplace_software_packages_retrieve.py +142 -0
  86. waldur_api_client/api/marketplace_software_packages/marketplace_software_packages_update.py +164 -0
  87. waldur_api_client/api/marketplace_software_targets/__init__.py +1 -0
  88. waldur_api_client/api/marketplace_software_targets/marketplace_software_targets_count.py +313 -0
  89. waldur_api_client/api/marketplace_software_targets/marketplace_software_targets_create.py +117 -0
  90. waldur_api_client/api/marketplace_software_targets/marketplace_software_targets_destroy.py +89 -0
  91. waldur_api_client/api/marketplace_software_targets/marketplace_software_targets_list.py +314 -0
  92. waldur_api_client/api/marketplace_software_targets/marketplace_software_targets_partial_update.py +142 -0
  93. waldur_api_client/api/marketplace_software_targets/marketplace_software_targets_retrieve.py +142 -0
  94. waldur_api_client/api/marketplace_software_targets/marketplace_software_targets_update.py +142 -0
  95. waldur_api_client/api/marketplace_software_versions/__init__.py +1 -0
  96. waldur_api_client/api/marketplace_software_versions/marketplace_software_versions_count.py +310 -0
  97. waldur_api_client/api/marketplace_software_versions/marketplace_software_versions_create.py +117 -0
  98. waldur_api_client/api/marketplace_software_versions/marketplace_software_versions_destroy.py +89 -0
  99. waldur_api_client/api/marketplace_software_versions/marketplace_software_versions_list.py +311 -0
  100. waldur_api_client/api/marketplace_software_versions/marketplace_software_versions_partial_update.py +142 -0
  101. waldur_api_client/api/marketplace_software_versions/marketplace_software_versions_retrieve.py +142 -0
  102. waldur_api_client/api/marketplace_software_versions/marketplace_software_versions_update.py +142 -0
  103. waldur_api_client/api/onboarding_justifications/onboarding_justifications_approve.py +168 -0
  104. waldur_api_client/api/onboarding_justifications/onboarding_justifications_reject.py +168 -0
  105. waldur_api_client/api/projects/projects_add_user.py +17 -10
  106. waldur_api_client/api/projects/projects_count.py +30 -0
  107. waldur_api_client/api/projects/projects_list.py +30 -0
  108. waldur_api_client/api/projects/projects_move_project.py +19 -10
  109. waldur_api_client/api/projects/projects_recover.py +166 -0
  110. waldur_api_client/api/proposal_proposals/proposal_proposals_add_user.py +17 -10
  111. waldur_api_client/api/proposal_protected_calls/proposal_protected_calls_add_user.py +17 -10
  112. waldur_api_client/api/remote_waldur_api/remote_waldur_api_pull_resource_robot_accounts.py +88 -0
  113. waldur_api_client/models/__init__.py +152 -4
  114. waldur_api_client/models/agent_event_subscription_create_request.py +71 -0
  115. waldur_api_client/models/agent_identity.py +211 -0
  116. waldur_api_client/models/agent_identity_request.py +157 -0
  117. waldur_api_client/models/agent_processor.py +170 -0
  118. waldur_api_client/models/agent_processor_create_request.py +89 -0
  119. waldur_api_client/models/agent_service.py +172 -0
  120. waldur_api_client/models/agent_service_create_request.py +81 -0
  121. waldur_api_client/models/agent_service_state.py +10 -0
  122. waldur_api_client/models/agent_service_statistics_request.py +59 -0
  123. waldur_api_client/models/base_provider_plan.py +21 -0
  124. waldur_api_client/models/base_public_plan.py +21 -0
  125. waldur_api_client/models/booking_offerings_list_field_item.py +2 -0
  126. waldur_api_client/models/booking_offerings_retrieve_field_item.py +2 -0
  127. waldur_api_client/models/booking_resource.py +33 -0
  128. waldur_api_client/models/booking_resource_renewal_date_type_0.py +53 -0
  129. waldur_api_client/models/booking_resources_list_field_item.py +1 -0
  130. waldur_api_client/models/booking_resources_retrieve_field_item.py +1 -0
  131. waldur_api_client/models/call_managing_organisations_add_user_response_400.py +65 -0
  132. waldur_api_client/models/constance_settings.py +81 -45
  133. waldur_api_client/models/constance_settings_request.py +81 -45
  134. waldur_api_client/models/constance_settings_request_form.py +81 -45
  135. waldur_api_client/models/constance_settings_request_multipart.py +134 -71
  136. waldur_api_client/models/customer_component_usage_policy.py +175 -0
  137. waldur_api_client/models/customer_component_usage_policy_request.py +102 -0
  138. waldur_api_client/models/customers_add_user_response_400.py +65 -0
  139. waldur_api_client/models/discount_config_request.py +91 -0
  140. waldur_api_client/models/discounts_update_request.py +65 -0
  141. waldur_api_client/models/discounts_update_request_discounts.py +57 -0
  142. waldur_api_client/models/issue.py +0 -25
  143. waldur_api_client/models/managed_rancher_cluster_resources_list_field_item.py +1 -0
  144. waldur_api_client/models/managed_rancher_cluster_resources_retrieve_field_item.py +1 -0
  145. waldur_api_client/models/marketplace_orders_count_state_item.py +1 -0
  146. waldur_api_client/models/marketplace_orders_list_field_item.py +2 -0
  147. waldur_api_client/models/marketplace_orders_list_state_item.py +1 -0
  148. waldur_api_client/models/marketplace_orders_retrieve_field_item.py +2 -0
  149. waldur_api_client/models/marketplace_provider_offerings_add_user_response_400.py +65 -0
  150. waldur_api_client/models/marketplace_provider_offerings_list_course_accounts_retrieve_field_item.py +2 -0
  151. waldur_api_client/models/marketplace_provider_offerings_list_customer_service_accounts_retrieve_field_item.py +2 -0
  152. waldur_api_client/models/marketplace_provider_offerings_list_field_item.py +2 -0
  153. waldur_api_client/models/marketplace_provider_offerings_list_project_service_accounts_retrieve_field_item.py +2 -0
  154. waldur_api_client/models/marketplace_provider_offerings_retrieve_field_item.py +2 -0
  155. waldur_api_client/models/marketplace_provider_offerings_stats_retrieve_field_item.py +2 -0
  156. waldur_api_client/models/marketplace_provider_offerings_user_has_resource_access_retrieve_field_item.py +2 -0
  157. waldur_api_client/models/marketplace_provider_resources_details_retrieve_field_item.py +1 -0
  158. waldur_api_client/models/marketplace_provider_resources_list_field_item.py +1 -0
  159. waldur_api_client/models/marketplace_provider_resources_retrieve_field_item.py +1 -0
  160. waldur_api_client/models/marketplace_public_offerings_list_field_item.py +2 -0
  161. waldur_api_client/models/marketplace_public_offerings_retrieve_field_item.py +2 -0
  162. waldur_api_client/models/marketplace_resources_details_retrieve_field_item.py +1 -0
  163. waldur_api_client/models/marketplace_resources_list_field_item.py +1 -0
  164. waldur_api_client/models/marketplace_resources_retrieve_field_item.py +1 -0
  165. waldur_api_client/models/marketplace_service_providers_add_user_response_400.py +65 -0
  166. waldur_api_client/models/marketplace_site_agent_services_count_state_item.py +10 -0
  167. waldur_api_client/models/marketplace_site_agent_services_list_state_item.py +10 -0
  168. waldur_api_client/models/marketplace_software_catalogs_count_o_item.py +15 -0
  169. waldur_api_client/models/marketplace_software_catalogs_list_o_item.py +15 -0
  170. waldur_api_client/models/marketplace_software_packages_count_o_item.py +17 -0
  171. waldur_api_client/models/marketplace_software_packages_list_o_item.py +17 -0
  172. waldur_api_client/models/marketplace_software_targets_count_o_item.py +15 -0
  173. waldur_api_client/models/marketplace_software_targets_list_o_item.py +15 -0
  174. waldur_api_client/models/marketplace_software_versions_count_o_item.py +15 -0
  175. waldur_api_client/models/marketplace_software_versions_list_o_item.py +15 -0
  176. waldur_api_client/models/merged_plugin_options.py +47 -8
  177. waldur_api_client/models/merged_plugin_options_request.py +47 -8
  178. waldur_api_client/models/nested_agent_processor.py +154 -0
  179. waldur_api_client/models/nested_agent_service.py +134 -0
  180. waldur_api_client/models/nested_agent_service_request.py +90 -0
  181. waldur_api_client/models/nested_customer_usage_policy_component.py +103 -0
  182. waldur_api_client/models/nested_customer_usage_policy_component_request.py +87 -0
  183. waldur_api_client/models/nested_partition.py +412 -0
  184. waldur_api_client/models/nested_partition_request.py +397 -0
  185. waldur_api_client/models/nested_plan_component.py +155 -0
  186. waldur_api_client/models/nested_plan_component_request.py +128 -0
  187. waldur_api_client/models/nested_software_catalog.py +134 -0
  188. waldur_api_client/models/nested_software_catalog_catalog.py +86 -0
  189. waldur_api_client/models/nested_software_catalog_partition.py +86 -0
  190. waldur_api_client/models/nested_software_catalog_request.py +68 -0
  191. waldur_api_client/models/nested_software_target.py +84 -0
  192. waldur_api_client/models/nested_software_target_request.py +75 -0
  193. waldur_api_client/models/nested_software_version.py +124 -0
  194. waldur_api_client/models/nested_software_version_request.py +93 -0
  195. waldur_api_client/models/observable_object_type_enum.py +14 -0
  196. waldur_api_client/models/offering.py +42 -0
  197. waldur_api_client/models/offering_create.py +36 -0
  198. waldur_api_client/models/offering_partition.py +440 -0
  199. waldur_api_client/models/offering_partition_request.py +406 -0
  200. waldur_api_client/models/offering_software_catalog.py +176 -0
  201. waldur_api_client/models/offering_software_catalog_request.py +118 -0
  202. waldur_api_client/models/onboarding_justification.py +35 -6
  203. waldur_api_client/models/onboarding_justification_create_request.py +8 -5
  204. waldur_api_client/models/onboarding_justification_request.py +20 -6
  205. waldur_api_client/models/onboarding_justification_review_request.py +59 -0
  206. waldur_api_client/models/order_backend_id_request.py +59 -0
  207. waldur_api_client/models/order_details.py +39 -0
  208. waldur_api_client/models/order_state.py +1 -0
  209. waldur_api_client/models/patched_customer_component_usage_policy_request.py +104 -0
  210. waldur_api_client/models/patched_offering_partition_request.py +412 -0
  211. waldur_api_client/models/patched_offering_software_catalog_update_request.py +131 -0
  212. waldur_api_client/models/patched_onboarding_justification_request.py +16 -5
  213. waldur_api_client/models/patched_project_request.py +9 -0
  214. waldur_api_client/models/patched_project_request_form.py +9 -0
  215. waldur_api_client/models/patched_project_request_multipart.py +12 -0
  216. waldur_api_client/models/patched_software_catalog_request.py +86 -0
  217. waldur_api_client/models/patched_software_package_request.py +86 -0
  218. waldur_api_client/models/plan_component.py +40 -0
  219. waldur_api_client/models/project.py +27 -0
  220. waldur_api_client/models/project_recovery_request.py +70 -0
  221. waldur_api_client/models/project_request.py +9 -0
  222. waldur_api_client/models/project_request_form.py +9 -0
  223. waldur_api_client/models/project_request_multipart.py +12 -0
  224. waldur_api_client/models/project_user.py +21 -4
  225. waldur_api_client/models/projects_add_user_response_400.py +65 -0
  226. waldur_api_client/models/projects_list_field_item.py +3 -0
  227. waldur_api_client/models/projects_move_project_response_400.py +65 -0
  228. waldur_api_client/models/projects_retrieve_field_item.py +3 -0
  229. waldur_api_client/models/proposal_proposals_add_user_response_400.py +65 -0
  230. waldur_api_client/models/proposal_protected_calls_add_user_response_400.py +65 -0
  231. waldur_api_client/models/provider_offering_details.py +42 -0
  232. waldur_api_client/models/provider_plan_details.py +18 -0
  233. waldur_api_client/models/public_offering_details.py +42 -0
  234. waldur_api_client/models/remote_resource_order_remote_state_enum.py +1 -0
  235. waldur_api_client/models/{set_offerings_username.py → remove_partition_request.py} +11 -19
  236. waldur_api_client/models/remove_software_catalog_request.py +60 -0
  237. waldur_api_client/models/resource.py +33 -0
  238. waldur_api_client/models/resource_downscaled_request.py +59 -0
  239. waldur_api_client/models/resource_paused_request.py +59 -0
  240. waldur_api_client/models/resource_renewal_date_type_0.py +53 -0
  241. waldur_api_client/models/resource_restrict_member_access_request.py +59 -0
  242. waldur_api_client/models/software_catalog.py +130 -0
  243. waldur_api_client/models/software_catalog_request.py +87 -0
  244. waldur_api_client/models/software_catalog_uuid.py +60 -0
  245. waldur_api_client/models/software_package.py +168 -0
  246. waldur_api_client/models/software_package_request.py +87 -0
  247. waldur_api_client/models/software_target.py +110 -0
  248. waldur_api_client/models/software_version.py +135 -0
  249. waldur_api_client/models/user.py +20 -0
  250. waldur_api_client/models/users_list_field_item.py +1 -0
  251. waldur_api_client/models/users_me_retrieve_field_item.py +1 -0
  252. waldur_api_client/models/users_retrieve_field_item.py +1 -0
  253. {waldur_api_client-7.8.4.dist-info → waldur_api_client-7.8.5.dist-info}/METADATA +1 -1
  254. {waldur_api_client-7.8.4.dist-info → waldur_api_client-7.8.5.dist-info}/RECORD +256 -103
  255. waldur_api_client/models/marketplace_service_providers_projects_list_field_item.py +0 -37
  256. {waldur_api_client-7.8.4.dist-info → waldur_api_client-7.8.5.dist-info}/WHEEL +0 -0
  257. {waldur_api_client-7.8.4.dist-info → waldur_api_client-7.8.5.dist-info}/licenses/LICENSE +0 -0
@@ -0,0 +1,412 @@
1
+ from collections.abc import Mapping
2
+ from typing import Any, TypeVar, Union, cast
3
+ from uuid import UUID
4
+
5
+ from attrs import define as _attrs_define
6
+ from attrs import field as _attrs_field
7
+
8
+ from ..types import UNSET, Unset
9
+
10
+ T = TypeVar("T", bound="PatchedOfferingPartitionRequest")
11
+
12
+
13
+ @_attrs_define
14
+ class PatchedOfferingPartitionRequest:
15
+ """
16
+ Attributes:
17
+ offering (Union[Unset, UUID]):
18
+ partition_name (Union[Unset, str]): Name of the SLURM partition
19
+ cpu_bind (Union[None, Unset, int]): Default task binding policy (SLURM cpu_bind)
20
+ def_cpu_per_gpu (Union[None, Unset, int]): Default CPUs allocated per GPU
21
+ max_cpus_per_node (Union[None, Unset, int]): Maximum allocated CPUs per node
22
+ max_cpus_per_socket (Union[None, Unset, int]): Maximum allocated CPUs per socket
23
+ def_mem_per_cpu (Union[None, Unset, int]): Default memory per CPU in MB
24
+ def_mem_per_gpu (Union[None, Unset, int]): Default memory per GPU in MB
25
+ def_mem_per_node (Union[None, Unset, int]): Default memory per node in MB
26
+ max_mem_per_cpu (Union[None, Unset, int]): Maximum memory per CPU in MB
27
+ max_mem_per_node (Union[None, Unset, int]): Maximum memory per node in MB
28
+ default_time (Union[None, Unset, int]): Default time limit in minutes
29
+ max_time (Union[None, Unset, int]): Maximum time limit in minutes
30
+ grace_time (Union[None, Unset, int]): Preemption grace time in seconds
31
+ max_nodes (Union[None, Unset, int]): Maximum nodes per job
32
+ min_nodes (Union[None, Unset, int]): Minimum nodes per job
33
+ exclusive_topo (Union[Unset, bool]): Exclusive topology access required
34
+ exclusive_user (Union[Unset, bool]): Exclusive user access required
35
+ priority_tier (Union[None, Unset, int]): Priority tier for scheduling and preemption
36
+ qos (Union[Unset, str]): Quality of Service (QOS) name
37
+ req_resv (Union[Unset, bool]): Require reservation for job allocation
38
+ """
39
+
40
+ offering: Union[Unset, UUID] = UNSET
41
+ partition_name: Union[Unset, str] = UNSET
42
+ cpu_bind: Union[None, Unset, int] = UNSET
43
+ def_cpu_per_gpu: Union[None, Unset, int] = UNSET
44
+ max_cpus_per_node: Union[None, Unset, int] = UNSET
45
+ max_cpus_per_socket: Union[None, Unset, int] = UNSET
46
+ def_mem_per_cpu: Union[None, Unset, int] = UNSET
47
+ def_mem_per_gpu: Union[None, Unset, int] = UNSET
48
+ def_mem_per_node: Union[None, Unset, int] = UNSET
49
+ max_mem_per_cpu: Union[None, Unset, int] = UNSET
50
+ max_mem_per_node: Union[None, Unset, int] = UNSET
51
+ default_time: Union[None, Unset, int] = UNSET
52
+ max_time: Union[None, Unset, int] = UNSET
53
+ grace_time: Union[None, Unset, int] = UNSET
54
+ max_nodes: Union[None, Unset, int] = UNSET
55
+ min_nodes: Union[None, Unset, int] = UNSET
56
+ exclusive_topo: Union[Unset, bool] = UNSET
57
+ exclusive_user: Union[Unset, bool] = UNSET
58
+ priority_tier: Union[None, Unset, int] = UNSET
59
+ qos: Union[Unset, str] = UNSET
60
+ req_resv: Union[Unset, bool] = UNSET
61
+ additional_properties: dict[str, Any] = _attrs_field(init=False, factory=dict)
62
+
63
+ def to_dict(self) -> dict[str, Any]:
64
+ offering: Union[Unset, str] = UNSET
65
+ if not isinstance(self.offering, Unset):
66
+ offering = str(self.offering)
67
+
68
+ partition_name = self.partition_name
69
+
70
+ cpu_bind: Union[None, Unset, int]
71
+ if isinstance(self.cpu_bind, Unset):
72
+ cpu_bind = UNSET
73
+ else:
74
+ cpu_bind = self.cpu_bind
75
+
76
+ def_cpu_per_gpu: Union[None, Unset, int]
77
+ if isinstance(self.def_cpu_per_gpu, Unset):
78
+ def_cpu_per_gpu = UNSET
79
+ else:
80
+ def_cpu_per_gpu = self.def_cpu_per_gpu
81
+
82
+ max_cpus_per_node: Union[None, Unset, int]
83
+ if isinstance(self.max_cpus_per_node, Unset):
84
+ max_cpus_per_node = UNSET
85
+ else:
86
+ max_cpus_per_node = self.max_cpus_per_node
87
+
88
+ max_cpus_per_socket: Union[None, Unset, int]
89
+ if isinstance(self.max_cpus_per_socket, Unset):
90
+ max_cpus_per_socket = UNSET
91
+ else:
92
+ max_cpus_per_socket = self.max_cpus_per_socket
93
+
94
+ def_mem_per_cpu: Union[None, Unset, int]
95
+ if isinstance(self.def_mem_per_cpu, Unset):
96
+ def_mem_per_cpu = UNSET
97
+ else:
98
+ def_mem_per_cpu = self.def_mem_per_cpu
99
+
100
+ def_mem_per_gpu: Union[None, Unset, int]
101
+ if isinstance(self.def_mem_per_gpu, Unset):
102
+ def_mem_per_gpu = UNSET
103
+ else:
104
+ def_mem_per_gpu = self.def_mem_per_gpu
105
+
106
+ def_mem_per_node: Union[None, Unset, int]
107
+ if isinstance(self.def_mem_per_node, Unset):
108
+ def_mem_per_node = UNSET
109
+ else:
110
+ def_mem_per_node = self.def_mem_per_node
111
+
112
+ max_mem_per_cpu: Union[None, Unset, int]
113
+ if isinstance(self.max_mem_per_cpu, Unset):
114
+ max_mem_per_cpu = UNSET
115
+ else:
116
+ max_mem_per_cpu = self.max_mem_per_cpu
117
+
118
+ max_mem_per_node: Union[None, Unset, int]
119
+ if isinstance(self.max_mem_per_node, Unset):
120
+ max_mem_per_node = UNSET
121
+ else:
122
+ max_mem_per_node = self.max_mem_per_node
123
+
124
+ default_time: Union[None, Unset, int]
125
+ if isinstance(self.default_time, Unset):
126
+ default_time = UNSET
127
+ else:
128
+ default_time = self.default_time
129
+
130
+ max_time: Union[None, Unset, int]
131
+ if isinstance(self.max_time, Unset):
132
+ max_time = UNSET
133
+ else:
134
+ max_time = self.max_time
135
+
136
+ grace_time: Union[None, Unset, int]
137
+ if isinstance(self.grace_time, Unset):
138
+ grace_time = UNSET
139
+ else:
140
+ grace_time = self.grace_time
141
+
142
+ max_nodes: Union[None, Unset, int]
143
+ if isinstance(self.max_nodes, Unset):
144
+ max_nodes = UNSET
145
+ else:
146
+ max_nodes = self.max_nodes
147
+
148
+ min_nodes: Union[None, Unset, int]
149
+ if isinstance(self.min_nodes, Unset):
150
+ min_nodes = UNSET
151
+ else:
152
+ min_nodes = self.min_nodes
153
+
154
+ exclusive_topo = self.exclusive_topo
155
+
156
+ exclusive_user = self.exclusive_user
157
+
158
+ priority_tier: Union[None, Unset, int]
159
+ if isinstance(self.priority_tier, Unset):
160
+ priority_tier = UNSET
161
+ else:
162
+ priority_tier = self.priority_tier
163
+
164
+ qos = self.qos
165
+
166
+ req_resv = self.req_resv
167
+
168
+ field_dict: dict[str, Any] = {}
169
+ field_dict.update(self.additional_properties)
170
+ field_dict.update({})
171
+ if offering is not UNSET:
172
+ field_dict["offering"] = offering
173
+ if partition_name is not UNSET:
174
+ field_dict["partition_name"] = partition_name
175
+ if cpu_bind is not UNSET:
176
+ field_dict["cpu_bind"] = cpu_bind
177
+ if def_cpu_per_gpu is not UNSET:
178
+ field_dict["def_cpu_per_gpu"] = def_cpu_per_gpu
179
+ if max_cpus_per_node is not UNSET:
180
+ field_dict["max_cpus_per_node"] = max_cpus_per_node
181
+ if max_cpus_per_socket is not UNSET:
182
+ field_dict["max_cpus_per_socket"] = max_cpus_per_socket
183
+ if def_mem_per_cpu is not UNSET:
184
+ field_dict["def_mem_per_cpu"] = def_mem_per_cpu
185
+ if def_mem_per_gpu is not UNSET:
186
+ field_dict["def_mem_per_gpu"] = def_mem_per_gpu
187
+ if def_mem_per_node is not UNSET:
188
+ field_dict["def_mem_per_node"] = def_mem_per_node
189
+ if max_mem_per_cpu is not UNSET:
190
+ field_dict["max_mem_per_cpu"] = max_mem_per_cpu
191
+ if max_mem_per_node is not UNSET:
192
+ field_dict["max_mem_per_node"] = max_mem_per_node
193
+ if default_time is not UNSET:
194
+ field_dict["default_time"] = default_time
195
+ if max_time is not UNSET:
196
+ field_dict["max_time"] = max_time
197
+ if grace_time is not UNSET:
198
+ field_dict["grace_time"] = grace_time
199
+ if max_nodes is not UNSET:
200
+ field_dict["max_nodes"] = max_nodes
201
+ if min_nodes is not UNSET:
202
+ field_dict["min_nodes"] = min_nodes
203
+ if exclusive_topo is not UNSET:
204
+ field_dict["exclusive_topo"] = exclusive_topo
205
+ if exclusive_user is not UNSET:
206
+ field_dict["exclusive_user"] = exclusive_user
207
+ if priority_tier is not UNSET:
208
+ field_dict["priority_tier"] = priority_tier
209
+ if qos is not UNSET:
210
+ field_dict["qos"] = qos
211
+ if req_resv is not UNSET:
212
+ field_dict["req_resv"] = req_resv
213
+
214
+ return field_dict
215
+
216
+ @classmethod
217
+ def from_dict(cls: type[T], src_dict: Mapping[str, Any]) -> T:
218
+ d = dict(src_dict)
219
+ _offering = d.pop("offering", UNSET)
220
+ offering: Union[Unset, UUID]
221
+ if isinstance(_offering, Unset):
222
+ offering = UNSET
223
+ else:
224
+ offering = UUID(_offering)
225
+
226
+ partition_name = d.pop("partition_name", UNSET)
227
+
228
+ def _parse_cpu_bind(data: object) -> Union[None, Unset, int]:
229
+ if data is None:
230
+ return data
231
+ if isinstance(data, Unset):
232
+ return data
233
+ return cast(Union[None, Unset, int], data)
234
+
235
+ cpu_bind = _parse_cpu_bind(d.pop("cpu_bind", UNSET))
236
+
237
+ def _parse_def_cpu_per_gpu(data: object) -> Union[None, Unset, int]:
238
+ if data is None:
239
+ return data
240
+ if isinstance(data, Unset):
241
+ return data
242
+ return cast(Union[None, Unset, int], data)
243
+
244
+ def_cpu_per_gpu = _parse_def_cpu_per_gpu(d.pop("def_cpu_per_gpu", UNSET))
245
+
246
+ def _parse_max_cpus_per_node(data: object) -> Union[None, Unset, int]:
247
+ if data is None:
248
+ return data
249
+ if isinstance(data, Unset):
250
+ return data
251
+ return cast(Union[None, Unset, int], data)
252
+
253
+ max_cpus_per_node = _parse_max_cpus_per_node(d.pop("max_cpus_per_node", UNSET))
254
+
255
+ def _parse_max_cpus_per_socket(data: object) -> Union[None, Unset, int]:
256
+ if data is None:
257
+ return data
258
+ if isinstance(data, Unset):
259
+ return data
260
+ return cast(Union[None, Unset, int], data)
261
+
262
+ max_cpus_per_socket = _parse_max_cpus_per_socket(d.pop("max_cpus_per_socket", UNSET))
263
+
264
+ def _parse_def_mem_per_cpu(data: object) -> Union[None, Unset, int]:
265
+ if data is None:
266
+ return data
267
+ if isinstance(data, Unset):
268
+ return data
269
+ return cast(Union[None, Unset, int], data)
270
+
271
+ def_mem_per_cpu = _parse_def_mem_per_cpu(d.pop("def_mem_per_cpu", UNSET))
272
+
273
+ def _parse_def_mem_per_gpu(data: object) -> Union[None, Unset, int]:
274
+ if data is None:
275
+ return data
276
+ if isinstance(data, Unset):
277
+ return data
278
+ return cast(Union[None, Unset, int], data)
279
+
280
+ def_mem_per_gpu = _parse_def_mem_per_gpu(d.pop("def_mem_per_gpu", UNSET))
281
+
282
+ def _parse_def_mem_per_node(data: object) -> Union[None, Unset, int]:
283
+ if data is None:
284
+ return data
285
+ if isinstance(data, Unset):
286
+ return data
287
+ return cast(Union[None, Unset, int], data)
288
+
289
+ def_mem_per_node = _parse_def_mem_per_node(d.pop("def_mem_per_node", UNSET))
290
+
291
+ def _parse_max_mem_per_cpu(data: object) -> Union[None, Unset, int]:
292
+ if data is None:
293
+ return data
294
+ if isinstance(data, Unset):
295
+ return data
296
+ return cast(Union[None, Unset, int], data)
297
+
298
+ max_mem_per_cpu = _parse_max_mem_per_cpu(d.pop("max_mem_per_cpu", UNSET))
299
+
300
+ def _parse_max_mem_per_node(data: object) -> Union[None, Unset, int]:
301
+ if data is None:
302
+ return data
303
+ if isinstance(data, Unset):
304
+ return data
305
+ return cast(Union[None, Unset, int], data)
306
+
307
+ max_mem_per_node = _parse_max_mem_per_node(d.pop("max_mem_per_node", UNSET))
308
+
309
+ def _parse_default_time(data: object) -> Union[None, Unset, int]:
310
+ if data is None:
311
+ return data
312
+ if isinstance(data, Unset):
313
+ return data
314
+ return cast(Union[None, Unset, int], data)
315
+
316
+ default_time = _parse_default_time(d.pop("default_time", UNSET))
317
+
318
+ def _parse_max_time(data: object) -> Union[None, Unset, int]:
319
+ if data is None:
320
+ return data
321
+ if isinstance(data, Unset):
322
+ return data
323
+ return cast(Union[None, Unset, int], data)
324
+
325
+ max_time = _parse_max_time(d.pop("max_time", UNSET))
326
+
327
+ def _parse_grace_time(data: object) -> Union[None, Unset, int]:
328
+ if data is None:
329
+ return data
330
+ if isinstance(data, Unset):
331
+ return data
332
+ return cast(Union[None, Unset, int], data)
333
+
334
+ grace_time = _parse_grace_time(d.pop("grace_time", UNSET))
335
+
336
+ def _parse_max_nodes(data: object) -> Union[None, Unset, int]:
337
+ if data is None:
338
+ return data
339
+ if isinstance(data, Unset):
340
+ return data
341
+ return cast(Union[None, Unset, int], data)
342
+
343
+ max_nodes = _parse_max_nodes(d.pop("max_nodes", UNSET))
344
+
345
+ def _parse_min_nodes(data: object) -> Union[None, Unset, int]:
346
+ if data is None:
347
+ return data
348
+ if isinstance(data, Unset):
349
+ return data
350
+ return cast(Union[None, Unset, int], data)
351
+
352
+ min_nodes = _parse_min_nodes(d.pop("min_nodes", UNSET))
353
+
354
+ exclusive_topo = d.pop("exclusive_topo", UNSET)
355
+
356
+ exclusive_user = d.pop("exclusive_user", UNSET)
357
+
358
+ def _parse_priority_tier(data: object) -> Union[None, Unset, int]:
359
+ if data is None:
360
+ return data
361
+ if isinstance(data, Unset):
362
+ return data
363
+ return cast(Union[None, Unset, int], data)
364
+
365
+ priority_tier = _parse_priority_tier(d.pop("priority_tier", UNSET))
366
+
367
+ qos = d.pop("qos", UNSET)
368
+
369
+ req_resv = d.pop("req_resv", UNSET)
370
+
371
+ patched_offering_partition_request = cls(
372
+ offering=offering,
373
+ partition_name=partition_name,
374
+ cpu_bind=cpu_bind,
375
+ def_cpu_per_gpu=def_cpu_per_gpu,
376
+ max_cpus_per_node=max_cpus_per_node,
377
+ max_cpus_per_socket=max_cpus_per_socket,
378
+ def_mem_per_cpu=def_mem_per_cpu,
379
+ def_mem_per_gpu=def_mem_per_gpu,
380
+ def_mem_per_node=def_mem_per_node,
381
+ max_mem_per_cpu=max_mem_per_cpu,
382
+ max_mem_per_node=max_mem_per_node,
383
+ default_time=default_time,
384
+ max_time=max_time,
385
+ grace_time=grace_time,
386
+ max_nodes=max_nodes,
387
+ min_nodes=min_nodes,
388
+ exclusive_topo=exclusive_topo,
389
+ exclusive_user=exclusive_user,
390
+ priority_tier=priority_tier,
391
+ qos=qos,
392
+ req_resv=req_resv,
393
+ )
394
+
395
+ patched_offering_partition_request.additional_properties = d
396
+ return patched_offering_partition_request
397
+
398
+ @property
399
+ def additional_keys(self) -> list[str]:
400
+ return list(self.additional_properties.keys())
401
+
402
+ def __getitem__(self, key: str) -> Any:
403
+ return self.additional_properties[key]
404
+
405
+ def __setitem__(self, key: str, value: Any) -> None:
406
+ self.additional_properties[key] = value
407
+
408
+ def __delitem__(self, key: str) -> None:
409
+ del self.additional_properties[key]
410
+
411
+ def __contains__(self, key: str) -> bool:
412
+ return key in self.additional_properties
@@ -0,0 +1,131 @@
1
+ from collections.abc import Mapping
2
+ from typing import Any, TypeVar, Union, cast
3
+ from uuid import UUID
4
+
5
+ from attrs import define as _attrs_define
6
+ from attrs import field as _attrs_field
7
+
8
+ from ..types import UNSET, Unset
9
+
10
+ T = TypeVar("T", bound="PatchedOfferingSoftwareCatalogUpdateRequest")
11
+
12
+
13
+ @_attrs_define
14
+ class PatchedOfferingSoftwareCatalogUpdateRequest:
15
+ """
16
+ Attributes:
17
+ offering_catalog_uuid (Union[Unset, UUID]):
18
+ catalog (Union[Unset, UUID]):
19
+ enabled_cpu_family (Union[Unset, Any]): List of enabled CPU families: ['x86_64', 'aarch64']
20
+ enabled_cpu_microarchitectures (Union[Unset, Any]): List of enabled CPU microarchitectures: ['generic', 'zen3']
21
+ partition (Union[None, UUID, Unset]):
22
+ """
23
+
24
+ offering_catalog_uuid: Union[Unset, UUID] = UNSET
25
+ catalog: Union[Unset, UUID] = UNSET
26
+ enabled_cpu_family: Union[Unset, Any] = UNSET
27
+ enabled_cpu_microarchitectures: Union[Unset, Any] = UNSET
28
+ partition: Union[None, UUID, Unset] = UNSET
29
+ additional_properties: dict[str, Any] = _attrs_field(init=False, factory=dict)
30
+
31
+ def to_dict(self) -> dict[str, Any]:
32
+ offering_catalog_uuid: Union[Unset, str] = UNSET
33
+ if not isinstance(self.offering_catalog_uuid, Unset):
34
+ offering_catalog_uuid = str(self.offering_catalog_uuid)
35
+
36
+ catalog: Union[Unset, str] = UNSET
37
+ if not isinstance(self.catalog, Unset):
38
+ catalog = str(self.catalog)
39
+
40
+ enabled_cpu_family = self.enabled_cpu_family
41
+
42
+ enabled_cpu_microarchitectures = self.enabled_cpu_microarchitectures
43
+
44
+ partition: Union[None, Unset, str]
45
+ if isinstance(self.partition, Unset):
46
+ partition = UNSET
47
+ elif isinstance(self.partition, UUID):
48
+ partition = str(self.partition)
49
+ else:
50
+ partition = self.partition
51
+
52
+ field_dict: dict[str, Any] = {}
53
+ field_dict.update(self.additional_properties)
54
+ field_dict.update({})
55
+ if offering_catalog_uuid is not UNSET:
56
+ field_dict["offering_catalog_uuid"] = offering_catalog_uuid
57
+ if catalog is not UNSET:
58
+ field_dict["catalog"] = catalog
59
+ if enabled_cpu_family is not UNSET:
60
+ field_dict["enabled_cpu_family"] = enabled_cpu_family
61
+ if enabled_cpu_microarchitectures is not UNSET:
62
+ field_dict["enabled_cpu_microarchitectures"] = enabled_cpu_microarchitectures
63
+ if partition is not UNSET:
64
+ field_dict["partition"] = partition
65
+
66
+ return field_dict
67
+
68
+ @classmethod
69
+ def from_dict(cls: type[T], src_dict: Mapping[str, Any]) -> T:
70
+ d = dict(src_dict)
71
+ _offering_catalog_uuid = d.pop("offering_catalog_uuid", UNSET)
72
+ offering_catalog_uuid: Union[Unset, UUID]
73
+ if isinstance(_offering_catalog_uuid, Unset):
74
+ offering_catalog_uuid = UNSET
75
+ else:
76
+ offering_catalog_uuid = UUID(_offering_catalog_uuid)
77
+
78
+ _catalog = d.pop("catalog", UNSET)
79
+ catalog: Union[Unset, UUID]
80
+ if isinstance(_catalog, Unset):
81
+ catalog = UNSET
82
+ else:
83
+ catalog = UUID(_catalog)
84
+
85
+ enabled_cpu_family = d.pop("enabled_cpu_family", UNSET)
86
+
87
+ enabled_cpu_microarchitectures = d.pop("enabled_cpu_microarchitectures", UNSET)
88
+
89
+ def _parse_partition(data: object) -> Union[None, UUID, Unset]:
90
+ if data is None:
91
+ return data
92
+ if isinstance(data, Unset):
93
+ return data
94
+ try:
95
+ if not isinstance(data, str):
96
+ raise TypeError()
97
+ partition_type_0 = UUID(data)
98
+
99
+ return partition_type_0
100
+ except: # noqa: E722
101
+ pass
102
+ return cast(Union[None, UUID, Unset], data)
103
+
104
+ partition = _parse_partition(d.pop("partition", UNSET))
105
+
106
+ patched_offering_software_catalog_update_request = cls(
107
+ offering_catalog_uuid=offering_catalog_uuid,
108
+ catalog=catalog,
109
+ enabled_cpu_family=enabled_cpu_family,
110
+ enabled_cpu_microarchitectures=enabled_cpu_microarchitectures,
111
+ partition=partition,
112
+ )
113
+
114
+ patched_offering_software_catalog_update_request.additional_properties = d
115
+ return patched_offering_software_catalog_update_request
116
+
117
+ @property
118
+ def additional_keys(self) -> list[str]:
119
+ return list(self.additional_properties.keys())
120
+
121
+ def __getitem__(self, key: str) -> Any:
122
+ return self.additional_properties[key]
123
+
124
+ def __setitem__(self, key: str, value: Any) -> None:
125
+ self.additional_properties[key] = value
126
+
127
+ def __delitem__(self, key: str) -> None:
128
+ del self.additional_properties[key]
129
+
130
+ def __contains__(self, key: str) -> bool:
131
+ return key in self.additional_properties
@@ -1,5 +1,5 @@
1
1
  from collections.abc import Mapping
2
- from typing import Any, TypeVar, Union
2
+ from typing import Any, TypeVar, Union, cast
3
3
 
4
4
  from attrs import define as _attrs_define
5
5
  from attrs import field as _attrs_field
@@ -15,12 +15,12 @@ class PatchedOnboardingJustificationRequest:
15
15
  Attributes:
16
16
  verification (Union[Unset, int]):
17
17
  user (Union[Unset, int]):
18
- user_justification (Union[Unset, str]): User's explanation for why they should be authorized
18
+ user_justification (Union[None, Unset, str]): User's explanation for why they should be authorized
19
19
  """
20
20
 
21
21
  verification: Union[Unset, int] = UNSET
22
22
  user: Union[Unset, int] = UNSET
23
- user_justification: Union[Unset, str] = UNSET
23
+ user_justification: Union[None, Unset, str] = UNSET
24
24
  additional_properties: dict[str, Any] = _attrs_field(init=False, factory=dict)
25
25
 
26
26
  def to_dict(self) -> dict[str, Any]:
@@ -28,7 +28,11 @@ class PatchedOnboardingJustificationRequest:
28
28
 
29
29
  user = self.user
30
30
 
31
- user_justification = self.user_justification
31
+ user_justification: Union[None, Unset, str]
32
+ if isinstance(self.user_justification, Unset):
33
+ user_justification = UNSET
34
+ else:
35
+ user_justification = self.user_justification
32
36
 
33
37
  field_dict: dict[str, Any] = {}
34
38
  field_dict.update(self.additional_properties)
@@ -49,7 +53,14 @@ class PatchedOnboardingJustificationRequest:
49
53
 
50
54
  user = d.pop("user", UNSET)
51
55
 
52
- user_justification = d.pop("user_justification", UNSET)
56
+ def _parse_user_justification(data: object) -> Union[None, Unset, str]:
57
+ if data is None:
58
+ return data
59
+ if isinstance(data, Unset):
60
+ return data
61
+ return cast(Union[None, Unset, str], data)
62
+
63
+ user_justification = _parse_user_justification(d.pop("user_justification", UNSET))
53
64
 
54
65
  patched_onboarding_justification_request = cls(
55
66
  verification=verification,
@@ -32,6 +32,7 @@ class PatchedProjectRequest:
32
32
  is_industry (Union[Unset, bool]):
33
33
  image (Union[File, None, Unset]):
34
34
  kind (Union[Unset, KindEnum]):
35
+ staff_notes (Union[Unset, str]):
35
36
  """
36
37
 
37
38
  name: Union[Unset, str] = UNSET
@@ -46,6 +47,7 @@ class PatchedProjectRequest:
46
47
  is_industry: Union[Unset, bool] = UNSET
47
48
  image: Union[File, None, Unset] = UNSET
48
49
  kind: Union[Unset, KindEnum] = UNSET
50
+ staff_notes: Union[Unset, str] = UNSET
49
51
  additional_properties: dict[str, Any] = _attrs_field(init=False, factory=dict)
50
52
 
51
53
  def to_dict(self) -> dict[str, Any]:
@@ -106,6 +108,8 @@ class PatchedProjectRequest:
106
108
  if not isinstance(self.kind, Unset):
107
109
  kind = self.kind.value
108
110
 
111
+ staff_notes = self.staff_notes
112
+
109
113
  field_dict: dict[str, Any] = {}
110
114
  field_dict.update(self.additional_properties)
111
115
  field_dict.update({})
@@ -133,6 +137,8 @@ class PatchedProjectRequest:
133
137
  field_dict["image"] = image
134
138
  if kind is not UNSET:
135
139
  field_dict["kind"] = kind
140
+ if staff_notes is not UNSET:
141
+ field_dict["staff_notes"] = staff_notes
136
142
 
137
143
  return field_dict
138
144
 
@@ -243,6 +249,8 @@ class PatchedProjectRequest:
243
249
  else:
244
250
  kind = KindEnum(_kind)
245
251
 
252
+ staff_notes = d.pop("staff_notes", UNSET)
253
+
246
254
  patched_project_request = cls(
247
255
  name=name,
248
256
  slug=slug,
@@ -256,6 +264,7 @@ class PatchedProjectRequest:
256
264
  is_industry=is_industry,
257
265
  image=image,
258
266
  kind=kind,
267
+ staff_notes=staff_notes,
259
268
  )
260
269
 
261
270
  patched_project_request.additional_properties = d
@@ -32,6 +32,7 @@ class PatchedProjectRequestForm:
32
32
  is_industry (Union[Unset, bool]):
33
33
  image (Union[File, None, Unset]):
34
34
  kind (Union[Unset, KindEnum]):
35
+ staff_notes (Union[Unset, str]):
35
36
  """
36
37
 
37
38
  name: Union[Unset, str] = UNSET
@@ -46,6 +47,7 @@ class PatchedProjectRequestForm:
46
47
  is_industry: Union[Unset, bool] = UNSET
47
48
  image: Union[File, None, Unset] = UNSET
48
49
  kind: Union[Unset, KindEnum] = UNSET
50
+ staff_notes: Union[Unset, str] = UNSET
49
51
  additional_properties: dict[str, Any] = _attrs_field(init=False, factory=dict)
50
52
 
51
53
  def to_dict(self) -> dict[str, Any]:
@@ -106,6 +108,8 @@ class PatchedProjectRequestForm:
106
108
  if not isinstance(self.kind, Unset):
107
109
  kind = self.kind.value
108
110
 
111
+ staff_notes = self.staff_notes
112
+
109
113
  field_dict: dict[str, Any] = {}
110
114
  field_dict.update(self.additional_properties)
111
115
  field_dict.update({})
@@ -133,6 +137,8 @@ class PatchedProjectRequestForm:
133
137
  field_dict["image"] = image
134
138
  if kind is not UNSET:
135
139
  field_dict["kind"] = kind
140
+ if staff_notes is not UNSET:
141
+ field_dict["staff_notes"] = staff_notes
136
142
 
137
143
  return field_dict
138
144
 
@@ -243,6 +249,8 @@ class PatchedProjectRequestForm:
243
249
  else:
244
250
  kind = KindEnum(_kind)
245
251
 
252
+ staff_notes = d.pop("staff_notes", UNSET)
253
+
246
254
  patched_project_request_form = cls(
247
255
  name=name,
248
256
  slug=slug,
@@ -256,6 +264,7 @@ class PatchedProjectRequestForm:
256
264
  is_industry=is_industry,
257
265
  image=image,
258
266
  kind=kind,
267
+ staff_notes=staff_notes,
259
268
  )
260
269
 
261
270
  patched_project_request_form.additional_properties = d