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
@@ -37,7 +37,6 @@ class BookingResource:
37
37
  offering_image (Union[Unset, str]):
38
38
  offering_thumbnail (Union[Unset, str]):
39
39
  offering_type (Union[Unset, str]):
40
- offering_terms_of_service (Union[Unset, str]):
41
40
  offering_shared (Union[Unset, bool]): Accessible to all customers.
42
41
  offering_billable (Union[Unset, bool]): Purchase and usage is invoiced.
43
42
  offering_plugin_options (Union[Unset, Any]): Public data used by specific plugin, such as storage mode for
@@ -108,6 +107,8 @@ class BookingResource:
108
107
  service_settings_uuid (Union[Unset, UUID]):
109
108
  project_slug (Union[Unset, str]):
110
109
  customer_slug (Union[Unset, str]):
110
+ user_requires_reconsent (Union[Unset, bool]): Check if the current user needs to re-consent for this resource's
111
+ offering.
111
112
  created_by (Union[Unset, str]):
112
113
  created_by_username (Union[Unset, str]): Required. 128 characters or fewer. Lowercase letters, numbers and
113
114
  @/./+/-/_ characters
@@ -126,7 +127,6 @@ class BookingResource:
126
127
  offering_image: Union[Unset, str] = UNSET
127
128
  offering_thumbnail: Union[Unset, str] = UNSET
128
129
  offering_type: Union[Unset, str] = UNSET
129
- offering_terms_of_service: Union[Unset, str] = UNSET
130
130
  offering_shared: Union[Unset, bool] = UNSET
131
131
  offering_billable: Union[Unset, bool] = UNSET
132
132
  offering_plugin_options: Union[Unset, Any] = UNSET
@@ -194,6 +194,7 @@ class BookingResource:
194
194
  service_settings_uuid: Union[Unset, UUID] = UNSET
195
195
  project_slug: Union[Unset, str] = UNSET
196
196
  customer_slug: Union[Unset, str] = UNSET
197
+ user_requires_reconsent: Union[Unset, bool] = UNSET
197
198
  created_by: Union[Unset, str] = UNSET
198
199
  created_by_username: Union[Unset, str] = UNSET
199
200
  created_by_full_name: Union[Unset, str] = UNSET
@@ -222,8 +223,6 @@ class BookingResource:
222
223
 
223
224
  offering_type = self.offering_type
224
225
 
225
- offering_terms_of_service = self.offering_terms_of_service
226
-
227
226
  offering_shared = self.offering_shared
228
227
 
229
228
  offering_billable = self.offering_billable
@@ -468,6 +467,8 @@ class BookingResource:
468
467
 
469
468
  customer_slug = self.customer_slug
470
469
 
470
+ user_requires_reconsent = self.user_requires_reconsent
471
+
471
472
  created_by = self.created_by
472
473
 
473
474
  created_by_username = self.created_by_username
@@ -504,8 +505,6 @@ class BookingResource:
504
505
  field_dict["offering_thumbnail"] = offering_thumbnail
505
506
  if offering_type is not UNSET:
506
507
  field_dict["offering_type"] = offering_type
507
- if offering_terms_of_service is not UNSET:
508
- field_dict["offering_terms_of_service"] = offering_terms_of_service
509
508
  if offering_shared is not UNSET:
510
509
  field_dict["offering_shared"] = offering_shared
511
510
  if offering_billable is not UNSET:
@@ -640,6 +639,8 @@ class BookingResource:
640
639
  field_dict["project_slug"] = project_slug
641
640
  if customer_slug is not UNSET:
642
641
  field_dict["customer_slug"] = customer_slug
642
+ if user_requires_reconsent is not UNSET:
643
+ field_dict["user_requires_reconsent"] = user_requires_reconsent
643
644
  if created_by is not UNSET:
644
645
  field_dict["created_by"] = created_by
645
646
  if created_by_username is not UNSET:
@@ -689,8 +690,6 @@ class BookingResource:
689
690
 
690
691
  offering_type = d.pop("offering_type", UNSET)
691
692
 
692
- offering_terms_of_service = d.pop("offering_terms_of_service", UNSET)
693
-
694
693
  offering_shared = d.pop("offering_shared", UNSET)
695
694
 
696
695
  offering_billable = d.pop("offering_billable", UNSET)
@@ -1065,6 +1064,8 @@ class BookingResource:
1065
1064
 
1066
1065
  customer_slug = d.pop("customer_slug", UNSET)
1067
1066
 
1067
+ user_requires_reconsent = d.pop("user_requires_reconsent", UNSET)
1068
+
1068
1069
  created_by = d.pop("created_by", UNSET)
1069
1070
 
1070
1071
  created_by_username = d.pop("created_by_username", UNSET)
@@ -1092,7 +1093,6 @@ class BookingResource:
1092
1093
  offering_image=offering_image,
1093
1094
  offering_thumbnail=offering_thumbnail,
1094
1095
  offering_type=offering_type,
1095
- offering_terms_of_service=offering_terms_of_service,
1096
1096
  offering_shared=offering_shared,
1097
1097
  offering_billable=offering_billable,
1098
1098
  offering_plugin_options=offering_plugin_options,
@@ -1160,6 +1160,7 @@ class BookingResource:
1160
1160
  service_settings_uuid=service_settings_uuid,
1161
1161
  project_slug=project_slug,
1162
1162
  customer_slug=customer_slug,
1163
+ user_requires_reconsent=user_requires_reconsent,
1163
1164
  created_by=created_by,
1164
1165
  created_by_username=created_by_username,
1165
1166
  created_by_full_name=created_by_full_name,
@@ -46,7 +46,6 @@ class BookingResourcesListFieldItem(str, Enum):
46
46
  OFFERING_PLUGIN_OPTIONS = "offering_plugin_options"
47
47
  OFFERING_SHARED = "offering_shared"
48
48
  OFFERING_SLUG = "offering_slug"
49
- OFFERING_TERMS_OF_SERVICE = "offering_terms_of_service"
50
49
  OFFERING_THUMBNAIL = "offering_thumbnail"
51
50
  OFFERING_TYPE = "offering_type"
52
51
  OFFERING_UUID = "offering_uuid"
@@ -83,6 +82,7 @@ class BookingResourcesListFieldItem(str, Enum):
83
82
  STATE = "state"
84
83
  URL = "url"
85
84
  USERNAME = "username"
85
+ USER_REQUIRES_RECONSENT = "user_requires_reconsent"
86
86
  UUID = "uuid"
87
87
 
88
88
  def __str__(self) -> str:
@@ -46,7 +46,6 @@ class BookingResourcesRetrieveFieldItem(str, Enum):
46
46
  OFFERING_PLUGIN_OPTIONS = "offering_plugin_options"
47
47
  OFFERING_SHARED = "offering_shared"
48
48
  OFFERING_SLUG = "offering_slug"
49
- OFFERING_TERMS_OF_SERVICE = "offering_terms_of_service"
50
49
  OFFERING_THUMBNAIL = "offering_thumbnail"
51
50
  OFFERING_TYPE = "offering_type"
52
51
  OFFERING_UUID = "offering_uuid"
@@ -83,6 +82,7 @@ class BookingResourcesRetrieveFieldItem(str, Enum):
83
82
  STATE = "state"
84
83
  URL = "url"
85
84
  USERNAME = "username"
85
+ USER_REQUIRES_RECONSENT = "user_requires_reconsent"
86
86
  UUID = "uuid"
87
87
 
88
88
  def __str__(self) -> str:
@@ -0,0 +1,75 @@
1
+ from collections.abc import Mapping
2
+ from typing import Any, TypeVar
3
+
4
+ from attrs import define as _attrs_define
5
+ from attrs import field as _attrs_field
6
+
7
+ T = TypeVar("T", bound="CancelRequestResponse")
8
+
9
+
10
+ @_attrs_define
11
+ class CancelRequestResponse:
12
+ """
13
+ Attributes:
14
+ uuid (str): UUID of the canceled permission request
15
+ scope_name (str): Name of the invitation scope
16
+ scope_uuid (str): UUID of the invitation scope
17
+ """
18
+
19
+ uuid: str
20
+ scope_name: str
21
+ scope_uuid: str
22
+ additional_properties: dict[str, Any] = _attrs_field(init=False, factory=dict)
23
+
24
+ def to_dict(self) -> dict[str, Any]:
25
+ uuid = self.uuid
26
+
27
+ scope_name = self.scope_name
28
+
29
+ scope_uuid = self.scope_uuid
30
+
31
+ field_dict: dict[str, Any] = {}
32
+ field_dict.update(self.additional_properties)
33
+ field_dict.update(
34
+ {
35
+ "uuid": uuid,
36
+ "scope_name": scope_name,
37
+ "scope_uuid": scope_uuid,
38
+ }
39
+ )
40
+
41
+ return field_dict
42
+
43
+ @classmethod
44
+ def from_dict(cls: type[T], src_dict: Mapping[str, Any]) -> T:
45
+ d = dict(src_dict)
46
+ uuid = d.pop("uuid")
47
+
48
+ scope_name = d.pop("scope_name")
49
+
50
+ scope_uuid = d.pop("scope_uuid")
51
+
52
+ cancel_request_response = cls(
53
+ uuid=uuid,
54
+ scope_name=scope_name,
55
+ scope_uuid=scope_uuid,
56
+ )
57
+
58
+ cancel_request_response.additional_properties = d
59
+ return cancel_request_response
60
+
61
+ @property
62
+ def additional_keys(self) -> list[str]:
63
+ return list(self.additional_properties.keys())
64
+
65
+ def __getitem__(self, key: str) -> Any:
66
+ return self.additional_properties[key]
67
+
68
+ def __setitem__(self, key: str, value: Any) -> None:
69
+ self.additional_properties[key] = value
70
+
71
+ def __delitem__(self, key: str) -> None:
72
+ del self.additional_properties[key]
73
+
74
+ def __contains__(self, key: str) -> bool:
75
+ return key in self.additional_properties
@@ -0,0 +1,76 @@
1
+ from collections.abc import Mapping
2
+ from typing import 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
+ T = TypeVar("T", bound="ChecklistInfo")
9
+
10
+
11
+ @_attrs_define
12
+ class ChecklistInfo:
13
+ """
14
+ Attributes:
15
+ uuid (UUID):
16
+ name (str):
17
+ checklist_type (str):
18
+ """
19
+
20
+ uuid: UUID
21
+ name: str
22
+ checklist_type: str
23
+ additional_properties: dict[str, Any] = _attrs_field(init=False, factory=dict)
24
+
25
+ def to_dict(self) -> dict[str, Any]:
26
+ uuid = str(self.uuid)
27
+
28
+ name = self.name
29
+
30
+ checklist_type = self.checklist_type
31
+
32
+ field_dict: dict[str, Any] = {}
33
+ field_dict.update(self.additional_properties)
34
+ field_dict.update(
35
+ {
36
+ "uuid": uuid,
37
+ "name": name,
38
+ "checklist_type": checklist_type,
39
+ }
40
+ )
41
+
42
+ return field_dict
43
+
44
+ @classmethod
45
+ def from_dict(cls: type[T], src_dict: Mapping[str, Any]) -> T:
46
+ d = dict(src_dict)
47
+ uuid = UUID(d.pop("uuid"))
48
+
49
+ name = d.pop("name")
50
+
51
+ checklist_type = d.pop("checklist_type")
52
+
53
+ checklist_info = cls(
54
+ uuid=uuid,
55
+ name=name,
56
+ checklist_type=checklist_type,
57
+ )
58
+
59
+ checklist_info.additional_properties = d
60
+ return checklist_info
61
+
62
+ @property
63
+ def additional_keys(self) -> list[str]:
64
+ return list(self.additional_properties.keys())
65
+
66
+ def __getitem__(self, key: str) -> Any:
67
+ return self.additional_properties[key]
68
+
69
+ def __setitem__(self, key: str, value: Any) -> None:
70
+ self.additional_properties[key] = value
71
+
72
+ def __delitem__(self, key: str) -> None:
73
+ del self.additional_properties[key]
74
+
75
+ def __contains__(self, key: str) -> bool:
76
+ return key in self.additional_properties
@@ -0,0 +1,91 @@
1
+ from collections.abc import Mapping
2
+ from typing import Any, TypeVar
3
+
4
+ from attrs import define as _attrs_define
5
+ from attrs import field as _attrs_field
6
+
7
+ T = TypeVar("T", bound="ComplianceOverview")
8
+
9
+
10
+ @_attrs_define
11
+ class ComplianceOverview:
12
+ """
13
+ Attributes:
14
+ total_projects (int):
15
+ projects_with_completions (int):
16
+ fully_completed_projects (int):
17
+ projects_requiring_review (int):
18
+ average_completion_percentage (float):
19
+ """
20
+
21
+ total_projects: int
22
+ projects_with_completions: int
23
+ fully_completed_projects: int
24
+ projects_requiring_review: int
25
+ average_completion_percentage: float
26
+ additional_properties: dict[str, Any] = _attrs_field(init=False, factory=dict)
27
+
28
+ def to_dict(self) -> dict[str, Any]:
29
+ total_projects = self.total_projects
30
+
31
+ projects_with_completions = self.projects_with_completions
32
+
33
+ fully_completed_projects = self.fully_completed_projects
34
+
35
+ projects_requiring_review = self.projects_requiring_review
36
+
37
+ average_completion_percentage = self.average_completion_percentage
38
+
39
+ field_dict: dict[str, Any] = {}
40
+ field_dict.update(self.additional_properties)
41
+ field_dict.update(
42
+ {
43
+ "total_projects": total_projects,
44
+ "projects_with_completions": projects_with_completions,
45
+ "fully_completed_projects": fully_completed_projects,
46
+ "projects_requiring_review": projects_requiring_review,
47
+ "average_completion_percentage": average_completion_percentage,
48
+ }
49
+ )
50
+
51
+ return field_dict
52
+
53
+ @classmethod
54
+ def from_dict(cls: type[T], src_dict: Mapping[str, Any]) -> T:
55
+ d = dict(src_dict)
56
+ total_projects = d.pop("total_projects")
57
+
58
+ projects_with_completions = d.pop("projects_with_completions")
59
+
60
+ fully_completed_projects = d.pop("fully_completed_projects")
61
+
62
+ projects_requiring_review = d.pop("projects_requiring_review")
63
+
64
+ average_completion_percentage = d.pop("average_completion_percentage")
65
+
66
+ compliance_overview = cls(
67
+ total_projects=total_projects,
68
+ projects_with_completions=projects_with_completions,
69
+ fully_completed_projects=fully_completed_projects,
70
+ projects_requiring_review=projects_requiring_review,
71
+ average_completion_percentage=average_completion_percentage,
72
+ )
73
+
74
+ compliance_overview.additional_properties = d
75
+ return compliance_overview
76
+
77
+ @property
78
+ def additional_keys(self) -> list[str]:
79
+ return list(self.additional_properties.keys())
80
+
81
+ def __getitem__(self, key: str) -> Any:
82
+ return self.additional_properties[key]
83
+
84
+ def __setitem__(self, key: str, value: Any) -> None:
85
+ self.additional_properties[key] = value
86
+
87
+ def __delitem__(self, key: str) -> None:
88
+ del self.additional_properties[key]
89
+
90
+ def __contains__(self, key: str) -> bool:
91
+ return key in self.additional_properties
@@ -145,6 +145,7 @@ class ConstanceSettings:
145
145
  deactivate_user_if_no_roles (Union[Unset, bool]):
146
146
  maintenance_announcement_notify_before_minutes (Union[Unset, int]):
147
147
  maintenance_announcement_notify_system (Union[Unset, list[str]]):
148
+ enforce_user_consent_for_offerings (Union[Unset, bool]):
148
149
  """
149
150
 
150
151
  site_name: Union[Unset, str] = UNSET
@@ -279,6 +280,7 @@ class ConstanceSettings:
279
280
  deactivate_user_if_no_roles: Union[Unset, bool] = UNSET
280
281
  maintenance_announcement_notify_before_minutes: Union[Unset, int] = UNSET
281
282
  maintenance_announcement_notify_system: Union[Unset, list[str]] = UNSET
283
+ enforce_user_consent_for_offerings: Union[Unset, bool] = UNSET
282
284
  additional_properties: dict[str, Any] = _attrs_field(init=False, factory=dict)
283
285
 
284
286
  def to_dict(self) -> dict[str, Any]:
@@ -600,6 +602,8 @@ class ConstanceSettings:
600
602
  if not isinstance(self.maintenance_announcement_notify_system, Unset):
601
603
  maintenance_announcement_notify_system = self.maintenance_announcement_notify_system
602
604
 
605
+ enforce_user_consent_for_offerings = self.enforce_user_consent_for_offerings
606
+
603
607
  field_dict: dict[str, Any] = {}
604
608
  field_dict.update(self.additional_properties)
605
609
  field_dict.update({})
@@ -873,6 +877,8 @@ class ConstanceSettings:
873
877
  )
874
878
  if maintenance_announcement_notify_system is not UNSET:
875
879
  field_dict["MAINTENANCE_ANNOUNCEMENT_NOTIFY_SYSTEM"] = maintenance_announcement_notify_system
880
+ if enforce_user_consent_for_offerings is not UNSET:
881
+ field_dict["ENFORCE_USER_CONSENT_FOR_OFFERINGS"] = enforce_user_consent_for_offerings
876
882
 
877
883
  return field_dict
878
884
 
@@ -1231,6 +1237,8 @@ class ConstanceSettings:
1231
1237
 
1232
1238
  maintenance_announcement_notify_system = cast(list[str], d.pop("MAINTENANCE_ANNOUNCEMENT_NOTIFY_SYSTEM", UNSET))
1233
1239
 
1240
+ enforce_user_consent_for_offerings = d.pop("ENFORCE_USER_CONSENT_FOR_OFFERINGS", UNSET)
1241
+
1234
1242
  constance_settings = cls(
1235
1243
  site_name=site_name,
1236
1244
  site_description=site_description,
@@ -1364,6 +1372,7 @@ class ConstanceSettings:
1364
1372
  deactivate_user_if_no_roles=deactivate_user_if_no_roles,
1365
1373
  maintenance_announcement_notify_before_minutes=maintenance_announcement_notify_before_minutes,
1366
1374
  maintenance_announcement_notify_system=maintenance_announcement_notify_system,
1375
+ enforce_user_consent_for_offerings=enforce_user_consent_for_offerings,
1367
1376
  )
1368
1377
 
1369
1378
  constance_settings.additional_properties = d
@@ -147,6 +147,7 @@ class ConstanceSettingsRequest:
147
147
  deactivate_user_if_no_roles (Union[Unset, bool]):
148
148
  maintenance_announcement_notify_before_minutes (Union[Unset, int]):
149
149
  maintenance_announcement_notify_system (Union[Unset, list[str]]):
150
+ enforce_user_consent_for_offerings (Union[Unset, bool]):
150
151
  """
151
152
 
152
153
  site_name: Union[Unset, str] = UNSET
@@ -281,6 +282,7 @@ class ConstanceSettingsRequest:
281
282
  deactivate_user_if_no_roles: Union[Unset, bool] = UNSET
282
283
  maintenance_announcement_notify_before_minutes: Union[Unset, int] = UNSET
283
284
  maintenance_announcement_notify_system: Union[Unset, list[str]] = UNSET
285
+ enforce_user_consent_for_offerings: Union[Unset, bool] = UNSET
284
286
  additional_properties: dict[str, Any] = _attrs_field(init=False, factory=dict)
285
287
 
286
288
  def to_dict(self) -> dict[str, Any]:
@@ -638,6 +640,8 @@ class ConstanceSettingsRequest:
638
640
  if not isinstance(self.maintenance_announcement_notify_system, Unset):
639
641
  maintenance_announcement_notify_system = self.maintenance_announcement_notify_system
640
642
 
643
+ enforce_user_consent_for_offerings = self.enforce_user_consent_for_offerings
644
+
641
645
  field_dict: dict[str, Any] = {}
642
646
  field_dict.update(self.additional_properties)
643
647
  field_dict.update({})
@@ -911,6 +915,8 @@ class ConstanceSettingsRequest:
911
915
  )
912
916
  if maintenance_announcement_notify_system is not UNSET:
913
917
  field_dict["MAINTENANCE_ANNOUNCEMENT_NOTIFY_SYSTEM"] = maintenance_announcement_notify_system
918
+ if enforce_user_consent_for_offerings is not UNSET:
919
+ field_dict["ENFORCE_USER_CONSENT_FOR_OFFERINGS"] = enforce_user_consent_for_offerings
914
920
 
915
921
  return field_dict
916
922
 
@@ -1365,6 +1371,8 @@ class ConstanceSettingsRequest:
1365
1371
 
1366
1372
  maintenance_announcement_notify_system = cast(list[str], d.pop("MAINTENANCE_ANNOUNCEMENT_NOTIFY_SYSTEM", UNSET))
1367
1373
 
1374
+ enforce_user_consent_for_offerings = d.pop("ENFORCE_USER_CONSENT_FOR_OFFERINGS", UNSET)
1375
+
1368
1376
  constance_settings_request = cls(
1369
1377
  site_name=site_name,
1370
1378
  site_description=site_description,
@@ -1498,6 +1506,7 @@ class ConstanceSettingsRequest:
1498
1506
  deactivate_user_if_no_roles=deactivate_user_if_no_roles,
1499
1507
  maintenance_announcement_notify_before_minutes=maintenance_announcement_notify_before_minutes,
1500
1508
  maintenance_announcement_notify_system=maintenance_announcement_notify_system,
1509
+ enforce_user_consent_for_offerings=enforce_user_consent_for_offerings,
1501
1510
  )
1502
1511
 
1503
1512
  constance_settings_request.additional_properties = d
@@ -0,0 +1,188 @@
1
+ import datetime
2
+ from collections.abc import Mapping
3
+ from typing import Any, TypeVar, Union
4
+ from uuid import UUID
5
+
6
+ from attrs import define as _attrs_define
7
+ from attrs import field as _attrs_field
8
+ from dateutil.parser import isoparse
9
+
10
+ from ..models.service_account_state import ServiceAccountState
11
+ from ..types import UNSET, Unset
12
+
13
+ T = TypeVar("T", bound="CourseAccount")
14
+
15
+
16
+ @_attrs_define
17
+ class CourseAccount:
18
+ """
19
+ Attributes:
20
+ url (str):
21
+ uuid (UUID):
22
+ created (datetime.datetime):
23
+ modified (datetime.datetime):
24
+ project (UUID):
25
+ project_uuid (UUID):
26
+ project_name (str):
27
+ user_uuid (UUID):
28
+ user_username (str):
29
+ customer_uuid (UUID):
30
+ customer_name (str):
31
+ state (ServiceAccountState):
32
+ error_message (str):
33
+ email (Union[Unset, str]):
34
+ description (Union[Unset, str]):
35
+ error_traceback (Union[Unset, str]):
36
+ """
37
+
38
+ url: str
39
+ uuid: UUID
40
+ created: datetime.datetime
41
+ modified: datetime.datetime
42
+ project: UUID
43
+ project_uuid: UUID
44
+ project_name: str
45
+ user_uuid: UUID
46
+ user_username: str
47
+ customer_uuid: UUID
48
+ customer_name: str
49
+ state: ServiceAccountState
50
+ error_message: str
51
+ email: Union[Unset, str] = UNSET
52
+ description: Union[Unset, str] = UNSET
53
+ error_traceback: Union[Unset, str] = UNSET
54
+ additional_properties: dict[str, Any] = _attrs_field(init=False, factory=dict)
55
+
56
+ def to_dict(self) -> dict[str, Any]:
57
+ url = self.url
58
+
59
+ uuid = str(self.uuid)
60
+
61
+ created = self.created.isoformat()
62
+
63
+ modified = self.modified.isoformat()
64
+
65
+ project = str(self.project)
66
+
67
+ project_uuid = str(self.project_uuid)
68
+
69
+ project_name = self.project_name
70
+
71
+ user_uuid = str(self.user_uuid)
72
+
73
+ user_username = self.user_username
74
+
75
+ customer_uuid = str(self.customer_uuid)
76
+
77
+ customer_name = self.customer_name
78
+
79
+ state = self.state.value
80
+
81
+ error_message = self.error_message
82
+
83
+ email = self.email
84
+
85
+ description = self.description
86
+
87
+ error_traceback = self.error_traceback
88
+
89
+ field_dict: dict[str, Any] = {}
90
+ field_dict.update(self.additional_properties)
91
+ field_dict.update(
92
+ {
93
+ "url": url,
94
+ "uuid": uuid,
95
+ "created": created,
96
+ "modified": modified,
97
+ "project": project,
98
+ "project_uuid": project_uuid,
99
+ "project_name": project_name,
100
+ "user_uuid": user_uuid,
101
+ "user_username": user_username,
102
+ "customer_uuid": customer_uuid,
103
+ "customer_name": customer_name,
104
+ "state": state,
105
+ "error_message": error_message,
106
+ }
107
+ )
108
+ if email is not UNSET:
109
+ field_dict["email"] = email
110
+ if description is not UNSET:
111
+ field_dict["description"] = description
112
+ if error_traceback is not UNSET:
113
+ field_dict["error_traceback"] = error_traceback
114
+
115
+ return field_dict
116
+
117
+ @classmethod
118
+ def from_dict(cls: type[T], src_dict: Mapping[str, Any]) -> T:
119
+ d = dict(src_dict)
120
+ url = d.pop("url")
121
+
122
+ uuid = UUID(d.pop("uuid"))
123
+
124
+ created = isoparse(d.pop("created"))
125
+
126
+ modified = isoparse(d.pop("modified"))
127
+
128
+ project = UUID(d.pop("project"))
129
+
130
+ project_uuid = UUID(d.pop("project_uuid"))
131
+
132
+ project_name = d.pop("project_name")
133
+
134
+ user_uuid = UUID(d.pop("user_uuid"))
135
+
136
+ user_username = d.pop("user_username")
137
+
138
+ customer_uuid = UUID(d.pop("customer_uuid"))
139
+
140
+ customer_name = d.pop("customer_name")
141
+
142
+ state = ServiceAccountState(d.pop("state"))
143
+
144
+ error_message = d.pop("error_message")
145
+
146
+ email = d.pop("email", UNSET)
147
+
148
+ description = d.pop("description", UNSET)
149
+
150
+ error_traceback = d.pop("error_traceback", UNSET)
151
+
152
+ course_account = cls(
153
+ url=url,
154
+ uuid=uuid,
155
+ created=created,
156
+ modified=modified,
157
+ project=project,
158
+ project_uuid=project_uuid,
159
+ project_name=project_name,
160
+ user_uuid=user_uuid,
161
+ user_username=user_username,
162
+ customer_uuid=customer_uuid,
163
+ customer_name=customer_name,
164
+ state=state,
165
+ error_message=error_message,
166
+ email=email,
167
+ description=description,
168
+ error_traceback=error_traceback,
169
+ )
170
+
171
+ course_account.additional_properties = d
172
+ return course_account
173
+
174
+ @property
175
+ def additional_keys(self) -> list[str]:
176
+ return list(self.additional_properties.keys())
177
+
178
+ def __getitem__(self, key: str) -> Any:
179
+ return self.additional_properties[key]
180
+
181
+ def __setitem__(self, key: str, value: Any) -> None:
182
+ self.additional_properties[key] = value
183
+
184
+ def __delitem__(self, key: str) -> None:
185
+ del self.additional_properties[key]
186
+
187
+ def __contains__(self, key: str) -> bool:
188
+ return key in self.additional_properties