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,217 @@
1
+ import datetime
2
+ from collections.abc import Mapping
3
+ from typing import TYPE_CHECKING, 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.maintenance_type_enum import MaintenanceTypeEnum
11
+ from ..models.public_maintenance_announcement_state_enum import PublicMaintenanceAnnouncementStateEnum
12
+
13
+ if TYPE_CHECKING:
14
+ from ..models.maintenance_announcement_offering import MaintenanceAnnouncementOffering
15
+
16
+
17
+ T = TypeVar("T", bound="PublicMaintenanceAnnouncement")
18
+
19
+
20
+ @_attrs_define
21
+ class PublicMaintenanceAnnouncement:
22
+ """
23
+ Attributes:
24
+ url (str):
25
+ uuid (UUID):
26
+ name (str):
27
+ message (str):
28
+ maintenance_type (MaintenanceTypeEnum):
29
+ maintenance_type_display (str):
30
+ external_reference_url (str): Optional reference to an external maintenance tracker
31
+ state (PublicMaintenanceAnnouncementStateEnum):
32
+ scheduled_start (datetime.datetime): When the maintenance is scheduled to begin
33
+ scheduled_end (datetime.datetime): When the maintenance is scheduled to complete
34
+ actual_start (Union[None, datetime.datetime]): When the maintenance actually began
35
+ actual_end (Union[None, datetime.datetime]): When the maintenance actually completed
36
+ affected_offerings (list['MaintenanceAnnouncementOffering']):
37
+ service_provider_name (str):
38
+ """
39
+
40
+ url: str
41
+ uuid: UUID
42
+ name: str
43
+ message: str
44
+ maintenance_type: MaintenanceTypeEnum
45
+ maintenance_type_display: str
46
+ external_reference_url: str
47
+ state: PublicMaintenanceAnnouncementStateEnum
48
+ scheduled_start: datetime.datetime
49
+ scheduled_end: datetime.datetime
50
+ actual_start: Union[None, datetime.datetime]
51
+ actual_end: Union[None, datetime.datetime]
52
+ affected_offerings: list["MaintenanceAnnouncementOffering"]
53
+ service_provider_name: str
54
+ additional_properties: dict[str, Any] = _attrs_field(init=False, factory=dict)
55
+
56
+ def to_dict(self) -> dict[str, Any]:
57
+ url = self.url
58
+
59
+ uuid = str(self.uuid)
60
+
61
+ name = self.name
62
+
63
+ message = self.message
64
+
65
+ maintenance_type = self.maintenance_type.value
66
+
67
+ maintenance_type_display = self.maintenance_type_display
68
+
69
+ external_reference_url = self.external_reference_url
70
+
71
+ state = self.state.value
72
+
73
+ scheduled_start = self.scheduled_start.isoformat()
74
+
75
+ scheduled_end = self.scheduled_end.isoformat()
76
+
77
+ actual_start: Union[None, str]
78
+ if isinstance(self.actual_start, datetime.datetime):
79
+ actual_start = self.actual_start.isoformat()
80
+ else:
81
+ actual_start = self.actual_start
82
+
83
+ actual_end: Union[None, str]
84
+ if isinstance(self.actual_end, datetime.datetime):
85
+ actual_end = self.actual_end.isoformat()
86
+ else:
87
+ actual_end = self.actual_end
88
+
89
+ affected_offerings = []
90
+ for affected_offerings_item_data in self.affected_offerings:
91
+ affected_offerings_item = affected_offerings_item_data.to_dict()
92
+ affected_offerings.append(affected_offerings_item)
93
+
94
+ service_provider_name = self.service_provider_name
95
+
96
+ field_dict: dict[str, Any] = {}
97
+ field_dict.update(self.additional_properties)
98
+ field_dict.update(
99
+ {
100
+ "url": url,
101
+ "uuid": uuid,
102
+ "name": name,
103
+ "message": message,
104
+ "maintenance_type": maintenance_type,
105
+ "maintenance_type_display": maintenance_type_display,
106
+ "external_reference_url": external_reference_url,
107
+ "state": state,
108
+ "scheduled_start": scheduled_start,
109
+ "scheduled_end": scheduled_end,
110
+ "actual_start": actual_start,
111
+ "actual_end": actual_end,
112
+ "affected_offerings": affected_offerings,
113
+ "service_provider_name": service_provider_name,
114
+ }
115
+ )
116
+
117
+ return field_dict
118
+
119
+ @classmethod
120
+ def from_dict(cls: type[T], src_dict: Mapping[str, Any]) -> T:
121
+ from ..models.maintenance_announcement_offering import MaintenanceAnnouncementOffering
122
+
123
+ d = dict(src_dict)
124
+ url = d.pop("url")
125
+
126
+ uuid = UUID(d.pop("uuid"))
127
+
128
+ name = d.pop("name")
129
+
130
+ message = d.pop("message")
131
+
132
+ maintenance_type = MaintenanceTypeEnum(d.pop("maintenance_type"))
133
+
134
+ maintenance_type_display = d.pop("maintenance_type_display")
135
+
136
+ external_reference_url = d.pop("external_reference_url")
137
+
138
+ state = PublicMaintenanceAnnouncementStateEnum(d.pop("state"))
139
+
140
+ scheduled_start = isoparse(d.pop("scheduled_start"))
141
+
142
+ scheduled_end = isoparse(d.pop("scheduled_end"))
143
+
144
+ def _parse_actual_start(data: object) -> Union[None, datetime.datetime]:
145
+ if data is None:
146
+ return data
147
+ try:
148
+ if not isinstance(data, str):
149
+ raise TypeError()
150
+ actual_start_type_0 = isoparse(data)
151
+
152
+ return actual_start_type_0
153
+ except: # noqa: E722
154
+ pass
155
+ return cast(Union[None, datetime.datetime], data)
156
+
157
+ actual_start = _parse_actual_start(d.pop("actual_start"))
158
+
159
+ def _parse_actual_end(data: object) -> Union[None, datetime.datetime]:
160
+ if data is None:
161
+ return data
162
+ try:
163
+ if not isinstance(data, str):
164
+ raise TypeError()
165
+ actual_end_type_0 = isoparse(data)
166
+
167
+ return actual_end_type_0
168
+ except: # noqa: E722
169
+ pass
170
+ return cast(Union[None, datetime.datetime], data)
171
+
172
+ actual_end = _parse_actual_end(d.pop("actual_end"))
173
+
174
+ affected_offerings = []
175
+ _affected_offerings = d.pop("affected_offerings")
176
+ for affected_offerings_item_data in _affected_offerings:
177
+ affected_offerings_item = MaintenanceAnnouncementOffering.from_dict(affected_offerings_item_data)
178
+
179
+ affected_offerings.append(affected_offerings_item)
180
+
181
+ service_provider_name = d.pop("service_provider_name")
182
+
183
+ public_maintenance_announcement = cls(
184
+ url=url,
185
+ uuid=uuid,
186
+ name=name,
187
+ message=message,
188
+ maintenance_type=maintenance_type,
189
+ maintenance_type_display=maintenance_type_display,
190
+ external_reference_url=external_reference_url,
191
+ state=state,
192
+ scheduled_start=scheduled_start,
193
+ scheduled_end=scheduled_end,
194
+ actual_start=actual_start,
195
+ actual_end=actual_end,
196
+ affected_offerings=affected_offerings,
197
+ service_provider_name=service_provider_name,
198
+ )
199
+
200
+ public_maintenance_announcement.additional_properties = d
201
+ return public_maintenance_announcement
202
+
203
+ @property
204
+ def additional_keys(self) -> list[str]:
205
+ return list(self.additional_properties.keys())
206
+
207
+ def __getitem__(self, key: str) -> Any:
208
+ return self.additional_properties[key]
209
+
210
+ def __setitem__(self, key: str, value: Any) -> None:
211
+ self.additional_properties[key] = value
212
+
213
+ def __delitem__(self, key: str) -> None:
214
+ del self.additional_properties[key]
215
+
216
+ def __contains__(self, key: str) -> bool:
217
+ return key in self.additional_properties
@@ -0,0 +1,10 @@
1
+ from enum import Enum
2
+
3
+
4
+ class PublicMaintenanceAnnouncementStateEnum(str, Enum):
5
+ COMPLETED = "Completed"
6
+ IN_PROGRESS = "In progress"
7
+ SCHEDULED = "Scheduled"
8
+
9
+ def __str__(self) -> str:
10
+ return str(self.value)
@@ -0,0 +1,15 @@
1
+ from enum import Enum
2
+
3
+
4
+ class PublicMaintenanceAnnouncementsCountOItem(str, Enum):
5
+ CREATED = "created"
6
+ NAME = "name"
7
+ SCHEDULED_END = "scheduled_end"
8
+ SCHEDULED_START = "scheduled_start"
9
+ VALUE_0 = "-created"
10
+ VALUE_1 = "-name"
11
+ VALUE_2 = "-scheduled_end"
12
+ VALUE_3 = "-scheduled_start"
13
+
14
+ def __str__(self) -> str:
15
+ return str(self.value)
@@ -0,0 +1,12 @@
1
+ from enum import Enum
2
+
3
+
4
+ class PublicMaintenanceAnnouncementsCountStateItem(str, Enum):
5
+ CANCELLED = "Cancelled"
6
+ COMPLETED = "Completed"
7
+ DRAFT = "Draft"
8
+ IN_PROGRESS = "In progress"
9
+ SCHEDULED = "Scheduled"
10
+
11
+ def __str__(self) -> str:
12
+ return str(self.value)
@@ -0,0 +1,15 @@
1
+ from enum import Enum
2
+
3
+
4
+ class PublicMaintenanceAnnouncementsListOItem(str, Enum):
5
+ CREATED = "created"
6
+ NAME = "name"
7
+ SCHEDULED_END = "scheduled_end"
8
+ SCHEDULED_START = "scheduled_start"
9
+ VALUE_0 = "-created"
10
+ VALUE_1 = "-name"
11
+ VALUE_2 = "-scheduled_end"
12
+ VALUE_3 = "-scheduled_start"
13
+
14
+ def __str__(self) -> str:
15
+ return str(self.value)
@@ -0,0 +1,12 @@
1
+ from enum import Enum
2
+
3
+
4
+ class PublicMaintenanceAnnouncementsListStateItem(str, Enum):
5
+ CANCELLED = "Cancelled"
6
+ COMPLETED = "Completed"
7
+ DRAFT = "Draft"
8
+ IN_PROGRESS = "In progress"
9
+ SCHEDULED = "Scheduled"
10
+
11
+ def __str__(self) -> str:
12
+ return str(self.value)
@@ -42,8 +42,6 @@ class PublicOfferingDetails:
42
42
  slug (Union[Unset, str]):
43
43
  description (Union[Unset, str]):
44
44
  full_description (Union[Unset, str]):
45
- terms_of_service (Union[Unset, str]):
46
- terms_of_service_link (Union[Unset, str]):
47
45
  privacy_policy_link (Union[Unset, str]):
48
46
  access_url (Union[Unset, str]): Publicly accessible offering access URL
49
47
  endpoints (Union[Unset, list['NestedEndpoint']]):
@@ -96,6 +94,7 @@ class PublicOfferingDetails:
96
94
  parent_uuid (Union[None, UUID, Unset]):
97
95
  parent_name (Union[None, Unset, str]):
98
96
  backend_metadata (Union[Unset, Any]):
97
+ has_compliance_requirements (Union[Unset, bool]):
99
98
  google_calendar_is_public (Union[None, Unset, bool]):
100
99
  google_calendar_link (Union[None, Unset, str]): Get the Google Calendar link for an offering.
101
100
  promotion_campaigns (Union[Unset, list['NestedCampaign']]):
@@ -108,8 +107,6 @@ class PublicOfferingDetails:
108
107
  slug: Union[Unset, str] = UNSET
109
108
  description: Union[Unset, str] = UNSET
110
109
  full_description: Union[Unset, str] = UNSET
111
- terms_of_service: Union[Unset, str] = UNSET
112
- terms_of_service_link: Union[Unset, str] = UNSET
113
110
  privacy_policy_link: Union[Unset, str] = UNSET
114
111
  access_url: Union[Unset, str] = UNSET
115
112
  endpoints: Union[Unset, list["NestedEndpoint"]] = UNSET
@@ -162,6 +159,7 @@ class PublicOfferingDetails:
162
159
  parent_uuid: Union[None, UUID, Unset] = UNSET
163
160
  parent_name: Union[None, Unset, str] = UNSET
164
161
  backend_metadata: Union[Unset, Any] = UNSET
162
+ has_compliance_requirements: Union[Unset, bool] = UNSET
165
163
  google_calendar_is_public: Union[None, Unset, bool] = UNSET
166
164
  google_calendar_link: Union[None, Unset, str] = UNSET
167
165
  promotion_campaigns: Union[Unset, list["NestedCampaign"]] = UNSET
@@ -186,10 +184,6 @@ class PublicOfferingDetails:
186
184
 
187
185
  full_description = self.full_description
188
186
 
189
- terms_of_service = self.terms_of_service
190
-
191
- terms_of_service_link = self.terms_of_service_link
192
-
193
187
  privacy_policy_link = self.privacy_policy_link
194
188
 
195
189
  access_url = self.access_url
@@ -444,6 +438,8 @@ class PublicOfferingDetails:
444
438
 
445
439
  backend_metadata = self.backend_metadata
446
440
 
441
+ has_compliance_requirements = self.has_compliance_requirements
442
+
447
443
  google_calendar_is_public: Union[None, Unset, bool]
448
444
  if isinstance(self.google_calendar_is_public, Unset):
449
445
  google_calendar_is_public = UNSET
@@ -480,10 +476,6 @@ class PublicOfferingDetails:
480
476
  field_dict["description"] = description
481
477
  if full_description is not UNSET:
482
478
  field_dict["full_description"] = full_description
483
- if terms_of_service is not UNSET:
484
- field_dict["terms_of_service"] = terms_of_service
485
- if terms_of_service_link is not UNSET:
486
- field_dict["terms_of_service_link"] = terms_of_service_link
487
479
  if privacy_policy_link is not UNSET:
488
480
  field_dict["privacy_policy_link"] = privacy_policy_link
489
481
  if access_url is not UNSET:
@@ -588,6 +580,8 @@ class PublicOfferingDetails:
588
580
  field_dict["parent_name"] = parent_name
589
581
  if backend_metadata is not UNSET:
590
582
  field_dict["backend_metadata"] = backend_metadata
583
+ if has_compliance_requirements is not UNSET:
584
+ field_dict["has_compliance_requirements"] = has_compliance_requirements
591
585
  if google_calendar_is_public is not UNSET:
592
586
  field_dict["google_calendar_is_public"] = google_calendar_is_public
593
587
  if google_calendar_link is not UNSET:
@@ -637,10 +631,6 @@ class PublicOfferingDetails:
637
631
 
638
632
  full_description = d.pop("full_description", UNSET)
639
633
 
640
- terms_of_service = d.pop("terms_of_service", UNSET)
641
-
642
- terms_of_service_link = d.pop("terms_of_service_link", UNSET)
643
-
644
634
  privacy_policy_link = d.pop("privacy_policy_link", UNSET)
645
635
 
646
636
  access_url = d.pop("access_url", UNSET)
@@ -1020,6 +1010,8 @@ class PublicOfferingDetails:
1020
1010
 
1021
1011
  backend_metadata = d.pop("backend_metadata", UNSET)
1022
1012
 
1013
+ has_compliance_requirements = d.pop("has_compliance_requirements", UNSET)
1014
+
1023
1015
  def _parse_google_calendar_is_public(data: object) -> Union[None, Unset, bool]:
1024
1016
  if data is None:
1025
1017
  return data
@@ -1053,8 +1045,6 @@ class PublicOfferingDetails:
1053
1045
  slug=slug,
1054
1046
  description=description,
1055
1047
  full_description=full_description,
1056
- terms_of_service=terms_of_service,
1057
- terms_of_service_link=terms_of_service_link,
1058
1048
  privacy_policy_link=privacy_policy_link,
1059
1049
  access_url=access_url,
1060
1050
  endpoints=endpoints,
@@ -1107,6 +1097,7 @@ class PublicOfferingDetails:
1107
1097
  parent_uuid=parent_uuid,
1108
1098
  parent_name=parent_name,
1109
1099
  backend_metadata=backend_metadata,
1100
+ has_compliance_requirements=has_compliance_requirements,
1110
1101
  google_calendar_is_public=google_calendar_is_public,
1111
1102
  google_calendar_link=google_calendar_link,
1112
1103
  promotion_campaigns=promotion_campaigns,
@@ -0,0 +1,176 @@
1
+ from collections.abc import Mapping
2
+ from typing import TYPE_CHECKING, Any, TypeVar, Union, cast
3
+ from uuid import UUID
4
+
5
+ from attrs import define as _attrs_define
6
+ from attrs import field as _attrs_field
7
+
8
+ if TYPE_CHECKING:
9
+ from ..models.question_answer_project_answers_item import QuestionAnswerProjectAnswersItem
10
+ from ..models.question_answer_question_options_item import QuestionAnswerQuestionOptionsItem
11
+
12
+
13
+ T = TypeVar("T", bound="QuestionAnswer")
14
+
15
+
16
+ @_attrs_define
17
+ class QuestionAnswer:
18
+ """
19
+ Attributes:
20
+ question_uuid (UUID):
21
+ question_description (str):
22
+ question_type (str):
23
+ required (bool):
24
+ order (int):
25
+ min_value (Union[None, str]):
26
+ max_value (Union[None, str]):
27
+ total_projects (int): Get total projects count.
28
+ answered_projects_count (int): Get count of projects that answered this question.
29
+ project_answers (list['QuestionAnswerProjectAnswersItem']): Get all project answers for this question.
30
+ question_options (list['QuestionAnswerQuestionOptionsItem']): Get question options for select-type questions.
31
+ """
32
+
33
+ question_uuid: UUID
34
+ question_description: str
35
+ question_type: str
36
+ required: bool
37
+ order: int
38
+ min_value: Union[None, str]
39
+ max_value: Union[None, str]
40
+ total_projects: int
41
+ answered_projects_count: int
42
+ project_answers: list["QuestionAnswerProjectAnswersItem"]
43
+ question_options: list["QuestionAnswerQuestionOptionsItem"]
44
+ additional_properties: dict[str, Any] = _attrs_field(init=False, factory=dict)
45
+
46
+ def to_dict(self) -> dict[str, Any]:
47
+ question_uuid = str(self.question_uuid)
48
+
49
+ question_description = self.question_description
50
+
51
+ question_type = self.question_type
52
+
53
+ required = self.required
54
+
55
+ order = self.order
56
+
57
+ min_value: Union[None, str]
58
+ min_value = self.min_value
59
+
60
+ max_value: Union[None, str]
61
+ max_value = self.max_value
62
+
63
+ total_projects = self.total_projects
64
+
65
+ answered_projects_count = self.answered_projects_count
66
+
67
+ project_answers = []
68
+ for project_answers_item_data in self.project_answers:
69
+ project_answers_item = project_answers_item_data.to_dict()
70
+ project_answers.append(project_answers_item)
71
+
72
+ question_options = []
73
+ for question_options_item_data in self.question_options:
74
+ question_options_item = question_options_item_data.to_dict()
75
+ question_options.append(question_options_item)
76
+
77
+ field_dict: dict[str, Any] = {}
78
+ field_dict.update(self.additional_properties)
79
+ field_dict.update(
80
+ {
81
+ "question_uuid": question_uuid,
82
+ "question_description": question_description,
83
+ "question_type": question_type,
84
+ "required": required,
85
+ "order": order,
86
+ "min_value": min_value,
87
+ "max_value": max_value,
88
+ "total_projects": total_projects,
89
+ "answered_projects_count": answered_projects_count,
90
+ "project_answers": project_answers,
91
+ "question_options": question_options,
92
+ }
93
+ )
94
+
95
+ return field_dict
96
+
97
+ @classmethod
98
+ def from_dict(cls: type[T], src_dict: Mapping[str, Any]) -> T:
99
+ from ..models.question_answer_project_answers_item import QuestionAnswerProjectAnswersItem
100
+ from ..models.question_answer_question_options_item import QuestionAnswerQuestionOptionsItem
101
+
102
+ d = dict(src_dict)
103
+ question_uuid = UUID(d.pop("question_uuid"))
104
+
105
+ question_description = d.pop("question_description")
106
+
107
+ question_type = d.pop("question_type")
108
+
109
+ required = d.pop("required")
110
+
111
+ order = d.pop("order")
112
+
113
+ def _parse_min_value(data: object) -> Union[None, str]:
114
+ if data is None:
115
+ return data
116
+ return cast(Union[None, str], data)
117
+
118
+ min_value = _parse_min_value(d.pop("min_value"))
119
+
120
+ def _parse_max_value(data: object) -> Union[None, str]:
121
+ if data is None:
122
+ return data
123
+ return cast(Union[None, str], data)
124
+
125
+ max_value = _parse_max_value(d.pop("max_value"))
126
+
127
+ total_projects = d.pop("total_projects")
128
+
129
+ answered_projects_count = d.pop("answered_projects_count")
130
+
131
+ project_answers = []
132
+ _project_answers = d.pop("project_answers")
133
+ for project_answers_item_data in _project_answers:
134
+ project_answers_item = QuestionAnswerProjectAnswersItem.from_dict(project_answers_item_data)
135
+
136
+ project_answers.append(project_answers_item)
137
+
138
+ question_options = []
139
+ _question_options = d.pop("question_options")
140
+ for question_options_item_data in _question_options:
141
+ question_options_item = QuestionAnswerQuestionOptionsItem.from_dict(question_options_item_data)
142
+
143
+ question_options.append(question_options_item)
144
+
145
+ question_answer = cls(
146
+ question_uuid=question_uuid,
147
+ question_description=question_description,
148
+ question_type=question_type,
149
+ required=required,
150
+ order=order,
151
+ min_value=min_value,
152
+ max_value=max_value,
153
+ total_projects=total_projects,
154
+ answered_projects_count=answered_projects_count,
155
+ project_answers=project_answers,
156
+ question_options=question_options,
157
+ )
158
+
159
+ question_answer.additional_properties = d
160
+ return question_answer
161
+
162
+ @property
163
+ def additional_keys(self) -> list[str]:
164
+ return list(self.additional_properties.keys())
165
+
166
+ def __getitem__(self, key: str) -> Any:
167
+ return self.additional_properties[key]
168
+
169
+ def __setitem__(self, key: str, value: Any) -> None:
170
+ self.additional_properties[key] = value
171
+
172
+ def __delitem__(self, key: str) -> None:
173
+ del self.additional_properties[key]
174
+
175
+ def __contains__(self, key: str) -> bool:
176
+ return key in self.additional_properties
@@ -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
@@ -21,10 +21,11 @@ class RancherClusterSecurityGroupRule:
21
21
  uuid (UUID):
22
22
  ethertype (Union[Unset, EthertypeEnum]):
23
23
  direction (Union[Unset, DirectionEnum]):
24
- protocol (Union[BlankEnum, ProtocolEnum, Unset]):
25
- from_port (Union[None, Unset, int]):
26
- to_port (Union[None, Unset, int]):
27
- cidr (Union[None, Unset, str]):
24
+ protocol (Union[BlankEnum, ProtocolEnum, Unset]): The network protocol (TCP, UDP, ICMP, or empty for any
25
+ protocol)
26
+ from_port (Union[None, Unset, int]): Starting port number in the range (1-65535)
27
+ to_port (Union[None, Unset, int]): Ending port number in the range (1-65535)
28
+ cidr (Union[None, Unset, str]): CIDR notation for the source/destination network address range
28
29
  description (Union[Unset, str]):
29
30
  """
30
31