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
@@ -21,6 +21,7 @@ class NestedRound:
21
21
  """
22
22
  Attributes:
23
23
  uuid (Union[Unset, UUID]):
24
+ slug (Union[Unset, str]):
24
25
  name (Union[Unset, str]):
25
26
  start_time (Union[Unset, datetime.datetime]):
26
27
  cutoff_time (Union[Unset, datetime.datetime]):
@@ -35,6 +36,7 @@ class NestedRound:
35
36
  """
36
37
 
37
38
  uuid: Union[Unset, UUID] = UNSET
39
+ slug: Union[Unset, str] = UNSET
38
40
  name: Union[Unset, str] = UNSET
39
41
  start_time: Union[Unset, datetime.datetime] = UNSET
40
42
  cutoff_time: Union[Unset, datetime.datetime] = UNSET
@@ -53,6 +55,8 @@ class NestedRound:
53
55
  if not isinstance(self.uuid, Unset):
54
56
  uuid = str(self.uuid)
55
57
 
58
+ slug = self.slug
59
+
56
60
  name = self.name
57
61
 
58
62
  start_time: Union[Unset, str] = UNSET
@@ -110,6 +114,8 @@ class NestedRound:
110
114
  field_dict.update({})
111
115
  if uuid is not UNSET:
112
116
  field_dict["uuid"] = uuid
117
+ if slug is not UNSET:
118
+ field_dict["slug"] = slug
113
119
  if name is not UNSET:
114
120
  field_dict["name"] = name
115
121
  if start_time is not UNSET:
@@ -145,6 +151,8 @@ class NestedRound:
145
151
  else:
146
152
  uuid = UUID(_uuid)
147
153
 
154
+ slug = d.pop("slug", UNSET)
155
+
148
156
  name = d.pop("name", UNSET)
149
157
 
150
158
  _start_time = d.pop("start_time", UNSET)
@@ -235,6 +243,7 @@ class NestedRound:
235
243
 
236
244
  nested_round = cls(
237
245
  uuid=uuid,
246
+ slug=slug,
238
247
  name=name,
239
248
  start_time=start_time,
240
249
  cutoff_time=cutoff_time,
@@ -20,6 +20,7 @@ class NestedRoundRequest:
20
20
  Attributes:
21
21
  start_time (datetime.datetime):
22
22
  cutoff_time (datetime.datetime):
23
+ slug (Union[Unset, str]):
23
24
  review_strategy (Union[Unset, ReviewStrategyEnum]):
24
25
  deciding_entity (Union[Unset, DecidingEntityEnum]):
25
26
  allocation_time (Union[Unset, AllocationTimeEnum]):
@@ -31,6 +32,7 @@ class NestedRoundRequest:
31
32
 
32
33
  start_time: datetime.datetime
33
34
  cutoff_time: datetime.datetime
35
+ slug: Union[Unset, str] = UNSET
34
36
  review_strategy: Union[Unset, ReviewStrategyEnum] = UNSET
35
37
  deciding_entity: Union[Unset, DecidingEntityEnum] = UNSET
36
38
  allocation_time: Union[Unset, AllocationTimeEnum] = UNSET
@@ -45,6 +47,8 @@ class NestedRoundRequest:
45
47
 
46
48
  cutoff_time = self.cutoff_time.isoformat()
47
49
 
50
+ slug = self.slug
51
+
48
52
  review_strategy: Union[Unset, str] = UNSET
49
53
  if not isinstance(self.review_strategy, Unset):
50
54
  review_strategy = self.review_strategy.value
@@ -91,6 +95,8 @@ class NestedRoundRequest:
91
95
  "cutoff_time": cutoff_time,
92
96
  }
93
97
  )
98
+ if slug is not UNSET:
99
+ field_dict["slug"] = slug
94
100
  if review_strategy is not UNSET:
95
101
  field_dict["review_strategy"] = review_strategy
96
102
  if deciding_entity is not UNSET:
@@ -115,6 +121,8 @@ class NestedRoundRequest:
115
121
 
116
122
  cutoff_time = isoparse(d.pop("cutoff_time"))
117
123
 
124
+ slug = d.pop("slug", UNSET)
125
+
118
126
  _review_strategy = d.pop("review_strategy", UNSET)
119
127
  review_strategy: Union[Unset, ReviewStrategyEnum]
120
128
  if isinstance(_review_strategy, Unset):
@@ -183,6 +191,7 @@ class NestedRoundRequest:
183
191
  nested_round_request = cls(
184
192
  start_time=start_time,
185
193
  cutoff_time=cutoff_time,
194
+ slug=slug,
186
195
  review_strategy=review_strategy,
187
196
  deciding_entity=deciding_entity,
188
197
  allocation_time=allocation_time,
@@ -10,6 +10,7 @@ from dateutil.parser import isoparse
10
10
  from ..types import UNSET, Unset
11
11
 
12
12
  if TYPE_CHECKING:
13
+ from ..models.notification_context_fields import NotificationContextFields
13
14
  from ..models.notification_template_detail_serializers import NotificationTemplateDetailSerializers
14
15
 
15
16
 
@@ -26,6 +27,8 @@ class Notification:
26
27
  enabled (bool): Indicates if notification is enabled or disabled
27
28
  created (datetime.datetime):
28
29
  templates (list['NotificationTemplateDetailSerializers']):
30
+ context_fields (NotificationContextFields): Finds the notification definition in the global NOTIFICATIONS
31
+ dictionary and returns its 'context' fields.
29
32
  description (Union[Unset, str]):
30
33
  """
31
34
 
@@ -35,6 +38,7 @@ class Notification:
35
38
  enabled: bool
36
39
  created: datetime.datetime
37
40
  templates: list["NotificationTemplateDetailSerializers"]
41
+ context_fields: "NotificationContextFields"
38
42
  description: Union[Unset, str] = UNSET
39
43
  additional_properties: dict[str, Any] = _attrs_field(init=False, factory=dict)
40
44
 
@@ -54,6 +58,8 @@ class Notification:
54
58
  templates_item = templates_item_data.to_dict()
55
59
  templates.append(templates_item)
56
60
 
61
+ context_fields = self.context_fields.to_dict()
62
+
57
63
  description = self.description
58
64
 
59
65
  field_dict: dict[str, Any] = {}
@@ -66,6 +72,7 @@ class Notification:
66
72
  "enabled": enabled,
67
73
  "created": created,
68
74
  "templates": templates,
75
+ "context_fields": context_fields,
69
76
  }
70
77
  )
71
78
  if description is not UNSET:
@@ -75,6 +82,7 @@ class Notification:
75
82
 
76
83
  @classmethod
77
84
  def from_dict(cls: type[T], src_dict: Mapping[str, Any]) -> T:
85
+ from ..models.notification_context_fields import NotificationContextFields
78
86
  from ..models.notification_template_detail_serializers import NotificationTemplateDetailSerializers
79
87
 
80
88
  d = dict(src_dict)
@@ -95,6 +103,8 @@ class Notification:
95
103
 
96
104
  templates.append(templates_item)
97
105
 
106
+ context_fields = NotificationContextFields.from_dict(d.pop("context_fields"))
107
+
98
108
  description = d.pop("description", UNSET)
99
109
 
100
110
  notification = cls(
@@ -104,6 +114,7 @@ class Notification:
104
114
  enabled=enabled,
105
115
  created=created,
106
116
  templates=templates,
117
+ context_fields=context_fields,
107
118
  description=description,
108
119
  )
109
120
 
@@ -0,0 +1,47 @@
1
+ from collections.abc import Mapping
2
+ from typing import Any, TypeVar
3
+
4
+ from attrs import define as _attrs_define
5
+ from attrs import field as _attrs_field
6
+
7
+ T = TypeVar("T", bound="NotificationContextFields")
8
+
9
+
10
+ @_attrs_define
11
+ class NotificationContextFields:
12
+ """Finds the notification definition in the global NOTIFICATIONS
13
+ dictionary and returns its 'context' fields.
14
+
15
+ """
16
+
17
+ additional_properties: dict[str, Any] = _attrs_field(init=False, factory=dict)
18
+
19
+ def to_dict(self) -> dict[str, Any]:
20
+ field_dict: dict[str, Any] = {}
21
+ field_dict.update(self.additional_properties)
22
+
23
+ return field_dict
24
+
25
+ @classmethod
26
+ def from_dict(cls: type[T], src_dict: Mapping[str, Any]) -> T:
27
+ d = dict(src_dict)
28
+ notification_context_fields = cls()
29
+
30
+ notification_context_fields.additional_properties = d
31
+ return notification_context_fields
32
+
33
+ @property
34
+ def additional_keys(self) -> list[str]:
35
+ return list(self.additional_properties.keys())
36
+
37
+ def __getitem__(self, key: str) -> Any:
38
+ return self.additional_properties[key]
39
+
40
+ def __setitem__(self, key: str, value: Any) -> None:
41
+ self.additional_properties[key] = value
42
+
43
+ def __delitem__(self, key: str) -> None:
44
+ del self.additional_properties[key]
45
+
46
+ def __contains__(self, key: str) -> bool:
47
+ return key in self.additional_properties
@@ -95,6 +95,7 @@ class Offering:
95
95
  parent_name (Union[None, Unset, str]):
96
96
  backend_metadata (Union[Unset, Any]):
97
97
  has_compliance_requirements (Union[Unset, bool]):
98
+ compliance_checklist (Union[None, Unset, str]):
98
99
  user_has_consent (Union[Unset, bool]):
99
100
  googlecalendar (Union[Unset, GoogleCalendar]):
100
101
  """
@@ -159,6 +160,7 @@ class Offering:
159
160
  parent_name: Union[None, Unset, str] = UNSET
160
161
  backend_metadata: Union[Unset, Any] = UNSET
161
162
  has_compliance_requirements: Union[Unset, bool] = UNSET
163
+ compliance_checklist: Union[None, Unset, str] = UNSET
162
164
  user_has_consent: Union[Unset, bool] = UNSET
163
165
  googlecalendar: Union[Unset, "GoogleCalendar"] = UNSET
164
166
  additional_properties: dict[str, Any] = _attrs_field(init=False, factory=dict)
@@ -438,6 +440,12 @@ class Offering:
438
440
 
439
441
  has_compliance_requirements = self.has_compliance_requirements
440
442
 
443
+ compliance_checklist: Union[None, Unset, str]
444
+ if isinstance(self.compliance_checklist, Unset):
445
+ compliance_checklist = UNSET
446
+ else:
447
+ compliance_checklist = self.compliance_checklist
448
+
441
449
  user_has_consent = self.user_has_consent
442
450
 
443
451
  googlecalendar: Union[Unset, dict[str, Any]] = UNSET
@@ -567,6 +575,8 @@ class Offering:
567
575
  field_dict["backend_metadata"] = backend_metadata
568
576
  if has_compliance_requirements is not UNSET:
569
577
  field_dict["has_compliance_requirements"] = has_compliance_requirements
578
+ if compliance_checklist is not UNSET:
579
+ field_dict["compliance_checklist"] = compliance_checklist
570
580
  if user_has_consent is not UNSET:
571
581
  field_dict["user_has_consent"] = user_has_consent
572
582
  if googlecalendar is not UNSET:
@@ -995,6 +1005,15 @@ class Offering:
995
1005
 
996
1006
  has_compliance_requirements = d.pop("has_compliance_requirements", UNSET)
997
1007
 
1008
+ def _parse_compliance_checklist(data: object) -> Union[None, Unset, str]:
1009
+ if data is None:
1010
+ return data
1011
+ if isinstance(data, Unset):
1012
+ return data
1013
+ return cast(Union[None, Unset, str], data)
1014
+
1015
+ compliance_checklist = _parse_compliance_checklist(d.pop("compliance_checklist", UNSET))
1016
+
998
1017
  user_has_consent = d.pop("user_has_consent", UNSET)
999
1018
 
1000
1019
  _googlecalendar = d.pop("googlecalendar", UNSET)
@@ -1065,6 +1084,7 @@ class Offering:
1065
1084
  parent_name=parent_name,
1066
1085
  backend_metadata=backend_metadata,
1067
1086
  has_compliance_requirements=has_compliance_requirements,
1087
+ compliance_checklist=compliance_checklist,
1068
1088
  user_has_consent=user_has_consent,
1069
1089
  googlecalendar=googlecalendar,
1070
1090
  )
@@ -0,0 +1,82 @@
1
+ from collections.abc import Mapping
2
+ from typing import Any, TypeVar, Union, cast
3
+ from uuid import UUID
4
+
5
+ from attrs import define as _attrs_define
6
+ from attrs import field as _attrs_field
7
+
8
+ from ..types import UNSET, Unset
9
+
10
+ T = TypeVar("T", bound="OfferingComplianceChecklistUpdateRequest")
11
+
12
+
13
+ @_attrs_define
14
+ class OfferingComplianceChecklistUpdateRequest:
15
+ """
16
+ Attributes:
17
+ compliance_checklist (Union[None, UUID, Unset]):
18
+ """
19
+
20
+ compliance_checklist: Union[None, UUID, Unset] = UNSET
21
+ additional_properties: dict[str, Any] = _attrs_field(init=False, factory=dict)
22
+
23
+ def to_dict(self) -> dict[str, Any]:
24
+ compliance_checklist: Union[None, Unset, str]
25
+ if isinstance(self.compliance_checklist, Unset):
26
+ compliance_checklist = UNSET
27
+ elif isinstance(self.compliance_checklist, UUID):
28
+ compliance_checklist = str(self.compliance_checklist)
29
+ else:
30
+ compliance_checklist = self.compliance_checklist
31
+
32
+ field_dict: dict[str, Any] = {}
33
+ field_dict.update(self.additional_properties)
34
+ field_dict.update({})
35
+ if compliance_checklist is not UNSET:
36
+ field_dict["compliance_checklist"] = compliance_checklist
37
+
38
+ return field_dict
39
+
40
+ @classmethod
41
+ def from_dict(cls: type[T], src_dict: Mapping[str, Any]) -> T:
42
+ d = dict(src_dict)
43
+
44
+ def _parse_compliance_checklist(data: object) -> Union[None, UUID, Unset]:
45
+ if data is None:
46
+ return data
47
+ if isinstance(data, Unset):
48
+ return data
49
+ try:
50
+ if not isinstance(data, str):
51
+ raise TypeError()
52
+ compliance_checklist_type_0 = UUID(data)
53
+
54
+ return compliance_checklist_type_0
55
+ except: # noqa: E722
56
+ pass
57
+ return cast(Union[None, UUID, Unset], data)
58
+
59
+ compliance_checklist = _parse_compliance_checklist(d.pop("compliance_checklist", UNSET))
60
+
61
+ offering_compliance_checklist_update_request = cls(
62
+ compliance_checklist=compliance_checklist,
63
+ )
64
+
65
+ offering_compliance_checklist_update_request.additional_properties = d
66
+ return offering_compliance_checklist_update_request
67
+
68
+ @property
69
+ def additional_keys(self) -> list[str]:
70
+ return list(self.additional_properties.keys())
71
+
72
+ def __getitem__(self, key: str) -> Any:
73
+ return self.additional_properties[key]
74
+
75
+ def __setitem__(self, key: str, value: Any) -> None:
76
+ self.additional_properties[key] = value
77
+
78
+ def __delitem__(self, key: str) -> None:
79
+ del self.additional_properties[key]
80
+
81
+ def __contains__(self, key: str) -> bool:
82
+ return key in self.additional_properties
@@ -97,6 +97,7 @@ class OfferingCreate:
97
97
  backend_id (Union[Unset, str]):
98
98
  image (Union[None, Unset, str]):
99
99
  backend_metadata (Union[Unset, Any]):
100
+ compliance_checklist (Union[None, Unset, str]):
100
101
  """
101
102
 
102
103
  url: str
@@ -161,6 +162,7 @@ class OfferingCreate:
161
162
  backend_id: Union[Unset, str] = UNSET
162
163
  image: Union[None, Unset, str] = UNSET
163
164
  backend_metadata: Union[Unset, Any] = UNSET
165
+ compliance_checklist: Union[None, Unset, str] = UNSET
164
166
  additional_properties: dict[str, Any] = _attrs_field(init=False, factory=dict)
165
167
 
166
168
  def to_dict(self) -> dict[str, Any]:
@@ -379,6 +381,12 @@ class OfferingCreate:
379
381
 
380
382
  backend_metadata = self.backend_metadata
381
383
 
384
+ compliance_checklist: Union[None, Unset, str]
385
+ if isinstance(self.compliance_checklist, Unset):
386
+ compliance_checklist = UNSET
387
+ else:
388
+ compliance_checklist = self.compliance_checklist
389
+
382
390
  field_dict: dict[str, Any] = {}
383
391
  field_dict.update(self.additional_properties)
384
392
  field_dict.update(
@@ -471,6 +479,8 @@ class OfferingCreate:
471
479
  field_dict["image"] = image
472
480
  if backend_metadata is not UNSET:
473
481
  field_dict["backend_metadata"] = backend_metadata
482
+ if compliance_checklist is not UNSET:
483
+ field_dict["compliance_checklist"] = compliance_checklist
474
484
 
475
485
  return field_dict
476
486
 
@@ -839,6 +849,15 @@ class OfferingCreate:
839
849
 
840
850
  backend_metadata = d.pop("backend_metadata", UNSET)
841
851
 
852
+ def _parse_compliance_checklist(data: object) -> Union[None, Unset, str]:
853
+ if data is None:
854
+ return data
855
+ if isinstance(data, Unset):
856
+ return data
857
+ return cast(Union[None, Unset, str], data)
858
+
859
+ compliance_checklist = _parse_compliance_checklist(d.pop("compliance_checklist", UNSET))
860
+
842
861
  offering_create = cls(
843
862
  url=url,
844
863
  uuid=uuid,
@@ -902,6 +921,7 @@ class OfferingCreate:
902
921
  backend_id=backend_id,
903
922
  image=image,
904
923
  backend_metadata=backend_metadata,
924
+ compliance_checklist=compliance_checklist,
905
925
  )
906
926
 
907
927
  offering_create.additional_properties = d
@@ -51,6 +51,7 @@ class OfferingCreateRequest:
51
51
  backend_id (Union[Unset, str]):
52
52
  image (Union[File, None, Unset]):
53
53
  backend_metadata (Union[Unset, Any]):
54
+ compliance_checklist (Union[None, Unset, str]):
54
55
  limits (Union[Unset, OfferingCreateRequestLimits]):
55
56
  """
56
57
 
@@ -81,6 +82,7 @@ class OfferingCreateRequest:
81
82
  backend_id: Union[Unset, str] = UNSET
82
83
  image: Union[File, None, Unset] = UNSET
83
84
  backend_metadata: Union[Unset, Any] = UNSET
85
+ compliance_checklist: Union[None, Unset, str] = UNSET
84
86
  limits: Union[Unset, "OfferingCreateRequestLimits"] = UNSET
85
87
  additional_properties: dict[str, Any] = _attrs_field(init=False, factory=dict)
86
88
 
@@ -185,6 +187,12 @@ class OfferingCreateRequest:
185
187
 
186
188
  backend_metadata = self.backend_metadata
187
189
 
190
+ compliance_checklist: Union[None, Unset, str]
191
+ if isinstance(self.compliance_checklist, Unset):
192
+ compliance_checklist = UNSET
193
+ else:
194
+ compliance_checklist = self.compliance_checklist
195
+
188
196
  limits: Union[Unset, dict[str, Any]] = UNSET
189
197
  if not isinstance(self.limits, Unset):
190
198
  limits = self.limits.to_dict()
@@ -246,6 +254,8 @@ class OfferingCreateRequest:
246
254
  field_dict["image"] = image
247
255
  if backend_metadata is not UNSET:
248
256
  field_dict["backend_metadata"] = backend_metadata
257
+ if compliance_checklist is not UNSET:
258
+ field_dict["compliance_checklist"] = compliance_checklist
249
259
  if limits is not UNSET:
250
260
  field_dict["limits"] = limits
251
261
 
@@ -401,6 +411,15 @@ class OfferingCreateRequest:
401
411
 
402
412
  backend_metadata = d.pop("backend_metadata", UNSET)
403
413
 
414
+ def _parse_compliance_checklist(data: object) -> Union[None, Unset, str]:
415
+ if data is None:
416
+ return data
417
+ if isinstance(data, Unset):
418
+ return data
419
+ return cast(Union[None, Unset, str], data)
420
+
421
+ compliance_checklist = _parse_compliance_checklist(d.pop("compliance_checklist", UNSET))
422
+
404
423
  _limits = d.pop("limits", UNSET)
405
424
  limits: Union[Unset, OfferingCreateRequestLimits]
406
425
  if isinstance(_limits, Unset):
@@ -436,6 +455,7 @@ class OfferingCreateRequest:
436
455
  backend_id=backend_id,
437
456
  image=image,
438
457
  backend_metadata=backend_metadata,
458
+ compliance_checklist=compliance_checklist,
439
459
  limits=limits,
440
460
  )
441
461
 
@@ -13,13 +13,15 @@ from ..types import UNSET, File, Unset
13
13
  if TYPE_CHECKING:
14
14
  from ..models.base_provider_plan_request import BaseProviderPlanRequest
15
15
  from ..models.offering_component_request import OfferingComponentRequest
16
+ from ..models.offering_create_request_form_limits import OfferingCreateRequestFormLimits
17
+ from ..models.offering_options_request import OfferingOptionsRequest
16
18
 
17
19
 
18
- T = TypeVar("T", bound="ProviderOfferingDetailsRequest")
20
+ T = TypeVar("T", bound="OfferingCreateRequestForm")
19
21
 
20
22
 
21
23
  @_attrs_define
22
- class ProviderOfferingDetailsRequest:
24
+ class OfferingCreateRequestForm:
23
25
  """
24
26
  Attributes:
25
27
  name (str):
@@ -32,6 +34,8 @@ class ProviderOfferingDetailsRequest:
32
34
  access_url (Union[Unset, str]): Publicly accessible offering access URL
33
35
  customer (Union[None, Unset, str]):
34
36
  attributes (Union[Unset, Any]):
37
+ options (Union[Unset, OfferingOptionsRequest]):
38
+ resource_options (Union[Unset, OfferingOptionsRequest]):
35
39
  components (Union[Unset, list['OfferingComponentRequest']]):
36
40
  vendor_details (Union[Unset, str]):
37
41
  getting_started (Union[Unset, str]):
@@ -47,6 +51,8 @@ class ProviderOfferingDetailsRequest:
47
51
  backend_id (Union[Unset, str]):
48
52
  image (Union[File, None, Unset]):
49
53
  backend_metadata (Union[Unset, Any]):
54
+ compliance_checklist (Union[None, Unset, str]):
55
+ limits (Union[Unset, OfferingCreateRequestFormLimits]):
50
56
  """
51
57
 
52
58
  name: str
@@ -59,6 +65,8 @@ class ProviderOfferingDetailsRequest:
59
65
  access_url: Union[Unset, str] = UNSET
60
66
  customer: Union[None, Unset, str] = UNSET
61
67
  attributes: Union[Unset, Any] = UNSET
68
+ options: Union[Unset, "OfferingOptionsRequest"] = UNSET
69
+ resource_options: Union[Unset, "OfferingOptionsRequest"] = UNSET
62
70
  components: Union[Unset, list["OfferingComponentRequest"]] = UNSET
63
71
  vendor_details: Union[Unset, str] = UNSET
64
72
  getting_started: Union[Unset, str] = UNSET
@@ -74,6 +82,8 @@ class ProviderOfferingDetailsRequest:
74
82
  backend_id: Union[Unset, str] = UNSET
75
83
  image: Union[File, None, Unset] = UNSET
76
84
  backend_metadata: Union[Unset, Any] = UNSET
85
+ compliance_checklist: Union[None, Unset, str] = UNSET
86
+ limits: Union[Unset, "OfferingCreateRequestFormLimits"] = UNSET
77
87
  additional_properties: dict[str, Any] = _attrs_field(init=False, factory=dict)
78
88
 
79
89
  def to_dict(self) -> dict[str, Any]:
@@ -101,6 +111,14 @@ class ProviderOfferingDetailsRequest:
101
111
 
102
112
  attributes = self.attributes
103
113
 
114
+ options: Union[Unset, dict[str, Any]] = UNSET
115
+ if not isinstance(self.options, Unset):
116
+ options = self.options.to_dict()
117
+
118
+ resource_options: Union[Unset, dict[str, Any]] = UNSET
119
+ if not isinstance(self.resource_options, Unset):
120
+ resource_options = self.resource_options.to_dict()
121
+
104
122
  components: Union[Unset, list[dict[str, Any]]] = UNSET
105
123
  if not isinstance(self.components, Unset):
106
124
  components = []
@@ -169,6 +187,16 @@ class ProviderOfferingDetailsRequest:
169
187
 
170
188
  backend_metadata = self.backend_metadata
171
189
 
190
+ compliance_checklist: Union[None, Unset, str]
191
+ if isinstance(self.compliance_checklist, Unset):
192
+ compliance_checklist = UNSET
193
+ else:
194
+ compliance_checklist = self.compliance_checklist
195
+
196
+ limits: Union[Unset, dict[str, Any]] = UNSET
197
+ if not isinstance(self.limits, Unset):
198
+ limits = self.limits.to_dict()
199
+
172
200
  field_dict: dict[str, Any] = {}
173
201
  field_dict.update(self.additional_properties)
174
202
  field_dict.update(
@@ -192,6 +220,10 @@ class ProviderOfferingDetailsRequest:
192
220
  field_dict["customer"] = customer
193
221
  if attributes is not UNSET:
194
222
  field_dict["attributes"] = attributes
223
+ if options is not UNSET:
224
+ field_dict["options"] = options
225
+ if resource_options is not UNSET:
226
+ field_dict["resource_options"] = resource_options
195
227
  if components is not UNSET:
196
228
  field_dict["components"] = components
197
229
  if vendor_details is not UNSET:
@@ -222,6 +254,10 @@ class ProviderOfferingDetailsRequest:
222
254
  field_dict["image"] = image
223
255
  if backend_metadata is not UNSET:
224
256
  field_dict["backend_metadata"] = backend_metadata
257
+ if compliance_checklist is not UNSET:
258
+ field_dict["compliance_checklist"] = compliance_checklist
259
+ if limits is not UNSET:
260
+ field_dict["limits"] = limits
225
261
 
226
262
  return field_dict
227
263
 
@@ -229,6 +265,8 @@ class ProviderOfferingDetailsRequest:
229
265
  def from_dict(cls: type[T], src_dict: Mapping[str, Any]) -> T:
230
266
  from ..models.base_provider_plan_request import BaseProviderPlanRequest
231
267
  from ..models.offering_component_request import OfferingComponentRequest
268
+ from ..models.offering_create_request_form_limits import OfferingCreateRequestFormLimits
269
+ from ..models.offering_options_request import OfferingOptionsRequest
232
270
 
233
271
  d = dict(src_dict)
234
272
  name = d.pop("name")
@@ -258,6 +296,20 @@ class ProviderOfferingDetailsRequest:
258
296
 
259
297
  attributes = d.pop("attributes", UNSET)
260
298
 
299
+ _options = d.pop("options", UNSET)
300
+ options: Union[Unset, OfferingOptionsRequest]
301
+ if isinstance(_options, Unset):
302
+ options = UNSET
303
+ else:
304
+ options = OfferingOptionsRequest.from_dict(_options)
305
+
306
+ _resource_options = d.pop("resource_options", UNSET)
307
+ resource_options: Union[Unset, OfferingOptionsRequest]
308
+ if isinstance(_resource_options, Unset):
309
+ resource_options = UNSET
310
+ else:
311
+ resource_options = OfferingOptionsRequest.from_dict(_resource_options)
312
+
261
313
  components = []
262
314
  _components = d.pop("components", UNSET)
263
315
  for components_item_data in _components or []:
@@ -359,7 +411,23 @@ class ProviderOfferingDetailsRequest:
359
411
 
360
412
  backend_metadata = d.pop("backend_metadata", UNSET)
361
413
 
362
- provider_offering_details_request = cls(
414
+ def _parse_compliance_checklist(data: object) -> Union[None, Unset, str]:
415
+ if data is None:
416
+ return data
417
+ if isinstance(data, Unset):
418
+ return data
419
+ return cast(Union[None, Unset, str], data)
420
+
421
+ compliance_checklist = _parse_compliance_checklist(d.pop("compliance_checklist", UNSET))
422
+
423
+ _limits = d.pop("limits", UNSET)
424
+ limits: Union[Unset, OfferingCreateRequestFormLimits]
425
+ if isinstance(_limits, Unset):
426
+ limits = UNSET
427
+ else:
428
+ limits = OfferingCreateRequestFormLimits.from_dict(_limits)
429
+
430
+ offering_create_request_form = cls(
363
431
  name=name,
364
432
  category=category,
365
433
  type_=type_,
@@ -370,6 +438,8 @@ class ProviderOfferingDetailsRequest:
370
438
  access_url=access_url,
371
439
  customer=customer,
372
440
  attributes=attributes,
441
+ options=options,
442
+ resource_options=resource_options,
373
443
  components=components,
374
444
  vendor_details=vendor_details,
375
445
  getting_started=getting_started,
@@ -385,10 +455,12 @@ class ProviderOfferingDetailsRequest:
385
455
  backend_id=backend_id,
386
456
  image=image,
387
457
  backend_metadata=backend_metadata,
458
+ compliance_checklist=compliance_checklist,
459
+ limits=limits,
388
460
  )
389
461
 
390
- provider_offering_details_request.additional_properties = d
391
- return provider_offering_details_request
462
+ offering_create_request_form.additional_properties = d
463
+ return offering_create_request_form
392
464
 
393
465
  @property
394
466
  def additional_keys(self) -> list[str]: