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
@@ -0,0 +1,108 @@
1
+ import datetime
2
+ from collections.abc import Mapping
3
+ from typing import 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 ..types import UNSET, Unset
11
+
12
+ T = TypeVar("T", bound="OnboardingJustificationDocumentation")
13
+
14
+
15
+ @_attrs_define
16
+ class OnboardingJustificationDocumentation:
17
+ """
18
+ Attributes:
19
+ uuid (UUID):
20
+ file_name (str):
21
+ file_size (int):
22
+ created (datetime.datetime):
23
+ file (Union[None, Unset, str]): Upload supporting documentation.
24
+ """
25
+
26
+ uuid: UUID
27
+ file_name: str
28
+ file_size: int
29
+ created: datetime.datetime
30
+ file: Union[None, Unset, str] = UNSET
31
+ additional_properties: dict[str, Any] = _attrs_field(init=False, factory=dict)
32
+
33
+ def to_dict(self) -> dict[str, Any]:
34
+ uuid = str(self.uuid)
35
+
36
+ file_name = self.file_name
37
+
38
+ file_size = self.file_size
39
+
40
+ created = self.created.isoformat()
41
+
42
+ file: Union[None, Unset, str]
43
+ if isinstance(self.file, Unset):
44
+ file = UNSET
45
+ else:
46
+ file = self.file
47
+
48
+ field_dict: dict[str, Any] = {}
49
+ field_dict.update(self.additional_properties)
50
+ field_dict.update(
51
+ {
52
+ "uuid": uuid,
53
+ "file_name": file_name,
54
+ "file_size": file_size,
55
+ "created": created,
56
+ }
57
+ )
58
+ if file is not UNSET:
59
+ field_dict["file"] = file
60
+
61
+ return field_dict
62
+
63
+ @classmethod
64
+ def from_dict(cls: type[T], src_dict: Mapping[str, Any]) -> T:
65
+ d = dict(src_dict)
66
+ uuid = UUID(d.pop("uuid"))
67
+
68
+ file_name = d.pop("file_name")
69
+
70
+ file_size = d.pop("file_size")
71
+
72
+ created = isoparse(d.pop("created"))
73
+
74
+ def _parse_file(data: object) -> Union[None, Unset, str]:
75
+ if data is None:
76
+ return data
77
+ if isinstance(data, Unset):
78
+ return data
79
+ return cast(Union[None, Unset, str], data)
80
+
81
+ file = _parse_file(d.pop("file", UNSET))
82
+
83
+ onboarding_justification_documentation = cls(
84
+ uuid=uuid,
85
+ file_name=file_name,
86
+ file_size=file_size,
87
+ created=created,
88
+ file=file,
89
+ )
90
+
91
+ onboarding_justification_documentation.additional_properties = d
92
+ return onboarding_justification_documentation
93
+
94
+ @property
95
+ def additional_keys(self) -> list[str]:
96
+ return list(self.additional_properties.keys())
97
+
98
+ def __getitem__(self, key: str) -> Any:
99
+ return self.additional_properties[key]
100
+
101
+ def __setitem__(self, key: str, value: Any) -> None:
102
+ self.additional_properties[key] = value
103
+
104
+ def __delitem__(self, key: str) -> None:
105
+ del self.additional_properties[key]
106
+
107
+ def __contains__(self, key: str) -> bool:
108
+ return key in self.additional_properties
@@ -0,0 +1,84 @@
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="OnboardingJustificationDocumentationRequest")
12
+
13
+
14
+ @_attrs_define
15
+ class OnboardingJustificationDocumentationRequest:
16
+ """
17
+ Attributes:
18
+ file (Union[File, None, Unset]): Upload supporting documentation.
19
+ """
20
+
21
+ file: Union[File, None, Unset] = UNSET
22
+ additional_properties: dict[str, Any] = _attrs_field(init=False, factory=dict)
23
+
24
+ def to_dict(self) -> dict[str, Any]:
25
+ file: Union[None, Unset, types.FileTypes]
26
+ if isinstance(self.file, Unset):
27
+ file = UNSET
28
+ elif isinstance(self.file, File):
29
+ file = self.file.to_tuple()
30
+
31
+ else:
32
+ file = self.file
33
+
34
+ field_dict: dict[str, Any] = {}
35
+ field_dict.update(self.additional_properties)
36
+ field_dict.update({})
37
+ if file is not UNSET:
38
+ field_dict["file"] = file
39
+
40
+ return field_dict
41
+
42
+ @classmethod
43
+ def from_dict(cls: type[T], src_dict: Mapping[str, Any]) -> T:
44
+ d = dict(src_dict)
45
+
46
+ def _parse_file(data: object) -> Union[File, None, Unset]:
47
+ if data is None:
48
+ return data
49
+ if isinstance(data, Unset):
50
+ return data
51
+ try:
52
+ if not isinstance(data, bytes):
53
+ raise TypeError()
54
+ file_type_0 = File(payload=BytesIO(data))
55
+
56
+ return file_type_0
57
+ except: # noqa: E722
58
+ pass
59
+ return cast(Union[File, None, Unset], data)
60
+
61
+ file = _parse_file(d.pop("file", UNSET))
62
+
63
+ onboarding_justification_documentation_request = cls(
64
+ file=file,
65
+ )
66
+
67
+ onboarding_justification_documentation_request.additional_properties = d
68
+ return onboarding_justification_documentation_request
69
+
70
+ @property
71
+ def additional_keys(self) -> list[str]:
72
+ return list(self.additional_properties.keys())
73
+
74
+ def __getitem__(self, key: str) -> Any:
75
+ return self.additional_properties[key]
76
+
77
+ def __setitem__(self, key: str, value: Any) -> None:
78
+ self.additional_properties[key] = value
79
+
80
+ def __delitem__(self, key: str) -> None:
81
+ del self.additional_properties[key]
82
+
83
+ def __contains__(self, key: str) -> bool:
84
+ return key in self.additional_properties
@@ -0,0 +1,84 @@
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="OnboardingJustificationDocumentationRequestForm")
12
+
13
+
14
+ @_attrs_define
15
+ class OnboardingJustificationDocumentationRequestForm:
16
+ """
17
+ Attributes:
18
+ file (Union[File, None, Unset]): Upload supporting documentation.
19
+ """
20
+
21
+ file: Union[File, None, Unset] = UNSET
22
+ additional_properties: dict[str, Any] = _attrs_field(init=False, factory=dict)
23
+
24
+ def to_dict(self) -> dict[str, Any]:
25
+ file: Union[None, Unset, types.FileTypes]
26
+ if isinstance(self.file, Unset):
27
+ file = UNSET
28
+ elif isinstance(self.file, File):
29
+ file = self.file.to_tuple()
30
+
31
+ else:
32
+ file = self.file
33
+
34
+ field_dict: dict[str, Any] = {}
35
+ field_dict.update(self.additional_properties)
36
+ field_dict.update({})
37
+ if file is not UNSET:
38
+ field_dict["file"] = file
39
+
40
+ return field_dict
41
+
42
+ @classmethod
43
+ def from_dict(cls: type[T], src_dict: Mapping[str, Any]) -> T:
44
+ d = dict(src_dict)
45
+
46
+ def _parse_file(data: object) -> Union[File, None, Unset]:
47
+ if data is None:
48
+ return data
49
+ if isinstance(data, Unset):
50
+ return data
51
+ try:
52
+ if not isinstance(data, bytes):
53
+ raise TypeError()
54
+ file_type_0 = File(payload=BytesIO(data))
55
+
56
+ return file_type_0
57
+ except: # noqa: E722
58
+ pass
59
+ return cast(Union[File, None, Unset], data)
60
+
61
+ file = _parse_file(d.pop("file", UNSET))
62
+
63
+ onboarding_justification_documentation_request_form = cls(
64
+ file=file,
65
+ )
66
+
67
+ onboarding_justification_documentation_request_form.additional_properties = d
68
+ return onboarding_justification_documentation_request_form
69
+
70
+ @property
71
+ def additional_keys(self) -> list[str]:
72
+ return list(self.additional_properties.keys())
73
+
74
+ def __getitem__(self, key: str) -> Any:
75
+ return self.additional_properties[key]
76
+
77
+ def __setitem__(self, key: str, value: Any) -> None:
78
+ self.additional_properties[key] = value
79
+
80
+ def __delitem__(self, key: str) -> None:
81
+ del self.additional_properties[key]
82
+
83
+ def __contains__(self, key: str) -> bool:
84
+ return key in self.additional_properties
@@ -0,0 +1,98 @@
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="OnboardingJustificationDocumentationRequestMultipart")
12
+
13
+
14
+ @_attrs_define
15
+ class OnboardingJustificationDocumentationRequestMultipart:
16
+ """
17
+ Attributes:
18
+ file (Union[File, None, Unset]): Upload supporting documentation.
19
+ """
20
+
21
+ file: Union[File, None, Unset] = UNSET
22
+ additional_properties: dict[str, Any] = _attrs_field(init=False, factory=dict)
23
+
24
+ def to_dict(self) -> dict[str, Any]:
25
+ file: Union[None, Unset, types.FileTypes]
26
+ if isinstance(self.file, Unset):
27
+ file = UNSET
28
+ elif isinstance(self.file, File):
29
+ file = self.file.to_tuple()
30
+
31
+ else:
32
+ file = self.file
33
+
34
+ field_dict: dict[str, Any] = {}
35
+ field_dict.update(self.additional_properties)
36
+ field_dict.update({})
37
+ if file is not UNSET:
38
+ field_dict["file"] = file
39
+
40
+ return field_dict
41
+
42
+ def to_multipart(self) -> types.RequestFiles:
43
+ files: types.RequestFiles = []
44
+
45
+ if not isinstance(self.file, Unset):
46
+ if isinstance(self.file, File):
47
+ files.append(("file", self.file.to_tuple()))
48
+ else:
49
+ files.append(("file", (None, str(self.file).encode(), "text/plain")))
50
+
51
+ for prop_name, prop in self.additional_properties.items():
52
+ files.append((prop_name, (None, str(prop).encode(), "text/plain")))
53
+
54
+ return files
55
+
56
+ @classmethod
57
+ def from_dict(cls: type[T], src_dict: Mapping[str, Any]) -> T:
58
+ d = dict(src_dict)
59
+
60
+ def _parse_file(data: object) -> Union[File, None, Unset]:
61
+ if data is None:
62
+ return data
63
+ if isinstance(data, Unset):
64
+ return data
65
+ try:
66
+ if not isinstance(data, bytes):
67
+ raise TypeError()
68
+ file_type_0 = File(payload=BytesIO(data))
69
+
70
+ return file_type_0
71
+ except: # noqa: E722
72
+ pass
73
+ return cast(Union[File, None, Unset], data)
74
+
75
+ file = _parse_file(d.pop("file", UNSET))
76
+
77
+ onboarding_justification_documentation_request_multipart = cls(
78
+ file=file,
79
+ )
80
+
81
+ onboarding_justification_documentation_request_multipart.additional_properties = d
82
+ return onboarding_justification_documentation_request_multipart
83
+
84
+ @property
85
+ def additional_keys(self) -> list[str]:
86
+ return list(self.additional_properties.keys())
87
+
88
+ def __getitem__(self, key: str) -> Any:
89
+ return self.additional_properties[key]
90
+
91
+ def __setitem__(self, key: str, value: Any) -> None:
92
+ self.additional_properties[key] = value
93
+
94
+ def __delitem__(self, key: str) -> None:
95
+ del self.additional_properties[key]
96
+
97
+ def __contains__(self, key: str) -> bool:
98
+ return key in self.additional_properties
@@ -0,0 +1,75 @@
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="OnboardingJustificationRequest")
8
+
9
+
10
+ @_attrs_define
11
+ class OnboardingJustificationRequest:
12
+ """
13
+ Attributes:
14
+ verification (int):
15
+ user (int):
16
+ user_justification (str): User's explanation for why they should be authorized
17
+ """
18
+
19
+ verification: int
20
+ user: int
21
+ user_justification: str
22
+ additional_properties: dict[str, Any] = _attrs_field(init=False, factory=dict)
23
+
24
+ def to_dict(self) -> dict[str, Any]:
25
+ verification = self.verification
26
+
27
+ user = self.user
28
+
29
+ user_justification = self.user_justification
30
+
31
+ field_dict: dict[str, Any] = {}
32
+ field_dict.update(self.additional_properties)
33
+ field_dict.update(
34
+ {
35
+ "verification": verification,
36
+ "user": user,
37
+ "user_justification": user_justification,
38
+ }
39
+ )
40
+
41
+ return field_dict
42
+
43
+ @classmethod
44
+ def from_dict(cls: type[T], src_dict: Mapping[str, Any]) -> T:
45
+ d = dict(src_dict)
46
+ verification = d.pop("verification")
47
+
48
+ user = d.pop("user")
49
+
50
+ user_justification = d.pop("user_justification")
51
+
52
+ onboarding_justification_request = cls(
53
+ verification=verification,
54
+ user=user,
55
+ user_justification=user_justification,
56
+ )
57
+
58
+ onboarding_justification_request.additional_properties = d
59
+ return onboarding_justification_request
60
+
61
+ @property
62
+ def additional_keys(self) -> list[str]:
63
+ return list(self.additional_properties.keys())
64
+
65
+ def __getitem__(self, key: str) -> Any:
66
+ return self.additional_properties[key]
67
+
68
+ def __setitem__(self, key: str, value: Any) -> None:
69
+ self.additional_properties[key] = value
70
+
71
+ def __delitem__(self, key: str) -> None:
72
+ del self.additional_properties[key]
73
+
74
+ def __contains__(self, key: str) -> bool:
75
+ return key in self.additional_properties
@@ -0,0 +1,250 @@
1
+ import datetime
2
+ from collections.abc import Mapping
3
+ from typing import 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.onboarding_verification_status_enum import OnboardingVerificationStatusEnum
11
+ from ..models.validation_method_enum import ValidationMethodEnum
12
+ from ..types import UNSET, Unset
13
+
14
+ T = TypeVar("T", bound="OnboardingVerification")
15
+
16
+
17
+ @_attrs_define
18
+ class OnboardingVerification:
19
+ """
20
+ Attributes:
21
+ uuid (UUID):
22
+ user (int): User requesting company onboarding
23
+ country (str): ISO country code (e.g., 'EE' for Estonia)
24
+ legal_person_identifier (str): Official company registration code
25
+ status (OnboardingVerificationStatusEnum):
26
+ validation_method (ValidationMethodEnum):
27
+ verified_user_roles (Any): Roles the user has in the company
28
+ verified_company_data (Any): Company information retrieved during validation
29
+ raw_response (Any): Raw API response for debugging and auditing
30
+ error_traceback (str):
31
+ error_message (str):
32
+ validated_at (Union[None, datetime.datetime]): When validation was completed
33
+ customer (Union[None, int]): Customer created after successful validation
34
+ created (datetime.datetime):
35
+ modified (datetime.datetime):
36
+ legal_name (Union[Unset, str]): Claimed company name (optional, for reference)
37
+ user_submitted_customer_metadata (Union[Unset, Any]): Additional customer metadata submitted by user for manual
38
+ verification cases. Should contain valid Customer model fields.
39
+ expires_at (Union[None, Unset, datetime.datetime]): When this verification expires
40
+ """
41
+
42
+ uuid: UUID
43
+ user: int
44
+ country: str
45
+ legal_person_identifier: str
46
+ status: OnboardingVerificationStatusEnum
47
+ validation_method: ValidationMethodEnum
48
+ verified_user_roles: Any
49
+ verified_company_data: Any
50
+ raw_response: Any
51
+ error_traceback: str
52
+ error_message: str
53
+ validated_at: Union[None, datetime.datetime]
54
+ customer: Union[None, int]
55
+ created: datetime.datetime
56
+ modified: datetime.datetime
57
+ legal_name: Union[Unset, str] = UNSET
58
+ user_submitted_customer_metadata: Union[Unset, Any] = UNSET
59
+ expires_at: Union[None, Unset, datetime.datetime] = UNSET
60
+ additional_properties: dict[str, Any] = _attrs_field(init=False, factory=dict)
61
+
62
+ def to_dict(self) -> dict[str, Any]:
63
+ uuid = str(self.uuid)
64
+
65
+ user = self.user
66
+
67
+ country = self.country
68
+
69
+ legal_person_identifier = self.legal_person_identifier
70
+
71
+ status = self.status.value
72
+
73
+ validation_method = self.validation_method.value
74
+
75
+ verified_user_roles = self.verified_user_roles
76
+
77
+ verified_company_data = self.verified_company_data
78
+
79
+ raw_response = self.raw_response
80
+
81
+ error_traceback = self.error_traceback
82
+
83
+ error_message = self.error_message
84
+
85
+ validated_at: Union[None, str]
86
+ if isinstance(self.validated_at, datetime.datetime):
87
+ validated_at = self.validated_at.isoformat()
88
+ else:
89
+ validated_at = self.validated_at
90
+
91
+ customer: Union[None, int]
92
+ customer = self.customer
93
+
94
+ created = self.created.isoformat()
95
+
96
+ modified = self.modified.isoformat()
97
+
98
+ legal_name = self.legal_name
99
+
100
+ user_submitted_customer_metadata = self.user_submitted_customer_metadata
101
+
102
+ expires_at: Union[None, Unset, str]
103
+ if isinstance(self.expires_at, Unset):
104
+ expires_at = UNSET
105
+ elif isinstance(self.expires_at, datetime.datetime):
106
+ expires_at = self.expires_at.isoformat()
107
+ else:
108
+ expires_at = self.expires_at
109
+
110
+ field_dict: dict[str, Any] = {}
111
+ field_dict.update(self.additional_properties)
112
+ field_dict.update(
113
+ {
114
+ "uuid": uuid,
115
+ "user": user,
116
+ "country": country,
117
+ "legal_person_identifier": legal_person_identifier,
118
+ "status": status,
119
+ "validation_method": validation_method,
120
+ "verified_user_roles": verified_user_roles,
121
+ "verified_company_data": verified_company_data,
122
+ "raw_response": raw_response,
123
+ "error_traceback": error_traceback,
124
+ "error_message": error_message,
125
+ "validated_at": validated_at,
126
+ "customer": customer,
127
+ "created": created,
128
+ "modified": modified,
129
+ }
130
+ )
131
+ if legal_name is not UNSET:
132
+ field_dict["legal_name"] = legal_name
133
+ if user_submitted_customer_metadata is not UNSET:
134
+ field_dict["user_submitted_customer_metadata"] = user_submitted_customer_metadata
135
+ if expires_at is not UNSET:
136
+ field_dict["expires_at"] = expires_at
137
+
138
+ return field_dict
139
+
140
+ @classmethod
141
+ def from_dict(cls: type[T], src_dict: Mapping[str, Any]) -> T:
142
+ d = dict(src_dict)
143
+ uuid = UUID(d.pop("uuid"))
144
+
145
+ user = d.pop("user")
146
+
147
+ country = d.pop("country")
148
+
149
+ legal_person_identifier = d.pop("legal_person_identifier")
150
+
151
+ status = OnboardingVerificationStatusEnum(d.pop("status"))
152
+
153
+ validation_method = ValidationMethodEnum(d.pop("validation_method"))
154
+
155
+ verified_user_roles = d.pop("verified_user_roles")
156
+
157
+ verified_company_data = d.pop("verified_company_data")
158
+
159
+ raw_response = d.pop("raw_response")
160
+
161
+ error_traceback = d.pop("error_traceback")
162
+
163
+ error_message = d.pop("error_message")
164
+
165
+ def _parse_validated_at(data: object) -> Union[None, datetime.datetime]:
166
+ if data is None:
167
+ return data
168
+ try:
169
+ if not isinstance(data, str):
170
+ raise TypeError()
171
+ validated_at_type_0 = isoparse(data)
172
+
173
+ return validated_at_type_0
174
+ except: # noqa: E722
175
+ pass
176
+ return cast(Union[None, datetime.datetime], data)
177
+
178
+ validated_at = _parse_validated_at(d.pop("validated_at"))
179
+
180
+ def _parse_customer(data: object) -> Union[None, int]:
181
+ if data is None:
182
+ return data
183
+ return cast(Union[None, int], data)
184
+
185
+ customer = _parse_customer(d.pop("customer"))
186
+
187
+ created = isoparse(d.pop("created"))
188
+
189
+ modified = isoparse(d.pop("modified"))
190
+
191
+ legal_name = d.pop("legal_name", UNSET)
192
+
193
+ user_submitted_customer_metadata = d.pop("user_submitted_customer_metadata", UNSET)
194
+
195
+ def _parse_expires_at(data: object) -> Union[None, Unset, datetime.datetime]:
196
+ if data is None:
197
+ return data
198
+ if isinstance(data, Unset):
199
+ return data
200
+ try:
201
+ if not isinstance(data, str):
202
+ raise TypeError()
203
+ expires_at_type_0 = isoparse(data)
204
+
205
+ return expires_at_type_0
206
+ except: # noqa: E722
207
+ pass
208
+ return cast(Union[None, Unset, datetime.datetime], data)
209
+
210
+ expires_at = _parse_expires_at(d.pop("expires_at", UNSET))
211
+
212
+ onboarding_verification = cls(
213
+ uuid=uuid,
214
+ user=user,
215
+ country=country,
216
+ legal_person_identifier=legal_person_identifier,
217
+ status=status,
218
+ validation_method=validation_method,
219
+ verified_user_roles=verified_user_roles,
220
+ verified_company_data=verified_company_data,
221
+ raw_response=raw_response,
222
+ error_traceback=error_traceback,
223
+ error_message=error_message,
224
+ validated_at=validated_at,
225
+ customer=customer,
226
+ created=created,
227
+ modified=modified,
228
+ legal_name=legal_name,
229
+ user_submitted_customer_metadata=user_submitted_customer_metadata,
230
+ expires_at=expires_at,
231
+ )
232
+
233
+ onboarding_verification.additional_properties = d
234
+ return onboarding_verification
235
+
236
+ @property
237
+ def additional_keys(self) -> list[str]:
238
+ return list(self.additional_properties.keys())
239
+
240
+ def __getitem__(self, key: str) -> Any:
241
+ return self.additional_properties[key]
242
+
243
+ def __setitem__(self, key: str, value: Any) -> None:
244
+ self.additional_properties[key] = value
245
+
246
+ def __delitem__(self, key: str) -> None:
247
+ del self.additional_properties[key]
248
+
249
+ def __contains__(self, key: str) -> bool:
250
+ return key in self.additional_properties