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
@@ -24,58 +24,58 @@ T = TypeVar("T", bound="RobotAccountDetails")
24
24
  class RobotAccountDetails:
25
25
  """
26
26
  Attributes:
27
- url (str):
28
- uuid (UUID):
29
- created (datetime.datetime):
30
- modified (datetime.datetime):
31
- resource (str):
32
- type_ (str): Type of the robot account.
33
- users (list['BasicUser']):
34
- backend_id (str):
35
- fingerprints (list['Fingerprint']):
36
- responsible_user (Union['BasicUser', None]):
37
- user_keys (list['SshKey']):
38
- resource_name (str):
39
- resource_uuid (UUID):
40
- project_name (str):
41
- project_uuid (UUID):
42
- customer_uuid (UUID):
43
- customer_name (str):
44
- offering_customer_uuid (UUID):
45
- offering_plugin_options (MergedPluginOptions):
27
+ url (Union[Unset, str]):
28
+ uuid (Union[Unset, UUID]):
29
+ created (Union[Unset, datetime.datetime]):
30
+ modified (Union[Unset, datetime.datetime]):
46
31
  username (Union[Unset, str]):
47
32
  description (Union[Unset, str]):
48
33
  error_message (Union[Unset, str]):
49
34
  error_traceback (Union[Unset, str]):
35
+ resource (Union[Unset, str]):
36
+ type_ (Union[Unset, str]): Type of the robot account.
37
+ users (Union[Unset, list['BasicUser']]):
50
38
  keys (Union[Unset, Any]):
39
+ backend_id (Union[Unset, str]):
40
+ fingerprints (Union[Unset, list['Fingerprint']]):
41
+ responsible_user (Union['BasicUser', None, Unset]):
51
42
  state (Union[Unset, RobotAccountStates]):
43
+ user_keys (Union[Unset, list['SshKey']]):
44
+ resource_name (Union[Unset, str]):
45
+ resource_uuid (Union[Unset, UUID]):
46
+ project_name (Union[Unset, str]):
47
+ project_uuid (Union[Unset, UUID]):
48
+ customer_uuid (Union[Unset, UUID]):
49
+ customer_name (Union[Unset, str]):
50
+ offering_customer_uuid (Union[Unset, UUID]):
51
+ offering_plugin_options (Union[Unset, MergedPluginOptions]):
52
52
  """
53
53
 
54
- url: str
55
- uuid: UUID
56
- created: datetime.datetime
57
- modified: datetime.datetime
58
- resource: str
59
- type_: str
60
- users: list["BasicUser"]
61
- backend_id: str
62
- fingerprints: list["Fingerprint"]
63
- responsible_user: Union["BasicUser", None]
64
- user_keys: list["SshKey"]
65
- resource_name: str
66
- resource_uuid: UUID
67
- project_name: str
68
- project_uuid: UUID
69
- customer_uuid: UUID
70
- customer_name: str
71
- offering_customer_uuid: UUID
72
- offering_plugin_options: "MergedPluginOptions"
54
+ url: Union[Unset, str] = UNSET
55
+ uuid: Union[Unset, UUID] = UNSET
56
+ created: Union[Unset, datetime.datetime] = UNSET
57
+ modified: Union[Unset, datetime.datetime] = UNSET
73
58
  username: Union[Unset, str] = UNSET
74
59
  description: Union[Unset, str] = UNSET
75
60
  error_message: Union[Unset, str] = UNSET
76
61
  error_traceback: Union[Unset, str] = UNSET
62
+ resource: Union[Unset, str] = UNSET
63
+ type_: Union[Unset, str] = UNSET
64
+ users: Union[Unset, list["BasicUser"]] = UNSET
77
65
  keys: Union[Unset, Any] = UNSET
66
+ backend_id: Union[Unset, str] = UNSET
67
+ fingerprints: Union[Unset, list["Fingerprint"]] = UNSET
68
+ responsible_user: Union["BasicUser", None, Unset] = UNSET
78
69
  state: Union[Unset, RobotAccountStates] = UNSET
70
+ user_keys: Union[Unset, list["SshKey"]] = UNSET
71
+ resource_name: Union[Unset, str] = UNSET
72
+ resource_uuid: Union[Unset, UUID] = UNSET
73
+ project_name: Union[Unset, str] = UNSET
74
+ project_uuid: Union[Unset, UUID] = UNSET
75
+ customer_uuid: Union[Unset, UUID] = UNSET
76
+ customer_name: Union[Unset, str] = UNSET
77
+ offering_customer_uuid: Union[Unset, UUID] = UNSET
78
+ offering_plugin_options: Union[Unset, "MergedPluginOptions"] = UNSET
79
79
  additional_properties: dict[str, Any] = _attrs_field(init=False, factory=dict)
80
80
 
81
81
  def to_dict(self) -> dict[str, Any]:
@@ -83,94 +83,104 @@ class RobotAccountDetails:
83
83
 
84
84
  url = self.url
85
85
 
86
- uuid = str(self.uuid)
86
+ uuid: Union[Unset, str] = UNSET
87
+ if not isinstance(self.uuid, Unset):
88
+ uuid = str(self.uuid)
87
89
 
88
- created = self.created.isoformat()
90
+ created: Union[Unset, str] = UNSET
91
+ if not isinstance(self.created, Unset):
92
+ created = self.created.isoformat()
89
93
 
90
- modified = self.modified.isoformat()
94
+ modified: Union[Unset, str] = UNSET
95
+ if not isinstance(self.modified, Unset):
96
+ modified = self.modified.isoformat()
97
+
98
+ username = self.username
99
+
100
+ description = self.description
101
+
102
+ error_message = self.error_message
103
+
104
+ error_traceback = self.error_traceback
91
105
 
92
106
  resource = self.resource
93
107
 
94
108
  type_ = self.type_
95
109
 
96
- users = []
97
- for users_item_data in self.users:
98
- users_item = users_item_data.to_dict()
99
- users.append(users_item)
110
+ users: Union[Unset, list[dict[str, Any]]] = UNSET
111
+ if not isinstance(self.users, Unset):
112
+ users = []
113
+ for users_item_data in self.users:
114
+ users_item = users_item_data.to_dict()
115
+ users.append(users_item)
100
116
 
101
- backend_id = self.backend_id
117
+ keys = self.keys
102
118
 
103
- fingerprints = []
104
- for fingerprints_item_data in self.fingerprints:
105
- fingerprints_item = fingerprints_item_data.to_dict()
106
- fingerprints.append(fingerprints_item)
119
+ backend_id = self.backend_id
107
120
 
108
- responsible_user: Union[None, dict[str, Any]]
109
- if isinstance(self.responsible_user, BasicUser):
121
+ fingerprints: Union[Unset, list[dict[str, Any]]] = UNSET
122
+ if not isinstance(self.fingerprints, Unset):
123
+ fingerprints = []
124
+ for fingerprints_item_data in self.fingerprints:
125
+ fingerprints_item = fingerprints_item_data.to_dict()
126
+ fingerprints.append(fingerprints_item)
127
+
128
+ responsible_user: Union[None, Unset, dict[str, Any]]
129
+ if isinstance(self.responsible_user, Unset):
130
+ responsible_user = UNSET
131
+ elif isinstance(self.responsible_user, BasicUser):
110
132
  responsible_user = self.responsible_user.to_dict()
111
133
  else:
112
134
  responsible_user = self.responsible_user
113
135
 
114
- user_keys = []
115
- for user_keys_item_data in self.user_keys:
116
- user_keys_item = user_keys_item_data.to_dict()
117
- user_keys.append(user_keys_item)
136
+ state: Union[Unset, int] = UNSET
137
+ if not isinstance(self.state, Unset):
138
+ state = self.state.value
139
+
140
+ user_keys: Union[Unset, list[dict[str, Any]]] = UNSET
141
+ if not isinstance(self.user_keys, Unset):
142
+ user_keys = []
143
+ for user_keys_item_data in self.user_keys:
144
+ user_keys_item = user_keys_item_data.to_dict()
145
+ user_keys.append(user_keys_item)
118
146
 
119
147
  resource_name = self.resource_name
120
148
 
121
- resource_uuid = str(self.resource_uuid)
149
+ resource_uuid: Union[Unset, str] = UNSET
150
+ if not isinstance(self.resource_uuid, Unset):
151
+ resource_uuid = str(self.resource_uuid)
122
152
 
123
153
  project_name = self.project_name
124
154
 
125
- project_uuid = str(self.project_uuid)
155
+ project_uuid: Union[Unset, str] = UNSET
156
+ if not isinstance(self.project_uuid, Unset):
157
+ project_uuid = str(self.project_uuid)
126
158
 
127
- customer_uuid = str(self.customer_uuid)
159
+ customer_uuid: Union[Unset, str] = UNSET
160
+ if not isinstance(self.customer_uuid, Unset):
161
+ customer_uuid = str(self.customer_uuid)
128
162
 
129
163
  customer_name = self.customer_name
130
164
 
131
- offering_customer_uuid = str(self.offering_customer_uuid)
165
+ offering_customer_uuid: Union[Unset, str] = UNSET
166
+ if not isinstance(self.offering_customer_uuid, Unset):
167
+ offering_customer_uuid = str(self.offering_customer_uuid)
132
168
 
133
- offering_plugin_options = self.offering_plugin_options.to_dict()
134
-
135
- username = self.username
136
-
137
- description = self.description
138
-
139
- error_message = self.error_message
140
-
141
- error_traceback = self.error_traceback
142
-
143
- keys = self.keys
144
-
145
- state: Union[Unset, int] = UNSET
146
- if not isinstance(self.state, Unset):
147
- state = self.state.value
169
+ offering_plugin_options: Union[Unset, dict[str, Any]] = UNSET
170
+ if not isinstance(self.offering_plugin_options, Unset):
171
+ offering_plugin_options = self.offering_plugin_options.to_dict()
148
172
 
149
173
  field_dict: dict[str, Any] = {}
150
174
  field_dict.update(self.additional_properties)
151
- field_dict.update(
152
- {
153
- "url": url,
154
- "uuid": uuid,
155
- "created": created,
156
- "modified": modified,
157
- "resource": resource,
158
- "type": type_,
159
- "users": users,
160
- "backend_id": backend_id,
161
- "fingerprints": fingerprints,
162
- "responsible_user": responsible_user,
163
- "user_keys": user_keys,
164
- "resource_name": resource_name,
165
- "resource_uuid": resource_uuid,
166
- "project_name": project_name,
167
- "project_uuid": project_uuid,
168
- "customer_uuid": customer_uuid,
169
- "customer_name": customer_name,
170
- "offering_customer_uuid": offering_customer_uuid,
171
- "offering_plugin_options": offering_plugin_options,
172
- }
173
- )
175
+ field_dict.update({})
176
+ if url is not UNSET:
177
+ field_dict["url"] = url
178
+ if uuid is not UNSET:
179
+ field_dict["uuid"] = uuid
180
+ if created is not UNSET:
181
+ field_dict["created"] = created
182
+ if modified is not UNSET:
183
+ field_dict["modified"] = modified
174
184
  if username is not UNSET:
175
185
  field_dict["username"] = username
176
186
  if description is not UNSET:
@@ -179,10 +189,40 @@ class RobotAccountDetails:
179
189
  field_dict["error_message"] = error_message
180
190
  if error_traceback is not UNSET:
181
191
  field_dict["error_traceback"] = error_traceback
192
+ if resource is not UNSET:
193
+ field_dict["resource"] = resource
194
+ if type_ is not UNSET:
195
+ field_dict["type"] = type_
196
+ if users is not UNSET:
197
+ field_dict["users"] = users
182
198
  if keys is not UNSET:
183
199
  field_dict["keys"] = keys
200
+ if backend_id is not UNSET:
201
+ field_dict["backend_id"] = backend_id
202
+ if fingerprints is not UNSET:
203
+ field_dict["fingerprints"] = fingerprints
204
+ if responsible_user is not UNSET:
205
+ field_dict["responsible_user"] = responsible_user
184
206
  if state is not UNSET:
185
207
  field_dict["state"] = state
208
+ if user_keys is not UNSET:
209
+ field_dict["user_keys"] = user_keys
210
+ if resource_name is not UNSET:
211
+ field_dict["resource_name"] = resource_name
212
+ if resource_uuid is not UNSET:
213
+ field_dict["resource_uuid"] = resource_uuid
214
+ if project_name is not UNSET:
215
+ field_dict["project_name"] = project_name
216
+ if project_uuid is not UNSET:
217
+ field_dict["project_uuid"] = project_uuid
218
+ if customer_uuid is not UNSET:
219
+ field_dict["customer_uuid"] = customer_uuid
220
+ if customer_name is not UNSET:
221
+ field_dict["customer_name"] = customer_name
222
+ if offering_customer_uuid is not UNSET:
223
+ field_dict["offering_customer_uuid"] = offering_customer_uuid
224
+ if offering_plugin_options is not UNSET:
225
+ field_dict["offering_plugin_options"] = offering_plugin_options
186
226
 
187
227
  return field_dict
188
228
 
@@ -194,37 +234,64 @@ class RobotAccountDetails:
194
234
  from ..models.ssh_key import SshKey
195
235
 
196
236
  d = dict(src_dict)
197
- url = d.pop("url")
237
+ url = d.pop("url", UNSET)
198
238
 
199
- uuid = UUID(d.pop("uuid"))
239
+ _uuid = d.pop("uuid", UNSET)
240
+ uuid: Union[Unset, UUID]
241
+ if isinstance(_uuid, Unset):
242
+ uuid = UNSET
243
+ else:
244
+ uuid = UUID(_uuid)
200
245
 
201
- created = isoparse(d.pop("created"))
246
+ _created = d.pop("created", UNSET)
247
+ created: Union[Unset, datetime.datetime]
248
+ if isinstance(_created, Unset):
249
+ created = UNSET
250
+ else:
251
+ created = isoparse(_created)
202
252
 
203
- modified = isoparse(d.pop("modified"))
253
+ _modified = d.pop("modified", UNSET)
254
+ modified: Union[Unset, datetime.datetime]
255
+ if isinstance(_modified, Unset):
256
+ modified = UNSET
257
+ else:
258
+ modified = isoparse(_modified)
204
259
 
205
- resource = d.pop("resource")
260
+ username = d.pop("username", UNSET)
206
261
 
207
- type_ = d.pop("type")
262
+ description = d.pop("description", UNSET)
263
+
264
+ error_message = d.pop("error_message", UNSET)
265
+
266
+ error_traceback = d.pop("error_traceback", UNSET)
267
+
268
+ resource = d.pop("resource", UNSET)
269
+
270
+ type_ = d.pop("type", UNSET)
208
271
 
209
272
  users = []
210
- _users = d.pop("users")
211
- for users_item_data in _users:
273
+ _users = d.pop("users", UNSET)
274
+ for users_item_data in _users or []:
212
275
  users_item = BasicUser.from_dict(users_item_data)
213
276
 
214
277
  users.append(users_item)
215
278
 
216
- backend_id = d.pop("backend_id")
279
+ keys = d.pop("keys", UNSET)
280
+
281
+ backend_id = d.pop("backend_id", UNSET)
217
282
 
218
283
  fingerprints = []
219
- _fingerprints = d.pop("fingerprints")
220
- for fingerprints_item_data in _fingerprints:
284
+ _fingerprints = d.pop("fingerprints", UNSET)
285
+ for fingerprints_item_data in _fingerprints or []:
221
286
  fingerprints_item = Fingerprint.from_dict(fingerprints_item_data)
222
287
 
223
288
  fingerprints.append(fingerprints_item)
224
289
 
225
- def _parse_responsible_user(data: object) -> Union["BasicUser", None]:
290
+ def _parse_responsible_user(data: object) -> Union["BasicUser", None, Unset]:
226
291
  if data is None:
227
292
  return data
293
+ if isinstance(data, Unset):
294
+ return data
228
295
  try:
229
296
  if not isinstance(data, dict):
230
297
  raise TypeError()
@@ -233,61 +300,82 @@ class RobotAccountDetails:
233
300
  return responsible_user_type_1
234
301
  except: # noqa: E722
235
302
  pass
236
- return cast(Union["BasicUser", None], data)
303
+ return cast(Union["BasicUser", None, Unset], data)
304
+
305
+ responsible_user = _parse_responsible_user(d.pop("responsible_user", UNSET))
237
306
 
238
- responsible_user = _parse_responsible_user(d.pop("responsible_user"))
307
+ _state = d.pop("state", UNSET)
308
+ state: Union[Unset, RobotAccountStates]
309
+ if isinstance(_state, Unset):
310
+ state = UNSET
311
+ else:
312
+ state = RobotAccountStates(_state)
239
313
 
240
314
  user_keys = []
241
- _user_keys = d.pop("user_keys")
242
- for user_keys_item_data in _user_keys:
315
+ _user_keys = d.pop("user_keys", UNSET)
316
+ for user_keys_item_data in _user_keys or []:
243
317
  user_keys_item = SshKey.from_dict(user_keys_item_data)
244
318
 
245
319
  user_keys.append(user_keys_item)
246
320
 
247
- resource_name = d.pop("resource_name")
248
-
249
- resource_uuid = UUID(d.pop("resource_uuid"))
250
-
251
- project_name = d.pop("project_name")
252
-
253
- project_uuid = UUID(d.pop("project_uuid"))
254
-
255
- customer_uuid = UUID(d.pop("customer_uuid"))
256
-
257
- customer_name = d.pop("customer_name")
321
+ resource_name = d.pop("resource_name", UNSET)
258
322
 
259
- offering_customer_uuid = UUID(d.pop("offering_customer_uuid"))
260
-
261
- offering_plugin_options = MergedPluginOptions.from_dict(d.pop("offering_plugin_options"))
323
+ _resource_uuid = d.pop("resource_uuid", UNSET)
324
+ resource_uuid: Union[Unset, UUID]
325
+ if isinstance(_resource_uuid, Unset):
326
+ resource_uuid = UNSET
327
+ else:
328
+ resource_uuid = UUID(_resource_uuid)
262
329
 
263
- username = d.pop("username", UNSET)
330
+ project_name = d.pop("project_name", UNSET)
264
331
 
265
- description = d.pop("description", UNSET)
332
+ _project_uuid = d.pop("project_uuid", UNSET)
333
+ project_uuid: Union[Unset, UUID]
334
+ if isinstance(_project_uuid, Unset):
335
+ project_uuid = UNSET
336
+ else:
337
+ project_uuid = UUID(_project_uuid)
266
338
 
267
- error_message = d.pop("error_message", UNSET)
339
+ _customer_uuid = d.pop("customer_uuid", UNSET)
340
+ customer_uuid: Union[Unset, UUID]
341
+ if isinstance(_customer_uuid, Unset):
342
+ customer_uuid = UNSET
343
+ else:
344
+ customer_uuid = UUID(_customer_uuid)
268
345
 
269
- error_traceback = d.pop("error_traceback", UNSET)
346
+ customer_name = d.pop("customer_name", UNSET)
270
347
 
271
- keys = d.pop("keys", UNSET)
348
+ _offering_customer_uuid = d.pop("offering_customer_uuid", UNSET)
349
+ offering_customer_uuid: Union[Unset, UUID]
350
+ if isinstance(_offering_customer_uuid, Unset):
351
+ offering_customer_uuid = UNSET
352
+ else:
353
+ offering_customer_uuid = UUID(_offering_customer_uuid)
272
354
 
273
- _state = d.pop("state", UNSET)
274
- state: Union[Unset, RobotAccountStates]
275
- if isinstance(_state, Unset):
276
- state = UNSET
355
+ _offering_plugin_options = d.pop("offering_plugin_options", UNSET)
356
+ offering_plugin_options: Union[Unset, MergedPluginOptions]
357
+ if isinstance(_offering_plugin_options, Unset):
358
+ offering_plugin_options = UNSET
277
359
  else:
278
- state = RobotAccountStates(_state)
360
+ offering_plugin_options = MergedPluginOptions.from_dict(_offering_plugin_options)
279
361
 
280
362
  robot_account_details = cls(
281
363
  url=url,
282
364
  uuid=uuid,
283
365
  created=created,
284
366
  modified=modified,
367
+ username=username,
368
+ description=description,
369
+ error_message=error_message,
370
+ error_traceback=error_traceback,
285
371
  resource=resource,
286
372
  type_=type_,
287
373
  users=users,
374
+ keys=keys,
288
375
  backend_id=backend_id,
289
376
  fingerprints=fingerprints,
290
377
  responsible_user=responsible_user,
378
+ state=state,
291
379
  user_keys=user_keys,
292
380
  resource_name=resource_name,
293
381
  resource_uuid=resource_uuid,
@@ -297,12 +385,6 @@ class RobotAccountDetails:
297
385
  customer_name=customer_name,
298
386
  offering_customer_uuid=offering_customer_uuid,
299
387
  offering_plugin_options=offering_plugin_options,
300
- username=username,
301
- description=description,
302
- error_message=error_message,
303
- error_traceback=error_traceback,
304
- keys=keys,
305
- state=state,
306
388
  )
307
389
 
308
390
  robot_account_details.additional_properties = d
@@ -24,6 +24,7 @@ class ServiceProvider:
24
24
  uuid (Union[Unset, UUID]):
25
25
  created (Union[Unset, datetime.datetime]):
26
26
  description (Union[Unset, str]):
27
+ enable_notifications (Union[Unset, bool]):
27
28
  customer (Union[Unset, str]):
28
29
  customer_name (Union[Unset, str]):
29
30
  customer_uuid (Union[Unset, UUID]):
@@ -41,6 +42,7 @@ class ServiceProvider:
41
42
  uuid: Union[Unset, UUID] = UNSET
42
43
  created: Union[Unset, datetime.datetime] = UNSET
43
44
  description: Union[Unset, str] = UNSET
45
+ enable_notifications: Union[Unset, bool] = UNSET
44
46
  customer: Union[Unset, str] = UNSET
45
47
  customer_name: Union[Unset, str] = UNSET
46
48
  customer_uuid: Union[Unset, UUID] = UNSET
@@ -67,6 +69,8 @@ class ServiceProvider:
67
69
 
68
70
  description = self.description
69
71
 
72
+ enable_notifications = self.enable_notifications
73
+
70
74
  customer = self.customer
71
75
 
72
76
  customer_name = self.customer_name
@@ -111,6 +115,8 @@ class ServiceProvider:
111
115
  field_dict["created"] = created
112
116
  if description is not UNSET:
113
117
  field_dict["description"] = description
118
+ if enable_notifications is not UNSET:
119
+ field_dict["enable_notifications"] = enable_notifications
114
120
  if customer is not UNSET:
115
121
  field_dict["customer"] = customer
116
122
  if customer_name is not UNSET:
@@ -159,6 +165,8 @@ class ServiceProvider:
159
165
 
160
166
  description = d.pop("description", UNSET)
161
167
 
168
+ enable_notifications = d.pop("enable_notifications", UNSET)
169
+
162
170
  customer = d.pop("customer", UNSET)
163
171
 
164
172
  customer_name = d.pop("customer_name", UNSET)
@@ -203,6 +211,7 @@ class ServiceProvider:
203
211
  uuid=uuid,
204
212
  created=created,
205
213
  description=description,
214
+ enable_notifications=enable_notifications,
206
215
  customer=customer,
207
216
  customer_name=customer_name,
208
217
  customer_uuid=customer_uuid,
@@ -0,0 +1,122 @@
1
+ from collections.abc import Mapping
2
+ from typing import 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
+ T = TypeVar("T", bound="ServiceProviderComplianceOverview")
9
+
10
+
11
+ @_attrs_define
12
+ class ServiceProviderComplianceOverview:
13
+ """
14
+ Attributes:
15
+ offering_uuid (UUID):
16
+ offering_name (str):
17
+ checklist_name (Union[None, str]):
18
+ total_users (int):
19
+ users_with_completions (int):
20
+ completed_users (int):
21
+ pending_users (int):
22
+ compliance_rate (float):
23
+ """
24
+
25
+ offering_uuid: UUID
26
+ offering_name: str
27
+ checklist_name: Union[None, str]
28
+ total_users: int
29
+ users_with_completions: int
30
+ completed_users: int
31
+ pending_users: int
32
+ compliance_rate: float
33
+ additional_properties: dict[str, Any] = _attrs_field(init=False, factory=dict)
34
+
35
+ def to_dict(self) -> dict[str, Any]:
36
+ offering_uuid = str(self.offering_uuid)
37
+
38
+ offering_name = self.offering_name
39
+
40
+ checklist_name: Union[None, str]
41
+ checklist_name = self.checklist_name
42
+
43
+ total_users = self.total_users
44
+
45
+ users_with_completions = self.users_with_completions
46
+
47
+ completed_users = self.completed_users
48
+
49
+ pending_users = self.pending_users
50
+
51
+ compliance_rate = self.compliance_rate
52
+
53
+ field_dict: dict[str, Any] = {}
54
+ field_dict.update(self.additional_properties)
55
+ field_dict.update(
56
+ {
57
+ "offering_uuid": offering_uuid,
58
+ "offering_name": offering_name,
59
+ "checklist_name": checklist_name,
60
+ "total_users": total_users,
61
+ "users_with_completions": users_with_completions,
62
+ "completed_users": completed_users,
63
+ "pending_users": pending_users,
64
+ "compliance_rate": compliance_rate,
65
+ }
66
+ )
67
+
68
+ return field_dict
69
+
70
+ @classmethod
71
+ def from_dict(cls: type[T], src_dict: Mapping[str, Any]) -> T:
72
+ d = dict(src_dict)
73
+ offering_uuid = UUID(d.pop("offering_uuid"))
74
+
75
+ offering_name = d.pop("offering_name")
76
+
77
+ def _parse_checklist_name(data: object) -> Union[None, str]:
78
+ if data is None:
79
+ return data
80
+ return cast(Union[None, str], data)
81
+
82
+ checklist_name = _parse_checklist_name(d.pop("checklist_name"))
83
+
84
+ total_users = d.pop("total_users")
85
+
86
+ users_with_completions = d.pop("users_with_completions")
87
+
88
+ completed_users = d.pop("completed_users")
89
+
90
+ pending_users = d.pop("pending_users")
91
+
92
+ compliance_rate = d.pop("compliance_rate")
93
+
94
+ service_provider_compliance_overview = cls(
95
+ offering_uuid=offering_uuid,
96
+ offering_name=offering_name,
97
+ checklist_name=checklist_name,
98
+ total_users=total_users,
99
+ users_with_completions=users_with_completions,
100
+ completed_users=completed_users,
101
+ pending_users=pending_users,
102
+ compliance_rate=compliance_rate,
103
+ )
104
+
105
+ service_provider_compliance_overview.additional_properties = d
106
+ return service_provider_compliance_overview
107
+
108
+ @property
109
+ def additional_keys(self) -> list[str]:
110
+ return list(self.additional_properties.keys())
111
+
112
+ def __getitem__(self, key: str) -> Any:
113
+ return self.additional_properties[key]
114
+
115
+ def __setitem__(self, key: str, value: Any) -> None:
116
+ self.additional_properties[key] = value
117
+
118
+ def __delitem__(self, key: str) -> None:
119
+ del self.additional_properties[key]
120
+
121
+ def __contains__(self, key: str) -> bool:
122
+ return key in self.additional_properties