waldur-api-client 7.7.6__py3-none-any.whl → 7.7.8__py3-none-any.whl

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.

Potentially problematic release.


This version of waldur-api-client might be problematic. Click here for more details.

Files changed (261) hide show
  1. waldur_api_client/api/booking_resources/booking_resources_count.py +34 -11
  2. waldur_api_client/api/booking_resources/booking_resources_list.py +34 -11
  3. waldur_api_client/api/customer_permissions_reviews/customer_permissions_reviews_count.py +19 -0
  4. waldur_api_client/api/customer_permissions_reviews/customer_permissions_reviews_list.py +19 -0
  5. waldur_api_client/api/customers/customers_project_metadata_compliance_details_list.py +189 -0
  6. waldur_api_client/api/customers/customers_project_metadata_compliance_overview_list.py +189 -0
  7. waldur_api_client/api/customers/customers_project_metadata_compliance_projects_list.py +187 -0
  8. waldur_api_client/api/customers/customers_project_metadata_question_answers_list.py +187 -0
  9. waldur_api_client/api/customers/customers_users_list.py +141 -53
  10. waldur_api_client/api/invoices/invoices_items_retrieve.py +20 -0
  11. waldur_api_client/api/managed_rancher_cluster_resources/__init__.py +1 -0
  12. waldur_api_client/api/managed_rancher_cluster_resources/managed_rancher_cluster_resources_add_node.py +162 -0
  13. waldur_api_client/api/managed_rancher_cluster_resources/managed_rancher_cluster_resources_count.py +172 -0
  14. waldur_api_client/api/managed_rancher_cluster_resources/managed_rancher_cluster_resources_list.py +196 -0
  15. waldur_api_client/api/managed_rancher_cluster_resources/managed_rancher_cluster_resources_retrieve.py +171 -0
  16. waldur_api_client/api/marketplace_course_accounts/__init__.py +1 -0
  17. waldur_api_client/api/marketplace_course_accounts/marketplace_course_accounts_count.py +244 -0
  18. waldur_api_client/api/marketplace_course_accounts/marketplace_course_accounts_create.py +148 -0
  19. waldur_api_client/api/marketplace_course_accounts/marketplace_course_accounts_create_bulk.py +152 -0
  20. waldur_api_client/api/marketplace_course_accounts/marketplace_course_accounts_destroy.py +89 -0
  21. waldur_api_client/api/marketplace_course_accounts/marketplace_course_accounts_list.py +245 -0
  22. waldur_api_client/api/marketplace_course_accounts/marketplace_course_accounts_retrieve.py +140 -0
  23. waldur_api_client/api/marketplace_customer_service_accounts/marketplace_customer_service_accounts_count.py +25 -0
  24. waldur_api_client/api/marketplace_customer_service_accounts/marketplace_customer_service_accounts_list.py +25 -0
  25. waldur_api_client/api/marketplace_integration_statuses/marketplace_integration_statuses_count.py +34 -11
  26. waldur_api_client/api/marketplace_integration_statuses/marketplace_integration_statuses_list.py +34 -11
  27. waldur_api_client/api/marketplace_offering_files/marketplace_offering_files_count.py +34 -11
  28. waldur_api_client/api/marketplace_offering_files/marketplace_offering_files_list.py +34 -11
  29. waldur_api_client/api/marketplace_offering_terms_of_service/__init__.py +1 -0
  30. waldur_api_client/api/marketplace_offering_terms_of_service/marketplace_offering_terms_of_service_count.py +274 -0
  31. waldur_api_client/api/marketplace_offering_terms_of_service/marketplace_offering_terms_of_service_create.py +152 -0
  32. waldur_api_client/api/marketplace_offering_terms_of_service/marketplace_offering_terms_of_service_destroy.py +89 -0
  33. waldur_api_client/api/marketplace_offering_terms_of_service/marketplace_offering_terms_of_service_list.py +277 -0
  34. waldur_api_client/api/marketplace_offering_terms_of_service/marketplace_offering_terms_of_service_partial_update.py +164 -0
  35. waldur_api_client/api/marketplace_offering_terms_of_service/marketplace_offering_terms_of_service_retrieve.py +142 -0
  36. waldur_api_client/api/marketplace_offering_terms_of_service/marketplace_offering_terms_of_service_update.py +164 -0
  37. waldur_api_client/api/marketplace_offering_user_roles/marketplace_offering_user_roles_count.py +34 -11
  38. waldur_api_client/api/marketplace_offering_user_roles/marketplace_offering_user_roles_list.py +34 -11
  39. waldur_api_client/api/marketplace_offering_users/marketplace_offering_users_count.py +34 -11
  40. waldur_api_client/api/marketplace_offering_users/marketplace_offering_users_list.py +34 -11
  41. waldur_api_client/api/marketplace_orders/marketplace_orders_count.py +19 -0
  42. waldur_api_client/api/marketplace_orders/marketplace_orders_list.py +19 -0
  43. waldur_api_client/api/marketplace_plans/marketplace_plans_count.py +19 -0
  44. waldur_api_client/api/marketplace_plans/marketplace_plans_list.py +19 -0
  45. waldur_api_client/api/marketplace_plans/marketplace_plans_usage_stats_count.py +19 -0
  46. waldur_api_client/api/marketplace_plans/marketplace_plans_usage_stats_list.py +19 -0
  47. waldur_api_client/api/marketplace_project_service_accounts/marketplace_project_service_accounts_count.py +25 -0
  48. waldur_api_client/api/marketplace_project_service_accounts/marketplace_project_service_accounts_list.py +25 -0
  49. waldur_api_client/api/marketplace_provider_resources/marketplace_provider_resources_count.py +34 -11
  50. waldur_api_client/api/marketplace_provider_resources/marketplace_provider_resources_list.py +34 -11
  51. waldur_api_client/api/marketplace_resources/marketplace_resources_count.py +34 -11
  52. waldur_api_client/api/marketplace_resources/marketplace_resources_list.py +34 -11
  53. waldur_api_client/api/marketplace_screenshots/marketplace_screenshots_count.py +34 -11
  54. waldur_api_client/api/marketplace_screenshots/marketplace_screenshots_list.py +34 -11
  55. waldur_api_client/api/marketplace_service_providers/marketplace_service_providers_course_accounts_list.py +284 -0
  56. waldur_api_client/api/marketplace_service_providers/marketplace_service_providers_project_service_accounts_list.py +29 -0
  57. waldur_api_client/api/marketplace_user_offering_consents/__init__.py +1 -0
  58. waldur_api_client/api/marketplace_user_offering_consents/marketplace_user_offering_consents_count.py +307 -0
  59. waldur_api_client/api/marketplace_user_offering_consents/marketplace_user_offering_consents_create.py +152 -0
  60. waldur_api_client/api/marketplace_user_offering_consents/marketplace_user_offering_consents_destroy.py +89 -0
  61. waldur_api_client/api/marketplace_user_offering_consents/marketplace_user_offering_consents_list.py +310 -0
  62. waldur_api_client/api/marketplace_user_offering_consents/marketplace_user_offering_consents_partial_update.py +164 -0
  63. waldur_api_client/api/marketplace_user_offering_consents/marketplace_user_offering_consents_retrieve.py +142 -0
  64. waldur_api_client/api/marketplace_user_offering_consents/marketplace_user_offering_consents_revoke.py +146 -0
  65. waldur_api_client/api/marketplace_user_offering_consents/marketplace_user_offering_consents_update.py +164 -0
  66. waldur_api_client/api/project_permissions_reviews/__init__.py +1 -0
  67. waldur_api_client/api/project_permissions_reviews/project_permissions_reviews_close.py +91 -0
  68. waldur_api_client/api/project_permissions_reviews/project_permissions_reviews_count.py +266 -0
  69. waldur_api_client/api/project_permissions_reviews/project_permissions_reviews_list.py +269 -0
  70. waldur_api_client/api/project_permissions_reviews/project_permissions_reviews_retrieve.py +142 -0
  71. waldur_api_client/api/projects/projects_other_users_list.py +98 -23
  72. waldur_api_client/api/projects/projects_sync_user_roles.py +10 -9
  73. waldur_api_client/api/remote_waldur_api/remote_waldur_api_remote_resource_order_status_retrieve.py +145 -0
  74. waldur_api_client/api/remote_waldur_api/remote_waldur_api_remote_resource_status_retrieve.py +147 -0
  75. waldur_api_client/api/remote_waldur_api/remote_waldur_api_remote_resource_team_status_list.py +188 -0
  76. waldur_api_client/api/support_issue_statuses/__init__.py +1 -0
  77. waldur_api_client/api/support_issue_statuses/support_issue_statuses_count.py +172 -0
  78. waldur_api_client/api/support_issue_statuses/support_issue_statuses_create.py +148 -0
  79. waldur_api_client/api/support_issue_statuses/support_issue_statuses_destroy.py +89 -0
  80. waldur_api_client/api/support_issue_statuses/support_issue_statuses_list.py +173 -0
  81. waldur_api_client/api/support_issue_statuses/support_issue_statuses_partial_update.py +162 -0
  82. waldur_api_client/api/support_issue_statuses/support_issue_statuses_retrieve.py +140 -0
  83. waldur_api_client/api/support_issue_statuses/support_issue_statuses_update.py +162 -0
  84. waldur_api_client/api/user_group_invitations/user_group_invitations_submit_request.py +12 -12
  85. waldur_api_client/api/user_invitations/user_invitations_count.py +30 -0
  86. waldur_api_client/api/user_invitations/user_invitations_list.py +30 -0
  87. waldur_api_client/api/user_permission_requests/user_permission_requests_cancel_request.py +146 -0
  88. waldur_api_client/models/__init__.py +136 -2
  89. waldur_api_client/models/azure_sql_server_create_order_attributes.py +3 -0
  90. waldur_api_client/models/azure_virtual_machine_create_order_attributes.py +3 -0
  91. waldur_api_client/models/booking_offerings_list_field_item.py +0 -2
  92. waldur_api_client/models/booking_offerings_retrieve_field_item.py +0 -2
  93. waldur_api_client/models/booking_resource.py +10 -9
  94. waldur_api_client/models/booking_resources_list_field_item.py +1 -1
  95. waldur_api_client/models/booking_resources_retrieve_field_item.py +1 -1
  96. waldur_api_client/models/cancel_request_response.py +75 -0
  97. waldur_api_client/models/checklist_info.py +76 -0
  98. waldur_api_client/models/compliance_overview.py +91 -0
  99. waldur_api_client/models/constance_settings.py +9 -0
  100. waldur_api_client/models/constance_settings_request.py +9 -0
  101. waldur_api_client/models/course_account.py +188 -0
  102. waldur_api_client/models/course_account_create_nested.py +68 -0
  103. waldur_api_client/models/course_account_create_nested_request.py +68 -0
  104. waldur_api_client/models/course_account_request.py +89 -0
  105. waldur_api_client/models/course_accounts_bulk_create.py +82 -0
  106. waldur_api_client/models/course_accounts_bulk_create_request.py +82 -0
  107. waldur_api_client/models/customer.py +90 -0
  108. waldur_api_client/models/customer_permission_review.py +16 -16
  109. waldur_api_client/models/customer_request.py +9 -0
  110. waldur_api_client/models/customer_service_account.py +9 -0
  111. waldur_api_client/models/customers_list_field_item.py +5 -0
  112. waldur_api_client/models/customers_retrieve_field_item.py +5 -0
  113. waldur_api_client/models/customers_users_list_o.py +9 -0
  114. waldur_api_client/models/customers_users_list_organization_role_item_type_0.py +10 -0
  115. waldur_api_client/models/customers_users_list_project_role_item_type_0.py +10 -0
  116. waldur_api_client/models/dependency_logic_operator_enum.py +9 -0
  117. waldur_api_client/models/event_subscription.py +1 -1
  118. waldur_api_client/models/event_types_enum.py +4 -0
  119. waldur_api_client/models/generic_order_attributes.py +69 -0
  120. waldur_api_client/models/google_auth_authorize_retrieve_field_item.py +1 -0
  121. waldur_api_client/models/google_auth_list_field_item.py +1 -0
  122. waldur_api_client/models/google_auth_retrieve_field_item.py +1 -0
  123. waldur_api_client/models/google_credentials.py +9 -0
  124. waldur_api_client/models/group_invitation.py +33 -0
  125. waldur_api_client/models/group_invitation_request.py +10 -0
  126. waldur_api_client/models/invitation.py +9 -0
  127. waldur_api_client/models/invoices_items_retrieve_o.py +15 -0
  128. waldur_api_client/models/issue_status.py +103 -0
  129. waldur_api_client/models/issue_status_request.py +78 -0
  130. waldur_api_client/models/issue_status_type_enum.py +9 -0
  131. waldur_api_client/models/kind_enum.py +10 -0
  132. waldur_api_client/models/maintenance_announcement.py +8 -0
  133. waldur_api_client/models/managed_rancher_cluster_resources_list_field_item.py +82 -0
  134. waldur_api_client/models/managed_rancher_cluster_resources_retrieve_field_item.py +82 -0
  135. waldur_api_client/models/managed_rancher_create_node_request.py +186 -0
  136. waldur_api_client/models/marketplace_course_accounts_count_state_item.py +10 -0
  137. waldur_api_client/models/marketplace_course_accounts_list_state_item.py +10 -0
  138. waldur_api_client/models/marketplace_customer_service_accounts_count_state_item.py +10 -0
  139. waldur_api_client/models/marketplace_customer_service_accounts_list_state_item.py +10 -0
  140. waldur_api_client/models/marketplace_offering_terms_of_service_count_o_item.py +13 -0
  141. waldur_api_client/models/marketplace_offering_terms_of_service_list_o_item.py +13 -0
  142. waldur_api_client/models/marketplace_orders_list_field_item.py +1 -1
  143. waldur_api_client/models/marketplace_orders_retrieve_field_item.py +1 -1
  144. waldur_api_client/models/marketplace_project_service_accounts_count_state_item.py +10 -0
  145. waldur_api_client/models/marketplace_project_service_accounts_list_state_item.py +10 -0
  146. waldur_api_client/models/marketplace_provider_offerings_list_customer_service_accounts_retrieve_field_item.py +0 -2
  147. waldur_api_client/models/marketplace_provider_offerings_list_field_item.py +0 -2
  148. waldur_api_client/models/marketplace_provider_offerings_list_project_service_accounts_retrieve_field_item.py +0 -2
  149. waldur_api_client/models/marketplace_provider_offerings_retrieve_field_item.py +0 -2
  150. waldur_api_client/models/marketplace_provider_offerings_stats_retrieve_field_item.py +0 -2
  151. waldur_api_client/models/marketplace_provider_offerings_user_has_resource_access_retrieve_field_item.py +0 -2
  152. waldur_api_client/models/marketplace_provider_resources_details_retrieve_field_item.py +1 -1
  153. waldur_api_client/models/marketplace_provider_resources_list_field_item.py +1 -1
  154. waldur_api_client/models/marketplace_provider_resources_retrieve_field_item.py +1 -1
  155. waldur_api_client/models/marketplace_public_offerings_list_field_item.py +0 -2
  156. waldur_api_client/models/marketplace_public_offerings_retrieve_field_item.py +0 -2
  157. waldur_api_client/models/marketplace_rancher_create_order_attributes.py +3 -0
  158. waldur_api_client/models/marketplace_resources_details_retrieve_field_item.py +1 -1
  159. waldur_api_client/models/marketplace_resources_list_field_item.py +1 -1
  160. waldur_api_client/models/marketplace_resources_retrieve_field_item.py +1 -1
  161. waldur_api_client/models/marketplace_service_providers_course_accounts_list_state_item.py +10 -0
  162. waldur_api_client/models/marketplace_service_providers_list_field_item.py +1 -0
  163. waldur_api_client/models/marketplace_service_providers_project_service_accounts_list_state_item.py +10 -0
  164. waldur_api_client/models/marketplace_service_providers_projects_list_field_item.py +1 -0
  165. waldur_api_client/models/marketplace_service_providers_retrieve_field_item.py +1 -0
  166. waldur_api_client/models/marketplace_user_offering_consents_count_o_item.py +15 -0
  167. waldur_api_client/models/marketplace_user_offering_consents_list_o_item.py +15 -0
  168. waldur_api_client/models/nested_security_group_rule.py +223 -0
  169. waldur_api_client/models/nested_security_group_rule_request.py +188 -0
  170. waldur_api_client/models/offering.py +0 -18
  171. waldur_api_client/models/offering_create.py +0 -18
  172. waldur_api_client/models/offering_create_request.py +0 -18
  173. waldur_api_client/models/offering_overview_update_request.py +0 -18
  174. waldur_api_client/models/offering_terms_of_service.py +142 -0
  175. waldur_api_client/models/offering_terms_of_service_create.py +107 -0
  176. waldur_api_client/models/offering_terms_of_service_create_request.py +107 -0
  177. waldur_api_client/models/offering_terms_of_service_request.py +96 -0
  178. waldur_api_client/models/open_stack_backup_restoration_request.py +0 -22
  179. waldur_api_client/models/open_stack_fixed_ip.py +13 -3
  180. waldur_api_client/models/open_stack_fixed_ip_request.py +7 -2
  181. waldur_api_client/models/open_stack_instance_create_order_attributes.py +23 -20
  182. waldur_api_client/models/open_stack_nested_security_group.py +53 -1
  183. waldur_api_client/models/open_stack_network.py +20 -0
  184. waldur_api_client/models/open_stack_port_ip_update_request.py +6 -2
  185. waldur_api_client/models/open_stack_security_group_rule_update_request.py +4 -4
  186. waldur_api_client/models/open_stack_static_route.py +13 -4
  187. waldur_api_client/models/open_stack_static_route_request.py +7 -3
  188. waldur_api_client/models/open_stack_sub_net.py +15 -2
  189. waldur_api_client/models/open_stack_sub_net_allocation_pool.py +27 -8
  190. waldur_api_client/models/open_stack_sub_net_allocation_pool_request.py +14 -5
  191. waldur_api_client/models/open_stack_sub_net_request.py +15 -2
  192. waldur_api_client/models/open_stack_tenant.py +38 -0
  193. waldur_api_client/models/open_stack_tenant_create_order_attributes.py +21 -0
  194. waldur_api_client/models/open_stack_volume_create_order_attributes.py +3 -0
  195. waldur_api_client/models/openstack_networks_list_field_item.py +1 -0
  196. waldur_api_client/models/openstack_networks_retrieve_field_item.py +1 -0
  197. waldur_api_client/models/openstack_tenants_list_field_item.py +3 -0
  198. waldur_api_client/models/openstack_tenants_retrieve_field_item.py +3 -0
  199. waldur_api_client/models/order_create.py +0 -8
  200. waldur_api_client/models/order_create_request.py +23 -7
  201. waldur_api_client/models/order_details.py +0 -9
  202. waldur_api_client/models/patched_customer_request.py +9 -0
  203. waldur_api_client/models/patched_issue_status_request.py +76 -0
  204. waldur_api_client/models/patched_offering_terms_of_service_request.py +96 -0
  205. waldur_api_client/models/patched_open_stack_sub_net_request.py +15 -2
  206. waldur_api_client/models/patched_project_request.py +17 -0
  207. waldur_api_client/models/patched_question_admin_request.py +17 -0
  208. waldur_api_client/models/patched_rancher_service_request.py +1 -1
  209. waldur_api_client/models/patched_user_offering_consent_request.py +59 -0
  210. waldur_api_client/models/permission_project.py +147 -0
  211. waldur_api_client/models/permission_request.py +16 -0
  212. waldur_api_client/models/project.py +17 -0
  213. waldur_api_client/models/project_answer.py +122 -0
  214. waldur_api_client/models/project_detail.py +133 -0
  215. waldur_api_client/models/project_details_response.py +115 -0
  216. waldur_api_client/models/project_permission_review.py +166 -0
  217. waldur_api_client/models/project_permissions_reviews_count_o_item.py +11 -0
  218. waldur_api_client/models/project_permissions_reviews_list_o_item.py +11 -0
  219. waldur_api_client/models/project_request.py +17 -0
  220. waldur_api_client/models/project_service_account.py +9 -0
  221. waldur_api_client/models/projects_list_field_item.py +1 -0
  222. waldur_api_client/models/projects_other_users_list_o.py +9 -0
  223. waldur_api_client/models/projects_retrieve_field_item.py +1 -0
  224. waldur_api_client/models/proposal.py +8 -0
  225. waldur_api_client/models/proposal_review.py +8 -0
  226. waldur_api_client/models/provider_offering_details.py +0 -18
  227. waldur_api_client/models/provider_offering_details_request.py +0 -18
  228. waldur_api_client/models/public_offering_details.py +0 -18
  229. waldur_api_client/models/question_admin.py +17 -0
  230. waldur_api_client/models/question_admin_request.py +17 -0
  231. waldur_api_client/models/question_answer.py +176 -0
  232. waldur_api_client/models/question_answer_project_answers_item.py +44 -0
  233. waldur_api_client/models/question_answer_question_options_item.py +44 -0
  234. waldur_api_client/models/rancher_nested_public_ip.py +25 -7
  235. waldur_api_client/models/rancher_service.py +1 -1
  236. waldur_api_client/models/rancher_service_request.py +1 -1
  237. waldur_api_client/models/remote_resource_order.py +88 -0
  238. waldur_api_client/models/remote_resource_order_remote_state_enum.py +15 -0
  239. waldur_api_client/models/remote_resource_sync_status.py +123 -0
  240. waldur_api_client/models/{robot_account_states.py → remote_resource_sync_status_remote_state_enum.py} +1 -1
  241. waldur_api_client/models/remote_resource_team_member.py +85 -0
  242. waldur_api_client/models/resource.py +10 -9
  243. waldur_api_client/models/rmq_connection.py +8 -3
  244. waldur_api_client/models/rmq_subscription.py +7 -3
  245. waldur_api_client/models/robot_account.py +9 -17
  246. waldur_api_client/models/robot_account_details.py +9 -17
  247. waldur_api_client/models/service_account_state.py +10 -0
  248. waldur_api_client/models/service_provider.py +9 -0
  249. waldur_api_client/models/slurm_invoices_slurm_package_create_order_attributes.py +3 -0
  250. waldur_api_client/models/submit_request_response.py +75 -0
  251. waldur_api_client/models/sync_status_enum.py +10 -0
  252. waldur_api_client/models/user_offering_consent.py +202 -0
  253. waldur_api_client/models/user_offering_consent_create.py +60 -0
  254. waldur_api_client/models/user_offering_consent_create_request.py +60 -0
  255. waldur_api_client/models/user_offering_consent_request.py +59 -0
  256. waldur_api_client/models/v_mware_virtual_machine_create_order_attributes.py +3 -0
  257. waldur_api_client/models/visible_invitation_details.py +9 -0
  258. {waldur_api_client-7.7.6.dist-info → waldur_api_client-7.7.8.dist-info}/METADATA +1 -1
  259. {waldur_api_client-7.7.6.dist-info → waldur_api_client-7.7.8.dist-info}/RECORD +261 -145
  260. {waldur_api_client-7.7.6.dist-info → waldur_api_client-7.7.8.dist-info}/LICENSE +0 -0
  261. {waldur_api_client-7.7.6.dist-info → waldur_api_client-7.7.8.dist-info}/WHEEL +0 -0
@@ -0,0 +1,44 @@
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="QuestionAnswerProjectAnswersItem")
8
+
9
+
10
+ @_attrs_define
11
+ class QuestionAnswerProjectAnswersItem:
12
+ """ """
13
+
14
+ additional_properties: dict[str, Any] = _attrs_field(init=False, factory=dict)
15
+
16
+ def to_dict(self) -> dict[str, Any]:
17
+ field_dict: dict[str, Any] = {}
18
+ field_dict.update(self.additional_properties)
19
+
20
+ return field_dict
21
+
22
+ @classmethod
23
+ def from_dict(cls: type[T], src_dict: Mapping[str, Any]) -> T:
24
+ d = dict(src_dict)
25
+ question_answer_project_answers_item = cls()
26
+
27
+ question_answer_project_answers_item.additional_properties = d
28
+ return question_answer_project_answers_item
29
+
30
+ @property
31
+ def additional_keys(self) -> list[str]:
32
+ return list(self.additional_properties.keys())
33
+
34
+ def __getitem__(self, key: str) -> Any:
35
+ return self.additional_properties[key]
36
+
37
+ def __setitem__(self, key: str, value: Any) -> None:
38
+ self.additional_properties[key] = value
39
+
40
+ def __delitem__(self, key: str) -> None:
41
+ del self.additional_properties[key]
42
+
43
+ def __contains__(self, key: str) -> bool:
44
+ return key in self.additional_properties
@@ -0,0 +1,44 @@
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="QuestionAnswerQuestionOptionsItem")
8
+
9
+
10
+ @_attrs_define
11
+ class QuestionAnswerQuestionOptionsItem:
12
+ """ """
13
+
14
+ additional_properties: dict[str, Any] = _attrs_field(init=False, factory=dict)
15
+
16
+ def to_dict(self) -> dict[str, Any]:
17
+ field_dict: dict[str, Any] = {}
18
+ field_dict.update(self.additional_properties)
19
+
20
+ return field_dict
21
+
22
+ @classmethod
23
+ def from_dict(cls: type[T], src_dict: Mapping[str, Any]) -> T:
24
+ d = dict(src_dict)
25
+ question_answer_question_options_item = cls()
26
+
27
+ question_answer_question_options_item.additional_properties = d
28
+ return question_answer_question_options_item
29
+
30
+ @property
31
+ def additional_keys(self) -> list[str]:
32
+ return list(self.additional_properties.keys())
33
+
34
+ def __getitem__(self, key: str) -> Any:
35
+ return self.additional_properties[key]
36
+
37
+ def __setitem__(self, key: str, value: Any) -> None:
38
+ self.additional_properties[key] = value
39
+
40
+ def __delitem__(self, key: str) -> None:
41
+ del self.additional_properties[key]
42
+
43
+ def __contains__(self, key: str) -> bool:
44
+ return key in self.additional_properties
@@ -1,5 +1,5 @@
1
1
  from collections.abc import Mapping
2
- from typing import Any, TypeVar, Union
2
+ from typing import Any, TypeVar, Union, cast
3
3
  from uuid import UUID
4
4
 
5
5
  from attrs import define as _attrs_define
@@ -16,8 +16,8 @@ class RancherNestedPublicIP:
16
16
  Attributes:
17
17
  floating_ip (Union[Unset, str]):
18
18
  floating_ip_uuid (Union[Unset, UUID]):
19
- ip_address (Union[Unset, str]):
20
- external_ip_address (Union[Unset, str]):
19
+ ip_address (Union[Unset, str]): An IPv4 or IPv6 address.
20
+ external_ip_address (Union[Unset, str]): An IPv4 or IPv6 address.
21
21
  """
22
22
 
23
23
  floating_ip: Union[Unset, str] = UNSET
@@ -33,9 +33,17 @@ class RancherNestedPublicIP:
33
33
  if not isinstance(self.floating_ip_uuid, Unset):
34
34
  floating_ip_uuid = str(self.floating_ip_uuid)
35
35
 
36
- ip_address = self.ip_address
36
+ ip_address: Union[Unset, str]
37
+ if isinstance(self.ip_address, Unset):
38
+ ip_address = UNSET
39
+ else:
40
+ ip_address = self.ip_address
37
41
 
38
- external_ip_address = self.external_ip_address
42
+ external_ip_address: Union[Unset, str]
43
+ if isinstance(self.external_ip_address, Unset):
44
+ external_ip_address = UNSET
45
+ else:
46
+ external_ip_address = self.external_ip_address
39
47
 
40
48
  field_dict: dict[str, Any] = {}
41
49
  field_dict.update(self.additional_properties)
@@ -63,9 +71,19 @@ class RancherNestedPublicIP:
63
71
  else:
64
72
  floating_ip_uuid = UUID(_floating_ip_uuid)
65
73
 
66
- ip_address = d.pop("ip_address", UNSET)
74
+ def _parse_ip_address(data: object) -> Union[Unset, str]:
75
+ if isinstance(data, Unset):
76
+ return data
77
+ return cast(Union[Unset, str], data)
78
+
79
+ ip_address = _parse_ip_address(d.pop("ip_address", UNSET))
80
+
81
+ def _parse_external_ip_address(data: object) -> Union[Unset, str]:
82
+ if isinstance(data, Unset):
83
+ return data
84
+ return cast(Union[Unset, str], data)
67
85
 
68
- external_ip_address = d.pop("external_ip_address", UNSET)
86
+ external_ip_address = _parse_external_ip_address(d.pop("external_ip_address", UNSET))
69
87
 
70
88
  rancher_nested_public_ip = cls(
71
89
  floating_ip=floating_ip,
@@ -51,7 +51,7 @@ class RancherService:
51
51
  runtime_state (Union[Unset, str]):
52
52
  namespace (Union[Unset, str]):
53
53
  namespace_name (Union[Unset, str]):
54
- cluster_ip (Union[None, Unset, str]):
54
+ cluster_ip (Union[None, Unset, str]): An IPv4 or IPv6 address.
55
55
  selector (Union[Unset, Any]):
56
56
  target_workloads (Union[Unset, list['RancherNestedWorkload']]):
57
57
  marketplace_offering_uuid (Union[None, Unset, str]):
@@ -26,7 +26,7 @@ class RancherServiceRequest:
26
26
  backend_id (Union[Unset, str]):
27
27
  runtime_state (Union[Unset, str]):
28
28
  namespace (Union[Unset, str]):
29
- cluster_ip (Union[None, Unset, str]):
29
+ cluster_ip (Union[None, Unset, str]): An IPv4 or IPv6 address.
30
30
  selector (Union[Unset, Any]):
31
31
  target_workloads (Union[Unset, list['RancherNestedWorkloadRequest']]):
32
32
  """
@@ -0,0 +1,88 @@
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
+ from ..models.order_state import OrderState
9
+ from ..models.remote_resource_order_remote_state_enum import RemoteResourceOrderRemoteStateEnum
10
+ from ..models.sync_status_enum import SyncStatusEnum
11
+
12
+ T = TypeVar("T", bound="RemoteResourceOrder")
13
+
14
+
15
+ @_attrs_define
16
+ class RemoteResourceOrder:
17
+ """
18
+ Attributes:
19
+ order_uuid (UUID): Order UUID
20
+ remote_state (RemoteResourceOrderRemoteStateEnum):
21
+ local_state (OrderState):
22
+ sync_status (SyncStatusEnum):
23
+ """
24
+
25
+ order_uuid: UUID
26
+ remote_state: RemoteResourceOrderRemoteStateEnum
27
+ local_state: OrderState
28
+ sync_status: SyncStatusEnum
29
+ additional_properties: dict[str, Any] = _attrs_field(init=False, factory=dict)
30
+
31
+ def to_dict(self) -> dict[str, Any]:
32
+ order_uuid = str(self.order_uuid)
33
+
34
+ remote_state = self.remote_state.value
35
+
36
+ local_state = self.local_state.value
37
+
38
+ sync_status = self.sync_status.value
39
+
40
+ field_dict: dict[str, Any] = {}
41
+ field_dict.update(self.additional_properties)
42
+ field_dict.update(
43
+ {
44
+ "order_uuid": order_uuid,
45
+ "remote_state": remote_state,
46
+ "local_state": local_state,
47
+ "sync_status": sync_status,
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
+ order_uuid = UUID(d.pop("order_uuid"))
57
+
58
+ remote_state = RemoteResourceOrderRemoteStateEnum(d.pop("remote_state"))
59
+
60
+ local_state = OrderState(d.pop("local_state"))
61
+
62
+ sync_status = SyncStatusEnum(d.pop("sync_status"))
63
+
64
+ remote_resource_order = cls(
65
+ order_uuid=order_uuid,
66
+ remote_state=remote_state,
67
+ local_state=local_state,
68
+ sync_status=sync_status,
69
+ )
70
+
71
+ remote_resource_order.additional_properties = d
72
+ return remote_resource_order
73
+
74
+ @property
75
+ def additional_keys(self) -> list[str]:
76
+ return list(self.additional_properties.keys())
77
+
78
+ def __getitem__(self, key: str) -> Any:
79
+ return self.additional_properties[key]
80
+
81
+ def __setitem__(self, key: str, value: Any) -> None:
82
+ self.additional_properties[key] = value
83
+
84
+ def __delitem__(self, key: str) -> None:
85
+ del self.additional_properties[key]
86
+
87
+ def __contains__(self, key: str) -> bool:
88
+ return key in self.additional_properties
@@ -0,0 +1,15 @@
1
+ from enum import IntEnum
2
+
3
+
4
+ class RemoteResourceOrderRemoteStateEnum(IntEnum):
5
+ VALUE_1 = 1
6
+ VALUE_7 = 7
7
+ VALUE_8 = 8
8
+ VALUE_2 = 2
9
+ VALUE_3 = 3
10
+ VALUE_4 = 4
11
+ VALUE_5 = 5
12
+ VALUE_6 = 6
13
+
14
+ def __str__(self) -> str:
15
+ return str(self.value)
@@ -0,0 +1,123 @@
1
+ import datetime
2
+ from collections.abc import Mapping
3
+ from typing import Any, TypeVar, Union, cast
4
+
5
+ from attrs import define as _attrs_define
6
+ from attrs import field as _attrs_field
7
+ from dateutil.parser import isoparse
8
+
9
+ from ..models.remote_resource_sync_status_remote_state_enum import RemoteResourceSyncStatusRemoteStateEnum
10
+ from ..models.resource_state import ResourceState
11
+ from ..models.sync_status_enum import SyncStatusEnum
12
+
13
+ T = TypeVar("T", bound="RemoteResourceSyncStatus")
14
+
15
+
16
+ @_attrs_define
17
+ class RemoteResourceSyncStatus:
18
+ """
19
+ Attributes:
20
+ local_state (ResourceState):
21
+ remote_state (Union[None, RemoteResourceSyncStatusRemoteStateEnum]): Remote resource state
22
+ sync_status (SyncStatusEnum):
23
+ last_sync (Union[None, datetime.datetime]): Last sync timestamp
24
+ """
25
+
26
+ local_state: ResourceState
27
+ remote_state: Union[None, RemoteResourceSyncStatusRemoteStateEnum]
28
+ sync_status: SyncStatusEnum
29
+ last_sync: Union[None, datetime.datetime]
30
+ additional_properties: dict[str, Any] = _attrs_field(init=False, factory=dict)
31
+
32
+ def to_dict(self) -> dict[str, Any]:
33
+ local_state = self.local_state.value
34
+
35
+ remote_state: Union[None, int]
36
+ if isinstance(self.remote_state, RemoteResourceSyncStatusRemoteStateEnum):
37
+ remote_state = self.remote_state.value
38
+ else:
39
+ remote_state = self.remote_state
40
+
41
+ sync_status = self.sync_status.value
42
+
43
+ last_sync: Union[None, str]
44
+ if isinstance(self.last_sync, datetime.datetime):
45
+ last_sync = self.last_sync.isoformat()
46
+ else:
47
+ last_sync = self.last_sync
48
+
49
+ field_dict: dict[str, Any] = {}
50
+ field_dict.update(self.additional_properties)
51
+ field_dict.update(
52
+ {
53
+ "local_state": local_state,
54
+ "remote_state": remote_state,
55
+ "sync_status": sync_status,
56
+ "last_sync": last_sync,
57
+ }
58
+ )
59
+
60
+ return field_dict
61
+
62
+ @classmethod
63
+ def from_dict(cls: type[T], src_dict: Mapping[str, Any]) -> T:
64
+ d = dict(src_dict)
65
+ local_state = ResourceState(d.pop("local_state"))
66
+
67
+ def _parse_remote_state(data: object) -> Union[None, RemoteResourceSyncStatusRemoteStateEnum]:
68
+ if data is None:
69
+ return data
70
+ try:
71
+ if not isinstance(data, int):
72
+ raise TypeError()
73
+ remote_state_type_0 = RemoteResourceSyncStatusRemoteStateEnum(data)
74
+
75
+ return remote_state_type_0
76
+ except: # noqa: E722
77
+ pass
78
+ return cast(Union[None, RemoteResourceSyncStatusRemoteStateEnum], data)
79
+
80
+ remote_state = _parse_remote_state(d.pop("remote_state"))
81
+
82
+ sync_status = SyncStatusEnum(d.pop("sync_status"))
83
+
84
+ def _parse_last_sync(data: object) -> Union[None, datetime.datetime]:
85
+ if data is None:
86
+ return data
87
+ try:
88
+ if not isinstance(data, str):
89
+ raise TypeError()
90
+ last_sync_type_0 = isoparse(data)
91
+
92
+ return last_sync_type_0
93
+ except: # noqa: E722
94
+ pass
95
+ return cast(Union[None, datetime.datetime], data)
96
+
97
+ last_sync = _parse_last_sync(d.pop("last_sync"))
98
+
99
+ remote_resource_sync_status = cls(
100
+ local_state=local_state,
101
+ remote_state=remote_state,
102
+ sync_status=sync_status,
103
+ last_sync=last_sync,
104
+ )
105
+
106
+ remote_resource_sync_status.additional_properties = d
107
+ return remote_resource_sync_status
108
+
109
+ @property
110
+ def additional_keys(self) -> list[str]:
111
+ return list(self.additional_properties.keys())
112
+
113
+ def __getitem__(self, key: str) -> Any:
114
+ return self.additional_properties[key]
115
+
116
+ def __setitem__(self, key: str, value: Any) -> None:
117
+ self.additional_properties[key] = value
118
+
119
+ def __delitem__(self, key: str) -> None:
120
+ del self.additional_properties[key]
121
+
122
+ def __contains__(self, key: str) -> bool:
123
+ return key in self.additional_properties
@@ -1,7 +1,7 @@
1
1
  from enum import IntEnum
2
2
 
3
3
 
4
- class RobotAccountStates(IntEnum):
4
+ class RemoteResourceSyncStatusRemoteStateEnum(IntEnum):
5
5
  VALUE_1 = 1
6
6
  VALUE_2 = 2
7
7
  VALUE_3 = 3
@@ -0,0 +1,85 @@
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
+ from ..models.sync_status_enum import SyncStatusEnum
8
+
9
+ T = TypeVar("T", bound="RemoteResourceTeamMember")
10
+
11
+
12
+ @_attrs_define
13
+ class RemoteResourceTeamMember:
14
+ """
15
+ Attributes:
16
+ full_name (str): Full name
17
+ local_role (str): Local role
18
+ remote_role (str): Remote role
19
+ sync_status (SyncStatusEnum):
20
+ """
21
+
22
+ full_name: str
23
+ local_role: str
24
+ remote_role: str
25
+ sync_status: SyncStatusEnum
26
+ additional_properties: dict[str, Any] = _attrs_field(init=False, factory=dict)
27
+
28
+ def to_dict(self) -> dict[str, Any]:
29
+ full_name = self.full_name
30
+
31
+ local_role = self.local_role
32
+
33
+ remote_role = self.remote_role
34
+
35
+ sync_status = self.sync_status.value
36
+
37
+ field_dict: dict[str, Any] = {}
38
+ field_dict.update(self.additional_properties)
39
+ field_dict.update(
40
+ {
41
+ "full_name": full_name,
42
+ "local_role": local_role,
43
+ "remote_role": remote_role,
44
+ "sync_status": sync_status,
45
+ }
46
+ )
47
+
48
+ return field_dict
49
+
50
+ @classmethod
51
+ def from_dict(cls: type[T], src_dict: Mapping[str, Any]) -> T:
52
+ d = dict(src_dict)
53
+ full_name = d.pop("full_name")
54
+
55
+ local_role = d.pop("local_role")
56
+
57
+ remote_role = d.pop("remote_role")
58
+
59
+ sync_status = SyncStatusEnum(d.pop("sync_status"))
60
+
61
+ remote_resource_team_member = cls(
62
+ full_name=full_name,
63
+ local_role=local_role,
64
+ remote_role=remote_role,
65
+ sync_status=sync_status,
66
+ )
67
+
68
+ remote_resource_team_member.additional_properties = d
69
+ return remote_resource_team_member
70
+
71
+ @property
72
+ def additional_keys(self) -> list[str]:
73
+ return list(self.additional_properties.keys())
74
+
75
+ def __getitem__(self, key: str) -> Any:
76
+ return self.additional_properties[key]
77
+
78
+ def __setitem__(self, key: str, value: Any) -> None:
79
+ self.additional_properties[key] = value
80
+
81
+ def __delitem__(self, key: str) -> None:
82
+ del self.additional_properties[key]
83
+
84
+ def __contains__(self, key: str) -> bool:
85
+ return key in self.additional_properties
@@ -36,7 +36,6 @@ class Resource:
36
36
  offering_image (Union[Unset, str]):
37
37
  offering_thumbnail (Union[Unset, str]):
38
38
  offering_type (Union[Unset, str]):
39
- offering_terms_of_service (Union[Unset, str]):
40
39
  offering_shared (Union[Unset, bool]): Accessible to all customers.
41
40
  offering_billable (Union[Unset, bool]): Purchase and usage is invoiced.
42
41
  offering_plugin_options (Union[Unset, Any]): Public data used by specific plugin, such as storage mode for
@@ -107,6 +106,8 @@ class Resource:
107
106
  service_settings_uuid (Union[Unset, UUID]):
108
107
  project_slug (Union[Unset, str]):
109
108
  customer_slug (Union[Unset, str]):
109
+ user_requires_reconsent (Union[Unset, bool]): Check if the current user needs to re-consent for this resource's
110
+ offering.
110
111
  """
111
112
 
112
113
  offering: Union[Unset, str] = UNSET
@@ -116,7 +117,6 @@ class Resource:
116
117
  offering_image: Union[Unset, str] = UNSET
117
118
  offering_thumbnail: Union[Unset, str] = UNSET
118
119
  offering_type: Union[Unset, str] = UNSET
119
- offering_terms_of_service: Union[Unset, str] = UNSET
120
120
  offering_shared: Union[Unset, bool] = UNSET
121
121
  offering_billable: Union[Unset, bool] = UNSET
122
122
  offering_plugin_options: Union[Unset, Any] = UNSET
@@ -184,6 +184,7 @@ class Resource:
184
184
  service_settings_uuid: Union[Unset, UUID] = UNSET
185
185
  project_slug: Union[Unset, str] = UNSET
186
186
  customer_slug: Union[Unset, str] = UNSET
187
+ user_requires_reconsent: Union[Unset, bool] = UNSET
187
188
  additional_properties: dict[str, Any] = _attrs_field(init=False, factory=dict)
188
189
 
189
190
  def to_dict(self) -> dict[str, Any]:
@@ -205,8 +206,6 @@ class Resource:
205
206
 
206
207
  offering_type = self.offering_type
207
208
 
208
- offering_terms_of_service = self.offering_terms_of_service
209
-
210
209
  offering_shared = self.offering_shared
211
210
 
212
211
  offering_billable = self.offering_billable
@@ -451,6 +450,8 @@ class Resource:
451
450
 
452
451
  customer_slug = self.customer_slug
453
452
 
453
+ user_requires_reconsent = self.user_requires_reconsent
454
+
454
455
  field_dict: dict[str, Any] = {}
455
456
  field_dict.update(self.additional_properties)
456
457
  field_dict.update({})
@@ -468,8 +469,6 @@ class Resource:
468
469
  field_dict["offering_thumbnail"] = offering_thumbnail
469
470
  if offering_type is not UNSET:
470
471
  field_dict["offering_type"] = offering_type
471
- if offering_terms_of_service is not UNSET:
472
- field_dict["offering_terms_of_service"] = offering_terms_of_service
473
472
  if offering_shared is not UNSET:
474
473
  field_dict["offering_shared"] = offering_shared
475
474
  if offering_billable is not UNSET:
@@ -604,6 +603,8 @@ class Resource:
604
603
  field_dict["project_slug"] = project_slug
605
604
  if customer_slug is not UNSET:
606
605
  field_dict["customer_slug"] = customer_slug
606
+ if user_requires_reconsent is not UNSET:
607
+ field_dict["user_requires_reconsent"] = user_requires_reconsent
607
608
 
608
609
  return field_dict
609
610
 
@@ -638,8 +639,6 @@ class Resource:
638
639
 
639
640
  offering_type = d.pop("offering_type", UNSET)
640
641
 
641
- offering_terms_of_service = d.pop("offering_terms_of_service", UNSET)
642
-
643
642
  offering_shared = d.pop("offering_shared", UNSET)
644
643
 
645
644
  offering_billable = d.pop("offering_billable", UNSET)
@@ -1014,6 +1013,8 @@ class Resource:
1014
1013
 
1015
1014
  customer_slug = d.pop("customer_slug", UNSET)
1016
1015
 
1016
+ user_requires_reconsent = d.pop("user_requires_reconsent", UNSET)
1017
+
1017
1018
  resource = cls(
1018
1019
  offering=offering,
1019
1020
  offering_name=offering_name,
@@ -1022,7 +1023,6 @@ class Resource:
1022
1023
  offering_image=offering_image,
1023
1024
  offering_thumbnail=offering_thumbnail,
1024
1025
  offering_type=offering_type,
1025
- offering_terms_of_service=offering_terms_of_service,
1026
1026
  offering_shared=offering_shared,
1027
1027
  offering_billable=offering_billable,
1028
1028
  offering_plugin_options=offering_plugin_options,
@@ -1090,6 +1090,7 @@ class Resource:
1090
1090
  service_settings_uuid=service_settings_uuid,
1091
1091
  project_slug=project_slug,
1092
1092
  customer_slug=customer_slug,
1093
+ user_requires_reconsent=user_requires_reconsent,
1093
1094
  )
1094
1095
 
1095
1096
  resource.additional_properties = d
@@ -1,5 +1,5 @@
1
1
  from collections.abc import Mapping
2
- from typing import Any, TypeVar
2
+ from typing import Any, TypeVar, cast
3
3
 
4
4
  from attrs import define as _attrs_define
5
5
  from attrs import field as _attrs_field
@@ -11,7 +11,7 @@ T = TypeVar("T", bound="RmqConnection")
11
11
  class RmqConnection:
12
12
  """
13
13
  Attributes:
14
- source_ip (str):
14
+ source_ip (str): An IPv4 or IPv6 address.
15
15
  vhost (str):
16
16
  """
17
17
 
@@ -20,6 +20,7 @@ class RmqConnection:
20
20
  additional_properties: dict[str, Any] = _attrs_field(init=False, factory=dict)
21
21
 
22
22
  def to_dict(self) -> dict[str, Any]:
23
+ source_ip: str
23
24
  source_ip = self.source_ip
24
25
 
25
26
  vhost = self.vhost
@@ -38,7 +39,11 @@ class RmqConnection:
38
39
  @classmethod
39
40
  def from_dict(cls: type[T], src_dict: Mapping[str, Any]) -> T:
40
41
  d = dict(src_dict)
41
- source_ip = d.pop("source_ip")
42
+
43
+ def _parse_source_ip(data: object) -> str:
44
+ return cast(str, data)
45
+
46
+ source_ip = _parse_source_ip(d.pop("source_ip"))
42
47
 
43
48
  vhost = d.pop("vhost")
44
49
 
@@ -1,6 +1,6 @@
1
1
  import datetime
2
2
  from collections.abc import Mapping
3
- from typing import Any, TypeVar
3
+ from typing import Any, TypeVar, cast
4
4
  from uuid import UUID
5
5
 
6
6
  from attrs import define as _attrs_define
@@ -16,7 +16,7 @@ class RmqSubscription:
16
16
  Attributes:
17
17
  created (datetime.datetime):
18
18
  uuid (UUID):
19
- source_ip (str):
19
+ source_ip (str): An IPv4 or IPv6 address.
20
20
  """
21
21
 
22
22
  created: datetime.datetime
@@ -29,6 +29,7 @@ class RmqSubscription:
29
29
 
30
30
  uuid = str(self.uuid)
31
31
 
32
+ source_ip: str
32
33
  source_ip = self.source_ip
33
34
 
34
35
  field_dict: dict[str, Any] = {}
@@ -50,7 +51,10 @@ class RmqSubscription:
50
51
 
51
52
  uuid = UUID(d.pop("uuid"))
52
53
 
53
- source_ip = d.pop("source_ip")
54
+ def _parse_source_ip(data: object) -> str:
55
+ return cast(str, data)
56
+
57
+ source_ip = _parse_source_ip(d.pop("source_ip"))
54
58
 
55
59
  rmq_subscription = cls(
56
60
  created=created,