waldur-api-client 7.8.2__py3-none-any.whl → 7.8.4__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 (174) hide show
  1. waldur_api_client/api/booking_resources/booking_resources_count.py +18 -0
  2. waldur_api_client/api/booking_resources/booking_resources_list.py +18 -0
  3. waldur_api_client/api/marketplace_offering_users/marketplace_offering_users_checklist_template_count.py +125 -0
  4. waldur_api_client/api/marketplace_offering_users/marketplace_offering_users_checklist_template_retrieve.py +126 -0
  5. waldur_api_client/api/marketplace_project_update_requests/marketplace_project_update_requests_count.py +18 -18
  6. waldur_api_client/api/marketplace_project_update_requests/marketplace_project_update_requests_list.py +18 -18
  7. waldur_api_client/api/marketplace_provider_offerings/marketplace_provider_offerings_tos_stats_retrieve.py +146 -0
  8. waldur_api_client/api/marketplace_provider_resources/marketplace_provider_resources_count.py +18 -0
  9. waldur_api_client/api/marketplace_provider_resources/marketplace_provider_resources_list.py +18 -0
  10. waldur_api_client/api/marketplace_provider_resources/marketplace_provider_resources_move_resource.py +22 -0
  11. waldur_api_client/api/marketplace_provider_resources/marketplace_provider_resources_update_options.py +168 -0
  12. waldur_api_client/api/marketplace_resources/marketplace_resources_count.py +18 -0
  13. waldur_api_client/api/marketplace_resources/marketplace_resources_list.py +18 -0
  14. waldur_api_client/api/marketplace_resources/marketplace_resources_move_resource.py +22 -0
  15. waldur_api_client/api/marketplace_resources/marketplace_resources_renew.py +166 -0
  16. waldur_api_client/api/marketplace_service_providers/service_provider_checklists_summary.py +189 -0
  17. waldur_api_client/api/onboarding/__init__.py +1 -0
  18. waldur_api_client/api/onboarding/onboarding_supported_countries_retrieve.py +74 -0
  19. waldur_api_client/api/onboarding_justifications/__init__.py +1 -0
  20. waldur_api_client/api/onboarding_justifications/onboarding_justifications_attach_document.py +211 -0
  21. waldur_api_client/api/onboarding_justifications/onboarding_justifications_count.py +172 -0
  22. waldur_api_client/api/onboarding_justifications/onboarding_justifications_create.py +150 -0
  23. waldur_api_client/api/onboarding_justifications/onboarding_justifications_create_justification.py +154 -0
  24. waldur_api_client/api/onboarding_justifications/onboarding_justifications_destroy.py +89 -0
  25. waldur_api_client/api/onboarding_justifications/onboarding_justifications_list.py +175 -0
  26. waldur_api_client/api/onboarding_justifications/onboarding_justifications_partial_update.py +164 -0
  27. waldur_api_client/api/onboarding_justifications/onboarding_justifications_retrieve.py +142 -0
  28. waldur_api_client/api/onboarding_justifications/onboarding_justifications_update.py +164 -0
  29. waldur_api_client/api/onboarding_verifications/__init__.py +1 -0
  30. waldur_api_client/api/onboarding_verifications/onboarding_verifications_count.py +172 -0
  31. waldur_api_client/api/onboarding_verifications/onboarding_verifications_create.py +150 -0
  32. waldur_api_client/api/onboarding_verifications/onboarding_verifications_create_customer.py +144 -0
  33. waldur_api_client/api/onboarding_verifications/onboarding_verifications_destroy.py +89 -0
  34. waldur_api_client/api/onboarding_verifications/onboarding_verifications_list.py +175 -0
  35. waldur_api_client/api/onboarding_verifications/onboarding_verifications_partial_update.py +164 -0
  36. waldur_api_client/api/onboarding_verifications/onboarding_verifications_retrieve.py +142 -0
  37. waldur_api_client/api/onboarding_verifications/onboarding_verifications_update.py +164 -0
  38. waldur_api_client/api/onboarding_verifications/onboarding_verifications_validate_company.py +154 -0
  39. waldur_api_client/api/openstack_backups/openstack_backups_restore.py +10 -10
  40. waldur_api_client/api/openstack_network_rbac_policies/openstack_network_rbac_policies_count.py +33 -0
  41. waldur_api_client/api/openstack_network_rbac_policies/openstack_network_rbac_policies_create.py +154 -0
  42. waldur_api_client/api/openstack_network_rbac_policies/openstack_network_rbac_policies_destroy.py +91 -0
  43. waldur_api_client/api/openstack_network_rbac_policies/openstack_network_rbac_policies_list.py +33 -0
  44. waldur_api_client/api/openstack_network_rbac_policies/openstack_network_rbac_policies_partial_update.py +164 -0
  45. waldur_api_client/api/openstack_network_rbac_policies/openstack_network_rbac_policies_update.py +164 -0
  46. waldur_api_client/api/openstack_networks/openstack_networks_rbac_policy_create.py +24 -22
  47. waldur_api_client/api/projects/projects_checklist_template_count.py +125 -0
  48. waldur_api_client/api/projects/projects_checklist_template_retrieve.py +126 -0
  49. waldur_api_client/api/proposal_proposals/proposal_proposals_checklist_template_count.py +125 -0
  50. waldur_api_client/api/proposal_proposals/proposal_proposals_checklist_template_retrieve.py +126 -0
  51. waldur_api_client/api/proposal_protected_calls/proposal_protected_calls_offerings_list.py +15 -0
  52. waldur_api_client/api/rancher_services/rancher_services_create.py +22 -22
  53. waldur_api_client/models/__init__.py +88 -10
  54. waldur_api_client/models/azure_sql_server_create_order_attributes.py +5 -10
  55. waldur_api_client/models/azure_virtual_machine_create_order_attributes.py +7 -12
  56. waldur_api_client/models/booking_resource.py +9 -34
  57. waldur_api_client/models/booking_resources_list_field_item.py +1 -3
  58. waldur_api_client/models/booking_resources_retrieve_field_item.py +1 -3
  59. waldur_api_client/models/call_round.py +4 -4
  60. waldur_api_client/models/checklist_template.py +99 -0
  61. waldur_api_client/models/checklist_template_checklist.py +44 -0
  62. waldur_api_client/models/constance_settings.py +54 -0
  63. waldur_api_client/models/constance_settings_request.py +54 -0
  64. waldur_api_client/models/constance_settings_request_form.py +54 -0
  65. waldur_api_client/models/constance_settings_request_multipart.py +99 -0
  66. waldur_api_client/models/customer.py +9 -0
  67. waldur_api_client/models/customers_list_field_item.py +1 -0
  68. waldur_api_client/models/customers_retrieve_field_item.py +1 -0
  69. waldur_api_client/models/deprecated_network_rbac_policy.py +137 -0
  70. waldur_api_client/models/deprecated_network_rbac_policy_request.py +78 -0
  71. waldur_api_client/models/event_groups_enum.py +1 -0
  72. waldur_api_client/models/event_types_enum.py +3 -0
  73. waldur_api_client/models/generic_order_attributes.py +1 -2
  74. waldur_api_client/models/managed_rancher_cluster_resources_list_field_item.py +1 -3
  75. waldur_api_client/models/managed_rancher_cluster_resources_retrieve_field_item.py +1 -3
  76. waldur_api_client/models/marketplace_orders_list_field_item.py +1 -3
  77. waldur_api_client/models/marketplace_orders_retrieve_field_item.py +1 -3
  78. waldur_api_client/models/marketplace_provider_resources_details_retrieve_field_item.py +1 -3
  79. waldur_api_client/models/marketplace_provider_resources_list_field_item.py +1 -3
  80. waldur_api_client/models/marketplace_provider_resources_retrieve_field_item.py +1 -3
  81. waldur_api_client/models/marketplace_resources_details_retrieve_field_item.py +1 -3
  82. waldur_api_client/models/marketplace_resources_list_field_item.py +1 -3
  83. waldur_api_client/models/marketplace_resources_retrieve_field_item.py +1 -3
  84. waldur_api_client/models/marketplace_robot_accounts_list_field_item.py +2 -1
  85. waldur_api_client/models/marketplace_robot_accounts_retrieve_field_item.py +2 -1
  86. waldur_api_client/models/marketplace_service_providers_projects_list_field_item.py +1 -0
  87. waldur_api_client/models/merged_plugin_options.py +27 -0
  88. waldur_api_client/models/merged_plugin_options_request.py +27 -0
  89. waldur_api_client/models/move_resource_request.py +65 -0
  90. waldur_api_client/models/nested_round.py +5 -5
  91. waldur_api_client/models/network_rbac_policy_request.py +8 -0
  92. waldur_api_client/models/notification.py +9 -9
  93. waldur_api_client/models/{notification_context_fields.py → notification_context_schema.py} +6 -6
  94. waldur_api_client/models/notification_template_detail_serializers.py +9 -3
  95. waldur_api_client/models/offering_component.py +79 -0
  96. waldur_api_client/models/offering_component_request.py +80 -0
  97. waldur_api_client/models/onboarding_company_validation_request_request.py +88 -0
  98. waldur_api_client/models/onboarding_justification.py +183 -0
  99. waldur_api_client/models/onboarding_justification_create_request.py +68 -0
  100. waldur_api_client/models/onboarding_justification_documentation.py +108 -0
  101. waldur_api_client/models/onboarding_justification_documentation_request.py +84 -0
  102. waldur_api_client/models/onboarding_justification_documentation_request_form.py +84 -0
  103. waldur_api_client/models/onboarding_justification_documentation_request_multipart.py +98 -0
  104. waldur_api_client/models/onboarding_justification_request.py +75 -0
  105. waldur_api_client/models/onboarding_verification.py +250 -0
  106. waldur_api_client/models/onboarding_verification_request.py +128 -0
  107. waldur_api_client/models/onboarding_verification_status_enum.py +12 -0
  108. waldur_api_client/models/open_stack_backup_restoration.py +3 -5
  109. waldur_api_client/models/open_stack_backup_restoration_create_request.py +141 -0
  110. waldur_api_client/models/open_stack_backup_restoration_request.py +22 -30
  111. waldur_api_client/models/open_stack_create_floating_ip_request.py +89 -0
  112. waldur_api_client/models/open_stack_create_port_request.py +104 -0
  113. waldur_api_client/models/open_stack_instance.py +13 -29
  114. waldur_api_client/models/open_stack_instance_create_order_attributes.py +67 -54
  115. waldur_api_client/models/open_stack_instance_floating_i_ps_update_request.py +5 -5
  116. waldur_api_client/models/open_stack_instance_ports_update_request.py +5 -5
  117. waldur_api_client/models/open_stack_instance_request.py +1 -67
  118. waldur_api_client/models/open_stack_nested_port_request.py +0 -9
  119. waldur_api_client/models/{open_stack_nested_security_group_request.py → open_stack_security_group_hyperlink_request.py} +14 -14
  120. waldur_api_client/models/open_stack_server_group_hyperlink_request.py +59 -0
  121. waldur_api_client/models/open_stack_tenant_create_order_attributes.py +9 -14
  122. waldur_api_client/models/open_stack_volume_create_order_attributes.py +8 -13
  123. waldur_api_client/models/openstack_instances_list_field_item.py +0 -7
  124. waldur_api_client/models/openstack_instances_retrieve_field_item.py +0 -7
  125. waldur_api_client/models/order_create.py +8 -0
  126. waldur_api_client/models/order_details.py +9 -34
  127. waldur_api_client/models/patched_network_rbac_policy_request.py +85 -0
  128. waldur_api_client/models/patched_onboarding_justification_request.py +77 -0
  129. waldur_api_client/models/patched_onboarding_verification_request.py +128 -0
  130. waldur_api_client/models/patched_open_stack_instance_request.py +1 -67
  131. waldur_api_client/models/patched_project_credit_request.py +13 -0
  132. waldur_api_client/models/patched_project_request.py +1 -2
  133. waldur_api_client/models/patched_project_request_form.py +1 -2
  134. waldur_api_client/models/patched_project_request_multipart.py +1 -2
  135. waldur_api_client/models/project.py +10 -2
  136. waldur_api_client/models/project_credit.py +13 -0
  137. waldur_api_client/models/project_credit_request.py +13 -0
  138. waldur_api_client/models/{rancher_nested_security_group.py → project_hyperlink_request.py} +5 -5
  139. waldur_api_client/models/project_request.py +1 -2
  140. waldur_api_client/models/project_request_form.py +1 -2
  141. waldur_api_client/models/project_request_multipart.py +1 -2
  142. waldur_api_client/models/projects_list_field_item.py +1 -0
  143. waldur_api_client/models/projects_retrieve_field_item.py +1 -0
  144. waldur_api_client/models/protected_round.py +4 -4
  145. waldur_api_client/models/question.py +102 -0
  146. waldur_api_client/models/{open_stack_data_volume.py → question_options.py} +27 -29
  147. waldur_api_client/models/rancher_clusters_list_field_item.py +0 -1
  148. waldur_api_client/models/rancher_clusters_retrieve_field_item.py +0 -1
  149. waldur_api_client/models/rancher_service_create.py +508 -0
  150. waldur_api_client/models/rancher_service_create_marketplace_offering_plugin_options_type_0.py +44 -0
  151. waldur_api_client/models/rancher_service_create_request.py +185 -0
  152. waldur_api_client/models/rancher_service_request.py +16 -19
  153. waldur_api_client/models/rancher_workload_create.py +59 -0
  154. waldur_api_client/models/rancher_workload_create_request.py +59 -0
  155. waldur_api_client/models/resource.py +9 -34
  156. waldur_api_client/models/resource_renew_request.py +83 -0
  157. waldur_api_client/models/resource_renew_request_limits.py +44 -0
  158. waldur_api_client/models/robot_account_details.py +22 -13
  159. waldur_api_client/models/{status_enum.py → round_status.py} +1 -1
  160. waldur_api_client/models/service_provider_checklist_summary.py +98 -0
  161. waldur_api_client/models/slurm_invoices_slurm_package_create_order_attributes.py +4 -9
  162. waldur_api_client/models/time_series_to_s_data.py +69 -0
  163. waldur_api_client/models/to_s_consent_dashboard.py +155 -0
  164. waldur_api_client/models/update_offering_component_request.py +79 -0
  165. waldur_api_client/models/v_mware_virtual_machine_create_order_attributes.py +11 -16
  166. waldur_api_client/models/validation_decision_enum.py +10 -0
  167. waldur_api_client/models/validation_method_enum.py +8 -0
  168. waldur_api_client/models/version_adoption.py +67 -0
  169. waldur_api_client/models/vmware_nested_network.py +0 -25
  170. waldur_api_client/models/vmware_nested_network_request.py +6 -14
  171. {waldur_api_client-7.8.2.dist-info → waldur_api_client-7.8.4.dist-info}/METADATA +1 -1
  172. {waldur_api_client-7.8.2.dist-info → waldur_api_client-7.8.4.dist-info}/RECORD +174 -101
  173. {waldur_api_client-7.8.2.dist-info → waldur_api_client-7.8.4.dist-info}/WHEEL +0 -0
  174. {waldur_api_client-7.8.2.dist-info → waldur_api_client-7.8.4.dist-info}/licenses/LICENSE +0 -0
@@ -16,7 +16,7 @@ class NotificationTemplateDetailSerializers:
16
16
  url (str):
17
17
  path (str): Example: 'flatpages/default.html'
18
18
  name (str):
19
- content (str):
19
+ content (Union[None, str]):
20
20
  original_content (Union[None, str]):
21
21
  is_content_overridden (bool):
22
22
  """
@@ -25,7 +25,7 @@ class NotificationTemplateDetailSerializers:
25
25
  url: str
26
26
  path: str
27
27
  name: str
28
- content: str
28
+ content: Union[None, str]
29
29
  original_content: Union[None, str]
30
30
  is_content_overridden: bool
31
31
  additional_properties: dict[str, Any] = _attrs_field(init=False, factory=dict)
@@ -39,6 +39,7 @@ class NotificationTemplateDetailSerializers:
39
39
 
40
40
  name = self.name
41
41
 
42
+ content: Union[None, str]
42
43
  content = self.content
43
44
 
44
45
  original_content: Union[None, str]
@@ -73,7 +74,12 @@ class NotificationTemplateDetailSerializers:
73
74
 
74
75
  name = d.pop("name")
75
76
 
76
- content = d.pop("content")
77
+ def _parse_content(data: object) -> Union[None, str]:
78
+ if data is None:
79
+ return data
80
+ return cast(Union[None, str], data)
81
+
82
+ content = _parse_content(d.pop("content"))
77
83
 
78
84
  def _parse_original_content(data: object) -> Union[None, str]:
79
85
  if data is None:
@@ -34,6 +34,10 @@ class OfferingComponent:
34
34
  default_limit (Union[None, Unset, int]):
35
35
  factor (Union[None, Unset, int]):
36
36
  is_builtin (Union[Unset, bool]):
37
+ is_prepaid (Union[Unset, bool]):
38
+ overage_component (Union[None, UUID, Unset]):
39
+ min_prepaid_duration (Union[None, Unset, int]):
40
+ max_prepaid_duration (Union[None, Unset, int]):
37
41
  """
38
42
 
39
43
  uuid: Union[Unset, UUID] = UNSET
@@ -53,6 +57,10 @@ class OfferingComponent:
53
57
  default_limit: Union[None, Unset, int] = UNSET
54
58
  factor: Union[None, Unset, int] = UNSET
55
59
  is_builtin: Union[Unset, bool] = UNSET
60
+ is_prepaid: Union[Unset, bool] = UNSET
61
+ overage_component: Union[None, UUID, Unset] = UNSET
62
+ min_prepaid_duration: Union[None, Unset, int] = UNSET
63
+ max_prepaid_duration: Union[None, Unset, int] = UNSET
56
64
  additional_properties: dict[str, Any] = _attrs_field(init=False, factory=dict)
57
65
 
58
66
  def to_dict(self) -> dict[str, Any]:
@@ -126,6 +134,28 @@ class OfferingComponent:
126
134
 
127
135
  is_builtin = self.is_builtin
128
136
 
137
+ is_prepaid = self.is_prepaid
138
+
139
+ overage_component: Union[None, Unset, str]
140
+ if isinstance(self.overage_component, Unset):
141
+ overage_component = UNSET
142
+ elif isinstance(self.overage_component, UUID):
143
+ overage_component = str(self.overage_component)
144
+ else:
145
+ overage_component = self.overage_component
146
+
147
+ min_prepaid_duration: Union[None, Unset, int]
148
+ if isinstance(self.min_prepaid_duration, Unset):
149
+ min_prepaid_duration = UNSET
150
+ else:
151
+ min_prepaid_duration = self.min_prepaid_duration
152
+
153
+ max_prepaid_duration: Union[None, Unset, int]
154
+ if isinstance(self.max_prepaid_duration, Unset):
155
+ max_prepaid_duration = UNSET
156
+ else:
157
+ max_prepaid_duration = self.max_prepaid_duration
158
+
129
159
  field_dict: dict[str, Any] = {}
130
160
  field_dict.update(self.additional_properties)
131
161
  field_dict.update({})
@@ -163,6 +193,14 @@ class OfferingComponent:
163
193
  field_dict["factor"] = factor
164
194
  if is_builtin is not UNSET:
165
195
  field_dict["is_builtin"] = is_builtin
196
+ if is_prepaid is not UNSET:
197
+ field_dict["is_prepaid"] = is_prepaid
198
+ if overage_component is not UNSET:
199
+ field_dict["overage_component"] = overage_component
200
+ if min_prepaid_duration is not UNSET:
201
+ field_dict["min_prepaid_duration"] = min_prepaid_duration
202
+ if max_prepaid_duration is not UNSET:
203
+ field_dict["max_prepaid_duration"] = max_prepaid_duration
166
204
 
167
205
  return field_dict
168
206
 
@@ -278,6 +316,43 @@ class OfferingComponent:
278
316
 
279
317
  is_builtin = d.pop("is_builtin", UNSET)
280
318
 
319
+ is_prepaid = d.pop("is_prepaid", UNSET)
320
+
321
+ def _parse_overage_component(data: object) -> Union[None, UUID, Unset]:
322
+ if data is None:
323
+ return data
324
+ if isinstance(data, Unset):
325
+ return data
326
+ try:
327
+ if not isinstance(data, str):
328
+ raise TypeError()
329
+ overage_component_type_0 = UUID(data)
330
+
331
+ return overage_component_type_0
332
+ except: # noqa: E722
333
+ pass
334
+ return cast(Union[None, UUID, Unset], data)
335
+
336
+ overage_component = _parse_overage_component(d.pop("overage_component", UNSET))
337
+
338
+ def _parse_min_prepaid_duration(data: object) -> Union[None, Unset, int]:
339
+ if data is None:
340
+ return data
341
+ if isinstance(data, Unset):
342
+ return data
343
+ return cast(Union[None, Unset, int], data)
344
+
345
+ min_prepaid_duration = _parse_min_prepaid_duration(d.pop("min_prepaid_duration", UNSET))
346
+
347
+ def _parse_max_prepaid_duration(data: object) -> Union[None, Unset, int]:
348
+ if data is None:
349
+ return data
350
+ if isinstance(data, Unset):
351
+ return data
352
+ return cast(Union[None, Unset, int], data)
353
+
354
+ max_prepaid_duration = _parse_max_prepaid_duration(d.pop("max_prepaid_duration", UNSET))
355
+
281
356
  offering_component = cls(
282
357
  uuid=uuid,
283
358
  billing_type=billing_type,
@@ -296,6 +371,10 @@ class OfferingComponent:
296
371
  default_limit=default_limit,
297
372
  factor=factor,
298
373
  is_builtin=is_builtin,
374
+ is_prepaid=is_prepaid,
375
+ overage_component=overage_component,
376
+ min_prepaid_duration=min_prepaid_duration,
377
+ max_prepaid_duration=max_prepaid_duration,
299
378
  )
300
379
 
301
380
  offering_component.additional_properties = d
@@ -1,5 +1,6 @@
1
1
  from collections.abc import Mapping
2
2
  from typing import Any, TypeVar, Union, cast
3
+ from uuid import UUID
3
4
 
4
5
  from attrs import define as _attrs_define
5
6
  from attrs import field as _attrs_field
@@ -30,6 +31,10 @@ class OfferingComponentRequest:
30
31
  max_available_limit (Union[None, Unset, int]):
31
32
  is_boolean (Union[Unset, bool]):
32
33
  default_limit (Union[None, Unset, int]):
34
+ is_prepaid (Union[Unset, bool]):
35
+ overage_component (Union[None, UUID, Unset]):
36
+ min_prepaid_duration (Union[None, Unset, int]):
37
+ max_prepaid_duration (Union[None, Unset, int]):
33
38
  """
34
39
 
35
40
  billing_type: BillingTypeEnum
@@ -46,6 +51,10 @@ class OfferingComponentRequest:
46
51
  max_available_limit: Union[None, Unset, int] = UNSET
47
52
  is_boolean: Union[Unset, bool] = UNSET
48
53
  default_limit: Union[None, Unset, int] = UNSET
54
+ is_prepaid: Union[Unset, bool] = UNSET
55
+ overage_component: Union[None, UUID, Unset] = UNSET
56
+ min_prepaid_duration: Union[None, Unset, int] = UNSET
57
+ max_prepaid_duration: Union[None, Unset, int] = UNSET
49
58
  additional_properties: dict[str, Any] = _attrs_field(init=False, factory=dict)
50
59
 
51
60
  def to_dict(self) -> dict[str, Any]:
@@ -105,6 +114,28 @@ class OfferingComponentRequest:
105
114
  else:
106
115
  default_limit = self.default_limit
107
116
 
117
+ is_prepaid = self.is_prepaid
118
+
119
+ overage_component: Union[None, Unset, str]
120
+ if isinstance(self.overage_component, Unset):
121
+ overage_component = UNSET
122
+ elif isinstance(self.overage_component, UUID):
123
+ overage_component = str(self.overage_component)
124
+ else:
125
+ overage_component = self.overage_component
126
+
127
+ min_prepaid_duration: Union[None, Unset, int]
128
+ if isinstance(self.min_prepaid_duration, Unset):
129
+ min_prepaid_duration = UNSET
130
+ else:
131
+ min_prepaid_duration = self.min_prepaid_duration
132
+
133
+ max_prepaid_duration: Union[None, Unset, int]
134
+ if isinstance(self.max_prepaid_duration, Unset):
135
+ max_prepaid_duration = UNSET
136
+ else:
137
+ max_prepaid_duration = self.max_prepaid_duration
138
+
108
139
  field_dict: dict[str, Any] = {}
109
140
  field_dict.update(self.additional_properties)
110
141
  field_dict.update(
@@ -136,6 +167,14 @@ class OfferingComponentRequest:
136
167
  field_dict["is_boolean"] = is_boolean
137
168
  if default_limit is not UNSET:
138
169
  field_dict["default_limit"] = default_limit
170
+ if is_prepaid is not UNSET:
171
+ field_dict["is_prepaid"] = is_prepaid
172
+ if overage_component is not UNSET:
173
+ field_dict["overage_component"] = overage_component
174
+ if min_prepaid_duration is not UNSET:
175
+ field_dict["min_prepaid_duration"] = min_prepaid_duration
176
+ if max_prepaid_duration is not UNSET:
177
+ field_dict["max_prepaid_duration"] = max_prepaid_duration
139
178
 
140
179
  return field_dict
141
180
 
@@ -228,6 +267,43 @@ class OfferingComponentRequest:
228
267
 
229
268
  default_limit = _parse_default_limit(d.pop("default_limit", UNSET))
230
269
 
270
+ is_prepaid = d.pop("is_prepaid", UNSET)
271
+
272
+ def _parse_overage_component(data: object) -> Union[None, UUID, Unset]:
273
+ if data is None:
274
+ return data
275
+ if isinstance(data, Unset):
276
+ return data
277
+ try:
278
+ if not isinstance(data, str):
279
+ raise TypeError()
280
+ overage_component_type_0 = UUID(data)
281
+
282
+ return overage_component_type_0
283
+ except: # noqa: E722
284
+ pass
285
+ return cast(Union[None, UUID, Unset], data)
286
+
287
+ overage_component = _parse_overage_component(d.pop("overage_component", UNSET))
288
+
289
+ def _parse_min_prepaid_duration(data: object) -> Union[None, Unset, int]:
290
+ if data is None:
291
+ return data
292
+ if isinstance(data, Unset):
293
+ return data
294
+ return cast(Union[None, Unset, int], data)
295
+
296
+ min_prepaid_duration = _parse_min_prepaid_duration(d.pop("min_prepaid_duration", UNSET))
297
+
298
+ def _parse_max_prepaid_duration(data: object) -> Union[None, Unset, int]:
299
+ if data is None:
300
+ return data
301
+ if isinstance(data, Unset):
302
+ return data
303
+ return cast(Union[None, Unset, int], data)
304
+
305
+ max_prepaid_duration = _parse_max_prepaid_duration(d.pop("max_prepaid_duration", UNSET))
306
+
231
307
  offering_component_request = cls(
232
308
  billing_type=billing_type,
233
309
  type_=type_,
@@ -243,6 +319,10 @@ class OfferingComponentRequest:
243
319
  max_available_limit=max_available_limit,
244
320
  is_boolean=is_boolean,
245
321
  default_limit=default_limit,
322
+ is_prepaid=is_prepaid,
323
+ overage_component=overage_component,
324
+ min_prepaid_duration=min_prepaid_duration,
325
+ max_prepaid_duration=max_prepaid_duration,
246
326
  )
247
327
 
248
328
  offering_component_request.additional_properties = d
@@ -0,0 +1,88 @@
1
+ from collections.abc import Mapping
2
+ from typing import Any, TypeVar, Union
3
+
4
+ from attrs import define as _attrs_define
5
+ from attrs import field as _attrs_field
6
+
7
+ from ..types import UNSET, Unset
8
+
9
+ T = TypeVar("T", bound="OnboardingCompanyValidationRequestRequest")
10
+
11
+
12
+ @_attrs_define
13
+ class OnboardingCompanyValidationRequestRequest:
14
+ """
15
+ Attributes:
16
+ country (str): ISO country code (e.g., 'EE' for Estonia)
17
+ legal_person_identifier (str): Official company registration code
18
+ legal_name (Union[Unset, str]): Company name (optional, for reference)
19
+ user_submitted_customer_metadata (Union[Unset, Any]): Optional customer metadata for manual verification cases.
20
+ Should contain valid Customer model fields.
21
+ """
22
+
23
+ country: str
24
+ legal_person_identifier: str
25
+ legal_name: Union[Unset, str] = UNSET
26
+ user_submitted_customer_metadata: Union[Unset, Any] = UNSET
27
+ additional_properties: dict[str, Any] = _attrs_field(init=False, factory=dict)
28
+
29
+ def to_dict(self) -> dict[str, Any]:
30
+ country = self.country
31
+
32
+ legal_person_identifier = self.legal_person_identifier
33
+
34
+ legal_name = self.legal_name
35
+
36
+ user_submitted_customer_metadata = self.user_submitted_customer_metadata
37
+
38
+ field_dict: dict[str, Any] = {}
39
+ field_dict.update(self.additional_properties)
40
+ field_dict.update(
41
+ {
42
+ "country": country,
43
+ "legal_person_identifier": legal_person_identifier,
44
+ }
45
+ )
46
+ if legal_name is not UNSET:
47
+ field_dict["legal_name"] = legal_name
48
+ if user_submitted_customer_metadata is not UNSET:
49
+ field_dict["user_submitted_customer_metadata"] = user_submitted_customer_metadata
50
+
51
+ return field_dict
52
+
53
+ @classmethod
54
+ def from_dict(cls: type[T], src_dict: Mapping[str, Any]) -> T:
55
+ d = dict(src_dict)
56
+ country = d.pop("country")
57
+
58
+ legal_person_identifier = d.pop("legal_person_identifier")
59
+
60
+ legal_name = d.pop("legal_name", UNSET)
61
+
62
+ user_submitted_customer_metadata = d.pop("user_submitted_customer_metadata", UNSET)
63
+
64
+ onboarding_company_validation_request_request = cls(
65
+ country=country,
66
+ legal_person_identifier=legal_person_identifier,
67
+ legal_name=legal_name,
68
+ user_submitted_customer_metadata=user_submitted_customer_metadata,
69
+ )
70
+
71
+ onboarding_company_validation_request_request.additional_properties = d
72
+ return onboarding_company_validation_request_request
73
+
74
+ @property
75
+ def additional_keys(self) -> list[str]:
76
+ return list(self.additional_properties.keys())
77
+
78
+ def __getitem__(self, key: str) -> Any:
79
+ return self.additional_properties[key]
80
+
81
+ def __setitem__(self, key: str, value: Any) -> None:
82
+ self.additional_properties[key] = value
83
+
84
+ def __delitem__(self, key: str) -> None:
85
+ del self.additional_properties[key]
86
+
87
+ def __contains__(self, key: str) -> bool:
88
+ return key in self.additional_properties
@@ -0,0 +1,183 @@
1
+ import datetime
2
+ from collections.abc import Mapping
3
+ from typing import TYPE_CHECKING, Any, TypeVar, Union, cast
4
+ from uuid import UUID
5
+
6
+ from attrs import define as _attrs_define
7
+ from attrs import field as _attrs_field
8
+ from dateutil.parser import isoparse
9
+
10
+ from ..models.validation_decision_enum import ValidationDecisionEnum
11
+
12
+ if TYPE_CHECKING:
13
+ from ..models.onboarding_justification_documentation import OnboardingJustificationDocumentation
14
+
15
+
16
+ T = TypeVar("T", bound="OnboardingJustification")
17
+
18
+
19
+ @_attrs_define
20
+ class OnboardingJustification:
21
+ """
22
+ Attributes:
23
+ uuid (UUID):
24
+ verification (int):
25
+ user (int):
26
+ user_justification (str): User's explanation for why they should be authorized
27
+ validated_by (Union[None, int]):
28
+ validated_at (Union[None, datetime.datetime]):
29
+ validation_decision (ValidationDecisionEnum):
30
+ staff_notes (str): Administrator notes on the review decision
31
+ supporting_documentation (list['OnboardingJustificationDocumentation']):
32
+ created (datetime.datetime):
33
+ modified (datetime.datetime):
34
+ """
35
+
36
+ uuid: UUID
37
+ verification: int
38
+ user: int
39
+ user_justification: str
40
+ validated_by: Union[None, int]
41
+ validated_at: Union[None, datetime.datetime]
42
+ validation_decision: ValidationDecisionEnum
43
+ staff_notes: str
44
+ supporting_documentation: list["OnboardingJustificationDocumentation"]
45
+ created: datetime.datetime
46
+ modified: datetime.datetime
47
+ additional_properties: dict[str, Any] = _attrs_field(init=False, factory=dict)
48
+
49
+ def to_dict(self) -> dict[str, Any]:
50
+ uuid = str(self.uuid)
51
+
52
+ verification = self.verification
53
+
54
+ user = self.user
55
+
56
+ user_justification = self.user_justification
57
+
58
+ validated_by: Union[None, int]
59
+ validated_by = self.validated_by
60
+
61
+ validated_at: Union[None, str]
62
+ if isinstance(self.validated_at, datetime.datetime):
63
+ validated_at = self.validated_at.isoformat()
64
+ else:
65
+ validated_at = self.validated_at
66
+
67
+ validation_decision = self.validation_decision.value
68
+
69
+ staff_notes = self.staff_notes
70
+
71
+ supporting_documentation = []
72
+ for supporting_documentation_item_data in self.supporting_documentation:
73
+ supporting_documentation_item = supporting_documentation_item_data.to_dict()
74
+ supporting_documentation.append(supporting_documentation_item)
75
+
76
+ created = self.created.isoformat()
77
+
78
+ modified = self.modified.isoformat()
79
+
80
+ field_dict: dict[str, Any] = {}
81
+ field_dict.update(self.additional_properties)
82
+ field_dict.update(
83
+ {
84
+ "uuid": uuid,
85
+ "verification": verification,
86
+ "user": user,
87
+ "user_justification": user_justification,
88
+ "validated_by": validated_by,
89
+ "validated_at": validated_at,
90
+ "validation_decision": validation_decision,
91
+ "staff_notes": staff_notes,
92
+ "supporting_documentation": supporting_documentation,
93
+ "created": created,
94
+ "modified": modified,
95
+ }
96
+ )
97
+
98
+ return field_dict
99
+
100
+ @classmethod
101
+ def from_dict(cls: type[T], src_dict: Mapping[str, Any]) -> T:
102
+ from ..models.onboarding_justification_documentation import OnboardingJustificationDocumentation
103
+
104
+ d = dict(src_dict)
105
+ uuid = UUID(d.pop("uuid"))
106
+
107
+ verification = d.pop("verification")
108
+
109
+ user = d.pop("user")
110
+
111
+ user_justification = d.pop("user_justification")
112
+
113
+ def _parse_validated_by(data: object) -> Union[None, int]:
114
+ if data is None:
115
+ return data
116
+ return cast(Union[None, int], data)
117
+
118
+ validated_by = _parse_validated_by(d.pop("validated_by"))
119
+
120
+ def _parse_validated_at(data: object) -> Union[None, datetime.datetime]:
121
+ if data is None:
122
+ return data
123
+ try:
124
+ if not isinstance(data, str):
125
+ raise TypeError()
126
+ validated_at_type_0 = isoparse(data)
127
+
128
+ return validated_at_type_0
129
+ except: # noqa: E722
130
+ pass
131
+ return cast(Union[None, datetime.datetime], data)
132
+
133
+ validated_at = _parse_validated_at(d.pop("validated_at"))
134
+
135
+ validation_decision = ValidationDecisionEnum(d.pop("validation_decision"))
136
+
137
+ staff_notes = d.pop("staff_notes")
138
+
139
+ supporting_documentation = []
140
+ _supporting_documentation = d.pop("supporting_documentation")
141
+ for supporting_documentation_item_data in _supporting_documentation:
142
+ supporting_documentation_item = OnboardingJustificationDocumentation.from_dict(
143
+ supporting_documentation_item_data
144
+ )
145
+
146
+ supporting_documentation.append(supporting_documentation_item)
147
+
148
+ created = isoparse(d.pop("created"))
149
+
150
+ modified = isoparse(d.pop("modified"))
151
+
152
+ onboarding_justification = cls(
153
+ uuid=uuid,
154
+ verification=verification,
155
+ user=user,
156
+ user_justification=user_justification,
157
+ validated_by=validated_by,
158
+ validated_at=validated_at,
159
+ validation_decision=validation_decision,
160
+ staff_notes=staff_notes,
161
+ supporting_documentation=supporting_documentation,
162
+ created=created,
163
+ modified=modified,
164
+ )
165
+
166
+ onboarding_justification.additional_properties = d
167
+ return onboarding_justification
168
+
169
+ @property
170
+ def additional_keys(self) -> list[str]:
171
+ return list(self.additional_properties.keys())
172
+
173
+ def __getitem__(self, key: str) -> Any:
174
+ return self.additional_properties[key]
175
+
176
+ def __setitem__(self, key: str, value: Any) -> None:
177
+ self.additional_properties[key] = value
178
+
179
+ def __delitem__(self, key: str) -> None:
180
+ del self.additional_properties[key]
181
+
182
+ def __contains__(self, key: str) -> bool:
183
+ return key in self.additional_properties
@@ -0,0 +1,68 @@
1
+ from collections.abc import Mapping
2
+ from typing import Any, TypeVar
3
+ from uuid import UUID
4
+
5
+ from attrs import define as _attrs_define
6
+ from attrs import field as _attrs_field
7
+
8
+ T = TypeVar("T", bound="OnboardingJustificationCreateRequest")
9
+
10
+
11
+ @_attrs_define
12
+ class OnboardingJustificationCreateRequest:
13
+ """
14
+ Attributes:
15
+ verification_uuid (UUID): UUID of the OnboardingVerification to justify
16
+ user_justification (str): User's explanation for why they should be authorized
17
+ """
18
+
19
+ verification_uuid: UUID
20
+ user_justification: str
21
+ additional_properties: dict[str, Any] = _attrs_field(init=False, factory=dict)
22
+
23
+ def to_dict(self) -> dict[str, Any]:
24
+ verification_uuid = str(self.verification_uuid)
25
+
26
+ user_justification = self.user_justification
27
+
28
+ field_dict: dict[str, Any] = {}
29
+ field_dict.update(self.additional_properties)
30
+ field_dict.update(
31
+ {
32
+ "verification_uuid": verification_uuid,
33
+ "user_justification": user_justification,
34
+ }
35
+ )
36
+
37
+ return field_dict
38
+
39
+ @classmethod
40
+ def from_dict(cls: type[T], src_dict: Mapping[str, Any]) -> T:
41
+ d = dict(src_dict)
42
+ verification_uuid = UUID(d.pop("verification_uuid"))
43
+
44
+ user_justification = d.pop("user_justification")
45
+
46
+ onboarding_justification_create_request = cls(
47
+ verification_uuid=verification_uuid,
48
+ user_justification=user_justification,
49
+ )
50
+
51
+ onboarding_justification_create_request.additional_properties = d
52
+ return onboarding_justification_create_request
53
+
54
+ @property
55
+ def additional_keys(self) -> list[str]:
56
+ return list(self.additional_properties.keys())
57
+
58
+ def __getitem__(self, key: str) -> Any:
59
+ return self.additional_properties[key]
60
+
61
+ def __setitem__(self, key: str, value: Any) -> None:
62
+ self.additional_properties[key] = value
63
+
64
+ def __delitem__(self, key: str) -> None:
65
+ del self.additional_properties[key]
66
+
67
+ def __contains__(self, key: str) -> bool:
68
+ return key in self.additional_properties