waldur-api-client 7.8.0__py3-none-any.whl → 7.8.2__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 (212) hide show
  1. waldur_api_client/api/booking_resources/booking_resources_count.py +10 -13
  2. waldur_api_client/api/booking_resources/booking_resources_list.py +10 -13
  3. waldur_api_client/api/call_managing_organisations/call_managing_organisations_create.py +44 -7
  4. waldur_api_client/api/call_managing_organisations/call_managing_organisations_partial_update.py +46 -7
  5. waldur_api_client/api/call_managing_organisations/call_managing_organisations_update.py +44 -7
  6. waldur_api_client/api/checklists_admin/checklists_admin_checklist_questions.py +49 -0
  7. waldur_api_client/api/checklists_admin/checklists_admin_count.py +43 -0
  8. waldur_api_client/api/checklists_admin/checklists_admin_list.py +43 -0
  9. waldur_api_client/api/checklists_admin_categories/checklists_admin_categories_create.py +44 -7
  10. waldur_api_client/api/checklists_admin_categories/checklists_admin_categories_partial_update.py +44 -7
  11. waldur_api_client/api/checklists_admin_categories/checklists_admin_categories_update.py +44 -7
  12. waldur_api_client/api/customers/customers_create.py +44 -7
  13. waldur_api_client/api/customers/customers_partial_update.py +44 -7
  14. waldur_api_client/api/customers/customers_update.py +44 -7
  15. waldur_api_client/api/external_links/external_links_create.py +44 -7
  16. waldur_api_client/api/external_links/external_links_partial_update.py +44 -7
  17. waldur_api_client/api/external_links/external_links_update.py +44 -7
  18. waldur_api_client/api/invoices/invoices_paid.py +44 -7
  19. waldur_api_client/api/marketplace_categories/marketplace_categories_create.py +44 -7
  20. waldur_api_client/api/marketplace_categories/marketplace_categories_partial_update.py +44 -7
  21. waldur_api_client/api/marketplace_categories/marketplace_categories_update.py +44 -7
  22. waldur_api_client/api/marketplace_category_groups/marketplace_category_groups_create.py +44 -7
  23. waldur_api_client/api/marketplace_category_groups/marketplace_category_groups_partial_update.py +44 -7
  24. waldur_api_client/api/marketplace_category_groups/marketplace_category_groups_update.py +44 -7
  25. waldur_api_client/api/marketplace_course_accounts/marketplace_course_accounts_count.py +96 -0
  26. waldur_api_client/api/marketplace_course_accounts/marketplace_course_accounts_list.py +96 -0
  27. waldur_api_client/api/marketplace_offering_files/marketplace_offering_files_create.py +44 -7
  28. waldur_api_client/api/marketplace_offering_user_checklist_completions/__init__.py +1 -0
  29. waldur_api_client/api/marketplace_offering_user_checklist_completions/marketplace_offering_user_checklist_completions_count.py +286 -0
  30. waldur_api_client/api/marketplace_offering_user_checklist_completions/marketplace_offering_user_checklist_completions_list.py +289 -0
  31. waldur_api_client/api/marketplace_offering_user_checklist_completions/marketplace_offering_user_checklist_completions_retrieve.py +141 -0
  32. waldur_api_client/api/marketplace_orders/marketplace_orders_update_attachment.py +44 -7
  33. waldur_api_client/api/marketplace_provider_offerings/marketplace_provider_offerings_create.py +44 -7
  34. waldur_api_client/api/marketplace_provider_offerings/marketplace_provider_offerings_list_course_accounts_retrieve.py +177 -0
  35. waldur_api_client/api/marketplace_provider_offerings/marketplace_provider_offerings_refresh_offering_usernames.py +0 -22
  36. waldur_api_client/api/marketplace_provider_offerings/marketplace_provider_offerings_update_compliance_checklist.py +105 -0
  37. waldur_api_client/api/marketplace_provider_offerings/marketplace_provider_offerings_update_image.py +44 -7
  38. waldur_api_client/api/marketplace_provider_offerings/marketplace_provider_offerings_update_thumbnail.py +30 -5
  39. waldur_api_client/api/marketplace_provider_resources/marketplace_provider_resources_count.py +10 -13
  40. waldur_api_client/api/marketplace_provider_resources/marketplace_provider_resources_list.py +10 -13
  41. waldur_api_client/api/marketplace_resources/marketplace_resources_count.py +10 -13
  42. waldur_api_client/api/marketplace_resources/marketplace_resources_list.py +10 -13
  43. waldur_api_client/api/marketplace_screenshots/marketplace_screenshots_create.py +44 -7
  44. waldur_api_client/api/marketplace_screenshots/marketplace_screenshots_update.py +44 -7
  45. waldur_api_client/api/marketplace_service_providers/marketplace_service_providers_course_accounts_list.py +98 -0
  46. waldur_api_client/api/marketplace_service_providers/marketplace_service_providers_create.py +44 -7
  47. waldur_api_client/api/marketplace_service_providers/marketplace_service_providers_partial_update.py +44 -7
  48. waldur_api_client/api/marketplace_service_providers/marketplace_service_providers_update.py +44 -7
  49. waldur_api_client/api/override_settings/override_settings.py +30 -5
  50. waldur_api_client/api/payments/payments_create.py +44 -7
  51. waldur_api_client/api/payments/payments_partial_update.py +44 -7
  52. waldur_api_client/api/payments/payments_update.py +44 -7
  53. waldur_api_client/api/projects/projects_create.py +44 -7
  54. waldur_api_client/api/projects/projects_partial_update.py +44 -7
  55. waldur_api_client/api/projects/projects_update.py +44 -7
  56. waldur_api_client/api/proposal_proposals/proposal_proposals_attach_document.py +30 -5
  57. waldur_api_client/api/slurm_jobs/slurm_jobs_create.py +44 -7
  58. waldur_api_client/api/slurm_jobs/slurm_jobs_update.py +44 -7
  59. waldur_api_client/api/support_attachments/support_attachments_create.py +44 -7
  60. waldur_api_client/api/user_group_invitations/user_group_invitations_count.py +15 -0
  61. waldur_api_client/api/user_group_invitations/user_group_invitations_list.py +15 -0
  62. waldur_api_client/api/user_invitations/user_invitations_count.py +15 -0
  63. waldur_api_client/api/user_invitations/user_invitations_list.py +15 -0
  64. waldur_api_client/api/users/users_create.py +44 -7
  65. waldur_api_client/api/users/users_partial_update.py +44 -7
  66. waldur_api_client/api/users/users_update.py +44 -7
  67. waldur_api_client/models/__init__.py +172 -4
  68. waldur_api_client/models/agent_type_enum.py +13 -0
  69. waldur_api_client/models/attachment_request_form.py +70 -0
  70. waldur_api_client/models/attachment_request_multipart.py +83 -0
  71. waldur_api_client/models/booking_offerings_list_field_item.py +1 -0
  72. waldur_api_client/models/booking_offerings_retrieve_field_item.py +1 -0
  73. waldur_api_client/models/booking_resource.py +18 -0
  74. waldur_api_client/models/booking_resources_list_field_item.py +2 -0
  75. waldur_api_client/models/booking_resources_retrieve_field_item.py +2 -0
  76. waldur_api_client/models/call_managing_organisation_request_form.py +103 -0
  77. waldur_api_client/models/call_managing_organisation_request_multipart.py +122 -0
  78. waldur_api_client/models/call_round.py +11 -1
  79. waldur_api_client/models/category_group_request_form.py +103 -0
  80. waldur_api_client/models/category_group_request_multipart.py +122 -0
  81. waldur_api_client/models/checklist_category_request_form.py +103 -0
  82. waldur_api_client/models/checklist_category_request_multipart.py +122 -0
  83. waldur_api_client/models/checklists_admin_checklist_questions_checklist_type.py +11 -0
  84. waldur_api_client/models/checklists_admin_checklist_questions_checklist_type_in_item.py +11 -0
  85. waldur_api_client/models/checklists_admin_count_checklist_type.py +11 -0
  86. waldur_api_client/models/checklists_admin_count_checklist_type_in_item.py +11 -0
  87. waldur_api_client/models/checklists_admin_list_checklist_type.py +11 -0
  88. waldur_api_client/models/checklists_admin_list_checklist_type_in_item.py +11 -0
  89. waldur_api_client/models/constance_settings.py +9 -0
  90. waldur_api_client/models/constance_settings_request.py +9 -0
  91. waldur_api_client/models/constance_settings_request_form.py +1547 -0
  92. waldur_api_client/models/constance_settings_request_multipart.py +2173 -0
  93. waldur_api_client/models/course_account.py +24 -0
  94. waldur_api_client/models/customer.py +9 -0
  95. waldur_api_client/models/customer_request.py +9 -0
  96. waldur_api_client/models/customer_request_form.py +312 -0
  97. waldur_api_client/models/customer_request_multipart.py +394 -0
  98. waldur_api_client/models/customers_list_field_item.py +1 -0
  99. waldur_api_client/models/customers_retrieve_field_item.py +1 -0
  100. waldur_api_client/models/external_link_request_form.py +111 -0
  101. waldur_api_client/models/external_link_request_multipart.py +132 -0
  102. waldur_api_client/models/firecrest_job_request_form.py +104 -0
  103. waldur_api_client/models/firecrest_job_request_multipart.py +127 -0
  104. waldur_api_client/models/group_invitation.py +8 -0
  105. waldur_api_client/models/integration_status.py +21 -4
  106. waldur_api_client/models/invitation.py +8 -0
  107. waldur_api_client/models/managed_rancher_cluster_resources_list_field_item.py +2 -0
  108. waldur_api_client/models/managed_rancher_cluster_resources_retrieve_field_item.py +2 -0
  109. waldur_api_client/models/marketplace_category_request_form.py +153 -0
  110. waldur_api_client/models/marketplace_category_request_multipart.py +187 -0
  111. waldur_api_client/models/marketplace_course_accounts_count_o_item.py +23 -0
  112. waldur_api_client/models/marketplace_course_accounts_list_o_item.py +23 -0
  113. waldur_api_client/models/marketplace_offering_user_checklist_completions_count_o_item.py +11 -0
  114. waldur_api_client/models/marketplace_offering_user_checklist_completions_list_o_item.py +11 -0
  115. waldur_api_client/models/marketplace_orders_list_field_item.py +3 -0
  116. waldur_api_client/models/marketplace_orders_retrieve_field_item.py +3 -0
  117. waldur_api_client/models/marketplace_provider_offerings_list_course_accounts_retrieve_field_item.py +73 -0
  118. waldur_api_client/models/marketplace_provider_offerings_list_customer_service_accounts_retrieve_field_item.py +1 -0
  119. waldur_api_client/models/marketplace_provider_offerings_list_field_item.py +1 -0
  120. waldur_api_client/models/marketplace_provider_offerings_list_project_service_accounts_retrieve_field_item.py +1 -0
  121. waldur_api_client/models/marketplace_provider_offerings_retrieve_field_item.py +1 -0
  122. waldur_api_client/models/marketplace_provider_offerings_stats_retrieve_field_item.py +1 -0
  123. waldur_api_client/models/marketplace_provider_offerings_user_has_resource_access_retrieve_field_item.py +1 -0
  124. waldur_api_client/models/marketplace_provider_resources_details_retrieve_field_item.py +2 -0
  125. waldur_api_client/models/marketplace_provider_resources_list_field_item.py +2 -0
  126. waldur_api_client/models/marketplace_provider_resources_retrieve_field_item.py +2 -0
  127. waldur_api_client/models/marketplace_public_offerings_list_field_item.py +1 -0
  128. waldur_api_client/models/marketplace_public_offerings_retrieve_field_item.py +1 -0
  129. waldur_api_client/models/marketplace_resources_details_retrieve_field_item.py +2 -0
  130. waldur_api_client/models/marketplace_resources_list_field_item.py +2 -0
  131. waldur_api_client/models/marketplace_resources_retrieve_field_item.py +2 -0
  132. waldur_api_client/models/marketplace_service_providers_course_accounts_list_o_item.py +23 -0
  133. waldur_api_client/models/marketplace_service_providers_offerings_list_field_item.py +1 -0
  134. waldur_api_client/models/merged_plugin_options.py +9 -0
  135. waldur_api_client/models/merged_plugin_options_request.py +9 -0
  136. waldur_api_client/models/nested_round.py +9 -0
  137. waldur_api_client/models/nested_round_request.py +9 -0
  138. waldur_api_client/models/notification.py +11 -0
  139. waldur_api_client/models/notification_context_fields.py +47 -0
  140. waldur_api_client/models/offering.py +20 -0
  141. waldur_api_client/models/offering_compliance_checklist_update_request.py +82 -0
  142. waldur_api_client/models/offering_create.py +20 -0
  143. waldur_api_client/models/offering_create_request.py +20 -0
  144. waldur_api_client/models/{provider_offering_details_request.py → offering_create_request_form.py} +77 -5
  145. waldur_api_client/models/offering_create_request_form_limits.py +57 -0
  146. waldur_api_client/models/offering_create_request_multipart.py +599 -0
  147. waldur_api_client/models/offering_create_request_multipart_limits.py +57 -0
  148. waldur_api_client/models/offering_file_request_form.py +78 -0
  149. waldur_api_client/models/offering_file_request_multipart.py +93 -0
  150. waldur_api_client/models/offering_image_request_form.py +62 -0
  151. waldur_api_client/models/offering_image_request_multipart.py +73 -0
  152. waldur_api_client/models/offering_thumbnail_request_form.py +62 -0
  153. waldur_api_client/models/offering_thumbnail_request_multipart.py +73 -0
  154. waldur_api_client/models/offering_user.py +5 -5
  155. waldur_api_client/models/{offering_user_state_enum.py → offering_user_state.py} +1 -1
  156. waldur_api_client/models/order_attachment_request_form.py +84 -0
  157. waldur_api_client/models/order_attachment_request_multipart.py +98 -0
  158. waldur_api_client/models/order_details.py +34 -0
  159. waldur_api_client/models/paid_request_form.py +81 -0
  160. waldur_api_client/models/paid_request_multipart.py +94 -0
  161. waldur_api_client/models/patched_call_managing_organisation_request_form.py +92 -0
  162. waldur_api_client/models/patched_call_managing_organisation_request_multipart.py +109 -0
  163. waldur_api_client/models/patched_category_group_request_form.py +101 -0
  164. waldur_api_client/models/patched_category_group_request_multipart.py +121 -0
  165. waldur_api_client/models/patched_checklist_category_request_form.py +102 -0
  166. waldur_api_client/models/patched_checklist_category_request_multipart.py +122 -0
  167. waldur_api_client/models/patched_customer_request.py +9 -0
  168. waldur_api_client/models/patched_customer_request_form.py +310 -0
  169. waldur_api_client/models/patched_customer_request_multipart.py +393 -0
  170. waldur_api_client/models/patched_external_link_request_form.py +110 -0
  171. waldur_api_client/models/patched_external_link_request_multipart.py +133 -0
  172. waldur_api_client/models/patched_marketplace_category_request_form.py +151 -0
  173. waldur_api_client/models/patched_marketplace_category_request_multipart.py +186 -0
  174. waldur_api_client/models/patched_payment_request_form.py +119 -0
  175. waldur_api_client/models/patched_payment_request_multipart.py +142 -0
  176. waldur_api_client/models/patched_project_request_form.py +279 -0
  177. waldur_api_client/models/patched_project_request_multipart.py +342 -0
  178. waldur_api_client/models/patched_service_provider_request_form.py +101 -0
  179. waldur_api_client/models/patched_service_provider_request_multipart.py +121 -0
  180. waldur_api_client/models/patched_user_request_form.py +241 -0
  181. waldur_api_client/models/patched_user_request_multipart.py +306 -0
  182. waldur_api_client/models/payment_request_form.py +113 -0
  183. waldur_api_client/models/payment_request_multipart.py +134 -0
  184. waldur_api_client/models/project_request_form.py +280 -0
  185. waldur_api_client/models/project_request_multipart.py +341 -0
  186. waldur_api_client/models/project_user.py +9 -0
  187. waldur_api_client/models/proposal.py +8 -0
  188. waldur_api_client/models/proposal_documentation_request_form.py +84 -0
  189. waldur_api_client/models/proposal_documentation_request_multipart.py +98 -0
  190. waldur_api_client/models/proposal_proposals_count_o_item.py +3 -1
  191. waldur_api_client/models/proposal_proposals_list_o_item.py +3 -1
  192. waldur_api_client/models/proposal_review.py +40 -0
  193. waldur_api_client/models/protected_proposal_list.py +8 -0
  194. waldur_api_client/models/protected_proposal_list_request.py +8 -0
  195. waldur_api_client/models/protected_round.py +8 -0
  196. waldur_api_client/models/provider_offering.py +21 -1
  197. waldur_api_client/models/provider_offering_details.py +20 -0
  198. waldur_api_client/models/public_offering_details.py +20 -0
  199. waldur_api_client/models/resource.py +18 -0
  200. waldur_api_client/models/resource_update_limits_request.py +1 -34
  201. waldur_api_client/models/screenshot_request_form.py +87 -0
  202. waldur_api_client/models/screenshot_request_multipart.py +105 -0
  203. waldur_api_client/models/service_provider_request_form.py +112 -0
  204. waldur_api_client/models/service_provider_request_multipart.py +134 -0
  205. waldur_api_client/models/user_checklist_completion.py +265 -0
  206. waldur_api_client/models/user_request_form.py +250 -0
  207. waldur_api_client/models/user_request_multipart.py +316 -0
  208. waldur_api_client/models/visible_invitation_details.py +8 -0
  209. {waldur_api_client-7.8.0.dist-info → waldur_api_client-7.8.2.dist-info}/METADATA +1 -1
  210. {waldur_api_client-7.8.0.dist-info → waldur_api_client-7.8.2.dist-info}/RECORD +212 -127
  211. {waldur_api_client-7.8.0.dist-info → waldur_api_client-7.8.2.dist-info}/WHEEL +1 -1
  212. {waldur_api_client-7.8.0.dist-info → waldur_api_client-7.8.2.dist-info}/licenses/LICENSE +0 -0
@@ -0,0 +1,2173 @@
1
+ from collections.abc import Mapping
2
+ from io import BytesIO
3
+ from typing import Any, TypeVar, Union, cast
4
+
5
+ from attrs import define as _attrs_define
6
+ from attrs import field as _attrs_field
7
+
8
+ from .. import types
9
+ from ..types import UNSET, File, Unset
10
+
11
+ T = TypeVar("T", bound="ConstanceSettingsRequestMultipart")
12
+
13
+
14
+ @_attrs_define
15
+ class ConstanceSettingsRequestMultipart:
16
+ """
17
+ Attributes:
18
+ site_name (Union[Unset, str]):
19
+ site_description (Union[Unset, str]):
20
+ homeport_url (Union[Unset, str]):
21
+ rancher_username_input_label (Union[Unset, str]):
22
+ site_address (Union[Unset, str]):
23
+ site_email (Union[Unset, str]):
24
+ site_phone (Union[Unset, str]):
25
+ currency_name (Union[Unset, str]):
26
+ thumbnail_size (Union[Unset, str]):
27
+ anonymous_user_can_view_offerings (Union[Unset, bool]):
28
+ anonymous_user_can_view_plans (Union[Unset, bool]):
29
+ notify_staff_about_approvals (Union[Unset, bool]):
30
+ notify_about_resource_change (Union[Unset, bool]):
31
+ disable_sending_notifications_about_resource_update (Union[Unset, bool]):
32
+ marketplace_landing_page (Union[Unset, str]):
33
+ enable_stale_resource_notifications (Union[Unset, bool]):
34
+ telemetry_url (Union[Unset, str]):
35
+ telemetry_version (Union[Unset, int]):
36
+ script_run_mode (Union[Unset, str]):
37
+ docker_client (Union[Unset, str]):
38
+ docker_run_options (Union[Unset, str]):
39
+ docker_script_dir (Union[Unset, str]):
40
+ docker_remove_container (Union[Unset, bool]):
41
+ docker_images (Union[Unset, str]):
42
+ docker_volume_name (Union[Unset, str]):
43
+ k8s_namespace (Union[Unset, str]):
44
+ k8s_config_path (Union[Unset, str]):
45
+ k8s_job_timeout (Union[Unset, int]):
46
+ enable_strict_check_accepting_invitation (Union[Unset, bool]):
47
+ invitation_disable_multiple_roles (Union[Unset, bool]):
48
+ default_idp (Union[Unset, str]):
49
+ docs_url (Union[Unset, str]):
50
+ short_page_title (Union[Unset, str]):
51
+ full_page_title (Union[Unset, str]):
52
+ brand_color (Union[Unset, str]):
53
+ hero_link_label (Union[Unset, str]):
54
+ hero_link_url (Union[Unset, str]):
55
+ support_portal_url (Union[Unset, str]):
56
+ common_footer_text (Union[Unset, str]):
57
+ common_footer_html (Union[Unset, str]):
58
+ language_choices (Union[Unset, str]):
59
+ disable_dark_theme (Union[Unset, bool]):
60
+ powered_by_logo (Union[File, None, Unset]):
61
+ hero_image (Union[File, None, Unset]):
62
+ marketplace_hero_image (Union[File, None, Unset]):
63
+ call_management_hero_image (Union[File, None, Unset]):
64
+ sidebar_logo (Union[File, None, Unset]):
65
+ sidebar_logo_dark (Union[File, None, Unset]):
66
+ sidebar_logo_mobile (Union[File, None, Unset]):
67
+ sidebar_style (Union[Unset, str]):
68
+ site_logo (Union[File, None, Unset]):
69
+ login_logo (Union[File, None, Unset]):
70
+ favicon (Union[File, None, Unset]):
71
+ offering_logo_placeholder (Union[File, None, Unset]):
72
+ waldur_support_enabled (Union[Unset, bool]):
73
+ waldur_support_active_backend_type (Union[Unset, str]):
74
+ waldur_support_display_request_type (Union[Unset, bool]):
75
+ atlassian_use_old_api (Union[Unset, bool]):
76
+ atlassian_use_teenage_api (Union[Unset, bool]):
77
+ atlassian_use_automatic_request_mapping (Union[Unset, bool]):
78
+ atlassian_map_waldur_users_to_servicedesk_agents (Union[Unset, bool]):
79
+ atlassian_strange_setting (Union[Unset, int]):
80
+ atlassian_api_url (Union[Unset, str]):
81
+ atlassian_username (Union[Unset, str]):
82
+ atlassian_password (Union[Unset, str]):
83
+ atlassian_email (Union[Unset, str]):
84
+ atlassian_token (Union[Unset, str]):
85
+ atlassian_verify_ssl (Union[Unset, bool]):
86
+ atlassian_project_id (Union[Unset, str]):
87
+ atlassian_shared_username (Union[Unset, bool]):
88
+ atlassian_custom_issue_field_mapping_enabled (Union[Unset, bool]):
89
+ atlassian_default_offering_issue_type (Union[Unset, str]):
90
+ atlassian_excluded_attachment_types (Union[Unset, str]):
91
+ atlassian_pull_priorities (Union[Unset, bool]):
92
+ atlassian_issue_types (Union[Unset, str]):
93
+ atlassian_description_template (Union[Unset, str]):
94
+ atlassian_summary_template (Union[Unset, str]):
95
+ atlassian_affected_resource_field (Union[Unset, str]):
96
+ atlassian_impact_field (Union[Unset, str]):
97
+ atlassian_organisation_field (Union[Unset, str]):
98
+ atlassian_resolution_sla_field (Union[Unset, str]):
99
+ atlassian_project_field (Union[Unset, str]):
100
+ atlassian_reporter_field (Union[Unset, str]):
101
+ atlassian_caller_field (Union[Unset, str]):
102
+ atlassian_sla_field (Union[Unset, str]):
103
+ atlassian_linked_issue_type (Union[Unset, str]):
104
+ atlassian_satisfaction_field (Union[Unset, str]):
105
+ atlassian_request_feedback_field (Union[Unset, str]):
106
+ atlassian_template_field (Union[Unset, str]):
107
+ zammad_api_url (Union[Unset, str]):
108
+ zammad_token (Union[Unset, str]):
109
+ zammad_group (Union[Unset, str]):
110
+ zammad_article_type (Union[Unset, str]):
111
+ zammad_comment_marker (Union[Unset, str]):
112
+ zammad_comment_prefix (Union[Unset, str]):
113
+ zammad_comment_cooldown_duration (Union[Unset, int]):
114
+ smax_api_url (Union[Unset, str]):
115
+ smax_tenant_id (Union[Unset, str]):
116
+ smax_login (Union[Unset, str]):
117
+ smax_password (Union[Unset, str]):
118
+ smax_organisation_field (Union[Unset, str]):
119
+ smax_project_field (Union[Unset, str]):
120
+ smax_affected_resource_field (Union[Unset, str]):
121
+ smax_times_to_pull (Union[Unset, int]):
122
+ smax_seconds_to_wait (Union[Unset, int]):
123
+ smax_creation_source_name (Union[Unset, str]):
124
+ smax_requests_offering (Union[Unset, str]):
125
+ smax_verify_ssl (Union[Unset, bool]):
126
+ enable_mock_service_account_backend (Union[Unset, bool]):
127
+ enable_mock_course_account_backend (Union[Unset, bool]):
128
+ proposal_review_duration (Union[Unset, int]):
129
+ user_table_columns (Union[Unset, str]):
130
+ auto_approve_user_tos (Union[Unset, bool]):
131
+ freeipa_enabled (Union[Unset, bool]):
132
+ freeipa_hostname (Union[Unset, str]):
133
+ freeipa_username (Union[Unset, str]):
134
+ freeipa_password (Union[Unset, str]):
135
+ freeipa_verify_ssl (Union[Unset, bool]):
136
+ freeipa_username_prefix (Union[Unset, str]):
137
+ freeipa_groupname_prefix (Union[Unset, str]):
138
+ freeipa_blacklisted_usernames (Union[Unset, list[str]]):
139
+ freeipa_group_synchronization_enabled (Union[Unset, bool]):
140
+ keycloak_icon (Union[File, None, Unset]):
141
+ countries (Union[Unset, list[str]]):
142
+ oidc_auth_url (Union[Unset, str]):
143
+ oidc_introspection_url (Union[Unset, str]):
144
+ oidc_client_id (Union[Unset, str]):
145
+ oidc_client_secret (Union[Unset, str]):
146
+ oidc_user_field (Union[Unset, str]):
147
+ oidc_cache_timeout (Union[Unset, int]):
148
+ oidc_block_creation_of_uninvited_users (Union[Unset, bool]):
149
+ deactivate_user_if_no_roles (Union[Unset, bool]):
150
+ maintenance_announcement_notify_before_minutes (Union[Unset, int]):
151
+ maintenance_announcement_notify_system (Union[Unset, list[str]]):
152
+ enforce_user_consent_for_offerings (Union[Unset, bool]):
153
+ """
154
+
155
+ site_name: Union[Unset, str] = UNSET
156
+ site_description: Union[Unset, str] = UNSET
157
+ homeport_url: Union[Unset, str] = UNSET
158
+ rancher_username_input_label: Union[Unset, str] = UNSET
159
+ site_address: Union[Unset, str] = UNSET
160
+ site_email: Union[Unset, str] = UNSET
161
+ site_phone: Union[Unset, str] = UNSET
162
+ currency_name: Union[Unset, str] = UNSET
163
+ thumbnail_size: Union[Unset, str] = UNSET
164
+ anonymous_user_can_view_offerings: Union[Unset, bool] = UNSET
165
+ anonymous_user_can_view_plans: Union[Unset, bool] = UNSET
166
+ notify_staff_about_approvals: Union[Unset, bool] = UNSET
167
+ notify_about_resource_change: Union[Unset, bool] = UNSET
168
+ disable_sending_notifications_about_resource_update: Union[Unset, bool] = UNSET
169
+ marketplace_landing_page: Union[Unset, str] = UNSET
170
+ enable_stale_resource_notifications: Union[Unset, bool] = UNSET
171
+ telemetry_url: Union[Unset, str] = UNSET
172
+ telemetry_version: Union[Unset, int] = UNSET
173
+ script_run_mode: Union[Unset, str] = UNSET
174
+ docker_client: Union[Unset, str] = UNSET
175
+ docker_run_options: Union[Unset, str] = UNSET
176
+ docker_script_dir: Union[Unset, str] = UNSET
177
+ docker_remove_container: Union[Unset, bool] = UNSET
178
+ docker_images: Union[Unset, str] = UNSET
179
+ docker_volume_name: Union[Unset, str] = UNSET
180
+ k8s_namespace: Union[Unset, str] = UNSET
181
+ k8s_config_path: Union[Unset, str] = UNSET
182
+ k8s_job_timeout: Union[Unset, int] = UNSET
183
+ enable_strict_check_accepting_invitation: Union[Unset, bool] = UNSET
184
+ invitation_disable_multiple_roles: Union[Unset, bool] = UNSET
185
+ default_idp: Union[Unset, str] = UNSET
186
+ docs_url: Union[Unset, str] = UNSET
187
+ short_page_title: Union[Unset, str] = UNSET
188
+ full_page_title: Union[Unset, str] = UNSET
189
+ brand_color: Union[Unset, str] = UNSET
190
+ hero_link_label: Union[Unset, str] = UNSET
191
+ hero_link_url: Union[Unset, str] = UNSET
192
+ support_portal_url: Union[Unset, str] = UNSET
193
+ common_footer_text: Union[Unset, str] = UNSET
194
+ common_footer_html: Union[Unset, str] = UNSET
195
+ language_choices: Union[Unset, str] = UNSET
196
+ disable_dark_theme: Union[Unset, bool] = UNSET
197
+ powered_by_logo: Union[File, None, Unset] = UNSET
198
+ hero_image: Union[File, None, Unset] = UNSET
199
+ marketplace_hero_image: Union[File, None, Unset] = UNSET
200
+ call_management_hero_image: Union[File, None, Unset] = UNSET
201
+ sidebar_logo: Union[File, None, Unset] = UNSET
202
+ sidebar_logo_dark: Union[File, None, Unset] = UNSET
203
+ sidebar_logo_mobile: Union[File, None, Unset] = UNSET
204
+ sidebar_style: Union[Unset, str] = UNSET
205
+ site_logo: Union[File, None, Unset] = UNSET
206
+ login_logo: Union[File, None, Unset] = UNSET
207
+ favicon: Union[File, None, Unset] = UNSET
208
+ offering_logo_placeholder: Union[File, None, Unset] = UNSET
209
+ waldur_support_enabled: Union[Unset, bool] = UNSET
210
+ waldur_support_active_backend_type: Union[Unset, str] = UNSET
211
+ waldur_support_display_request_type: Union[Unset, bool] = UNSET
212
+ atlassian_use_old_api: Union[Unset, bool] = UNSET
213
+ atlassian_use_teenage_api: Union[Unset, bool] = UNSET
214
+ atlassian_use_automatic_request_mapping: Union[Unset, bool] = UNSET
215
+ atlassian_map_waldur_users_to_servicedesk_agents: Union[Unset, bool] = UNSET
216
+ atlassian_strange_setting: Union[Unset, int] = UNSET
217
+ atlassian_api_url: Union[Unset, str] = UNSET
218
+ atlassian_username: Union[Unset, str] = UNSET
219
+ atlassian_password: Union[Unset, str] = UNSET
220
+ atlassian_email: Union[Unset, str] = UNSET
221
+ atlassian_token: Union[Unset, str] = UNSET
222
+ atlassian_verify_ssl: Union[Unset, bool] = UNSET
223
+ atlassian_project_id: Union[Unset, str] = UNSET
224
+ atlassian_shared_username: Union[Unset, bool] = UNSET
225
+ atlassian_custom_issue_field_mapping_enabled: Union[Unset, bool] = UNSET
226
+ atlassian_default_offering_issue_type: Union[Unset, str] = UNSET
227
+ atlassian_excluded_attachment_types: Union[Unset, str] = UNSET
228
+ atlassian_pull_priorities: Union[Unset, bool] = UNSET
229
+ atlassian_issue_types: Union[Unset, str] = UNSET
230
+ atlassian_description_template: Union[Unset, str] = UNSET
231
+ atlassian_summary_template: Union[Unset, str] = UNSET
232
+ atlassian_affected_resource_field: Union[Unset, str] = UNSET
233
+ atlassian_impact_field: Union[Unset, str] = UNSET
234
+ atlassian_organisation_field: Union[Unset, str] = UNSET
235
+ atlassian_resolution_sla_field: Union[Unset, str] = UNSET
236
+ atlassian_project_field: Union[Unset, str] = UNSET
237
+ atlassian_reporter_field: Union[Unset, str] = UNSET
238
+ atlassian_caller_field: Union[Unset, str] = UNSET
239
+ atlassian_sla_field: Union[Unset, str] = UNSET
240
+ atlassian_linked_issue_type: Union[Unset, str] = UNSET
241
+ atlassian_satisfaction_field: Union[Unset, str] = UNSET
242
+ atlassian_request_feedback_field: Union[Unset, str] = UNSET
243
+ atlassian_template_field: Union[Unset, str] = UNSET
244
+ zammad_api_url: Union[Unset, str] = UNSET
245
+ zammad_token: Union[Unset, str] = UNSET
246
+ zammad_group: Union[Unset, str] = UNSET
247
+ zammad_article_type: Union[Unset, str] = UNSET
248
+ zammad_comment_marker: Union[Unset, str] = UNSET
249
+ zammad_comment_prefix: Union[Unset, str] = UNSET
250
+ zammad_comment_cooldown_duration: Union[Unset, int] = UNSET
251
+ smax_api_url: Union[Unset, str] = UNSET
252
+ smax_tenant_id: Union[Unset, str] = UNSET
253
+ smax_login: Union[Unset, str] = UNSET
254
+ smax_password: Union[Unset, str] = UNSET
255
+ smax_organisation_field: Union[Unset, str] = UNSET
256
+ smax_project_field: Union[Unset, str] = UNSET
257
+ smax_affected_resource_field: Union[Unset, str] = UNSET
258
+ smax_times_to_pull: Union[Unset, int] = UNSET
259
+ smax_seconds_to_wait: Union[Unset, int] = UNSET
260
+ smax_creation_source_name: Union[Unset, str] = UNSET
261
+ smax_requests_offering: Union[Unset, str] = UNSET
262
+ smax_verify_ssl: Union[Unset, bool] = UNSET
263
+ enable_mock_service_account_backend: Union[Unset, bool] = UNSET
264
+ enable_mock_course_account_backend: Union[Unset, bool] = UNSET
265
+ proposal_review_duration: Union[Unset, int] = UNSET
266
+ user_table_columns: Union[Unset, str] = UNSET
267
+ auto_approve_user_tos: Union[Unset, bool] = UNSET
268
+ freeipa_enabled: Union[Unset, bool] = UNSET
269
+ freeipa_hostname: Union[Unset, str] = UNSET
270
+ freeipa_username: Union[Unset, str] = UNSET
271
+ freeipa_password: Union[Unset, str] = UNSET
272
+ freeipa_verify_ssl: Union[Unset, bool] = UNSET
273
+ freeipa_username_prefix: Union[Unset, str] = UNSET
274
+ freeipa_groupname_prefix: Union[Unset, str] = UNSET
275
+ freeipa_blacklisted_usernames: Union[Unset, list[str]] = UNSET
276
+ freeipa_group_synchronization_enabled: Union[Unset, bool] = UNSET
277
+ keycloak_icon: Union[File, None, Unset] = UNSET
278
+ countries: Union[Unset, list[str]] = UNSET
279
+ oidc_auth_url: Union[Unset, str] = UNSET
280
+ oidc_introspection_url: Union[Unset, str] = UNSET
281
+ oidc_client_id: Union[Unset, str] = UNSET
282
+ oidc_client_secret: Union[Unset, str] = UNSET
283
+ oidc_user_field: Union[Unset, str] = UNSET
284
+ oidc_cache_timeout: Union[Unset, int] = UNSET
285
+ oidc_block_creation_of_uninvited_users: Union[Unset, bool] = UNSET
286
+ deactivate_user_if_no_roles: Union[Unset, bool] = UNSET
287
+ maintenance_announcement_notify_before_minutes: Union[Unset, int] = UNSET
288
+ maintenance_announcement_notify_system: Union[Unset, list[str]] = UNSET
289
+ enforce_user_consent_for_offerings: Union[Unset, bool] = UNSET
290
+ additional_properties: dict[str, Any] = _attrs_field(init=False, factory=dict)
291
+
292
+ def to_dict(self) -> dict[str, Any]:
293
+ site_name = self.site_name
294
+
295
+ site_description = self.site_description
296
+
297
+ homeport_url = self.homeport_url
298
+
299
+ rancher_username_input_label = self.rancher_username_input_label
300
+
301
+ site_address = self.site_address
302
+
303
+ site_email = self.site_email
304
+
305
+ site_phone = self.site_phone
306
+
307
+ currency_name = self.currency_name
308
+
309
+ thumbnail_size = self.thumbnail_size
310
+
311
+ anonymous_user_can_view_offerings = self.anonymous_user_can_view_offerings
312
+
313
+ anonymous_user_can_view_plans = self.anonymous_user_can_view_plans
314
+
315
+ notify_staff_about_approvals = self.notify_staff_about_approvals
316
+
317
+ notify_about_resource_change = self.notify_about_resource_change
318
+
319
+ disable_sending_notifications_about_resource_update = self.disable_sending_notifications_about_resource_update
320
+
321
+ marketplace_landing_page = self.marketplace_landing_page
322
+
323
+ enable_stale_resource_notifications = self.enable_stale_resource_notifications
324
+
325
+ telemetry_url = self.telemetry_url
326
+
327
+ telemetry_version = self.telemetry_version
328
+
329
+ script_run_mode = self.script_run_mode
330
+
331
+ docker_client = self.docker_client
332
+
333
+ docker_run_options = self.docker_run_options
334
+
335
+ docker_script_dir = self.docker_script_dir
336
+
337
+ docker_remove_container = self.docker_remove_container
338
+
339
+ docker_images = self.docker_images
340
+
341
+ docker_volume_name = self.docker_volume_name
342
+
343
+ k8s_namespace = self.k8s_namespace
344
+
345
+ k8s_config_path = self.k8s_config_path
346
+
347
+ k8s_job_timeout = self.k8s_job_timeout
348
+
349
+ enable_strict_check_accepting_invitation = self.enable_strict_check_accepting_invitation
350
+
351
+ invitation_disable_multiple_roles = self.invitation_disable_multiple_roles
352
+
353
+ default_idp = self.default_idp
354
+
355
+ docs_url = self.docs_url
356
+
357
+ short_page_title = self.short_page_title
358
+
359
+ full_page_title = self.full_page_title
360
+
361
+ brand_color = self.brand_color
362
+
363
+ hero_link_label = self.hero_link_label
364
+
365
+ hero_link_url = self.hero_link_url
366
+
367
+ support_portal_url = self.support_portal_url
368
+
369
+ common_footer_text = self.common_footer_text
370
+
371
+ common_footer_html = self.common_footer_html
372
+
373
+ language_choices = self.language_choices
374
+
375
+ disable_dark_theme = self.disable_dark_theme
376
+
377
+ powered_by_logo: Union[None, Unset, types.FileTypes]
378
+ if isinstance(self.powered_by_logo, Unset):
379
+ powered_by_logo = UNSET
380
+ elif isinstance(self.powered_by_logo, File):
381
+ powered_by_logo = self.powered_by_logo.to_tuple()
382
+
383
+ else:
384
+ powered_by_logo = self.powered_by_logo
385
+
386
+ hero_image: Union[None, Unset, types.FileTypes]
387
+ if isinstance(self.hero_image, Unset):
388
+ hero_image = UNSET
389
+ elif isinstance(self.hero_image, File):
390
+ hero_image = self.hero_image.to_tuple()
391
+
392
+ else:
393
+ hero_image = self.hero_image
394
+
395
+ marketplace_hero_image: Union[None, Unset, types.FileTypes]
396
+ if isinstance(self.marketplace_hero_image, Unset):
397
+ marketplace_hero_image = UNSET
398
+ elif isinstance(self.marketplace_hero_image, File):
399
+ marketplace_hero_image = self.marketplace_hero_image.to_tuple()
400
+
401
+ else:
402
+ marketplace_hero_image = self.marketplace_hero_image
403
+
404
+ call_management_hero_image: Union[None, Unset, types.FileTypes]
405
+ if isinstance(self.call_management_hero_image, Unset):
406
+ call_management_hero_image = UNSET
407
+ elif isinstance(self.call_management_hero_image, File):
408
+ call_management_hero_image = self.call_management_hero_image.to_tuple()
409
+
410
+ else:
411
+ call_management_hero_image = self.call_management_hero_image
412
+
413
+ sidebar_logo: Union[None, Unset, types.FileTypes]
414
+ if isinstance(self.sidebar_logo, Unset):
415
+ sidebar_logo = UNSET
416
+ elif isinstance(self.sidebar_logo, File):
417
+ sidebar_logo = self.sidebar_logo.to_tuple()
418
+
419
+ else:
420
+ sidebar_logo = self.sidebar_logo
421
+
422
+ sidebar_logo_dark: Union[None, Unset, types.FileTypes]
423
+ if isinstance(self.sidebar_logo_dark, Unset):
424
+ sidebar_logo_dark = UNSET
425
+ elif isinstance(self.sidebar_logo_dark, File):
426
+ sidebar_logo_dark = self.sidebar_logo_dark.to_tuple()
427
+
428
+ else:
429
+ sidebar_logo_dark = self.sidebar_logo_dark
430
+
431
+ sidebar_logo_mobile: Union[None, Unset, types.FileTypes]
432
+ if isinstance(self.sidebar_logo_mobile, Unset):
433
+ sidebar_logo_mobile = UNSET
434
+ elif isinstance(self.sidebar_logo_mobile, File):
435
+ sidebar_logo_mobile = self.sidebar_logo_mobile.to_tuple()
436
+
437
+ else:
438
+ sidebar_logo_mobile = self.sidebar_logo_mobile
439
+
440
+ sidebar_style = self.sidebar_style
441
+
442
+ site_logo: Union[None, Unset, types.FileTypes]
443
+ if isinstance(self.site_logo, Unset):
444
+ site_logo = UNSET
445
+ elif isinstance(self.site_logo, File):
446
+ site_logo = self.site_logo.to_tuple()
447
+
448
+ else:
449
+ site_logo = self.site_logo
450
+
451
+ login_logo: Union[None, Unset, types.FileTypes]
452
+ if isinstance(self.login_logo, Unset):
453
+ login_logo = UNSET
454
+ elif isinstance(self.login_logo, File):
455
+ login_logo = self.login_logo.to_tuple()
456
+
457
+ else:
458
+ login_logo = self.login_logo
459
+
460
+ favicon: Union[None, Unset, types.FileTypes]
461
+ if isinstance(self.favicon, Unset):
462
+ favicon = UNSET
463
+ elif isinstance(self.favicon, File):
464
+ favicon = self.favicon.to_tuple()
465
+
466
+ else:
467
+ favicon = self.favicon
468
+
469
+ offering_logo_placeholder: Union[None, Unset, types.FileTypes]
470
+ if isinstance(self.offering_logo_placeholder, Unset):
471
+ offering_logo_placeholder = UNSET
472
+ elif isinstance(self.offering_logo_placeholder, File):
473
+ offering_logo_placeholder = self.offering_logo_placeholder.to_tuple()
474
+
475
+ else:
476
+ offering_logo_placeholder = self.offering_logo_placeholder
477
+
478
+ waldur_support_enabled = self.waldur_support_enabled
479
+
480
+ waldur_support_active_backend_type = self.waldur_support_active_backend_type
481
+
482
+ waldur_support_display_request_type = self.waldur_support_display_request_type
483
+
484
+ atlassian_use_old_api = self.atlassian_use_old_api
485
+
486
+ atlassian_use_teenage_api = self.atlassian_use_teenage_api
487
+
488
+ atlassian_use_automatic_request_mapping = self.atlassian_use_automatic_request_mapping
489
+
490
+ atlassian_map_waldur_users_to_servicedesk_agents = self.atlassian_map_waldur_users_to_servicedesk_agents
491
+
492
+ atlassian_strange_setting = self.atlassian_strange_setting
493
+
494
+ atlassian_api_url = self.atlassian_api_url
495
+
496
+ atlassian_username = self.atlassian_username
497
+
498
+ atlassian_password = self.atlassian_password
499
+
500
+ atlassian_email = self.atlassian_email
501
+
502
+ atlassian_token = self.atlassian_token
503
+
504
+ atlassian_verify_ssl = self.atlassian_verify_ssl
505
+
506
+ atlassian_project_id = self.atlassian_project_id
507
+
508
+ atlassian_shared_username = self.atlassian_shared_username
509
+
510
+ atlassian_custom_issue_field_mapping_enabled = self.atlassian_custom_issue_field_mapping_enabled
511
+
512
+ atlassian_default_offering_issue_type = self.atlassian_default_offering_issue_type
513
+
514
+ atlassian_excluded_attachment_types = self.atlassian_excluded_attachment_types
515
+
516
+ atlassian_pull_priorities = self.atlassian_pull_priorities
517
+
518
+ atlassian_issue_types = self.atlassian_issue_types
519
+
520
+ atlassian_description_template = self.atlassian_description_template
521
+
522
+ atlassian_summary_template = self.atlassian_summary_template
523
+
524
+ atlassian_affected_resource_field = self.atlassian_affected_resource_field
525
+
526
+ atlassian_impact_field = self.atlassian_impact_field
527
+
528
+ atlassian_organisation_field = self.atlassian_organisation_field
529
+
530
+ atlassian_resolution_sla_field = self.atlassian_resolution_sla_field
531
+
532
+ atlassian_project_field = self.atlassian_project_field
533
+
534
+ atlassian_reporter_field = self.atlassian_reporter_field
535
+
536
+ atlassian_caller_field = self.atlassian_caller_field
537
+
538
+ atlassian_sla_field = self.atlassian_sla_field
539
+
540
+ atlassian_linked_issue_type = self.atlassian_linked_issue_type
541
+
542
+ atlassian_satisfaction_field = self.atlassian_satisfaction_field
543
+
544
+ atlassian_request_feedback_field = self.atlassian_request_feedback_field
545
+
546
+ atlassian_template_field = self.atlassian_template_field
547
+
548
+ zammad_api_url = self.zammad_api_url
549
+
550
+ zammad_token = self.zammad_token
551
+
552
+ zammad_group = self.zammad_group
553
+
554
+ zammad_article_type = self.zammad_article_type
555
+
556
+ zammad_comment_marker = self.zammad_comment_marker
557
+
558
+ zammad_comment_prefix = self.zammad_comment_prefix
559
+
560
+ zammad_comment_cooldown_duration = self.zammad_comment_cooldown_duration
561
+
562
+ smax_api_url = self.smax_api_url
563
+
564
+ smax_tenant_id = self.smax_tenant_id
565
+
566
+ smax_login = self.smax_login
567
+
568
+ smax_password = self.smax_password
569
+
570
+ smax_organisation_field = self.smax_organisation_field
571
+
572
+ smax_project_field = self.smax_project_field
573
+
574
+ smax_affected_resource_field = self.smax_affected_resource_field
575
+
576
+ smax_times_to_pull = self.smax_times_to_pull
577
+
578
+ smax_seconds_to_wait = self.smax_seconds_to_wait
579
+
580
+ smax_creation_source_name = self.smax_creation_source_name
581
+
582
+ smax_requests_offering = self.smax_requests_offering
583
+
584
+ smax_verify_ssl = self.smax_verify_ssl
585
+
586
+ enable_mock_service_account_backend = self.enable_mock_service_account_backend
587
+
588
+ enable_mock_course_account_backend = self.enable_mock_course_account_backend
589
+
590
+ proposal_review_duration = self.proposal_review_duration
591
+
592
+ user_table_columns = self.user_table_columns
593
+
594
+ auto_approve_user_tos = self.auto_approve_user_tos
595
+
596
+ freeipa_enabled = self.freeipa_enabled
597
+
598
+ freeipa_hostname = self.freeipa_hostname
599
+
600
+ freeipa_username = self.freeipa_username
601
+
602
+ freeipa_password = self.freeipa_password
603
+
604
+ freeipa_verify_ssl = self.freeipa_verify_ssl
605
+
606
+ freeipa_username_prefix = self.freeipa_username_prefix
607
+
608
+ freeipa_groupname_prefix = self.freeipa_groupname_prefix
609
+
610
+ freeipa_blacklisted_usernames: Union[Unset, list[str]] = UNSET
611
+ if not isinstance(self.freeipa_blacklisted_usernames, Unset):
612
+ freeipa_blacklisted_usernames = self.freeipa_blacklisted_usernames
613
+
614
+ freeipa_group_synchronization_enabled = self.freeipa_group_synchronization_enabled
615
+
616
+ keycloak_icon: Union[None, Unset, types.FileTypes]
617
+ if isinstance(self.keycloak_icon, Unset):
618
+ keycloak_icon = UNSET
619
+ elif isinstance(self.keycloak_icon, File):
620
+ keycloak_icon = self.keycloak_icon.to_tuple()
621
+
622
+ else:
623
+ keycloak_icon = self.keycloak_icon
624
+
625
+ countries: Union[Unset, list[str]] = UNSET
626
+ if not isinstance(self.countries, Unset):
627
+ countries = self.countries
628
+
629
+ oidc_auth_url = self.oidc_auth_url
630
+
631
+ oidc_introspection_url = self.oidc_introspection_url
632
+
633
+ oidc_client_id = self.oidc_client_id
634
+
635
+ oidc_client_secret = self.oidc_client_secret
636
+
637
+ oidc_user_field = self.oidc_user_field
638
+
639
+ oidc_cache_timeout = self.oidc_cache_timeout
640
+
641
+ oidc_block_creation_of_uninvited_users = self.oidc_block_creation_of_uninvited_users
642
+
643
+ deactivate_user_if_no_roles = self.deactivate_user_if_no_roles
644
+
645
+ maintenance_announcement_notify_before_minutes = self.maintenance_announcement_notify_before_minutes
646
+
647
+ maintenance_announcement_notify_system: Union[Unset, list[str]] = UNSET
648
+ if not isinstance(self.maintenance_announcement_notify_system, Unset):
649
+ maintenance_announcement_notify_system = self.maintenance_announcement_notify_system
650
+
651
+ enforce_user_consent_for_offerings = self.enforce_user_consent_for_offerings
652
+
653
+ field_dict: dict[str, Any] = {}
654
+ field_dict.update(self.additional_properties)
655
+ field_dict.update({})
656
+ if site_name is not UNSET:
657
+ field_dict["SITE_NAME"] = site_name
658
+ if site_description is not UNSET:
659
+ field_dict["SITE_DESCRIPTION"] = site_description
660
+ if homeport_url is not UNSET:
661
+ field_dict["HOMEPORT_URL"] = homeport_url
662
+ if rancher_username_input_label is not UNSET:
663
+ field_dict["RANCHER_USERNAME_INPUT_LABEL"] = rancher_username_input_label
664
+ if site_address is not UNSET:
665
+ field_dict["SITE_ADDRESS"] = site_address
666
+ if site_email is not UNSET:
667
+ field_dict["SITE_EMAIL"] = site_email
668
+ if site_phone is not UNSET:
669
+ field_dict["SITE_PHONE"] = site_phone
670
+ if currency_name is not UNSET:
671
+ field_dict["CURRENCY_NAME"] = currency_name
672
+ if thumbnail_size is not UNSET:
673
+ field_dict["THUMBNAIL_SIZE"] = thumbnail_size
674
+ if anonymous_user_can_view_offerings is not UNSET:
675
+ field_dict["ANONYMOUS_USER_CAN_VIEW_OFFERINGS"] = anonymous_user_can_view_offerings
676
+ if anonymous_user_can_view_plans is not UNSET:
677
+ field_dict["ANONYMOUS_USER_CAN_VIEW_PLANS"] = anonymous_user_can_view_plans
678
+ if notify_staff_about_approvals is not UNSET:
679
+ field_dict["NOTIFY_STAFF_ABOUT_APPROVALS"] = notify_staff_about_approvals
680
+ if notify_about_resource_change is not UNSET:
681
+ field_dict["NOTIFY_ABOUT_RESOURCE_CHANGE"] = notify_about_resource_change
682
+ if disable_sending_notifications_about_resource_update is not UNSET:
683
+ field_dict["DISABLE_SENDING_NOTIFICATIONS_ABOUT_RESOURCE_UPDATE"] = (
684
+ disable_sending_notifications_about_resource_update
685
+ )
686
+ if marketplace_landing_page is not UNSET:
687
+ field_dict["MARKETPLACE_LANDING_PAGE"] = marketplace_landing_page
688
+ if enable_stale_resource_notifications is not UNSET:
689
+ field_dict["ENABLE_STALE_RESOURCE_NOTIFICATIONS"] = enable_stale_resource_notifications
690
+ if telemetry_url is not UNSET:
691
+ field_dict["TELEMETRY_URL"] = telemetry_url
692
+ if telemetry_version is not UNSET:
693
+ field_dict["TELEMETRY_VERSION"] = telemetry_version
694
+ if script_run_mode is not UNSET:
695
+ field_dict["SCRIPT_RUN_MODE"] = script_run_mode
696
+ if docker_client is not UNSET:
697
+ field_dict["DOCKER_CLIENT"] = docker_client
698
+ if docker_run_options is not UNSET:
699
+ field_dict["DOCKER_RUN_OPTIONS"] = docker_run_options
700
+ if docker_script_dir is not UNSET:
701
+ field_dict["DOCKER_SCRIPT_DIR"] = docker_script_dir
702
+ if docker_remove_container is not UNSET:
703
+ field_dict["DOCKER_REMOVE_CONTAINER"] = docker_remove_container
704
+ if docker_images is not UNSET:
705
+ field_dict["DOCKER_IMAGES"] = docker_images
706
+ if docker_volume_name is not UNSET:
707
+ field_dict["DOCKER_VOLUME_NAME"] = docker_volume_name
708
+ if k8s_namespace is not UNSET:
709
+ field_dict["K8S_NAMESPACE"] = k8s_namespace
710
+ if k8s_config_path is not UNSET:
711
+ field_dict["K8S_CONFIG_PATH"] = k8s_config_path
712
+ if k8s_job_timeout is not UNSET:
713
+ field_dict["K8S_JOB_TIMEOUT"] = k8s_job_timeout
714
+ if enable_strict_check_accepting_invitation is not UNSET:
715
+ field_dict["ENABLE_STRICT_CHECK_ACCEPTING_INVITATION"] = enable_strict_check_accepting_invitation
716
+ if invitation_disable_multiple_roles is not UNSET:
717
+ field_dict["INVITATION_DISABLE_MULTIPLE_ROLES"] = invitation_disable_multiple_roles
718
+ if default_idp is not UNSET:
719
+ field_dict["DEFAULT_IDP"] = default_idp
720
+ if docs_url is not UNSET:
721
+ field_dict["DOCS_URL"] = docs_url
722
+ if short_page_title is not UNSET:
723
+ field_dict["SHORT_PAGE_TITLE"] = short_page_title
724
+ if full_page_title is not UNSET:
725
+ field_dict["FULL_PAGE_TITLE"] = full_page_title
726
+ if brand_color is not UNSET:
727
+ field_dict["BRAND_COLOR"] = brand_color
728
+ if hero_link_label is not UNSET:
729
+ field_dict["HERO_LINK_LABEL"] = hero_link_label
730
+ if hero_link_url is not UNSET:
731
+ field_dict["HERO_LINK_URL"] = hero_link_url
732
+ if support_portal_url is not UNSET:
733
+ field_dict["SUPPORT_PORTAL_URL"] = support_portal_url
734
+ if common_footer_text is not UNSET:
735
+ field_dict["COMMON_FOOTER_TEXT"] = common_footer_text
736
+ if common_footer_html is not UNSET:
737
+ field_dict["COMMON_FOOTER_HTML"] = common_footer_html
738
+ if language_choices is not UNSET:
739
+ field_dict["LANGUAGE_CHOICES"] = language_choices
740
+ if disable_dark_theme is not UNSET:
741
+ field_dict["DISABLE_DARK_THEME"] = disable_dark_theme
742
+ if powered_by_logo is not UNSET:
743
+ field_dict["POWERED_BY_LOGO"] = powered_by_logo
744
+ if hero_image is not UNSET:
745
+ field_dict["HERO_IMAGE"] = hero_image
746
+ if marketplace_hero_image is not UNSET:
747
+ field_dict["MARKETPLACE_HERO_IMAGE"] = marketplace_hero_image
748
+ if call_management_hero_image is not UNSET:
749
+ field_dict["CALL_MANAGEMENT_HERO_IMAGE"] = call_management_hero_image
750
+ if sidebar_logo is not UNSET:
751
+ field_dict["SIDEBAR_LOGO"] = sidebar_logo
752
+ if sidebar_logo_dark is not UNSET:
753
+ field_dict["SIDEBAR_LOGO_DARK"] = sidebar_logo_dark
754
+ if sidebar_logo_mobile is not UNSET:
755
+ field_dict["SIDEBAR_LOGO_MOBILE"] = sidebar_logo_mobile
756
+ if sidebar_style is not UNSET:
757
+ field_dict["SIDEBAR_STYLE"] = sidebar_style
758
+ if site_logo is not UNSET:
759
+ field_dict["SITE_LOGO"] = site_logo
760
+ if login_logo is not UNSET:
761
+ field_dict["LOGIN_LOGO"] = login_logo
762
+ if favicon is not UNSET:
763
+ field_dict["FAVICON"] = favicon
764
+ if offering_logo_placeholder is not UNSET:
765
+ field_dict["OFFERING_LOGO_PLACEHOLDER"] = offering_logo_placeholder
766
+ if waldur_support_enabled is not UNSET:
767
+ field_dict["WALDUR_SUPPORT_ENABLED"] = waldur_support_enabled
768
+ if waldur_support_active_backend_type is not UNSET:
769
+ field_dict["WALDUR_SUPPORT_ACTIVE_BACKEND_TYPE"] = waldur_support_active_backend_type
770
+ if waldur_support_display_request_type is not UNSET:
771
+ field_dict["WALDUR_SUPPORT_DISPLAY_REQUEST_TYPE"] = waldur_support_display_request_type
772
+ if atlassian_use_old_api is not UNSET:
773
+ field_dict["ATLASSIAN_USE_OLD_API"] = atlassian_use_old_api
774
+ if atlassian_use_teenage_api is not UNSET:
775
+ field_dict["ATLASSIAN_USE_TEENAGE_API"] = atlassian_use_teenage_api
776
+ if atlassian_use_automatic_request_mapping is not UNSET:
777
+ field_dict["ATLASSIAN_USE_AUTOMATIC_REQUEST_MAPPING"] = atlassian_use_automatic_request_mapping
778
+ if atlassian_map_waldur_users_to_servicedesk_agents is not UNSET:
779
+ field_dict["ATLASSIAN_MAP_WALDUR_USERS_TO_SERVICEDESK_AGENTS"] = (
780
+ atlassian_map_waldur_users_to_servicedesk_agents
781
+ )
782
+ if atlassian_strange_setting is not UNSET:
783
+ field_dict["ATLASSIAN_STRANGE_SETTING"] = atlassian_strange_setting
784
+ if atlassian_api_url is not UNSET:
785
+ field_dict["ATLASSIAN_API_URL"] = atlassian_api_url
786
+ if atlassian_username is not UNSET:
787
+ field_dict["ATLASSIAN_USERNAME"] = atlassian_username
788
+ if atlassian_password is not UNSET:
789
+ field_dict["ATLASSIAN_PASSWORD"] = atlassian_password
790
+ if atlassian_email is not UNSET:
791
+ field_dict["ATLASSIAN_EMAIL"] = atlassian_email
792
+ if atlassian_token is not UNSET:
793
+ field_dict["ATLASSIAN_TOKEN"] = atlassian_token
794
+ if atlassian_verify_ssl is not UNSET:
795
+ field_dict["ATLASSIAN_VERIFY_SSL"] = atlassian_verify_ssl
796
+ if atlassian_project_id is not UNSET:
797
+ field_dict["ATLASSIAN_PROJECT_ID"] = atlassian_project_id
798
+ if atlassian_shared_username is not UNSET:
799
+ field_dict["ATLASSIAN_SHARED_USERNAME"] = atlassian_shared_username
800
+ if atlassian_custom_issue_field_mapping_enabled is not UNSET:
801
+ field_dict["ATLASSIAN_CUSTOM_ISSUE_FIELD_MAPPING_ENABLED"] = atlassian_custom_issue_field_mapping_enabled
802
+ if atlassian_default_offering_issue_type is not UNSET:
803
+ field_dict["ATLASSIAN_DEFAULT_OFFERING_ISSUE_TYPE"] = atlassian_default_offering_issue_type
804
+ if atlassian_excluded_attachment_types is not UNSET:
805
+ field_dict["ATLASSIAN_EXCLUDED_ATTACHMENT_TYPES"] = atlassian_excluded_attachment_types
806
+ if atlassian_pull_priorities is not UNSET:
807
+ field_dict["ATLASSIAN_PULL_PRIORITIES"] = atlassian_pull_priorities
808
+ if atlassian_issue_types is not UNSET:
809
+ field_dict["ATLASSIAN_ISSUE_TYPES"] = atlassian_issue_types
810
+ if atlassian_description_template is not UNSET:
811
+ field_dict["ATLASSIAN_DESCRIPTION_TEMPLATE"] = atlassian_description_template
812
+ if atlassian_summary_template is not UNSET:
813
+ field_dict["ATLASSIAN_SUMMARY_TEMPLATE"] = atlassian_summary_template
814
+ if atlassian_affected_resource_field is not UNSET:
815
+ field_dict["ATLASSIAN_AFFECTED_RESOURCE_FIELD"] = atlassian_affected_resource_field
816
+ if atlassian_impact_field is not UNSET:
817
+ field_dict["ATLASSIAN_IMPACT_FIELD"] = atlassian_impact_field
818
+ if atlassian_organisation_field is not UNSET:
819
+ field_dict["ATLASSIAN_ORGANISATION_FIELD"] = atlassian_organisation_field
820
+ if atlassian_resolution_sla_field is not UNSET:
821
+ field_dict["ATLASSIAN_RESOLUTION_SLA_FIELD"] = atlassian_resolution_sla_field
822
+ if atlassian_project_field is not UNSET:
823
+ field_dict["ATLASSIAN_PROJECT_FIELD"] = atlassian_project_field
824
+ if atlassian_reporter_field is not UNSET:
825
+ field_dict["ATLASSIAN_REPORTER_FIELD"] = atlassian_reporter_field
826
+ if atlassian_caller_field is not UNSET:
827
+ field_dict["ATLASSIAN_CALLER_FIELD"] = atlassian_caller_field
828
+ if atlassian_sla_field is not UNSET:
829
+ field_dict["ATLASSIAN_SLA_FIELD"] = atlassian_sla_field
830
+ if atlassian_linked_issue_type is not UNSET:
831
+ field_dict["ATLASSIAN_LINKED_ISSUE_TYPE"] = atlassian_linked_issue_type
832
+ if atlassian_satisfaction_field is not UNSET:
833
+ field_dict["ATLASSIAN_SATISFACTION_FIELD"] = atlassian_satisfaction_field
834
+ if atlassian_request_feedback_field is not UNSET:
835
+ field_dict["ATLASSIAN_REQUEST_FEEDBACK_FIELD"] = atlassian_request_feedback_field
836
+ if atlassian_template_field is not UNSET:
837
+ field_dict["ATLASSIAN_TEMPLATE_FIELD"] = atlassian_template_field
838
+ if zammad_api_url is not UNSET:
839
+ field_dict["ZAMMAD_API_URL"] = zammad_api_url
840
+ if zammad_token is not UNSET:
841
+ field_dict["ZAMMAD_TOKEN"] = zammad_token
842
+ if zammad_group is not UNSET:
843
+ field_dict["ZAMMAD_GROUP"] = zammad_group
844
+ if zammad_article_type is not UNSET:
845
+ field_dict["ZAMMAD_ARTICLE_TYPE"] = zammad_article_type
846
+ if zammad_comment_marker is not UNSET:
847
+ field_dict["ZAMMAD_COMMENT_MARKER"] = zammad_comment_marker
848
+ if zammad_comment_prefix is not UNSET:
849
+ field_dict["ZAMMAD_COMMENT_PREFIX"] = zammad_comment_prefix
850
+ if zammad_comment_cooldown_duration is not UNSET:
851
+ field_dict["ZAMMAD_COMMENT_COOLDOWN_DURATION"] = zammad_comment_cooldown_duration
852
+ if smax_api_url is not UNSET:
853
+ field_dict["SMAX_API_URL"] = smax_api_url
854
+ if smax_tenant_id is not UNSET:
855
+ field_dict["SMAX_TENANT_ID"] = smax_tenant_id
856
+ if smax_login is not UNSET:
857
+ field_dict["SMAX_LOGIN"] = smax_login
858
+ if smax_password is not UNSET:
859
+ field_dict["SMAX_PASSWORD"] = smax_password
860
+ if smax_organisation_field is not UNSET:
861
+ field_dict["SMAX_ORGANISATION_FIELD"] = smax_organisation_field
862
+ if smax_project_field is not UNSET:
863
+ field_dict["SMAX_PROJECT_FIELD"] = smax_project_field
864
+ if smax_affected_resource_field is not UNSET:
865
+ field_dict["SMAX_AFFECTED_RESOURCE_FIELD"] = smax_affected_resource_field
866
+ if smax_times_to_pull is not UNSET:
867
+ field_dict["SMAX_TIMES_TO_PULL"] = smax_times_to_pull
868
+ if smax_seconds_to_wait is not UNSET:
869
+ field_dict["SMAX_SECONDS_TO_WAIT"] = smax_seconds_to_wait
870
+ if smax_creation_source_name is not UNSET:
871
+ field_dict["SMAX_CREATION_SOURCE_NAME"] = smax_creation_source_name
872
+ if smax_requests_offering is not UNSET:
873
+ field_dict["SMAX_REQUESTS_OFFERING"] = smax_requests_offering
874
+ if smax_verify_ssl is not UNSET:
875
+ field_dict["SMAX_VERIFY_SSL"] = smax_verify_ssl
876
+ if enable_mock_service_account_backend is not UNSET:
877
+ field_dict["ENABLE_MOCK_SERVICE_ACCOUNT_BACKEND"] = enable_mock_service_account_backend
878
+ if enable_mock_course_account_backend is not UNSET:
879
+ field_dict["ENABLE_MOCK_COURSE_ACCOUNT_BACKEND"] = enable_mock_course_account_backend
880
+ if proposal_review_duration is not UNSET:
881
+ field_dict["PROPOSAL_REVIEW_DURATION"] = proposal_review_duration
882
+ if user_table_columns is not UNSET:
883
+ field_dict["USER_TABLE_COLUMNS"] = user_table_columns
884
+ if auto_approve_user_tos is not UNSET:
885
+ field_dict["AUTO_APPROVE_USER_TOS"] = auto_approve_user_tos
886
+ if freeipa_enabled is not UNSET:
887
+ field_dict["FREEIPA_ENABLED"] = freeipa_enabled
888
+ if freeipa_hostname is not UNSET:
889
+ field_dict["FREEIPA_HOSTNAME"] = freeipa_hostname
890
+ if freeipa_username is not UNSET:
891
+ field_dict["FREEIPA_USERNAME"] = freeipa_username
892
+ if freeipa_password is not UNSET:
893
+ field_dict["FREEIPA_PASSWORD"] = freeipa_password
894
+ if freeipa_verify_ssl is not UNSET:
895
+ field_dict["FREEIPA_VERIFY_SSL"] = freeipa_verify_ssl
896
+ if freeipa_username_prefix is not UNSET:
897
+ field_dict["FREEIPA_USERNAME_PREFIX"] = freeipa_username_prefix
898
+ if freeipa_groupname_prefix is not UNSET:
899
+ field_dict["FREEIPA_GROUPNAME_PREFIX"] = freeipa_groupname_prefix
900
+ if freeipa_blacklisted_usernames is not UNSET:
901
+ field_dict["FREEIPA_BLACKLISTED_USERNAMES"] = freeipa_blacklisted_usernames
902
+ if freeipa_group_synchronization_enabled is not UNSET:
903
+ field_dict["FREEIPA_GROUP_SYNCHRONIZATION_ENABLED"] = freeipa_group_synchronization_enabled
904
+ if keycloak_icon is not UNSET:
905
+ field_dict["KEYCLOAK_ICON"] = keycloak_icon
906
+ if countries is not UNSET:
907
+ field_dict["COUNTRIES"] = countries
908
+ if oidc_auth_url is not UNSET:
909
+ field_dict["OIDC_AUTH_URL"] = oidc_auth_url
910
+ if oidc_introspection_url is not UNSET:
911
+ field_dict["OIDC_INTROSPECTION_URL"] = oidc_introspection_url
912
+ if oidc_client_id is not UNSET:
913
+ field_dict["OIDC_CLIENT_ID"] = oidc_client_id
914
+ if oidc_client_secret is not UNSET:
915
+ field_dict["OIDC_CLIENT_SECRET"] = oidc_client_secret
916
+ if oidc_user_field is not UNSET:
917
+ field_dict["OIDC_USER_FIELD"] = oidc_user_field
918
+ if oidc_cache_timeout is not UNSET:
919
+ field_dict["OIDC_CACHE_TIMEOUT"] = oidc_cache_timeout
920
+ if oidc_block_creation_of_uninvited_users is not UNSET:
921
+ field_dict["OIDC_BLOCK_CREATION_OF_UNINVITED_USERS"] = oidc_block_creation_of_uninvited_users
922
+ if deactivate_user_if_no_roles is not UNSET:
923
+ field_dict["DEACTIVATE_USER_IF_NO_ROLES"] = deactivate_user_if_no_roles
924
+ if maintenance_announcement_notify_before_minutes is not UNSET:
925
+ field_dict["MAINTENANCE_ANNOUNCEMENT_NOTIFY_BEFORE_MINUTES"] = (
926
+ maintenance_announcement_notify_before_minutes
927
+ )
928
+ if maintenance_announcement_notify_system is not UNSET:
929
+ field_dict["MAINTENANCE_ANNOUNCEMENT_NOTIFY_SYSTEM"] = maintenance_announcement_notify_system
930
+ if enforce_user_consent_for_offerings is not UNSET:
931
+ field_dict["ENFORCE_USER_CONSENT_FOR_OFFERINGS"] = enforce_user_consent_for_offerings
932
+
933
+ return field_dict
934
+
935
+ def to_multipart(self) -> types.RequestFiles:
936
+ files: types.RequestFiles = []
937
+
938
+ if not isinstance(self.site_name, Unset):
939
+ files.append(("SITE_NAME", (None, str(self.site_name).encode(), "text/plain")))
940
+
941
+ if not isinstance(self.site_description, Unset):
942
+ files.append(("SITE_DESCRIPTION", (None, str(self.site_description).encode(), "text/plain")))
943
+
944
+ if not isinstance(self.homeport_url, Unset):
945
+ files.append(("HOMEPORT_URL", (None, str(self.homeport_url).encode(), "text/plain")))
946
+
947
+ if not isinstance(self.rancher_username_input_label, Unset):
948
+ files.append(
949
+ ("RANCHER_USERNAME_INPUT_LABEL", (None, str(self.rancher_username_input_label).encode(), "text/plain"))
950
+ )
951
+
952
+ if not isinstance(self.site_address, Unset):
953
+ files.append(("SITE_ADDRESS", (None, str(self.site_address).encode(), "text/plain")))
954
+
955
+ if not isinstance(self.site_email, Unset):
956
+ files.append(("SITE_EMAIL", (None, str(self.site_email).encode(), "text/plain")))
957
+
958
+ if not isinstance(self.site_phone, Unset):
959
+ files.append(("SITE_PHONE", (None, str(self.site_phone).encode(), "text/plain")))
960
+
961
+ if not isinstance(self.currency_name, Unset):
962
+ files.append(("CURRENCY_NAME", (None, str(self.currency_name).encode(), "text/plain")))
963
+
964
+ if not isinstance(self.thumbnail_size, Unset):
965
+ files.append(("THUMBNAIL_SIZE", (None, str(self.thumbnail_size).encode(), "text/plain")))
966
+
967
+ if not isinstance(self.anonymous_user_can_view_offerings, Unset):
968
+ files.append(
969
+ (
970
+ "ANONYMOUS_USER_CAN_VIEW_OFFERINGS",
971
+ (None, str(self.anonymous_user_can_view_offerings).encode(), "text/plain"),
972
+ )
973
+ )
974
+
975
+ if not isinstance(self.anonymous_user_can_view_plans, Unset):
976
+ files.append(
977
+ (
978
+ "ANONYMOUS_USER_CAN_VIEW_PLANS",
979
+ (None, str(self.anonymous_user_can_view_plans).encode(), "text/plain"),
980
+ )
981
+ )
982
+
983
+ if not isinstance(self.notify_staff_about_approvals, Unset):
984
+ files.append(
985
+ ("NOTIFY_STAFF_ABOUT_APPROVALS", (None, str(self.notify_staff_about_approvals).encode(), "text/plain"))
986
+ )
987
+
988
+ if not isinstance(self.notify_about_resource_change, Unset):
989
+ files.append(
990
+ ("NOTIFY_ABOUT_RESOURCE_CHANGE", (None, str(self.notify_about_resource_change).encode(), "text/plain"))
991
+ )
992
+
993
+ if not isinstance(self.disable_sending_notifications_about_resource_update, Unset):
994
+ files.append(
995
+ (
996
+ "DISABLE_SENDING_NOTIFICATIONS_ABOUT_RESOURCE_UPDATE",
997
+ (None, str(self.disable_sending_notifications_about_resource_update).encode(), "text/plain"),
998
+ )
999
+ )
1000
+
1001
+ if not isinstance(self.marketplace_landing_page, Unset):
1002
+ files.append(
1003
+ ("MARKETPLACE_LANDING_PAGE", (None, str(self.marketplace_landing_page).encode(), "text/plain"))
1004
+ )
1005
+
1006
+ if not isinstance(self.enable_stale_resource_notifications, Unset):
1007
+ files.append(
1008
+ (
1009
+ "ENABLE_STALE_RESOURCE_NOTIFICATIONS",
1010
+ (None, str(self.enable_stale_resource_notifications).encode(), "text/plain"),
1011
+ )
1012
+ )
1013
+
1014
+ if not isinstance(self.telemetry_url, Unset):
1015
+ files.append(("TELEMETRY_URL", (None, str(self.telemetry_url).encode(), "text/plain")))
1016
+
1017
+ if not isinstance(self.telemetry_version, Unset):
1018
+ files.append(("TELEMETRY_VERSION", (None, str(self.telemetry_version).encode(), "text/plain")))
1019
+
1020
+ if not isinstance(self.script_run_mode, Unset):
1021
+ files.append(("SCRIPT_RUN_MODE", (None, str(self.script_run_mode).encode(), "text/plain")))
1022
+
1023
+ if not isinstance(self.docker_client, Unset):
1024
+ files.append(("DOCKER_CLIENT", (None, str(self.docker_client).encode(), "text/plain")))
1025
+
1026
+ if not isinstance(self.docker_run_options, Unset):
1027
+ files.append(("DOCKER_RUN_OPTIONS", (None, str(self.docker_run_options).encode(), "text/plain")))
1028
+
1029
+ if not isinstance(self.docker_script_dir, Unset):
1030
+ files.append(("DOCKER_SCRIPT_DIR", (None, str(self.docker_script_dir).encode(), "text/plain")))
1031
+
1032
+ if not isinstance(self.docker_remove_container, Unset):
1033
+ files.append(("DOCKER_REMOVE_CONTAINER", (None, str(self.docker_remove_container).encode(), "text/plain")))
1034
+
1035
+ if not isinstance(self.docker_images, Unset):
1036
+ files.append(("DOCKER_IMAGES", (None, str(self.docker_images).encode(), "text/plain")))
1037
+
1038
+ if not isinstance(self.docker_volume_name, Unset):
1039
+ files.append(("DOCKER_VOLUME_NAME", (None, str(self.docker_volume_name).encode(), "text/plain")))
1040
+
1041
+ if not isinstance(self.k8s_namespace, Unset):
1042
+ files.append(("K8S_NAMESPACE", (None, str(self.k8s_namespace).encode(), "text/plain")))
1043
+
1044
+ if not isinstance(self.k8s_config_path, Unset):
1045
+ files.append(("K8S_CONFIG_PATH", (None, str(self.k8s_config_path).encode(), "text/plain")))
1046
+
1047
+ if not isinstance(self.k8s_job_timeout, Unset):
1048
+ files.append(("K8S_JOB_TIMEOUT", (None, str(self.k8s_job_timeout).encode(), "text/plain")))
1049
+
1050
+ if not isinstance(self.enable_strict_check_accepting_invitation, Unset):
1051
+ files.append(
1052
+ (
1053
+ "ENABLE_STRICT_CHECK_ACCEPTING_INVITATION",
1054
+ (None, str(self.enable_strict_check_accepting_invitation).encode(), "text/plain"),
1055
+ )
1056
+ )
1057
+
1058
+ if not isinstance(self.invitation_disable_multiple_roles, Unset):
1059
+ files.append(
1060
+ (
1061
+ "INVITATION_DISABLE_MULTIPLE_ROLES",
1062
+ (None, str(self.invitation_disable_multiple_roles).encode(), "text/plain"),
1063
+ )
1064
+ )
1065
+
1066
+ if not isinstance(self.default_idp, Unset):
1067
+ files.append(("DEFAULT_IDP", (None, str(self.default_idp).encode(), "text/plain")))
1068
+
1069
+ if not isinstance(self.docs_url, Unset):
1070
+ files.append(("DOCS_URL", (None, str(self.docs_url).encode(), "text/plain")))
1071
+
1072
+ if not isinstance(self.short_page_title, Unset):
1073
+ files.append(("SHORT_PAGE_TITLE", (None, str(self.short_page_title).encode(), "text/plain")))
1074
+
1075
+ if not isinstance(self.full_page_title, Unset):
1076
+ files.append(("FULL_PAGE_TITLE", (None, str(self.full_page_title).encode(), "text/plain")))
1077
+
1078
+ if not isinstance(self.brand_color, Unset):
1079
+ files.append(("BRAND_COLOR", (None, str(self.brand_color).encode(), "text/plain")))
1080
+
1081
+ if not isinstance(self.hero_link_label, Unset):
1082
+ files.append(("HERO_LINK_LABEL", (None, str(self.hero_link_label).encode(), "text/plain")))
1083
+
1084
+ if not isinstance(self.hero_link_url, Unset):
1085
+ files.append(("HERO_LINK_URL", (None, str(self.hero_link_url).encode(), "text/plain")))
1086
+
1087
+ if not isinstance(self.support_portal_url, Unset):
1088
+ files.append(("SUPPORT_PORTAL_URL", (None, str(self.support_portal_url).encode(), "text/plain")))
1089
+
1090
+ if not isinstance(self.common_footer_text, Unset):
1091
+ files.append(("COMMON_FOOTER_TEXT", (None, str(self.common_footer_text).encode(), "text/plain")))
1092
+
1093
+ if not isinstance(self.common_footer_html, Unset):
1094
+ files.append(("COMMON_FOOTER_HTML", (None, str(self.common_footer_html).encode(), "text/plain")))
1095
+
1096
+ if not isinstance(self.language_choices, Unset):
1097
+ files.append(("LANGUAGE_CHOICES", (None, str(self.language_choices).encode(), "text/plain")))
1098
+
1099
+ if not isinstance(self.disable_dark_theme, Unset):
1100
+ files.append(("DISABLE_DARK_THEME", (None, str(self.disable_dark_theme).encode(), "text/plain")))
1101
+
1102
+ if not isinstance(self.powered_by_logo, Unset):
1103
+ if isinstance(self.powered_by_logo, File):
1104
+ files.append(("POWERED_BY_LOGO", self.powered_by_logo.to_tuple()))
1105
+ else:
1106
+ files.append(("POWERED_BY_LOGO", (None, str(self.powered_by_logo).encode(), "text/plain")))
1107
+
1108
+ if not isinstance(self.hero_image, Unset):
1109
+ if isinstance(self.hero_image, File):
1110
+ files.append(("HERO_IMAGE", self.hero_image.to_tuple()))
1111
+ else:
1112
+ files.append(("HERO_IMAGE", (None, str(self.hero_image).encode(), "text/plain")))
1113
+
1114
+ if not isinstance(self.marketplace_hero_image, Unset):
1115
+ if isinstance(self.marketplace_hero_image, File):
1116
+ files.append(("MARKETPLACE_HERO_IMAGE", self.marketplace_hero_image.to_tuple()))
1117
+ else:
1118
+ files.append(
1119
+ ("MARKETPLACE_HERO_IMAGE", (None, str(self.marketplace_hero_image).encode(), "text/plain"))
1120
+ )
1121
+
1122
+ if not isinstance(self.call_management_hero_image, Unset):
1123
+ if isinstance(self.call_management_hero_image, File):
1124
+ files.append(("CALL_MANAGEMENT_HERO_IMAGE", self.call_management_hero_image.to_tuple()))
1125
+ else:
1126
+ files.append(
1127
+ ("CALL_MANAGEMENT_HERO_IMAGE", (None, str(self.call_management_hero_image).encode(), "text/plain"))
1128
+ )
1129
+
1130
+ if not isinstance(self.sidebar_logo, Unset):
1131
+ if isinstance(self.sidebar_logo, File):
1132
+ files.append(("SIDEBAR_LOGO", self.sidebar_logo.to_tuple()))
1133
+ else:
1134
+ files.append(("SIDEBAR_LOGO", (None, str(self.sidebar_logo).encode(), "text/plain")))
1135
+
1136
+ if not isinstance(self.sidebar_logo_dark, Unset):
1137
+ if isinstance(self.sidebar_logo_dark, File):
1138
+ files.append(("SIDEBAR_LOGO_DARK", self.sidebar_logo_dark.to_tuple()))
1139
+ else:
1140
+ files.append(("SIDEBAR_LOGO_DARK", (None, str(self.sidebar_logo_dark).encode(), "text/plain")))
1141
+
1142
+ if not isinstance(self.sidebar_logo_mobile, Unset):
1143
+ if isinstance(self.sidebar_logo_mobile, File):
1144
+ files.append(("SIDEBAR_LOGO_MOBILE", self.sidebar_logo_mobile.to_tuple()))
1145
+ else:
1146
+ files.append(("SIDEBAR_LOGO_MOBILE", (None, str(self.sidebar_logo_mobile).encode(), "text/plain")))
1147
+
1148
+ if not isinstance(self.sidebar_style, Unset):
1149
+ files.append(("SIDEBAR_STYLE", (None, str(self.sidebar_style).encode(), "text/plain")))
1150
+
1151
+ if not isinstance(self.site_logo, Unset):
1152
+ if isinstance(self.site_logo, File):
1153
+ files.append(("SITE_LOGO", self.site_logo.to_tuple()))
1154
+ else:
1155
+ files.append(("SITE_LOGO", (None, str(self.site_logo).encode(), "text/plain")))
1156
+
1157
+ if not isinstance(self.login_logo, Unset):
1158
+ if isinstance(self.login_logo, File):
1159
+ files.append(("LOGIN_LOGO", self.login_logo.to_tuple()))
1160
+ else:
1161
+ files.append(("LOGIN_LOGO", (None, str(self.login_logo).encode(), "text/plain")))
1162
+
1163
+ if not isinstance(self.favicon, Unset):
1164
+ if isinstance(self.favicon, File):
1165
+ files.append(("FAVICON", self.favicon.to_tuple()))
1166
+ else:
1167
+ files.append(("FAVICON", (None, str(self.favicon).encode(), "text/plain")))
1168
+
1169
+ if not isinstance(self.offering_logo_placeholder, Unset):
1170
+ if isinstance(self.offering_logo_placeholder, File):
1171
+ files.append(("OFFERING_LOGO_PLACEHOLDER", self.offering_logo_placeholder.to_tuple()))
1172
+ else:
1173
+ files.append(
1174
+ ("OFFERING_LOGO_PLACEHOLDER", (None, str(self.offering_logo_placeholder).encode(), "text/plain"))
1175
+ )
1176
+
1177
+ if not isinstance(self.waldur_support_enabled, Unset):
1178
+ files.append(("WALDUR_SUPPORT_ENABLED", (None, str(self.waldur_support_enabled).encode(), "text/plain")))
1179
+
1180
+ if not isinstance(self.waldur_support_active_backend_type, Unset):
1181
+ files.append(
1182
+ (
1183
+ "WALDUR_SUPPORT_ACTIVE_BACKEND_TYPE",
1184
+ (None, str(self.waldur_support_active_backend_type).encode(), "text/plain"),
1185
+ )
1186
+ )
1187
+
1188
+ if not isinstance(self.waldur_support_display_request_type, Unset):
1189
+ files.append(
1190
+ (
1191
+ "WALDUR_SUPPORT_DISPLAY_REQUEST_TYPE",
1192
+ (None, str(self.waldur_support_display_request_type).encode(), "text/plain"),
1193
+ )
1194
+ )
1195
+
1196
+ if not isinstance(self.atlassian_use_old_api, Unset):
1197
+ files.append(("ATLASSIAN_USE_OLD_API", (None, str(self.atlassian_use_old_api).encode(), "text/plain")))
1198
+
1199
+ if not isinstance(self.atlassian_use_teenage_api, Unset):
1200
+ files.append(
1201
+ ("ATLASSIAN_USE_TEENAGE_API", (None, str(self.atlassian_use_teenage_api).encode(), "text/plain"))
1202
+ )
1203
+
1204
+ if not isinstance(self.atlassian_use_automatic_request_mapping, Unset):
1205
+ files.append(
1206
+ (
1207
+ "ATLASSIAN_USE_AUTOMATIC_REQUEST_MAPPING",
1208
+ (None, str(self.atlassian_use_automatic_request_mapping).encode(), "text/plain"),
1209
+ )
1210
+ )
1211
+
1212
+ if not isinstance(self.atlassian_map_waldur_users_to_servicedesk_agents, Unset):
1213
+ files.append(
1214
+ (
1215
+ "ATLASSIAN_MAP_WALDUR_USERS_TO_SERVICEDESK_AGENTS",
1216
+ (None, str(self.atlassian_map_waldur_users_to_servicedesk_agents).encode(), "text/plain"),
1217
+ )
1218
+ )
1219
+
1220
+ if not isinstance(self.atlassian_strange_setting, Unset):
1221
+ files.append(
1222
+ ("ATLASSIAN_STRANGE_SETTING", (None, str(self.atlassian_strange_setting).encode(), "text/plain"))
1223
+ )
1224
+
1225
+ if not isinstance(self.atlassian_api_url, Unset):
1226
+ files.append(("ATLASSIAN_API_URL", (None, str(self.atlassian_api_url).encode(), "text/plain")))
1227
+
1228
+ if not isinstance(self.atlassian_username, Unset):
1229
+ files.append(("ATLASSIAN_USERNAME", (None, str(self.atlassian_username).encode(), "text/plain")))
1230
+
1231
+ if not isinstance(self.atlassian_password, Unset):
1232
+ files.append(("ATLASSIAN_PASSWORD", (None, str(self.atlassian_password).encode(), "text/plain")))
1233
+
1234
+ if not isinstance(self.atlassian_email, Unset):
1235
+ files.append(("ATLASSIAN_EMAIL", (None, str(self.atlassian_email).encode(), "text/plain")))
1236
+
1237
+ if not isinstance(self.atlassian_token, Unset):
1238
+ files.append(("ATLASSIAN_TOKEN", (None, str(self.atlassian_token).encode(), "text/plain")))
1239
+
1240
+ if not isinstance(self.atlassian_verify_ssl, Unset):
1241
+ files.append(("ATLASSIAN_VERIFY_SSL", (None, str(self.atlassian_verify_ssl).encode(), "text/plain")))
1242
+
1243
+ if not isinstance(self.atlassian_project_id, Unset):
1244
+ files.append(("ATLASSIAN_PROJECT_ID", (None, str(self.atlassian_project_id).encode(), "text/plain")))
1245
+
1246
+ if not isinstance(self.atlassian_shared_username, Unset):
1247
+ files.append(
1248
+ ("ATLASSIAN_SHARED_USERNAME", (None, str(self.atlassian_shared_username).encode(), "text/plain"))
1249
+ )
1250
+
1251
+ if not isinstance(self.atlassian_custom_issue_field_mapping_enabled, Unset):
1252
+ files.append(
1253
+ (
1254
+ "ATLASSIAN_CUSTOM_ISSUE_FIELD_MAPPING_ENABLED",
1255
+ (None, str(self.atlassian_custom_issue_field_mapping_enabled).encode(), "text/plain"),
1256
+ )
1257
+ )
1258
+
1259
+ if not isinstance(self.atlassian_default_offering_issue_type, Unset):
1260
+ files.append(
1261
+ (
1262
+ "ATLASSIAN_DEFAULT_OFFERING_ISSUE_TYPE",
1263
+ (None, str(self.atlassian_default_offering_issue_type).encode(), "text/plain"),
1264
+ )
1265
+ )
1266
+
1267
+ if not isinstance(self.atlassian_excluded_attachment_types, Unset):
1268
+ files.append(
1269
+ (
1270
+ "ATLASSIAN_EXCLUDED_ATTACHMENT_TYPES",
1271
+ (None, str(self.atlassian_excluded_attachment_types).encode(), "text/plain"),
1272
+ )
1273
+ )
1274
+
1275
+ if not isinstance(self.atlassian_pull_priorities, Unset):
1276
+ files.append(
1277
+ ("ATLASSIAN_PULL_PRIORITIES", (None, str(self.atlassian_pull_priorities).encode(), "text/plain"))
1278
+ )
1279
+
1280
+ if not isinstance(self.atlassian_issue_types, Unset):
1281
+ files.append(("ATLASSIAN_ISSUE_TYPES", (None, str(self.atlassian_issue_types).encode(), "text/plain")))
1282
+
1283
+ if not isinstance(self.atlassian_description_template, Unset):
1284
+ files.append(
1285
+ (
1286
+ "ATLASSIAN_DESCRIPTION_TEMPLATE",
1287
+ (None, str(self.atlassian_description_template).encode(), "text/plain"),
1288
+ )
1289
+ )
1290
+
1291
+ if not isinstance(self.atlassian_summary_template, Unset):
1292
+ files.append(
1293
+ ("ATLASSIAN_SUMMARY_TEMPLATE", (None, str(self.atlassian_summary_template).encode(), "text/plain"))
1294
+ )
1295
+
1296
+ if not isinstance(self.atlassian_affected_resource_field, Unset):
1297
+ files.append(
1298
+ (
1299
+ "ATLASSIAN_AFFECTED_RESOURCE_FIELD",
1300
+ (None, str(self.atlassian_affected_resource_field).encode(), "text/plain"),
1301
+ )
1302
+ )
1303
+
1304
+ if not isinstance(self.atlassian_impact_field, Unset):
1305
+ files.append(("ATLASSIAN_IMPACT_FIELD", (None, str(self.atlassian_impact_field).encode(), "text/plain")))
1306
+
1307
+ if not isinstance(self.atlassian_organisation_field, Unset):
1308
+ files.append(
1309
+ ("ATLASSIAN_ORGANISATION_FIELD", (None, str(self.atlassian_organisation_field).encode(), "text/plain"))
1310
+ )
1311
+
1312
+ if not isinstance(self.atlassian_resolution_sla_field, Unset):
1313
+ files.append(
1314
+ (
1315
+ "ATLASSIAN_RESOLUTION_SLA_FIELD",
1316
+ (None, str(self.atlassian_resolution_sla_field).encode(), "text/plain"),
1317
+ )
1318
+ )
1319
+
1320
+ if not isinstance(self.atlassian_project_field, Unset):
1321
+ files.append(("ATLASSIAN_PROJECT_FIELD", (None, str(self.atlassian_project_field).encode(), "text/plain")))
1322
+
1323
+ if not isinstance(self.atlassian_reporter_field, Unset):
1324
+ files.append(
1325
+ ("ATLASSIAN_REPORTER_FIELD", (None, str(self.atlassian_reporter_field).encode(), "text/plain"))
1326
+ )
1327
+
1328
+ if not isinstance(self.atlassian_caller_field, Unset):
1329
+ files.append(("ATLASSIAN_CALLER_FIELD", (None, str(self.atlassian_caller_field).encode(), "text/plain")))
1330
+
1331
+ if not isinstance(self.atlassian_sla_field, Unset):
1332
+ files.append(("ATLASSIAN_SLA_FIELD", (None, str(self.atlassian_sla_field).encode(), "text/plain")))
1333
+
1334
+ if not isinstance(self.atlassian_linked_issue_type, Unset):
1335
+ files.append(
1336
+ ("ATLASSIAN_LINKED_ISSUE_TYPE", (None, str(self.atlassian_linked_issue_type).encode(), "text/plain"))
1337
+ )
1338
+
1339
+ if not isinstance(self.atlassian_satisfaction_field, Unset):
1340
+ files.append(
1341
+ ("ATLASSIAN_SATISFACTION_FIELD", (None, str(self.atlassian_satisfaction_field).encode(), "text/plain"))
1342
+ )
1343
+
1344
+ if not isinstance(self.atlassian_request_feedback_field, Unset):
1345
+ files.append(
1346
+ (
1347
+ "ATLASSIAN_REQUEST_FEEDBACK_FIELD",
1348
+ (None, str(self.atlassian_request_feedback_field).encode(), "text/plain"),
1349
+ )
1350
+ )
1351
+
1352
+ if not isinstance(self.atlassian_template_field, Unset):
1353
+ files.append(
1354
+ ("ATLASSIAN_TEMPLATE_FIELD", (None, str(self.atlassian_template_field).encode(), "text/plain"))
1355
+ )
1356
+
1357
+ if not isinstance(self.zammad_api_url, Unset):
1358
+ files.append(("ZAMMAD_API_URL", (None, str(self.zammad_api_url).encode(), "text/plain")))
1359
+
1360
+ if not isinstance(self.zammad_token, Unset):
1361
+ files.append(("ZAMMAD_TOKEN", (None, str(self.zammad_token).encode(), "text/plain")))
1362
+
1363
+ if not isinstance(self.zammad_group, Unset):
1364
+ files.append(("ZAMMAD_GROUP", (None, str(self.zammad_group).encode(), "text/plain")))
1365
+
1366
+ if not isinstance(self.zammad_article_type, Unset):
1367
+ files.append(("ZAMMAD_ARTICLE_TYPE", (None, str(self.zammad_article_type).encode(), "text/plain")))
1368
+
1369
+ if not isinstance(self.zammad_comment_marker, Unset):
1370
+ files.append(("ZAMMAD_COMMENT_MARKER", (None, str(self.zammad_comment_marker).encode(), "text/plain")))
1371
+
1372
+ if not isinstance(self.zammad_comment_prefix, Unset):
1373
+ files.append(("ZAMMAD_COMMENT_PREFIX", (None, str(self.zammad_comment_prefix).encode(), "text/plain")))
1374
+
1375
+ if not isinstance(self.zammad_comment_cooldown_duration, Unset):
1376
+ files.append(
1377
+ (
1378
+ "ZAMMAD_COMMENT_COOLDOWN_DURATION",
1379
+ (None, str(self.zammad_comment_cooldown_duration).encode(), "text/plain"),
1380
+ )
1381
+ )
1382
+
1383
+ if not isinstance(self.smax_api_url, Unset):
1384
+ files.append(("SMAX_API_URL", (None, str(self.smax_api_url).encode(), "text/plain")))
1385
+
1386
+ if not isinstance(self.smax_tenant_id, Unset):
1387
+ files.append(("SMAX_TENANT_ID", (None, str(self.smax_tenant_id).encode(), "text/plain")))
1388
+
1389
+ if not isinstance(self.smax_login, Unset):
1390
+ files.append(("SMAX_LOGIN", (None, str(self.smax_login).encode(), "text/plain")))
1391
+
1392
+ if not isinstance(self.smax_password, Unset):
1393
+ files.append(("SMAX_PASSWORD", (None, str(self.smax_password).encode(), "text/plain")))
1394
+
1395
+ if not isinstance(self.smax_organisation_field, Unset):
1396
+ files.append(("SMAX_ORGANISATION_FIELD", (None, str(self.smax_organisation_field).encode(), "text/plain")))
1397
+
1398
+ if not isinstance(self.smax_project_field, Unset):
1399
+ files.append(("SMAX_PROJECT_FIELD", (None, str(self.smax_project_field).encode(), "text/plain")))
1400
+
1401
+ if not isinstance(self.smax_affected_resource_field, Unset):
1402
+ files.append(
1403
+ ("SMAX_AFFECTED_RESOURCE_FIELD", (None, str(self.smax_affected_resource_field).encode(), "text/plain"))
1404
+ )
1405
+
1406
+ if not isinstance(self.smax_times_to_pull, Unset):
1407
+ files.append(("SMAX_TIMES_TO_PULL", (None, str(self.smax_times_to_pull).encode(), "text/plain")))
1408
+
1409
+ if not isinstance(self.smax_seconds_to_wait, Unset):
1410
+ files.append(("SMAX_SECONDS_TO_WAIT", (None, str(self.smax_seconds_to_wait).encode(), "text/plain")))
1411
+
1412
+ if not isinstance(self.smax_creation_source_name, Unset):
1413
+ files.append(
1414
+ ("SMAX_CREATION_SOURCE_NAME", (None, str(self.smax_creation_source_name).encode(), "text/plain"))
1415
+ )
1416
+
1417
+ if not isinstance(self.smax_requests_offering, Unset):
1418
+ files.append(("SMAX_REQUESTS_OFFERING", (None, str(self.smax_requests_offering).encode(), "text/plain")))
1419
+
1420
+ if not isinstance(self.smax_verify_ssl, Unset):
1421
+ files.append(("SMAX_VERIFY_SSL", (None, str(self.smax_verify_ssl).encode(), "text/plain")))
1422
+
1423
+ if not isinstance(self.enable_mock_service_account_backend, Unset):
1424
+ files.append(
1425
+ (
1426
+ "ENABLE_MOCK_SERVICE_ACCOUNT_BACKEND",
1427
+ (None, str(self.enable_mock_service_account_backend).encode(), "text/plain"),
1428
+ )
1429
+ )
1430
+
1431
+ if not isinstance(self.enable_mock_course_account_backend, Unset):
1432
+ files.append(
1433
+ (
1434
+ "ENABLE_MOCK_COURSE_ACCOUNT_BACKEND",
1435
+ (None, str(self.enable_mock_course_account_backend).encode(), "text/plain"),
1436
+ )
1437
+ )
1438
+
1439
+ if not isinstance(self.proposal_review_duration, Unset):
1440
+ files.append(
1441
+ ("PROPOSAL_REVIEW_DURATION", (None, str(self.proposal_review_duration).encode(), "text/plain"))
1442
+ )
1443
+
1444
+ if not isinstance(self.user_table_columns, Unset):
1445
+ files.append(("USER_TABLE_COLUMNS", (None, str(self.user_table_columns).encode(), "text/plain")))
1446
+
1447
+ if not isinstance(self.auto_approve_user_tos, Unset):
1448
+ files.append(("AUTO_APPROVE_USER_TOS", (None, str(self.auto_approve_user_tos).encode(), "text/plain")))
1449
+
1450
+ if not isinstance(self.freeipa_enabled, Unset):
1451
+ files.append(("FREEIPA_ENABLED", (None, str(self.freeipa_enabled).encode(), "text/plain")))
1452
+
1453
+ if not isinstance(self.freeipa_hostname, Unset):
1454
+ files.append(("FREEIPA_HOSTNAME", (None, str(self.freeipa_hostname).encode(), "text/plain")))
1455
+
1456
+ if not isinstance(self.freeipa_username, Unset):
1457
+ files.append(("FREEIPA_USERNAME", (None, str(self.freeipa_username).encode(), "text/plain")))
1458
+
1459
+ if not isinstance(self.freeipa_password, Unset):
1460
+ files.append(("FREEIPA_PASSWORD", (None, str(self.freeipa_password).encode(), "text/plain")))
1461
+
1462
+ if not isinstance(self.freeipa_verify_ssl, Unset):
1463
+ files.append(("FREEIPA_VERIFY_SSL", (None, str(self.freeipa_verify_ssl).encode(), "text/plain")))
1464
+
1465
+ if not isinstance(self.freeipa_username_prefix, Unset):
1466
+ files.append(("FREEIPA_USERNAME_PREFIX", (None, str(self.freeipa_username_prefix).encode(), "text/plain")))
1467
+
1468
+ if not isinstance(self.freeipa_groupname_prefix, Unset):
1469
+ files.append(
1470
+ ("FREEIPA_GROUPNAME_PREFIX", (None, str(self.freeipa_groupname_prefix).encode(), "text/plain"))
1471
+ )
1472
+
1473
+ if not isinstance(self.freeipa_blacklisted_usernames, Unset):
1474
+ for freeipa_blacklisted_usernames_item_element in self.freeipa_blacklisted_usernames:
1475
+ files.append(
1476
+ (
1477
+ "FREEIPA_BLACKLISTED_USERNAMES",
1478
+ (None, str(freeipa_blacklisted_usernames_item_element).encode(), "text/plain"),
1479
+ )
1480
+ )
1481
+
1482
+ if not isinstance(self.freeipa_group_synchronization_enabled, Unset):
1483
+ files.append(
1484
+ (
1485
+ "FREEIPA_GROUP_SYNCHRONIZATION_ENABLED",
1486
+ (None, str(self.freeipa_group_synchronization_enabled).encode(), "text/plain"),
1487
+ )
1488
+ )
1489
+
1490
+ if not isinstance(self.keycloak_icon, Unset):
1491
+ if isinstance(self.keycloak_icon, File):
1492
+ files.append(("KEYCLOAK_ICON", self.keycloak_icon.to_tuple()))
1493
+ else:
1494
+ files.append(("KEYCLOAK_ICON", (None, str(self.keycloak_icon).encode(), "text/plain")))
1495
+
1496
+ if not isinstance(self.countries, Unset):
1497
+ for countries_item_element in self.countries:
1498
+ files.append(("COUNTRIES", (None, str(countries_item_element).encode(), "text/plain")))
1499
+
1500
+ if not isinstance(self.oidc_auth_url, Unset):
1501
+ files.append(("OIDC_AUTH_URL", (None, str(self.oidc_auth_url).encode(), "text/plain")))
1502
+
1503
+ if not isinstance(self.oidc_introspection_url, Unset):
1504
+ files.append(("OIDC_INTROSPECTION_URL", (None, str(self.oidc_introspection_url).encode(), "text/plain")))
1505
+
1506
+ if not isinstance(self.oidc_client_id, Unset):
1507
+ files.append(("OIDC_CLIENT_ID", (None, str(self.oidc_client_id).encode(), "text/plain")))
1508
+
1509
+ if not isinstance(self.oidc_client_secret, Unset):
1510
+ files.append(("OIDC_CLIENT_SECRET", (None, str(self.oidc_client_secret).encode(), "text/plain")))
1511
+
1512
+ if not isinstance(self.oidc_user_field, Unset):
1513
+ files.append(("OIDC_USER_FIELD", (None, str(self.oidc_user_field).encode(), "text/plain")))
1514
+
1515
+ if not isinstance(self.oidc_cache_timeout, Unset):
1516
+ files.append(("OIDC_CACHE_TIMEOUT", (None, str(self.oidc_cache_timeout).encode(), "text/plain")))
1517
+
1518
+ if not isinstance(self.oidc_block_creation_of_uninvited_users, Unset):
1519
+ files.append(
1520
+ (
1521
+ "OIDC_BLOCK_CREATION_OF_UNINVITED_USERS",
1522
+ (None, str(self.oidc_block_creation_of_uninvited_users).encode(), "text/plain"),
1523
+ )
1524
+ )
1525
+
1526
+ if not isinstance(self.deactivate_user_if_no_roles, Unset):
1527
+ files.append(
1528
+ ("DEACTIVATE_USER_IF_NO_ROLES", (None, str(self.deactivate_user_if_no_roles).encode(), "text/plain"))
1529
+ )
1530
+
1531
+ if not isinstance(self.maintenance_announcement_notify_before_minutes, Unset):
1532
+ files.append(
1533
+ (
1534
+ "MAINTENANCE_ANNOUNCEMENT_NOTIFY_BEFORE_MINUTES",
1535
+ (None, str(self.maintenance_announcement_notify_before_minutes).encode(), "text/plain"),
1536
+ )
1537
+ )
1538
+
1539
+ if not isinstance(self.maintenance_announcement_notify_system, Unset):
1540
+ for maintenance_announcement_notify_system_item_element in self.maintenance_announcement_notify_system:
1541
+ files.append(
1542
+ (
1543
+ "MAINTENANCE_ANNOUNCEMENT_NOTIFY_SYSTEM",
1544
+ (None, str(maintenance_announcement_notify_system_item_element).encode(), "text/plain"),
1545
+ )
1546
+ )
1547
+
1548
+ if not isinstance(self.enforce_user_consent_for_offerings, Unset):
1549
+ files.append(
1550
+ (
1551
+ "ENFORCE_USER_CONSENT_FOR_OFFERINGS",
1552
+ (None, str(self.enforce_user_consent_for_offerings).encode(), "text/plain"),
1553
+ )
1554
+ )
1555
+
1556
+ for prop_name, prop in self.additional_properties.items():
1557
+ files.append((prop_name, (None, str(prop).encode(), "text/plain")))
1558
+
1559
+ return files
1560
+
1561
+ @classmethod
1562
+ def from_dict(cls: type[T], src_dict: Mapping[str, Any]) -> T:
1563
+ d = dict(src_dict)
1564
+ site_name = d.pop("SITE_NAME", UNSET)
1565
+
1566
+ site_description = d.pop("SITE_DESCRIPTION", UNSET)
1567
+
1568
+ homeport_url = d.pop("HOMEPORT_URL", UNSET)
1569
+
1570
+ rancher_username_input_label = d.pop("RANCHER_USERNAME_INPUT_LABEL", UNSET)
1571
+
1572
+ site_address = d.pop("SITE_ADDRESS", UNSET)
1573
+
1574
+ site_email = d.pop("SITE_EMAIL", UNSET)
1575
+
1576
+ site_phone = d.pop("SITE_PHONE", UNSET)
1577
+
1578
+ currency_name = d.pop("CURRENCY_NAME", UNSET)
1579
+
1580
+ thumbnail_size = d.pop("THUMBNAIL_SIZE", UNSET)
1581
+
1582
+ anonymous_user_can_view_offerings = d.pop("ANONYMOUS_USER_CAN_VIEW_OFFERINGS", UNSET)
1583
+
1584
+ anonymous_user_can_view_plans = d.pop("ANONYMOUS_USER_CAN_VIEW_PLANS", UNSET)
1585
+
1586
+ notify_staff_about_approvals = d.pop("NOTIFY_STAFF_ABOUT_APPROVALS", UNSET)
1587
+
1588
+ notify_about_resource_change = d.pop("NOTIFY_ABOUT_RESOURCE_CHANGE", UNSET)
1589
+
1590
+ disable_sending_notifications_about_resource_update = d.pop(
1591
+ "DISABLE_SENDING_NOTIFICATIONS_ABOUT_RESOURCE_UPDATE", UNSET
1592
+ )
1593
+
1594
+ marketplace_landing_page = d.pop("MARKETPLACE_LANDING_PAGE", UNSET)
1595
+
1596
+ enable_stale_resource_notifications = d.pop("ENABLE_STALE_RESOURCE_NOTIFICATIONS", UNSET)
1597
+
1598
+ telemetry_url = d.pop("TELEMETRY_URL", UNSET)
1599
+
1600
+ telemetry_version = d.pop("TELEMETRY_VERSION", UNSET)
1601
+
1602
+ script_run_mode = d.pop("SCRIPT_RUN_MODE", UNSET)
1603
+
1604
+ docker_client = d.pop("DOCKER_CLIENT", UNSET)
1605
+
1606
+ docker_run_options = d.pop("DOCKER_RUN_OPTIONS", UNSET)
1607
+
1608
+ docker_script_dir = d.pop("DOCKER_SCRIPT_DIR", UNSET)
1609
+
1610
+ docker_remove_container = d.pop("DOCKER_REMOVE_CONTAINER", UNSET)
1611
+
1612
+ docker_images = d.pop("DOCKER_IMAGES", UNSET)
1613
+
1614
+ docker_volume_name = d.pop("DOCKER_VOLUME_NAME", UNSET)
1615
+
1616
+ k8s_namespace = d.pop("K8S_NAMESPACE", UNSET)
1617
+
1618
+ k8s_config_path = d.pop("K8S_CONFIG_PATH", UNSET)
1619
+
1620
+ k8s_job_timeout = d.pop("K8S_JOB_TIMEOUT", UNSET)
1621
+
1622
+ enable_strict_check_accepting_invitation = d.pop("ENABLE_STRICT_CHECK_ACCEPTING_INVITATION", UNSET)
1623
+
1624
+ invitation_disable_multiple_roles = d.pop("INVITATION_DISABLE_MULTIPLE_ROLES", UNSET)
1625
+
1626
+ default_idp = d.pop("DEFAULT_IDP", UNSET)
1627
+
1628
+ docs_url = d.pop("DOCS_URL", UNSET)
1629
+
1630
+ short_page_title = d.pop("SHORT_PAGE_TITLE", UNSET)
1631
+
1632
+ full_page_title = d.pop("FULL_PAGE_TITLE", UNSET)
1633
+
1634
+ brand_color = d.pop("BRAND_COLOR", UNSET)
1635
+
1636
+ hero_link_label = d.pop("HERO_LINK_LABEL", UNSET)
1637
+
1638
+ hero_link_url = d.pop("HERO_LINK_URL", UNSET)
1639
+
1640
+ support_portal_url = d.pop("SUPPORT_PORTAL_URL", UNSET)
1641
+
1642
+ common_footer_text = d.pop("COMMON_FOOTER_TEXT", UNSET)
1643
+
1644
+ common_footer_html = d.pop("COMMON_FOOTER_HTML", UNSET)
1645
+
1646
+ language_choices = d.pop("LANGUAGE_CHOICES", UNSET)
1647
+
1648
+ disable_dark_theme = d.pop("DISABLE_DARK_THEME", UNSET)
1649
+
1650
+ def _parse_powered_by_logo(data: object) -> Union[File, None, Unset]:
1651
+ if data is None:
1652
+ return data
1653
+ if isinstance(data, Unset):
1654
+ return data
1655
+ try:
1656
+ if not isinstance(data, bytes):
1657
+ raise TypeError()
1658
+ powered_by_logo_type_0 = File(payload=BytesIO(data))
1659
+
1660
+ return powered_by_logo_type_0
1661
+ except: # noqa: E722
1662
+ pass
1663
+ return cast(Union[File, None, Unset], data)
1664
+
1665
+ powered_by_logo = _parse_powered_by_logo(d.pop("POWERED_BY_LOGO", UNSET))
1666
+
1667
+ def _parse_hero_image(data: object) -> Union[File, None, Unset]:
1668
+ if data is None:
1669
+ return data
1670
+ if isinstance(data, Unset):
1671
+ return data
1672
+ try:
1673
+ if not isinstance(data, bytes):
1674
+ raise TypeError()
1675
+ hero_image_type_0 = File(payload=BytesIO(data))
1676
+
1677
+ return hero_image_type_0
1678
+ except: # noqa: E722
1679
+ pass
1680
+ return cast(Union[File, None, Unset], data)
1681
+
1682
+ hero_image = _parse_hero_image(d.pop("HERO_IMAGE", UNSET))
1683
+
1684
+ def _parse_marketplace_hero_image(data: object) -> Union[File, None, Unset]:
1685
+ if data is None:
1686
+ return data
1687
+ if isinstance(data, Unset):
1688
+ return data
1689
+ try:
1690
+ if not isinstance(data, bytes):
1691
+ raise TypeError()
1692
+ marketplace_hero_image_type_0 = File(payload=BytesIO(data))
1693
+
1694
+ return marketplace_hero_image_type_0
1695
+ except: # noqa: E722
1696
+ pass
1697
+ return cast(Union[File, None, Unset], data)
1698
+
1699
+ marketplace_hero_image = _parse_marketplace_hero_image(d.pop("MARKETPLACE_HERO_IMAGE", UNSET))
1700
+
1701
+ def _parse_call_management_hero_image(data: object) -> Union[File, None, Unset]:
1702
+ if data is None:
1703
+ return data
1704
+ if isinstance(data, Unset):
1705
+ return data
1706
+ try:
1707
+ if not isinstance(data, bytes):
1708
+ raise TypeError()
1709
+ call_management_hero_image_type_0 = File(payload=BytesIO(data))
1710
+
1711
+ return call_management_hero_image_type_0
1712
+ except: # noqa: E722
1713
+ pass
1714
+ return cast(Union[File, None, Unset], data)
1715
+
1716
+ call_management_hero_image = _parse_call_management_hero_image(d.pop("CALL_MANAGEMENT_HERO_IMAGE", UNSET))
1717
+
1718
+ def _parse_sidebar_logo(data: object) -> Union[File, None, Unset]:
1719
+ if data is None:
1720
+ return data
1721
+ if isinstance(data, Unset):
1722
+ return data
1723
+ try:
1724
+ if not isinstance(data, bytes):
1725
+ raise TypeError()
1726
+ sidebar_logo_type_0 = File(payload=BytesIO(data))
1727
+
1728
+ return sidebar_logo_type_0
1729
+ except: # noqa: E722
1730
+ pass
1731
+ return cast(Union[File, None, Unset], data)
1732
+
1733
+ sidebar_logo = _parse_sidebar_logo(d.pop("SIDEBAR_LOGO", UNSET))
1734
+
1735
+ def _parse_sidebar_logo_dark(data: object) -> Union[File, None, Unset]:
1736
+ if data is None:
1737
+ return data
1738
+ if isinstance(data, Unset):
1739
+ return data
1740
+ try:
1741
+ if not isinstance(data, bytes):
1742
+ raise TypeError()
1743
+ sidebar_logo_dark_type_0 = File(payload=BytesIO(data))
1744
+
1745
+ return sidebar_logo_dark_type_0
1746
+ except: # noqa: E722
1747
+ pass
1748
+ return cast(Union[File, None, Unset], data)
1749
+
1750
+ sidebar_logo_dark = _parse_sidebar_logo_dark(d.pop("SIDEBAR_LOGO_DARK", UNSET))
1751
+
1752
+ def _parse_sidebar_logo_mobile(data: object) -> Union[File, None, Unset]:
1753
+ if data is None:
1754
+ return data
1755
+ if isinstance(data, Unset):
1756
+ return data
1757
+ try:
1758
+ if not isinstance(data, bytes):
1759
+ raise TypeError()
1760
+ sidebar_logo_mobile_type_0 = File(payload=BytesIO(data))
1761
+
1762
+ return sidebar_logo_mobile_type_0
1763
+ except: # noqa: E722
1764
+ pass
1765
+ return cast(Union[File, None, Unset], data)
1766
+
1767
+ sidebar_logo_mobile = _parse_sidebar_logo_mobile(d.pop("SIDEBAR_LOGO_MOBILE", UNSET))
1768
+
1769
+ sidebar_style = d.pop("SIDEBAR_STYLE", UNSET)
1770
+
1771
+ def _parse_site_logo(data: object) -> Union[File, None, Unset]:
1772
+ if data is None:
1773
+ return data
1774
+ if isinstance(data, Unset):
1775
+ return data
1776
+ try:
1777
+ if not isinstance(data, bytes):
1778
+ raise TypeError()
1779
+ site_logo_type_0 = File(payload=BytesIO(data))
1780
+
1781
+ return site_logo_type_0
1782
+ except: # noqa: E722
1783
+ pass
1784
+ return cast(Union[File, None, Unset], data)
1785
+
1786
+ site_logo = _parse_site_logo(d.pop("SITE_LOGO", UNSET))
1787
+
1788
+ def _parse_login_logo(data: object) -> Union[File, None, Unset]:
1789
+ if data is None:
1790
+ return data
1791
+ if isinstance(data, Unset):
1792
+ return data
1793
+ try:
1794
+ if not isinstance(data, bytes):
1795
+ raise TypeError()
1796
+ login_logo_type_0 = File(payload=BytesIO(data))
1797
+
1798
+ return login_logo_type_0
1799
+ except: # noqa: E722
1800
+ pass
1801
+ return cast(Union[File, None, Unset], data)
1802
+
1803
+ login_logo = _parse_login_logo(d.pop("LOGIN_LOGO", UNSET))
1804
+
1805
+ def _parse_favicon(data: object) -> Union[File, None, Unset]:
1806
+ if data is None:
1807
+ return data
1808
+ if isinstance(data, Unset):
1809
+ return data
1810
+ try:
1811
+ if not isinstance(data, bytes):
1812
+ raise TypeError()
1813
+ favicon_type_0 = File(payload=BytesIO(data))
1814
+
1815
+ return favicon_type_0
1816
+ except: # noqa: E722
1817
+ pass
1818
+ return cast(Union[File, None, Unset], data)
1819
+
1820
+ favicon = _parse_favicon(d.pop("FAVICON", UNSET))
1821
+
1822
+ def _parse_offering_logo_placeholder(data: object) -> Union[File, None, Unset]:
1823
+ if data is None:
1824
+ return data
1825
+ if isinstance(data, Unset):
1826
+ return data
1827
+ try:
1828
+ if not isinstance(data, bytes):
1829
+ raise TypeError()
1830
+ offering_logo_placeholder_type_0 = File(payload=BytesIO(data))
1831
+
1832
+ return offering_logo_placeholder_type_0
1833
+ except: # noqa: E722
1834
+ pass
1835
+ return cast(Union[File, None, Unset], data)
1836
+
1837
+ offering_logo_placeholder = _parse_offering_logo_placeholder(d.pop("OFFERING_LOGO_PLACEHOLDER", UNSET))
1838
+
1839
+ waldur_support_enabled = d.pop("WALDUR_SUPPORT_ENABLED", UNSET)
1840
+
1841
+ waldur_support_active_backend_type = d.pop("WALDUR_SUPPORT_ACTIVE_BACKEND_TYPE", UNSET)
1842
+
1843
+ waldur_support_display_request_type = d.pop("WALDUR_SUPPORT_DISPLAY_REQUEST_TYPE", UNSET)
1844
+
1845
+ atlassian_use_old_api = d.pop("ATLASSIAN_USE_OLD_API", UNSET)
1846
+
1847
+ atlassian_use_teenage_api = d.pop("ATLASSIAN_USE_TEENAGE_API", UNSET)
1848
+
1849
+ atlassian_use_automatic_request_mapping = d.pop("ATLASSIAN_USE_AUTOMATIC_REQUEST_MAPPING", UNSET)
1850
+
1851
+ atlassian_map_waldur_users_to_servicedesk_agents = d.pop(
1852
+ "ATLASSIAN_MAP_WALDUR_USERS_TO_SERVICEDESK_AGENTS", UNSET
1853
+ )
1854
+
1855
+ atlassian_strange_setting = d.pop("ATLASSIAN_STRANGE_SETTING", UNSET)
1856
+
1857
+ atlassian_api_url = d.pop("ATLASSIAN_API_URL", UNSET)
1858
+
1859
+ atlassian_username = d.pop("ATLASSIAN_USERNAME", UNSET)
1860
+
1861
+ atlassian_password = d.pop("ATLASSIAN_PASSWORD", UNSET)
1862
+
1863
+ atlassian_email = d.pop("ATLASSIAN_EMAIL", UNSET)
1864
+
1865
+ atlassian_token = d.pop("ATLASSIAN_TOKEN", UNSET)
1866
+
1867
+ atlassian_verify_ssl = d.pop("ATLASSIAN_VERIFY_SSL", UNSET)
1868
+
1869
+ atlassian_project_id = d.pop("ATLASSIAN_PROJECT_ID", UNSET)
1870
+
1871
+ atlassian_shared_username = d.pop("ATLASSIAN_SHARED_USERNAME", UNSET)
1872
+
1873
+ atlassian_custom_issue_field_mapping_enabled = d.pop("ATLASSIAN_CUSTOM_ISSUE_FIELD_MAPPING_ENABLED", UNSET)
1874
+
1875
+ atlassian_default_offering_issue_type = d.pop("ATLASSIAN_DEFAULT_OFFERING_ISSUE_TYPE", UNSET)
1876
+
1877
+ atlassian_excluded_attachment_types = d.pop("ATLASSIAN_EXCLUDED_ATTACHMENT_TYPES", UNSET)
1878
+
1879
+ atlassian_pull_priorities = d.pop("ATLASSIAN_PULL_PRIORITIES", UNSET)
1880
+
1881
+ atlassian_issue_types = d.pop("ATLASSIAN_ISSUE_TYPES", UNSET)
1882
+
1883
+ atlassian_description_template = d.pop("ATLASSIAN_DESCRIPTION_TEMPLATE", UNSET)
1884
+
1885
+ atlassian_summary_template = d.pop("ATLASSIAN_SUMMARY_TEMPLATE", UNSET)
1886
+
1887
+ atlassian_affected_resource_field = d.pop("ATLASSIAN_AFFECTED_RESOURCE_FIELD", UNSET)
1888
+
1889
+ atlassian_impact_field = d.pop("ATLASSIAN_IMPACT_FIELD", UNSET)
1890
+
1891
+ atlassian_organisation_field = d.pop("ATLASSIAN_ORGANISATION_FIELD", UNSET)
1892
+
1893
+ atlassian_resolution_sla_field = d.pop("ATLASSIAN_RESOLUTION_SLA_FIELD", UNSET)
1894
+
1895
+ atlassian_project_field = d.pop("ATLASSIAN_PROJECT_FIELD", UNSET)
1896
+
1897
+ atlassian_reporter_field = d.pop("ATLASSIAN_REPORTER_FIELD", UNSET)
1898
+
1899
+ atlassian_caller_field = d.pop("ATLASSIAN_CALLER_FIELD", UNSET)
1900
+
1901
+ atlassian_sla_field = d.pop("ATLASSIAN_SLA_FIELD", UNSET)
1902
+
1903
+ atlassian_linked_issue_type = d.pop("ATLASSIAN_LINKED_ISSUE_TYPE", UNSET)
1904
+
1905
+ atlassian_satisfaction_field = d.pop("ATLASSIAN_SATISFACTION_FIELD", UNSET)
1906
+
1907
+ atlassian_request_feedback_field = d.pop("ATLASSIAN_REQUEST_FEEDBACK_FIELD", UNSET)
1908
+
1909
+ atlassian_template_field = d.pop("ATLASSIAN_TEMPLATE_FIELD", UNSET)
1910
+
1911
+ zammad_api_url = d.pop("ZAMMAD_API_URL", UNSET)
1912
+
1913
+ zammad_token = d.pop("ZAMMAD_TOKEN", UNSET)
1914
+
1915
+ zammad_group = d.pop("ZAMMAD_GROUP", UNSET)
1916
+
1917
+ zammad_article_type = d.pop("ZAMMAD_ARTICLE_TYPE", UNSET)
1918
+
1919
+ zammad_comment_marker = d.pop("ZAMMAD_COMMENT_MARKER", UNSET)
1920
+
1921
+ zammad_comment_prefix = d.pop("ZAMMAD_COMMENT_PREFIX", UNSET)
1922
+
1923
+ zammad_comment_cooldown_duration = d.pop("ZAMMAD_COMMENT_COOLDOWN_DURATION", UNSET)
1924
+
1925
+ smax_api_url = d.pop("SMAX_API_URL", UNSET)
1926
+
1927
+ smax_tenant_id = d.pop("SMAX_TENANT_ID", UNSET)
1928
+
1929
+ smax_login = d.pop("SMAX_LOGIN", UNSET)
1930
+
1931
+ smax_password = d.pop("SMAX_PASSWORD", UNSET)
1932
+
1933
+ smax_organisation_field = d.pop("SMAX_ORGANISATION_FIELD", UNSET)
1934
+
1935
+ smax_project_field = d.pop("SMAX_PROJECT_FIELD", UNSET)
1936
+
1937
+ smax_affected_resource_field = d.pop("SMAX_AFFECTED_RESOURCE_FIELD", UNSET)
1938
+
1939
+ smax_times_to_pull = d.pop("SMAX_TIMES_TO_PULL", UNSET)
1940
+
1941
+ smax_seconds_to_wait = d.pop("SMAX_SECONDS_TO_WAIT", UNSET)
1942
+
1943
+ smax_creation_source_name = d.pop("SMAX_CREATION_SOURCE_NAME", UNSET)
1944
+
1945
+ smax_requests_offering = d.pop("SMAX_REQUESTS_OFFERING", UNSET)
1946
+
1947
+ smax_verify_ssl = d.pop("SMAX_VERIFY_SSL", UNSET)
1948
+
1949
+ enable_mock_service_account_backend = d.pop("ENABLE_MOCK_SERVICE_ACCOUNT_BACKEND", UNSET)
1950
+
1951
+ enable_mock_course_account_backend = d.pop("ENABLE_MOCK_COURSE_ACCOUNT_BACKEND", UNSET)
1952
+
1953
+ proposal_review_duration = d.pop("PROPOSAL_REVIEW_DURATION", UNSET)
1954
+
1955
+ user_table_columns = d.pop("USER_TABLE_COLUMNS", UNSET)
1956
+
1957
+ auto_approve_user_tos = d.pop("AUTO_APPROVE_USER_TOS", UNSET)
1958
+
1959
+ freeipa_enabled = d.pop("FREEIPA_ENABLED", UNSET)
1960
+
1961
+ freeipa_hostname = d.pop("FREEIPA_HOSTNAME", UNSET)
1962
+
1963
+ freeipa_username = d.pop("FREEIPA_USERNAME", UNSET)
1964
+
1965
+ freeipa_password = d.pop("FREEIPA_PASSWORD", UNSET)
1966
+
1967
+ freeipa_verify_ssl = d.pop("FREEIPA_VERIFY_SSL", UNSET)
1968
+
1969
+ freeipa_username_prefix = d.pop("FREEIPA_USERNAME_PREFIX", UNSET)
1970
+
1971
+ freeipa_groupname_prefix = d.pop("FREEIPA_GROUPNAME_PREFIX", UNSET)
1972
+
1973
+ freeipa_blacklisted_usernames = cast(list[str], d.pop("FREEIPA_BLACKLISTED_USERNAMES", UNSET))
1974
+
1975
+ freeipa_group_synchronization_enabled = d.pop("FREEIPA_GROUP_SYNCHRONIZATION_ENABLED", UNSET)
1976
+
1977
+ def _parse_keycloak_icon(data: object) -> Union[File, None, Unset]:
1978
+ if data is None:
1979
+ return data
1980
+ if isinstance(data, Unset):
1981
+ return data
1982
+ try:
1983
+ if not isinstance(data, bytes):
1984
+ raise TypeError()
1985
+ keycloak_icon_type_0 = File(payload=BytesIO(data))
1986
+
1987
+ return keycloak_icon_type_0
1988
+ except: # noqa: E722
1989
+ pass
1990
+ return cast(Union[File, None, Unset], data)
1991
+
1992
+ keycloak_icon = _parse_keycloak_icon(d.pop("KEYCLOAK_ICON", UNSET))
1993
+
1994
+ countries = cast(list[str], d.pop("COUNTRIES", UNSET))
1995
+
1996
+ oidc_auth_url = d.pop("OIDC_AUTH_URL", UNSET)
1997
+
1998
+ oidc_introspection_url = d.pop("OIDC_INTROSPECTION_URL", UNSET)
1999
+
2000
+ oidc_client_id = d.pop("OIDC_CLIENT_ID", UNSET)
2001
+
2002
+ oidc_client_secret = d.pop("OIDC_CLIENT_SECRET", UNSET)
2003
+
2004
+ oidc_user_field = d.pop("OIDC_USER_FIELD", UNSET)
2005
+
2006
+ oidc_cache_timeout = d.pop("OIDC_CACHE_TIMEOUT", UNSET)
2007
+
2008
+ oidc_block_creation_of_uninvited_users = d.pop("OIDC_BLOCK_CREATION_OF_UNINVITED_USERS", UNSET)
2009
+
2010
+ deactivate_user_if_no_roles = d.pop("DEACTIVATE_USER_IF_NO_ROLES", UNSET)
2011
+
2012
+ maintenance_announcement_notify_before_minutes = d.pop("MAINTENANCE_ANNOUNCEMENT_NOTIFY_BEFORE_MINUTES", UNSET)
2013
+
2014
+ maintenance_announcement_notify_system = cast(list[str], d.pop("MAINTENANCE_ANNOUNCEMENT_NOTIFY_SYSTEM", UNSET))
2015
+
2016
+ enforce_user_consent_for_offerings = d.pop("ENFORCE_USER_CONSENT_FOR_OFFERINGS", UNSET)
2017
+
2018
+ constance_settings_request_multipart = cls(
2019
+ site_name=site_name,
2020
+ site_description=site_description,
2021
+ homeport_url=homeport_url,
2022
+ rancher_username_input_label=rancher_username_input_label,
2023
+ site_address=site_address,
2024
+ site_email=site_email,
2025
+ site_phone=site_phone,
2026
+ currency_name=currency_name,
2027
+ thumbnail_size=thumbnail_size,
2028
+ anonymous_user_can_view_offerings=anonymous_user_can_view_offerings,
2029
+ anonymous_user_can_view_plans=anonymous_user_can_view_plans,
2030
+ notify_staff_about_approvals=notify_staff_about_approvals,
2031
+ notify_about_resource_change=notify_about_resource_change,
2032
+ disable_sending_notifications_about_resource_update=disable_sending_notifications_about_resource_update,
2033
+ marketplace_landing_page=marketplace_landing_page,
2034
+ enable_stale_resource_notifications=enable_stale_resource_notifications,
2035
+ telemetry_url=telemetry_url,
2036
+ telemetry_version=telemetry_version,
2037
+ script_run_mode=script_run_mode,
2038
+ docker_client=docker_client,
2039
+ docker_run_options=docker_run_options,
2040
+ docker_script_dir=docker_script_dir,
2041
+ docker_remove_container=docker_remove_container,
2042
+ docker_images=docker_images,
2043
+ docker_volume_name=docker_volume_name,
2044
+ k8s_namespace=k8s_namespace,
2045
+ k8s_config_path=k8s_config_path,
2046
+ k8s_job_timeout=k8s_job_timeout,
2047
+ enable_strict_check_accepting_invitation=enable_strict_check_accepting_invitation,
2048
+ invitation_disable_multiple_roles=invitation_disable_multiple_roles,
2049
+ default_idp=default_idp,
2050
+ docs_url=docs_url,
2051
+ short_page_title=short_page_title,
2052
+ full_page_title=full_page_title,
2053
+ brand_color=brand_color,
2054
+ hero_link_label=hero_link_label,
2055
+ hero_link_url=hero_link_url,
2056
+ support_portal_url=support_portal_url,
2057
+ common_footer_text=common_footer_text,
2058
+ common_footer_html=common_footer_html,
2059
+ language_choices=language_choices,
2060
+ disable_dark_theme=disable_dark_theme,
2061
+ powered_by_logo=powered_by_logo,
2062
+ hero_image=hero_image,
2063
+ marketplace_hero_image=marketplace_hero_image,
2064
+ call_management_hero_image=call_management_hero_image,
2065
+ sidebar_logo=sidebar_logo,
2066
+ sidebar_logo_dark=sidebar_logo_dark,
2067
+ sidebar_logo_mobile=sidebar_logo_mobile,
2068
+ sidebar_style=sidebar_style,
2069
+ site_logo=site_logo,
2070
+ login_logo=login_logo,
2071
+ favicon=favicon,
2072
+ offering_logo_placeholder=offering_logo_placeholder,
2073
+ waldur_support_enabled=waldur_support_enabled,
2074
+ waldur_support_active_backend_type=waldur_support_active_backend_type,
2075
+ waldur_support_display_request_type=waldur_support_display_request_type,
2076
+ atlassian_use_old_api=atlassian_use_old_api,
2077
+ atlassian_use_teenage_api=atlassian_use_teenage_api,
2078
+ atlassian_use_automatic_request_mapping=atlassian_use_automatic_request_mapping,
2079
+ atlassian_map_waldur_users_to_servicedesk_agents=atlassian_map_waldur_users_to_servicedesk_agents,
2080
+ atlassian_strange_setting=atlassian_strange_setting,
2081
+ atlassian_api_url=atlassian_api_url,
2082
+ atlassian_username=atlassian_username,
2083
+ atlassian_password=atlassian_password,
2084
+ atlassian_email=atlassian_email,
2085
+ atlassian_token=atlassian_token,
2086
+ atlassian_verify_ssl=atlassian_verify_ssl,
2087
+ atlassian_project_id=atlassian_project_id,
2088
+ atlassian_shared_username=atlassian_shared_username,
2089
+ atlassian_custom_issue_field_mapping_enabled=atlassian_custom_issue_field_mapping_enabled,
2090
+ atlassian_default_offering_issue_type=atlassian_default_offering_issue_type,
2091
+ atlassian_excluded_attachment_types=atlassian_excluded_attachment_types,
2092
+ atlassian_pull_priorities=atlassian_pull_priorities,
2093
+ atlassian_issue_types=atlassian_issue_types,
2094
+ atlassian_description_template=atlassian_description_template,
2095
+ atlassian_summary_template=atlassian_summary_template,
2096
+ atlassian_affected_resource_field=atlassian_affected_resource_field,
2097
+ atlassian_impact_field=atlassian_impact_field,
2098
+ atlassian_organisation_field=atlassian_organisation_field,
2099
+ atlassian_resolution_sla_field=atlassian_resolution_sla_field,
2100
+ atlassian_project_field=atlassian_project_field,
2101
+ atlassian_reporter_field=atlassian_reporter_field,
2102
+ atlassian_caller_field=atlassian_caller_field,
2103
+ atlassian_sla_field=atlassian_sla_field,
2104
+ atlassian_linked_issue_type=atlassian_linked_issue_type,
2105
+ atlassian_satisfaction_field=atlassian_satisfaction_field,
2106
+ atlassian_request_feedback_field=atlassian_request_feedback_field,
2107
+ atlassian_template_field=atlassian_template_field,
2108
+ zammad_api_url=zammad_api_url,
2109
+ zammad_token=zammad_token,
2110
+ zammad_group=zammad_group,
2111
+ zammad_article_type=zammad_article_type,
2112
+ zammad_comment_marker=zammad_comment_marker,
2113
+ zammad_comment_prefix=zammad_comment_prefix,
2114
+ zammad_comment_cooldown_duration=zammad_comment_cooldown_duration,
2115
+ smax_api_url=smax_api_url,
2116
+ smax_tenant_id=smax_tenant_id,
2117
+ smax_login=smax_login,
2118
+ smax_password=smax_password,
2119
+ smax_organisation_field=smax_organisation_field,
2120
+ smax_project_field=smax_project_field,
2121
+ smax_affected_resource_field=smax_affected_resource_field,
2122
+ smax_times_to_pull=smax_times_to_pull,
2123
+ smax_seconds_to_wait=smax_seconds_to_wait,
2124
+ smax_creation_source_name=smax_creation_source_name,
2125
+ smax_requests_offering=smax_requests_offering,
2126
+ smax_verify_ssl=smax_verify_ssl,
2127
+ enable_mock_service_account_backend=enable_mock_service_account_backend,
2128
+ enable_mock_course_account_backend=enable_mock_course_account_backend,
2129
+ proposal_review_duration=proposal_review_duration,
2130
+ user_table_columns=user_table_columns,
2131
+ auto_approve_user_tos=auto_approve_user_tos,
2132
+ freeipa_enabled=freeipa_enabled,
2133
+ freeipa_hostname=freeipa_hostname,
2134
+ freeipa_username=freeipa_username,
2135
+ freeipa_password=freeipa_password,
2136
+ freeipa_verify_ssl=freeipa_verify_ssl,
2137
+ freeipa_username_prefix=freeipa_username_prefix,
2138
+ freeipa_groupname_prefix=freeipa_groupname_prefix,
2139
+ freeipa_blacklisted_usernames=freeipa_blacklisted_usernames,
2140
+ freeipa_group_synchronization_enabled=freeipa_group_synchronization_enabled,
2141
+ keycloak_icon=keycloak_icon,
2142
+ countries=countries,
2143
+ oidc_auth_url=oidc_auth_url,
2144
+ oidc_introspection_url=oidc_introspection_url,
2145
+ oidc_client_id=oidc_client_id,
2146
+ oidc_client_secret=oidc_client_secret,
2147
+ oidc_user_field=oidc_user_field,
2148
+ oidc_cache_timeout=oidc_cache_timeout,
2149
+ oidc_block_creation_of_uninvited_users=oidc_block_creation_of_uninvited_users,
2150
+ deactivate_user_if_no_roles=deactivate_user_if_no_roles,
2151
+ maintenance_announcement_notify_before_minutes=maintenance_announcement_notify_before_minutes,
2152
+ maintenance_announcement_notify_system=maintenance_announcement_notify_system,
2153
+ enforce_user_consent_for_offerings=enforce_user_consent_for_offerings,
2154
+ )
2155
+
2156
+ constance_settings_request_multipart.additional_properties = d
2157
+ return constance_settings_request_multipart
2158
+
2159
+ @property
2160
+ def additional_keys(self) -> list[str]:
2161
+ return list(self.additional_properties.keys())
2162
+
2163
+ def __getitem__(self, key: str) -> Any:
2164
+ return self.additional_properties[key]
2165
+
2166
+ def __setitem__(self, key: str, value: Any) -> None:
2167
+ self.additional_properties[key] = value
2168
+
2169
+ def __delitem__(self, key: str) -> None:
2170
+ del self.additional_properties[key]
2171
+
2172
+ def __contains__(self, key: str) -> bool:
2173
+ return key in self.additional_properties