waldur-api-client 7.7.9__py3-none-any.whl → 7.8.1__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.
- waldur_api_client/api/marketplace_course_accounts/marketplace_course_accounts_count.py +96 -0
- waldur_api_client/api/marketplace_course_accounts/marketplace_course_accounts_list.py +96 -0
- waldur_api_client/api/marketplace_offering_user_checklist_completions/__init__.py +1 -0
- waldur_api_client/api/marketplace_offering_user_checklist_completions/marketplace_offering_user_checklist_completions_count.py +286 -0
- waldur_api_client/api/marketplace_offering_user_checklist_completions/marketplace_offering_user_checklist_completions_list.py +289 -0
- waldur_api_client/api/{rancher_clusters/rancher_clusters_create.py → marketplace_offering_user_checklist_completions/marketplace_offering_user_checklist_completions_retrieve.py} +29 -38
- waldur_api_client/api/marketplace_offering_users/marketplace_offering_users_count.py +15 -0
- waldur_api_client/api/marketplace_offering_users/marketplace_offering_users_list.py +15 -0
- waldur_api_client/api/{rancher_clusters/rancher_clusters_destroy.py → marketplace_orders/marketplace_orders_delete_attachment.py} +6 -4
- waldur_api_client/api/marketplace_orders/marketplace_orders_update_attachment.py +168 -0
- waldur_api_client/api/marketplace_provider_offerings/marketplace_provider_offerings_component_stats_list.py +15 -0
- waldur_api_client/api/marketplace_provider_offerings/marketplace_provider_offerings_costs_list.py +15 -0
- waldur_api_client/api/marketplace_provider_offerings/marketplace_provider_offerings_count.py +15 -0
- waldur_api_client/api/marketplace_provider_offerings/marketplace_provider_offerings_customers_list.py +15 -0
- waldur_api_client/api/marketplace_provider_offerings/marketplace_provider_offerings_groups_count.py +15 -0
- waldur_api_client/api/marketplace_provider_offerings/marketplace_provider_offerings_groups_list.py +15 -0
- waldur_api_client/api/marketplace_provider_offerings/marketplace_provider_offerings_list.py +15 -0
- waldur_api_client/api/marketplace_provider_offerings/marketplace_provider_offerings_list_course_accounts_retrieve.py +177 -0
- waldur_api_client/api/marketplace_provider_offerings/marketplace_provider_offerings_refresh_offering_usernames.py +0 -22
- waldur_api_client/api/marketplace_provider_offerings/marketplace_provider_offerings_update_compliance_checklist.py +105 -0
- waldur_api_client/api/marketplace_public_offerings/marketplace_public_offerings_count.py +15 -0
- waldur_api_client/api/marketplace_public_offerings/marketplace_public_offerings_list.py +15 -0
- waldur_api_client/api/marketplace_service_providers/marketplace_service_providers_course_accounts_list.py +98 -0
- waldur_api_client/api/marketplace_service_providers/marketplace_service_providers_offerings_list.py +15 -0
- waldur_api_client/api/user_invitations/user_invitations_count.py +15 -0
- waldur_api_client/api/user_invitations/user_invitations_list.py +15 -0
- waldur_api_client/models/__init__.py +34 -6
- waldur_api_client/models/booking_offerings_list_field_item.py +1 -0
- waldur_api_client/models/booking_offerings_retrieve_field_item.py +1 -0
- waldur_api_client/models/booking_resource.py +18 -0
- waldur_api_client/models/booking_resources_list_field_item.py +2 -0
- waldur_api_client/models/booking_resources_retrieve_field_item.py +2 -0
- waldur_api_client/models/country_enum.py +211 -0
- waldur_api_client/models/course_account.py +24 -0
- waldur_api_client/models/customer_request.py +9 -0
- waldur_api_client/models/deployment_mode_enum.py +9 -0
- waldur_api_client/models/group_invitation.py +8 -0
- waldur_api_client/models/identity_provider.py +57 -0
- waldur_api_client/models/identity_provider_request.py +57 -0
- waldur_api_client/models/invitation.py +8 -0
- waldur_api_client/models/issue.py +8 -17
- waldur_api_client/models/issue_request.py +8 -17
- waldur_api_client/models/issue_type_enum.py +4 -4
- waldur_api_client/models/managed_rancher_cluster_resources_list_field_item.py +2 -0
- waldur_api_client/models/managed_rancher_cluster_resources_retrieve_field_item.py +2 -0
- waldur_api_client/models/marketplace_course_accounts_count_o_item.py +23 -0
- waldur_api_client/models/marketplace_course_accounts_list_o_item.py +23 -0
- waldur_api_client/models/marketplace_offering_user_checklist_completions_count_o_item.py +11 -0
- waldur_api_client/models/marketplace_offering_user_checklist_completions_list_o_item.py +11 -0
- waldur_api_client/models/marketplace_offering_users_list_field_item.py +2 -0
- waldur_api_client/models/marketplace_offering_users_retrieve_field_item.py +2 -0
- waldur_api_client/models/marketplace_orders_list_field_item.py +5 -0
- waldur_api_client/models/marketplace_orders_retrieve_field_item.py +5 -0
- waldur_api_client/models/marketplace_provider_offerings_list_course_accounts_retrieve_field_item.py +72 -0
- waldur_api_client/models/marketplace_provider_resources_details_retrieve_field_item.py +2 -0
- waldur_api_client/models/marketplace_provider_resources_list_field_item.py +2 -0
- waldur_api_client/models/marketplace_provider_resources_retrieve_field_item.py +2 -0
- waldur_api_client/models/marketplace_public_offerings_list_field_item.py +1 -0
- waldur_api_client/models/marketplace_public_offerings_retrieve_field_item.py +1 -0
- waldur_api_client/models/marketplace_resources_details_retrieve_field_item.py +2 -0
- waldur_api_client/models/marketplace_resources_list_field_item.py +2 -0
- waldur_api_client/models/marketplace_resources_retrieve_field_item.py +2 -0
- waldur_api_client/models/marketplace_service_providers_course_accounts_list_o_item.py +23 -0
- waldur_api_client/models/merged_plugin_options.py +36 -0
- waldur_api_client/models/merged_plugin_options_request.py +36 -0
- waldur_api_client/models/notification.py +11 -0
- waldur_api_client/models/notification_context_fields.py +47 -0
- waldur_api_client/models/offering.py +9 -0
- waldur_api_client/models/offering_compliance_checklist_update_request.py +82 -0
- waldur_api_client/models/offering_create.py +9 -8
- waldur_api_client/models/offering_create_request.py +9 -0
- waldur_api_client/models/offering_overview_update_request.py +9 -0
- waldur_api_client/models/offering_terms_of_service.py +42 -1
- waldur_api_client/models/offering_user.py +18 -0
- waldur_api_client/models/open_stack_tenant_create_order_attributes.py +0 -18
- waldur_api_client/models/open_stack_tenant_request.py +18 -0
- waldur_api_client/models/order_attachment.py +71 -0
- waldur_api_client/models/order_attachment_request.py +84 -0
- waldur_api_client/models/order_create.py +58 -16
- waldur_api_client/models/order_create_request.py +44 -62
- waldur_api_client/models/order_details.py +99 -16
- waldur_api_client/models/patched_customer_request.py +9 -0
- waldur_api_client/models/patched_identity_provider_request.py +58 -0
- waldur_api_client/models/patched_project_request.py +9 -0
- waldur_api_client/models/patched_protected_call_request.py +9 -0
- waldur_api_client/models/patched_protected_round_request.py +2 -2
- waldur_api_client/models/patched_service_provider_request.py +9 -0
- waldur_api_client/models/patched_user_request.py +9 -0
- waldur_api_client/models/project_request.py +9 -0
- waldur_api_client/models/protected_call_request.py +9 -0
- waldur_api_client/models/protected_round.py +2 -2
- waldur_api_client/models/protected_round_request.py +2 -2
- waldur_api_client/models/public_offering_details.py +9 -0
- waldur_api_client/models/rancher_cluster_request.py +1 -48
- waldur_api_client/models/resource.py +18 -0
- waldur_api_client/models/resource_update_limits_request.py +23 -1
- waldur_api_client/models/service_provider_request.py +9 -0
- waldur_api_client/models/user_checklist_completion.py +265 -0
- waldur_api_client/models/user_consent_info.py +86 -0
- waldur_api_client/models/user_request.py +9 -0
- waldur_api_client/models/visible_invitation_details.py +8 -0
- {waldur_api_client-7.7.9.dist-info → waldur_api_client-7.8.1.dist-info}/METADATA +4 -2
- {waldur_api_client-7.7.9.dist-info → waldur_api_client-7.8.1.dist-info}/RECORD +105 -89
- {waldur_api_client-7.7.9.dist-info → waldur_api_client-7.8.1.dist-info}/WHEEL +1 -1
- waldur_api_client/models/marketplace_managed_rancher_create_order_attributes.py +0 -144
- waldur_api_client/models/marketplace_rancher_create_order_attributes.py +0 -145
- waldur_api_client/models/provider_offering_details_request.py +0 -398
- {waldur_api_client-7.7.9.dist-info → waldur_api_client-7.8.1.dist-info/licenses}/LICENSE +0 -0
|
@@ -0,0 +1,82 @@
|
|
|
1
|
+
from collections.abc import Mapping
|
|
2
|
+
from typing import 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
|
+
from ..types import UNSET, Unset
|
|
9
|
+
|
|
10
|
+
T = TypeVar("T", bound="OfferingComplianceChecklistUpdateRequest")
|
|
11
|
+
|
|
12
|
+
|
|
13
|
+
@_attrs_define
|
|
14
|
+
class OfferingComplianceChecklistUpdateRequest:
|
|
15
|
+
"""
|
|
16
|
+
Attributes:
|
|
17
|
+
compliance_checklist (Union[None, UUID, Unset]):
|
|
18
|
+
"""
|
|
19
|
+
|
|
20
|
+
compliance_checklist: Union[None, UUID, Unset] = UNSET
|
|
21
|
+
additional_properties: dict[str, Any] = _attrs_field(init=False, factory=dict)
|
|
22
|
+
|
|
23
|
+
def to_dict(self) -> dict[str, Any]:
|
|
24
|
+
compliance_checklist: Union[None, Unset, str]
|
|
25
|
+
if isinstance(self.compliance_checklist, Unset):
|
|
26
|
+
compliance_checklist = UNSET
|
|
27
|
+
elif isinstance(self.compliance_checklist, UUID):
|
|
28
|
+
compliance_checklist = str(self.compliance_checklist)
|
|
29
|
+
else:
|
|
30
|
+
compliance_checklist = self.compliance_checklist
|
|
31
|
+
|
|
32
|
+
field_dict: dict[str, Any] = {}
|
|
33
|
+
field_dict.update(self.additional_properties)
|
|
34
|
+
field_dict.update({})
|
|
35
|
+
if compliance_checklist is not UNSET:
|
|
36
|
+
field_dict["compliance_checklist"] = compliance_checklist
|
|
37
|
+
|
|
38
|
+
return field_dict
|
|
39
|
+
|
|
40
|
+
@classmethod
|
|
41
|
+
def from_dict(cls: type[T], src_dict: Mapping[str, Any]) -> T:
|
|
42
|
+
d = dict(src_dict)
|
|
43
|
+
|
|
44
|
+
def _parse_compliance_checklist(data: object) -> Union[None, UUID, Unset]:
|
|
45
|
+
if data is None:
|
|
46
|
+
return data
|
|
47
|
+
if isinstance(data, Unset):
|
|
48
|
+
return data
|
|
49
|
+
try:
|
|
50
|
+
if not isinstance(data, str):
|
|
51
|
+
raise TypeError()
|
|
52
|
+
compliance_checklist_type_0 = UUID(data)
|
|
53
|
+
|
|
54
|
+
return compliance_checklist_type_0
|
|
55
|
+
except: # noqa: E722
|
|
56
|
+
pass
|
|
57
|
+
return cast(Union[None, UUID, Unset], data)
|
|
58
|
+
|
|
59
|
+
compliance_checklist = _parse_compliance_checklist(d.pop("compliance_checklist", UNSET))
|
|
60
|
+
|
|
61
|
+
offering_compliance_checklist_update_request = cls(
|
|
62
|
+
compliance_checklist=compliance_checklist,
|
|
63
|
+
)
|
|
64
|
+
|
|
65
|
+
offering_compliance_checklist_update_request.additional_properties = d
|
|
66
|
+
return offering_compliance_checklist_update_request
|
|
67
|
+
|
|
68
|
+
@property
|
|
69
|
+
def additional_keys(self) -> list[str]:
|
|
70
|
+
return list(self.additional_properties.keys())
|
|
71
|
+
|
|
72
|
+
def __getitem__(self, key: str) -> Any:
|
|
73
|
+
return self.additional_properties[key]
|
|
74
|
+
|
|
75
|
+
def __setitem__(self, key: str, value: Any) -> None:
|
|
76
|
+
self.additional_properties[key] = value
|
|
77
|
+
|
|
78
|
+
def __delitem__(self, key: str) -> None:
|
|
79
|
+
del self.additional_properties[key]
|
|
80
|
+
|
|
81
|
+
def __contains__(self, key: str) -> bool:
|
|
82
|
+
return key in self.additional_properties
|
|
@@ -39,7 +39,6 @@ class OfferingCreate:
|
|
|
39
39
|
uuid (UUID):
|
|
40
40
|
created (datetime.datetime):
|
|
41
41
|
name (str):
|
|
42
|
-
slug (str):
|
|
43
42
|
endpoints (list['NestedEndpoint']):
|
|
44
43
|
roles (list['NestedRole']):
|
|
45
44
|
customer_uuid (Union[None, UUID]):
|
|
@@ -74,6 +73,7 @@ class OfferingCreate:
|
|
|
74
73
|
parent_uuid (Union[None, UUID]):
|
|
75
74
|
parent_name (Union[None, str]):
|
|
76
75
|
has_compliance_requirements (bool):
|
|
76
|
+
slug (Union[Unset, str]):
|
|
77
77
|
description (Union[Unset, str]):
|
|
78
78
|
full_description (Union[Unset, str]):
|
|
79
79
|
privacy_policy_link (Union[Unset, str]):
|
|
@@ -103,7 +103,6 @@ class OfferingCreate:
|
|
|
103
103
|
uuid: UUID
|
|
104
104
|
created: datetime.datetime
|
|
105
105
|
name: str
|
|
106
|
-
slug: str
|
|
107
106
|
endpoints: list["NestedEndpoint"]
|
|
108
107
|
roles: list["NestedRole"]
|
|
109
108
|
customer_uuid: Union[None, UUID]
|
|
@@ -138,6 +137,7 @@ class OfferingCreate:
|
|
|
138
137
|
parent_uuid: Union[None, UUID]
|
|
139
138
|
parent_name: Union[None, str]
|
|
140
139
|
has_compliance_requirements: bool
|
|
140
|
+
slug: Union[Unset, str] = UNSET
|
|
141
141
|
description: Union[Unset, str] = UNSET
|
|
142
142
|
full_description: Union[Unset, str] = UNSET
|
|
143
143
|
privacy_policy_link: Union[Unset, str] = UNSET
|
|
@@ -172,8 +172,6 @@ class OfferingCreate:
|
|
|
172
172
|
|
|
173
173
|
name = self.name
|
|
174
174
|
|
|
175
|
-
slug = self.slug
|
|
176
|
-
|
|
177
175
|
endpoints = []
|
|
178
176
|
for endpoints_item_data in self.endpoints:
|
|
179
177
|
endpoints_item = endpoints_item_data.to_dict()
|
|
@@ -293,6 +291,8 @@ class OfferingCreate:
|
|
|
293
291
|
|
|
294
292
|
has_compliance_requirements = self.has_compliance_requirements
|
|
295
293
|
|
|
294
|
+
slug = self.slug
|
|
295
|
+
|
|
296
296
|
description = self.description
|
|
297
297
|
|
|
298
298
|
full_description = self.full_description
|
|
@@ -387,7 +387,6 @@ class OfferingCreate:
|
|
|
387
387
|
"uuid": uuid,
|
|
388
388
|
"created": created,
|
|
389
389
|
"name": name,
|
|
390
|
-
"slug": slug,
|
|
391
390
|
"endpoints": endpoints,
|
|
392
391
|
"roles": roles,
|
|
393
392
|
"customer_uuid": customer_uuid,
|
|
@@ -424,6 +423,8 @@ class OfferingCreate:
|
|
|
424
423
|
"has_compliance_requirements": has_compliance_requirements,
|
|
425
424
|
}
|
|
426
425
|
)
|
|
426
|
+
if slug is not UNSET:
|
|
427
|
+
field_dict["slug"] = slug
|
|
427
428
|
if description is not UNSET:
|
|
428
429
|
field_dict["description"] = description
|
|
429
430
|
if full_description is not UNSET:
|
|
@@ -497,8 +498,6 @@ class OfferingCreate:
|
|
|
497
498
|
|
|
498
499
|
name = d.pop("name")
|
|
499
500
|
|
|
500
|
-
slug = d.pop("slug")
|
|
501
|
-
|
|
502
501
|
endpoints = []
|
|
503
502
|
_endpoints = d.pop("endpoints")
|
|
504
503
|
for endpoints_item_data in _endpoints:
|
|
@@ -720,6 +719,8 @@ class OfferingCreate:
|
|
|
720
719
|
|
|
721
720
|
has_compliance_requirements = d.pop("has_compliance_requirements")
|
|
722
721
|
|
|
722
|
+
slug = d.pop("slug", UNSET)
|
|
723
|
+
|
|
723
724
|
description = d.pop("description", UNSET)
|
|
724
725
|
|
|
725
726
|
full_description = d.pop("full_description", UNSET)
|
|
@@ -843,7 +844,6 @@ class OfferingCreate:
|
|
|
843
844
|
uuid=uuid,
|
|
844
845
|
created=created,
|
|
845
846
|
name=name,
|
|
846
|
-
slug=slug,
|
|
847
847
|
endpoints=endpoints,
|
|
848
848
|
roles=roles,
|
|
849
849
|
customer_uuid=customer_uuid,
|
|
@@ -878,6 +878,7 @@ class OfferingCreate:
|
|
|
878
878
|
parent_uuid=parent_uuid,
|
|
879
879
|
parent_name=parent_name,
|
|
880
880
|
has_compliance_requirements=has_compliance_requirements,
|
|
881
|
+
slug=slug,
|
|
881
882
|
description=description,
|
|
882
883
|
full_description=full_description,
|
|
883
884
|
privacy_policy_link=privacy_policy_link,
|
|
@@ -27,6 +27,7 @@ class OfferingCreateRequest:
|
|
|
27
27
|
name (str):
|
|
28
28
|
category (str):
|
|
29
29
|
type_ (str):
|
|
30
|
+
slug (Union[Unset, str]):
|
|
30
31
|
description (Union[Unset, str]):
|
|
31
32
|
full_description (Union[Unset, str]):
|
|
32
33
|
privacy_policy_link (Union[Unset, str]):
|
|
@@ -56,6 +57,7 @@ class OfferingCreateRequest:
|
|
|
56
57
|
name: str
|
|
57
58
|
category: str
|
|
58
59
|
type_: str
|
|
60
|
+
slug: Union[Unset, str] = UNSET
|
|
59
61
|
description: Union[Unset, str] = UNSET
|
|
60
62
|
full_description: Union[Unset, str] = UNSET
|
|
61
63
|
privacy_policy_link: Union[Unset, str] = UNSET
|
|
@@ -89,6 +91,8 @@ class OfferingCreateRequest:
|
|
|
89
91
|
|
|
90
92
|
type_ = self.type_
|
|
91
93
|
|
|
94
|
+
slug = self.slug
|
|
95
|
+
|
|
92
96
|
description = self.description
|
|
93
97
|
|
|
94
98
|
full_description = self.full_description
|
|
@@ -194,6 +198,8 @@ class OfferingCreateRequest:
|
|
|
194
198
|
"type": type_,
|
|
195
199
|
}
|
|
196
200
|
)
|
|
201
|
+
if slug is not UNSET:
|
|
202
|
+
field_dict["slug"] = slug
|
|
197
203
|
if description is not UNSET:
|
|
198
204
|
field_dict["description"] = description
|
|
199
205
|
if full_description is not UNSET:
|
|
@@ -259,6 +265,8 @@ class OfferingCreateRequest:
|
|
|
259
265
|
|
|
260
266
|
type_ = d.pop("type")
|
|
261
267
|
|
|
268
|
+
slug = d.pop("slug", UNSET)
|
|
269
|
+
|
|
262
270
|
description = d.pop("description", UNSET)
|
|
263
271
|
|
|
264
272
|
full_description = d.pop("full_description", UNSET)
|
|
@@ -404,6 +412,7 @@ class OfferingCreateRequest:
|
|
|
404
412
|
name=name,
|
|
405
413
|
category=category,
|
|
406
414
|
type_=type_,
|
|
415
|
+
slug=slug,
|
|
407
416
|
description=description,
|
|
408
417
|
full_description=full_description,
|
|
409
418
|
privacy_policy_link=privacy_policy_link,
|
|
@@ -20,6 +20,7 @@ class OfferingOverviewUpdateRequest:
|
|
|
20
20
|
access_url (Union[Unset, str]): Publicly accessible offering access URL
|
|
21
21
|
getting_started (Union[Unset, str]):
|
|
22
22
|
integration_guide (Union[Unset, str]):
|
|
23
|
+
slug (Union[Unset, str]):
|
|
23
24
|
"""
|
|
24
25
|
|
|
25
26
|
name: str
|
|
@@ -29,6 +30,7 @@ class OfferingOverviewUpdateRequest:
|
|
|
29
30
|
access_url: Union[Unset, str] = UNSET
|
|
30
31
|
getting_started: Union[Unset, str] = UNSET
|
|
31
32
|
integration_guide: Union[Unset, str] = UNSET
|
|
33
|
+
slug: Union[Unset, str] = UNSET
|
|
32
34
|
additional_properties: dict[str, Any] = _attrs_field(init=False, factory=dict)
|
|
33
35
|
|
|
34
36
|
def to_dict(self) -> dict[str, Any]:
|
|
@@ -46,6 +48,8 @@ class OfferingOverviewUpdateRequest:
|
|
|
46
48
|
|
|
47
49
|
integration_guide = self.integration_guide
|
|
48
50
|
|
|
51
|
+
slug = self.slug
|
|
52
|
+
|
|
49
53
|
field_dict: dict[str, Any] = {}
|
|
50
54
|
field_dict.update(self.additional_properties)
|
|
51
55
|
field_dict.update(
|
|
@@ -65,6 +69,8 @@ class OfferingOverviewUpdateRequest:
|
|
|
65
69
|
field_dict["getting_started"] = getting_started
|
|
66
70
|
if integration_guide is not UNSET:
|
|
67
71
|
field_dict["integration_guide"] = integration_guide
|
|
72
|
+
if slug is not UNSET:
|
|
73
|
+
field_dict["slug"] = slug
|
|
68
74
|
|
|
69
75
|
return field_dict
|
|
70
76
|
|
|
@@ -85,6 +91,8 @@ class OfferingOverviewUpdateRequest:
|
|
|
85
91
|
|
|
86
92
|
integration_guide = d.pop("integration_guide", UNSET)
|
|
87
93
|
|
|
94
|
+
slug = d.pop("slug", UNSET)
|
|
95
|
+
|
|
88
96
|
offering_overview_update_request = cls(
|
|
89
97
|
name=name,
|
|
90
98
|
description=description,
|
|
@@ -93,6 +101,7 @@ class OfferingOverviewUpdateRequest:
|
|
|
93
101
|
access_url=access_url,
|
|
94
102
|
getting_started=getting_started,
|
|
95
103
|
integration_guide=integration_guide,
|
|
104
|
+
slug=slug,
|
|
96
105
|
)
|
|
97
106
|
|
|
98
107
|
offering_overview_update_request.additional_properties = d
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import datetime
|
|
2
2
|
from collections.abc import Mapping
|
|
3
|
-
from typing import Any, TypeVar, Union
|
|
3
|
+
from typing import TYPE_CHECKING, Any, TypeVar, Union, cast
|
|
4
4
|
from uuid import UUID
|
|
5
5
|
|
|
6
6
|
from attrs import define as _attrs_define
|
|
@@ -9,6 +9,10 @@ from dateutil.parser import isoparse
|
|
|
9
9
|
|
|
10
10
|
from ..types import UNSET, Unset
|
|
11
11
|
|
|
12
|
+
if TYPE_CHECKING:
|
|
13
|
+
from ..models.user_consent_info import UserConsentInfo
|
|
14
|
+
|
|
15
|
+
|
|
12
16
|
T = TypeVar("T", bound="OfferingTermsOfService")
|
|
13
17
|
|
|
14
18
|
|
|
@@ -19,6 +23,8 @@ class OfferingTermsOfService:
|
|
|
19
23
|
uuid (UUID):
|
|
20
24
|
offering_uuid (UUID):
|
|
21
25
|
offering_name (str):
|
|
26
|
+
user_consent (Union['UserConsentInfo', None]):
|
|
27
|
+
has_user_consent (bool):
|
|
22
28
|
created (datetime.datetime):
|
|
23
29
|
modified (datetime.datetime):
|
|
24
30
|
terms_of_service (Union[Unset, str]):
|
|
@@ -32,6 +38,8 @@ class OfferingTermsOfService:
|
|
|
32
38
|
uuid: UUID
|
|
33
39
|
offering_uuid: UUID
|
|
34
40
|
offering_name: str
|
|
41
|
+
user_consent: Union["UserConsentInfo", None]
|
|
42
|
+
has_user_consent: bool
|
|
35
43
|
created: datetime.datetime
|
|
36
44
|
modified: datetime.datetime
|
|
37
45
|
terms_of_service: Union[Unset, str] = UNSET
|
|
@@ -42,12 +50,22 @@ class OfferingTermsOfService:
|
|
|
42
50
|
additional_properties: dict[str, Any] = _attrs_field(init=False, factory=dict)
|
|
43
51
|
|
|
44
52
|
def to_dict(self) -> dict[str, Any]:
|
|
53
|
+
from ..models.user_consent_info import UserConsentInfo
|
|
54
|
+
|
|
45
55
|
uuid = str(self.uuid)
|
|
46
56
|
|
|
47
57
|
offering_uuid = str(self.offering_uuid)
|
|
48
58
|
|
|
49
59
|
offering_name = self.offering_name
|
|
50
60
|
|
|
61
|
+
user_consent: Union[None, dict[str, Any]]
|
|
62
|
+
if isinstance(self.user_consent, UserConsentInfo):
|
|
63
|
+
user_consent = self.user_consent.to_dict()
|
|
64
|
+
else:
|
|
65
|
+
user_consent = self.user_consent
|
|
66
|
+
|
|
67
|
+
has_user_consent = self.has_user_consent
|
|
68
|
+
|
|
51
69
|
created = self.created.isoformat()
|
|
52
70
|
|
|
53
71
|
modified = self.modified.isoformat()
|
|
@@ -69,6 +87,8 @@ class OfferingTermsOfService:
|
|
|
69
87
|
"uuid": uuid,
|
|
70
88
|
"offering_uuid": offering_uuid,
|
|
71
89
|
"offering_name": offering_name,
|
|
90
|
+
"user_consent": user_consent,
|
|
91
|
+
"has_user_consent": has_user_consent,
|
|
72
92
|
"created": created,
|
|
73
93
|
"modified": modified,
|
|
74
94
|
}
|
|
@@ -88,6 +108,8 @@ class OfferingTermsOfService:
|
|
|
88
108
|
|
|
89
109
|
@classmethod
|
|
90
110
|
def from_dict(cls: type[T], src_dict: Mapping[str, Any]) -> T:
|
|
111
|
+
from ..models.user_consent_info import UserConsentInfo
|
|
112
|
+
|
|
91
113
|
d = dict(src_dict)
|
|
92
114
|
uuid = UUID(d.pop("uuid"))
|
|
93
115
|
|
|
@@ -95,6 +117,23 @@ class OfferingTermsOfService:
|
|
|
95
117
|
|
|
96
118
|
offering_name = d.pop("offering_name")
|
|
97
119
|
|
|
120
|
+
def _parse_user_consent(data: object) -> Union["UserConsentInfo", None]:
|
|
121
|
+
if data is None:
|
|
122
|
+
return data
|
|
123
|
+
try:
|
|
124
|
+
if not isinstance(data, dict):
|
|
125
|
+
raise TypeError()
|
|
126
|
+
user_consent_type_1 = UserConsentInfo.from_dict(data)
|
|
127
|
+
|
|
128
|
+
return user_consent_type_1
|
|
129
|
+
except: # noqa: E722
|
|
130
|
+
pass
|
|
131
|
+
return cast(Union["UserConsentInfo", None], data)
|
|
132
|
+
|
|
133
|
+
user_consent = _parse_user_consent(d.pop("user_consent"))
|
|
134
|
+
|
|
135
|
+
has_user_consent = d.pop("has_user_consent")
|
|
136
|
+
|
|
98
137
|
created = isoparse(d.pop("created"))
|
|
99
138
|
|
|
100
139
|
modified = isoparse(d.pop("modified"))
|
|
@@ -113,6 +152,8 @@ class OfferingTermsOfService:
|
|
|
113
152
|
uuid=uuid,
|
|
114
153
|
offering_uuid=offering_uuid,
|
|
115
154
|
offering_name=offering_name,
|
|
155
|
+
user_consent=user_consent,
|
|
156
|
+
has_user_consent=has_user_consent,
|
|
116
157
|
created=created,
|
|
117
158
|
modified=modified,
|
|
118
159
|
terms_of_service=terms_of_service,
|
|
@@ -39,6 +39,8 @@ class OfferingUser:
|
|
|
39
39
|
linking
|
|
40
40
|
service_provider_comment_url (Union[Unset, str]): URL link for additional information or actions related to
|
|
41
41
|
service provider comment
|
|
42
|
+
has_consent (Union[Unset, bool]): Check if the user has active consent for this offering.
|
|
43
|
+
requires_reconsent (Union[Unset, bool]): Check if the user needs to re-consent due to ToS changes.
|
|
42
44
|
"""
|
|
43
45
|
|
|
44
46
|
url: Union[Unset, str] = UNSET
|
|
@@ -60,6 +62,8 @@ class OfferingUser:
|
|
|
60
62
|
state: Union[Unset, OfferingUserStateEnum] = UNSET
|
|
61
63
|
service_provider_comment: Union[Unset, str] = UNSET
|
|
62
64
|
service_provider_comment_url: Union[Unset, str] = UNSET
|
|
65
|
+
has_consent: Union[Unset, bool] = UNSET
|
|
66
|
+
requires_reconsent: Union[Unset, bool] = UNSET
|
|
63
67
|
additional_properties: dict[str, Any] = _attrs_field(init=False, factory=dict)
|
|
64
68
|
|
|
65
69
|
def to_dict(self) -> dict[str, Any]:
|
|
@@ -119,6 +123,10 @@ class OfferingUser:
|
|
|
119
123
|
|
|
120
124
|
service_provider_comment_url = self.service_provider_comment_url
|
|
121
125
|
|
|
126
|
+
has_consent = self.has_consent
|
|
127
|
+
|
|
128
|
+
requires_reconsent = self.requires_reconsent
|
|
129
|
+
|
|
122
130
|
field_dict: dict[str, Any] = {}
|
|
123
131
|
field_dict.update(self.additional_properties)
|
|
124
132
|
field_dict.update({})
|
|
@@ -160,6 +168,10 @@ class OfferingUser:
|
|
|
160
168
|
field_dict["service_provider_comment"] = service_provider_comment
|
|
161
169
|
if service_provider_comment_url is not UNSET:
|
|
162
170
|
field_dict["service_provider_comment_url"] = service_provider_comment_url
|
|
171
|
+
if has_consent is not UNSET:
|
|
172
|
+
field_dict["has_consent"] = has_consent
|
|
173
|
+
if requires_reconsent is not UNSET:
|
|
174
|
+
field_dict["requires_reconsent"] = requires_reconsent
|
|
163
175
|
|
|
164
176
|
return field_dict
|
|
165
177
|
|
|
@@ -246,6 +258,10 @@ class OfferingUser:
|
|
|
246
258
|
|
|
247
259
|
service_provider_comment_url = d.pop("service_provider_comment_url", UNSET)
|
|
248
260
|
|
|
261
|
+
has_consent = d.pop("has_consent", UNSET)
|
|
262
|
+
|
|
263
|
+
requires_reconsent = d.pop("requires_reconsent", UNSET)
|
|
264
|
+
|
|
249
265
|
offering_user = cls(
|
|
250
266
|
url=url,
|
|
251
267
|
uuid=uuid,
|
|
@@ -266,6 +282,8 @@ class OfferingUser:
|
|
|
266
282
|
state=state,
|
|
267
283
|
service_provider_comment=service_provider_comment,
|
|
268
284
|
service_provider_comment_url=service_provider_comment_url,
|
|
285
|
+
has_consent=has_consent,
|
|
286
|
+
requires_reconsent=requires_reconsent,
|
|
269
287
|
)
|
|
270
288
|
|
|
271
289
|
offering_user.additional_properties = d
|
|
@@ -20,8 +20,6 @@ class OpenStackTenantCreateOrderAttributes:
|
|
|
20
20
|
Attributes:
|
|
21
21
|
name (str):
|
|
22
22
|
description (Union[Unset, str]):
|
|
23
|
-
user_username (Union[Unset, str]): Username of the tenant user
|
|
24
|
-
user_password (Union[Unset, str]): Password of the tenant user
|
|
25
23
|
subnet_cidr (Union[Unset, str]): Default: '192.168.42.0/24'.
|
|
26
24
|
skip_connection_extnet (Union[Unset, bool]): Default: False.
|
|
27
25
|
skip_creation_of_default_router (Union[Unset, bool]): Default: False.
|
|
@@ -31,8 +29,6 @@ class OpenStackTenantCreateOrderAttributes:
|
|
|
31
29
|
|
|
32
30
|
name: str
|
|
33
31
|
description: Union[Unset, str] = UNSET
|
|
34
|
-
user_username: Union[Unset, str] = UNSET
|
|
35
|
-
user_password: Union[Unset, str] = UNSET
|
|
36
32
|
subnet_cidr: Union[Unset, str] = "192.168.42.0/24"
|
|
37
33
|
skip_connection_extnet: Union[Unset, bool] = False
|
|
38
34
|
skip_creation_of_default_router: Union[Unset, bool] = False
|
|
@@ -44,10 +40,6 @@ class OpenStackTenantCreateOrderAttributes:
|
|
|
44
40
|
|
|
45
41
|
description = self.description
|
|
46
42
|
|
|
47
|
-
user_username = self.user_username
|
|
48
|
-
|
|
49
|
-
user_password = self.user_password
|
|
50
|
-
|
|
51
43
|
subnet_cidr = self.subnet_cidr
|
|
52
44
|
|
|
53
45
|
skip_connection_extnet = self.skip_connection_extnet
|
|
@@ -65,10 +57,6 @@ class OpenStackTenantCreateOrderAttributes:
|
|
|
65
57
|
)
|
|
66
58
|
if description is not UNSET:
|
|
67
59
|
field_dict["description"] = description
|
|
68
|
-
if user_username is not UNSET:
|
|
69
|
-
field_dict["user_username"] = user_username
|
|
70
|
-
if user_password is not UNSET:
|
|
71
|
-
field_dict["user_password"] = user_password
|
|
72
60
|
if subnet_cidr is not UNSET:
|
|
73
61
|
field_dict["subnet_cidr"] = subnet_cidr
|
|
74
62
|
if skip_connection_extnet is not UNSET:
|
|
@@ -87,10 +75,6 @@ class OpenStackTenantCreateOrderAttributes:
|
|
|
87
75
|
|
|
88
76
|
description = d.pop("description", UNSET)
|
|
89
77
|
|
|
90
|
-
user_username = d.pop("user_username", UNSET)
|
|
91
|
-
|
|
92
|
-
user_password = d.pop("user_password", UNSET)
|
|
93
|
-
|
|
94
78
|
subnet_cidr = d.pop("subnet_cidr", UNSET)
|
|
95
79
|
|
|
96
80
|
skip_connection_extnet = d.pop("skip_connection_extnet", UNSET)
|
|
@@ -102,8 +86,6 @@ class OpenStackTenantCreateOrderAttributes:
|
|
|
102
86
|
open_stack_tenant_create_order_attributes = cls(
|
|
103
87
|
name=name,
|
|
104
88
|
description=description,
|
|
105
|
-
user_username=user_username,
|
|
106
|
-
user_password=user_password,
|
|
107
89
|
subnet_cidr=subnet_cidr,
|
|
108
90
|
skip_connection_extnet=skip_connection_extnet,
|
|
109
91
|
skip_creation_of_default_router=skip_creation_of_default_router,
|
|
@@ -19,6 +19,8 @@ class OpenStackTenantRequest:
|
|
|
19
19
|
description (Union[Unset, str]):
|
|
20
20
|
availability_zone (Union[Unset, str]): Optional availability group. Will be used for all instances provisioned
|
|
21
21
|
in this tenant
|
|
22
|
+
user_username (Union[Unset, str]): Username of the tenant user
|
|
23
|
+
user_password (Union[Unset, str]): Password of the tenant user
|
|
22
24
|
subnet_cidr (Union[Unset, str]): Default: '192.168.42.0/24'.
|
|
23
25
|
default_volume_type_name (Union[Unset, str]): Volume type name to use when creating volumes.
|
|
24
26
|
"""
|
|
@@ -28,6 +30,8 @@ class OpenStackTenantRequest:
|
|
|
28
30
|
project: str
|
|
29
31
|
description: Union[Unset, str] = UNSET
|
|
30
32
|
availability_zone: Union[Unset, str] = UNSET
|
|
33
|
+
user_username: Union[Unset, str] = UNSET
|
|
34
|
+
user_password: Union[Unset, str] = UNSET
|
|
31
35
|
subnet_cidr: Union[Unset, str] = "192.168.42.0/24"
|
|
32
36
|
default_volume_type_name: Union[Unset, str] = UNSET
|
|
33
37
|
additional_properties: dict[str, Any] = _attrs_field(init=False, factory=dict)
|
|
@@ -43,6 +47,10 @@ class OpenStackTenantRequest:
|
|
|
43
47
|
|
|
44
48
|
availability_zone = self.availability_zone
|
|
45
49
|
|
|
50
|
+
user_username = self.user_username
|
|
51
|
+
|
|
52
|
+
user_password = self.user_password
|
|
53
|
+
|
|
46
54
|
subnet_cidr = self.subnet_cidr
|
|
47
55
|
|
|
48
56
|
default_volume_type_name = self.default_volume_type_name
|
|
@@ -60,6 +68,10 @@ class OpenStackTenantRequest:
|
|
|
60
68
|
field_dict["description"] = description
|
|
61
69
|
if availability_zone is not UNSET:
|
|
62
70
|
field_dict["availability_zone"] = availability_zone
|
|
71
|
+
if user_username is not UNSET:
|
|
72
|
+
field_dict["user_username"] = user_username
|
|
73
|
+
if user_password is not UNSET:
|
|
74
|
+
field_dict["user_password"] = user_password
|
|
63
75
|
if subnet_cidr is not UNSET:
|
|
64
76
|
field_dict["subnet_cidr"] = subnet_cidr
|
|
65
77
|
if default_volume_type_name is not UNSET:
|
|
@@ -80,6 +92,10 @@ class OpenStackTenantRequest:
|
|
|
80
92
|
|
|
81
93
|
availability_zone = d.pop("availability_zone", UNSET)
|
|
82
94
|
|
|
95
|
+
user_username = d.pop("user_username", UNSET)
|
|
96
|
+
|
|
97
|
+
user_password = d.pop("user_password", UNSET)
|
|
98
|
+
|
|
83
99
|
subnet_cidr = d.pop("subnet_cidr", UNSET)
|
|
84
100
|
|
|
85
101
|
default_volume_type_name = d.pop("default_volume_type_name", UNSET)
|
|
@@ -90,6 +106,8 @@ class OpenStackTenantRequest:
|
|
|
90
106
|
project=project,
|
|
91
107
|
description=description,
|
|
92
108
|
availability_zone=availability_zone,
|
|
109
|
+
user_username=user_username,
|
|
110
|
+
user_password=user_password,
|
|
93
111
|
subnet_cidr=subnet_cidr,
|
|
94
112
|
default_volume_type_name=default_volume_type_name,
|
|
95
113
|
)
|
|
@@ -0,0 +1,71 @@
|
|
|
1
|
+
from collections.abc import Mapping
|
|
2
|
+
from typing import Any, TypeVar, Union, cast
|
|
3
|
+
|
|
4
|
+
from attrs import define as _attrs_define
|
|
5
|
+
from attrs import field as _attrs_field
|
|
6
|
+
|
|
7
|
+
from ..types import UNSET, Unset
|
|
8
|
+
|
|
9
|
+
T = TypeVar("T", bound="OrderAttachment")
|
|
10
|
+
|
|
11
|
+
|
|
12
|
+
@_attrs_define
|
|
13
|
+
class OrderAttachment:
|
|
14
|
+
"""
|
|
15
|
+
Attributes:
|
|
16
|
+
attachment (Union[None, Unset, str]):
|
|
17
|
+
"""
|
|
18
|
+
|
|
19
|
+
attachment: Union[None, Unset, str] = UNSET
|
|
20
|
+
additional_properties: dict[str, Any] = _attrs_field(init=False, factory=dict)
|
|
21
|
+
|
|
22
|
+
def to_dict(self) -> dict[str, Any]:
|
|
23
|
+
attachment: Union[None, Unset, str]
|
|
24
|
+
if isinstance(self.attachment, Unset):
|
|
25
|
+
attachment = UNSET
|
|
26
|
+
else:
|
|
27
|
+
attachment = self.attachment
|
|
28
|
+
|
|
29
|
+
field_dict: dict[str, Any] = {}
|
|
30
|
+
field_dict.update(self.additional_properties)
|
|
31
|
+
field_dict.update({})
|
|
32
|
+
if attachment is not UNSET:
|
|
33
|
+
field_dict["attachment"] = attachment
|
|
34
|
+
|
|
35
|
+
return field_dict
|
|
36
|
+
|
|
37
|
+
@classmethod
|
|
38
|
+
def from_dict(cls: type[T], src_dict: Mapping[str, Any]) -> T:
|
|
39
|
+
d = dict(src_dict)
|
|
40
|
+
|
|
41
|
+
def _parse_attachment(data: object) -> Union[None, Unset, str]:
|
|
42
|
+
if data is None:
|
|
43
|
+
return data
|
|
44
|
+
if isinstance(data, Unset):
|
|
45
|
+
return data
|
|
46
|
+
return cast(Union[None, Unset, str], data)
|
|
47
|
+
|
|
48
|
+
attachment = _parse_attachment(d.pop("attachment", UNSET))
|
|
49
|
+
|
|
50
|
+
order_attachment = cls(
|
|
51
|
+
attachment=attachment,
|
|
52
|
+
)
|
|
53
|
+
|
|
54
|
+
order_attachment.additional_properties = d
|
|
55
|
+
return order_attachment
|
|
56
|
+
|
|
57
|
+
@property
|
|
58
|
+
def additional_keys(self) -> list[str]:
|
|
59
|
+
return list(self.additional_properties.keys())
|
|
60
|
+
|
|
61
|
+
def __getitem__(self, key: str) -> Any:
|
|
62
|
+
return self.additional_properties[key]
|
|
63
|
+
|
|
64
|
+
def __setitem__(self, key: str, value: Any) -> None:
|
|
65
|
+
self.additional_properties[key] = value
|
|
66
|
+
|
|
67
|
+
def __delitem__(self, key: str) -> None:
|
|
68
|
+
del self.additional_properties[key]
|
|
69
|
+
|
|
70
|
+
def __contains__(self, key: str) -> bool:
|
|
71
|
+
return key in self.additional_properties
|