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
@@ -7,6 +7,7 @@ from attrs import define as _attrs_define
7
7
  from attrs import field as _attrs_field
8
8
  from dateutil.parser import isoparse
9
9
 
10
+ from ..models.service_account_state import ServiceAccountState
10
11
  from ..types import UNSET, Unset
11
12
 
12
13
  T = TypeVar("T", bound="ProjectServiceAccount")
@@ -21,6 +22,7 @@ class ProjectServiceAccount:
21
22
  created (datetime.datetime):
22
23
  modified (datetime.datetime):
23
24
  error_message (str):
25
+ state (ServiceAccountState):
24
26
  token (Union[None, str]):
25
27
  expires_at (Union[None, str]):
26
28
  project (UUID):
@@ -41,6 +43,7 @@ class ProjectServiceAccount:
41
43
  created: datetime.datetime
42
44
  modified: datetime.datetime
43
45
  error_message: str
46
+ state: ServiceAccountState
44
47
  token: Union[None, str]
45
48
  expires_at: Union[None, str]
46
49
  project: UUID
@@ -67,6 +70,8 @@ class ProjectServiceAccount:
67
70
 
68
71
  error_message = self.error_message
69
72
 
73
+ state = self.state.value
74
+
70
75
  token: Union[None, str]
71
76
  token = self.token
72
77
 
@@ -104,6 +109,7 @@ class ProjectServiceAccount:
104
109
  "created": created,
105
110
  "modified": modified,
106
111
  "error_message": error_message,
112
+ "state": state,
107
113
  "token": token,
108
114
  "expires_at": expires_at,
109
115
  "project": project,
@@ -140,6 +146,8 @@ class ProjectServiceAccount:
140
146
 
141
147
  error_message = d.pop("error_message")
142
148
 
149
+ state = ServiceAccountState(d.pop("state"))
150
+
143
151
  def _parse_token(data: object) -> Union[None, str]:
144
152
  if data is None:
145
153
  return data
@@ -182,6 +190,7 @@ class ProjectServiceAccount:
182
190
  created=created,
183
191
  modified=modified,
184
192
  error_message=error_message,
193
+ state=state,
185
194
  token=token,
186
195
  expires_at=expires_at,
187
196
  project=project,
@@ -16,6 +16,7 @@ class ProjectsListFieldItem(str, Enum):
16
16
  END_DATE_REQUESTED_BY = "end_date_requested_by"
17
17
  IMAGE = "image"
18
18
  IS_INDUSTRY = "is_industry"
19
+ KIND = "kind"
19
20
  MARKETPLACE_RESOURCE_COUNT = "marketplace_resource_count"
20
21
  MAX_SERVICE_ACCOUNTS = "max_service_accounts"
21
22
  NAME = "name"
@@ -0,0 +1,9 @@
1
+ from enum import Enum
2
+
3
+
4
+ class ProjectsOtherUsersListO(str, Enum):
5
+ CONCATENATED_NAME = "concatenated_name"
6
+ VALUE_1 = "-concatenated_name"
7
+
8
+ def __str__(self) -> str:
9
+ return str(self.value)
@@ -16,6 +16,7 @@ class ProjectsRetrieveFieldItem(str, Enum):
16
16
  END_DATE_REQUESTED_BY = "end_date_requested_by"
17
17
  IMAGE = "image"
18
18
  IS_INDUSTRY = "is_industry"
19
+ KIND = "kind"
19
20
  MARKETPLACE_RESOURCE_COUNT = "marketplace_resource_count"
20
21
  MAX_SERVICE_ACCOUNTS = "max_service_accounts"
21
22
  NAME = "name"
@@ -40,6 +40,7 @@ class Proposal:
40
40
  round_ (NestedRound):
41
41
  call_uuid (UUID):
42
42
  call_name (str):
43
+ call_managing_organisation_uuid (UUID):
43
44
  oecd_fos_2007_label (str):
44
45
  allocation_comment (Union[None, str]):
45
46
  created (datetime.datetime):
@@ -67,6 +68,7 @@ class Proposal:
67
68
  round_: "NestedRound"
68
69
  call_uuid: UUID
69
70
  call_name: str
71
+ call_managing_organisation_uuid: UUID
70
72
  oecd_fos_2007_label: str
71
73
  allocation_comment: Union[None, str]
72
74
  created: datetime.datetime
@@ -117,6 +119,8 @@ class Proposal:
117
119
 
118
120
  call_name = self.call_name
119
121
 
122
+ call_managing_organisation_uuid = str(self.call_managing_organisation_uuid)
123
+
120
124
  oecd_fos_2007_label = self.oecd_fos_2007_label
121
125
 
122
126
  allocation_comment: Union[None, str]
@@ -174,6 +178,7 @@ class Proposal:
174
178
  "round": round_,
175
179
  "call_uuid": call_uuid,
176
180
  "call_name": call_name,
181
+ "call_managing_organisation_uuid": call_managing_organisation_uuid,
177
182
  "oecd_fos_2007_label": oecd_fos_2007_label,
178
183
  "allocation_comment": allocation_comment,
179
184
  "created": created,
@@ -252,6 +257,8 @@ class Proposal:
252
257
 
253
258
  call_name = d.pop("call_name")
254
259
 
260
+ call_managing_organisation_uuid = UUID(d.pop("call_managing_organisation_uuid"))
261
+
255
262
  oecd_fos_2007_label = d.pop("oecd_fos_2007_label")
256
263
 
257
264
  def _parse_allocation_comment(data: object) -> Union[None, str]:
@@ -337,6 +344,7 @@ class Proposal:
337
344
  round_=round_,
338
345
  call_uuid=call_uuid,
339
346
  call_name=call_name,
347
+ call_managing_organisation_uuid=call_managing_organisation_uuid,
340
348
  oecd_fos_2007_label=oecd_fos_2007_label,
341
349
  allocation_comment=allocation_comment,
342
350
  created=created,
@@ -36,6 +36,7 @@ class ProposalReview:
36
36
  round_start_time (datetime.datetime):
37
37
  call_name (str):
38
38
  call_uuid (UUID):
39
+ call_managing_organisation_uuid (UUID):
39
40
  summary_score (Union[Unset, int]):
40
41
  summary_public_comment (Union[Unset, str]):
41
42
  summary_private_comment (Union[Unset, str]):
@@ -67,6 +68,7 @@ class ProposalReview:
67
68
  round_start_time: datetime.datetime
68
69
  call_name: str
69
70
  call_uuid: UUID
71
+ call_managing_organisation_uuid: UUID
70
72
  summary_score: Union[Unset, int] = UNSET
71
73
  summary_public_comment: Union[Unset, str] = UNSET
72
74
  summary_private_comment: Union[Unset, str] = UNSET
@@ -117,6 +119,8 @@ class ProposalReview:
117
119
 
118
120
  call_uuid = str(self.call_uuid)
119
121
 
122
+ call_managing_organisation_uuid = str(self.call_managing_organisation_uuid)
123
+
120
124
  summary_score = self.summary_score
121
125
 
122
126
  summary_public_comment = self.summary_public_comment
@@ -198,6 +202,7 @@ class ProposalReview:
198
202
  "round_start_time": round_start_time,
199
203
  "call_name": call_name,
200
204
  "call_uuid": call_uuid,
205
+ "call_managing_organisation_uuid": call_managing_organisation_uuid,
201
206
  }
202
207
  )
203
208
  if summary_score is not UNSET:
@@ -269,6 +274,8 @@ class ProposalReview:
269
274
 
270
275
  call_uuid = UUID(d.pop("call_uuid"))
271
276
 
277
+ call_managing_organisation_uuid = UUID(d.pop("call_managing_organisation_uuid"))
278
+
272
279
  summary_score = d.pop("summary_score", UNSET)
273
280
 
274
281
  summary_public_comment = d.pop("summary_public_comment", UNSET)
@@ -380,6 +387,7 @@ class ProposalReview:
380
387
  round_start_time=round_start_time,
381
388
  call_name=call_name,
382
389
  call_uuid=call_uuid,
390
+ call_managing_organisation_uuid=call_managing_organisation_uuid,
383
391
  summary_score=summary_score,
384
392
  summary_public_comment=summary_public_comment,
385
393
  summary_private_comment=summary_private_comment,
@@ -44,8 +44,6 @@ class ProviderOfferingDetails:
44
44
  slug (Union[Unset, str]):
45
45
  description (Union[Unset, str]):
46
46
  full_description (Union[Unset, str]):
47
- terms_of_service (Union[Unset, str]):
48
- terms_of_service_link (Union[Unset, str]):
49
47
  privacy_policy_link (Union[Unset, str]):
50
48
  access_url (Union[Unset, str]): Publicly accessible offering access URL
51
49
  endpoints (Union[Unset, list['NestedEndpoint']]):
@@ -113,8 +111,6 @@ class ProviderOfferingDetails:
113
111
  slug: Union[Unset, str] = UNSET
114
112
  description: Union[Unset, str] = UNSET
115
113
  full_description: Union[Unset, str] = UNSET
116
- terms_of_service: Union[Unset, str] = UNSET
117
- terms_of_service_link: Union[Unset, str] = UNSET
118
114
  privacy_policy_link: Union[Unset, str] = UNSET
119
115
  access_url: Union[Unset, str] = UNSET
120
116
  endpoints: Union[Unset, list["NestedEndpoint"]] = UNSET
@@ -194,10 +190,6 @@ class ProviderOfferingDetails:
194
190
 
195
191
  full_description = self.full_description
196
192
 
197
- terms_of_service = self.terms_of_service
198
-
199
- terms_of_service_link = self.terms_of_service_link
200
-
201
193
  privacy_policy_link = self.privacy_policy_link
202
194
 
203
195
  access_url = self.access_url
@@ -503,10 +495,6 @@ class ProviderOfferingDetails:
503
495
  field_dict["description"] = description
504
496
  if full_description is not UNSET:
505
497
  field_dict["full_description"] = full_description
506
- if terms_of_service is not UNSET:
507
- field_dict["terms_of_service"] = terms_of_service
508
- if terms_of_service_link is not UNSET:
509
- field_dict["terms_of_service_link"] = terms_of_service_link
510
498
  if privacy_policy_link is not UNSET:
511
499
  field_dict["privacy_policy_link"] = privacy_policy_link
512
500
  if access_url is not UNSET:
@@ -668,10 +656,6 @@ class ProviderOfferingDetails:
668
656
 
669
657
  full_description = d.pop("full_description", UNSET)
670
658
 
671
- terms_of_service = d.pop("terms_of_service", UNSET)
672
-
673
- terms_of_service_link = d.pop("terms_of_service_link", UNSET)
674
-
675
659
  privacy_policy_link = d.pop("privacy_policy_link", UNSET)
676
660
 
677
661
  access_url = d.pop("access_url", UNSET)
@@ -1115,8 +1099,6 @@ class ProviderOfferingDetails:
1115
1099
  slug=slug,
1116
1100
  description=description,
1117
1101
  full_description=full_description,
1118
- terms_of_service=terms_of_service,
1119
- terms_of_service_link=terms_of_service_link,
1120
1102
  privacy_policy_link=privacy_policy_link,
1121
1103
  access_url=access_url,
1122
1104
  endpoints=endpoints,
@@ -27,8 +27,6 @@ class ProviderOfferingDetailsRequest:
27
27
  type_ (str):
28
28
  description (Union[Unset, str]):
29
29
  full_description (Union[Unset, str]):
30
- terms_of_service (Union[Unset, str]):
31
- terms_of_service_link (Union[Unset, str]):
32
30
  privacy_policy_link (Union[Unset, str]):
33
31
  access_url (Union[Unset, str]): Publicly accessible offering access URL
34
32
  customer (Union[None, Unset, str]):
@@ -55,8 +53,6 @@ class ProviderOfferingDetailsRequest:
55
53
  type_: str
56
54
  description: Union[Unset, str] = UNSET
57
55
  full_description: Union[Unset, str] = UNSET
58
- terms_of_service: Union[Unset, str] = UNSET
59
- terms_of_service_link: Union[Unset, str] = UNSET
60
56
  privacy_policy_link: Union[Unset, str] = UNSET
61
57
  access_url: Union[Unset, str] = UNSET
62
58
  customer: Union[None, Unset, str] = UNSET
@@ -89,10 +85,6 @@ class ProviderOfferingDetailsRequest:
89
85
 
90
86
  full_description = self.full_description
91
87
 
92
- terms_of_service = self.terms_of_service
93
-
94
- terms_of_service_link = self.terms_of_service_link
95
-
96
88
  privacy_policy_link = self.privacy_policy_link
97
89
 
98
90
  access_url = self.access_url
@@ -186,10 +178,6 @@ class ProviderOfferingDetailsRequest:
186
178
  field_dict["description"] = description
187
179
  if full_description is not UNSET:
188
180
  field_dict["full_description"] = full_description
189
- if terms_of_service is not UNSET:
190
- field_dict["terms_of_service"] = terms_of_service
191
- if terms_of_service_link is not UNSET:
192
- field_dict["terms_of_service_link"] = terms_of_service_link
193
181
  if privacy_policy_link is not UNSET:
194
182
  field_dict["privacy_policy_link"] = privacy_policy_link
195
183
  if access_url is not UNSET:
@@ -247,10 +235,6 @@ class ProviderOfferingDetailsRequest:
247
235
 
248
236
  full_description = d.pop("full_description", UNSET)
249
237
 
250
- terms_of_service = d.pop("terms_of_service", UNSET)
251
-
252
- terms_of_service_link = d.pop("terms_of_service_link", UNSET)
253
-
254
238
  privacy_policy_link = d.pop("privacy_policy_link", UNSET)
255
239
 
256
240
  access_url = d.pop("access_url", UNSET)
@@ -373,8 +357,6 @@ class ProviderOfferingDetailsRequest:
373
357
  type_=type_,
374
358
  description=description,
375
359
  full_description=full_description,
376
- terms_of_service=terms_of_service,
377
- terms_of_service_link=terms_of_service_link,
378
360
  privacy_policy_link=privacy_policy_link,
379
361
  access_url=access_url,
380
362
  customer=customer,
@@ -42,8 +42,6 @@ class PublicOfferingDetails:
42
42
  slug (Union[Unset, str]):
43
43
  description (Union[Unset, str]):
44
44
  full_description (Union[Unset, str]):
45
- terms_of_service (Union[Unset, str]):
46
- terms_of_service_link (Union[Unset, str]):
47
45
  privacy_policy_link (Union[Unset, str]):
48
46
  access_url (Union[Unset, str]): Publicly accessible offering access URL
49
47
  endpoints (Union[Unset, list['NestedEndpoint']]):
@@ -109,8 +107,6 @@ class PublicOfferingDetails:
109
107
  slug: Union[Unset, str] = UNSET
110
108
  description: Union[Unset, str] = UNSET
111
109
  full_description: Union[Unset, str] = UNSET
112
- terms_of_service: Union[Unset, str] = UNSET
113
- terms_of_service_link: Union[Unset, str] = UNSET
114
110
  privacy_policy_link: Union[Unset, str] = UNSET
115
111
  access_url: Union[Unset, str] = UNSET
116
112
  endpoints: Union[Unset, list["NestedEndpoint"]] = UNSET
@@ -188,10 +184,6 @@ class PublicOfferingDetails:
188
184
 
189
185
  full_description = self.full_description
190
186
 
191
- terms_of_service = self.terms_of_service
192
-
193
- terms_of_service_link = self.terms_of_service_link
194
-
195
187
  privacy_policy_link = self.privacy_policy_link
196
188
 
197
189
  access_url = self.access_url
@@ -484,10 +476,6 @@ class PublicOfferingDetails:
484
476
  field_dict["description"] = description
485
477
  if full_description is not UNSET:
486
478
  field_dict["full_description"] = full_description
487
- if terms_of_service is not UNSET:
488
- field_dict["terms_of_service"] = terms_of_service
489
- if terms_of_service_link is not UNSET:
490
- field_dict["terms_of_service_link"] = terms_of_service_link
491
479
  if privacy_policy_link is not UNSET:
492
480
  field_dict["privacy_policy_link"] = privacy_policy_link
493
481
  if access_url is not UNSET:
@@ -643,10 +631,6 @@ class PublicOfferingDetails:
643
631
 
644
632
  full_description = d.pop("full_description", UNSET)
645
633
 
646
- terms_of_service = d.pop("terms_of_service", UNSET)
647
-
648
- terms_of_service_link = d.pop("terms_of_service_link", UNSET)
649
-
650
634
  privacy_policy_link = d.pop("privacy_policy_link", UNSET)
651
635
 
652
636
  access_url = d.pop("access_url", UNSET)
@@ -1061,8 +1045,6 @@ class PublicOfferingDetails:
1061
1045
  slug=slug,
1062
1046
  description=description,
1063
1047
  full_description=full_description,
1064
- terms_of_service=terms_of_service,
1065
- terms_of_service_link=terms_of_service_link,
1066
1048
  privacy_policy_link=privacy_policy_link,
1067
1049
  access_url=access_url,
1068
1050
  endpoints=endpoints,
@@ -7,6 +7,7 @@ from attrs import field as _attrs_field
7
7
 
8
8
  from ..models.blank_enum import BlankEnum
9
9
  from ..models.checklist_operators import ChecklistOperators
10
+ from ..models.dependency_logic_operator_enum import DependencyLogicOperatorEnum
10
11
  from ..models.question_type_enum import QuestionTypeEnum
11
12
  from ..types import UNSET, Unset
12
13
 
@@ -42,6 +43,7 @@ class QuestionAdmin:
42
43
  is conditional on answer matching guidance_answer_value with guidance_operator
43
44
  min_value (Union[None, Unset, str]): Minimum value allowed for NUMBER type questions
44
45
  max_value (Union[None, Unset, str]): Maximum value allowed for NUMBER type questions
46
+ dependency_logic_operator (Union[Unset, DependencyLogicOperatorEnum]):
45
47
  """
46
48
 
47
49
  uuid: UUID
@@ -63,6 +65,7 @@ class QuestionAdmin:
63
65
  always_show_guidance: Union[Unset, bool] = UNSET
64
66
  min_value: Union[None, Unset, str] = UNSET
65
67
  max_value: Union[None, Unset, str] = UNSET
68
+ dependency_logic_operator: Union[Unset, DependencyLogicOperatorEnum] = UNSET
66
69
  additional_properties: dict[str, Any] = _attrs_field(init=False, factory=dict)
67
70
 
68
71
  def to_dict(self) -> dict[str, Any]:
@@ -129,6 +132,10 @@ class QuestionAdmin:
129
132
  else:
130
133
  max_value = self.max_value
131
134
 
135
+ dependency_logic_operator: Union[Unset, str] = UNSET
136
+ if not isinstance(self.dependency_logic_operator, Unset):
137
+ dependency_logic_operator = self.dependency_logic_operator.value
138
+
132
139
  field_dict: dict[str, Any] = {}
133
140
  field_dict.update(self.additional_properties)
134
141
  field_dict.update(
@@ -167,6 +174,8 @@ class QuestionAdmin:
167
174
  field_dict["min_value"] = min_value
168
175
  if max_value is not UNSET:
169
176
  field_dict["max_value"] = max_value
177
+ if dependency_logic_operator is not UNSET:
178
+ field_dict["dependency_logic_operator"] = dependency_logic_operator
170
179
 
171
180
  return field_dict
172
181
 
@@ -271,6 +280,13 @@ class QuestionAdmin:
271
280
 
272
281
  max_value = _parse_max_value(d.pop("max_value", UNSET))
273
282
 
283
+ _dependency_logic_operator = d.pop("dependency_logic_operator", UNSET)
284
+ dependency_logic_operator: Union[Unset, DependencyLogicOperatorEnum]
285
+ if isinstance(_dependency_logic_operator, Unset):
286
+ dependency_logic_operator = UNSET
287
+ else:
288
+ dependency_logic_operator = DependencyLogicOperatorEnum(_dependency_logic_operator)
289
+
274
290
  question_admin = cls(
275
291
  uuid=uuid,
276
292
  question_options=question_options,
@@ -291,6 +307,7 @@ class QuestionAdmin:
291
307
  always_show_guidance=always_show_guidance,
292
308
  min_value=min_value,
293
309
  max_value=max_value,
310
+ dependency_logic_operator=dependency_logic_operator,
294
311
  )
295
312
 
296
313
  question_admin.additional_properties = d
@@ -6,6 +6,7 @@ from attrs import field as _attrs_field
6
6
 
7
7
  from ..models.blank_enum import BlankEnum
8
8
  from ..models.checklist_operators import ChecklistOperators
9
+ from ..models.dependency_logic_operator_enum import DependencyLogicOperatorEnum
9
10
  from ..models.question_type_enum import QuestionTypeEnum
10
11
  from ..types import UNSET, Unset
11
12
 
@@ -32,6 +33,7 @@ class QuestionAdminRequest:
32
33
  is conditional on answer matching guidance_answer_value with guidance_operator
33
34
  min_value (Union[None, Unset, str]): Minimum value allowed for NUMBER type questions
34
35
  max_value (Union[None, Unset, str]): Maximum value allowed for NUMBER type questions
36
+ dependency_logic_operator (Union[Unset, DependencyLogicOperatorEnum]):
35
37
  """
36
38
 
37
39
  checklist: str
@@ -48,6 +50,7 @@ class QuestionAdminRequest:
48
50
  always_show_guidance: Union[Unset, bool] = UNSET
49
51
  min_value: Union[None, Unset, str] = UNSET
50
52
  max_value: Union[None, Unset, str] = UNSET
53
+ dependency_logic_operator: Union[Unset, DependencyLogicOperatorEnum] = UNSET
51
54
  additional_properties: dict[str, Any] = _attrs_field(init=False, factory=dict)
52
55
 
53
56
  def to_dict(self) -> dict[str, Any]:
@@ -101,6 +104,10 @@ class QuestionAdminRequest:
101
104
  else:
102
105
  max_value = self.max_value
103
106
 
107
+ dependency_logic_operator: Union[Unset, str] = UNSET
108
+ if not isinstance(self.dependency_logic_operator, Unset):
109
+ dependency_logic_operator = self.dependency_logic_operator.value
110
+
104
111
  field_dict: dict[str, Any] = {}
105
112
  field_dict.update(self.additional_properties)
106
113
  field_dict.update(
@@ -134,6 +141,8 @@ class QuestionAdminRequest:
134
141
  field_dict["min_value"] = min_value
135
142
  if max_value is not UNSET:
136
143
  field_dict["max_value"] = max_value
144
+ if dependency_logic_operator is not UNSET:
145
+ field_dict["dependency_logic_operator"] = dependency_logic_operator
137
146
 
138
147
  return field_dict
139
148
 
@@ -221,6 +230,13 @@ class QuestionAdminRequest:
221
230
 
222
231
  max_value = _parse_max_value(d.pop("max_value", UNSET))
223
232
 
233
+ _dependency_logic_operator = d.pop("dependency_logic_operator", UNSET)
234
+ dependency_logic_operator: Union[Unset, DependencyLogicOperatorEnum]
235
+ if isinstance(_dependency_logic_operator, Unset):
236
+ dependency_logic_operator = UNSET
237
+ else:
238
+ dependency_logic_operator = DependencyLogicOperatorEnum(_dependency_logic_operator)
239
+
224
240
  question_admin_request = cls(
225
241
  checklist=checklist,
226
242
  description=description,
@@ -236,6 +252,7 @@ class QuestionAdminRequest:
236
252
  always_show_guidance=always_show_guidance,
237
253
  min_value=min_value,
238
254
  max_value=max_value,
255
+ dependency_logic_operator=dependency_logic_operator,
239
256
  )
240
257
 
241
258
  question_admin_request.additional_properties = d
@@ -0,0 +1,176 @@
1
+ from collections.abc import Mapping
2
+ from typing import TYPE_CHECKING, Any, TypeVar, Union, cast
3
+ from uuid import UUID
4
+
5
+ from attrs import define as _attrs_define
6
+ from attrs import field as _attrs_field
7
+
8
+ if TYPE_CHECKING:
9
+ from ..models.question_answer_project_answers_item import QuestionAnswerProjectAnswersItem
10
+ from ..models.question_answer_question_options_item import QuestionAnswerQuestionOptionsItem
11
+
12
+
13
+ T = TypeVar("T", bound="QuestionAnswer")
14
+
15
+
16
+ @_attrs_define
17
+ class QuestionAnswer:
18
+ """
19
+ Attributes:
20
+ question_uuid (UUID):
21
+ question_description (str):
22
+ question_type (str):
23
+ required (bool):
24
+ order (int):
25
+ min_value (Union[None, str]):
26
+ max_value (Union[None, str]):
27
+ total_projects (int): Get total projects count.
28
+ answered_projects_count (int): Get count of projects that answered this question.
29
+ project_answers (list['QuestionAnswerProjectAnswersItem']): Get all project answers for this question.
30
+ question_options (list['QuestionAnswerQuestionOptionsItem']): Get question options for select-type questions.
31
+ """
32
+
33
+ question_uuid: UUID
34
+ question_description: str
35
+ question_type: str
36
+ required: bool
37
+ order: int
38
+ min_value: Union[None, str]
39
+ max_value: Union[None, str]
40
+ total_projects: int
41
+ answered_projects_count: int
42
+ project_answers: list["QuestionAnswerProjectAnswersItem"]
43
+ question_options: list["QuestionAnswerQuestionOptionsItem"]
44
+ additional_properties: dict[str, Any] = _attrs_field(init=False, factory=dict)
45
+
46
+ def to_dict(self) -> dict[str, Any]:
47
+ question_uuid = str(self.question_uuid)
48
+
49
+ question_description = self.question_description
50
+
51
+ question_type = self.question_type
52
+
53
+ required = self.required
54
+
55
+ order = self.order
56
+
57
+ min_value: Union[None, str]
58
+ min_value = self.min_value
59
+
60
+ max_value: Union[None, str]
61
+ max_value = self.max_value
62
+
63
+ total_projects = self.total_projects
64
+
65
+ answered_projects_count = self.answered_projects_count
66
+
67
+ project_answers = []
68
+ for project_answers_item_data in self.project_answers:
69
+ project_answers_item = project_answers_item_data.to_dict()
70
+ project_answers.append(project_answers_item)
71
+
72
+ question_options = []
73
+ for question_options_item_data in self.question_options:
74
+ question_options_item = question_options_item_data.to_dict()
75
+ question_options.append(question_options_item)
76
+
77
+ field_dict: dict[str, Any] = {}
78
+ field_dict.update(self.additional_properties)
79
+ field_dict.update(
80
+ {
81
+ "question_uuid": question_uuid,
82
+ "question_description": question_description,
83
+ "question_type": question_type,
84
+ "required": required,
85
+ "order": order,
86
+ "min_value": min_value,
87
+ "max_value": max_value,
88
+ "total_projects": total_projects,
89
+ "answered_projects_count": answered_projects_count,
90
+ "project_answers": project_answers,
91
+ "question_options": question_options,
92
+ }
93
+ )
94
+
95
+ return field_dict
96
+
97
+ @classmethod
98
+ def from_dict(cls: type[T], src_dict: Mapping[str, Any]) -> T:
99
+ from ..models.question_answer_project_answers_item import QuestionAnswerProjectAnswersItem
100
+ from ..models.question_answer_question_options_item import QuestionAnswerQuestionOptionsItem
101
+
102
+ d = dict(src_dict)
103
+ question_uuid = UUID(d.pop("question_uuid"))
104
+
105
+ question_description = d.pop("question_description")
106
+
107
+ question_type = d.pop("question_type")
108
+
109
+ required = d.pop("required")
110
+
111
+ order = d.pop("order")
112
+
113
+ def _parse_min_value(data: object) -> Union[None, str]:
114
+ if data is None:
115
+ return data
116
+ return cast(Union[None, str], data)
117
+
118
+ min_value = _parse_min_value(d.pop("min_value"))
119
+
120
+ def _parse_max_value(data: object) -> Union[None, str]:
121
+ if data is None:
122
+ return data
123
+ return cast(Union[None, str], data)
124
+
125
+ max_value = _parse_max_value(d.pop("max_value"))
126
+
127
+ total_projects = d.pop("total_projects")
128
+
129
+ answered_projects_count = d.pop("answered_projects_count")
130
+
131
+ project_answers = []
132
+ _project_answers = d.pop("project_answers")
133
+ for project_answers_item_data in _project_answers:
134
+ project_answers_item = QuestionAnswerProjectAnswersItem.from_dict(project_answers_item_data)
135
+
136
+ project_answers.append(project_answers_item)
137
+
138
+ question_options = []
139
+ _question_options = d.pop("question_options")
140
+ for question_options_item_data in _question_options:
141
+ question_options_item = QuestionAnswerQuestionOptionsItem.from_dict(question_options_item_data)
142
+
143
+ question_options.append(question_options_item)
144
+
145
+ question_answer = cls(
146
+ question_uuid=question_uuid,
147
+ question_description=question_description,
148
+ question_type=question_type,
149
+ required=required,
150
+ order=order,
151
+ min_value=min_value,
152
+ max_value=max_value,
153
+ total_projects=total_projects,
154
+ answered_projects_count=answered_projects_count,
155
+ project_answers=project_answers,
156
+ question_options=question_options,
157
+ )
158
+
159
+ question_answer.additional_properties = d
160
+ return question_answer
161
+
162
+ @property
163
+ def additional_keys(self) -> list[str]:
164
+ return list(self.additional_properties.keys())
165
+
166
+ def __getitem__(self, key: str) -> Any:
167
+ return self.additional_properties[key]
168
+
169
+ def __setitem__(self, key: str, value: Any) -> None:
170
+ self.additional_properties[key] = value
171
+
172
+ def __delitem__(self, key: str) -> None:
173
+ del self.additional_properties[key]
174
+
175
+ def __contains__(self, key: str) -> bool:
176
+ return key in self.additional_properties