waldur-api-client 7.7.5__py3-none-any.whl → 7.7.7__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 (229) 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/customers/customers_project_metadata_compliance_details_list.py +189 -0
  4. waldur_api_client/api/customers/customers_project_metadata_compliance_overview_list.py +189 -0
  5. waldur_api_client/api/customers/customers_project_metadata_compliance_projects_list.py +187 -0
  6. waldur_api_client/api/customers/customers_project_metadata_question_answers_list.py +187 -0
  7. waldur_api_client/api/marketplace_integration_statuses/marketplace_integration_statuses_count.py +34 -11
  8. waldur_api_client/api/marketplace_integration_statuses/marketplace_integration_statuses_list.py +34 -11
  9. waldur_api_client/api/marketplace_offering_files/marketplace_offering_files_count.py +34 -11
  10. waldur_api_client/api/marketplace_offering_files/marketplace_offering_files_list.py +34 -11
  11. waldur_api_client/api/marketplace_offering_terms_of_service/__init__.py +1 -0
  12. waldur_api_client/api/marketplace_offering_terms_of_service/marketplace_offering_terms_of_service_count.py +274 -0
  13. waldur_api_client/api/marketplace_offering_terms_of_service/marketplace_offering_terms_of_service_create.py +152 -0
  14. waldur_api_client/api/marketplace_offering_terms_of_service/marketplace_offering_terms_of_service_destroy.py +89 -0
  15. waldur_api_client/api/marketplace_offering_terms_of_service/marketplace_offering_terms_of_service_list.py +277 -0
  16. waldur_api_client/api/marketplace_offering_terms_of_service/marketplace_offering_terms_of_service_partial_update.py +164 -0
  17. waldur_api_client/api/marketplace_offering_terms_of_service/marketplace_offering_terms_of_service_retrieve.py +142 -0
  18. waldur_api_client/api/marketplace_offering_terms_of_service/marketplace_offering_terms_of_service_update.py +164 -0
  19. waldur_api_client/api/marketplace_offering_user_roles/marketplace_offering_user_roles_count.py +34 -11
  20. waldur_api_client/api/marketplace_offering_user_roles/marketplace_offering_user_roles_list.py +34 -11
  21. waldur_api_client/api/marketplace_offering_users/marketplace_offering_users_checklist_retrieve.py +154 -0
  22. waldur_api_client/api/marketplace_offering_users/marketplace_offering_users_checklist_review_retrieve.py +154 -0
  23. waldur_api_client/api/marketplace_offering_users/marketplace_offering_users_completion_review_status_retrieve.py +154 -0
  24. waldur_api_client/api/marketplace_offering_users/marketplace_offering_users_completion_status_retrieve.py +154 -0
  25. waldur_api_client/api/marketplace_offering_users/marketplace_offering_users_count.py +34 -11
  26. waldur_api_client/api/marketplace_offering_users/marketplace_offering_users_list.py +34 -11
  27. waldur_api_client/api/marketplace_offering_users/marketplace_offering_users_submit_answers.py +179 -0
  28. waldur_api_client/api/marketplace_orders/marketplace_orders_count.py +19 -0
  29. waldur_api_client/api/marketplace_orders/marketplace_orders_list.py +19 -0
  30. waldur_api_client/api/marketplace_plans/marketplace_plans_count.py +19 -0
  31. waldur_api_client/api/marketplace_plans/marketplace_plans_list.py +19 -0
  32. waldur_api_client/api/marketplace_plans/marketplace_plans_usage_stats_count.py +19 -0
  33. waldur_api_client/api/marketplace_plans/marketplace_plans_usage_stats_list.py +19 -0
  34. waldur_api_client/api/marketplace_provider_resources/marketplace_provider_resources_count.py +34 -11
  35. waldur_api_client/api/marketplace_provider_resources/marketplace_provider_resources_list.py +34 -11
  36. waldur_api_client/api/marketplace_resources/marketplace_resources_count.py +34 -11
  37. waldur_api_client/api/marketplace_resources/marketplace_resources_list.py +34 -11
  38. waldur_api_client/api/marketplace_robot_accounts/marketplace_robot_accounts_list.py +23 -0
  39. waldur_api_client/api/marketplace_robot_accounts/marketplace_robot_accounts_retrieve.py +30 -1
  40. waldur_api_client/api/marketplace_screenshots/marketplace_screenshots_count.py +34 -11
  41. waldur_api_client/api/marketplace_screenshots/marketplace_screenshots_list.py +34 -11
  42. waldur_api_client/api/marketplace_service_providers/marketplace_service_providers_project_service_accounts_list.py +276 -0
  43. waldur_api_client/api/marketplace_service_providers/service_provider_compliance_overview.py +189 -0
  44. waldur_api_client/api/marketplace_service_providers/service_provider_offering_users_compliance.py +222 -0
  45. waldur_api_client/api/marketplace_user_offering_consents/__init__.py +1 -0
  46. waldur_api_client/api/marketplace_user_offering_consents/marketplace_user_offering_consents_count.py +307 -0
  47. waldur_api_client/api/marketplace_user_offering_consents/marketplace_user_offering_consents_create.py +152 -0
  48. waldur_api_client/api/marketplace_user_offering_consents/marketplace_user_offering_consents_destroy.py +89 -0
  49. waldur_api_client/api/marketplace_user_offering_consents/marketplace_user_offering_consents_list.py +310 -0
  50. waldur_api_client/api/marketplace_user_offering_consents/marketplace_user_offering_consents_partial_update.py +164 -0
  51. waldur_api_client/api/marketplace_user_offering_consents/marketplace_user_offering_consents_retrieve.py +142 -0
  52. waldur_api_client/api/marketplace_user_offering_consents/marketplace_user_offering_consents_revoke.py +146 -0
  53. waldur_api_client/api/marketplace_user_offering_consents/marketplace_user_offering_consents_update.py +164 -0
  54. waldur_api_client/api/public_maintenance_announcements/__init__.py +1 -0
  55. waldur_api_client/api/public_maintenance_announcements/public_maintenance_announcements_count.py +325 -0
  56. waldur_api_client/api/public_maintenance_announcements/public_maintenance_announcements_list.py +328 -0
  57. waldur_api_client/api/public_maintenance_announcements/public_maintenance_announcements_retrieve.py +144 -0
  58. waldur_api_client/api/remote_waldur_api/remote_waldur_api_remote_resource_order_status_retrieve.py +145 -0
  59. waldur_api_client/api/remote_waldur_api/remote_waldur_api_remote_resource_status_retrieve.py +147 -0
  60. waldur_api_client/api/remote_waldur_api/remote_waldur_api_remote_resource_team_status_list.py +188 -0
  61. waldur_api_client/models/__init__.py +118 -4
  62. waldur_api_client/models/admin_announcement.py +109 -1
  63. waldur_api_client/models/admin_announcement_maintenance_affected_offerings_item.py +103 -0
  64. waldur_api_client/models/admin_announcements_list_field_item.py +8 -0
  65. waldur_api_client/models/admin_announcements_retrieve_field_item.py +8 -0
  66. waldur_api_client/models/azure_sql_server_create_order_attributes.py +83 -0
  67. waldur_api_client/models/azure_virtual_machine_create_order_attributes.py +99 -0
  68. waldur_api_client/models/basic_user.py +30 -21
  69. waldur_api_client/models/booking_offerings_list_field_item.py +1 -2
  70. waldur_api_client/models/booking_offerings_retrieve_field_item.py +1 -2
  71. waldur_api_client/models/booking_resource.py +10 -9
  72. waldur_api_client/models/booking_resources_list_field_item.py +1 -1
  73. waldur_api_client/models/booking_resources_retrieve_field_item.py +1 -1
  74. waldur_api_client/models/checklist_info.py +76 -0
  75. waldur_api_client/models/compliance_overview.py +91 -0
  76. waldur_api_client/models/create_router.py +1 -1
  77. waldur_api_client/models/create_router_request.py +1 -1
  78. waldur_api_client/models/customer.py +51 -0
  79. waldur_api_client/models/customers_list_field_item.py +2 -0
  80. waldur_api_client/models/customers_retrieve_field_item.py +2 -0
  81. waldur_api_client/models/fingerprint.py +19 -17
  82. waldur_api_client/models/generic_order_attributes.py +69 -0
  83. waldur_api_client/models/google_auth_authorize_retrieve_field_item.py +1 -0
  84. waldur_api_client/models/google_auth_list_field_item.py +1 -0
  85. waldur_api_client/models/google_auth_retrieve_field_item.py +1 -0
  86. waldur_api_client/models/google_credentials.py +9 -0
  87. waldur_api_client/models/group_invitation.py +24 -0
  88. waldur_api_client/models/group_invitation_request.py +10 -0
  89. waldur_api_client/models/instance_flavor_change_request.py +1 -1
  90. waldur_api_client/models/maintenance_announcement.py +8 -0
  91. waldur_api_client/models/marketplace_managed_rancher_create_order_attributes.py +144 -0
  92. waldur_api_client/models/marketplace_offering_terms_of_service_count_o_item.py +13 -0
  93. waldur_api_client/models/marketplace_offering_terms_of_service_list_o_item.py +13 -0
  94. waldur_api_client/models/marketplace_orders_list_field_item.py +1 -1
  95. waldur_api_client/models/marketplace_orders_retrieve_field_item.py +1 -1
  96. waldur_api_client/models/marketplace_provider_offerings_list_customer_service_accounts_retrieve_field_item.py +1 -2
  97. waldur_api_client/models/marketplace_provider_offerings_list_field_item.py +1 -2
  98. waldur_api_client/models/marketplace_provider_offerings_list_project_service_accounts_retrieve_field_item.py +1 -2
  99. waldur_api_client/models/marketplace_provider_offerings_retrieve_field_item.py +1 -2
  100. waldur_api_client/models/marketplace_provider_offerings_stats_retrieve_field_item.py +1 -2
  101. waldur_api_client/models/marketplace_provider_offerings_user_has_resource_access_retrieve_field_item.py +1 -2
  102. waldur_api_client/models/marketplace_provider_resources_details_retrieve_field_item.py +1 -1
  103. waldur_api_client/models/marketplace_provider_resources_list_field_item.py +1 -1
  104. waldur_api_client/models/marketplace_provider_resources_retrieve_field_item.py +1 -1
  105. waldur_api_client/models/marketplace_public_offerings_list_field_item.py +1 -2
  106. waldur_api_client/models/marketplace_public_offerings_retrieve_field_item.py +1 -2
  107. waldur_api_client/models/marketplace_rancher_create_order_attributes.py +145 -0
  108. waldur_api_client/models/marketplace_resources_details_retrieve_field_item.py +1 -1
  109. waldur_api_client/models/marketplace_resources_list_field_item.py +1 -1
  110. waldur_api_client/models/marketplace_resources_retrieve_field_item.py +1 -1
  111. waldur_api_client/models/marketplace_robot_accounts_list_field_item.py +32 -0
  112. waldur_api_client/models/marketplace_robot_accounts_retrieve_field_item.py +32 -0
  113. waldur_api_client/models/marketplace_service_providers_list_field_item.py +1 -0
  114. waldur_api_client/models/marketplace_service_providers_retrieve_field_item.py +1 -0
  115. waldur_api_client/models/marketplace_user_offering_consents_count_o_item.py +15 -0
  116. waldur_api_client/models/marketplace_user_offering_consents_list_o_item.py +15 -0
  117. waldur_api_client/models/offering.py +9 -18
  118. waldur_api_client/models/offering_create.py +8 -18
  119. waldur_api_client/models/offering_create_request.py +0 -18
  120. waldur_api_client/models/offering_overview_update_request.py +0 -18
  121. waldur_api_client/models/offering_terms_of_service.py +142 -0
  122. waldur_api_client/models/offering_terms_of_service_create.py +107 -0
  123. waldur_api_client/models/offering_terms_of_service_create_request.py +107 -0
  124. waldur_api_client/models/offering_terms_of_service_request.py +96 -0
  125. waldur_api_client/models/open_stack_backend_instance.py +2 -2
  126. waldur_api_client/models/open_stack_backend_volumes.py +3 -3
  127. waldur_api_client/models/open_stack_backup.py +1 -1
  128. waldur_api_client/models/open_stack_backup_restoration.py +8 -5
  129. waldur_api_client/models/open_stack_backup_restoration_request.py +28 -3
  130. waldur_api_client/models/open_stack_fixed_ip.py +2 -2
  131. waldur_api_client/models/open_stack_fixed_ip_request.py +2 -2
  132. waldur_api_client/models/open_stack_floating_ip.py +5 -4
  133. waldur_api_client/models/open_stack_instance.py +17 -15
  134. waldur_api_client/models/open_stack_instance_allowed_address_pairs_update_request.py +3 -2
  135. waldur_api_client/models/open_stack_instance_availability_zone.py +1 -1
  136. waldur_api_client/models/open_stack_instance_create_order_attributes.py +283 -0
  137. waldur_api_client/models/open_stack_instance_request.py +4 -3
  138. waldur_api_client/models/open_stack_instance_security_groups_update_request.py +1 -1
  139. waldur_api_client/models/open_stack_nested_floating_ip.py +3 -3
  140. waldur_api_client/models/open_stack_nested_instance.py +1 -1
  141. waldur_api_client/models/open_stack_nested_port.py +5 -5
  142. waldur_api_client/models/open_stack_nested_port_request.py +1 -1
  143. waldur_api_client/models/open_stack_nested_security_group.py +16 -16
  144. waldur_api_client/models/open_stack_nested_security_group_request.py +59 -0
  145. waldur_api_client/models/{nested_security_group_rule_request.py → open_stack_nested_security_group_rules_item.py} +73 -63
  146. waldur_api_client/models/open_stack_nested_sub_net.py +4 -4
  147. waldur_api_client/models/open_stack_nested_sub_net_request.py +4 -4
  148. waldur_api_client/models/open_stack_nested_volume.py +3 -3
  149. waldur_api_client/models/open_stack_nested_volume_request.py +3 -3
  150. waldur_api_client/models/open_stack_network.py +23 -3
  151. waldur_api_client/models/open_stack_port.py +10 -9
  152. waldur_api_client/models/open_stack_port_ip_update_request.py +2 -2
  153. waldur_api_client/models/open_stack_port_request.py +3 -3
  154. waldur_api_client/models/open_stack_router.py +2 -2
  155. waldur_api_client/models/open_stack_router_interface_request.py +4 -2
  156. waldur_api_client/models/open_stack_security_group_rule_create.py +6 -5
  157. waldur_api_client/models/open_stack_security_group_rule_create_request.py +6 -5
  158. waldur_api_client/models/open_stack_security_group_rule_update_request.py +10 -9
  159. waldur_api_client/models/open_stack_server_group.py +2 -1
  160. waldur_api_client/models/open_stack_server_group_request.py +2 -1
  161. waldur_api_client/models/open_stack_snapshot.py +2 -2
  162. waldur_api_client/models/open_stack_snapshot_restoration.py +1 -1
  163. waldur_api_client/models/open_stack_sub_net.py +5 -5
  164. waldur_api_client/models/open_stack_sub_net_request.py +2 -2
  165. waldur_api_client/models/open_stack_tenant.py +41 -3
  166. waldur_api_client/models/open_stack_tenant_create_order_attributes.py +130 -0
  167. waldur_api_client/models/open_stack_volume.py +9 -9
  168. waldur_api_client/models/open_stack_volume_create_order_attributes.py +155 -0
  169. waldur_api_client/models/open_stack_volume_request.py +1 -1
  170. waldur_api_client/models/openstack_networks_list_field_item.py +1 -0
  171. waldur_api_client/models/openstack_networks_retrieve_field_item.py +1 -0
  172. waldur_api_client/models/openstack_tenants_list_field_item.py +3 -0
  173. waldur_api_client/models/openstack_tenants_retrieve_field_item.py +3 -0
  174. waldur_api_client/models/order_create.py +0 -8
  175. waldur_api_client/models/order_create_request.py +181 -4
  176. waldur_api_client/models/order_details.py +0 -9
  177. waldur_api_client/models/patched_offering_terms_of_service_request.py +96 -0
  178. waldur_api_client/models/patched_open_stack_instance_request.py +4 -3
  179. waldur_api_client/models/patched_open_stack_server_group_request.py +2 -1
  180. waldur_api_client/models/patched_open_stack_sub_net_request.py +2 -2
  181. waldur_api_client/models/patched_open_stack_volume_request.py +1 -1
  182. waldur_api_client/models/patched_user_offering_consent_request.py +59 -0
  183. waldur_api_client/models/permission_project.py +147 -0
  184. waldur_api_client/models/permission_request.py +2 -2
  185. waldur_api_client/models/project_answer.py +122 -0
  186. waldur_api_client/models/project_detail.py +133 -0
  187. waldur_api_client/models/project_details_response.py +115 -0
  188. waldur_api_client/models/provider_offering_details.py +9 -18
  189. waldur_api_client/models/provider_offering_details_request.py +0 -18
  190. waldur_api_client/models/public_maintenance_announcement.py +217 -0
  191. waldur_api_client/models/public_maintenance_announcement_state_enum.py +10 -0
  192. waldur_api_client/models/public_maintenance_announcements_count_o_item.py +15 -0
  193. waldur_api_client/models/public_maintenance_announcements_count_state_item.py +12 -0
  194. waldur_api_client/models/public_maintenance_announcements_list_o_item.py +15 -0
  195. waldur_api_client/models/public_maintenance_announcements_list_state_item.py +12 -0
  196. waldur_api_client/models/public_offering_details.py +9 -18
  197. waldur_api_client/models/question_answer.py +176 -0
  198. waldur_api_client/models/question_answer_project_answers_item.py +44 -0
  199. waldur_api_client/models/question_answer_question_options_item.py +44 -0
  200. waldur_api_client/models/rancher_cluster_security_group_rule.py +5 -4
  201. waldur_api_client/models/rancher_cluster_security_group_rule_request.py +5 -4
  202. waldur_api_client/models/remote_project_update_request.py +2 -2
  203. waldur_api_client/models/remote_resource_order.py +88 -0
  204. waldur_api_client/models/remote_resource_order_remote_state_enum.py +15 -0
  205. waldur_api_client/models/remote_resource_sync_status.py +123 -0
  206. waldur_api_client/models/remote_resource_sync_status_remote_state_enum.py +13 -0
  207. waldur_api_client/models/remote_resource_team_member.py +85 -0
  208. waldur_api_client/models/resource.py +10 -9
  209. waldur_api_client/models/robot_account_details.py +226 -144
  210. waldur_api_client/models/service_provider.py +9 -0
  211. waldur_api_client/models/service_provider_compliance_overview.py +122 -0
  212. waldur_api_client/models/service_provider_offering_user_compliance.py +179 -0
  213. waldur_api_client/models/service_provider_offering_user_compliance_state_enum.py +17 -0
  214. waldur_api_client/models/slurm_invoices_slurm_package_create_order_attributes.py +75 -0
  215. waldur_api_client/models/sync_status_enum.py +10 -0
  216. waldur_api_client/models/user_offering_consent.py +202 -0
  217. waldur_api_client/models/user_offering_consent_create.py +60 -0
  218. waldur_api_client/models/user_offering_consent_create_request.py +60 -0
  219. waldur_api_client/models/user_offering_consent_request.py +59 -0
  220. waldur_api_client/models/v_mware_virtual_machine_create_order_attributes.py +228 -0
  221. waldur_api_client/models/v_mware_virtual_machine_create_order_attributes_guest_os_type_1.py +155 -0
  222. waldur_api_client/models/v_mware_virtual_machine_create_order_attributes_guest_os_type_2_type_1.py +155 -0
  223. waldur_api_client/models/v_mware_virtual_machine_create_order_attributes_guest_os_type_3_type_1.py +155 -0
  224. waldur_api_client/models/volume_attach_request.py +1 -1
  225. {waldur_api_client-7.7.5.dist-info → waldur_api_client-7.7.7.dist-info}/METADATA +1 -1
  226. {waldur_api_client-7.7.5.dist-info → waldur_api_client-7.7.7.dist-info}/RECORD +228 -138
  227. waldur_api_client/models/nested_security_group_rule.py +0 -222
  228. {waldur_api_client-7.7.5.dist-info → waldur_api_client-7.7.7.dist-info}/LICENSE +0 -0
  229. {waldur_api_client-7.7.5.dist-info → waldur_api_client-7.7.7.dist-info}/WHEEL +0 -0
@@ -0,0 +1,179 @@
1
+ import datetime
2
+ from collections.abc import Mapping
3
+ from typing import Any, TypeVar, Union, cast
4
+ from uuid import UUID
5
+
6
+ from attrs import define as _attrs_define
7
+ from attrs import field as _attrs_field
8
+ from dateutil.parser import isoparse
9
+
10
+ from ..models.service_provider_offering_user_compliance_state_enum import ServiceProviderOfferingUserComplianceStateEnum
11
+
12
+ T = TypeVar("T", bound="ServiceProviderOfferingUserCompliance")
13
+
14
+
15
+ @_attrs_define
16
+ class ServiceProviderOfferingUserCompliance:
17
+ """
18
+ Attributes:
19
+ uuid (UUID):
20
+ user_full_name (str):
21
+ user_email (str):
22
+ offering_name (str):
23
+ checklist_name (Union[None, str]):
24
+ username (Union[None, str]):
25
+ state (ServiceProviderOfferingUserComplianceStateEnum):
26
+ completion_percentage (Union[None, int]):
27
+ compliance_status (str):
28
+ last_updated (Union[None, datetime.datetime]):
29
+ created (datetime.datetime):
30
+ """
31
+
32
+ uuid: UUID
33
+ user_full_name: str
34
+ user_email: str
35
+ offering_name: str
36
+ checklist_name: Union[None, str]
37
+ username: Union[None, str]
38
+ state: ServiceProviderOfferingUserComplianceStateEnum
39
+ completion_percentage: Union[None, int]
40
+ compliance_status: str
41
+ last_updated: Union[None, datetime.datetime]
42
+ created: datetime.datetime
43
+ additional_properties: dict[str, Any] = _attrs_field(init=False, factory=dict)
44
+
45
+ def to_dict(self) -> dict[str, Any]:
46
+ uuid = str(self.uuid)
47
+
48
+ user_full_name = self.user_full_name
49
+
50
+ user_email = self.user_email
51
+
52
+ offering_name = self.offering_name
53
+
54
+ checklist_name: Union[None, str]
55
+ checklist_name = self.checklist_name
56
+
57
+ username: Union[None, str]
58
+ username = self.username
59
+
60
+ state = self.state.value
61
+
62
+ completion_percentage: Union[None, int]
63
+ completion_percentage = self.completion_percentage
64
+
65
+ compliance_status = self.compliance_status
66
+
67
+ last_updated: Union[None, str]
68
+ if isinstance(self.last_updated, datetime.datetime):
69
+ last_updated = self.last_updated.isoformat()
70
+ else:
71
+ last_updated = self.last_updated
72
+
73
+ created = self.created.isoformat()
74
+
75
+ field_dict: dict[str, Any] = {}
76
+ field_dict.update(self.additional_properties)
77
+ field_dict.update(
78
+ {
79
+ "uuid": uuid,
80
+ "user_full_name": user_full_name,
81
+ "user_email": user_email,
82
+ "offering_name": offering_name,
83
+ "checklist_name": checklist_name,
84
+ "username": username,
85
+ "state": state,
86
+ "completion_percentage": completion_percentage,
87
+ "compliance_status": compliance_status,
88
+ "last_updated": last_updated,
89
+ "created": created,
90
+ }
91
+ )
92
+
93
+ return field_dict
94
+
95
+ @classmethod
96
+ def from_dict(cls: type[T], src_dict: Mapping[str, Any]) -> T:
97
+ d = dict(src_dict)
98
+ uuid = UUID(d.pop("uuid"))
99
+
100
+ user_full_name = d.pop("user_full_name")
101
+
102
+ user_email = d.pop("user_email")
103
+
104
+ offering_name = d.pop("offering_name")
105
+
106
+ def _parse_checklist_name(data: object) -> Union[None, str]:
107
+ if data is None:
108
+ return data
109
+ return cast(Union[None, str], data)
110
+
111
+ checklist_name = _parse_checklist_name(d.pop("checklist_name"))
112
+
113
+ def _parse_username(data: object) -> Union[None, str]:
114
+ if data is None:
115
+ return data
116
+ return cast(Union[None, str], data)
117
+
118
+ username = _parse_username(d.pop("username"))
119
+
120
+ state = ServiceProviderOfferingUserComplianceStateEnum(d.pop("state"))
121
+
122
+ def _parse_completion_percentage(data: object) -> Union[None, int]:
123
+ if data is None:
124
+ return data
125
+ return cast(Union[None, int], data)
126
+
127
+ completion_percentage = _parse_completion_percentage(d.pop("completion_percentage"))
128
+
129
+ compliance_status = d.pop("compliance_status")
130
+
131
+ def _parse_last_updated(data: object) -> Union[None, datetime.datetime]:
132
+ if data is None:
133
+ return data
134
+ try:
135
+ if not isinstance(data, str):
136
+ raise TypeError()
137
+ last_updated_type_0 = isoparse(data)
138
+
139
+ return last_updated_type_0
140
+ except: # noqa: E722
141
+ pass
142
+ return cast(Union[None, datetime.datetime], data)
143
+
144
+ last_updated = _parse_last_updated(d.pop("last_updated"))
145
+
146
+ created = isoparse(d.pop("created"))
147
+
148
+ service_provider_offering_user_compliance = cls(
149
+ uuid=uuid,
150
+ user_full_name=user_full_name,
151
+ user_email=user_email,
152
+ offering_name=offering_name,
153
+ checklist_name=checklist_name,
154
+ username=username,
155
+ state=state,
156
+ completion_percentage=completion_percentage,
157
+ compliance_status=compliance_status,
158
+ last_updated=last_updated,
159
+ created=created,
160
+ )
161
+
162
+ service_provider_offering_user_compliance.additional_properties = d
163
+ return service_provider_offering_user_compliance
164
+
165
+ @property
166
+ def additional_keys(self) -> list[str]:
167
+ return list(self.additional_properties.keys())
168
+
169
+ def __getitem__(self, key: str) -> Any:
170
+ return self.additional_properties[key]
171
+
172
+ def __setitem__(self, key: str, value: Any) -> None:
173
+ self.additional_properties[key] = value
174
+
175
+ def __delitem__(self, key: str) -> None:
176
+ del self.additional_properties[key]
177
+
178
+ def __contains__(self, key: str) -> bool:
179
+ return key in self.additional_properties
@@ -0,0 +1,17 @@
1
+ from enum import IntEnum
2
+
3
+
4
+ class ServiceProviderOfferingUserComplianceStateEnum(IntEnum):
5
+ VALUE_1 = 1
6
+ VALUE_2 = 2
7
+ VALUE_3 = 3
8
+ VALUE_4 = 4
9
+ VALUE_5 = 5
10
+ VALUE_6 = 6
11
+ VALUE_7 = 7
12
+ VALUE_8 = 8
13
+ VALUE_9 = 9
14
+ VALUE_10 = 10
15
+
16
+ def __str__(self) -> str:
17
+ return str(self.value)
@@ -0,0 +1,75 @@
1
+ from collections.abc import Mapping
2
+ from typing import Any, TypeVar, Union
3
+
4
+ from attrs import define as _attrs_define
5
+ from attrs import field as _attrs_field
6
+
7
+ from ..types import UNSET, Unset
8
+
9
+ T = TypeVar("T", bound="SlurmInvoicesSlurmPackageCreateOrderAttributes")
10
+
11
+
12
+ @_attrs_define
13
+ class SlurmInvoicesSlurmPackageCreateOrderAttributes:
14
+ """This mixin allows to specify list of fields to be rendered by serializer.
15
+ It expects that request is available in serializer's context.
16
+
17
+ It is disabled for nested serializers (where parent is another serializer)
18
+ but remains active for list views (where parent is a ListSerializer).
19
+
20
+ Attributes:
21
+ name (str):
22
+ description (Union[Unset, str]):
23
+ """
24
+
25
+ name: str
26
+ description: Union[Unset, str] = UNSET
27
+ additional_properties: dict[str, Any] = _attrs_field(init=False, factory=dict)
28
+
29
+ def to_dict(self) -> dict[str, Any]:
30
+ name = self.name
31
+
32
+ description = self.description
33
+
34
+ field_dict: dict[str, Any] = {}
35
+ field_dict.update(self.additional_properties)
36
+ field_dict.update(
37
+ {
38
+ "name": name,
39
+ }
40
+ )
41
+ if description is not UNSET:
42
+ field_dict["description"] = description
43
+
44
+ return field_dict
45
+
46
+ @classmethod
47
+ def from_dict(cls: type[T], src_dict: Mapping[str, Any]) -> T:
48
+ d = dict(src_dict)
49
+ name = d.pop("name")
50
+
51
+ description = d.pop("description", UNSET)
52
+
53
+ slurm_invoices_slurm_package_create_order_attributes = cls(
54
+ name=name,
55
+ description=description,
56
+ )
57
+
58
+ slurm_invoices_slurm_package_create_order_attributes.additional_properties = d
59
+ return slurm_invoices_slurm_package_create_order_attributes
60
+
61
+ @property
62
+ def additional_keys(self) -> list[str]:
63
+ return list(self.additional_properties.keys())
64
+
65
+ def __getitem__(self, key: str) -> Any:
66
+ return self.additional_properties[key]
67
+
68
+ def __setitem__(self, key: str, value: Any) -> None:
69
+ self.additional_properties[key] = value
70
+
71
+ def __delitem__(self, key: str) -> None:
72
+ del self.additional_properties[key]
73
+
74
+ def __contains__(self, key: str) -> bool:
75
+ return key in self.additional_properties
@@ -0,0 +1,10 @@
1
+ from enum import Enum
2
+
3
+
4
+ class SyncStatusEnum(str, Enum):
5
+ IN_SYNC = "in_sync"
6
+ OUT_OF_SYNC = "out_of_sync"
7
+ SYNC_FAILED = "sync_failed"
8
+
9
+ def __str__(self) -> str:
10
+ return str(self.value)
@@ -0,0 +1,202 @@
1
+ import datetime
2
+ from collections.abc import Mapping
3
+ from typing import Any, TypeVar, Union, cast
4
+ from uuid import UUID
5
+
6
+ from attrs import define as _attrs_define
7
+ from attrs import field as _attrs_field
8
+ from dateutil.parser import isoparse
9
+
10
+ from ..types import UNSET, Unset
11
+
12
+ T = TypeVar("T", bound="UserOfferingConsent")
13
+
14
+
15
+ @_attrs_define
16
+ class UserOfferingConsent:
17
+ """
18
+ Attributes:
19
+ uuid (UUID):
20
+ user_uuid (UUID):
21
+ offering_uuid (UUID):
22
+ agreement_date (datetime.datetime):
23
+ revocation_date (Union[None, datetime.datetime]):
24
+ created (datetime.datetime):
25
+ user_username (str): Required. 128 characters or fewer. Lowercase letters, numbers and @/./+/-/_ characters
26
+ user_full_name (str):
27
+ user_email (str):
28
+ offering_name (str):
29
+ offering_slug (str):
30
+ offering_url (str):
31
+ modified (datetime.datetime):
32
+ has_consent (bool):
33
+ requires_reconsent (bool):
34
+ version (Union[Unset, str]):
35
+ """
36
+
37
+ uuid: UUID
38
+ user_uuid: UUID
39
+ offering_uuid: UUID
40
+ agreement_date: datetime.datetime
41
+ revocation_date: Union[None, datetime.datetime]
42
+ created: datetime.datetime
43
+ user_username: str
44
+ user_full_name: str
45
+ user_email: str
46
+ offering_name: str
47
+ offering_slug: str
48
+ offering_url: str
49
+ modified: datetime.datetime
50
+ has_consent: bool
51
+ requires_reconsent: bool
52
+ version: Union[Unset, str] = UNSET
53
+ additional_properties: dict[str, Any] = _attrs_field(init=False, factory=dict)
54
+
55
+ def to_dict(self) -> dict[str, Any]:
56
+ uuid = str(self.uuid)
57
+
58
+ user_uuid = str(self.user_uuid)
59
+
60
+ offering_uuid = str(self.offering_uuid)
61
+
62
+ agreement_date = self.agreement_date.isoformat()
63
+
64
+ revocation_date: Union[None, str]
65
+ if isinstance(self.revocation_date, datetime.datetime):
66
+ revocation_date = self.revocation_date.isoformat()
67
+ else:
68
+ revocation_date = self.revocation_date
69
+
70
+ created = self.created.isoformat()
71
+
72
+ user_username = self.user_username
73
+
74
+ user_full_name = self.user_full_name
75
+
76
+ user_email = self.user_email
77
+
78
+ offering_name = self.offering_name
79
+
80
+ offering_slug = self.offering_slug
81
+
82
+ offering_url = self.offering_url
83
+
84
+ modified = self.modified.isoformat()
85
+
86
+ has_consent = self.has_consent
87
+
88
+ requires_reconsent = self.requires_reconsent
89
+
90
+ version = self.version
91
+
92
+ field_dict: dict[str, Any] = {}
93
+ field_dict.update(self.additional_properties)
94
+ field_dict.update(
95
+ {
96
+ "uuid": uuid,
97
+ "user_uuid": user_uuid,
98
+ "offering_uuid": offering_uuid,
99
+ "agreement_date": agreement_date,
100
+ "revocation_date": revocation_date,
101
+ "created": created,
102
+ "user_username": user_username,
103
+ "user_full_name": user_full_name,
104
+ "user_email": user_email,
105
+ "offering_name": offering_name,
106
+ "offering_slug": offering_slug,
107
+ "offering_url": offering_url,
108
+ "modified": modified,
109
+ "has_consent": has_consent,
110
+ "requires_reconsent": requires_reconsent,
111
+ }
112
+ )
113
+ if version is not UNSET:
114
+ field_dict["version"] = version
115
+
116
+ return field_dict
117
+
118
+ @classmethod
119
+ def from_dict(cls: type[T], src_dict: Mapping[str, Any]) -> T:
120
+ d = dict(src_dict)
121
+ uuid = UUID(d.pop("uuid"))
122
+
123
+ user_uuid = UUID(d.pop("user_uuid"))
124
+
125
+ offering_uuid = UUID(d.pop("offering_uuid"))
126
+
127
+ agreement_date = isoparse(d.pop("agreement_date"))
128
+
129
+ def _parse_revocation_date(data: object) -> Union[None, datetime.datetime]:
130
+ if data is None:
131
+ return data
132
+ try:
133
+ if not isinstance(data, str):
134
+ raise TypeError()
135
+ revocation_date_type_0 = isoparse(data)
136
+
137
+ return revocation_date_type_0
138
+ except: # noqa: E722
139
+ pass
140
+ return cast(Union[None, datetime.datetime], data)
141
+
142
+ revocation_date = _parse_revocation_date(d.pop("revocation_date"))
143
+
144
+ created = isoparse(d.pop("created"))
145
+
146
+ user_username = d.pop("user_username")
147
+
148
+ user_full_name = d.pop("user_full_name")
149
+
150
+ user_email = d.pop("user_email")
151
+
152
+ offering_name = d.pop("offering_name")
153
+
154
+ offering_slug = d.pop("offering_slug")
155
+
156
+ offering_url = d.pop("offering_url")
157
+
158
+ modified = isoparse(d.pop("modified"))
159
+
160
+ has_consent = d.pop("has_consent")
161
+
162
+ requires_reconsent = d.pop("requires_reconsent")
163
+
164
+ version = d.pop("version", UNSET)
165
+
166
+ user_offering_consent = cls(
167
+ uuid=uuid,
168
+ user_uuid=user_uuid,
169
+ offering_uuid=offering_uuid,
170
+ agreement_date=agreement_date,
171
+ revocation_date=revocation_date,
172
+ created=created,
173
+ user_username=user_username,
174
+ user_full_name=user_full_name,
175
+ user_email=user_email,
176
+ offering_name=offering_name,
177
+ offering_slug=offering_slug,
178
+ offering_url=offering_url,
179
+ modified=modified,
180
+ has_consent=has_consent,
181
+ requires_reconsent=requires_reconsent,
182
+ version=version,
183
+ )
184
+
185
+ user_offering_consent.additional_properties = d
186
+ return user_offering_consent
187
+
188
+ @property
189
+ def additional_keys(self) -> list[str]:
190
+ return list(self.additional_properties.keys())
191
+
192
+ def __getitem__(self, key: str) -> Any:
193
+ return self.additional_properties[key]
194
+
195
+ def __setitem__(self, key: str, value: Any) -> None:
196
+ self.additional_properties[key] = value
197
+
198
+ def __delitem__(self, key: str) -> None:
199
+ del self.additional_properties[key]
200
+
201
+ def __contains__(self, key: str) -> bool:
202
+ return key in self.additional_properties
@@ -0,0 +1,60 @@
1
+ from collections.abc import Mapping
2
+ from typing import Any, TypeVar
3
+ from uuid import UUID
4
+
5
+ from attrs import define as _attrs_define
6
+ from attrs import field as _attrs_field
7
+
8
+ T = TypeVar("T", bound="UserOfferingConsentCreate")
9
+
10
+
11
+ @_attrs_define
12
+ class UserOfferingConsentCreate:
13
+ """
14
+ Attributes:
15
+ offering (UUID):
16
+ """
17
+
18
+ offering: UUID
19
+ additional_properties: dict[str, Any] = _attrs_field(init=False, factory=dict)
20
+
21
+ def to_dict(self) -> dict[str, Any]:
22
+ offering = str(self.offering)
23
+
24
+ field_dict: dict[str, Any] = {}
25
+ field_dict.update(self.additional_properties)
26
+ field_dict.update(
27
+ {
28
+ "offering": offering,
29
+ }
30
+ )
31
+
32
+ return field_dict
33
+
34
+ @classmethod
35
+ def from_dict(cls: type[T], src_dict: Mapping[str, Any]) -> T:
36
+ d = dict(src_dict)
37
+ offering = UUID(d.pop("offering"))
38
+
39
+ user_offering_consent_create = cls(
40
+ offering=offering,
41
+ )
42
+
43
+ user_offering_consent_create.additional_properties = d
44
+ return user_offering_consent_create
45
+
46
+ @property
47
+ def additional_keys(self) -> list[str]:
48
+ return list(self.additional_properties.keys())
49
+
50
+ def __getitem__(self, key: str) -> Any:
51
+ return self.additional_properties[key]
52
+
53
+ def __setitem__(self, key: str, value: Any) -> None:
54
+ self.additional_properties[key] = value
55
+
56
+ def __delitem__(self, key: str) -> None:
57
+ del self.additional_properties[key]
58
+
59
+ def __contains__(self, key: str) -> bool:
60
+ return key in self.additional_properties
@@ -0,0 +1,60 @@
1
+ from collections.abc import Mapping
2
+ from typing import Any, TypeVar
3
+ from uuid import UUID
4
+
5
+ from attrs import define as _attrs_define
6
+ from attrs import field as _attrs_field
7
+
8
+ T = TypeVar("T", bound="UserOfferingConsentCreateRequest")
9
+
10
+
11
+ @_attrs_define
12
+ class UserOfferingConsentCreateRequest:
13
+ """
14
+ Attributes:
15
+ offering (UUID):
16
+ """
17
+
18
+ offering: UUID
19
+ additional_properties: dict[str, Any] = _attrs_field(init=False, factory=dict)
20
+
21
+ def to_dict(self) -> dict[str, Any]:
22
+ offering = str(self.offering)
23
+
24
+ field_dict: dict[str, Any] = {}
25
+ field_dict.update(self.additional_properties)
26
+ field_dict.update(
27
+ {
28
+ "offering": offering,
29
+ }
30
+ )
31
+
32
+ return field_dict
33
+
34
+ @classmethod
35
+ def from_dict(cls: type[T], src_dict: Mapping[str, Any]) -> T:
36
+ d = dict(src_dict)
37
+ offering = UUID(d.pop("offering"))
38
+
39
+ user_offering_consent_create_request = cls(
40
+ offering=offering,
41
+ )
42
+
43
+ user_offering_consent_create_request.additional_properties = d
44
+ return user_offering_consent_create_request
45
+
46
+ @property
47
+ def additional_keys(self) -> list[str]:
48
+ return list(self.additional_properties.keys())
49
+
50
+ def __getitem__(self, key: str) -> Any:
51
+ return self.additional_properties[key]
52
+
53
+ def __setitem__(self, key: str, value: Any) -> None:
54
+ self.additional_properties[key] = value
55
+
56
+ def __delitem__(self, key: str) -> None:
57
+ del self.additional_properties[key]
58
+
59
+ def __contains__(self, key: str) -> bool:
60
+ return key in self.additional_properties
@@ -0,0 +1,59 @@
1
+ from collections.abc import Mapping
2
+ from typing import Any, TypeVar, Union
3
+
4
+ from attrs import define as _attrs_define
5
+ from attrs import field as _attrs_field
6
+
7
+ from ..types import UNSET, Unset
8
+
9
+ T = TypeVar("T", bound="UserOfferingConsentRequest")
10
+
11
+
12
+ @_attrs_define
13
+ class UserOfferingConsentRequest:
14
+ """
15
+ Attributes:
16
+ version (Union[Unset, str]):
17
+ """
18
+
19
+ version: Union[Unset, str] = UNSET
20
+ additional_properties: dict[str, Any] = _attrs_field(init=False, factory=dict)
21
+
22
+ def to_dict(self) -> dict[str, Any]:
23
+ version = self.version
24
+
25
+ field_dict: dict[str, Any] = {}
26
+ field_dict.update(self.additional_properties)
27
+ field_dict.update({})
28
+ if version is not UNSET:
29
+ field_dict["version"] = version
30
+
31
+ return field_dict
32
+
33
+ @classmethod
34
+ def from_dict(cls: type[T], src_dict: Mapping[str, Any]) -> T:
35
+ d = dict(src_dict)
36
+ version = d.pop("version", UNSET)
37
+
38
+ user_offering_consent_request = cls(
39
+ version=version,
40
+ )
41
+
42
+ user_offering_consent_request.additional_properties = d
43
+ return user_offering_consent_request
44
+
45
+ @property
46
+ def additional_keys(self) -> list[str]:
47
+ return list(self.additional_properties.keys())
48
+
49
+ def __getitem__(self, key: str) -> Any:
50
+ return self.additional_properties[key]
51
+
52
+ def __setitem__(self, key: str, value: Any) -> None:
53
+ self.additional_properties[key] = value
54
+
55
+ def __delitem__(self, key: str) -> None:
56
+ del self.additional_properties[key]
57
+
58
+ def __contains__(self, key: str) -> bool:
59
+ return key in self.additional_properties