waldur-api-client 7.8.3__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 (341) 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 +108 -0
  3. waldur_api_client/api/booking_resources/booking_resources_list.py +108 -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_offering_users/marketplace_offering_users_checklist_template_count.py +125 -0
  19. waldur_api_client/api/marketplace_offering_users/marketplace_offering_users_checklist_template_retrieve.py +126 -0
  20. waldur_api_client/api/marketplace_orders/marketplace_orders_set_backend_id.py +105 -0
  21. waldur_api_client/api/marketplace_plans/marketplace_plans_update_discounts.py +123 -0
  22. waldur_api_client/api/marketplace_provider_offerings/marketplace_provider_offerings_add_partition.py +168 -0
  23. waldur_api_client/api/marketplace_provider_offerings/marketplace_provider_offerings_add_software_catalog.py +168 -0
  24. waldur_api_client/api/marketplace_provider_offerings/marketplace_provider_offerings_add_user.py +19 -10
  25. waldur_api_client/api/marketplace_provider_offerings/marketplace_provider_offerings_component_stats_list.py +15 -0
  26. waldur_api_client/api/marketplace_provider_offerings/marketplace_provider_offerings_costs_list.py +15 -0
  27. waldur_api_client/api/marketplace_provider_offerings/marketplace_provider_offerings_count.py +15 -0
  28. waldur_api_client/api/marketplace_provider_offerings/marketplace_provider_offerings_create_offering_component.py +1 -1
  29. waldur_api_client/api/marketplace_provider_offerings/marketplace_provider_offerings_customers_list.py +15 -0
  30. waldur_api_client/api/marketplace_provider_offerings/marketplace_provider_offerings_groups_count.py +15 -0
  31. waldur_api_client/api/marketplace_provider_offerings/marketplace_provider_offerings_groups_list.py +15 -0
  32. waldur_api_client/api/marketplace_provider_offerings/marketplace_provider_offerings_list.py +15 -0
  33. waldur_api_client/api/marketplace_provider_offerings/marketplace_provider_offerings_remove_partition.py +107 -0
  34. waldur_api_client/api/marketplace_provider_offerings/marketplace_provider_offerings_remove_software_catalog.py +107 -0
  35. waldur_api_client/api/marketplace_provider_offerings/marketplace_provider_offerings_tos_stats_retrieve.py +146 -0
  36. waldur_api_client/api/marketplace_provider_offerings/marketplace_provider_offerings_update_partition_partial_update.py +168 -0
  37. waldur_api_client/api/marketplace_provider_offerings/marketplace_provider_offerings_update_software_catalog_partial_update.py +168 -0
  38. waldur_api_client/api/marketplace_provider_resources/marketplace_provider_resources_count.py +108 -0
  39. waldur_api_client/api/marketplace_provider_resources/marketplace_provider_resources_list.py +108 -0
  40. waldur_api_client/api/marketplace_provider_resources/marketplace_provider_resources_set_downscaled.py +107 -0
  41. waldur_api_client/api/marketplace_provider_resources/marketplace_provider_resources_set_paused.py +107 -0
  42. waldur_api_client/api/marketplace_provider_resources/marketplace_provider_resources_set_restrict_member_access.py +107 -0
  43. waldur_api_client/api/marketplace_provider_resources/marketplace_provider_resources_update_options.py +168 -0
  44. waldur_api_client/api/marketplace_public_offerings/marketplace_public_offerings_count.py +15 -0
  45. waldur_api_client/api/marketplace_public_offerings/marketplace_public_offerings_list.py +15 -0
  46. waldur_api_client/api/marketplace_resources/marketplace_resources_count.py +108 -0
  47. waldur_api_client/api/marketplace_resources/marketplace_resources_list.py +108 -0
  48. waldur_api_client/api/marketplace_resources/marketplace_resources_renew.py +166 -0
  49. waldur_api_client/api/marketplace_resources/marketplace_resources_set_downscaled.py +107 -0
  50. waldur_api_client/api/marketplace_resources/marketplace_resources_set_paused.py +107 -0
  51. waldur_api_client/api/marketplace_resources/marketplace_resources_set_restrict_member_access.py +107 -0
  52. waldur_api_client/api/marketplace_service_providers/marketplace_service_providers_add_user.py +17 -10
  53. waldur_api_client/api/marketplace_service_providers/marketplace_service_providers_customer_projects_list.py +15 -0
  54. waldur_api_client/api/marketplace_service_providers/marketplace_service_providers_offerings_list.py +15 -0
  55. waldur_api_client/api/marketplace_service_providers/marketplace_service_providers_projects_list.py +14 -24
  56. waldur_api_client/api/marketplace_service_providers/marketplace_service_providers_set_offerings_username.py +8 -67
  57. waldur_api_client/api/marketplace_service_providers/service_provider_checklists_summary.py +189 -0
  58. waldur_api_client/api/marketplace_site_agent_identities/__init__.py +1 -0
  59. waldur_api_client/api/marketplace_site_agent_identities/marketplace_site_agent_identities_count.py +240 -0
  60. waldur_api_client/api/marketplace_site_agent_identities/marketplace_site_agent_identities_create.py +148 -0
  61. waldur_api_client/api/marketplace_site_agent_identities/marketplace_site_agent_identities_destroy.py +89 -0
  62. waldur_api_client/api/marketplace_site_agent_identities/marketplace_site_agent_identities_list.py +241 -0
  63. waldur_api_client/api/marketplace_site_agent_identities/marketplace_site_agent_identities_register_event_subscription.py +176 -0
  64. waldur_api_client/api/marketplace_site_agent_identities/marketplace_site_agent_identities_register_service.py +170 -0
  65. waldur_api_client/api/marketplace_site_agent_identities/marketplace_site_agent_identities_retrieve.py +140 -0
  66. waldur_api_client/api/marketplace_site_agent_identities/marketplace_site_agent_identities_update.py +162 -0
  67. waldur_api_client/api/marketplace_site_agent_processors/__init__.py +1 -0
  68. waldur_api_client/api/marketplace_site_agent_processors/marketplace_site_agent_processors_count.py +240 -0
  69. waldur_api_client/api/marketplace_site_agent_processors/marketplace_site_agent_processors_list.py +241 -0
  70. waldur_api_client/api/marketplace_site_agent_processors/marketplace_site_agent_processors_retrieve.py +142 -0
  71. waldur_api_client/api/marketplace_site_agent_services/__init__.py +1 -0
  72. waldur_api_client/api/marketplace_site_agent_services/marketplace_site_agent_services_count.py +229 -0
  73. waldur_api_client/api/marketplace_site_agent_services/marketplace_site_agent_services_list.py +230 -0
  74. waldur_api_client/api/marketplace_site_agent_services/marketplace_site_agent_services_register_processor.py +172 -0
  75. waldur_api_client/api/marketplace_site_agent_services/marketplace_site_agent_services_retrieve.py +140 -0
  76. waldur_api_client/api/marketplace_site_agent_services/marketplace_site_agent_services_set_statistics.py +166 -0
  77. waldur_api_client/api/marketplace_software_catalogs/__init__.py +1 -0
  78. waldur_api_client/api/marketplace_software_catalogs/marketplace_software_catalogs_count.py +225 -0
  79. waldur_api_client/api/marketplace_software_catalogs/marketplace_software_catalogs_create.py +150 -0
  80. waldur_api_client/api/marketplace_software_catalogs/marketplace_software_catalogs_destroy.py +89 -0
  81. waldur_api_client/api/marketplace_software_catalogs/marketplace_software_catalogs_list.py +226 -0
  82. waldur_api_client/api/marketplace_software_catalogs/marketplace_software_catalogs_partial_update.py +164 -0
  83. waldur_api_client/api/marketplace_software_catalogs/marketplace_software_catalogs_retrieve.py +142 -0
  84. waldur_api_client/api/marketplace_software_catalogs/marketplace_software_catalogs_update.py +164 -0
  85. waldur_api_client/api/marketplace_software_packages/__init__.py +1 -0
  86. waldur_api_client/api/marketplace_software_packages/marketplace_software_packages_count.py +352 -0
  87. waldur_api_client/api/marketplace_software_packages/marketplace_software_packages_create.py +150 -0
  88. waldur_api_client/api/marketplace_software_packages/marketplace_software_packages_destroy.py +89 -0
  89. waldur_api_client/api/marketplace_software_packages/marketplace_software_packages_list.py +353 -0
  90. waldur_api_client/api/marketplace_software_packages/marketplace_software_packages_partial_update.py +164 -0
  91. waldur_api_client/api/marketplace_software_packages/marketplace_software_packages_retrieve.py +142 -0
  92. waldur_api_client/api/marketplace_software_packages/marketplace_software_packages_update.py +164 -0
  93. waldur_api_client/api/marketplace_software_targets/__init__.py +1 -0
  94. waldur_api_client/api/marketplace_software_targets/marketplace_software_targets_count.py +313 -0
  95. waldur_api_client/api/marketplace_software_targets/marketplace_software_targets_create.py +117 -0
  96. waldur_api_client/api/marketplace_software_targets/marketplace_software_targets_destroy.py +89 -0
  97. waldur_api_client/api/marketplace_software_targets/marketplace_software_targets_list.py +314 -0
  98. waldur_api_client/api/marketplace_software_targets/marketplace_software_targets_partial_update.py +142 -0
  99. waldur_api_client/api/marketplace_software_targets/marketplace_software_targets_retrieve.py +142 -0
  100. waldur_api_client/api/marketplace_software_targets/marketplace_software_targets_update.py +142 -0
  101. waldur_api_client/api/marketplace_software_versions/__init__.py +1 -0
  102. waldur_api_client/api/marketplace_software_versions/marketplace_software_versions_count.py +310 -0
  103. waldur_api_client/api/marketplace_software_versions/marketplace_software_versions_create.py +117 -0
  104. waldur_api_client/api/marketplace_software_versions/marketplace_software_versions_destroy.py +89 -0
  105. waldur_api_client/api/marketplace_software_versions/marketplace_software_versions_list.py +311 -0
  106. waldur_api_client/api/marketplace_software_versions/marketplace_software_versions_partial_update.py +142 -0
  107. waldur_api_client/api/marketplace_software_versions/marketplace_software_versions_retrieve.py +142 -0
  108. waldur_api_client/api/marketplace_software_versions/marketplace_software_versions_update.py +142 -0
  109. waldur_api_client/api/onboarding/__init__.py +1 -0
  110. waldur_api_client/api/onboarding/onboarding_supported_countries_retrieve.py +74 -0
  111. waldur_api_client/api/onboarding_justifications/__init__.py +1 -0
  112. waldur_api_client/api/onboarding_justifications/onboarding_justifications_approve.py +168 -0
  113. waldur_api_client/api/onboarding_justifications/onboarding_justifications_attach_document.py +211 -0
  114. waldur_api_client/api/onboarding_justifications/onboarding_justifications_count.py +172 -0
  115. waldur_api_client/api/onboarding_justifications/onboarding_justifications_create.py +150 -0
  116. waldur_api_client/api/onboarding_justifications/onboarding_justifications_create_justification.py +154 -0
  117. waldur_api_client/api/onboarding_justifications/onboarding_justifications_destroy.py +89 -0
  118. waldur_api_client/api/onboarding_justifications/onboarding_justifications_list.py +175 -0
  119. waldur_api_client/api/onboarding_justifications/onboarding_justifications_partial_update.py +164 -0
  120. waldur_api_client/api/onboarding_justifications/onboarding_justifications_reject.py +168 -0
  121. waldur_api_client/api/onboarding_justifications/onboarding_justifications_retrieve.py +142 -0
  122. waldur_api_client/api/onboarding_justifications/onboarding_justifications_update.py +164 -0
  123. waldur_api_client/api/onboarding_verifications/__init__.py +1 -0
  124. waldur_api_client/api/onboarding_verifications/onboarding_verifications_count.py +172 -0
  125. waldur_api_client/api/onboarding_verifications/onboarding_verifications_create.py +150 -0
  126. waldur_api_client/api/onboarding_verifications/onboarding_verifications_create_customer.py +144 -0
  127. waldur_api_client/api/onboarding_verifications/onboarding_verifications_destroy.py +89 -0
  128. waldur_api_client/api/onboarding_verifications/onboarding_verifications_list.py +175 -0
  129. waldur_api_client/api/onboarding_verifications/onboarding_verifications_partial_update.py +164 -0
  130. waldur_api_client/api/onboarding_verifications/onboarding_verifications_retrieve.py +142 -0
  131. waldur_api_client/api/onboarding_verifications/onboarding_verifications_update.py +164 -0
  132. waldur_api_client/api/onboarding_verifications/onboarding_verifications_validate_company.py +154 -0
  133. waldur_api_client/api/openstack_network_rbac_policies/openstack_network_rbac_policies_count.py +33 -0
  134. waldur_api_client/api/openstack_network_rbac_policies/openstack_network_rbac_policies_create.py +154 -0
  135. waldur_api_client/api/openstack_network_rbac_policies/openstack_network_rbac_policies_destroy.py +91 -0
  136. waldur_api_client/api/openstack_network_rbac_policies/openstack_network_rbac_policies_list.py +33 -0
  137. waldur_api_client/api/openstack_network_rbac_policies/openstack_network_rbac_policies_partial_update.py +164 -0
  138. waldur_api_client/api/openstack_network_rbac_policies/openstack_network_rbac_policies_update.py +164 -0
  139. waldur_api_client/api/openstack_networks/openstack_networks_rbac_policy_create.py +24 -22
  140. waldur_api_client/api/projects/projects_add_user.py +17 -10
  141. waldur_api_client/api/projects/projects_checklist_template_count.py +125 -0
  142. waldur_api_client/api/projects/projects_checklist_template_retrieve.py +126 -0
  143. waldur_api_client/api/projects/projects_count.py +30 -0
  144. waldur_api_client/api/projects/projects_list.py +30 -0
  145. waldur_api_client/api/projects/projects_move_project.py +19 -10
  146. waldur_api_client/api/projects/projects_recover.py +166 -0
  147. waldur_api_client/api/proposal_proposals/proposal_proposals_add_user.py +17 -10
  148. waldur_api_client/api/proposal_proposals/proposal_proposals_checklist_template_count.py +125 -0
  149. waldur_api_client/api/proposal_proposals/proposal_proposals_checklist_template_retrieve.py +126 -0
  150. waldur_api_client/api/proposal_protected_calls/proposal_protected_calls_add_user.py +17 -10
  151. waldur_api_client/api/proposal_protected_calls/proposal_protected_calls_offerings_list.py +15 -0
  152. waldur_api_client/api/remote_waldur_api/remote_waldur_api_pull_resource_robot_accounts.py +88 -0
  153. waldur_api_client/models/__init__.py +214 -8
  154. waldur_api_client/models/agent_event_subscription_create_request.py +71 -0
  155. waldur_api_client/models/agent_identity.py +211 -0
  156. waldur_api_client/models/agent_identity_request.py +157 -0
  157. waldur_api_client/models/agent_processor.py +170 -0
  158. waldur_api_client/models/agent_processor_create_request.py +89 -0
  159. waldur_api_client/models/agent_service.py +172 -0
  160. waldur_api_client/models/agent_service_create_request.py +81 -0
  161. waldur_api_client/models/agent_service_state.py +10 -0
  162. waldur_api_client/models/agent_service_statistics_request.py +59 -0
  163. waldur_api_client/models/base_provider_plan.py +21 -0
  164. waldur_api_client/models/base_public_plan.py +21 -0
  165. waldur_api_client/models/booking_offerings_list_field_item.py +2 -0
  166. waldur_api_client/models/booking_offerings_retrieve_field_item.py +2 -0
  167. waldur_api_client/models/booking_resource.py +37 -11
  168. waldur_api_client/models/booking_resource_renewal_date_type_0.py +53 -0
  169. waldur_api_client/models/booking_resources_list_field_item.py +1 -0
  170. waldur_api_client/models/booking_resources_retrieve_field_item.py +1 -0
  171. waldur_api_client/models/call_managing_organisations_add_user_response_400.py +65 -0
  172. waldur_api_client/models/call_round.py +4 -4
  173. waldur_api_client/models/checklist_template.py +99 -0
  174. waldur_api_client/models/checklist_template_checklist.py +44 -0
  175. waldur_api_client/models/constance_settings.py +126 -45
  176. waldur_api_client/models/constance_settings_request.py +126 -45
  177. waldur_api_client/models/constance_settings_request_form.py +126 -45
  178. waldur_api_client/models/constance_settings_request_multipart.py +219 -71
  179. waldur_api_client/models/customer.py +9 -0
  180. waldur_api_client/models/customer_component_usage_policy.py +175 -0
  181. waldur_api_client/models/customer_component_usage_policy_request.py +102 -0
  182. waldur_api_client/models/customers_add_user_response_400.py +65 -0
  183. waldur_api_client/models/customers_list_field_item.py +1 -0
  184. waldur_api_client/models/customers_retrieve_field_item.py +1 -0
  185. waldur_api_client/models/deprecated_network_rbac_policy.py +137 -0
  186. waldur_api_client/models/deprecated_network_rbac_policy_request.py +78 -0
  187. waldur_api_client/models/discount_config_request.py +91 -0
  188. waldur_api_client/models/discounts_update_request.py +65 -0
  189. waldur_api_client/models/discounts_update_request_discounts.py +57 -0
  190. waldur_api_client/models/event_types_enum.py +1 -0
  191. waldur_api_client/models/issue.py +0 -25
  192. waldur_api_client/models/managed_rancher_cluster_resources_list_field_item.py +1 -0
  193. waldur_api_client/models/managed_rancher_cluster_resources_retrieve_field_item.py +1 -0
  194. waldur_api_client/models/marketplace_orders_count_state_item.py +1 -0
  195. waldur_api_client/models/marketplace_orders_list_field_item.py +2 -0
  196. waldur_api_client/models/marketplace_orders_list_state_item.py +1 -0
  197. waldur_api_client/models/marketplace_orders_retrieve_field_item.py +2 -0
  198. waldur_api_client/models/marketplace_provider_offerings_add_user_response_400.py +65 -0
  199. waldur_api_client/models/marketplace_provider_offerings_list_course_accounts_retrieve_field_item.py +2 -0
  200. waldur_api_client/models/marketplace_provider_offerings_list_customer_service_accounts_retrieve_field_item.py +2 -0
  201. waldur_api_client/models/marketplace_provider_offerings_list_field_item.py +2 -0
  202. waldur_api_client/models/marketplace_provider_offerings_list_project_service_accounts_retrieve_field_item.py +2 -0
  203. waldur_api_client/models/marketplace_provider_offerings_retrieve_field_item.py +2 -0
  204. waldur_api_client/models/marketplace_provider_offerings_stats_retrieve_field_item.py +2 -0
  205. waldur_api_client/models/marketplace_provider_offerings_user_has_resource_access_retrieve_field_item.py +2 -0
  206. waldur_api_client/models/marketplace_provider_resources_details_retrieve_field_item.py +1 -0
  207. waldur_api_client/models/marketplace_provider_resources_list_field_item.py +1 -0
  208. waldur_api_client/models/marketplace_provider_resources_retrieve_field_item.py +1 -0
  209. waldur_api_client/models/marketplace_public_offerings_list_field_item.py +2 -0
  210. waldur_api_client/models/marketplace_public_offerings_retrieve_field_item.py +2 -0
  211. waldur_api_client/models/marketplace_resources_details_retrieve_field_item.py +1 -0
  212. waldur_api_client/models/marketplace_resources_list_field_item.py +1 -0
  213. waldur_api_client/models/marketplace_resources_retrieve_field_item.py +1 -0
  214. waldur_api_client/models/marketplace_service_providers_add_user_response_400.py +65 -0
  215. waldur_api_client/models/marketplace_site_agent_services_count_state_item.py +10 -0
  216. waldur_api_client/models/marketplace_site_agent_services_list_state_item.py +10 -0
  217. waldur_api_client/models/marketplace_software_catalogs_count_o_item.py +15 -0
  218. waldur_api_client/models/marketplace_software_catalogs_list_o_item.py +15 -0
  219. waldur_api_client/models/marketplace_software_packages_count_o_item.py +17 -0
  220. waldur_api_client/models/marketplace_software_packages_list_o_item.py +17 -0
  221. waldur_api_client/models/marketplace_software_targets_count_o_item.py +15 -0
  222. waldur_api_client/models/marketplace_software_targets_list_o_item.py +15 -0
  223. waldur_api_client/models/marketplace_software_versions_count_o_item.py +15 -0
  224. waldur_api_client/models/marketplace_software_versions_list_o_item.py +15 -0
  225. waldur_api_client/models/merged_plugin_options.py +65 -8
  226. waldur_api_client/models/merged_plugin_options_request.py +65 -8
  227. waldur_api_client/models/nested_agent_processor.py +154 -0
  228. waldur_api_client/models/nested_agent_service.py +134 -0
  229. waldur_api_client/models/nested_agent_service_request.py +90 -0
  230. waldur_api_client/models/nested_customer_usage_policy_component.py +103 -0
  231. waldur_api_client/models/nested_customer_usage_policy_component_request.py +87 -0
  232. waldur_api_client/models/nested_partition.py +412 -0
  233. waldur_api_client/models/nested_partition_request.py +397 -0
  234. waldur_api_client/models/nested_plan_component.py +155 -0
  235. waldur_api_client/models/nested_plan_component_request.py +128 -0
  236. waldur_api_client/models/nested_round.py +5 -5
  237. waldur_api_client/models/nested_software_catalog.py +134 -0
  238. waldur_api_client/models/nested_software_catalog_catalog.py +86 -0
  239. waldur_api_client/models/nested_software_catalog_partition.py +86 -0
  240. waldur_api_client/models/nested_software_catalog_request.py +68 -0
  241. waldur_api_client/models/nested_software_target.py +84 -0
  242. waldur_api_client/models/nested_software_target_request.py +75 -0
  243. waldur_api_client/models/nested_software_version.py +124 -0
  244. waldur_api_client/models/nested_software_version_request.py +93 -0
  245. waldur_api_client/models/network_rbac_policy_request.py +8 -0
  246. waldur_api_client/models/notification.py +9 -9
  247. waldur_api_client/models/{notification_context_fields.py → notification_context_schema.py} +6 -6
  248. waldur_api_client/models/notification_template_detail_serializers.py +9 -3
  249. waldur_api_client/models/observable_object_type_enum.py +14 -0
  250. waldur_api_client/models/offering.py +42 -0
  251. waldur_api_client/models/offering_component.py +79 -0
  252. waldur_api_client/models/offering_component_request.py +80 -0
  253. waldur_api_client/models/offering_create.py +36 -0
  254. waldur_api_client/models/offering_partition.py +440 -0
  255. waldur_api_client/models/offering_partition_request.py +406 -0
  256. waldur_api_client/models/offering_software_catalog.py +176 -0
  257. waldur_api_client/models/offering_software_catalog_request.py +118 -0
  258. waldur_api_client/models/onboarding_company_validation_request_request.py +88 -0
  259. waldur_api_client/models/onboarding_justification.py +212 -0
  260. waldur_api_client/models/onboarding_justification_create_request.py +71 -0
  261. waldur_api_client/models/onboarding_justification_documentation.py +108 -0
  262. waldur_api_client/models/onboarding_justification_documentation_request.py +84 -0
  263. waldur_api_client/models/onboarding_justification_documentation_request_form.py +84 -0
  264. waldur_api_client/models/onboarding_justification_documentation_request_multipart.py +98 -0
  265. waldur_api_client/models/onboarding_justification_request.py +89 -0
  266. waldur_api_client/models/onboarding_justification_review_request.py +59 -0
  267. waldur_api_client/models/onboarding_verification.py +250 -0
  268. waldur_api_client/models/onboarding_verification_request.py +128 -0
  269. waldur_api_client/models/onboarding_verification_status_enum.py +12 -0
  270. waldur_api_client/models/open_stack_create_floating_ip_request.py +20 -1
  271. waldur_api_client/models/order_backend_id_request.py +59 -0
  272. waldur_api_client/models/order_create.py +4 -4
  273. waldur_api_client/models/order_details.py +43 -11
  274. waldur_api_client/models/order_state.py +1 -0
  275. waldur_api_client/models/patched_customer_component_usage_policy_request.py +104 -0
  276. waldur_api_client/models/patched_network_rbac_policy_request.py +85 -0
  277. waldur_api_client/models/patched_offering_partition_request.py +412 -0
  278. waldur_api_client/models/patched_offering_software_catalog_update_request.py +131 -0
  279. waldur_api_client/models/patched_onboarding_justification_request.py +88 -0
  280. waldur_api_client/models/patched_onboarding_verification_request.py +128 -0
  281. waldur_api_client/models/patched_project_credit_request.py +13 -0
  282. waldur_api_client/models/patched_project_request.py +10 -2
  283. waldur_api_client/models/patched_project_request_form.py +10 -2
  284. waldur_api_client/models/patched_project_request_multipart.py +13 -2
  285. waldur_api_client/models/patched_software_catalog_request.py +86 -0
  286. waldur_api_client/models/patched_software_package_request.py +86 -0
  287. waldur_api_client/models/plan_component.py +40 -0
  288. waldur_api_client/models/project.py +37 -2
  289. waldur_api_client/models/project_credit.py +13 -0
  290. waldur_api_client/models/project_credit_request.py +13 -0
  291. waldur_api_client/models/project_recovery_request.py +70 -0
  292. waldur_api_client/models/project_request.py +10 -2
  293. waldur_api_client/models/project_request_form.py +10 -2
  294. waldur_api_client/models/project_request_multipart.py +13 -2
  295. waldur_api_client/models/project_user.py +21 -4
  296. waldur_api_client/models/projects_add_user_response_400.py +65 -0
  297. waldur_api_client/models/projects_list_field_item.py +4 -0
  298. waldur_api_client/models/projects_move_project_response_400.py +65 -0
  299. waldur_api_client/models/projects_retrieve_field_item.py +4 -0
  300. waldur_api_client/models/proposal_proposals_add_user_response_400.py +65 -0
  301. waldur_api_client/models/proposal_protected_calls_add_user_response_400.py +65 -0
  302. waldur_api_client/models/protected_round.py +4 -4
  303. waldur_api_client/models/provider_offering_details.py +42 -0
  304. waldur_api_client/models/provider_plan_details.py +18 -0
  305. waldur_api_client/models/public_offering_details.py +42 -0
  306. waldur_api_client/models/question.py +102 -0
  307. waldur_api_client/models/question_options.py +79 -0
  308. waldur_api_client/models/remote_resource_order_remote_state_enum.py +1 -0
  309. waldur_api_client/models/{set_offerings_username.py → remove_partition_request.py} +11 -19
  310. waldur_api_client/models/remove_software_catalog_request.py +60 -0
  311. waldur_api_client/models/resource.py +37 -11
  312. waldur_api_client/models/resource_downscaled_request.py +59 -0
  313. waldur_api_client/models/resource_paused_request.py +59 -0
  314. waldur_api_client/models/resource_renew_request.py +83 -0
  315. waldur_api_client/models/resource_renew_request_limits.py +44 -0
  316. waldur_api_client/models/resource_renewal_date_type_0.py +53 -0
  317. waldur_api_client/models/resource_restrict_member_access_request.py +59 -0
  318. waldur_api_client/models/{status_enum.py → round_status.py} +1 -1
  319. waldur_api_client/models/service_provider_checklist_summary.py +98 -0
  320. waldur_api_client/models/software_catalog.py +130 -0
  321. waldur_api_client/models/software_catalog_request.py +87 -0
  322. waldur_api_client/models/software_catalog_uuid.py +60 -0
  323. waldur_api_client/models/software_package.py +168 -0
  324. waldur_api_client/models/software_package_request.py +87 -0
  325. waldur_api_client/models/software_target.py +110 -0
  326. waldur_api_client/models/software_version.py +135 -0
  327. waldur_api_client/models/time_series_to_s_data.py +69 -0
  328. waldur_api_client/models/to_s_consent_dashboard.py +155 -0
  329. waldur_api_client/models/update_offering_component_request.py +79 -0
  330. waldur_api_client/models/user.py +20 -0
  331. waldur_api_client/models/users_list_field_item.py +1 -0
  332. waldur_api_client/models/users_me_retrieve_field_item.py +1 -0
  333. waldur_api_client/models/users_retrieve_field_item.py +1 -0
  334. waldur_api_client/models/validation_decision_enum.py +10 -0
  335. waldur_api_client/models/validation_method_enum.py +8 -0
  336. waldur_api_client/models/version_adoption.py +67 -0
  337. {waldur_api_client-7.8.3.dist-info → waldur_api_client-7.8.5.dist-info}/METADATA +1 -1
  338. {waldur_api_client-7.8.3.dist-info → waldur_api_client-7.8.5.dist-info}/RECORD +340 -123
  339. waldur_api_client/models/marketplace_service_providers_projects_list_field_item.py +0 -36
  340. {waldur_api_client-7.8.3.dist-info → waldur_api_client-7.8.5.dist-info}/WHEEL +0 -0
  341. {waldur_api_client-7.8.3.dist-info → waldur_api_client-7.8.5.dist-info}/licenses/LICENSE +0 -0
@@ -0,0 +1,397 @@
1
+ from collections.abc import Mapping
2
+ from typing import Any, TypeVar, Union, cast
3
+
4
+ from attrs import define as _attrs_define
5
+ from attrs import field as _attrs_field
6
+
7
+ from ..types import UNSET, Unset
8
+
9
+ T = TypeVar("T", bound="NestedPartitionRequest")
10
+
11
+
12
+ @_attrs_define
13
+ class NestedPartitionRequest:
14
+ """
15
+ Attributes:
16
+ partition_name (str): Name of the SLURM partition
17
+ cpu_bind (Union[None, Unset, int]): Default task binding policy (SLURM cpu_bind)
18
+ def_cpu_per_gpu (Union[None, Unset, int]): Default CPUs allocated per GPU
19
+ max_cpus_per_node (Union[None, Unset, int]): Maximum allocated CPUs per node
20
+ max_cpus_per_socket (Union[None, Unset, int]): Maximum allocated CPUs per socket
21
+ def_mem_per_cpu (Union[None, Unset, int]): Default memory per CPU in MB
22
+ def_mem_per_gpu (Union[None, Unset, int]): Default memory per GPU in MB
23
+ def_mem_per_node (Union[None, Unset, int]): Default memory per node in MB
24
+ max_mem_per_cpu (Union[None, Unset, int]): Maximum memory per CPU in MB
25
+ max_mem_per_node (Union[None, Unset, int]): Maximum memory per node in MB
26
+ default_time (Union[None, Unset, int]): Default time limit in minutes
27
+ max_time (Union[None, Unset, int]): Maximum time limit in minutes
28
+ grace_time (Union[None, Unset, int]): Preemption grace time in seconds
29
+ max_nodes (Union[None, Unset, int]): Maximum nodes per job
30
+ min_nodes (Union[None, Unset, int]): Minimum nodes per job
31
+ exclusive_topo (Union[Unset, bool]): Exclusive topology access required
32
+ exclusive_user (Union[Unset, bool]): Exclusive user access required
33
+ priority_tier (Union[None, Unset, int]): Priority tier for scheduling and preemption
34
+ qos (Union[Unset, str]): Quality of Service (QOS) name
35
+ req_resv (Union[Unset, bool]): Require reservation for job allocation
36
+ """
37
+
38
+ partition_name: str
39
+ cpu_bind: Union[None, Unset, int] = UNSET
40
+ def_cpu_per_gpu: Union[None, Unset, int] = UNSET
41
+ max_cpus_per_node: Union[None, Unset, int] = UNSET
42
+ max_cpus_per_socket: Union[None, Unset, int] = UNSET
43
+ def_mem_per_cpu: Union[None, Unset, int] = UNSET
44
+ def_mem_per_gpu: Union[None, Unset, int] = UNSET
45
+ def_mem_per_node: Union[None, Unset, int] = UNSET
46
+ max_mem_per_cpu: Union[None, Unset, int] = UNSET
47
+ max_mem_per_node: Union[None, Unset, int] = UNSET
48
+ default_time: Union[None, Unset, int] = UNSET
49
+ max_time: Union[None, Unset, int] = UNSET
50
+ grace_time: Union[None, Unset, int] = UNSET
51
+ max_nodes: Union[None, Unset, int] = UNSET
52
+ min_nodes: Union[None, Unset, int] = UNSET
53
+ exclusive_topo: Union[Unset, bool] = UNSET
54
+ exclusive_user: Union[Unset, bool] = UNSET
55
+ priority_tier: Union[None, Unset, int] = UNSET
56
+ qos: Union[Unset, str] = UNSET
57
+ req_resv: Union[Unset, bool] = UNSET
58
+ additional_properties: dict[str, Any] = _attrs_field(init=False, factory=dict)
59
+
60
+ def to_dict(self) -> dict[str, Any]:
61
+ partition_name = self.partition_name
62
+
63
+ cpu_bind: Union[None, Unset, int]
64
+ if isinstance(self.cpu_bind, Unset):
65
+ cpu_bind = UNSET
66
+ else:
67
+ cpu_bind = self.cpu_bind
68
+
69
+ def_cpu_per_gpu: Union[None, Unset, int]
70
+ if isinstance(self.def_cpu_per_gpu, Unset):
71
+ def_cpu_per_gpu = UNSET
72
+ else:
73
+ def_cpu_per_gpu = self.def_cpu_per_gpu
74
+
75
+ max_cpus_per_node: Union[None, Unset, int]
76
+ if isinstance(self.max_cpus_per_node, Unset):
77
+ max_cpus_per_node = UNSET
78
+ else:
79
+ max_cpus_per_node = self.max_cpus_per_node
80
+
81
+ max_cpus_per_socket: Union[None, Unset, int]
82
+ if isinstance(self.max_cpus_per_socket, Unset):
83
+ max_cpus_per_socket = UNSET
84
+ else:
85
+ max_cpus_per_socket = self.max_cpus_per_socket
86
+
87
+ def_mem_per_cpu: Union[None, Unset, int]
88
+ if isinstance(self.def_mem_per_cpu, Unset):
89
+ def_mem_per_cpu = UNSET
90
+ else:
91
+ def_mem_per_cpu = self.def_mem_per_cpu
92
+
93
+ def_mem_per_gpu: Union[None, Unset, int]
94
+ if isinstance(self.def_mem_per_gpu, Unset):
95
+ def_mem_per_gpu = UNSET
96
+ else:
97
+ def_mem_per_gpu = self.def_mem_per_gpu
98
+
99
+ def_mem_per_node: Union[None, Unset, int]
100
+ if isinstance(self.def_mem_per_node, Unset):
101
+ def_mem_per_node = UNSET
102
+ else:
103
+ def_mem_per_node = self.def_mem_per_node
104
+
105
+ max_mem_per_cpu: Union[None, Unset, int]
106
+ if isinstance(self.max_mem_per_cpu, Unset):
107
+ max_mem_per_cpu = UNSET
108
+ else:
109
+ max_mem_per_cpu = self.max_mem_per_cpu
110
+
111
+ max_mem_per_node: Union[None, Unset, int]
112
+ if isinstance(self.max_mem_per_node, Unset):
113
+ max_mem_per_node = UNSET
114
+ else:
115
+ max_mem_per_node = self.max_mem_per_node
116
+
117
+ default_time: Union[None, Unset, int]
118
+ if isinstance(self.default_time, Unset):
119
+ default_time = UNSET
120
+ else:
121
+ default_time = self.default_time
122
+
123
+ max_time: Union[None, Unset, int]
124
+ if isinstance(self.max_time, Unset):
125
+ max_time = UNSET
126
+ else:
127
+ max_time = self.max_time
128
+
129
+ grace_time: Union[None, Unset, int]
130
+ if isinstance(self.grace_time, Unset):
131
+ grace_time = UNSET
132
+ else:
133
+ grace_time = self.grace_time
134
+
135
+ max_nodes: Union[None, Unset, int]
136
+ if isinstance(self.max_nodes, Unset):
137
+ max_nodes = UNSET
138
+ else:
139
+ max_nodes = self.max_nodes
140
+
141
+ min_nodes: Union[None, Unset, int]
142
+ if isinstance(self.min_nodes, Unset):
143
+ min_nodes = UNSET
144
+ else:
145
+ min_nodes = self.min_nodes
146
+
147
+ exclusive_topo = self.exclusive_topo
148
+
149
+ exclusive_user = self.exclusive_user
150
+
151
+ priority_tier: Union[None, Unset, int]
152
+ if isinstance(self.priority_tier, Unset):
153
+ priority_tier = UNSET
154
+ else:
155
+ priority_tier = self.priority_tier
156
+
157
+ qos = self.qos
158
+
159
+ req_resv = self.req_resv
160
+
161
+ field_dict: dict[str, Any] = {}
162
+ field_dict.update(self.additional_properties)
163
+ field_dict.update(
164
+ {
165
+ "partition_name": partition_name,
166
+ }
167
+ )
168
+ if cpu_bind is not UNSET:
169
+ field_dict["cpu_bind"] = cpu_bind
170
+ if def_cpu_per_gpu is not UNSET:
171
+ field_dict["def_cpu_per_gpu"] = def_cpu_per_gpu
172
+ if max_cpus_per_node is not UNSET:
173
+ field_dict["max_cpus_per_node"] = max_cpus_per_node
174
+ if max_cpus_per_socket is not UNSET:
175
+ field_dict["max_cpus_per_socket"] = max_cpus_per_socket
176
+ if def_mem_per_cpu is not UNSET:
177
+ field_dict["def_mem_per_cpu"] = def_mem_per_cpu
178
+ if def_mem_per_gpu is not UNSET:
179
+ field_dict["def_mem_per_gpu"] = def_mem_per_gpu
180
+ if def_mem_per_node is not UNSET:
181
+ field_dict["def_mem_per_node"] = def_mem_per_node
182
+ if max_mem_per_cpu is not UNSET:
183
+ field_dict["max_mem_per_cpu"] = max_mem_per_cpu
184
+ if max_mem_per_node is not UNSET:
185
+ field_dict["max_mem_per_node"] = max_mem_per_node
186
+ if default_time is not UNSET:
187
+ field_dict["default_time"] = default_time
188
+ if max_time is not UNSET:
189
+ field_dict["max_time"] = max_time
190
+ if grace_time is not UNSET:
191
+ field_dict["grace_time"] = grace_time
192
+ if max_nodes is not UNSET:
193
+ field_dict["max_nodes"] = max_nodes
194
+ if min_nodes is not UNSET:
195
+ field_dict["min_nodes"] = min_nodes
196
+ if exclusive_topo is not UNSET:
197
+ field_dict["exclusive_topo"] = exclusive_topo
198
+ if exclusive_user is not UNSET:
199
+ field_dict["exclusive_user"] = exclusive_user
200
+ if priority_tier is not UNSET:
201
+ field_dict["priority_tier"] = priority_tier
202
+ if qos is not UNSET:
203
+ field_dict["qos"] = qos
204
+ if req_resv is not UNSET:
205
+ field_dict["req_resv"] = req_resv
206
+
207
+ return field_dict
208
+
209
+ @classmethod
210
+ def from_dict(cls: type[T], src_dict: Mapping[str, Any]) -> T:
211
+ d = dict(src_dict)
212
+ partition_name = d.pop("partition_name")
213
+
214
+ def _parse_cpu_bind(data: object) -> Union[None, Unset, int]:
215
+ if data is None:
216
+ return data
217
+ if isinstance(data, Unset):
218
+ return data
219
+ return cast(Union[None, Unset, int], data)
220
+
221
+ cpu_bind = _parse_cpu_bind(d.pop("cpu_bind", UNSET))
222
+
223
+ def _parse_def_cpu_per_gpu(data: object) -> Union[None, Unset, int]:
224
+ if data is None:
225
+ return data
226
+ if isinstance(data, Unset):
227
+ return data
228
+ return cast(Union[None, Unset, int], data)
229
+
230
+ def_cpu_per_gpu = _parse_def_cpu_per_gpu(d.pop("def_cpu_per_gpu", UNSET))
231
+
232
+ def _parse_max_cpus_per_node(data: object) -> Union[None, Unset, int]:
233
+ if data is None:
234
+ return data
235
+ if isinstance(data, Unset):
236
+ return data
237
+ return cast(Union[None, Unset, int], data)
238
+
239
+ max_cpus_per_node = _parse_max_cpus_per_node(d.pop("max_cpus_per_node", UNSET))
240
+
241
+ def _parse_max_cpus_per_socket(data: object) -> Union[None, Unset, int]:
242
+ if data is None:
243
+ return data
244
+ if isinstance(data, Unset):
245
+ return data
246
+ return cast(Union[None, Unset, int], data)
247
+
248
+ max_cpus_per_socket = _parse_max_cpus_per_socket(d.pop("max_cpus_per_socket", UNSET))
249
+
250
+ def _parse_def_mem_per_cpu(data: object) -> Union[None, Unset, int]:
251
+ if data is None:
252
+ return data
253
+ if isinstance(data, Unset):
254
+ return data
255
+ return cast(Union[None, Unset, int], data)
256
+
257
+ def_mem_per_cpu = _parse_def_mem_per_cpu(d.pop("def_mem_per_cpu", UNSET))
258
+
259
+ def _parse_def_mem_per_gpu(data: object) -> Union[None, Unset, int]:
260
+ if data is None:
261
+ return data
262
+ if isinstance(data, Unset):
263
+ return data
264
+ return cast(Union[None, Unset, int], data)
265
+
266
+ def_mem_per_gpu = _parse_def_mem_per_gpu(d.pop("def_mem_per_gpu", UNSET))
267
+
268
+ def _parse_def_mem_per_node(data: object) -> Union[None, Unset, int]:
269
+ if data is None:
270
+ return data
271
+ if isinstance(data, Unset):
272
+ return data
273
+ return cast(Union[None, Unset, int], data)
274
+
275
+ def_mem_per_node = _parse_def_mem_per_node(d.pop("def_mem_per_node", UNSET))
276
+
277
+ def _parse_max_mem_per_cpu(data: object) -> Union[None, Unset, int]:
278
+ if data is None:
279
+ return data
280
+ if isinstance(data, Unset):
281
+ return data
282
+ return cast(Union[None, Unset, int], data)
283
+
284
+ max_mem_per_cpu = _parse_max_mem_per_cpu(d.pop("max_mem_per_cpu", UNSET))
285
+
286
+ def _parse_max_mem_per_node(data: object) -> Union[None, Unset, int]:
287
+ if data is None:
288
+ return data
289
+ if isinstance(data, Unset):
290
+ return data
291
+ return cast(Union[None, Unset, int], data)
292
+
293
+ max_mem_per_node = _parse_max_mem_per_node(d.pop("max_mem_per_node", UNSET))
294
+
295
+ def _parse_default_time(data: object) -> Union[None, Unset, int]:
296
+ if data is None:
297
+ return data
298
+ if isinstance(data, Unset):
299
+ return data
300
+ return cast(Union[None, Unset, int], data)
301
+
302
+ default_time = _parse_default_time(d.pop("default_time", UNSET))
303
+
304
+ def _parse_max_time(data: object) -> Union[None, Unset, int]:
305
+ if data is None:
306
+ return data
307
+ if isinstance(data, Unset):
308
+ return data
309
+ return cast(Union[None, Unset, int], data)
310
+
311
+ max_time = _parse_max_time(d.pop("max_time", UNSET))
312
+
313
+ def _parse_grace_time(data: object) -> Union[None, Unset, int]:
314
+ if data is None:
315
+ return data
316
+ if isinstance(data, Unset):
317
+ return data
318
+ return cast(Union[None, Unset, int], data)
319
+
320
+ grace_time = _parse_grace_time(d.pop("grace_time", UNSET))
321
+
322
+ def _parse_max_nodes(data: object) -> Union[None, Unset, int]:
323
+ if data is None:
324
+ return data
325
+ if isinstance(data, Unset):
326
+ return data
327
+ return cast(Union[None, Unset, int], data)
328
+
329
+ max_nodes = _parse_max_nodes(d.pop("max_nodes", UNSET))
330
+
331
+ def _parse_min_nodes(data: object) -> Union[None, Unset, int]:
332
+ if data is None:
333
+ return data
334
+ if isinstance(data, Unset):
335
+ return data
336
+ return cast(Union[None, Unset, int], data)
337
+
338
+ min_nodes = _parse_min_nodes(d.pop("min_nodes", UNSET))
339
+
340
+ exclusive_topo = d.pop("exclusive_topo", UNSET)
341
+
342
+ exclusive_user = d.pop("exclusive_user", UNSET)
343
+
344
+ def _parse_priority_tier(data: object) -> Union[None, Unset, int]:
345
+ if data is None:
346
+ return data
347
+ if isinstance(data, Unset):
348
+ return data
349
+ return cast(Union[None, Unset, int], data)
350
+
351
+ priority_tier = _parse_priority_tier(d.pop("priority_tier", UNSET))
352
+
353
+ qos = d.pop("qos", UNSET)
354
+
355
+ req_resv = d.pop("req_resv", UNSET)
356
+
357
+ nested_partition_request = cls(
358
+ partition_name=partition_name,
359
+ cpu_bind=cpu_bind,
360
+ def_cpu_per_gpu=def_cpu_per_gpu,
361
+ max_cpus_per_node=max_cpus_per_node,
362
+ max_cpus_per_socket=max_cpus_per_socket,
363
+ def_mem_per_cpu=def_mem_per_cpu,
364
+ def_mem_per_gpu=def_mem_per_gpu,
365
+ def_mem_per_node=def_mem_per_node,
366
+ max_mem_per_cpu=max_mem_per_cpu,
367
+ max_mem_per_node=max_mem_per_node,
368
+ default_time=default_time,
369
+ max_time=max_time,
370
+ grace_time=grace_time,
371
+ max_nodes=max_nodes,
372
+ min_nodes=min_nodes,
373
+ exclusive_topo=exclusive_topo,
374
+ exclusive_user=exclusive_user,
375
+ priority_tier=priority_tier,
376
+ qos=qos,
377
+ req_resv=req_resv,
378
+ )
379
+
380
+ nested_partition_request.additional_properties = d
381
+ return nested_partition_request
382
+
383
+ @property
384
+ def additional_keys(self) -> list[str]:
385
+ return list(self.additional_properties.keys())
386
+
387
+ def __getitem__(self, key: str) -> Any:
388
+ return self.additional_properties[key]
389
+
390
+ def __setitem__(self, key: str, value: Any) -> None:
391
+ self.additional_properties[key] = value
392
+
393
+ def __delitem__(self, key: str) -> None:
394
+ del self.additional_properties[key]
395
+
396
+ def __contains__(self, key: str) -> bool:
397
+ return key in self.additional_properties
@@ -0,0 +1,155 @@
1
+ from collections.abc import Mapping
2
+ from typing import Any, TypeVar, Union, cast
3
+
4
+ from attrs import define as _attrs_define
5
+ from attrs import field as _attrs_field
6
+
7
+ from ..types import UNSET, Unset
8
+
9
+ T = TypeVar("T", bound="NestedPlanComponent")
10
+
11
+
12
+ @_attrs_define
13
+ class NestedPlanComponent:
14
+ """
15
+ Attributes:
16
+ type_ (Union[Unset, str]): Unique internal name of the measured unit, for example floating_ip.
17
+ name (Union[Unset, str]): Display name for the measured unit, for example, Floating IP.
18
+ measured_unit (Union[Unset, str]): Unit of measurement, for example, GB.
19
+ amount (Union[Unset, int]):
20
+ price (Union[Unset, str]):
21
+ future_price (Union[None, Unset, str]):
22
+ discount_threshold (Union[None, Unset, int]): Minimum amount to be eligible for discount.
23
+ discount_rate (Union[None, Unset, int]): Discount rate in percentage.
24
+ """
25
+
26
+ type_: Union[Unset, str] = UNSET
27
+ name: Union[Unset, str] = UNSET
28
+ measured_unit: Union[Unset, str] = UNSET
29
+ amount: Union[Unset, int] = UNSET
30
+ price: Union[Unset, str] = UNSET
31
+ future_price: Union[None, Unset, str] = UNSET
32
+ discount_threshold: Union[None, Unset, int] = UNSET
33
+ discount_rate: Union[None, Unset, int] = UNSET
34
+ additional_properties: dict[str, Any] = _attrs_field(init=False, factory=dict)
35
+
36
+ def to_dict(self) -> dict[str, Any]:
37
+ type_ = self.type_
38
+
39
+ name = self.name
40
+
41
+ measured_unit = self.measured_unit
42
+
43
+ amount = self.amount
44
+
45
+ price = self.price
46
+
47
+ future_price: Union[None, Unset, str]
48
+ if isinstance(self.future_price, Unset):
49
+ future_price = UNSET
50
+ else:
51
+ future_price = self.future_price
52
+
53
+ discount_threshold: Union[None, Unset, int]
54
+ if isinstance(self.discount_threshold, Unset):
55
+ discount_threshold = UNSET
56
+ else:
57
+ discount_threshold = self.discount_threshold
58
+
59
+ discount_rate: Union[None, Unset, int]
60
+ if isinstance(self.discount_rate, Unset):
61
+ discount_rate = UNSET
62
+ else:
63
+ discount_rate = self.discount_rate
64
+
65
+ field_dict: dict[str, Any] = {}
66
+ field_dict.update(self.additional_properties)
67
+ field_dict.update({})
68
+ if type_ is not UNSET:
69
+ field_dict["type"] = type_
70
+ if name is not UNSET:
71
+ field_dict["name"] = name
72
+ if measured_unit is not UNSET:
73
+ field_dict["measured_unit"] = measured_unit
74
+ if amount is not UNSET:
75
+ field_dict["amount"] = amount
76
+ if price is not UNSET:
77
+ field_dict["price"] = price
78
+ if future_price is not UNSET:
79
+ field_dict["future_price"] = future_price
80
+ if discount_threshold is not UNSET:
81
+ field_dict["discount_threshold"] = discount_threshold
82
+ if discount_rate is not UNSET:
83
+ field_dict["discount_rate"] = discount_rate
84
+
85
+ return field_dict
86
+
87
+ @classmethod
88
+ def from_dict(cls: type[T], src_dict: Mapping[str, Any]) -> T:
89
+ d = dict(src_dict)
90
+ type_ = d.pop("type", UNSET)
91
+
92
+ name = d.pop("name", UNSET)
93
+
94
+ measured_unit = d.pop("measured_unit", UNSET)
95
+
96
+ amount = d.pop("amount", UNSET)
97
+
98
+ price = d.pop("price", UNSET)
99
+
100
+ def _parse_future_price(data: object) -> Union[None, Unset, str]:
101
+ if data is None:
102
+ return data
103
+ if isinstance(data, Unset):
104
+ return data
105
+ return cast(Union[None, Unset, str], data)
106
+
107
+ future_price = _parse_future_price(d.pop("future_price", UNSET))
108
+
109
+ def _parse_discount_threshold(data: object) -> Union[None, Unset, int]:
110
+ if data is None:
111
+ return data
112
+ if isinstance(data, Unset):
113
+ return data
114
+ return cast(Union[None, Unset, int], data)
115
+
116
+ discount_threshold = _parse_discount_threshold(d.pop("discount_threshold", UNSET))
117
+
118
+ def _parse_discount_rate(data: object) -> Union[None, Unset, int]:
119
+ if data is None:
120
+ return data
121
+ if isinstance(data, Unset):
122
+ return data
123
+ return cast(Union[None, Unset, int], data)
124
+
125
+ discount_rate = _parse_discount_rate(d.pop("discount_rate", UNSET))
126
+
127
+ nested_plan_component = cls(
128
+ type_=type_,
129
+ name=name,
130
+ measured_unit=measured_unit,
131
+ amount=amount,
132
+ price=price,
133
+ future_price=future_price,
134
+ discount_threshold=discount_threshold,
135
+ discount_rate=discount_rate,
136
+ )
137
+
138
+ nested_plan_component.additional_properties = d
139
+ return nested_plan_component
140
+
141
+ @property
142
+ def additional_keys(self) -> list[str]:
143
+ return list(self.additional_properties.keys())
144
+
145
+ def __getitem__(self, key: str) -> Any:
146
+ return self.additional_properties[key]
147
+
148
+ def __setitem__(self, key: str, value: Any) -> None:
149
+ self.additional_properties[key] = value
150
+
151
+ def __delitem__(self, key: str) -> None:
152
+ del self.additional_properties[key]
153
+
154
+ def __contains__(self, key: str) -> bool:
155
+ return key in self.additional_properties
@@ -0,0 +1,128 @@
1
+ from collections.abc import Mapping
2
+ from typing import Any, TypeVar, Union, cast
3
+
4
+ from attrs import define as _attrs_define
5
+ from attrs import field as _attrs_field
6
+
7
+ from ..types import UNSET, Unset
8
+
9
+ T = TypeVar("T", bound="NestedPlanComponentRequest")
10
+
11
+
12
+ @_attrs_define
13
+ class NestedPlanComponentRequest:
14
+ """
15
+ Attributes:
16
+ amount (Union[Unset, int]):
17
+ price (Union[Unset, str]):
18
+ future_price (Union[None, Unset, str]):
19
+ discount_threshold (Union[None, Unset, int]): Minimum amount to be eligible for discount.
20
+ discount_rate (Union[None, Unset, int]): Discount rate in percentage.
21
+ """
22
+
23
+ amount: Union[Unset, int] = UNSET
24
+ price: Union[Unset, str] = UNSET
25
+ future_price: Union[None, Unset, str] = UNSET
26
+ discount_threshold: Union[None, Unset, int] = UNSET
27
+ discount_rate: Union[None, Unset, int] = UNSET
28
+ additional_properties: dict[str, Any] = _attrs_field(init=False, factory=dict)
29
+
30
+ def to_dict(self) -> dict[str, Any]:
31
+ amount = self.amount
32
+
33
+ price = self.price
34
+
35
+ future_price: Union[None, Unset, str]
36
+ if isinstance(self.future_price, Unset):
37
+ future_price = UNSET
38
+ else:
39
+ future_price = self.future_price
40
+
41
+ discount_threshold: Union[None, Unset, int]
42
+ if isinstance(self.discount_threshold, Unset):
43
+ discount_threshold = UNSET
44
+ else:
45
+ discount_threshold = self.discount_threshold
46
+
47
+ discount_rate: Union[None, Unset, int]
48
+ if isinstance(self.discount_rate, Unset):
49
+ discount_rate = UNSET
50
+ else:
51
+ discount_rate = self.discount_rate
52
+
53
+ field_dict: dict[str, Any] = {}
54
+ field_dict.update(self.additional_properties)
55
+ field_dict.update({})
56
+ if amount is not UNSET:
57
+ field_dict["amount"] = amount
58
+ if price is not UNSET:
59
+ field_dict["price"] = price
60
+ if future_price is not UNSET:
61
+ field_dict["future_price"] = future_price
62
+ if discount_threshold is not UNSET:
63
+ field_dict["discount_threshold"] = discount_threshold
64
+ if discount_rate is not UNSET:
65
+ field_dict["discount_rate"] = discount_rate
66
+
67
+ return field_dict
68
+
69
+ @classmethod
70
+ def from_dict(cls: type[T], src_dict: Mapping[str, Any]) -> T:
71
+ d = dict(src_dict)
72
+ amount = d.pop("amount", UNSET)
73
+
74
+ price = d.pop("price", UNSET)
75
+
76
+ def _parse_future_price(data: object) -> Union[None, Unset, str]:
77
+ if data is None:
78
+ return data
79
+ if isinstance(data, Unset):
80
+ return data
81
+ return cast(Union[None, Unset, str], data)
82
+
83
+ future_price = _parse_future_price(d.pop("future_price", UNSET))
84
+
85
+ def _parse_discount_threshold(data: object) -> Union[None, Unset, int]:
86
+ if data is None:
87
+ return data
88
+ if isinstance(data, Unset):
89
+ return data
90
+ return cast(Union[None, Unset, int], data)
91
+
92
+ discount_threshold = _parse_discount_threshold(d.pop("discount_threshold", UNSET))
93
+
94
+ def _parse_discount_rate(data: object) -> Union[None, Unset, int]:
95
+ if data is None:
96
+ return data
97
+ if isinstance(data, Unset):
98
+ return data
99
+ return cast(Union[None, Unset, int], data)
100
+
101
+ discount_rate = _parse_discount_rate(d.pop("discount_rate", UNSET))
102
+
103
+ nested_plan_component_request = cls(
104
+ amount=amount,
105
+ price=price,
106
+ future_price=future_price,
107
+ discount_threshold=discount_threshold,
108
+ discount_rate=discount_rate,
109
+ )
110
+
111
+ nested_plan_component_request.additional_properties = d
112
+ return nested_plan_component_request
113
+
114
+ @property
115
+ def additional_keys(self) -> list[str]:
116
+ return list(self.additional_properties.keys())
117
+
118
+ def __getitem__(self, key: str) -> Any:
119
+ return self.additional_properties[key]
120
+
121
+ def __setitem__(self, key: str, value: Any) -> None:
122
+ self.additional_properties[key] = value
123
+
124
+ def __delitem__(self, key: str) -> None:
125
+ del self.additional_properties[key]
126
+
127
+ def __contains__(self, key: str) -> bool:
128
+ return key in self.additional_properties