waldur-api-client 7.8.0__py3-none-any.whl → 7.8.2__py3-none-any.whl

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.

Potentially problematic release.


This version of waldur-api-client might be problematic. Click here for more details.

Files changed (212) hide show
  1. waldur_api_client/api/booking_resources/booking_resources_count.py +10 -13
  2. waldur_api_client/api/booking_resources/booking_resources_list.py +10 -13
  3. waldur_api_client/api/call_managing_organisations/call_managing_organisations_create.py +44 -7
  4. waldur_api_client/api/call_managing_organisations/call_managing_organisations_partial_update.py +46 -7
  5. waldur_api_client/api/call_managing_organisations/call_managing_organisations_update.py +44 -7
  6. waldur_api_client/api/checklists_admin/checklists_admin_checklist_questions.py +49 -0
  7. waldur_api_client/api/checklists_admin/checklists_admin_count.py +43 -0
  8. waldur_api_client/api/checklists_admin/checklists_admin_list.py +43 -0
  9. waldur_api_client/api/checklists_admin_categories/checklists_admin_categories_create.py +44 -7
  10. waldur_api_client/api/checklists_admin_categories/checklists_admin_categories_partial_update.py +44 -7
  11. waldur_api_client/api/checklists_admin_categories/checklists_admin_categories_update.py +44 -7
  12. waldur_api_client/api/customers/customers_create.py +44 -7
  13. waldur_api_client/api/customers/customers_partial_update.py +44 -7
  14. waldur_api_client/api/customers/customers_update.py +44 -7
  15. waldur_api_client/api/external_links/external_links_create.py +44 -7
  16. waldur_api_client/api/external_links/external_links_partial_update.py +44 -7
  17. waldur_api_client/api/external_links/external_links_update.py +44 -7
  18. waldur_api_client/api/invoices/invoices_paid.py +44 -7
  19. waldur_api_client/api/marketplace_categories/marketplace_categories_create.py +44 -7
  20. waldur_api_client/api/marketplace_categories/marketplace_categories_partial_update.py +44 -7
  21. waldur_api_client/api/marketplace_categories/marketplace_categories_update.py +44 -7
  22. waldur_api_client/api/marketplace_category_groups/marketplace_category_groups_create.py +44 -7
  23. waldur_api_client/api/marketplace_category_groups/marketplace_category_groups_partial_update.py +44 -7
  24. waldur_api_client/api/marketplace_category_groups/marketplace_category_groups_update.py +44 -7
  25. waldur_api_client/api/marketplace_course_accounts/marketplace_course_accounts_count.py +96 -0
  26. waldur_api_client/api/marketplace_course_accounts/marketplace_course_accounts_list.py +96 -0
  27. waldur_api_client/api/marketplace_offering_files/marketplace_offering_files_create.py +44 -7
  28. waldur_api_client/api/marketplace_offering_user_checklist_completions/__init__.py +1 -0
  29. waldur_api_client/api/marketplace_offering_user_checklist_completions/marketplace_offering_user_checklist_completions_count.py +286 -0
  30. waldur_api_client/api/marketplace_offering_user_checklist_completions/marketplace_offering_user_checklist_completions_list.py +289 -0
  31. waldur_api_client/api/marketplace_offering_user_checklist_completions/marketplace_offering_user_checklist_completions_retrieve.py +141 -0
  32. waldur_api_client/api/marketplace_orders/marketplace_orders_update_attachment.py +44 -7
  33. waldur_api_client/api/marketplace_provider_offerings/marketplace_provider_offerings_create.py +44 -7
  34. waldur_api_client/api/marketplace_provider_offerings/marketplace_provider_offerings_list_course_accounts_retrieve.py +177 -0
  35. waldur_api_client/api/marketplace_provider_offerings/marketplace_provider_offerings_refresh_offering_usernames.py +0 -22
  36. waldur_api_client/api/marketplace_provider_offerings/marketplace_provider_offerings_update_compliance_checklist.py +105 -0
  37. waldur_api_client/api/marketplace_provider_offerings/marketplace_provider_offerings_update_image.py +44 -7
  38. waldur_api_client/api/marketplace_provider_offerings/marketplace_provider_offerings_update_thumbnail.py +30 -5
  39. waldur_api_client/api/marketplace_provider_resources/marketplace_provider_resources_count.py +10 -13
  40. waldur_api_client/api/marketplace_provider_resources/marketplace_provider_resources_list.py +10 -13
  41. waldur_api_client/api/marketplace_resources/marketplace_resources_count.py +10 -13
  42. waldur_api_client/api/marketplace_resources/marketplace_resources_list.py +10 -13
  43. waldur_api_client/api/marketplace_screenshots/marketplace_screenshots_create.py +44 -7
  44. waldur_api_client/api/marketplace_screenshots/marketplace_screenshots_update.py +44 -7
  45. waldur_api_client/api/marketplace_service_providers/marketplace_service_providers_course_accounts_list.py +98 -0
  46. waldur_api_client/api/marketplace_service_providers/marketplace_service_providers_create.py +44 -7
  47. waldur_api_client/api/marketplace_service_providers/marketplace_service_providers_partial_update.py +44 -7
  48. waldur_api_client/api/marketplace_service_providers/marketplace_service_providers_update.py +44 -7
  49. waldur_api_client/api/override_settings/override_settings.py +30 -5
  50. waldur_api_client/api/payments/payments_create.py +44 -7
  51. waldur_api_client/api/payments/payments_partial_update.py +44 -7
  52. waldur_api_client/api/payments/payments_update.py +44 -7
  53. waldur_api_client/api/projects/projects_create.py +44 -7
  54. waldur_api_client/api/projects/projects_partial_update.py +44 -7
  55. waldur_api_client/api/projects/projects_update.py +44 -7
  56. waldur_api_client/api/proposal_proposals/proposal_proposals_attach_document.py +30 -5
  57. waldur_api_client/api/slurm_jobs/slurm_jobs_create.py +44 -7
  58. waldur_api_client/api/slurm_jobs/slurm_jobs_update.py +44 -7
  59. waldur_api_client/api/support_attachments/support_attachments_create.py +44 -7
  60. waldur_api_client/api/user_group_invitations/user_group_invitations_count.py +15 -0
  61. waldur_api_client/api/user_group_invitations/user_group_invitations_list.py +15 -0
  62. waldur_api_client/api/user_invitations/user_invitations_count.py +15 -0
  63. waldur_api_client/api/user_invitations/user_invitations_list.py +15 -0
  64. waldur_api_client/api/users/users_create.py +44 -7
  65. waldur_api_client/api/users/users_partial_update.py +44 -7
  66. waldur_api_client/api/users/users_update.py +44 -7
  67. waldur_api_client/models/__init__.py +172 -4
  68. waldur_api_client/models/agent_type_enum.py +13 -0
  69. waldur_api_client/models/attachment_request_form.py +70 -0
  70. waldur_api_client/models/attachment_request_multipart.py +83 -0
  71. waldur_api_client/models/booking_offerings_list_field_item.py +1 -0
  72. waldur_api_client/models/booking_offerings_retrieve_field_item.py +1 -0
  73. waldur_api_client/models/booking_resource.py +18 -0
  74. waldur_api_client/models/booking_resources_list_field_item.py +2 -0
  75. waldur_api_client/models/booking_resources_retrieve_field_item.py +2 -0
  76. waldur_api_client/models/call_managing_organisation_request_form.py +103 -0
  77. waldur_api_client/models/call_managing_organisation_request_multipart.py +122 -0
  78. waldur_api_client/models/call_round.py +11 -1
  79. waldur_api_client/models/category_group_request_form.py +103 -0
  80. waldur_api_client/models/category_group_request_multipart.py +122 -0
  81. waldur_api_client/models/checklist_category_request_form.py +103 -0
  82. waldur_api_client/models/checklist_category_request_multipart.py +122 -0
  83. waldur_api_client/models/checklists_admin_checklist_questions_checklist_type.py +11 -0
  84. waldur_api_client/models/checklists_admin_checklist_questions_checklist_type_in_item.py +11 -0
  85. waldur_api_client/models/checklists_admin_count_checklist_type.py +11 -0
  86. waldur_api_client/models/checklists_admin_count_checklist_type_in_item.py +11 -0
  87. waldur_api_client/models/checklists_admin_list_checklist_type.py +11 -0
  88. waldur_api_client/models/checklists_admin_list_checklist_type_in_item.py +11 -0
  89. waldur_api_client/models/constance_settings.py +9 -0
  90. waldur_api_client/models/constance_settings_request.py +9 -0
  91. waldur_api_client/models/constance_settings_request_form.py +1547 -0
  92. waldur_api_client/models/constance_settings_request_multipart.py +2173 -0
  93. waldur_api_client/models/course_account.py +24 -0
  94. waldur_api_client/models/customer.py +9 -0
  95. waldur_api_client/models/customer_request.py +9 -0
  96. waldur_api_client/models/customer_request_form.py +312 -0
  97. waldur_api_client/models/customer_request_multipart.py +394 -0
  98. waldur_api_client/models/customers_list_field_item.py +1 -0
  99. waldur_api_client/models/customers_retrieve_field_item.py +1 -0
  100. waldur_api_client/models/external_link_request_form.py +111 -0
  101. waldur_api_client/models/external_link_request_multipart.py +132 -0
  102. waldur_api_client/models/firecrest_job_request_form.py +104 -0
  103. waldur_api_client/models/firecrest_job_request_multipart.py +127 -0
  104. waldur_api_client/models/group_invitation.py +8 -0
  105. waldur_api_client/models/integration_status.py +21 -4
  106. waldur_api_client/models/invitation.py +8 -0
  107. waldur_api_client/models/managed_rancher_cluster_resources_list_field_item.py +2 -0
  108. waldur_api_client/models/managed_rancher_cluster_resources_retrieve_field_item.py +2 -0
  109. waldur_api_client/models/marketplace_category_request_form.py +153 -0
  110. waldur_api_client/models/marketplace_category_request_multipart.py +187 -0
  111. waldur_api_client/models/marketplace_course_accounts_count_o_item.py +23 -0
  112. waldur_api_client/models/marketplace_course_accounts_list_o_item.py +23 -0
  113. waldur_api_client/models/marketplace_offering_user_checklist_completions_count_o_item.py +11 -0
  114. waldur_api_client/models/marketplace_offering_user_checklist_completions_list_o_item.py +11 -0
  115. waldur_api_client/models/marketplace_orders_list_field_item.py +3 -0
  116. waldur_api_client/models/marketplace_orders_retrieve_field_item.py +3 -0
  117. waldur_api_client/models/marketplace_provider_offerings_list_course_accounts_retrieve_field_item.py +73 -0
  118. waldur_api_client/models/marketplace_provider_offerings_list_customer_service_accounts_retrieve_field_item.py +1 -0
  119. waldur_api_client/models/marketplace_provider_offerings_list_field_item.py +1 -0
  120. waldur_api_client/models/marketplace_provider_offerings_list_project_service_accounts_retrieve_field_item.py +1 -0
  121. waldur_api_client/models/marketplace_provider_offerings_retrieve_field_item.py +1 -0
  122. waldur_api_client/models/marketplace_provider_offerings_stats_retrieve_field_item.py +1 -0
  123. waldur_api_client/models/marketplace_provider_offerings_user_has_resource_access_retrieve_field_item.py +1 -0
  124. waldur_api_client/models/marketplace_provider_resources_details_retrieve_field_item.py +2 -0
  125. waldur_api_client/models/marketplace_provider_resources_list_field_item.py +2 -0
  126. waldur_api_client/models/marketplace_provider_resources_retrieve_field_item.py +2 -0
  127. waldur_api_client/models/marketplace_public_offerings_list_field_item.py +1 -0
  128. waldur_api_client/models/marketplace_public_offerings_retrieve_field_item.py +1 -0
  129. waldur_api_client/models/marketplace_resources_details_retrieve_field_item.py +2 -0
  130. waldur_api_client/models/marketplace_resources_list_field_item.py +2 -0
  131. waldur_api_client/models/marketplace_resources_retrieve_field_item.py +2 -0
  132. waldur_api_client/models/marketplace_service_providers_course_accounts_list_o_item.py +23 -0
  133. waldur_api_client/models/marketplace_service_providers_offerings_list_field_item.py +1 -0
  134. waldur_api_client/models/merged_plugin_options.py +9 -0
  135. waldur_api_client/models/merged_plugin_options_request.py +9 -0
  136. waldur_api_client/models/nested_round.py +9 -0
  137. waldur_api_client/models/nested_round_request.py +9 -0
  138. waldur_api_client/models/notification.py +11 -0
  139. waldur_api_client/models/notification_context_fields.py +47 -0
  140. waldur_api_client/models/offering.py +20 -0
  141. waldur_api_client/models/offering_compliance_checklist_update_request.py +82 -0
  142. waldur_api_client/models/offering_create.py +20 -0
  143. waldur_api_client/models/offering_create_request.py +20 -0
  144. waldur_api_client/models/{provider_offering_details_request.py → offering_create_request_form.py} +77 -5
  145. waldur_api_client/models/offering_create_request_form_limits.py +57 -0
  146. waldur_api_client/models/offering_create_request_multipart.py +599 -0
  147. waldur_api_client/models/offering_create_request_multipart_limits.py +57 -0
  148. waldur_api_client/models/offering_file_request_form.py +78 -0
  149. waldur_api_client/models/offering_file_request_multipart.py +93 -0
  150. waldur_api_client/models/offering_image_request_form.py +62 -0
  151. waldur_api_client/models/offering_image_request_multipart.py +73 -0
  152. waldur_api_client/models/offering_thumbnail_request_form.py +62 -0
  153. waldur_api_client/models/offering_thumbnail_request_multipart.py +73 -0
  154. waldur_api_client/models/offering_user.py +5 -5
  155. waldur_api_client/models/{offering_user_state_enum.py → offering_user_state.py} +1 -1
  156. waldur_api_client/models/order_attachment_request_form.py +84 -0
  157. waldur_api_client/models/order_attachment_request_multipart.py +98 -0
  158. waldur_api_client/models/order_details.py +34 -0
  159. waldur_api_client/models/paid_request_form.py +81 -0
  160. waldur_api_client/models/paid_request_multipart.py +94 -0
  161. waldur_api_client/models/patched_call_managing_organisation_request_form.py +92 -0
  162. waldur_api_client/models/patched_call_managing_organisation_request_multipart.py +109 -0
  163. waldur_api_client/models/patched_category_group_request_form.py +101 -0
  164. waldur_api_client/models/patched_category_group_request_multipart.py +121 -0
  165. waldur_api_client/models/patched_checklist_category_request_form.py +102 -0
  166. waldur_api_client/models/patched_checklist_category_request_multipart.py +122 -0
  167. waldur_api_client/models/patched_customer_request.py +9 -0
  168. waldur_api_client/models/patched_customer_request_form.py +310 -0
  169. waldur_api_client/models/patched_customer_request_multipart.py +393 -0
  170. waldur_api_client/models/patched_external_link_request_form.py +110 -0
  171. waldur_api_client/models/patched_external_link_request_multipart.py +133 -0
  172. waldur_api_client/models/patched_marketplace_category_request_form.py +151 -0
  173. waldur_api_client/models/patched_marketplace_category_request_multipart.py +186 -0
  174. waldur_api_client/models/patched_payment_request_form.py +119 -0
  175. waldur_api_client/models/patched_payment_request_multipart.py +142 -0
  176. waldur_api_client/models/patched_project_request_form.py +279 -0
  177. waldur_api_client/models/patched_project_request_multipart.py +342 -0
  178. waldur_api_client/models/patched_service_provider_request_form.py +101 -0
  179. waldur_api_client/models/patched_service_provider_request_multipart.py +121 -0
  180. waldur_api_client/models/patched_user_request_form.py +241 -0
  181. waldur_api_client/models/patched_user_request_multipart.py +306 -0
  182. waldur_api_client/models/payment_request_form.py +113 -0
  183. waldur_api_client/models/payment_request_multipart.py +134 -0
  184. waldur_api_client/models/project_request_form.py +280 -0
  185. waldur_api_client/models/project_request_multipart.py +341 -0
  186. waldur_api_client/models/project_user.py +9 -0
  187. waldur_api_client/models/proposal.py +8 -0
  188. waldur_api_client/models/proposal_documentation_request_form.py +84 -0
  189. waldur_api_client/models/proposal_documentation_request_multipart.py +98 -0
  190. waldur_api_client/models/proposal_proposals_count_o_item.py +3 -1
  191. waldur_api_client/models/proposal_proposals_list_o_item.py +3 -1
  192. waldur_api_client/models/proposal_review.py +40 -0
  193. waldur_api_client/models/protected_proposal_list.py +8 -0
  194. waldur_api_client/models/protected_proposal_list_request.py +8 -0
  195. waldur_api_client/models/protected_round.py +8 -0
  196. waldur_api_client/models/provider_offering.py +21 -1
  197. waldur_api_client/models/provider_offering_details.py +20 -0
  198. waldur_api_client/models/public_offering_details.py +20 -0
  199. waldur_api_client/models/resource.py +18 -0
  200. waldur_api_client/models/resource_update_limits_request.py +1 -34
  201. waldur_api_client/models/screenshot_request_form.py +87 -0
  202. waldur_api_client/models/screenshot_request_multipart.py +105 -0
  203. waldur_api_client/models/service_provider_request_form.py +112 -0
  204. waldur_api_client/models/service_provider_request_multipart.py +134 -0
  205. waldur_api_client/models/user_checklist_completion.py +265 -0
  206. waldur_api_client/models/user_request_form.py +250 -0
  207. waldur_api_client/models/user_request_multipart.py +316 -0
  208. waldur_api_client/models/visible_invitation_details.py +8 -0
  209. {waldur_api_client-7.8.0.dist-info → waldur_api_client-7.8.2.dist-info}/METADATA +1 -1
  210. {waldur_api_client-7.8.0.dist-info → waldur_api_client-7.8.2.dist-info}/RECORD +212 -127
  211. {waldur_api_client-7.8.0.dist-info → waldur_api_client-7.8.2.dist-info}/WHEEL +1 -1
  212. {waldur_api_client-7.8.0.dist-info → waldur_api_client-7.8.2.dist-info}/licenses/LICENSE +0 -0
@@ -0,0 +1,13 @@
1
+ from enum import Enum
2
+
3
+
4
+ class AgentTypeEnum(str, Enum):
5
+ EVENT_PROCESSING = "Event processing"
6
+ GLAUTH_SYNC = "Glauth sync"
7
+ ORDER_PROCESSING = "Order processing"
8
+ RESOURCE_SYNC = "Resource sync"
9
+ UNKNOWN = "unknown"
10
+ USAGE_REPORTING = "Usage reporting"
11
+
12
+ def __str__(self) -> str:
13
+ return str(self.value)
@@ -0,0 +1,70 @@
1
+ from collections.abc import Mapping
2
+ from io import BytesIO
3
+ from typing import Any, TypeVar
4
+
5
+ from attrs import define as _attrs_define
6
+ from attrs import field as _attrs_field
7
+
8
+ from ..types import File
9
+
10
+ T = TypeVar("T", bound="AttachmentRequestForm")
11
+
12
+
13
+ @_attrs_define
14
+ class AttachmentRequestForm:
15
+ """
16
+ Attributes:
17
+ issue (str):
18
+ file (File):
19
+ """
20
+
21
+ issue: str
22
+ file: File
23
+ additional_properties: dict[str, Any] = _attrs_field(init=False, factory=dict)
24
+
25
+ def to_dict(self) -> dict[str, Any]:
26
+ issue = self.issue
27
+
28
+ file = self.file.to_tuple()
29
+
30
+ field_dict: dict[str, Any] = {}
31
+ field_dict.update(self.additional_properties)
32
+ field_dict.update(
33
+ {
34
+ "issue": issue,
35
+ "file": file,
36
+ }
37
+ )
38
+
39
+ return field_dict
40
+
41
+ @classmethod
42
+ def from_dict(cls: type[T], src_dict: Mapping[str, Any]) -> T:
43
+ d = dict(src_dict)
44
+ issue = d.pop("issue")
45
+
46
+ file = File(payload=BytesIO(d.pop("file")))
47
+
48
+ attachment_request_form = cls(
49
+ issue=issue,
50
+ file=file,
51
+ )
52
+
53
+ attachment_request_form.additional_properties = d
54
+ return attachment_request_form
55
+
56
+ @property
57
+ def additional_keys(self) -> list[str]:
58
+ return list(self.additional_properties.keys())
59
+
60
+ def __getitem__(self, key: str) -> Any:
61
+ return self.additional_properties[key]
62
+
63
+ def __setitem__(self, key: str, value: Any) -> None:
64
+ self.additional_properties[key] = value
65
+
66
+ def __delitem__(self, key: str) -> None:
67
+ del self.additional_properties[key]
68
+
69
+ def __contains__(self, key: str) -> bool:
70
+ return key in self.additional_properties
@@ -0,0 +1,83 @@
1
+ from collections.abc import Mapping
2
+ from io import BytesIO
3
+ from typing import Any, TypeVar
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 File
10
+
11
+ T = TypeVar("T", bound="AttachmentRequestMultipart")
12
+
13
+
14
+ @_attrs_define
15
+ class AttachmentRequestMultipart:
16
+ """
17
+ Attributes:
18
+ issue (str):
19
+ file (File):
20
+ """
21
+
22
+ issue: str
23
+ file: File
24
+ additional_properties: dict[str, Any] = _attrs_field(init=False, factory=dict)
25
+
26
+ def to_dict(self) -> dict[str, Any]:
27
+ issue = self.issue
28
+
29
+ file = self.file.to_tuple()
30
+
31
+ field_dict: dict[str, Any] = {}
32
+ field_dict.update(self.additional_properties)
33
+ field_dict.update(
34
+ {
35
+ "issue": issue,
36
+ "file": file,
37
+ }
38
+ )
39
+
40
+ return field_dict
41
+
42
+ def to_multipart(self) -> types.RequestFiles:
43
+ files: types.RequestFiles = []
44
+
45
+ files.append(("issue", (None, str(self.issue).encode(), "text/plain")))
46
+
47
+ files.append(("file", self.file.to_tuple()))
48
+
49
+ for prop_name, prop in self.additional_properties.items():
50
+ files.append((prop_name, (None, str(prop).encode(), "text/plain")))
51
+
52
+ return files
53
+
54
+ @classmethod
55
+ def from_dict(cls: type[T], src_dict: Mapping[str, Any]) -> T:
56
+ d = dict(src_dict)
57
+ issue = d.pop("issue")
58
+
59
+ file = File(payload=BytesIO(d.pop("file")))
60
+
61
+ attachment_request_multipart = cls(
62
+ issue=issue,
63
+ file=file,
64
+ )
65
+
66
+ attachment_request_multipart.additional_properties = d
67
+ return attachment_request_multipart
68
+
69
+ @property
70
+ def additional_keys(self) -> list[str]:
71
+ return list(self.additional_properties.keys())
72
+
73
+ def __getitem__(self, key: str) -> Any:
74
+ return self.additional_properties[key]
75
+
76
+ def __setitem__(self, key: str, value: Any) -> None:
77
+ self.additional_properties[key] = value
78
+
79
+ def __delitem__(self, key: str) -> None:
80
+ del self.additional_properties[key]
81
+
82
+ def __contains__(self, key: str) -> bool:
83
+ return key in self.additional_properties
@@ -11,6 +11,7 @@ class BookingOfferingsListFieldItem(str, Enum):
11
11
  CATEGORY_TITLE = "category_title"
12
12
  CATEGORY_UUID = "category_uuid"
13
13
  CITATION_COUNT = "citation_count"
14
+ COMPLIANCE_CHECKLIST = "compliance_checklist"
14
15
  COMPONENTS = "components"
15
16
  COUNTRY = "country"
16
17
  CREATED = "created"
@@ -11,6 +11,7 @@ class BookingOfferingsRetrieveFieldItem(str, Enum):
11
11
  CATEGORY_TITLE = "category_title"
12
12
  CATEGORY_UUID = "category_uuid"
13
13
  CITATION_COUNT = "citation_count"
14
+ COMPLIANCE_CHECKLIST = "compliance_checklist"
14
15
  COMPONENTS = "components"
15
16
  COUNTRY = "country"
16
17
  CREATED = "created"
@@ -99,6 +99,8 @@ class BookingResource:
99
99
  error_message (Union[Unset, str]):
100
100
  error_traceback (Union[Unset, str]):
101
101
  offering_customer_uuid (Union[Unset, UUID]):
102
+ offering_customer_name (Union[Unset, str]):
103
+ offering_customer_slug (Union[Unset, str]):
102
104
  options (Union[Unset, Any]):
103
105
  available_actions (Union[Unset, list[str]]):
104
106
  last_sync (Union[Unset, datetime.datetime]):
@@ -186,6 +188,8 @@ class BookingResource:
186
188
  error_message: Union[Unset, str] = UNSET
187
189
  error_traceback: Union[Unset, str] = UNSET
188
190
  offering_customer_uuid: Union[Unset, UUID] = UNSET
191
+ offering_customer_name: Union[Unset, str] = UNSET
192
+ offering_customer_slug: Union[Unset, str] = UNSET
189
193
  options: Union[Unset, Any] = UNSET
190
194
  available_actions: Union[Unset, list[str]] = UNSET
191
195
  last_sync: Union[Unset, datetime.datetime] = UNSET
@@ -433,6 +437,10 @@ class BookingResource:
433
437
  if not isinstance(self.offering_customer_uuid, Unset):
434
438
  offering_customer_uuid = str(self.offering_customer_uuid)
435
439
 
440
+ offering_customer_name = self.offering_customer_name
441
+
442
+ offering_customer_slug = self.offering_customer_slug
443
+
436
444
  options = self.options
437
445
 
438
446
  available_actions: Union[Unset, list[str]] = UNSET
@@ -623,6 +631,10 @@ class BookingResource:
623
631
  field_dict["error_traceback"] = error_traceback
624
632
  if offering_customer_uuid is not UNSET:
625
633
  field_dict["offering_customer_uuid"] = offering_customer_uuid
634
+ if offering_customer_name is not UNSET:
635
+ field_dict["offering_customer_name"] = offering_customer_name
636
+ if offering_customer_slug is not UNSET:
637
+ field_dict["offering_customer_slug"] = offering_customer_slug
626
638
  if options is not UNSET:
627
639
  field_dict["options"] = options
628
640
  if available_actions is not UNSET:
@@ -1008,6 +1020,10 @@ class BookingResource:
1008
1020
  else:
1009
1021
  offering_customer_uuid = UUID(_offering_customer_uuid)
1010
1022
 
1023
+ offering_customer_name = d.pop("offering_customer_name", UNSET)
1024
+
1025
+ offering_customer_slug = d.pop("offering_customer_slug", UNSET)
1026
+
1011
1027
  options = d.pop("options", UNSET)
1012
1028
 
1013
1029
  available_actions = cast(list[str], d.pop("available_actions", UNSET))
@@ -1152,6 +1168,8 @@ class BookingResource:
1152
1168
  error_message=error_message,
1153
1169
  error_traceback=error_traceback,
1154
1170
  offering_customer_uuid=offering_customer_uuid,
1171
+ offering_customer_name=offering_customer_name,
1172
+ offering_customer_slug=offering_customer_slug,
1155
1173
  options=options,
1156
1174
  available_actions=available_actions,
1157
1175
  last_sync=last_sync,
@@ -39,6 +39,8 @@ class BookingResourcesListFieldItem(str, Enum):
39
39
  NAME = "name"
40
40
  OFFERING = "offering"
41
41
  OFFERING_BILLABLE = "offering_billable"
42
+ OFFERING_CUSTOMER_NAME = "offering_customer_name"
43
+ OFFERING_CUSTOMER_SLUG = "offering_customer_slug"
42
44
  OFFERING_CUSTOMER_UUID = "offering_customer_uuid"
43
45
  OFFERING_DESCRIPTION = "offering_description"
44
46
  OFFERING_IMAGE = "offering_image"
@@ -39,6 +39,8 @@ class BookingResourcesRetrieveFieldItem(str, Enum):
39
39
  NAME = "name"
40
40
  OFFERING = "offering"
41
41
  OFFERING_BILLABLE = "offering_billable"
42
+ OFFERING_CUSTOMER_NAME = "offering_customer_name"
43
+ OFFERING_CUSTOMER_SLUG = "offering_customer_slug"
42
44
  OFFERING_CUSTOMER_UUID = "offering_customer_uuid"
43
45
  OFFERING_DESCRIPTION = "offering_description"
44
46
  OFFERING_IMAGE = "offering_image"
@@ -0,0 +1,103 @@
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="CallManagingOrganisationRequestForm")
12
+
13
+
14
+ @_attrs_define
15
+ class CallManagingOrganisationRequestForm:
16
+ """
17
+ Attributes:
18
+ customer (str):
19
+ description (Union[Unset, str]):
20
+ image (Union[File, None, Unset]):
21
+ """
22
+
23
+ customer: str
24
+ description: Union[Unset, str] = UNSET
25
+ image: Union[File, None, Unset] = UNSET
26
+ additional_properties: dict[str, Any] = _attrs_field(init=False, factory=dict)
27
+
28
+ def to_dict(self) -> dict[str, Any]:
29
+ customer = self.customer
30
+
31
+ description = self.description
32
+
33
+ image: Union[None, Unset, types.FileTypes]
34
+ if isinstance(self.image, Unset):
35
+ image = UNSET
36
+ elif isinstance(self.image, File):
37
+ image = self.image.to_tuple()
38
+
39
+ else:
40
+ image = self.image
41
+
42
+ field_dict: dict[str, Any] = {}
43
+ field_dict.update(self.additional_properties)
44
+ field_dict.update(
45
+ {
46
+ "customer": customer,
47
+ }
48
+ )
49
+ if description is not UNSET:
50
+ field_dict["description"] = description
51
+ if image is not UNSET:
52
+ field_dict["image"] = image
53
+
54
+ return field_dict
55
+
56
+ @classmethod
57
+ def from_dict(cls: type[T], src_dict: Mapping[str, Any]) -> T:
58
+ d = dict(src_dict)
59
+ customer = d.pop("customer")
60
+
61
+ description = d.pop("description", UNSET)
62
+
63
+ def _parse_image(data: object) -> Union[File, None, Unset]:
64
+ if data is None:
65
+ return data
66
+ if isinstance(data, Unset):
67
+ return data
68
+ try:
69
+ if not isinstance(data, bytes):
70
+ raise TypeError()
71
+ image_type_0 = File(payload=BytesIO(data))
72
+
73
+ return image_type_0
74
+ except: # noqa: E722
75
+ pass
76
+ return cast(Union[File, None, Unset], data)
77
+
78
+ image = _parse_image(d.pop("image", UNSET))
79
+
80
+ call_managing_organisation_request_form = cls(
81
+ customer=customer,
82
+ description=description,
83
+ image=image,
84
+ )
85
+
86
+ call_managing_organisation_request_form.additional_properties = d
87
+ return call_managing_organisation_request_form
88
+
89
+ @property
90
+ def additional_keys(self) -> list[str]:
91
+ return list(self.additional_properties.keys())
92
+
93
+ def __getitem__(self, key: str) -> Any:
94
+ return self.additional_properties[key]
95
+
96
+ def __setitem__(self, key: str, value: Any) -> None:
97
+ self.additional_properties[key] = value
98
+
99
+ def __delitem__(self, key: str) -> None:
100
+ del self.additional_properties[key]
101
+
102
+ def __contains__(self, key: str) -> bool:
103
+ return key in self.additional_properties
@@ -0,0 +1,122 @@
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="CallManagingOrganisationRequestMultipart")
12
+
13
+
14
+ @_attrs_define
15
+ class CallManagingOrganisationRequestMultipart:
16
+ """
17
+ Attributes:
18
+ customer (str):
19
+ description (Union[Unset, str]):
20
+ image (Union[File, None, Unset]):
21
+ """
22
+
23
+ customer: str
24
+ description: Union[Unset, str] = UNSET
25
+ image: Union[File, None, Unset] = UNSET
26
+ additional_properties: dict[str, Any] = _attrs_field(init=False, factory=dict)
27
+
28
+ def to_dict(self) -> dict[str, Any]:
29
+ customer = self.customer
30
+
31
+ description = self.description
32
+
33
+ image: Union[None, Unset, types.FileTypes]
34
+ if isinstance(self.image, Unset):
35
+ image = UNSET
36
+ elif isinstance(self.image, File):
37
+ image = self.image.to_tuple()
38
+
39
+ else:
40
+ image = self.image
41
+
42
+ field_dict: dict[str, Any] = {}
43
+ field_dict.update(self.additional_properties)
44
+ field_dict.update(
45
+ {
46
+ "customer": customer,
47
+ }
48
+ )
49
+ if description is not UNSET:
50
+ field_dict["description"] = description
51
+ if image is not UNSET:
52
+ field_dict["image"] = image
53
+
54
+ return field_dict
55
+
56
+ def to_multipart(self) -> types.RequestFiles:
57
+ files: types.RequestFiles = []
58
+
59
+ files.append(("customer", (None, str(self.customer).encode(), "text/plain")))
60
+
61
+ if not isinstance(self.description, Unset):
62
+ files.append(("description", (None, str(self.description).encode(), "text/plain")))
63
+
64
+ if not isinstance(self.image, Unset):
65
+ if isinstance(self.image, File):
66
+ files.append(("image", self.image.to_tuple()))
67
+ else:
68
+ files.append(("image", (None, str(self.image).encode(), "text/plain")))
69
+
70
+ for prop_name, prop in self.additional_properties.items():
71
+ files.append((prop_name, (None, str(prop).encode(), "text/plain")))
72
+
73
+ return files
74
+
75
+ @classmethod
76
+ def from_dict(cls: type[T], src_dict: Mapping[str, Any]) -> T:
77
+ d = dict(src_dict)
78
+ customer = d.pop("customer")
79
+
80
+ description = d.pop("description", UNSET)
81
+
82
+ def _parse_image(data: object) -> Union[File, None, Unset]:
83
+ if data is None:
84
+ return data
85
+ if isinstance(data, Unset):
86
+ return data
87
+ try:
88
+ if not isinstance(data, bytes):
89
+ raise TypeError()
90
+ image_type_0 = File(payload=BytesIO(data))
91
+
92
+ return image_type_0
93
+ except: # noqa: E722
94
+ pass
95
+ return cast(Union[File, None, Unset], data)
96
+
97
+ image = _parse_image(d.pop("image", UNSET))
98
+
99
+ call_managing_organisation_request_multipart = cls(
100
+ customer=customer,
101
+ description=description,
102
+ image=image,
103
+ )
104
+
105
+ call_managing_organisation_request_multipart.additional_properties = d
106
+ return call_managing_organisation_request_multipart
107
+
108
+ @property
109
+ def additional_keys(self) -> list[str]:
110
+ return list(self.additional_properties.keys())
111
+
112
+ def __getitem__(self, key: str) -> Any:
113
+ return self.additional_properties[key]
114
+
115
+ def __setitem__(self, key: str, value: Any) -> None:
116
+ self.additional_properties[key] = value
117
+
118
+ def __delitem__(self, key: str) -> None:
119
+ del self.additional_properties[key]
120
+
121
+ def __contains__(self, key: str) -> bool:
122
+ return key in self.additional_properties
@@ -1,6 +1,6 @@
1
1
  import datetime
2
2
  from collections.abc import Mapping
3
- from typing import Any, TypeVar
3
+ from typing import Any, TypeVar, Union
4
4
  from uuid import UUID
5
5
 
6
6
  from attrs import define as _attrs_define
@@ -8,6 +8,7 @@ from attrs import field as _attrs_field
8
8
  from dateutil.parser import isoparse
9
9
 
10
10
  from ..models.status_enum import StatusEnum
11
+ from ..types import UNSET, Unset
11
12
 
12
13
  T = TypeVar("T", bound="CallRound")
13
14
 
@@ -23,6 +24,7 @@ class CallRound:
23
24
  call_uuid (UUID):
24
25
  call_name (str):
25
26
  status (StatusEnum):
27
+ slug (Union[Unset, str]):
26
28
  """
27
29
 
28
30
  url: str
@@ -32,6 +34,7 @@ class CallRound:
32
34
  call_uuid: UUID
33
35
  call_name: str
34
36
  status: StatusEnum
37
+ slug: Union[Unset, str] = UNSET
35
38
  additional_properties: dict[str, Any] = _attrs_field(init=False, factory=dict)
36
39
 
37
40
  def to_dict(self) -> dict[str, Any]:
@@ -49,6 +52,8 @@ class CallRound:
49
52
 
50
53
  status = self.status.value
51
54
 
55
+ slug = self.slug
56
+
52
57
  field_dict: dict[str, Any] = {}
53
58
  field_dict.update(self.additional_properties)
54
59
  field_dict.update(
@@ -62,6 +67,8 @@ class CallRound:
62
67
  "status": status,
63
68
  }
64
69
  )
70
+ if slug is not UNSET:
71
+ field_dict["slug"] = slug
65
72
 
66
73
  return field_dict
67
74
 
@@ -82,6 +89,8 @@ class CallRound:
82
89
 
83
90
  status = StatusEnum(d.pop("status"))
84
91
 
92
+ slug = d.pop("slug", UNSET)
93
+
85
94
  call_round = cls(
86
95
  url=url,
87
96
  uuid=uuid,
@@ -90,6 +99,7 @@ class CallRound:
90
99
  call_uuid=call_uuid,
91
100
  call_name=call_name,
92
101
  status=status,
102
+ slug=slug,
93
103
  )
94
104
 
95
105
  call_round.additional_properties = d
@@ -0,0 +1,103 @@
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="CategoryGroupRequestForm")
12
+
13
+
14
+ @_attrs_define
15
+ class CategoryGroupRequestForm:
16
+ """
17
+ Attributes:
18
+ title (str):
19
+ description (Union[Unset, str]):
20
+ icon (Union[File, None, Unset]):
21
+ """
22
+
23
+ title: str
24
+ description: Union[Unset, str] = UNSET
25
+ icon: Union[File, None, Unset] = UNSET
26
+ additional_properties: dict[str, Any] = _attrs_field(init=False, factory=dict)
27
+
28
+ def to_dict(self) -> dict[str, Any]:
29
+ title = self.title
30
+
31
+ description = self.description
32
+
33
+ icon: Union[None, Unset, types.FileTypes]
34
+ if isinstance(self.icon, Unset):
35
+ icon = UNSET
36
+ elif isinstance(self.icon, File):
37
+ icon = self.icon.to_tuple()
38
+
39
+ else:
40
+ icon = self.icon
41
+
42
+ field_dict: dict[str, Any] = {}
43
+ field_dict.update(self.additional_properties)
44
+ field_dict.update(
45
+ {
46
+ "title": title,
47
+ }
48
+ )
49
+ if description is not UNSET:
50
+ field_dict["description"] = description
51
+ if icon is not UNSET:
52
+ field_dict["icon"] = icon
53
+
54
+ return field_dict
55
+
56
+ @classmethod
57
+ def from_dict(cls: type[T], src_dict: Mapping[str, Any]) -> T:
58
+ d = dict(src_dict)
59
+ title = d.pop("title")
60
+
61
+ description = d.pop("description", UNSET)
62
+
63
+ def _parse_icon(data: object) -> Union[File, None, Unset]:
64
+ if data is None:
65
+ return data
66
+ if isinstance(data, Unset):
67
+ return data
68
+ try:
69
+ if not isinstance(data, bytes):
70
+ raise TypeError()
71
+ icon_type_0 = File(payload=BytesIO(data))
72
+
73
+ return icon_type_0
74
+ except: # noqa: E722
75
+ pass
76
+ return cast(Union[File, None, Unset], data)
77
+
78
+ icon = _parse_icon(d.pop("icon", UNSET))
79
+
80
+ category_group_request_form = cls(
81
+ title=title,
82
+ description=description,
83
+ icon=icon,
84
+ )
85
+
86
+ category_group_request_form.additional_properties = d
87
+ return category_group_request_form
88
+
89
+ @property
90
+ def additional_keys(self) -> list[str]:
91
+ return list(self.additional_properties.keys())
92
+
93
+ def __getitem__(self, key: str) -> Any:
94
+ return self.additional_properties[key]
95
+
96
+ def __setitem__(self, key: str, value: Any) -> None:
97
+ self.additional_properties[key] = value
98
+
99
+ def __delitem__(self, key: str) -> None:
100
+ del self.additional_properties[key]
101
+
102
+ def __contains__(self, key: str) -> bool:
103
+ return key in self.additional_properties