waldur-api-client 7.7.6__py3-none-any.whl → 7.7.7__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 (143) hide show
  1. waldur_api_client/api/booking_resources/booking_resources_count.py +34 -11
  2. waldur_api_client/api/booking_resources/booking_resources_list.py +34 -11
  3. waldur_api_client/api/customers/customers_project_metadata_compliance_details_list.py +189 -0
  4. waldur_api_client/api/customers/customers_project_metadata_compliance_overview_list.py +189 -0
  5. waldur_api_client/api/customers/customers_project_metadata_compliance_projects_list.py +187 -0
  6. waldur_api_client/api/customers/customers_project_metadata_question_answers_list.py +187 -0
  7. waldur_api_client/api/marketplace_integration_statuses/marketplace_integration_statuses_count.py +34 -11
  8. waldur_api_client/api/marketplace_integration_statuses/marketplace_integration_statuses_list.py +34 -11
  9. waldur_api_client/api/marketplace_offering_files/marketplace_offering_files_count.py +34 -11
  10. waldur_api_client/api/marketplace_offering_files/marketplace_offering_files_list.py +34 -11
  11. waldur_api_client/api/marketplace_offering_terms_of_service/__init__.py +1 -0
  12. waldur_api_client/api/marketplace_offering_terms_of_service/marketplace_offering_terms_of_service_count.py +274 -0
  13. waldur_api_client/api/marketplace_offering_terms_of_service/marketplace_offering_terms_of_service_create.py +152 -0
  14. waldur_api_client/api/marketplace_offering_terms_of_service/marketplace_offering_terms_of_service_destroy.py +89 -0
  15. waldur_api_client/api/marketplace_offering_terms_of_service/marketplace_offering_terms_of_service_list.py +277 -0
  16. waldur_api_client/api/marketplace_offering_terms_of_service/marketplace_offering_terms_of_service_partial_update.py +164 -0
  17. waldur_api_client/api/marketplace_offering_terms_of_service/marketplace_offering_terms_of_service_retrieve.py +142 -0
  18. waldur_api_client/api/marketplace_offering_terms_of_service/marketplace_offering_terms_of_service_update.py +164 -0
  19. waldur_api_client/api/marketplace_offering_user_roles/marketplace_offering_user_roles_count.py +34 -11
  20. waldur_api_client/api/marketplace_offering_user_roles/marketplace_offering_user_roles_list.py +34 -11
  21. waldur_api_client/api/marketplace_offering_users/marketplace_offering_users_count.py +34 -11
  22. waldur_api_client/api/marketplace_offering_users/marketplace_offering_users_list.py +34 -11
  23. waldur_api_client/api/marketplace_orders/marketplace_orders_count.py +19 -0
  24. waldur_api_client/api/marketplace_orders/marketplace_orders_list.py +19 -0
  25. waldur_api_client/api/marketplace_plans/marketplace_plans_count.py +19 -0
  26. waldur_api_client/api/marketplace_plans/marketplace_plans_list.py +19 -0
  27. waldur_api_client/api/marketplace_plans/marketplace_plans_usage_stats_count.py +19 -0
  28. waldur_api_client/api/marketplace_plans/marketplace_plans_usage_stats_list.py +19 -0
  29. waldur_api_client/api/marketplace_provider_resources/marketplace_provider_resources_count.py +34 -11
  30. waldur_api_client/api/marketplace_provider_resources/marketplace_provider_resources_list.py +34 -11
  31. waldur_api_client/api/marketplace_resources/marketplace_resources_count.py +34 -11
  32. waldur_api_client/api/marketplace_resources/marketplace_resources_list.py +34 -11
  33. waldur_api_client/api/marketplace_screenshots/marketplace_screenshots_count.py +34 -11
  34. waldur_api_client/api/marketplace_screenshots/marketplace_screenshots_list.py +34 -11
  35. waldur_api_client/api/marketplace_user_offering_consents/__init__.py +1 -0
  36. waldur_api_client/api/marketplace_user_offering_consents/marketplace_user_offering_consents_count.py +307 -0
  37. waldur_api_client/api/marketplace_user_offering_consents/marketplace_user_offering_consents_create.py +152 -0
  38. waldur_api_client/api/marketplace_user_offering_consents/marketplace_user_offering_consents_destroy.py +89 -0
  39. waldur_api_client/api/marketplace_user_offering_consents/marketplace_user_offering_consents_list.py +310 -0
  40. waldur_api_client/api/marketplace_user_offering_consents/marketplace_user_offering_consents_partial_update.py +164 -0
  41. waldur_api_client/api/marketplace_user_offering_consents/marketplace_user_offering_consents_retrieve.py +142 -0
  42. waldur_api_client/api/marketplace_user_offering_consents/marketplace_user_offering_consents_revoke.py +146 -0
  43. waldur_api_client/api/marketplace_user_offering_consents/marketplace_user_offering_consents_update.py +164 -0
  44. waldur_api_client/api/remote_waldur_api/remote_waldur_api_remote_resource_order_status_retrieve.py +145 -0
  45. waldur_api_client/api/remote_waldur_api/remote_waldur_api_remote_resource_status_retrieve.py +147 -0
  46. waldur_api_client/api/remote_waldur_api/remote_waldur_api_remote_resource_team_status_list.py +188 -0
  47. waldur_api_client/models/__init__.py +62 -0
  48. waldur_api_client/models/azure_sql_server_create_order_attributes.py +3 -0
  49. waldur_api_client/models/azure_virtual_machine_create_order_attributes.py +3 -0
  50. waldur_api_client/models/booking_offerings_list_field_item.py +0 -2
  51. waldur_api_client/models/booking_offerings_retrieve_field_item.py +0 -2
  52. waldur_api_client/models/booking_resource.py +10 -9
  53. waldur_api_client/models/booking_resources_list_field_item.py +1 -1
  54. waldur_api_client/models/booking_resources_retrieve_field_item.py +1 -1
  55. waldur_api_client/models/checklist_info.py +76 -0
  56. waldur_api_client/models/compliance_overview.py +91 -0
  57. waldur_api_client/models/customer.py +81 -0
  58. waldur_api_client/models/customers_list_field_item.py +4 -0
  59. waldur_api_client/models/customers_retrieve_field_item.py +4 -0
  60. waldur_api_client/models/generic_order_attributes.py +69 -0
  61. waldur_api_client/models/google_auth_authorize_retrieve_field_item.py +1 -0
  62. waldur_api_client/models/google_auth_list_field_item.py +1 -0
  63. waldur_api_client/models/google_auth_retrieve_field_item.py +1 -0
  64. waldur_api_client/models/google_credentials.py +9 -0
  65. waldur_api_client/models/group_invitation.py +24 -0
  66. waldur_api_client/models/group_invitation_request.py +10 -0
  67. waldur_api_client/models/maintenance_announcement.py +8 -0
  68. waldur_api_client/models/marketplace_offering_terms_of_service_count_o_item.py +13 -0
  69. waldur_api_client/models/marketplace_offering_terms_of_service_list_o_item.py +13 -0
  70. waldur_api_client/models/marketplace_orders_list_field_item.py +1 -1
  71. waldur_api_client/models/marketplace_orders_retrieve_field_item.py +1 -1
  72. waldur_api_client/models/marketplace_provider_offerings_list_customer_service_accounts_retrieve_field_item.py +0 -2
  73. waldur_api_client/models/marketplace_provider_offerings_list_field_item.py +0 -2
  74. waldur_api_client/models/marketplace_provider_offerings_list_project_service_accounts_retrieve_field_item.py +0 -2
  75. waldur_api_client/models/marketplace_provider_offerings_retrieve_field_item.py +0 -2
  76. waldur_api_client/models/marketplace_provider_offerings_stats_retrieve_field_item.py +0 -2
  77. waldur_api_client/models/marketplace_provider_offerings_user_has_resource_access_retrieve_field_item.py +0 -2
  78. waldur_api_client/models/marketplace_provider_resources_details_retrieve_field_item.py +1 -1
  79. waldur_api_client/models/marketplace_provider_resources_list_field_item.py +1 -1
  80. waldur_api_client/models/marketplace_provider_resources_retrieve_field_item.py +1 -1
  81. waldur_api_client/models/marketplace_public_offerings_list_field_item.py +0 -2
  82. waldur_api_client/models/marketplace_public_offerings_retrieve_field_item.py +0 -2
  83. waldur_api_client/models/marketplace_rancher_create_order_attributes.py +3 -0
  84. waldur_api_client/models/marketplace_resources_details_retrieve_field_item.py +1 -1
  85. waldur_api_client/models/marketplace_resources_list_field_item.py +1 -1
  86. waldur_api_client/models/marketplace_resources_retrieve_field_item.py +1 -1
  87. waldur_api_client/models/marketplace_service_providers_list_field_item.py +1 -0
  88. waldur_api_client/models/marketplace_service_providers_retrieve_field_item.py +1 -0
  89. waldur_api_client/models/marketplace_user_offering_consents_count_o_item.py +15 -0
  90. waldur_api_client/models/marketplace_user_offering_consents_list_o_item.py +15 -0
  91. waldur_api_client/models/offering.py +0 -18
  92. waldur_api_client/models/offering_create.py +0 -18
  93. waldur_api_client/models/offering_create_request.py +0 -18
  94. waldur_api_client/models/offering_overview_update_request.py +0 -18
  95. waldur_api_client/models/offering_terms_of_service.py +142 -0
  96. waldur_api_client/models/offering_terms_of_service_create.py +107 -0
  97. waldur_api_client/models/offering_terms_of_service_create_request.py +107 -0
  98. waldur_api_client/models/offering_terms_of_service_request.py +96 -0
  99. waldur_api_client/models/open_stack_instance_create_order_attributes.py +3 -0
  100. waldur_api_client/models/open_stack_nested_security_group.py +53 -1
  101. waldur_api_client/models/open_stack_nested_security_group_rules_item.py +197 -0
  102. waldur_api_client/models/open_stack_network.py +20 -0
  103. waldur_api_client/models/open_stack_security_group_rule_update_request.py +4 -4
  104. waldur_api_client/models/open_stack_tenant.py +38 -0
  105. waldur_api_client/models/open_stack_tenant_create_order_attributes.py +21 -0
  106. waldur_api_client/models/open_stack_volume_create_order_attributes.py +3 -0
  107. waldur_api_client/models/openstack_networks_list_field_item.py +1 -0
  108. waldur_api_client/models/openstack_networks_retrieve_field_item.py +1 -0
  109. waldur_api_client/models/openstack_tenants_list_field_item.py +3 -0
  110. waldur_api_client/models/openstack_tenants_retrieve_field_item.py +3 -0
  111. waldur_api_client/models/order_create.py +0 -8
  112. waldur_api_client/models/order_create_request.py +23 -7
  113. waldur_api_client/models/order_details.py +0 -9
  114. waldur_api_client/models/patched_offering_terms_of_service_request.py +96 -0
  115. waldur_api_client/models/patched_user_offering_consent_request.py +59 -0
  116. waldur_api_client/models/permission_project.py +147 -0
  117. waldur_api_client/models/project_answer.py +122 -0
  118. waldur_api_client/models/project_detail.py +133 -0
  119. waldur_api_client/models/project_details_response.py +115 -0
  120. waldur_api_client/models/provider_offering_details.py +0 -18
  121. waldur_api_client/models/provider_offering_details_request.py +0 -18
  122. waldur_api_client/models/public_offering_details.py +0 -18
  123. waldur_api_client/models/question_answer.py +176 -0
  124. waldur_api_client/models/question_answer_project_answers_item.py +44 -0
  125. waldur_api_client/models/question_answer_question_options_item.py +44 -0
  126. waldur_api_client/models/remote_resource_order.py +88 -0
  127. waldur_api_client/models/remote_resource_order_remote_state_enum.py +15 -0
  128. waldur_api_client/models/remote_resource_sync_status.py +123 -0
  129. waldur_api_client/models/remote_resource_sync_status_remote_state_enum.py +13 -0
  130. waldur_api_client/models/remote_resource_team_member.py +85 -0
  131. waldur_api_client/models/resource.py +10 -9
  132. waldur_api_client/models/service_provider.py +9 -0
  133. waldur_api_client/models/slurm_invoices_slurm_package_create_order_attributes.py +3 -0
  134. waldur_api_client/models/sync_status_enum.py +10 -0
  135. waldur_api_client/models/user_offering_consent.py +202 -0
  136. waldur_api_client/models/user_offering_consent_create.py +60 -0
  137. waldur_api_client/models/user_offering_consent_create_request.py +60 -0
  138. waldur_api_client/models/user_offering_consent_request.py +59 -0
  139. waldur_api_client/models/v_mware_virtual_machine_create_order_attributes.py +3 -0
  140. {waldur_api_client-7.7.6.dist-info → waldur_api_client-7.7.7.dist-info}/METADATA +1 -1
  141. {waldur_api_client-7.7.6.dist-info → waldur_api_client-7.7.7.dist-info}/RECORD +143 -88
  142. {waldur_api_client-7.7.6.dist-info → waldur_api_client-7.7.7.dist-info}/LICENSE +0 -0
  143. {waldur_api_client-7.7.6.dist-info → waldur_api_client-7.7.7.dist-info}/WHEEL +0 -0
@@ -0,0 +1,115 @@
1
+ from collections.abc import Mapping
2
+ from typing import TYPE_CHECKING, Any, TypeVar
3
+
4
+ from attrs import define as _attrs_define
5
+ from attrs import field as _attrs_field
6
+
7
+ if TYPE_CHECKING:
8
+ from ..models.checklist_info import ChecklistInfo
9
+ from ..models.project_detail import ProjectDetail
10
+
11
+
12
+ T = TypeVar("T", bound="ProjectDetailsResponse")
13
+
14
+
15
+ @_attrs_define
16
+ class ProjectDetailsResponse:
17
+ """
18
+ Attributes:
19
+ checklist (ChecklistInfo):
20
+ total_projects (int):
21
+ projects_with_completions (int):
22
+ fully_completed_projects (int):
23
+ projects_requiring_review (int):
24
+ project_details (list['ProjectDetail']):
25
+ """
26
+
27
+ checklist: "ChecklistInfo"
28
+ total_projects: int
29
+ projects_with_completions: int
30
+ fully_completed_projects: int
31
+ projects_requiring_review: int
32
+ project_details: list["ProjectDetail"]
33
+ additional_properties: dict[str, Any] = _attrs_field(init=False, factory=dict)
34
+
35
+ def to_dict(self) -> dict[str, Any]:
36
+ checklist = self.checklist.to_dict()
37
+
38
+ total_projects = self.total_projects
39
+
40
+ projects_with_completions = self.projects_with_completions
41
+
42
+ fully_completed_projects = self.fully_completed_projects
43
+
44
+ projects_requiring_review = self.projects_requiring_review
45
+
46
+ project_details = []
47
+ for project_details_item_data in self.project_details:
48
+ project_details_item = project_details_item_data.to_dict()
49
+ project_details.append(project_details_item)
50
+
51
+ field_dict: dict[str, Any] = {}
52
+ field_dict.update(self.additional_properties)
53
+ field_dict.update(
54
+ {
55
+ "checklist": checklist,
56
+ "total_projects": total_projects,
57
+ "projects_with_completions": projects_with_completions,
58
+ "fully_completed_projects": fully_completed_projects,
59
+ "projects_requiring_review": projects_requiring_review,
60
+ "project_details": project_details,
61
+ }
62
+ )
63
+
64
+ return field_dict
65
+
66
+ @classmethod
67
+ def from_dict(cls: type[T], src_dict: Mapping[str, Any]) -> T:
68
+ from ..models.checklist_info import ChecklistInfo
69
+ from ..models.project_detail import ProjectDetail
70
+
71
+ d = dict(src_dict)
72
+ checklist = ChecklistInfo.from_dict(d.pop("checklist"))
73
+
74
+ total_projects = d.pop("total_projects")
75
+
76
+ projects_with_completions = d.pop("projects_with_completions")
77
+
78
+ fully_completed_projects = d.pop("fully_completed_projects")
79
+
80
+ projects_requiring_review = d.pop("projects_requiring_review")
81
+
82
+ project_details = []
83
+ _project_details = d.pop("project_details")
84
+ for project_details_item_data in _project_details:
85
+ project_details_item = ProjectDetail.from_dict(project_details_item_data)
86
+
87
+ project_details.append(project_details_item)
88
+
89
+ project_details_response = cls(
90
+ checklist=checklist,
91
+ total_projects=total_projects,
92
+ projects_with_completions=projects_with_completions,
93
+ fully_completed_projects=fully_completed_projects,
94
+ projects_requiring_review=projects_requiring_review,
95
+ project_details=project_details,
96
+ )
97
+
98
+ project_details_response.additional_properties = d
99
+ return project_details_response
100
+
101
+ @property
102
+ def additional_keys(self) -> list[str]:
103
+ return list(self.additional_properties.keys())
104
+
105
+ def __getitem__(self, key: str) -> Any:
106
+ return self.additional_properties[key]
107
+
108
+ def __setitem__(self, key: str, value: Any) -> None:
109
+ self.additional_properties[key] = value
110
+
111
+ def __delitem__(self, key: str) -> None:
112
+ del self.additional_properties[key]
113
+
114
+ def __contains__(self, key: str) -> bool:
115
+ return key in self.additional_properties
@@ -44,8 +44,6 @@ class ProviderOfferingDetails:
44
44
  slug (Union[Unset, str]):
45
45
  description (Union[Unset, str]):
46
46
  full_description (Union[Unset, str]):
47
- terms_of_service (Union[Unset, str]):
48
- terms_of_service_link (Union[Unset, str]):
49
47
  privacy_policy_link (Union[Unset, str]):
50
48
  access_url (Union[Unset, str]): Publicly accessible offering access URL
51
49
  endpoints (Union[Unset, list['NestedEndpoint']]):
@@ -113,8 +111,6 @@ class ProviderOfferingDetails:
113
111
  slug: Union[Unset, str] = UNSET
114
112
  description: Union[Unset, str] = UNSET
115
113
  full_description: Union[Unset, str] = UNSET
116
- terms_of_service: Union[Unset, str] = UNSET
117
- terms_of_service_link: Union[Unset, str] = UNSET
118
114
  privacy_policy_link: Union[Unset, str] = UNSET
119
115
  access_url: Union[Unset, str] = UNSET
120
116
  endpoints: Union[Unset, list["NestedEndpoint"]] = UNSET
@@ -194,10 +190,6 @@ class ProviderOfferingDetails:
194
190
 
195
191
  full_description = self.full_description
196
192
 
197
- terms_of_service = self.terms_of_service
198
-
199
- terms_of_service_link = self.terms_of_service_link
200
-
201
193
  privacy_policy_link = self.privacy_policy_link
202
194
 
203
195
  access_url = self.access_url
@@ -503,10 +495,6 @@ class ProviderOfferingDetails:
503
495
  field_dict["description"] = description
504
496
  if full_description is not UNSET:
505
497
  field_dict["full_description"] = full_description
506
- if terms_of_service is not UNSET:
507
- field_dict["terms_of_service"] = terms_of_service
508
- if terms_of_service_link is not UNSET:
509
- field_dict["terms_of_service_link"] = terms_of_service_link
510
498
  if privacy_policy_link is not UNSET:
511
499
  field_dict["privacy_policy_link"] = privacy_policy_link
512
500
  if access_url is not UNSET:
@@ -668,10 +656,6 @@ class ProviderOfferingDetails:
668
656
 
669
657
  full_description = d.pop("full_description", UNSET)
670
658
 
671
- terms_of_service = d.pop("terms_of_service", UNSET)
672
-
673
- terms_of_service_link = d.pop("terms_of_service_link", UNSET)
674
-
675
659
  privacy_policy_link = d.pop("privacy_policy_link", UNSET)
676
660
 
677
661
  access_url = d.pop("access_url", UNSET)
@@ -1115,8 +1099,6 @@ class ProviderOfferingDetails:
1115
1099
  slug=slug,
1116
1100
  description=description,
1117
1101
  full_description=full_description,
1118
- terms_of_service=terms_of_service,
1119
- terms_of_service_link=terms_of_service_link,
1120
1102
  privacy_policy_link=privacy_policy_link,
1121
1103
  access_url=access_url,
1122
1104
  endpoints=endpoints,
@@ -27,8 +27,6 @@ class ProviderOfferingDetailsRequest:
27
27
  type_ (str):
28
28
  description (Union[Unset, str]):
29
29
  full_description (Union[Unset, str]):
30
- terms_of_service (Union[Unset, str]):
31
- terms_of_service_link (Union[Unset, str]):
32
30
  privacy_policy_link (Union[Unset, str]):
33
31
  access_url (Union[Unset, str]): Publicly accessible offering access URL
34
32
  customer (Union[None, Unset, str]):
@@ -55,8 +53,6 @@ class ProviderOfferingDetailsRequest:
55
53
  type_: str
56
54
  description: Union[Unset, str] = UNSET
57
55
  full_description: Union[Unset, str] = UNSET
58
- terms_of_service: Union[Unset, str] = UNSET
59
- terms_of_service_link: Union[Unset, str] = UNSET
60
56
  privacy_policy_link: Union[Unset, str] = UNSET
61
57
  access_url: Union[Unset, str] = UNSET
62
58
  customer: Union[None, Unset, str] = UNSET
@@ -89,10 +85,6 @@ class ProviderOfferingDetailsRequest:
89
85
 
90
86
  full_description = self.full_description
91
87
 
92
- terms_of_service = self.terms_of_service
93
-
94
- terms_of_service_link = self.terms_of_service_link
95
-
96
88
  privacy_policy_link = self.privacy_policy_link
97
89
 
98
90
  access_url = self.access_url
@@ -186,10 +178,6 @@ class ProviderOfferingDetailsRequest:
186
178
  field_dict["description"] = description
187
179
  if full_description is not UNSET:
188
180
  field_dict["full_description"] = full_description
189
- if terms_of_service is not UNSET:
190
- field_dict["terms_of_service"] = terms_of_service
191
- if terms_of_service_link is not UNSET:
192
- field_dict["terms_of_service_link"] = terms_of_service_link
193
181
  if privacy_policy_link is not UNSET:
194
182
  field_dict["privacy_policy_link"] = privacy_policy_link
195
183
  if access_url is not UNSET:
@@ -247,10 +235,6 @@ class ProviderOfferingDetailsRequest:
247
235
 
248
236
  full_description = d.pop("full_description", UNSET)
249
237
 
250
- terms_of_service = d.pop("terms_of_service", UNSET)
251
-
252
- terms_of_service_link = d.pop("terms_of_service_link", UNSET)
253
-
254
238
  privacy_policy_link = d.pop("privacy_policy_link", UNSET)
255
239
 
256
240
  access_url = d.pop("access_url", UNSET)
@@ -373,8 +357,6 @@ class ProviderOfferingDetailsRequest:
373
357
  type_=type_,
374
358
  description=description,
375
359
  full_description=full_description,
376
- terms_of_service=terms_of_service,
377
- terms_of_service_link=terms_of_service_link,
378
360
  privacy_policy_link=privacy_policy_link,
379
361
  access_url=access_url,
380
362
  customer=customer,
@@ -42,8 +42,6 @@ class PublicOfferingDetails:
42
42
  slug (Union[Unset, str]):
43
43
  description (Union[Unset, str]):
44
44
  full_description (Union[Unset, str]):
45
- terms_of_service (Union[Unset, str]):
46
- terms_of_service_link (Union[Unset, str]):
47
45
  privacy_policy_link (Union[Unset, str]):
48
46
  access_url (Union[Unset, str]): Publicly accessible offering access URL
49
47
  endpoints (Union[Unset, list['NestedEndpoint']]):
@@ -109,8 +107,6 @@ class PublicOfferingDetails:
109
107
  slug: Union[Unset, str] = UNSET
110
108
  description: Union[Unset, str] = UNSET
111
109
  full_description: Union[Unset, str] = UNSET
112
- terms_of_service: Union[Unset, str] = UNSET
113
- terms_of_service_link: Union[Unset, str] = UNSET
114
110
  privacy_policy_link: Union[Unset, str] = UNSET
115
111
  access_url: Union[Unset, str] = UNSET
116
112
  endpoints: Union[Unset, list["NestedEndpoint"]] = UNSET
@@ -188,10 +184,6 @@ class PublicOfferingDetails:
188
184
 
189
185
  full_description = self.full_description
190
186
 
191
- terms_of_service = self.terms_of_service
192
-
193
- terms_of_service_link = self.terms_of_service_link
194
-
195
187
  privacy_policy_link = self.privacy_policy_link
196
188
 
197
189
  access_url = self.access_url
@@ -484,10 +476,6 @@ class PublicOfferingDetails:
484
476
  field_dict["description"] = description
485
477
  if full_description is not UNSET:
486
478
  field_dict["full_description"] = full_description
487
- if terms_of_service is not UNSET:
488
- field_dict["terms_of_service"] = terms_of_service
489
- if terms_of_service_link is not UNSET:
490
- field_dict["terms_of_service_link"] = terms_of_service_link
491
479
  if privacy_policy_link is not UNSET:
492
480
  field_dict["privacy_policy_link"] = privacy_policy_link
493
481
  if access_url is not UNSET:
@@ -643,10 +631,6 @@ class PublicOfferingDetails:
643
631
 
644
632
  full_description = d.pop("full_description", UNSET)
645
633
 
646
- terms_of_service = d.pop("terms_of_service", UNSET)
647
-
648
- terms_of_service_link = d.pop("terms_of_service_link", UNSET)
649
-
650
634
  privacy_policy_link = d.pop("privacy_policy_link", UNSET)
651
635
 
652
636
  access_url = d.pop("access_url", UNSET)
@@ -1061,8 +1045,6 @@ class PublicOfferingDetails:
1061
1045
  slug=slug,
1062
1046
  description=description,
1063
1047
  full_description=full_description,
1064
- terms_of_service=terms_of_service,
1065
- terms_of_service_link=terms_of_service_link,
1066
1048
  privacy_policy_link=privacy_policy_link,
1067
1049
  access_url=access_url,
1068
1050
  endpoints=endpoints,
@@ -0,0 +1,176 @@
1
+ from collections.abc import Mapping
2
+ from typing import TYPE_CHECKING, Any, TypeVar, Union, cast
3
+ from uuid import UUID
4
+
5
+ from attrs import define as _attrs_define
6
+ from attrs import field as _attrs_field
7
+
8
+ if TYPE_CHECKING:
9
+ from ..models.question_answer_project_answers_item import QuestionAnswerProjectAnswersItem
10
+ from ..models.question_answer_question_options_item import QuestionAnswerQuestionOptionsItem
11
+
12
+
13
+ T = TypeVar("T", bound="QuestionAnswer")
14
+
15
+
16
+ @_attrs_define
17
+ class QuestionAnswer:
18
+ """
19
+ Attributes:
20
+ question_uuid (UUID):
21
+ question_description (str):
22
+ question_type (str):
23
+ required (bool):
24
+ order (int):
25
+ min_value (Union[None, str]):
26
+ max_value (Union[None, str]):
27
+ total_projects (int): Get total projects count.
28
+ answered_projects_count (int): Get count of projects that answered this question.
29
+ project_answers (list['QuestionAnswerProjectAnswersItem']): Get all project answers for this question.
30
+ question_options (list['QuestionAnswerQuestionOptionsItem']): Get question options for select-type questions.
31
+ """
32
+
33
+ question_uuid: UUID
34
+ question_description: str
35
+ question_type: str
36
+ required: bool
37
+ order: int
38
+ min_value: Union[None, str]
39
+ max_value: Union[None, str]
40
+ total_projects: int
41
+ answered_projects_count: int
42
+ project_answers: list["QuestionAnswerProjectAnswersItem"]
43
+ question_options: list["QuestionAnswerQuestionOptionsItem"]
44
+ additional_properties: dict[str, Any] = _attrs_field(init=False, factory=dict)
45
+
46
+ def to_dict(self) -> dict[str, Any]:
47
+ question_uuid = str(self.question_uuid)
48
+
49
+ question_description = self.question_description
50
+
51
+ question_type = self.question_type
52
+
53
+ required = self.required
54
+
55
+ order = self.order
56
+
57
+ min_value: Union[None, str]
58
+ min_value = self.min_value
59
+
60
+ max_value: Union[None, str]
61
+ max_value = self.max_value
62
+
63
+ total_projects = self.total_projects
64
+
65
+ answered_projects_count = self.answered_projects_count
66
+
67
+ project_answers = []
68
+ for project_answers_item_data in self.project_answers:
69
+ project_answers_item = project_answers_item_data.to_dict()
70
+ project_answers.append(project_answers_item)
71
+
72
+ question_options = []
73
+ for question_options_item_data in self.question_options:
74
+ question_options_item = question_options_item_data.to_dict()
75
+ question_options.append(question_options_item)
76
+
77
+ field_dict: dict[str, Any] = {}
78
+ field_dict.update(self.additional_properties)
79
+ field_dict.update(
80
+ {
81
+ "question_uuid": question_uuid,
82
+ "question_description": question_description,
83
+ "question_type": question_type,
84
+ "required": required,
85
+ "order": order,
86
+ "min_value": min_value,
87
+ "max_value": max_value,
88
+ "total_projects": total_projects,
89
+ "answered_projects_count": answered_projects_count,
90
+ "project_answers": project_answers,
91
+ "question_options": question_options,
92
+ }
93
+ )
94
+
95
+ return field_dict
96
+
97
+ @classmethod
98
+ def from_dict(cls: type[T], src_dict: Mapping[str, Any]) -> T:
99
+ from ..models.question_answer_project_answers_item import QuestionAnswerProjectAnswersItem
100
+ from ..models.question_answer_question_options_item import QuestionAnswerQuestionOptionsItem
101
+
102
+ d = dict(src_dict)
103
+ question_uuid = UUID(d.pop("question_uuid"))
104
+
105
+ question_description = d.pop("question_description")
106
+
107
+ question_type = d.pop("question_type")
108
+
109
+ required = d.pop("required")
110
+
111
+ order = d.pop("order")
112
+
113
+ def _parse_min_value(data: object) -> Union[None, str]:
114
+ if data is None:
115
+ return data
116
+ return cast(Union[None, str], data)
117
+
118
+ min_value = _parse_min_value(d.pop("min_value"))
119
+
120
+ def _parse_max_value(data: object) -> Union[None, str]:
121
+ if data is None:
122
+ return data
123
+ return cast(Union[None, str], data)
124
+
125
+ max_value = _parse_max_value(d.pop("max_value"))
126
+
127
+ total_projects = d.pop("total_projects")
128
+
129
+ answered_projects_count = d.pop("answered_projects_count")
130
+
131
+ project_answers = []
132
+ _project_answers = d.pop("project_answers")
133
+ for project_answers_item_data in _project_answers:
134
+ project_answers_item = QuestionAnswerProjectAnswersItem.from_dict(project_answers_item_data)
135
+
136
+ project_answers.append(project_answers_item)
137
+
138
+ question_options = []
139
+ _question_options = d.pop("question_options")
140
+ for question_options_item_data in _question_options:
141
+ question_options_item = QuestionAnswerQuestionOptionsItem.from_dict(question_options_item_data)
142
+
143
+ question_options.append(question_options_item)
144
+
145
+ question_answer = cls(
146
+ question_uuid=question_uuid,
147
+ question_description=question_description,
148
+ question_type=question_type,
149
+ required=required,
150
+ order=order,
151
+ min_value=min_value,
152
+ max_value=max_value,
153
+ total_projects=total_projects,
154
+ answered_projects_count=answered_projects_count,
155
+ project_answers=project_answers,
156
+ question_options=question_options,
157
+ )
158
+
159
+ question_answer.additional_properties = d
160
+ return question_answer
161
+
162
+ @property
163
+ def additional_keys(self) -> list[str]:
164
+ return list(self.additional_properties.keys())
165
+
166
+ def __getitem__(self, key: str) -> Any:
167
+ return self.additional_properties[key]
168
+
169
+ def __setitem__(self, key: str, value: Any) -> None:
170
+ self.additional_properties[key] = value
171
+
172
+ def __delitem__(self, key: str) -> None:
173
+ del self.additional_properties[key]
174
+
175
+ def __contains__(self, key: str) -> bool:
176
+ return key in self.additional_properties
@@ -0,0 +1,44 @@
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="QuestionAnswerProjectAnswersItem")
8
+
9
+
10
+ @_attrs_define
11
+ class QuestionAnswerProjectAnswersItem:
12
+ """ """
13
+
14
+ additional_properties: dict[str, Any] = _attrs_field(init=False, factory=dict)
15
+
16
+ def to_dict(self) -> dict[str, Any]:
17
+ field_dict: dict[str, Any] = {}
18
+ field_dict.update(self.additional_properties)
19
+
20
+ return field_dict
21
+
22
+ @classmethod
23
+ def from_dict(cls: type[T], src_dict: Mapping[str, Any]) -> T:
24
+ d = dict(src_dict)
25
+ question_answer_project_answers_item = cls()
26
+
27
+ question_answer_project_answers_item.additional_properties = d
28
+ return question_answer_project_answers_item
29
+
30
+ @property
31
+ def additional_keys(self) -> list[str]:
32
+ return list(self.additional_properties.keys())
33
+
34
+ def __getitem__(self, key: str) -> Any:
35
+ return self.additional_properties[key]
36
+
37
+ def __setitem__(self, key: str, value: Any) -> None:
38
+ self.additional_properties[key] = value
39
+
40
+ def __delitem__(self, key: str) -> None:
41
+ del self.additional_properties[key]
42
+
43
+ def __contains__(self, key: str) -> bool:
44
+ return key in self.additional_properties
@@ -0,0 +1,44 @@
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="QuestionAnswerQuestionOptionsItem")
8
+
9
+
10
+ @_attrs_define
11
+ class QuestionAnswerQuestionOptionsItem:
12
+ """ """
13
+
14
+ additional_properties: dict[str, Any] = _attrs_field(init=False, factory=dict)
15
+
16
+ def to_dict(self) -> dict[str, Any]:
17
+ field_dict: dict[str, Any] = {}
18
+ field_dict.update(self.additional_properties)
19
+
20
+ return field_dict
21
+
22
+ @classmethod
23
+ def from_dict(cls: type[T], src_dict: Mapping[str, Any]) -> T:
24
+ d = dict(src_dict)
25
+ question_answer_question_options_item = cls()
26
+
27
+ question_answer_question_options_item.additional_properties = d
28
+ return question_answer_question_options_item
29
+
30
+ @property
31
+ def additional_keys(self) -> list[str]:
32
+ return list(self.additional_properties.keys())
33
+
34
+ def __getitem__(self, key: str) -> Any:
35
+ return self.additional_properties[key]
36
+
37
+ def __setitem__(self, key: str, value: Any) -> None:
38
+ self.additional_properties[key] = value
39
+
40
+ def __delitem__(self, key: str) -> None:
41
+ del self.additional_properties[key]
42
+
43
+ def __contains__(self, key: str) -> bool:
44
+ return key in self.additional_properties
@@ -0,0 +1,88 @@
1
+ from collections.abc import Mapping
2
+ from typing import Any, TypeVar
3
+ from uuid import UUID
4
+
5
+ from attrs import define as _attrs_define
6
+ from attrs import field as _attrs_field
7
+
8
+ from ..models.order_state import OrderState
9
+ from ..models.remote_resource_order_remote_state_enum import RemoteResourceOrderRemoteStateEnum
10
+ from ..models.sync_status_enum import SyncStatusEnum
11
+
12
+ T = TypeVar("T", bound="RemoteResourceOrder")
13
+
14
+
15
+ @_attrs_define
16
+ class RemoteResourceOrder:
17
+ """
18
+ Attributes:
19
+ order_uuid (UUID): Order UUID
20
+ remote_state (RemoteResourceOrderRemoteStateEnum):
21
+ local_state (OrderState):
22
+ sync_status (SyncStatusEnum):
23
+ """
24
+
25
+ order_uuid: UUID
26
+ remote_state: RemoteResourceOrderRemoteStateEnum
27
+ local_state: OrderState
28
+ sync_status: SyncStatusEnum
29
+ additional_properties: dict[str, Any] = _attrs_field(init=False, factory=dict)
30
+
31
+ def to_dict(self) -> dict[str, Any]:
32
+ order_uuid = str(self.order_uuid)
33
+
34
+ remote_state = self.remote_state.value
35
+
36
+ local_state = self.local_state.value
37
+
38
+ sync_status = self.sync_status.value
39
+
40
+ field_dict: dict[str, Any] = {}
41
+ field_dict.update(self.additional_properties)
42
+ field_dict.update(
43
+ {
44
+ "order_uuid": order_uuid,
45
+ "remote_state": remote_state,
46
+ "local_state": local_state,
47
+ "sync_status": sync_status,
48
+ }
49
+ )
50
+
51
+ return field_dict
52
+
53
+ @classmethod
54
+ def from_dict(cls: type[T], src_dict: Mapping[str, Any]) -> T:
55
+ d = dict(src_dict)
56
+ order_uuid = UUID(d.pop("order_uuid"))
57
+
58
+ remote_state = RemoteResourceOrderRemoteStateEnum(d.pop("remote_state"))
59
+
60
+ local_state = OrderState(d.pop("local_state"))
61
+
62
+ sync_status = SyncStatusEnum(d.pop("sync_status"))
63
+
64
+ remote_resource_order = cls(
65
+ order_uuid=order_uuid,
66
+ remote_state=remote_state,
67
+ local_state=local_state,
68
+ sync_status=sync_status,
69
+ )
70
+
71
+ remote_resource_order.additional_properties = d
72
+ return remote_resource_order
73
+
74
+ @property
75
+ def additional_keys(self) -> list[str]:
76
+ return list(self.additional_properties.keys())
77
+
78
+ def __getitem__(self, key: str) -> Any:
79
+ return self.additional_properties[key]
80
+
81
+ def __setitem__(self, key: str, value: Any) -> None:
82
+ self.additional_properties[key] = value
83
+
84
+ def __delitem__(self, key: str) -> None:
85
+ del self.additional_properties[key]
86
+
87
+ def __contains__(self, key: str) -> bool:
88
+ return key in self.additional_properties
@@ -0,0 +1,15 @@
1
+ from enum import IntEnum
2
+
3
+
4
+ class RemoteResourceOrderRemoteStateEnum(IntEnum):
5
+ VALUE_1 = 1
6
+ VALUE_7 = 7
7
+ VALUE_8 = 8
8
+ VALUE_2 = 2
9
+ VALUE_3 = 3
10
+ VALUE_4 = 4
11
+ VALUE_5 = 5
12
+ VALUE_6 = 6
13
+
14
+ def __str__(self) -> str:
15
+ return str(self.value)