waldur-api-client 7.8.3__py3-none-any.whl → 7.8.4__py3-none-any.whl

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

Potentially problematic release.


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

Files changed (118) hide show
  1. waldur_api_client/api/booking_resources/booking_resources_count.py +18 -0
  2. waldur_api_client/api/booking_resources/booking_resources_list.py +18 -0
  3. waldur_api_client/api/marketplace_offering_users/marketplace_offering_users_checklist_template_count.py +125 -0
  4. waldur_api_client/api/marketplace_offering_users/marketplace_offering_users_checklist_template_retrieve.py +126 -0
  5. waldur_api_client/api/marketplace_provider_offerings/marketplace_provider_offerings_tos_stats_retrieve.py +146 -0
  6. waldur_api_client/api/marketplace_provider_resources/marketplace_provider_resources_count.py +18 -0
  7. waldur_api_client/api/marketplace_provider_resources/marketplace_provider_resources_list.py +18 -0
  8. waldur_api_client/api/marketplace_provider_resources/marketplace_provider_resources_update_options.py +168 -0
  9. waldur_api_client/api/marketplace_resources/marketplace_resources_count.py +18 -0
  10. waldur_api_client/api/marketplace_resources/marketplace_resources_list.py +18 -0
  11. waldur_api_client/api/marketplace_resources/marketplace_resources_renew.py +166 -0
  12. waldur_api_client/api/marketplace_service_providers/service_provider_checklists_summary.py +189 -0
  13. waldur_api_client/api/onboarding/__init__.py +1 -0
  14. waldur_api_client/api/onboarding/onboarding_supported_countries_retrieve.py +74 -0
  15. waldur_api_client/api/onboarding_justifications/__init__.py +1 -0
  16. waldur_api_client/api/onboarding_justifications/onboarding_justifications_attach_document.py +211 -0
  17. waldur_api_client/api/onboarding_justifications/onboarding_justifications_count.py +172 -0
  18. waldur_api_client/api/onboarding_justifications/onboarding_justifications_create.py +150 -0
  19. waldur_api_client/api/onboarding_justifications/onboarding_justifications_create_justification.py +154 -0
  20. waldur_api_client/api/onboarding_justifications/onboarding_justifications_destroy.py +89 -0
  21. waldur_api_client/api/onboarding_justifications/onboarding_justifications_list.py +175 -0
  22. waldur_api_client/api/onboarding_justifications/onboarding_justifications_partial_update.py +164 -0
  23. waldur_api_client/api/onboarding_justifications/onboarding_justifications_retrieve.py +142 -0
  24. waldur_api_client/api/onboarding_justifications/onboarding_justifications_update.py +164 -0
  25. waldur_api_client/api/onboarding_verifications/__init__.py +1 -0
  26. waldur_api_client/api/onboarding_verifications/onboarding_verifications_count.py +172 -0
  27. waldur_api_client/api/onboarding_verifications/onboarding_verifications_create.py +150 -0
  28. waldur_api_client/api/onboarding_verifications/onboarding_verifications_create_customer.py +144 -0
  29. waldur_api_client/api/onboarding_verifications/onboarding_verifications_destroy.py +89 -0
  30. waldur_api_client/api/onboarding_verifications/onboarding_verifications_list.py +175 -0
  31. waldur_api_client/api/onboarding_verifications/onboarding_verifications_partial_update.py +164 -0
  32. waldur_api_client/api/onboarding_verifications/onboarding_verifications_retrieve.py +142 -0
  33. waldur_api_client/api/onboarding_verifications/onboarding_verifications_update.py +164 -0
  34. waldur_api_client/api/onboarding_verifications/onboarding_verifications_validate_company.py +154 -0
  35. waldur_api_client/api/openstack_network_rbac_policies/openstack_network_rbac_policies_count.py +33 -0
  36. waldur_api_client/api/openstack_network_rbac_policies/openstack_network_rbac_policies_create.py +154 -0
  37. waldur_api_client/api/openstack_network_rbac_policies/openstack_network_rbac_policies_destroy.py +91 -0
  38. waldur_api_client/api/openstack_network_rbac_policies/openstack_network_rbac_policies_list.py +33 -0
  39. waldur_api_client/api/openstack_network_rbac_policies/openstack_network_rbac_policies_partial_update.py +164 -0
  40. waldur_api_client/api/openstack_network_rbac_policies/openstack_network_rbac_policies_update.py +164 -0
  41. waldur_api_client/api/openstack_networks/openstack_networks_rbac_policy_create.py +24 -22
  42. waldur_api_client/api/projects/projects_checklist_template_count.py +125 -0
  43. waldur_api_client/api/projects/projects_checklist_template_retrieve.py +126 -0
  44. waldur_api_client/api/proposal_proposals/proposal_proposals_checklist_template_count.py +125 -0
  45. waldur_api_client/api/proposal_proposals/proposal_proposals_checklist_template_retrieve.py +126 -0
  46. waldur_api_client/api/proposal_protected_calls/proposal_protected_calls_offerings_list.py +15 -0
  47. waldur_api_client/models/__init__.py +62 -4
  48. waldur_api_client/models/booking_resource.py +4 -11
  49. waldur_api_client/models/call_round.py +4 -4
  50. waldur_api_client/models/checklist_template.py +99 -0
  51. waldur_api_client/models/checklist_template_checklist.py +44 -0
  52. waldur_api_client/models/constance_settings.py +45 -0
  53. waldur_api_client/models/constance_settings_request.py +45 -0
  54. waldur_api_client/models/constance_settings_request_form.py +45 -0
  55. waldur_api_client/models/constance_settings_request_multipart.py +85 -0
  56. waldur_api_client/models/customer.py +9 -0
  57. waldur_api_client/models/customers_list_field_item.py +1 -0
  58. waldur_api_client/models/customers_retrieve_field_item.py +1 -0
  59. waldur_api_client/models/deprecated_network_rbac_policy.py +137 -0
  60. waldur_api_client/models/deprecated_network_rbac_policy_request.py +78 -0
  61. waldur_api_client/models/event_types_enum.py +1 -0
  62. waldur_api_client/models/marketplace_service_providers_projects_list_field_item.py +1 -0
  63. waldur_api_client/models/merged_plugin_options.py +18 -0
  64. waldur_api_client/models/merged_plugin_options_request.py +18 -0
  65. waldur_api_client/models/nested_round.py +5 -5
  66. waldur_api_client/models/network_rbac_policy_request.py +8 -0
  67. waldur_api_client/models/notification.py +9 -9
  68. waldur_api_client/models/{notification_context_fields.py → notification_context_schema.py} +6 -6
  69. waldur_api_client/models/notification_template_detail_serializers.py +9 -3
  70. waldur_api_client/models/offering_component.py +79 -0
  71. waldur_api_client/models/offering_component_request.py +80 -0
  72. waldur_api_client/models/onboarding_company_validation_request_request.py +88 -0
  73. waldur_api_client/models/onboarding_justification.py +183 -0
  74. waldur_api_client/models/onboarding_justification_create_request.py +68 -0
  75. waldur_api_client/models/onboarding_justification_documentation.py +108 -0
  76. waldur_api_client/models/onboarding_justification_documentation_request.py +84 -0
  77. waldur_api_client/models/onboarding_justification_documentation_request_form.py +84 -0
  78. waldur_api_client/models/onboarding_justification_documentation_request_multipart.py +98 -0
  79. waldur_api_client/models/onboarding_justification_request.py +75 -0
  80. waldur_api_client/models/onboarding_verification.py +250 -0
  81. waldur_api_client/models/onboarding_verification_request.py +128 -0
  82. waldur_api_client/models/onboarding_verification_status_enum.py +12 -0
  83. waldur_api_client/models/open_stack_create_floating_ip_request.py +20 -1
  84. waldur_api_client/models/order_create.py +4 -4
  85. waldur_api_client/models/order_details.py +4 -11
  86. waldur_api_client/models/patched_network_rbac_policy_request.py +85 -0
  87. waldur_api_client/models/patched_onboarding_justification_request.py +77 -0
  88. waldur_api_client/models/patched_onboarding_verification_request.py +128 -0
  89. waldur_api_client/models/patched_project_credit_request.py +13 -0
  90. waldur_api_client/models/patched_project_request.py +1 -2
  91. waldur_api_client/models/patched_project_request_form.py +1 -2
  92. waldur_api_client/models/patched_project_request_multipart.py +1 -2
  93. waldur_api_client/models/project.py +10 -2
  94. waldur_api_client/models/project_credit.py +13 -0
  95. waldur_api_client/models/project_credit_request.py +13 -0
  96. waldur_api_client/models/project_request.py +1 -2
  97. waldur_api_client/models/project_request_form.py +1 -2
  98. waldur_api_client/models/project_request_multipart.py +1 -2
  99. waldur_api_client/models/projects_list_field_item.py +1 -0
  100. waldur_api_client/models/projects_retrieve_field_item.py +1 -0
  101. waldur_api_client/models/protected_round.py +4 -4
  102. waldur_api_client/models/question.py +102 -0
  103. waldur_api_client/models/question_options.py +79 -0
  104. waldur_api_client/models/resource.py +4 -11
  105. waldur_api_client/models/resource_renew_request.py +83 -0
  106. waldur_api_client/models/resource_renew_request_limits.py +44 -0
  107. waldur_api_client/models/{status_enum.py → round_status.py} +1 -1
  108. waldur_api_client/models/service_provider_checklist_summary.py +98 -0
  109. waldur_api_client/models/time_series_to_s_data.py +69 -0
  110. waldur_api_client/models/to_s_consent_dashboard.py +155 -0
  111. waldur_api_client/models/update_offering_component_request.py +79 -0
  112. waldur_api_client/models/validation_decision_enum.py +10 -0
  113. waldur_api_client/models/validation_method_enum.py +8 -0
  114. waldur_api_client/models/version_adoption.py +67 -0
  115. {waldur_api_client-7.8.3.dist-info → waldur_api_client-7.8.4.dist-info}/METADATA +1 -1
  116. {waldur_api_client-7.8.3.dist-info → waldur_api_client-7.8.4.dist-info}/RECORD +118 -54
  117. {waldur_api_client-7.8.3.dist-info → waldur_api_client-7.8.4.dist-info}/WHEEL +0 -0
  118. {waldur_api_client-7.8.3.dist-info → waldur_api_client-7.8.4.dist-info}/licenses/LICENSE +0 -0
@@ -0,0 +1,250 @@
1
+ import datetime
2
+ from collections.abc import Mapping
3
+ from typing import Any, TypeVar, Union, cast
4
+ from uuid import UUID
5
+
6
+ from attrs import define as _attrs_define
7
+ from attrs import field as _attrs_field
8
+ from dateutil.parser import isoparse
9
+
10
+ from ..models.onboarding_verification_status_enum import OnboardingVerificationStatusEnum
11
+ from ..models.validation_method_enum import ValidationMethodEnum
12
+ from ..types import UNSET, Unset
13
+
14
+ T = TypeVar("T", bound="OnboardingVerification")
15
+
16
+
17
+ @_attrs_define
18
+ class OnboardingVerification:
19
+ """
20
+ Attributes:
21
+ uuid (UUID):
22
+ user (int): User requesting company onboarding
23
+ country (str): ISO country code (e.g., 'EE' for Estonia)
24
+ legal_person_identifier (str): Official company registration code
25
+ status (OnboardingVerificationStatusEnum):
26
+ validation_method (ValidationMethodEnum):
27
+ verified_user_roles (Any): Roles the user has in the company
28
+ verified_company_data (Any): Company information retrieved during validation
29
+ raw_response (Any): Raw API response for debugging and auditing
30
+ error_traceback (str):
31
+ error_message (str):
32
+ validated_at (Union[None, datetime.datetime]): When validation was completed
33
+ customer (Union[None, int]): Customer created after successful validation
34
+ created (datetime.datetime):
35
+ modified (datetime.datetime):
36
+ legal_name (Union[Unset, str]): Claimed company name (optional, for reference)
37
+ user_submitted_customer_metadata (Union[Unset, Any]): Additional customer metadata submitted by user for manual
38
+ verification cases. Should contain valid Customer model fields.
39
+ expires_at (Union[None, Unset, datetime.datetime]): When this verification expires
40
+ """
41
+
42
+ uuid: UUID
43
+ user: int
44
+ country: str
45
+ legal_person_identifier: str
46
+ status: OnboardingVerificationStatusEnum
47
+ validation_method: ValidationMethodEnum
48
+ verified_user_roles: Any
49
+ verified_company_data: Any
50
+ raw_response: Any
51
+ error_traceback: str
52
+ error_message: str
53
+ validated_at: Union[None, datetime.datetime]
54
+ customer: Union[None, int]
55
+ created: datetime.datetime
56
+ modified: datetime.datetime
57
+ legal_name: Union[Unset, str] = UNSET
58
+ user_submitted_customer_metadata: Union[Unset, Any] = UNSET
59
+ expires_at: Union[None, Unset, datetime.datetime] = UNSET
60
+ additional_properties: dict[str, Any] = _attrs_field(init=False, factory=dict)
61
+
62
+ def to_dict(self) -> dict[str, Any]:
63
+ uuid = str(self.uuid)
64
+
65
+ user = self.user
66
+
67
+ country = self.country
68
+
69
+ legal_person_identifier = self.legal_person_identifier
70
+
71
+ status = self.status.value
72
+
73
+ validation_method = self.validation_method.value
74
+
75
+ verified_user_roles = self.verified_user_roles
76
+
77
+ verified_company_data = self.verified_company_data
78
+
79
+ raw_response = self.raw_response
80
+
81
+ error_traceback = self.error_traceback
82
+
83
+ error_message = self.error_message
84
+
85
+ validated_at: Union[None, str]
86
+ if isinstance(self.validated_at, datetime.datetime):
87
+ validated_at = self.validated_at.isoformat()
88
+ else:
89
+ validated_at = self.validated_at
90
+
91
+ customer: Union[None, int]
92
+ customer = self.customer
93
+
94
+ created = self.created.isoformat()
95
+
96
+ modified = self.modified.isoformat()
97
+
98
+ legal_name = self.legal_name
99
+
100
+ user_submitted_customer_metadata = self.user_submitted_customer_metadata
101
+
102
+ expires_at: Union[None, Unset, str]
103
+ if isinstance(self.expires_at, Unset):
104
+ expires_at = UNSET
105
+ elif isinstance(self.expires_at, datetime.datetime):
106
+ expires_at = self.expires_at.isoformat()
107
+ else:
108
+ expires_at = self.expires_at
109
+
110
+ field_dict: dict[str, Any] = {}
111
+ field_dict.update(self.additional_properties)
112
+ field_dict.update(
113
+ {
114
+ "uuid": uuid,
115
+ "user": user,
116
+ "country": country,
117
+ "legal_person_identifier": legal_person_identifier,
118
+ "status": status,
119
+ "validation_method": validation_method,
120
+ "verified_user_roles": verified_user_roles,
121
+ "verified_company_data": verified_company_data,
122
+ "raw_response": raw_response,
123
+ "error_traceback": error_traceback,
124
+ "error_message": error_message,
125
+ "validated_at": validated_at,
126
+ "customer": customer,
127
+ "created": created,
128
+ "modified": modified,
129
+ }
130
+ )
131
+ if legal_name is not UNSET:
132
+ field_dict["legal_name"] = legal_name
133
+ if user_submitted_customer_metadata is not UNSET:
134
+ field_dict["user_submitted_customer_metadata"] = user_submitted_customer_metadata
135
+ if expires_at is not UNSET:
136
+ field_dict["expires_at"] = expires_at
137
+
138
+ return field_dict
139
+
140
+ @classmethod
141
+ def from_dict(cls: type[T], src_dict: Mapping[str, Any]) -> T:
142
+ d = dict(src_dict)
143
+ uuid = UUID(d.pop("uuid"))
144
+
145
+ user = d.pop("user")
146
+
147
+ country = d.pop("country")
148
+
149
+ legal_person_identifier = d.pop("legal_person_identifier")
150
+
151
+ status = OnboardingVerificationStatusEnum(d.pop("status"))
152
+
153
+ validation_method = ValidationMethodEnum(d.pop("validation_method"))
154
+
155
+ verified_user_roles = d.pop("verified_user_roles")
156
+
157
+ verified_company_data = d.pop("verified_company_data")
158
+
159
+ raw_response = d.pop("raw_response")
160
+
161
+ error_traceback = d.pop("error_traceback")
162
+
163
+ error_message = d.pop("error_message")
164
+
165
+ def _parse_validated_at(data: object) -> Union[None, datetime.datetime]:
166
+ if data is None:
167
+ return data
168
+ try:
169
+ if not isinstance(data, str):
170
+ raise TypeError()
171
+ validated_at_type_0 = isoparse(data)
172
+
173
+ return validated_at_type_0
174
+ except: # noqa: E722
175
+ pass
176
+ return cast(Union[None, datetime.datetime], data)
177
+
178
+ validated_at = _parse_validated_at(d.pop("validated_at"))
179
+
180
+ def _parse_customer(data: object) -> Union[None, int]:
181
+ if data is None:
182
+ return data
183
+ return cast(Union[None, int], data)
184
+
185
+ customer = _parse_customer(d.pop("customer"))
186
+
187
+ created = isoparse(d.pop("created"))
188
+
189
+ modified = isoparse(d.pop("modified"))
190
+
191
+ legal_name = d.pop("legal_name", UNSET)
192
+
193
+ user_submitted_customer_metadata = d.pop("user_submitted_customer_metadata", UNSET)
194
+
195
+ def _parse_expires_at(data: object) -> Union[None, Unset, datetime.datetime]:
196
+ if data is None:
197
+ return data
198
+ if isinstance(data, Unset):
199
+ return data
200
+ try:
201
+ if not isinstance(data, str):
202
+ raise TypeError()
203
+ expires_at_type_0 = isoparse(data)
204
+
205
+ return expires_at_type_0
206
+ except: # noqa: E722
207
+ pass
208
+ return cast(Union[None, Unset, datetime.datetime], data)
209
+
210
+ expires_at = _parse_expires_at(d.pop("expires_at", UNSET))
211
+
212
+ onboarding_verification = cls(
213
+ uuid=uuid,
214
+ user=user,
215
+ country=country,
216
+ legal_person_identifier=legal_person_identifier,
217
+ status=status,
218
+ validation_method=validation_method,
219
+ verified_user_roles=verified_user_roles,
220
+ verified_company_data=verified_company_data,
221
+ raw_response=raw_response,
222
+ error_traceback=error_traceback,
223
+ error_message=error_message,
224
+ validated_at=validated_at,
225
+ customer=customer,
226
+ created=created,
227
+ modified=modified,
228
+ legal_name=legal_name,
229
+ user_submitted_customer_metadata=user_submitted_customer_metadata,
230
+ expires_at=expires_at,
231
+ )
232
+
233
+ onboarding_verification.additional_properties = d
234
+ return onboarding_verification
235
+
236
+ @property
237
+ def additional_keys(self) -> list[str]:
238
+ return list(self.additional_properties.keys())
239
+
240
+ def __getitem__(self, key: str) -> Any:
241
+ return self.additional_properties[key]
242
+
243
+ def __setitem__(self, key: str, value: Any) -> None:
244
+ self.additional_properties[key] = value
245
+
246
+ def __delitem__(self, key: str) -> None:
247
+ del self.additional_properties[key]
248
+
249
+ def __contains__(self, key: str) -> bool:
250
+ return key in self.additional_properties
@@ -0,0 +1,128 @@
1
+ import datetime
2
+ from collections.abc import Mapping
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
+ from dateutil.parser import isoparse
8
+
9
+ from ..types import UNSET, Unset
10
+
11
+ T = TypeVar("T", bound="OnboardingVerificationRequest")
12
+
13
+
14
+ @_attrs_define
15
+ class OnboardingVerificationRequest:
16
+ """
17
+ Attributes:
18
+ user (int): User requesting company onboarding
19
+ country (str): ISO country code (e.g., 'EE' for Estonia)
20
+ legal_person_identifier (str): Official company registration code
21
+ legal_name (Union[Unset, str]): Claimed company name (optional, for reference)
22
+ user_submitted_customer_metadata (Union[Unset, Any]): Additional customer metadata submitted by user for manual
23
+ verification cases. Should contain valid Customer model fields.
24
+ expires_at (Union[None, Unset, datetime.datetime]): When this verification expires
25
+ """
26
+
27
+ user: int
28
+ country: str
29
+ legal_person_identifier: str
30
+ legal_name: Union[Unset, str] = UNSET
31
+ user_submitted_customer_metadata: Union[Unset, Any] = UNSET
32
+ expires_at: Union[None, Unset, datetime.datetime] = UNSET
33
+ additional_properties: dict[str, Any] = _attrs_field(init=False, factory=dict)
34
+
35
+ def to_dict(self) -> dict[str, Any]:
36
+ user = self.user
37
+
38
+ country = self.country
39
+
40
+ legal_person_identifier = self.legal_person_identifier
41
+
42
+ legal_name = self.legal_name
43
+
44
+ user_submitted_customer_metadata = self.user_submitted_customer_metadata
45
+
46
+ expires_at: Union[None, Unset, str]
47
+ if isinstance(self.expires_at, Unset):
48
+ expires_at = UNSET
49
+ elif isinstance(self.expires_at, datetime.datetime):
50
+ expires_at = self.expires_at.isoformat()
51
+ else:
52
+ expires_at = self.expires_at
53
+
54
+ field_dict: dict[str, Any] = {}
55
+ field_dict.update(self.additional_properties)
56
+ field_dict.update(
57
+ {
58
+ "user": user,
59
+ "country": country,
60
+ "legal_person_identifier": legal_person_identifier,
61
+ }
62
+ )
63
+ if legal_name is not UNSET:
64
+ field_dict["legal_name"] = legal_name
65
+ if user_submitted_customer_metadata is not UNSET:
66
+ field_dict["user_submitted_customer_metadata"] = user_submitted_customer_metadata
67
+ if expires_at is not UNSET:
68
+ field_dict["expires_at"] = expires_at
69
+
70
+ return field_dict
71
+
72
+ @classmethod
73
+ def from_dict(cls: type[T], src_dict: Mapping[str, Any]) -> T:
74
+ d = dict(src_dict)
75
+ user = d.pop("user")
76
+
77
+ country = d.pop("country")
78
+
79
+ legal_person_identifier = d.pop("legal_person_identifier")
80
+
81
+ legal_name = d.pop("legal_name", UNSET)
82
+
83
+ user_submitted_customer_metadata = d.pop("user_submitted_customer_metadata", UNSET)
84
+
85
+ def _parse_expires_at(data: object) -> Union[None, Unset, datetime.datetime]:
86
+ if data is None:
87
+ return data
88
+ if isinstance(data, Unset):
89
+ return data
90
+ try:
91
+ if not isinstance(data, str):
92
+ raise TypeError()
93
+ expires_at_type_0 = isoparse(data)
94
+
95
+ return expires_at_type_0
96
+ except: # noqa: E722
97
+ pass
98
+ return cast(Union[None, Unset, datetime.datetime], data)
99
+
100
+ expires_at = _parse_expires_at(d.pop("expires_at", UNSET))
101
+
102
+ onboarding_verification_request = cls(
103
+ user=user,
104
+ country=country,
105
+ legal_person_identifier=legal_person_identifier,
106
+ legal_name=legal_name,
107
+ user_submitted_customer_metadata=user_submitted_customer_metadata,
108
+ expires_at=expires_at,
109
+ )
110
+
111
+ onboarding_verification_request.additional_properties = d
112
+ return onboarding_verification_request
113
+
114
+ @property
115
+ def additional_keys(self) -> list[str]:
116
+ return list(self.additional_properties.keys())
117
+
118
+ def __getitem__(self, key: str) -> Any:
119
+ return self.additional_properties[key]
120
+
121
+ def __setitem__(self, key: str, value: Any) -> None:
122
+ self.additional_properties[key] = value
123
+
124
+ def __delitem__(self, key: str) -> None:
125
+ del self.additional_properties[key]
126
+
127
+ def __contains__(self, key: str) -> bool:
128
+ return key in self.additional_properties
@@ -0,0 +1,12 @@
1
+ from enum import Enum
2
+
3
+
4
+ class OnboardingVerificationStatusEnum(str, Enum):
5
+ ESCALATED = "escalated"
6
+ EXPIRED = "expired"
7
+ FAILED = "failed"
8
+ PENDING = "pending"
9
+ VERIFIED = "verified"
10
+
11
+ def __str__(self) -> str:
12
+ return str(self.value)
@@ -1,5 +1,5 @@
1
1
  from collections.abc import Mapping
2
- from typing import Any, TypeVar, Union
2
+ from typing import Any, TypeVar, Union, cast
3
3
 
4
4
  from attrs import define as _attrs_define
5
5
  from attrs import field as _attrs_field
@@ -15,10 +15,13 @@ class OpenStackCreateFloatingIPRequest:
15
15
  Attributes:
16
16
  subnet (str):
17
17
  url (Union[Unset, str]):
18
+ ip_address (Union[Unset, str]): Existing floating IP address in selected OpenStack tenant to be assigned to new
19
+ virtual machine
18
20
  """
19
21
 
20
22
  subnet: str
21
23
  url: Union[Unset, str] = UNSET
24
+ ip_address: Union[Unset, str] = UNSET
22
25
  additional_properties: dict[str, Any] = _attrs_field(init=False, factory=dict)
23
26
 
24
27
  def to_dict(self) -> dict[str, Any]:
@@ -26,6 +29,12 @@ class OpenStackCreateFloatingIPRequest:
26
29
 
27
30
  url = self.url
28
31
 
32
+ ip_address: Union[Unset, str]
33
+ if isinstance(self.ip_address, Unset):
34
+ ip_address = UNSET
35
+ else:
36
+ ip_address = self.ip_address
37
+
29
38
  field_dict: dict[str, Any] = {}
30
39
  field_dict.update(self.additional_properties)
31
40
  field_dict.update(
@@ -35,6 +44,8 @@ class OpenStackCreateFloatingIPRequest:
35
44
  )
36
45
  if url is not UNSET:
37
46
  field_dict["url"] = url
47
+ if ip_address is not UNSET:
48
+ field_dict["ip_address"] = ip_address
38
49
 
39
50
  return field_dict
40
51
 
@@ -45,9 +56,17 @@ class OpenStackCreateFloatingIPRequest:
45
56
 
46
57
  url = d.pop("url", UNSET)
47
58
 
59
+ def _parse_ip_address(data: object) -> Union[Unset, str]:
60
+ if isinstance(data, Unset):
61
+ return data
62
+ return cast(Union[Unset, str], data)
63
+
64
+ ip_address = _parse_ip_address(d.pop("ip_address", UNSET))
65
+
48
66
  open_stack_create_floating_ip_request = cls(
49
67
  subnet=subnet,
50
68
  url=url,
69
+ ip_address=ip_address,
51
70
  )
52
71
 
53
72
  open_stack_create_floating_ip_request.additional_properties = d
@@ -35,7 +35,7 @@ class OrderCreate:
35
35
  offering_plugin_options (Any): Public data used by specific plugin, such as storage mode for OpenStack.
36
36
  provider_name (str):
37
37
  provider_uuid (UUID):
38
- provider_slug (UUID):
38
+ provider_slug (str):
39
39
  category_title (str):
40
40
  category_uuid (UUID):
41
41
  category_icon (str):
@@ -93,7 +93,7 @@ class OrderCreate:
93
93
  offering_plugin_options: Any
94
94
  provider_name: str
95
95
  provider_uuid: UUID
96
- provider_slug: UUID
96
+ provider_slug: str
97
97
  category_title: str
98
98
  category_uuid: UUID
99
99
  category_icon: str
@@ -162,7 +162,7 @@ class OrderCreate:
162
162
 
163
163
  provider_uuid = str(self.provider_uuid)
164
164
 
165
- provider_slug = str(self.provider_slug)
165
+ provider_slug = self.provider_slug
166
166
 
167
167
  category_title = self.category_title
168
168
 
@@ -384,7 +384,7 @@ class OrderCreate:
384
384
 
385
385
  provider_uuid = UUID(d.pop("provider_uuid"))
386
386
 
387
- provider_slug = UUID(d.pop("provider_slug"))
387
+ provider_slug = d.pop("provider_slug")
388
388
 
389
389
  category_title = d.pop("category_title")
390
390
 
@@ -37,7 +37,7 @@ class OrderDetails:
37
37
  OpenStack.
38
38
  provider_name (Union[Unset, str]):
39
39
  provider_uuid (Union[Unset, UUID]):
40
- provider_slug (Union[Unset, UUID]):
40
+ provider_slug (Union[Unset, str]):
41
41
  category_title (Union[Unset, str]):
42
42
  category_uuid (Union[Unset, UUID]):
43
43
  category_icon (Union[Unset, str]):
@@ -114,7 +114,7 @@ class OrderDetails:
114
114
  offering_plugin_options: Union[Unset, Any] = UNSET
115
115
  provider_name: Union[Unset, str] = UNSET
116
116
  provider_uuid: Union[Unset, UUID] = UNSET
117
- provider_slug: Union[Unset, UUID] = UNSET
117
+ provider_slug: Union[Unset, str] = UNSET
118
118
  category_title: Union[Unset, str] = UNSET
119
119
  category_uuid: Union[Unset, UUID] = UNSET
120
120
  category_icon: Union[Unset, str] = UNSET
@@ -205,9 +205,7 @@ class OrderDetails:
205
205
  if not isinstance(self.provider_uuid, Unset):
206
206
  provider_uuid = str(self.provider_uuid)
207
207
 
208
- provider_slug: Union[Unset, str] = UNSET
209
- if not isinstance(self.provider_slug, Unset):
210
- provider_slug = str(self.provider_slug)
208
+ provider_slug = self.provider_slug
211
209
 
212
210
  category_title = self.category_title
213
211
 
@@ -659,12 +657,7 @@ class OrderDetails:
659
657
  else:
660
658
  provider_uuid = UUID(_provider_uuid)
661
659
 
662
- _provider_slug = d.pop("provider_slug", UNSET)
663
- provider_slug: Union[Unset, UUID]
664
- if isinstance(_provider_slug, Unset):
665
- provider_slug = UNSET
666
- else:
667
- provider_slug = UUID(_provider_slug)
660
+ provider_slug = d.pop("provider_slug", UNSET)
668
661
 
669
662
  category_title = d.pop("category_title", UNSET)
670
663
 
@@ -0,0 +1,85 @@
1
+ from collections.abc import Mapping
2
+ from typing import Any, TypeVar, Union
3
+
4
+ from attrs import define as _attrs_define
5
+ from attrs import field as _attrs_field
6
+
7
+ from ..models.policy_type_enum import PolicyTypeEnum
8
+ from ..types import UNSET, Unset
9
+
10
+ T = TypeVar("T", bound="PatchedNetworkRBACPolicyRequest")
11
+
12
+
13
+ @_attrs_define
14
+ class PatchedNetworkRBACPolicyRequest:
15
+ """
16
+ Attributes:
17
+ network (Union[Unset, str]):
18
+ target_tenant (Union[Unset, str]):
19
+ policy_type (Union[Unset, PolicyTypeEnum]): Default: PolicyTypeEnum.ACCESS_AS_SHARED.
20
+ """
21
+
22
+ network: Union[Unset, str] = UNSET
23
+ target_tenant: Union[Unset, str] = UNSET
24
+ policy_type: Union[Unset, PolicyTypeEnum] = PolicyTypeEnum.ACCESS_AS_SHARED
25
+ additional_properties: dict[str, Any] = _attrs_field(init=False, factory=dict)
26
+
27
+ def to_dict(self) -> dict[str, Any]:
28
+ network = self.network
29
+
30
+ target_tenant = self.target_tenant
31
+
32
+ policy_type: Union[Unset, str] = UNSET
33
+ if not isinstance(self.policy_type, Unset):
34
+ policy_type = self.policy_type.value
35
+
36
+ field_dict: dict[str, Any] = {}
37
+ field_dict.update(self.additional_properties)
38
+ field_dict.update({})
39
+ if network is not UNSET:
40
+ field_dict["network"] = network
41
+ if target_tenant is not UNSET:
42
+ field_dict["target_tenant"] = target_tenant
43
+ if policy_type is not UNSET:
44
+ field_dict["policy_type"] = policy_type
45
+
46
+ return field_dict
47
+
48
+ @classmethod
49
+ def from_dict(cls: type[T], src_dict: Mapping[str, Any]) -> T:
50
+ d = dict(src_dict)
51
+ network = d.pop("network", UNSET)
52
+
53
+ target_tenant = d.pop("target_tenant", UNSET)
54
+
55
+ _policy_type = d.pop("policy_type", UNSET)
56
+ policy_type: Union[Unset, PolicyTypeEnum]
57
+ if isinstance(_policy_type, Unset):
58
+ policy_type = UNSET
59
+ else:
60
+ policy_type = PolicyTypeEnum(_policy_type)
61
+
62
+ patched_network_rbac_policy_request = cls(
63
+ network=network,
64
+ target_tenant=target_tenant,
65
+ policy_type=policy_type,
66
+ )
67
+
68
+ patched_network_rbac_policy_request.additional_properties = d
69
+ return patched_network_rbac_policy_request
70
+
71
+ @property
72
+ def additional_keys(self) -> list[str]:
73
+ return list(self.additional_properties.keys())
74
+
75
+ def __getitem__(self, key: str) -> Any:
76
+ return self.additional_properties[key]
77
+
78
+ def __setitem__(self, key: str, value: Any) -> None:
79
+ self.additional_properties[key] = value
80
+
81
+ def __delitem__(self, key: str) -> None:
82
+ del self.additional_properties[key]
83
+
84
+ def __contains__(self, key: str) -> bool:
85
+ return key in self.additional_properties
@@ -0,0 +1,77 @@
1
+ from collections.abc import Mapping
2
+ from typing import Any, TypeVar, Union
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="PatchedOnboardingJustificationRequest")
10
+
11
+
12
+ @_attrs_define
13
+ class PatchedOnboardingJustificationRequest:
14
+ """
15
+ Attributes:
16
+ verification (Union[Unset, int]):
17
+ user (Union[Unset, int]):
18
+ user_justification (Union[Unset, str]): User's explanation for why they should be authorized
19
+ """
20
+
21
+ verification: Union[Unset, int] = UNSET
22
+ user: Union[Unset, int] = UNSET
23
+ user_justification: Union[Unset, str] = UNSET
24
+ additional_properties: dict[str, Any] = _attrs_field(init=False, factory=dict)
25
+
26
+ def to_dict(self) -> dict[str, Any]:
27
+ verification = self.verification
28
+
29
+ user = self.user
30
+
31
+ user_justification = self.user_justification
32
+
33
+ field_dict: dict[str, Any] = {}
34
+ field_dict.update(self.additional_properties)
35
+ field_dict.update({})
36
+ if verification is not UNSET:
37
+ field_dict["verification"] = verification
38
+ if user is not UNSET:
39
+ field_dict["user"] = user
40
+ if user_justification is not UNSET:
41
+ field_dict["user_justification"] = user_justification
42
+
43
+ return field_dict
44
+
45
+ @classmethod
46
+ def from_dict(cls: type[T], src_dict: Mapping[str, Any]) -> T:
47
+ d = dict(src_dict)
48
+ verification = d.pop("verification", UNSET)
49
+
50
+ user = d.pop("user", UNSET)
51
+
52
+ user_justification = d.pop("user_justification", UNSET)
53
+
54
+ patched_onboarding_justification_request = cls(
55
+ verification=verification,
56
+ user=user,
57
+ user_justification=user_justification,
58
+ )
59
+
60
+ patched_onboarding_justification_request.additional_properties = d
61
+ return patched_onboarding_justification_request
62
+
63
+ @property
64
+ def additional_keys(self) -> list[str]:
65
+ return list(self.additional_properties.keys())
66
+
67
+ def __getitem__(self, key: str) -> Any:
68
+ return self.additional_properties[key]
69
+
70
+ def __setitem__(self, key: str, value: Any) -> None:
71
+ self.additional_properties[key] = value
72
+
73
+ def __delitem__(self, key: str) -> None:
74
+ del self.additional_properties[key]
75
+
76
+ def __contains__(self, key: str) -> bool:
77
+ return key in self.additional_properties