waldur-api-client 7.8.1__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 (169) 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_offering_files/marketplace_offering_files_create.py +44 -7
  26. waldur_api_client/api/marketplace_orders/marketplace_orders_update_attachment.py +44 -7
  27. waldur_api_client/api/marketplace_provider_offerings/marketplace_provider_offerings_create.py +44 -7
  28. waldur_api_client/api/marketplace_provider_offerings/marketplace_provider_offerings_update_image.py +44 -7
  29. waldur_api_client/api/marketplace_provider_offerings/marketplace_provider_offerings_update_thumbnail.py +30 -5
  30. waldur_api_client/api/marketplace_provider_resources/marketplace_provider_resources_count.py +10 -13
  31. waldur_api_client/api/marketplace_provider_resources/marketplace_provider_resources_list.py +10 -13
  32. waldur_api_client/api/marketplace_resources/marketplace_resources_count.py +10 -13
  33. waldur_api_client/api/marketplace_resources/marketplace_resources_list.py +10 -13
  34. waldur_api_client/api/marketplace_screenshots/marketplace_screenshots_create.py +44 -7
  35. waldur_api_client/api/marketplace_screenshots/marketplace_screenshots_update.py +44 -7
  36. waldur_api_client/api/marketplace_service_providers/marketplace_service_providers_create.py +44 -7
  37. waldur_api_client/api/marketplace_service_providers/marketplace_service_providers_partial_update.py +44 -7
  38. waldur_api_client/api/marketplace_service_providers/marketplace_service_providers_update.py +44 -7
  39. waldur_api_client/api/override_settings/override_settings.py +30 -5
  40. waldur_api_client/api/payments/payments_create.py +44 -7
  41. waldur_api_client/api/payments/payments_partial_update.py +44 -7
  42. waldur_api_client/api/payments/payments_update.py +44 -7
  43. waldur_api_client/api/projects/projects_create.py +44 -7
  44. waldur_api_client/api/projects/projects_partial_update.py +44 -7
  45. waldur_api_client/api/projects/projects_update.py +44 -7
  46. waldur_api_client/api/proposal_proposals/proposal_proposals_attach_document.py +30 -5
  47. waldur_api_client/api/slurm_jobs/slurm_jobs_create.py +44 -7
  48. waldur_api_client/api/slurm_jobs/slurm_jobs_update.py +44 -7
  49. waldur_api_client/api/support_attachments/support_attachments_create.py +44 -7
  50. waldur_api_client/api/user_group_invitations/user_group_invitations_count.py +15 -0
  51. waldur_api_client/api/user_group_invitations/user_group_invitations_list.py +15 -0
  52. waldur_api_client/api/users/users_create.py +44 -7
  53. waldur_api_client/api/users/users_partial_update.py +44 -7
  54. waldur_api_client/api/users/users_update.py +44 -7
  55. waldur_api_client/models/__init__.py +146 -2
  56. waldur_api_client/models/agent_type_enum.py +13 -0
  57. waldur_api_client/models/attachment_request_form.py +70 -0
  58. waldur_api_client/models/attachment_request_multipart.py +83 -0
  59. waldur_api_client/models/booking_offerings_list_field_item.py +1 -0
  60. waldur_api_client/models/booking_offerings_retrieve_field_item.py +1 -0
  61. waldur_api_client/models/call_managing_organisation_request_form.py +103 -0
  62. waldur_api_client/models/call_managing_organisation_request_multipart.py +122 -0
  63. waldur_api_client/models/call_round.py +11 -1
  64. waldur_api_client/models/category_group_request_form.py +103 -0
  65. waldur_api_client/models/category_group_request_multipart.py +122 -0
  66. waldur_api_client/models/checklist_category_request_form.py +103 -0
  67. waldur_api_client/models/checklist_category_request_multipart.py +122 -0
  68. waldur_api_client/models/checklists_admin_checklist_questions_checklist_type.py +11 -0
  69. waldur_api_client/models/checklists_admin_checklist_questions_checklist_type_in_item.py +11 -0
  70. waldur_api_client/models/checklists_admin_count_checklist_type.py +11 -0
  71. waldur_api_client/models/checklists_admin_count_checklist_type_in_item.py +11 -0
  72. waldur_api_client/models/checklists_admin_list_checklist_type.py +11 -0
  73. waldur_api_client/models/checklists_admin_list_checklist_type_in_item.py +11 -0
  74. waldur_api_client/models/constance_settings.py +9 -0
  75. waldur_api_client/models/constance_settings_request.py +9 -0
  76. waldur_api_client/models/constance_settings_request_form.py +1547 -0
  77. waldur_api_client/models/constance_settings_request_multipart.py +2173 -0
  78. waldur_api_client/models/customer.py +9 -0
  79. waldur_api_client/models/customer_request.py +9 -0
  80. waldur_api_client/models/customer_request_form.py +312 -0
  81. waldur_api_client/models/customer_request_multipart.py +394 -0
  82. waldur_api_client/models/customers_list_field_item.py +1 -0
  83. waldur_api_client/models/customers_retrieve_field_item.py +1 -0
  84. waldur_api_client/models/external_link_request_form.py +111 -0
  85. waldur_api_client/models/external_link_request_multipart.py +132 -0
  86. waldur_api_client/models/firecrest_job_request_form.py +104 -0
  87. waldur_api_client/models/firecrest_job_request_multipart.py +127 -0
  88. waldur_api_client/models/integration_status.py +21 -4
  89. waldur_api_client/models/marketplace_category_request_form.py +153 -0
  90. waldur_api_client/models/marketplace_category_request_multipart.py +187 -0
  91. waldur_api_client/models/marketplace_provider_offerings_list_course_accounts_retrieve_field_item.py +1 -0
  92. waldur_api_client/models/marketplace_provider_offerings_list_customer_service_accounts_retrieve_field_item.py +1 -0
  93. waldur_api_client/models/marketplace_provider_offerings_list_field_item.py +1 -0
  94. waldur_api_client/models/marketplace_provider_offerings_list_project_service_accounts_retrieve_field_item.py +1 -0
  95. waldur_api_client/models/marketplace_provider_offerings_retrieve_field_item.py +1 -0
  96. waldur_api_client/models/marketplace_provider_offerings_stats_retrieve_field_item.py +1 -0
  97. waldur_api_client/models/marketplace_provider_offerings_user_has_resource_access_retrieve_field_item.py +1 -0
  98. waldur_api_client/models/marketplace_public_offerings_list_field_item.py +1 -0
  99. waldur_api_client/models/marketplace_public_offerings_retrieve_field_item.py +1 -0
  100. waldur_api_client/models/marketplace_service_providers_offerings_list_field_item.py +1 -0
  101. waldur_api_client/models/nested_round.py +9 -0
  102. waldur_api_client/models/nested_round_request.py +9 -0
  103. waldur_api_client/models/offering.py +20 -0
  104. waldur_api_client/models/offering_create.py +20 -0
  105. waldur_api_client/models/offering_create_request.py +20 -0
  106. waldur_api_client/models/offering_create_request_form.py +479 -0
  107. waldur_api_client/models/offering_create_request_form_limits.py +57 -0
  108. waldur_api_client/models/offering_create_request_multipart.py +599 -0
  109. waldur_api_client/models/offering_create_request_multipart_limits.py +57 -0
  110. waldur_api_client/models/offering_file_request_form.py +78 -0
  111. waldur_api_client/models/offering_file_request_multipart.py +93 -0
  112. waldur_api_client/models/offering_image_request_form.py +62 -0
  113. waldur_api_client/models/offering_image_request_multipart.py +73 -0
  114. waldur_api_client/models/offering_thumbnail_request_form.py +62 -0
  115. waldur_api_client/models/offering_thumbnail_request_multipart.py +73 -0
  116. waldur_api_client/models/offering_user.py +5 -5
  117. waldur_api_client/models/{offering_user_state_enum.py → offering_user_state.py} +1 -1
  118. waldur_api_client/models/order_attachment_request_form.py +84 -0
  119. waldur_api_client/models/order_attachment_request_multipart.py +98 -0
  120. waldur_api_client/models/paid_request_form.py +81 -0
  121. waldur_api_client/models/paid_request_multipart.py +94 -0
  122. waldur_api_client/models/patched_call_managing_organisation_request_form.py +92 -0
  123. waldur_api_client/models/patched_call_managing_organisation_request_multipart.py +109 -0
  124. waldur_api_client/models/patched_category_group_request_form.py +101 -0
  125. waldur_api_client/models/patched_category_group_request_multipart.py +121 -0
  126. waldur_api_client/models/patched_checklist_category_request_form.py +102 -0
  127. waldur_api_client/models/patched_checklist_category_request_multipart.py +122 -0
  128. waldur_api_client/models/patched_customer_request.py +9 -0
  129. waldur_api_client/models/patched_customer_request_form.py +310 -0
  130. waldur_api_client/models/patched_customer_request_multipart.py +393 -0
  131. waldur_api_client/models/patched_external_link_request_form.py +110 -0
  132. waldur_api_client/models/patched_external_link_request_multipart.py +133 -0
  133. waldur_api_client/models/patched_marketplace_category_request_form.py +151 -0
  134. waldur_api_client/models/patched_marketplace_category_request_multipart.py +186 -0
  135. waldur_api_client/models/patched_payment_request_form.py +119 -0
  136. waldur_api_client/models/patched_payment_request_multipart.py +142 -0
  137. waldur_api_client/models/patched_project_request_form.py +279 -0
  138. waldur_api_client/models/patched_project_request_multipart.py +342 -0
  139. waldur_api_client/models/patched_service_provider_request_form.py +101 -0
  140. waldur_api_client/models/patched_service_provider_request_multipart.py +121 -0
  141. waldur_api_client/models/patched_user_request_form.py +241 -0
  142. waldur_api_client/models/patched_user_request_multipart.py +306 -0
  143. waldur_api_client/models/payment_request_form.py +113 -0
  144. waldur_api_client/models/payment_request_multipart.py +134 -0
  145. waldur_api_client/models/project_request_form.py +280 -0
  146. waldur_api_client/models/project_request_multipart.py +341 -0
  147. waldur_api_client/models/project_user.py +9 -0
  148. waldur_api_client/models/proposal.py +8 -0
  149. waldur_api_client/models/proposal_documentation_request_form.py +84 -0
  150. waldur_api_client/models/proposal_documentation_request_multipart.py +98 -0
  151. waldur_api_client/models/proposal_proposals_count_o_item.py +3 -1
  152. waldur_api_client/models/proposal_proposals_list_o_item.py +3 -1
  153. waldur_api_client/models/proposal_review.py +40 -0
  154. waldur_api_client/models/protected_proposal_list.py +8 -0
  155. waldur_api_client/models/protected_proposal_list_request.py +8 -0
  156. waldur_api_client/models/protected_round.py +8 -0
  157. waldur_api_client/models/provider_offering.py +21 -1
  158. waldur_api_client/models/provider_offering_details.py +20 -0
  159. waldur_api_client/models/public_offering_details.py +20 -0
  160. waldur_api_client/models/screenshot_request_form.py +87 -0
  161. waldur_api_client/models/screenshot_request_multipart.py +105 -0
  162. waldur_api_client/models/service_provider_request_form.py +112 -0
  163. waldur_api_client/models/service_provider_request_multipart.py +134 -0
  164. waldur_api_client/models/user_request_form.py +250 -0
  165. waldur_api_client/models/user_request_multipart.py +316 -0
  166. {waldur_api_client-7.8.1.dist-info → waldur_api_client-7.8.2.dist-info}/METADATA +1 -1
  167. {waldur_api_client-7.8.1.dist-info → waldur_api_client-7.8.2.dist-info}/RECORD +169 -98
  168. {waldur_api_client-7.8.1.dist-info → waldur_api_client-7.8.2.dist-info}/WHEEL +0 -0
  169. {waldur_api_client-7.8.1.dist-info → waldur_api_client-7.8.2.dist-info}/licenses/LICENSE +0 -0
@@ -0,0 +1,104 @@
1
+ from collections.abc import Mapping
2
+ from io import BytesIO
3
+ from typing import Any, TypeVar, Union
4
+
5
+ from attrs import define as _attrs_define
6
+ from attrs import field as _attrs_field
7
+
8
+ from ..types import UNSET, File, Unset
9
+
10
+ T = TypeVar("T", bound="FirecrestJobRequestForm")
11
+
12
+
13
+ @_attrs_define
14
+ class FirecrestJobRequestForm:
15
+ """
16
+ Attributes:
17
+ name (str):
18
+ service_settings (str):
19
+ project (str):
20
+ file (File):
21
+ description (Union[Unset, str]):
22
+ runtime_state (Union[Unset, str]):
23
+ """
24
+
25
+ name: str
26
+ service_settings: str
27
+ project: str
28
+ file: File
29
+ description: Union[Unset, str] = UNSET
30
+ runtime_state: Union[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
+ name = self.name
35
+
36
+ service_settings = self.service_settings
37
+
38
+ project = self.project
39
+
40
+ file = self.file.to_tuple()
41
+
42
+ description = self.description
43
+
44
+ runtime_state = self.runtime_state
45
+
46
+ field_dict: dict[str, Any] = {}
47
+ field_dict.update(self.additional_properties)
48
+ field_dict.update(
49
+ {
50
+ "name": name,
51
+ "service_settings": service_settings,
52
+ "project": project,
53
+ "file": file,
54
+ }
55
+ )
56
+ if description is not UNSET:
57
+ field_dict["description"] = description
58
+ if runtime_state is not UNSET:
59
+ field_dict["runtime_state"] = runtime_state
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
+ name = d.pop("name")
67
+
68
+ service_settings = d.pop("service_settings")
69
+
70
+ project = d.pop("project")
71
+
72
+ file = File(payload=BytesIO(d.pop("file")))
73
+
74
+ description = d.pop("description", UNSET)
75
+
76
+ runtime_state = d.pop("runtime_state", UNSET)
77
+
78
+ firecrest_job_request_form = cls(
79
+ name=name,
80
+ service_settings=service_settings,
81
+ project=project,
82
+ file=file,
83
+ description=description,
84
+ runtime_state=runtime_state,
85
+ )
86
+
87
+ firecrest_job_request_form.additional_properties = d
88
+ return firecrest_job_request_form
89
+
90
+ @property
91
+ def additional_keys(self) -> list[str]:
92
+ return list(self.additional_properties.keys())
93
+
94
+ def __getitem__(self, key: str) -> Any:
95
+ return self.additional_properties[key]
96
+
97
+ def __setitem__(self, key: str, value: Any) -> None:
98
+ self.additional_properties[key] = value
99
+
100
+ def __delitem__(self, key: str) -> None:
101
+ del self.additional_properties[key]
102
+
103
+ def __contains__(self, key: str) -> bool:
104
+ return key in self.additional_properties
@@ -0,0 +1,127 @@
1
+ from collections.abc import Mapping
2
+ from io import BytesIO
3
+ from typing import Any, TypeVar, Union
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="FirecrestJobRequestMultipart")
12
+
13
+
14
+ @_attrs_define
15
+ class FirecrestJobRequestMultipart:
16
+ """
17
+ Attributes:
18
+ name (str):
19
+ service_settings (str):
20
+ project (str):
21
+ file (File):
22
+ description (Union[Unset, str]):
23
+ runtime_state (Union[Unset, str]):
24
+ """
25
+
26
+ name: str
27
+ service_settings: str
28
+ project: str
29
+ file: File
30
+ description: Union[Unset, str] = UNSET
31
+ runtime_state: Union[Unset, str] = UNSET
32
+ additional_properties: dict[str, Any] = _attrs_field(init=False, factory=dict)
33
+
34
+ def to_dict(self) -> dict[str, Any]:
35
+ name = self.name
36
+
37
+ service_settings = self.service_settings
38
+
39
+ project = self.project
40
+
41
+ file = self.file.to_tuple()
42
+
43
+ description = self.description
44
+
45
+ runtime_state = self.runtime_state
46
+
47
+ field_dict: dict[str, Any] = {}
48
+ field_dict.update(self.additional_properties)
49
+ field_dict.update(
50
+ {
51
+ "name": name,
52
+ "service_settings": service_settings,
53
+ "project": project,
54
+ "file": file,
55
+ }
56
+ )
57
+ if description is not UNSET:
58
+ field_dict["description"] = description
59
+ if runtime_state is not UNSET:
60
+ field_dict["runtime_state"] = runtime_state
61
+
62
+ return field_dict
63
+
64
+ def to_multipart(self) -> types.RequestFiles:
65
+ files: types.RequestFiles = []
66
+
67
+ files.append(("name", (None, str(self.name).encode(), "text/plain")))
68
+
69
+ files.append(("service_settings", (None, str(self.service_settings).encode(), "text/plain")))
70
+
71
+ files.append(("project", (None, str(self.project).encode(), "text/plain")))
72
+
73
+ files.append(("file", self.file.to_tuple()))
74
+
75
+ if not isinstance(self.description, Unset):
76
+ files.append(("description", (None, str(self.description).encode(), "text/plain")))
77
+
78
+ if not isinstance(self.runtime_state, Unset):
79
+ files.append(("runtime_state", (None, str(self.runtime_state).encode(), "text/plain")))
80
+
81
+ for prop_name, prop in self.additional_properties.items():
82
+ files.append((prop_name, (None, str(prop).encode(), "text/plain")))
83
+
84
+ return files
85
+
86
+ @classmethod
87
+ def from_dict(cls: type[T], src_dict: Mapping[str, Any]) -> T:
88
+ d = dict(src_dict)
89
+ name = d.pop("name")
90
+
91
+ service_settings = d.pop("service_settings")
92
+
93
+ project = d.pop("project")
94
+
95
+ file = File(payload=BytesIO(d.pop("file")))
96
+
97
+ description = d.pop("description", UNSET)
98
+
99
+ runtime_state = d.pop("runtime_state", UNSET)
100
+
101
+ firecrest_job_request_multipart = cls(
102
+ name=name,
103
+ service_settings=service_settings,
104
+ project=project,
105
+ file=file,
106
+ description=description,
107
+ runtime_state=runtime_state,
108
+ )
109
+
110
+ firecrest_job_request_multipart.additional_properties = d
111
+ return firecrest_job_request_multipart
112
+
113
+ @property
114
+ def additional_keys(self) -> list[str]:
115
+ return list(self.additional_properties.keys())
116
+
117
+ def __getitem__(self, key: str) -> Any:
118
+ return self.additional_properties[key]
119
+
120
+ def __setitem__(self, key: str, value: Any) -> None:
121
+ self.additional_properties[key] = value
122
+
123
+ def __delitem__(self, key: str) -> None:
124
+ del self.additional_properties[key]
125
+
126
+ def __contains__(self, key: str) -> bool:
127
+ return key in self.additional_properties
@@ -6,6 +6,7 @@ from attrs import define as _attrs_define
6
6
  from attrs import field as _attrs_field
7
7
  from dateutil.parser import isoparse
8
8
 
9
+ from ..models.agent_type_enum import AgentTypeEnum
9
10
  from ..types import UNSET, Unset
10
11
 
11
12
  T = TypeVar("T", bound="IntegrationStatus")
@@ -15,18 +16,22 @@ T = TypeVar("T", bound="IntegrationStatus")
15
16
  class IntegrationStatus:
16
17
  """
17
18
  Attributes:
18
- agent_type (Union[Unset, str]):
19
+ agent_type (Union[Unset, AgentTypeEnum]):
19
20
  status (Union[Unset, str]):
20
21
  last_request_timestamp (Union[None, Unset, datetime.datetime]):
22
+ service_name (Union[Unset, str]):
21
23
  """
22
24
 
23
- agent_type: Union[Unset, str] = UNSET
25
+ agent_type: Union[Unset, AgentTypeEnum] = UNSET
24
26
  status: Union[Unset, str] = UNSET
25
27
  last_request_timestamp: Union[None, Unset, datetime.datetime] = UNSET
28
+ service_name: Union[Unset, str] = UNSET
26
29
  additional_properties: dict[str, Any] = _attrs_field(init=False, factory=dict)
27
30
 
28
31
  def to_dict(self) -> dict[str, Any]:
29
- agent_type = self.agent_type
32
+ agent_type: Union[Unset, str] = UNSET
33
+ if not isinstance(self.agent_type, Unset):
34
+ agent_type = self.agent_type.value
30
35
 
31
36
  status = self.status
32
37
 
@@ -38,6 +43,8 @@ class IntegrationStatus:
38
43
  else:
39
44
  last_request_timestamp = self.last_request_timestamp
40
45
 
46
+ service_name = self.service_name
47
+
41
48
  field_dict: dict[str, Any] = {}
42
49
  field_dict.update(self.additional_properties)
43
50
  field_dict.update({})
@@ -47,13 +54,20 @@ class IntegrationStatus:
47
54
  field_dict["status"] = status
48
55
  if last_request_timestamp is not UNSET:
49
56
  field_dict["last_request_timestamp"] = last_request_timestamp
57
+ if service_name is not UNSET:
58
+ field_dict["service_name"] = service_name
50
59
 
51
60
  return field_dict
52
61
 
53
62
  @classmethod
54
63
  def from_dict(cls: type[T], src_dict: Mapping[str, Any]) -> T:
55
64
  d = dict(src_dict)
56
- agent_type = d.pop("agent_type", UNSET)
65
+ _agent_type = d.pop("agent_type", UNSET)
66
+ agent_type: Union[Unset, AgentTypeEnum]
67
+ if isinstance(_agent_type, Unset):
68
+ agent_type = UNSET
69
+ else:
70
+ agent_type = AgentTypeEnum(_agent_type)
57
71
 
58
72
  status = d.pop("status", UNSET)
59
73
 
@@ -74,10 +88,13 @@ class IntegrationStatus:
74
88
 
75
89
  last_request_timestamp = _parse_last_request_timestamp(d.pop("last_request_timestamp", UNSET))
76
90
 
91
+ service_name = d.pop("service_name", UNSET)
92
+
77
93
  integration_status = cls(
78
94
  agent_type=agent_type,
79
95
  status=status,
80
96
  last_request_timestamp=last_request_timestamp,
97
+ service_name=service_name,
81
98
  )
82
99
 
83
100
  integration_status.additional_properties = d
@@ -0,0 +1,153 @@
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="MarketplaceCategoryRequestForm")
12
+
13
+
14
+ @_attrs_define
15
+ class MarketplaceCategoryRequestForm:
16
+ """
17
+ Attributes:
18
+ title (str):
19
+ description (Union[Unset, str]):
20
+ icon (Union[File, None, Unset]):
21
+ default_vm_category (Union[Unset, bool]): Set to "true" if this category is for OpenStack VM. Only one category
22
+ can have "true" value.
23
+ default_volume_category (Union[Unset, bool]): Set to true if this category is for OpenStack Volume. Only one
24
+ category can have "true" value.
25
+ default_tenant_category (Union[Unset, bool]): Set to true if this category is for OpenStack Tenant. Only one
26
+ category can have "true" value.
27
+ group (Union[None, Unset, str]):
28
+ """
29
+
30
+ title: str
31
+ description: Union[Unset, str] = UNSET
32
+ icon: Union[File, None, Unset] = UNSET
33
+ default_vm_category: Union[Unset, bool] = UNSET
34
+ default_volume_category: Union[Unset, bool] = UNSET
35
+ default_tenant_category: Union[Unset, bool] = UNSET
36
+ group: Union[None, Unset, str] = UNSET
37
+ additional_properties: dict[str, Any] = _attrs_field(init=False, factory=dict)
38
+
39
+ def to_dict(self) -> dict[str, Any]:
40
+ title = self.title
41
+
42
+ description = self.description
43
+
44
+ icon: Union[None, Unset, types.FileTypes]
45
+ if isinstance(self.icon, Unset):
46
+ icon = UNSET
47
+ elif isinstance(self.icon, File):
48
+ icon = self.icon.to_tuple()
49
+
50
+ else:
51
+ icon = self.icon
52
+
53
+ default_vm_category = self.default_vm_category
54
+
55
+ default_volume_category = self.default_volume_category
56
+
57
+ default_tenant_category = self.default_tenant_category
58
+
59
+ group: Union[None, Unset, str]
60
+ if isinstance(self.group, Unset):
61
+ group = UNSET
62
+ else:
63
+ group = self.group
64
+
65
+ field_dict: dict[str, Any] = {}
66
+ field_dict.update(self.additional_properties)
67
+ field_dict.update(
68
+ {
69
+ "title": title,
70
+ }
71
+ )
72
+ if description is not UNSET:
73
+ field_dict["description"] = description
74
+ if icon is not UNSET:
75
+ field_dict["icon"] = icon
76
+ if default_vm_category is not UNSET:
77
+ field_dict["default_vm_category"] = default_vm_category
78
+ if default_volume_category is not UNSET:
79
+ field_dict["default_volume_category"] = default_volume_category
80
+ if default_tenant_category is not UNSET:
81
+ field_dict["default_tenant_category"] = default_tenant_category
82
+ if group is not UNSET:
83
+ field_dict["group"] = group
84
+
85
+ return field_dict
86
+
87
+ @classmethod
88
+ def from_dict(cls: type[T], src_dict: Mapping[str, Any]) -> T:
89
+ d = dict(src_dict)
90
+ title = d.pop("title")
91
+
92
+ description = d.pop("description", UNSET)
93
+
94
+ def _parse_icon(data: object) -> Union[File, None, Unset]:
95
+ if data is None:
96
+ return data
97
+ if isinstance(data, Unset):
98
+ return data
99
+ try:
100
+ if not isinstance(data, bytes):
101
+ raise TypeError()
102
+ icon_type_0 = File(payload=BytesIO(data))
103
+
104
+ return icon_type_0
105
+ except: # noqa: E722
106
+ pass
107
+ return cast(Union[File, None, Unset], data)
108
+
109
+ icon = _parse_icon(d.pop("icon", UNSET))
110
+
111
+ default_vm_category = d.pop("default_vm_category", UNSET)
112
+
113
+ default_volume_category = d.pop("default_volume_category", UNSET)
114
+
115
+ default_tenant_category = d.pop("default_tenant_category", UNSET)
116
+
117
+ def _parse_group(data: object) -> Union[None, Unset, str]:
118
+ if data is None:
119
+ return data
120
+ if isinstance(data, Unset):
121
+ return data
122
+ return cast(Union[None, Unset, str], data)
123
+
124
+ group = _parse_group(d.pop("group", UNSET))
125
+
126
+ marketplace_category_request_form = cls(
127
+ title=title,
128
+ description=description,
129
+ icon=icon,
130
+ default_vm_category=default_vm_category,
131
+ default_volume_category=default_volume_category,
132
+ default_tenant_category=default_tenant_category,
133
+ group=group,
134
+ )
135
+
136
+ marketplace_category_request_form.additional_properties = d
137
+ return marketplace_category_request_form
138
+
139
+ @property
140
+ def additional_keys(self) -> list[str]:
141
+ return list(self.additional_properties.keys())
142
+
143
+ def __getitem__(self, key: str) -> Any:
144
+ return self.additional_properties[key]
145
+
146
+ def __setitem__(self, key: str, value: Any) -> None:
147
+ self.additional_properties[key] = value
148
+
149
+ def __delitem__(self, key: str) -> None:
150
+ del self.additional_properties[key]
151
+
152
+ def __contains__(self, key: str) -> bool:
153
+ return key in self.additional_properties
@@ -0,0 +1,187 @@
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="MarketplaceCategoryRequestMultipart")
12
+
13
+
14
+ @_attrs_define
15
+ class MarketplaceCategoryRequestMultipart:
16
+ """
17
+ Attributes:
18
+ title (str):
19
+ description (Union[Unset, str]):
20
+ icon (Union[File, None, Unset]):
21
+ default_vm_category (Union[Unset, bool]): Set to "true" if this category is for OpenStack VM. Only one category
22
+ can have "true" value.
23
+ default_volume_category (Union[Unset, bool]): Set to true if this category is for OpenStack Volume. Only one
24
+ category can have "true" value.
25
+ default_tenant_category (Union[Unset, bool]): Set to true if this category is for OpenStack Tenant. Only one
26
+ category can have "true" value.
27
+ group (Union[None, Unset, str]):
28
+ """
29
+
30
+ title: str
31
+ description: Union[Unset, str] = UNSET
32
+ icon: Union[File, None, Unset] = UNSET
33
+ default_vm_category: Union[Unset, bool] = UNSET
34
+ default_volume_category: Union[Unset, bool] = UNSET
35
+ default_tenant_category: Union[Unset, bool] = UNSET
36
+ group: Union[None, Unset, str] = UNSET
37
+ additional_properties: dict[str, Any] = _attrs_field(init=False, factory=dict)
38
+
39
+ def to_dict(self) -> dict[str, Any]:
40
+ title = self.title
41
+
42
+ description = self.description
43
+
44
+ icon: Union[None, Unset, types.FileTypes]
45
+ if isinstance(self.icon, Unset):
46
+ icon = UNSET
47
+ elif isinstance(self.icon, File):
48
+ icon = self.icon.to_tuple()
49
+
50
+ else:
51
+ icon = self.icon
52
+
53
+ default_vm_category = self.default_vm_category
54
+
55
+ default_volume_category = self.default_volume_category
56
+
57
+ default_tenant_category = self.default_tenant_category
58
+
59
+ group: Union[None, Unset, str]
60
+ if isinstance(self.group, Unset):
61
+ group = UNSET
62
+ else:
63
+ group = self.group
64
+
65
+ field_dict: dict[str, Any] = {}
66
+ field_dict.update(self.additional_properties)
67
+ field_dict.update(
68
+ {
69
+ "title": title,
70
+ }
71
+ )
72
+ if description is not UNSET:
73
+ field_dict["description"] = description
74
+ if icon is not UNSET:
75
+ field_dict["icon"] = icon
76
+ if default_vm_category is not UNSET:
77
+ field_dict["default_vm_category"] = default_vm_category
78
+ if default_volume_category is not UNSET:
79
+ field_dict["default_volume_category"] = default_volume_category
80
+ if default_tenant_category is not UNSET:
81
+ field_dict["default_tenant_category"] = default_tenant_category
82
+ if group is not UNSET:
83
+ field_dict["group"] = group
84
+
85
+ return field_dict
86
+
87
+ def to_multipart(self) -> types.RequestFiles:
88
+ files: types.RequestFiles = []
89
+
90
+ files.append(("title", (None, str(self.title).encode(), "text/plain")))
91
+
92
+ if not isinstance(self.description, Unset):
93
+ files.append(("description", (None, str(self.description).encode(), "text/plain")))
94
+
95
+ if not isinstance(self.icon, Unset):
96
+ if isinstance(self.icon, File):
97
+ files.append(("icon", self.icon.to_tuple()))
98
+ else:
99
+ files.append(("icon", (None, str(self.icon).encode(), "text/plain")))
100
+
101
+ if not isinstance(self.default_vm_category, Unset):
102
+ files.append(("default_vm_category", (None, str(self.default_vm_category).encode(), "text/plain")))
103
+
104
+ if not isinstance(self.default_volume_category, Unset):
105
+ files.append(("default_volume_category", (None, str(self.default_volume_category).encode(), "text/plain")))
106
+
107
+ if not isinstance(self.default_tenant_category, Unset):
108
+ files.append(("default_tenant_category", (None, str(self.default_tenant_category).encode(), "text/plain")))
109
+
110
+ if not isinstance(self.group, Unset):
111
+ if isinstance(self.group, str):
112
+ files.append(("group", (None, str(self.group).encode(), "text/plain")))
113
+ else:
114
+ files.append(("group", (None, str(self.group).encode(), "text/plain")))
115
+
116
+ for prop_name, prop in self.additional_properties.items():
117
+ files.append((prop_name, (None, str(prop).encode(), "text/plain")))
118
+
119
+ return files
120
+
121
+ @classmethod
122
+ def from_dict(cls: type[T], src_dict: Mapping[str, Any]) -> T:
123
+ d = dict(src_dict)
124
+ title = d.pop("title")
125
+
126
+ description = d.pop("description", UNSET)
127
+
128
+ def _parse_icon(data: object) -> Union[File, None, Unset]:
129
+ if data is None:
130
+ return data
131
+ if isinstance(data, Unset):
132
+ return data
133
+ try:
134
+ if not isinstance(data, bytes):
135
+ raise TypeError()
136
+ icon_type_0 = File(payload=BytesIO(data))
137
+
138
+ return icon_type_0
139
+ except: # noqa: E722
140
+ pass
141
+ return cast(Union[File, None, Unset], data)
142
+
143
+ icon = _parse_icon(d.pop("icon", UNSET))
144
+
145
+ default_vm_category = d.pop("default_vm_category", UNSET)
146
+
147
+ default_volume_category = d.pop("default_volume_category", UNSET)
148
+
149
+ default_tenant_category = d.pop("default_tenant_category", UNSET)
150
+
151
+ def _parse_group(data: object) -> Union[None, Unset, str]:
152
+ if data is None:
153
+ return data
154
+ if isinstance(data, Unset):
155
+ return data
156
+ return cast(Union[None, Unset, str], data)
157
+
158
+ group = _parse_group(d.pop("group", UNSET))
159
+
160
+ marketplace_category_request_multipart = cls(
161
+ title=title,
162
+ description=description,
163
+ icon=icon,
164
+ default_vm_category=default_vm_category,
165
+ default_volume_category=default_volume_category,
166
+ default_tenant_category=default_tenant_category,
167
+ group=group,
168
+ )
169
+
170
+ marketplace_category_request_multipart.additional_properties = d
171
+ return marketplace_category_request_multipart
172
+
173
+ @property
174
+ def additional_keys(self) -> list[str]:
175
+ return list(self.additional_properties.keys())
176
+
177
+ def __getitem__(self, key: str) -> Any:
178
+ return self.additional_properties[key]
179
+
180
+ def __setitem__(self, key: str, value: Any) -> None:
181
+ self.additional_properties[key] = value
182
+
183
+ def __delitem__(self, key: str) -> None:
184
+ del self.additional_properties[key]
185
+
186
+ def __contains__(self, key: str) -> bool:
187
+ return key in self.additional_properties
@@ -11,6 +11,7 @@ class MarketplaceProviderOfferingsListCourseAccountsRetrieveFieldItem(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 MarketplaceProviderOfferingsListCustomerServiceAccountsRetrieveFieldItem(s
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 MarketplaceProviderOfferingsListFieldItem(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 MarketplaceProviderOfferingsListProjectServiceAccountsRetrieveFieldItem(st
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 MarketplaceProviderOfferingsRetrieveFieldItem(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"