waldur-api-client 7.7.6__py3-none-any.whl → 7.7.8__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 (261) hide show
  1. waldur_api_client/api/booking_resources/booking_resources_count.py +34 -11
  2. waldur_api_client/api/booking_resources/booking_resources_list.py +34 -11
  3. waldur_api_client/api/customer_permissions_reviews/customer_permissions_reviews_count.py +19 -0
  4. waldur_api_client/api/customer_permissions_reviews/customer_permissions_reviews_list.py +19 -0
  5. waldur_api_client/api/customers/customers_project_metadata_compliance_details_list.py +189 -0
  6. waldur_api_client/api/customers/customers_project_metadata_compliance_overview_list.py +189 -0
  7. waldur_api_client/api/customers/customers_project_metadata_compliance_projects_list.py +187 -0
  8. waldur_api_client/api/customers/customers_project_metadata_question_answers_list.py +187 -0
  9. waldur_api_client/api/customers/customers_users_list.py +141 -53
  10. waldur_api_client/api/invoices/invoices_items_retrieve.py +20 -0
  11. waldur_api_client/api/managed_rancher_cluster_resources/__init__.py +1 -0
  12. waldur_api_client/api/managed_rancher_cluster_resources/managed_rancher_cluster_resources_add_node.py +162 -0
  13. waldur_api_client/api/managed_rancher_cluster_resources/managed_rancher_cluster_resources_count.py +172 -0
  14. waldur_api_client/api/managed_rancher_cluster_resources/managed_rancher_cluster_resources_list.py +196 -0
  15. waldur_api_client/api/managed_rancher_cluster_resources/managed_rancher_cluster_resources_retrieve.py +171 -0
  16. waldur_api_client/api/marketplace_course_accounts/__init__.py +1 -0
  17. waldur_api_client/api/marketplace_course_accounts/marketplace_course_accounts_count.py +244 -0
  18. waldur_api_client/api/marketplace_course_accounts/marketplace_course_accounts_create.py +148 -0
  19. waldur_api_client/api/marketplace_course_accounts/marketplace_course_accounts_create_bulk.py +152 -0
  20. waldur_api_client/api/marketplace_course_accounts/marketplace_course_accounts_destroy.py +89 -0
  21. waldur_api_client/api/marketplace_course_accounts/marketplace_course_accounts_list.py +245 -0
  22. waldur_api_client/api/marketplace_course_accounts/marketplace_course_accounts_retrieve.py +140 -0
  23. waldur_api_client/api/marketplace_customer_service_accounts/marketplace_customer_service_accounts_count.py +25 -0
  24. waldur_api_client/api/marketplace_customer_service_accounts/marketplace_customer_service_accounts_list.py +25 -0
  25. waldur_api_client/api/marketplace_integration_statuses/marketplace_integration_statuses_count.py +34 -11
  26. waldur_api_client/api/marketplace_integration_statuses/marketplace_integration_statuses_list.py +34 -11
  27. waldur_api_client/api/marketplace_offering_files/marketplace_offering_files_count.py +34 -11
  28. waldur_api_client/api/marketplace_offering_files/marketplace_offering_files_list.py +34 -11
  29. waldur_api_client/api/marketplace_offering_terms_of_service/__init__.py +1 -0
  30. waldur_api_client/api/marketplace_offering_terms_of_service/marketplace_offering_terms_of_service_count.py +274 -0
  31. waldur_api_client/api/marketplace_offering_terms_of_service/marketplace_offering_terms_of_service_create.py +152 -0
  32. waldur_api_client/api/marketplace_offering_terms_of_service/marketplace_offering_terms_of_service_destroy.py +89 -0
  33. waldur_api_client/api/marketplace_offering_terms_of_service/marketplace_offering_terms_of_service_list.py +277 -0
  34. waldur_api_client/api/marketplace_offering_terms_of_service/marketplace_offering_terms_of_service_partial_update.py +164 -0
  35. waldur_api_client/api/marketplace_offering_terms_of_service/marketplace_offering_terms_of_service_retrieve.py +142 -0
  36. waldur_api_client/api/marketplace_offering_terms_of_service/marketplace_offering_terms_of_service_update.py +164 -0
  37. waldur_api_client/api/marketplace_offering_user_roles/marketplace_offering_user_roles_count.py +34 -11
  38. waldur_api_client/api/marketplace_offering_user_roles/marketplace_offering_user_roles_list.py +34 -11
  39. waldur_api_client/api/marketplace_offering_users/marketplace_offering_users_count.py +34 -11
  40. waldur_api_client/api/marketplace_offering_users/marketplace_offering_users_list.py +34 -11
  41. waldur_api_client/api/marketplace_orders/marketplace_orders_count.py +19 -0
  42. waldur_api_client/api/marketplace_orders/marketplace_orders_list.py +19 -0
  43. waldur_api_client/api/marketplace_plans/marketplace_plans_count.py +19 -0
  44. waldur_api_client/api/marketplace_plans/marketplace_plans_list.py +19 -0
  45. waldur_api_client/api/marketplace_plans/marketplace_plans_usage_stats_count.py +19 -0
  46. waldur_api_client/api/marketplace_plans/marketplace_plans_usage_stats_list.py +19 -0
  47. waldur_api_client/api/marketplace_project_service_accounts/marketplace_project_service_accounts_count.py +25 -0
  48. waldur_api_client/api/marketplace_project_service_accounts/marketplace_project_service_accounts_list.py +25 -0
  49. waldur_api_client/api/marketplace_provider_resources/marketplace_provider_resources_count.py +34 -11
  50. waldur_api_client/api/marketplace_provider_resources/marketplace_provider_resources_list.py +34 -11
  51. waldur_api_client/api/marketplace_resources/marketplace_resources_count.py +34 -11
  52. waldur_api_client/api/marketplace_resources/marketplace_resources_list.py +34 -11
  53. waldur_api_client/api/marketplace_screenshots/marketplace_screenshots_count.py +34 -11
  54. waldur_api_client/api/marketplace_screenshots/marketplace_screenshots_list.py +34 -11
  55. waldur_api_client/api/marketplace_service_providers/marketplace_service_providers_course_accounts_list.py +284 -0
  56. waldur_api_client/api/marketplace_service_providers/marketplace_service_providers_project_service_accounts_list.py +29 -0
  57. waldur_api_client/api/marketplace_user_offering_consents/__init__.py +1 -0
  58. waldur_api_client/api/marketplace_user_offering_consents/marketplace_user_offering_consents_count.py +307 -0
  59. waldur_api_client/api/marketplace_user_offering_consents/marketplace_user_offering_consents_create.py +152 -0
  60. waldur_api_client/api/marketplace_user_offering_consents/marketplace_user_offering_consents_destroy.py +89 -0
  61. waldur_api_client/api/marketplace_user_offering_consents/marketplace_user_offering_consents_list.py +310 -0
  62. waldur_api_client/api/marketplace_user_offering_consents/marketplace_user_offering_consents_partial_update.py +164 -0
  63. waldur_api_client/api/marketplace_user_offering_consents/marketplace_user_offering_consents_retrieve.py +142 -0
  64. waldur_api_client/api/marketplace_user_offering_consents/marketplace_user_offering_consents_revoke.py +146 -0
  65. waldur_api_client/api/marketplace_user_offering_consents/marketplace_user_offering_consents_update.py +164 -0
  66. waldur_api_client/api/project_permissions_reviews/__init__.py +1 -0
  67. waldur_api_client/api/project_permissions_reviews/project_permissions_reviews_close.py +91 -0
  68. waldur_api_client/api/project_permissions_reviews/project_permissions_reviews_count.py +266 -0
  69. waldur_api_client/api/project_permissions_reviews/project_permissions_reviews_list.py +269 -0
  70. waldur_api_client/api/project_permissions_reviews/project_permissions_reviews_retrieve.py +142 -0
  71. waldur_api_client/api/projects/projects_other_users_list.py +98 -23
  72. waldur_api_client/api/projects/projects_sync_user_roles.py +10 -9
  73. waldur_api_client/api/remote_waldur_api/remote_waldur_api_remote_resource_order_status_retrieve.py +145 -0
  74. waldur_api_client/api/remote_waldur_api/remote_waldur_api_remote_resource_status_retrieve.py +147 -0
  75. waldur_api_client/api/remote_waldur_api/remote_waldur_api_remote_resource_team_status_list.py +188 -0
  76. waldur_api_client/api/support_issue_statuses/__init__.py +1 -0
  77. waldur_api_client/api/support_issue_statuses/support_issue_statuses_count.py +172 -0
  78. waldur_api_client/api/support_issue_statuses/support_issue_statuses_create.py +148 -0
  79. waldur_api_client/api/support_issue_statuses/support_issue_statuses_destroy.py +89 -0
  80. waldur_api_client/api/support_issue_statuses/support_issue_statuses_list.py +173 -0
  81. waldur_api_client/api/support_issue_statuses/support_issue_statuses_partial_update.py +162 -0
  82. waldur_api_client/api/support_issue_statuses/support_issue_statuses_retrieve.py +140 -0
  83. waldur_api_client/api/support_issue_statuses/support_issue_statuses_update.py +162 -0
  84. waldur_api_client/api/user_group_invitations/user_group_invitations_submit_request.py +12 -12
  85. waldur_api_client/api/user_invitations/user_invitations_count.py +30 -0
  86. waldur_api_client/api/user_invitations/user_invitations_list.py +30 -0
  87. waldur_api_client/api/user_permission_requests/user_permission_requests_cancel_request.py +146 -0
  88. waldur_api_client/models/__init__.py +136 -2
  89. waldur_api_client/models/azure_sql_server_create_order_attributes.py +3 -0
  90. waldur_api_client/models/azure_virtual_machine_create_order_attributes.py +3 -0
  91. waldur_api_client/models/booking_offerings_list_field_item.py +0 -2
  92. waldur_api_client/models/booking_offerings_retrieve_field_item.py +0 -2
  93. waldur_api_client/models/booking_resource.py +10 -9
  94. waldur_api_client/models/booking_resources_list_field_item.py +1 -1
  95. waldur_api_client/models/booking_resources_retrieve_field_item.py +1 -1
  96. waldur_api_client/models/cancel_request_response.py +75 -0
  97. waldur_api_client/models/checklist_info.py +76 -0
  98. waldur_api_client/models/compliance_overview.py +91 -0
  99. waldur_api_client/models/constance_settings.py +9 -0
  100. waldur_api_client/models/constance_settings_request.py +9 -0
  101. waldur_api_client/models/course_account.py +188 -0
  102. waldur_api_client/models/course_account_create_nested.py +68 -0
  103. waldur_api_client/models/course_account_create_nested_request.py +68 -0
  104. waldur_api_client/models/course_account_request.py +89 -0
  105. waldur_api_client/models/course_accounts_bulk_create.py +82 -0
  106. waldur_api_client/models/course_accounts_bulk_create_request.py +82 -0
  107. waldur_api_client/models/customer.py +90 -0
  108. waldur_api_client/models/customer_permission_review.py +16 -16
  109. waldur_api_client/models/customer_request.py +9 -0
  110. waldur_api_client/models/customer_service_account.py +9 -0
  111. waldur_api_client/models/customers_list_field_item.py +5 -0
  112. waldur_api_client/models/customers_retrieve_field_item.py +5 -0
  113. waldur_api_client/models/customers_users_list_o.py +9 -0
  114. waldur_api_client/models/customers_users_list_organization_role_item_type_0.py +10 -0
  115. waldur_api_client/models/customers_users_list_project_role_item_type_0.py +10 -0
  116. waldur_api_client/models/dependency_logic_operator_enum.py +9 -0
  117. waldur_api_client/models/event_subscription.py +1 -1
  118. waldur_api_client/models/event_types_enum.py +4 -0
  119. waldur_api_client/models/generic_order_attributes.py +69 -0
  120. waldur_api_client/models/google_auth_authorize_retrieve_field_item.py +1 -0
  121. waldur_api_client/models/google_auth_list_field_item.py +1 -0
  122. waldur_api_client/models/google_auth_retrieve_field_item.py +1 -0
  123. waldur_api_client/models/google_credentials.py +9 -0
  124. waldur_api_client/models/group_invitation.py +33 -0
  125. waldur_api_client/models/group_invitation_request.py +10 -0
  126. waldur_api_client/models/invitation.py +9 -0
  127. waldur_api_client/models/invoices_items_retrieve_o.py +15 -0
  128. waldur_api_client/models/issue_status.py +103 -0
  129. waldur_api_client/models/issue_status_request.py +78 -0
  130. waldur_api_client/models/issue_status_type_enum.py +9 -0
  131. waldur_api_client/models/kind_enum.py +10 -0
  132. waldur_api_client/models/maintenance_announcement.py +8 -0
  133. waldur_api_client/models/managed_rancher_cluster_resources_list_field_item.py +82 -0
  134. waldur_api_client/models/managed_rancher_cluster_resources_retrieve_field_item.py +82 -0
  135. waldur_api_client/models/managed_rancher_create_node_request.py +186 -0
  136. waldur_api_client/models/marketplace_course_accounts_count_state_item.py +10 -0
  137. waldur_api_client/models/marketplace_course_accounts_list_state_item.py +10 -0
  138. waldur_api_client/models/marketplace_customer_service_accounts_count_state_item.py +10 -0
  139. waldur_api_client/models/marketplace_customer_service_accounts_list_state_item.py +10 -0
  140. waldur_api_client/models/marketplace_offering_terms_of_service_count_o_item.py +13 -0
  141. waldur_api_client/models/marketplace_offering_terms_of_service_list_o_item.py +13 -0
  142. waldur_api_client/models/marketplace_orders_list_field_item.py +1 -1
  143. waldur_api_client/models/marketplace_orders_retrieve_field_item.py +1 -1
  144. waldur_api_client/models/marketplace_project_service_accounts_count_state_item.py +10 -0
  145. waldur_api_client/models/marketplace_project_service_accounts_list_state_item.py +10 -0
  146. waldur_api_client/models/marketplace_provider_offerings_list_customer_service_accounts_retrieve_field_item.py +0 -2
  147. waldur_api_client/models/marketplace_provider_offerings_list_field_item.py +0 -2
  148. waldur_api_client/models/marketplace_provider_offerings_list_project_service_accounts_retrieve_field_item.py +0 -2
  149. waldur_api_client/models/marketplace_provider_offerings_retrieve_field_item.py +0 -2
  150. waldur_api_client/models/marketplace_provider_offerings_stats_retrieve_field_item.py +0 -2
  151. waldur_api_client/models/marketplace_provider_offerings_user_has_resource_access_retrieve_field_item.py +0 -2
  152. waldur_api_client/models/marketplace_provider_resources_details_retrieve_field_item.py +1 -1
  153. waldur_api_client/models/marketplace_provider_resources_list_field_item.py +1 -1
  154. waldur_api_client/models/marketplace_provider_resources_retrieve_field_item.py +1 -1
  155. waldur_api_client/models/marketplace_public_offerings_list_field_item.py +0 -2
  156. waldur_api_client/models/marketplace_public_offerings_retrieve_field_item.py +0 -2
  157. waldur_api_client/models/marketplace_rancher_create_order_attributes.py +3 -0
  158. waldur_api_client/models/marketplace_resources_details_retrieve_field_item.py +1 -1
  159. waldur_api_client/models/marketplace_resources_list_field_item.py +1 -1
  160. waldur_api_client/models/marketplace_resources_retrieve_field_item.py +1 -1
  161. waldur_api_client/models/marketplace_service_providers_course_accounts_list_state_item.py +10 -0
  162. waldur_api_client/models/marketplace_service_providers_list_field_item.py +1 -0
  163. waldur_api_client/models/marketplace_service_providers_project_service_accounts_list_state_item.py +10 -0
  164. waldur_api_client/models/marketplace_service_providers_projects_list_field_item.py +1 -0
  165. waldur_api_client/models/marketplace_service_providers_retrieve_field_item.py +1 -0
  166. waldur_api_client/models/marketplace_user_offering_consents_count_o_item.py +15 -0
  167. waldur_api_client/models/marketplace_user_offering_consents_list_o_item.py +15 -0
  168. waldur_api_client/models/nested_security_group_rule.py +223 -0
  169. waldur_api_client/models/nested_security_group_rule_request.py +188 -0
  170. waldur_api_client/models/offering.py +0 -18
  171. waldur_api_client/models/offering_create.py +0 -18
  172. waldur_api_client/models/offering_create_request.py +0 -18
  173. waldur_api_client/models/offering_overview_update_request.py +0 -18
  174. waldur_api_client/models/offering_terms_of_service.py +142 -0
  175. waldur_api_client/models/offering_terms_of_service_create.py +107 -0
  176. waldur_api_client/models/offering_terms_of_service_create_request.py +107 -0
  177. waldur_api_client/models/offering_terms_of_service_request.py +96 -0
  178. waldur_api_client/models/open_stack_backup_restoration_request.py +0 -22
  179. waldur_api_client/models/open_stack_fixed_ip.py +13 -3
  180. waldur_api_client/models/open_stack_fixed_ip_request.py +7 -2
  181. waldur_api_client/models/open_stack_instance_create_order_attributes.py +23 -20
  182. waldur_api_client/models/open_stack_nested_security_group.py +53 -1
  183. waldur_api_client/models/open_stack_network.py +20 -0
  184. waldur_api_client/models/open_stack_port_ip_update_request.py +6 -2
  185. waldur_api_client/models/open_stack_security_group_rule_update_request.py +4 -4
  186. waldur_api_client/models/open_stack_static_route.py +13 -4
  187. waldur_api_client/models/open_stack_static_route_request.py +7 -3
  188. waldur_api_client/models/open_stack_sub_net.py +15 -2
  189. waldur_api_client/models/open_stack_sub_net_allocation_pool.py +27 -8
  190. waldur_api_client/models/open_stack_sub_net_allocation_pool_request.py +14 -5
  191. waldur_api_client/models/open_stack_sub_net_request.py +15 -2
  192. waldur_api_client/models/open_stack_tenant.py +38 -0
  193. waldur_api_client/models/open_stack_tenant_create_order_attributes.py +21 -0
  194. waldur_api_client/models/open_stack_volume_create_order_attributes.py +3 -0
  195. waldur_api_client/models/openstack_networks_list_field_item.py +1 -0
  196. waldur_api_client/models/openstack_networks_retrieve_field_item.py +1 -0
  197. waldur_api_client/models/openstack_tenants_list_field_item.py +3 -0
  198. waldur_api_client/models/openstack_tenants_retrieve_field_item.py +3 -0
  199. waldur_api_client/models/order_create.py +0 -8
  200. waldur_api_client/models/order_create_request.py +23 -7
  201. waldur_api_client/models/order_details.py +0 -9
  202. waldur_api_client/models/patched_customer_request.py +9 -0
  203. waldur_api_client/models/patched_issue_status_request.py +76 -0
  204. waldur_api_client/models/patched_offering_terms_of_service_request.py +96 -0
  205. waldur_api_client/models/patched_open_stack_sub_net_request.py +15 -2
  206. waldur_api_client/models/patched_project_request.py +17 -0
  207. waldur_api_client/models/patched_question_admin_request.py +17 -0
  208. waldur_api_client/models/patched_rancher_service_request.py +1 -1
  209. waldur_api_client/models/patched_user_offering_consent_request.py +59 -0
  210. waldur_api_client/models/permission_project.py +147 -0
  211. waldur_api_client/models/permission_request.py +16 -0
  212. waldur_api_client/models/project.py +17 -0
  213. waldur_api_client/models/project_answer.py +122 -0
  214. waldur_api_client/models/project_detail.py +133 -0
  215. waldur_api_client/models/project_details_response.py +115 -0
  216. waldur_api_client/models/project_permission_review.py +166 -0
  217. waldur_api_client/models/project_permissions_reviews_count_o_item.py +11 -0
  218. waldur_api_client/models/project_permissions_reviews_list_o_item.py +11 -0
  219. waldur_api_client/models/project_request.py +17 -0
  220. waldur_api_client/models/project_service_account.py +9 -0
  221. waldur_api_client/models/projects_list_field_item.py +1 -0
  222. waldur_api_client/models/projects_other_users_list_o.py +9 -0
  223. waldur_api_client/models/projects_retrieve_field_item.py +1 -0
  224. waldur_api_client/models/proposal.py +8 -0
  225. waldur_api_client/models/proposal_review.py +8 -0
  226. waldur_api_client/models/provider_offering_details.py +0 -18
  227. waldur_api_client/models/provider_offering_details_request.py +0 -18
  228. waldur_api_client/models/public_offering_details.py +0 -18
  229. waldur_api_client/models/question_admin.py +17 -0
  230. waldur_api_client/models/question_admin_request.py +17 -0
  231. waldur_api_client/models/question_answer.py +176 -0
  232. waldur_api_client/models/question_answer_project_answers_item.py +44 -0
  233. waldur_api_client/models/question_answer_question_options_item.py +44 -0
  234. waldur_api_client/models/rancher_nested_public_ip.py +25 -7
  235. waldur_api_client/models/rancher_service.py +1 -1
  236. waldur_api_client/models/rancher_service_request.py +1 -1
  237. waldur_api_client/models/remote_resource_order.py +88 -0
  238. waldur_api_client/models/remote_resource_order_remote_state_enum.py +15 -0
  239. waldur_api_client/models/remote_resource_sync_status.py +123 -0
  240. waldur_api_client/models/{robot_account_states.py → remote_resource_sync_status_remote_state_enum.py} +1 -1
  241. waldur_api_client/models/remote_resource_team_member.py +85 -0
  242. waldur_api_client/models/resource.py +10 -9
  243. waldur_api_client/models/rmq_connection.py +8 -3
  244. waldur_api_client/models/rmq_subscription.py +7 -3
  245. waldur_api_client/models/robot_account.py +9 -17
  246. waldur_api_client/models/robot_account_details.py +9 -17
  247. waldur_api_client/models/service_account_state.py +10 -0
  248. waldur_api_client/models/service_provider.py +9 -0
  249. waldur_api_client/models/slurm_invoices_slurm_package_create_order_attributes.py +3 -0
  250. waldur_api_client/models/submit_request_response.py +75 -0
  251. waldur_api_client/models/sync_status_enum.py +10 -0
  252. waldur_api_client/models/user_offering_consent.py +202 -0
  253. waldur_api_client/models/user_offering_consent_create.py +60 -0
  254. waldur_api_client/models/user_offering_consent_create_request.py +60 -0
  255. waldur_api_client/models/user_offering_consent_request.py +59 -0
  256. waldur_api_client/models/v_mware_virtual_machine_create_order_attributes.py +3 -0
  257. waldur_api_client/models/visible_invitation_details.py +9 -0
  258. {waldur_api_client-7.7.6.dist-info → waldur_api_client-7.7.8.dist-info}/METADATA +1 -1
  259. {waldur_api_client-7.7.6.dist-info → waldur_api_client-7.7.8.dist-info}/RECORD +261 -145
  260. {waldur_api_client-7.7.6.dist-info → waldur_api_client-7.7.8.dist-info}/LICENSE +0 -0
  261. {waldur_api_client-7.7.6.dist-info → waldur_api_client-7.7.8.dist-info}/WHEEL +0 -0
@@ -0,0 +1,68 @@
1
+ from collections.abc import Mapping
2
+ from typing import Any, TypeVar, Union
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="CourseAccountCreateNested")
10
+
11
+
12
+ @_attrs_define
13
+ class CourseAccountCreateNested:
14
+ """
15
+ Attributes:
16
+ email (Union[Unset, str]):
17
+ description (Union[Unset, str]):
18
+ """
19
+
20
+ email: Union[Unset, str] = UNSET
21
+ description: Union[Unset, str] = UNSET
22
+ additional_properties: dict[str, Any] = _attrs_field(init=False, factory=dict)
23
+
24
+ def to_dict(self) -> dict[str, Any]:
25
+ email = self.email
26
+
27
+ description = self.description
28
+
29
+ field_dict: dict[str, Any] = {}
30
+ field_dict.update(self.additional_properties)
31
+ field_dict.update({})
32
+ if email is not UNSET:
33
+ field_dict["email"] = email
34
+ if description is not UNSET:
35
+ field_dict["description"] = description
36
+
37
+ return field_dict
38
+
39
+ @classmethod
40
+ def from_dict(cls: type[T], src_dict: Mapping[str, Any]) -> T:
41
+ d = dict(src_dict)
42
+ email = d.pop("email", UNSET)
43
+
44
+ description = d.pop("description", UNSET)
45
+
46
+ course_account_create_nested = cls(
47
+ email=email,
48
+ description=description,
49
+ )
50
+
51
+ course_account_create_nested.additional_properties = d
52
+ return course_account_create_nested
53
+
54
+ @property
55
+ def additional_keys(self) -> list[str]:
56
+ return list(self.additional_properties.keys())
57
+
58
+ def __getitem__(self, key: str) -> Any:
59
+ return self.additional_properties[key]
60
+
61
+ def __setitem__(self, key: str, value: Any) -> None:
62
+ self.additional_properties[key] = value
63
+
64
+ def __delitem__(self, key: str) -> None:
65
+ del self.additional_properties[key]
66
+
67
+ def __contains__(self, key: str) -> bool:
68
+ return key in self.additional_properties
@@ -0,0 +1,68 @@
1
+ from collections.abc import Mapping
2
+ from typing import Any, TypeVar, Union
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="CourseAccountCreateNestedRequest")
10
+
11
+
12
+ @_attrs_define
13
+ class CourseAccountCreateNestedRequest:
14
+ """
15
+ Attributes:
16
+ email (Union[Unset, str]):
17
+ description (Union[Unset, str]):
18
+ """
19
+
20
+ email: Union[Unset, str] = UNSET
21
+ description: Union[Unset, str] = UNSET
22
+ additional_properties: dict[str, Any] = _attrs_field(init=False, factory=dict)
23
+
24
+ def to_dict(self) -> dict[str, Any]:
25
+ email = self.email
26
+
27
+ description = self.description
28
+
29
+ field_dict: dict[str, Any] = {}
30
+ field_dict.update(self.additional_properties)
31
+ field_dict.update({})
32
+ if email is not UNSET:
33
+ field_dict["email"] = email
34
+ if description is not UNSET:
35
+ field_dict["description"] = description
36
+
37
+ return field_dict
38
+
39
+ @classmethod
40
+ def from_dict(cls: type[T], src_dict: Mapping[str, Any]) -> T:
41
+ d = dict(src_dict)
42
+ email = d.pop("email", UNSET)
43
+
44
+ description = d.pop("description", UNSET)
45
+
46
+ course_account_create_nested_request = cls(
47
+ email=email,
48
+ description=description,
49
+ )
50
+
51
+ course_account_create_nested_request.additional_properties = d
52
+ return course_account_create_nested_request
53
+
54
+ @property
55
+ def additional_keys(self) -> list[str]:
56
+ return list(self.additional_properties.keys())
57
+
58
+ def __getitem__(self, key: str) -> Any:
59
+ return self.additional_properties[key]
60
+
61
+ def __setitem__(self, key: str, value: Any) -> None:
62
+ self.additional_properties[key] = value
63
+
64
+ def __delitem__(self, key: str) -> None:
65
+ del self.additional_properties[key]
66
+
67
+ def __contains__(self, key: str) -> bool:
68
+ return key in self.additional_properties
@@ -0,0 +1,89 @@
1
+ from collections.abc import Mapping
2
+ from typing import Any, TypeVar, Union
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="CourseAccountRequest")
11
+
12
+
13
+ @_attrs_define
14
+ class CourseAccountRequest:
15
+ """
16
+ Attributes:
17
+ project (UUID):
18
+ email (Union[Unset, str]):
19
+ description (Union[Unset, str]):
20
+ error_traceback (Union[Unset, str]):
21
+ """
22
+
23
+ project: UUID
24
+ email: Union[Unset, str] = UNSET
25
+ description: Union[Unset, str] = UNSET
26
+ error_traceback: Union[Unset, str] = UNSET
27
+ additional_properties: dict[str, Any] = _attrs_field(init=False, factory=dict)
28
+
29
+ def to_dict(self) -> dict[str, Any]:
30
+ project = str(self.project)
31
+
32
+ email = self.email
33
+
34
+ description = self.description
35
+
36
+ error_traceback = self.error_traceback
37
+
38
+ field_dict: dict[str, Any] = {}
39
+ field_dict.update(self.additional_properties)
40
+ field_dict.update(
41
+ {
42
+ "project": project,
43
+ }
44
+ )
45
+ if email is not UNSET:
46
+ field_dict["email"] = email
47
+ if description is not UNSET:
48
+ field_dict["description"] = description
49
+ if error_traceback is not UNSET:
50
+ field_dict["error_traceback"] = error_traceback
51
+
52
+ return field_dict
53
+
54
+ @classmethod
55
+ def from_dict(cls: type[T], src_dict: Mapping[str, Any]) -> T:
56
+ d = dict(src_dict)
57
+ project = UUID(d.pop("project"))
58
+
59
+ email = d.pop("email", UNSET)
60
+
61
+ description = d.pop("description", UNSET)
62
+
63
+ error_traceback = d.pop("error_traceback", UNSET)
64
+
65
+ course_account_request = cls(
66
+ project=project,
67
+ email=email,
68
+ description=description,
69
+ error_traceback=error_traceback,
70
+ )
71
+
72
+ course_account_request.additional_properties = d
73
+ return course_account_request
74
+
75
+ @property
76
+ def additional_keys(self) -> list[str]:
77
+ return list(self.additional_properties.keys())
78
+
79
+ def __getitem__(self, key: str) -> Any:
80
+ return self.additional_properties[key]
81
+
82
+ def __setitem__(self, key: str, value: Any) -> None:
83
+ self.additional_properties[key] = value
84
+
85
+ def __delitem__(self, key: str) -> None:
86
+ del self.additional_properties[key]
87
+
88
+ def __contains__(self, key: str) -> bool:
89
+ return key in self.additional_properties
@@ -0,0 +1,82 @@
1
+ from collections.abc import Mapping
2
+ from typing import TYPE_CHECKING, Any, TypeVar
3
+ from uuid import UUID
4
+
5
+ from attrs import define as _attrs_define
6
+ from attrs import field as _attrs_field
7
+
8
+ if TYPE_CHECKING:
9
+ from ..models.course_account_create_nested import CourseAccountCreateNested
10
+
11
+
12
+ T = TypeVar("T", bound="CourseAccountsBulkCreate")
13
+
14
+
15
+ @_attrs_define
16
+ class CourseAccountsBulkCreate:
17
+ """
18
+ Attributes:
19
+ course_accounts (list['CourseAccountCreateNested']):
20
+ project (UUID):
21
+ """
22
+
23
+ course_accounts: list["CourseAccountCreateNested"]
24
+ project: UUID
25
+ additional_properties: dict[str, Any] = _attrs_field(init=False, factory=dict)
26
+
27
+ def to_dict(self) -> dict[str, Any]:
28
+ course_accounts = []
29
+ for course_accounts_item_data in self.course_accounts:
30
+ course_accounts_item = course_accounts_item_data.to_dict()
31
+ course_accounts.append(course_accounts_item)
32
+
33
+ project = str(self.project)
34
+
35
+ field_dict: dict[str, Any] = {}
36
+ field_dict.update(self.additional_properties)
37
+ field_dict.update(
38
+ {
39
+ "course_accounts": course_accounts,
40
+ "project": project,
41
+ }
42
+ )
43
+
44
+ return field_dict
45
+
46
+ @classmethod
47
+ def from_dict(cls: type[T], src_dict: Mapping[str, Any]) -> T:
48
+ from ..models.course_account_create_nested import CourseAccountCreateNested
49
+
50
+ d = dict(src_dict)
51
+ course_accounts = []
52
+ _course_accounts = d.pop("course_accounts")
53
+ for course_accounts_item_data in _course_accounts:
54
+ course_accounts_item = CourseAccountCreateNested.from_dict(course_accounts_item_data)
55
+
56
+ course_accounts.append(course_accounts_item)
57
+
58
+ project = UUID(d.pop("project"))
59
+
60
+ course_accounts_bulk_create = cls(
61
+ course_accounts=course_accounts,
62
+ project=project,
63
+ )
64
+
65
+ course_accounts_bulk_create.additional_properties = d
66
+ return course_accounts_bulk_create
67
+
68
+ @property
69
+ def additional_keys(self) -> list[str]:
70
+ return list(self.additional_properties.keys())
71
+
72
+ def __getitem__(self, key: str) -> Any:
73
+ return self.additional_properties[key]
74
+
75
+ def __setitem__(self, key: str, value: Any) -> None:
76
+ self.additional_properties[key] = value
77
+
78
+ def __delitem__(self, key: str) -> None:
79
+ del self.additional_properties[key]
80
+
81
+ def __contains__(self, key: str) -> bool:
82
+ return key in self.additional_properties
@@ -0,0 +1,82 @@
1
+ from collections.abc import Mapping
2
+ from typing import TYPE_CHECKING, Any, TypeVar
3
+ from uuid import UUID
4
+
5
+ from attrs import define as _attrs_define
6
+ from attrs import field as _attrs_field
7
+
8
+ if TYPE_CHECKING:
9
+ from ..models.course_account_create_nested_request import CourseAccountCreateNestedRequest
10
+
11
+
12
+ T = TypeVar("T", bound="CourseAccountsBulkCreateRequest")
13
+
14
+
15
+ @_attrs_define
16
+ class CourseAccountsBulkCreateRequest:
17
+ """
18
+ Attributes:
19
+ course_accounts (list['CourseAccountCreateNestedRequest']):
20
+ project (UUID):
21
+ """
22
+
23
+ course_accounts: list["CourseAccountCreateNestedRequest"]
24
+ project: UUID
25
+ additional_properties: dict[str, Any] = _attrs_field(init=False, factory=dict)
26
+
27
+ def to_dict(self) -> dict[str, Any]:
28
+ course_accounts = []
29
+ for course_accounts_item_data in self.course_accounts:
30
+ course_accounts_item = course_accounts_item_data.to_dict()
31
+ course_accounts.append(course_accounts_item)
32
+
33
+ project = str(self.project)
34
+
35
+ field_dict: dict[str, Any] = {}
36
+ field_dict.update(self.additional_properties)
37
+ field_dict.update(
38
+ {
39
+ "course_accounts": course_accounts,
40
+ "project": project,
41
+ }
42
+ )
43
+
44
+ return field_dict
45
+
46
+ @classmethod
47
+ def from_dict(cls: type[T], src_dict: Mapping[str, Any]) -> T:
48
+ from ..models.course_account_create_nested_request import CourseAccountCreateNestedRequest
49
+
50
+ d = dict(src_dict)
51
+ course_accounts = []
52
+ _course_accounts = d.pop("course_accounts")
53
+ for course_accounts_item_data in _course_accounts:
54
+ course_accounts_item = CourseAccountCreateNestedRequest.from_dict(course_accounts_item_data)
55
+
56
+ course_accounts.append(course_accounts_item)
57
+
58
+ project = UUID(d.pop("project"))
59
+
60
+ course_accounts_bulk_create_request = cls(
61
+ course_accounts=course_accounts,
62
+ project=project,
63
+ )
64
+
65
+ course_accounts_bulk_create_request.additional_properties = d
66
+ return course_accounts_bulk_create_request
67
+
68
+ @property
69
+ def additional_keys(self) -> list[str]:
70
+ return list(self.additional_properties.keys())
71
+
72
+ def __getitem__(self, key: str) -> Any:
73
+ return self.additional_properties[key]
74
+
75
+ def __setitem__(self, key: str, value: Any) -> None:
76
+ self.additional_properties[key] = value
77
+
78
+ def __delitem__(self, key: str) -> None:
79
+ del self.additional_properties[key]
80
+
81
+ def __contains__(self, key: str) -> bool:
82
+ return key in self.additional_properties
@@ -13,7 +13,9 @@ from ..types import UNSET, Unset
13
13
 
14
14
  if TYPE_CHECKING:
15
15
  from ..models.nested_price_estimate import NestedPriceEstimate
16
+ from ..models.organization_group import OrganizationGroup
16
17
  from ..models.payment_profile import PaymentProfile
18
+ from ..models.permission_project import PermissionProject
17
19
 
18
20
 
19
21
  T = TypeVar("T", bound="Customer")
@@ -26,7 +28,9 @@ class Customer:
26
28
  url (Union[Unset, str]):
27
29
  uuid (Union[Unset, UUID]):
28
30
  created (Union[Unset, datetime.datetime]):
31
+ organization_groups (Union[Unset, list['OrganizationGroup']]):
29
32
  display_name (Union[Unset, str]):
33
+ projects (Union[Unset, list['PermissionProject']]):
30
34
  backend_id (Union[Unset, str]): Organization identifier in another application.
31
35
  image (Union[None, Unset, str]):
32
36
  blocked (Union[Unset, bool]):
@@ -34,13 +38,16 @@ class Customer:
34
38
  default_tax_percent (Union[Unset, str]):
35
39
  accounting_start_date (Union[Unset, datetime.datetime]):
36
40
  projects_count (Union[Unset, int]):
41
+ users_count (Union[Unset, int]):
37
42
  sponsor_number (Union[None, Unset, int]): External ID of the sponsor covering the costs
38
43
  country_name (Union[Unset, str]):
39
44
  max_service_accounts (Union[None, Unset, int]): Maximum number of service accounts allowed
45
+ project_metadata_checklist (Union[None, UUID, Unset]):
40
46
  name (Union[Unset, str]):
41
47
  slug (Union[Unset, str]):
42
48
  native_name (Union[Unset, str]):
43
49
  abbreviation (Union[Unset, str]):
50
+ description (Union[Unset, str]):
44
51
  contact_details (Union[Unset, str]):
45
52
  agreement_number (Union[Unset, str]):
46
53
  email (Union[Unset, str]):
@@ -71,7 +78,9 @@ class Customer:
71
78
  url: Union[Unset, str] = UNSET
72
79
  uuid: Union[Unset, UUID] = UNSET
73
80
  created: Union[Unset, datetime.datetime] = UNSET
81
+ organization_groups: Union[Unset, list["OrganizationGroup"]] = UNSET
74
82
  display_name: Union[Unset, str] = UNSET
83
+ projects: Union[Unset, list["PermissionProject"]] = UNSET
75
84
  backend_id: Union[Unset, str] = UNSET
76
85
  image: Union[None, Unset, str] = UNSET
77
86
  blocked: Union[Unset, bool] = UNSET
@@ -79,13 +88,16 @@ class Customer:
79
88
  default_tax_percent: Union[Unset, str] = UNSET
80
89
  accounting_start_date: Union[Unset, datetime.datetime] = UNSET
81
90
  projects_count: Union[Unset, int] = UNSET
91
+ users_count: Union[Unset, int] = UNSET
82
92
  sponsor_number: Union[None, Unset, int] = UNSET
83
93
  country_name: Union[Unset, str] = UNSET
84
94
  max_service_accounts: Union[None, Unset, int] = UNSET
95
+ project_metadata_checklist: Union[None, UUID, Unset] = UNSET
85
96
  name: Union[Unset, str] = UNSET
86
97
  slug: Union[Unset, str] = UNSET
87
98
  native_name: Union[Unset, str] = UNSET
88
99
  abbreviation: Union[Unset, str] = UNSET
100
+ description: Union[Unset, str] = UNSET
89
101
  contact_details: Union[Unset, str] = UNSET
90
102
  agreement_number: Union[Unset, str] = UNSET
91
103
  email: Union[Unset, str] = UNSET
@@ -123,8 +135,22 @@ class Customer:
123
135
  if not isinstance(self.created, Unset):
124
136
  created = self.created.isoformat()
125
137
 
138
+ organization_groups: Union[Unset, list[dict[str, Any]]] = UNSET
139
+ if not isinstance(self.organization_groups, Unset):
140
+ organization_groups = []
141
+ for organization_groups_item_data in self.organization_groups:
142
+ organization_groups_item = organization_groups_item_data.to_dict()
143
+ organization_groups.append(organization_groups_item)
144
+
126
145
  display_name = self.display_name
127
146
 
147
+ projects: Union[Unset, list[dict[str, Any]]] = UNSET
148
+ if not isinstance(self.projects, Unset):
149
+ projects = []
150
+ for projects_item_data in self.projects:
151
+ projects_item = projects_item_data.to_dict()
152
+ projects.append(projects_item)
153
+
128
154
  backend_id = self.backend_id
129
155
 
130
156
  image: Union[None, Unset, str]
@@ -145,6 +171,8 @@ class Customer:
145
171
 
146
172
  projects_count = self.projects_count
147
173
 
174
+ users_count = self.users_count
175
+
148
176
  sponsor_number: Union[None, Unset, int]
149
177
  if isinstance(self.sponsor_number, Unset):
150
178
  sponsor_number = UNSET
@@ -159,6 +187,14 @@ class Customer:
159
187
  else:
160
188
  max_service_accounts = self.max_service_accounts
161
189
 
190
+ project_metadata_checklist: Union[None, Unset, str]
191
+ if isinstance(self.project_metadata_checklist, Unset):
192
+ project_metadata_checklist = UNSET
193
+ elif isinstance(self.project_metadata_checklist, UUID):
194
+ project_metadata_checklist = str(self.project_metadata_checklist)
195
+ else:
196
+ project_metadata_checklist = self.project_metadata_checklist
197
+
162
198
  name = self.name
163
199
 
164
200
  slug = self.slug
@@ -167,6 +203,8 @@ class Customer:
167
203
 
168
204
  abbreviation = self.abbreviation
169
205
 
206
+ description = self.description
207
+
170
208
  contact_details = self.contact_details
171
209
 
172
210
  agreement_number = self.agreement_number
@@ -267,8 +305,12 @@ class Customer:
267
305
  field_dict["uuid"] = uuid
268
306
  if created is not UNSET:
269
307
  field_dict["created"] = created
308
+ if organization_groups is not UNSET:
309
+ field_dict["organization_groups"] = organization_groups
270
310
  if display_name is not UNSET:
271
311
  field_dict["display_name"] = display_name
312
+ if projects is not UNSET:
313
+ field_dict["projects"] = projects
272
314
  if backend_id is not UNSET:
273
315
  field_dict["backend_id"] = backend_id
274
316
  if image is not UNSET:
@@ -283,12 +325,16 @@ class Customer:
283
325
  field_dict["accounting_start_date"] = accounting_start_date
284
326
  if projects_count is not UNSET:
285
327
  field_dict["projects_count"] = projects_count
328
+ if users_count is not UNSET:
329
+ field_dict["users_count"] = users_count
286
330
  if sponsor_number is not UNSET:
287
331
  field_dict["sponsor_number"] = sponsor_number
288
332
  if country_name is not UNSET:
289
333
  field_dict["country_name"] = country_name
290
334
  if max_service_accounts is not UNSET:
291
335
  field_dict["max_service_accounts"] = max_service_accounts
336
+ if project_metadata_checklist is not UNSET:
337
+ field_dict["project_metadata_checklist"] = project_metadata_checklist
292
338
  if name is not UNSET:
293
339
  field_dict["name"] = name
294
340
  if slug is not UNSET:
@@ -297,6 +343,8 @@ class Customer:
297
343
  field_dict["native_name"] = native_name
298
344
  if abbreviation is not UNSET:
299
345
  field_dict["abbreviation"] = abbreviation
346
+ if description is not UNSET:
347
+ field_dict["description"] = description
300
348
  if contact_details is not UNSET:
301
349
  field_dict["contact_details"] = contact_details
302
350
  if agreement_number is not UNSET:
@@ -351,7 +399,9 @@ class Customer:
351
399
  @classmethod
352
400
  def from_dict(cls: type[T], src_dict: Mapping[str, Any]) -> T:
353
401
  from ..models.nested_price_estimate import NestedPriceEstimate
402
+ from ..models.organization_group import OrganizationGroup
354
403
  from ..models.payment_profile import PaymentProfile
404
+ from ..models.permission_project import PermissionProject
355
405
 
356
406
  d = dict(src_dict)
357
407
  url = d.pop("url", UNSET)
@@ -370,8 +420,22 @@ class Customer:
370
420
  else:
371
421
  created = isoparse(_created)
372
422
 
423
+ organization_groups = []
424
+ _organization_groups = d.pop("organization_groups", UNSET)
425
+ for organization_groups_item_data in _organization_groups or []:
426
+ organization_groups_item = OrganizationGroup.from_dict(organization_groups_item_data)
427
+
428
+ organization_groups.append(organization_groups_item)
429
+
373
430
  display_name = d.pop("display_name", UNSET)
374
431
 
432
+ projects = []
433
+ _projects = d.pop("projects", UNSET)
434
+ for projects_item_data in _projects or []:
435
+ projects_item = PermissionProject.from_dict(projects_item_data)
436
+
437
+ projects.append(projects_item)
438
+
375
439
  backend_id = d.pop("backend_id", UNSET)
376
440
 
377
441
  def _parse_image(data: object) -> Union[None, Unset, str]:
@@ -398,6 +462,8 @@ class Customer:
398
462
 
399
463
  projects_count = d.pop("projects_count", UNSET)
400
464
 
465
+ users_count = d.pop("users_count", UNSET)
466
+
401
467
  def _parse_sponsor_number(data: object) -> Union[None, Unset, int]:
402
468
  if data is None:
403
469
  return data
@@ -418,6 +484,23 @@ class Customer:
418
484
 
419
485
  max_service_accounts = _parse_max_service_accounts(d.pop("max_service_accounts", UNSET))
420
486
 
487
+ def _parse_project_metadata_checklist(data: object) -> Union[None, UUID, Unset]:
488
+ if data is None:
489
+ return data
490
+ if isinstance(data, Unset):
491
+ return data
492
+ try:
493
+ if not isinstance(data, str):
494
+ raise TypeError()
495
+ project_metadata_checklist_type_0 = UUID(data)
496
+
497
+ return project_metadata_checklist_type_0
498
+ except: # noqa: E722
499
+ pass
500
+ return cast(Union[None, UUID, Unset], data)
501
+
502
+ project_metadata_checklist = _parse_project_metadata_checklist(d.pop("project_metadata_checklist", UNSET))
503
+
421
504
  name = d.pop("name", UNSET)
422
505
 
423
506
  slug = d.pop("slug", UNSET)
@@ -426,6 +509,8 @@ class Customer:
426
509
 
427
510
  abbreviation = d.pop("abbreviation", UNSET)
428
511
 
512
+ description = d.pop("description", UNSET)
513
+
429
514
  contact_details = d.pop("contact_details", UNSET)
430
515
 
431
516
  agreement_number = d.pop("agreement_number", UNSET)
@@ -564,7 +649,9 @@ class Customer:
564
649
  url=url,
565
650
  uuid=uuid,
566
651
  created=created,
652
+ organization_groups=organization_groups,
567
653
  display_name=display_name,
654
+ projects=projects,
568
655
  backend_id=backend_id,
569
656
  image=image,
570
657
  blocked=blocked,
@@ -572,13 +659,16 @@ class Customer:
572
659
  default_tax_percent=default_tax_percent,
573
660
  accounting_start_date=accounting_start_date,
574
661
  projects_count=projects_count,
662
+ users_count=users_count,
575
663
  sponsor_number=sponsor_number,
576
664
  country_name=country_name,
577
665
  max_service_accounts=max_service_accounts,
666
+ project_metadata_checklist=project_metadata_checklist,
578
667
  name=name,
579
668
  slug=slug,
580
669
  native_name=native_name,
581
670
  abbreviation=abbreviation,
671
+ description=description,
582
672
  contact_details=contact_details,
583
673
  agreement_number=agreement_number,
584
674
  email=email,