waldur-api-client 7.6.7__py3-none-any.whl → 7.6.9__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/backend_resource_requests/__init__.py +1 -0
- waldur_api_client/api/backend_resource_requests/backend_resource_requests_create.py +150 -0
- waldur_api_client/api/backend_resource_requests/backend_resource_requests_list.py +313 -0
- waldur_api_client/api/backend_resource_requests/backend_resource_requests_retrieve.py +142 -0
- waldur_api_client/api/backend_resource_requests/backend_resource_requests_set_done.py +144 -0
- waldur_api_client/api/backend_resource_requests/backend_resource_requests_set_erred.py +166 -0
- waldur_api_client/api/backend_resource_requests/backend_resource_requests_start_processing.py +146 -0
- waldur_api_client/api/backend_resources/__init__.py +1 -0
- waldur_api_client/api/backend_resources/backend_resources_create.py +150 -0
- waldur_api_client/api/backend_resources/backend_resources_destroy.py +89 -0
- waldur_api_client/api/backend_resources/backend_resources_import_resource.py +162 -0
- waldur_api_client/api/backend_resources/backend_resources_list.py +315 -0
- waldur_api_client/api/backend_resources/backend_resources_retrieve.py +142 -0
- waldur_api_client/api/invoices/invoices_list.py +0 -30
- waldur_api_client/api/invoices/invoices_stats_list.py +0 -30
- waldur_api_client/api/marketplace_maintenance_announcement_offerings/__init__.py +1 -0
- waldur_api_client/api/marketplace_maintenance_announcement_offerings/marketplace_maintenance_announcement_offerings_create.py +152 -0
- waldur_api_client/api/marketplace_maintenance_announcement_offerings/marketplace_maintenance_announcement_offerings_destroy.py +89 -0
- waldur_api_client/api/marketplace_maintenance_announcement_offerings/marketplace_maintenance_announcement_offerings_list.py +175 -0
- waldur_api_client/api/marketplace_maintenance_announcement_offerings/marketplace_maintenance_announcement_offerings_partial_update.py +166 -0
- waldur_api_client/api/marketplace_maintenance_announcement_offerings/marketplace_maintenance_announcement_offerings_retrieve.py +144 -0
- waldur_api_client/api/marketplace_maintenance_announcement_offerings/marketplace_maintenance_announcement_offerings_update.py +166 -0
- waldur_api_client/api/marketplace_maintenance_announcement_template_offerings/__init__.py +1 -0
- waldur_api_client/api/marketplace_maintenance_announcement_template_offerings/marketplace_maintenance_announcement_template_offerings_create.py +152 -0
- waldur_api_client/api/marketplace_maintenance_announcement_template_offerings/marketplace_maintenance_announcement_template_offerings_destroy.py +89 -0
- waldur_api_client/api/marketplace_maintenance_announcement_template_offerings/marketplace_maintenance_announcement_template_offerings_list.py +175 -0
- waldur_api_client/api/marketplace_maintenance_announcement_template_offerings/marketplace_maintenance_announcement_template_offerings_partial_update.py +168 -0
- waldur_api_client/api/marketplace_maintenance_announcement_template_offerings/marketplace_maintenance_announcement_template_offerings_retrieve.py +144 -0
- waldur_api_client/api/marketplace_maintenance_announcement_template_offerings/marketplace_maintenance_announcement_template_offerings_update.py +166 -0
- waldur_api_client/api/marketplace_maintenance_announcements/__init__.py +1 -0
- waldur_api_client/api/marketplace_maintenance_announcements/marketplace_maintenance_announcements_create.py +150 -0
- waldur_api_client/api/marketplace_maintenance_announcements/marketplace_maintenance_announcements_destroy.py +89 -0
- waldur_api_client/api/marketplace_maintenance_announcements/marketplace_maintenance_announcements_list.py +175 -0
- waldur_api_client/api/marketplace_maintenance_announcements/marketplace_maintenance_announcements_partial_update.py +164 -0
- waldur_api_client/api/marketplace_maintenance_announcements/marketplace_maintenance_announcements_retrieve.py +142 -0
- waldur_api_client/api/marketplace_maintenance_announcements/marketplace_maintenance_announcements_update.py +164 -0
- waldur_api_client/api/marketplace_maintenance_announcements_template/__init__.py +1 -0
- waldur_api_client/api/marketplace_maintenance_announcements_template/marketplace_maintenance_announcements_template_create.py +152 -0
- waldur_api_client/api/marketplace_maintenance_announcements_template/marketplace_maintenance_announcements_template_destroy.py +89 -0
- waldur_api_client/api/marketplace_maintenance_announcements_template/marketplace_maintenance_announcements_template_list.py +175 -0
- waldur_api_client/api/marketplace_maintenance_announcements_template/marketplace_maintenance_announcements_template_partial_update.py +166 -0
- waldur_api_client/api/marketplace_maintenance_announcements_template/marketplace_maintenance_announcements_template_retrieve.py +144 -0
- waldur_api_client/api/marketplace_maintenance_announcements_template/marketplace_maintenance_announcements_template_update.py +166 -0
- waldur_api_client/api/marketplace_provider_offerings/marketplace_provider_offerings_update_offering_component.py +6 -6
- waldur_api_client/api/marketplace_service_providers/marketplace_service_providers_customer_projects_list.py +15 -0
- waldur_api_client/api/marketplace_service_providers/marketplace_service_providers_projects_list.py +15 -0
- waldur_api_client/api/openstack_volume_types/openstack_volume_types_names_retrieve.py +118 -0
- waldur_api_client/api/projects/projects_list.py +15 -0
- waldur_api_client/models/__init__.py +60 -2
- waldur_api_client/models/backend_resource.py +162 -0
- waldur_api_client/models/backend_resource_import_request.py +67 -0
- waldur_api_client/models/backend_resource_req.py +162 -0
- waldur_api_client/models/backend_resource_req_request.py +60 -0
- waldur_api_client/models/backend_resource_req_state_enum.py +11 -0
- waldur_api_client/models/backend_resource_request.py +96 -0
- waldur_api_client/models/backend_resource_request_set_erred_request.py +68 -0
- waldur_api_client/models/backend_resource_requests_list_o_item.py +9 -0
- waldur_api_client/models/backend_resource_requests_list_state_item.py +11 -0
- waldur_api_client/models/{order_details_attributes.py → backend_resource_requests_set_done_response_200.py} +6 -6
- waldur_api_client/models/backend_resource_requests_set_erred_response_200.py +44 -0
- waldur_api_client/models/backend_resource_requests_start_processing_response_200.py +44 -0
- waldur_api_client/models/backend_resources_list_o_item.py +9 -0
- waldur_api_client/models/constance_settings.py +22 -0
- waldur_api_client/models/constance_settings_request.py +22 -0
- waldur_api_client/models/event_types_enum.py +4 -0
- waldur_api_client/models/impact_level_enum.py +11 -0
- waldur_api_client/models/maintenance_announcement.py +225 -0
- waldur_api_client/models/maintenance_announcement_offering.py +112 -0
- waldur_api_client/models/maintenance_announcement_offering_request.py +95 -0
- waldur_api_client/models/maintenance_announcement_offering_template.py +112 -0
- waldur_api_client/models/maintenance_announcement_offering_template_request.py +95 -0
- waldur_api_client/models/maintenance_announcement_request.py +113 -0
- waldur_api_client/models/maintenance_announcement_state_enum.py +12 -0
- waldur_api_client/models/maintenance_announcement_template.py +134 -0
- waldur_api_client/models/maintenance_announcement_template_request.py +95 -0
- waldur_api_client/models/maintenance_type_enum.py +12 -0
- waldur_api_client/models/merged_plugin_options.py +21 -1
- waldur_api_client/models/merged_plugin_options_request.py +21 -1
- waldur_api_client/models/offering_component.py +15 -4
- waldur_api_client/models/order_details.py +4 -14
- waldur_api_client/models/patched_maintenance_announcement_offering_request.py +94 -0
- waldur_api_client/models/patched_maintenance_announcement_offering_template_request.py +94 -0
- waldur_api_client/models/patched_maintenance_announcement_request.py +128 -0
- waldur_api_client/models/patched_maintenance_announcement_template_request.py +94 -0
- waldur_api_client/models/update_offering_component_request.py +274 -0
- waldur_api_client/models/user_agreement.py +9 -11
- waldur_api_client/models/user_agreement_request.py +9 -11
- {waldur_api_client-7.6.7.dist-info → waldur_api_client-7.6.9.dist-info}/METADATA +1 -1
- {waldur_api_client-7.6.7.dist-info → waldur_api_client-7.6.9.dist-info}/RECORD +91 -21
- {waldur_api_client-7.6.7.dist-info → waldur_api_client-7.6.9.dist-info}/LICENSE +0 -0
- {waldur_api_client-7.6.7.dist-info → waldur_api_client-7.6.9.dist-info}/WHEEL +0 -0
|
@@ -105,11 +105,15 @@ class EventTypesEnum(str, Enum):
|
|
|
105
105
|
OPENSTACK_PORT_PULLED = "openstack_port_pulled"
|
|
106
106
|
OPENSTACK_PORT_UPDATED = "openstack_port_updated"
|
|
107
107
|
OPENSTACK_ROUTER_UPDATED = "openstack_router_updated"
|
|
108
|
+
OPENSTACK_SECURITY_GROUP_ADDED_LOCALLY = "openstack_security_group_added_locally"
|
|
109
|
+
OPENSTACK_SECURITY_GROUP_ADDED_REMOTELY = "openstack_security_group_added_remotely"
|
|
108
110
|
OPENSTACK_SECURITY_GROUP_CLEANED = "openstack_security_group_cleaned"
|
|
109
111
|
OPENSTACK_SECURITY_GROUP_CREATED = "openstack_security_group_created"
|
|
110
112
|
OPENSTACK_SECURITY_GROUP_DELETED = "openstack_security_group_deleted"
|
|
111
113
|
OPENSTACK_SECURITY_GROUP_IMPORTED = "openstack_security_group_imported"
|
|
112
114
|
OPENSTACK_SECURITY_GROUP_PULLED = "openstack_security_group_pulled"
|
|
115
|
+
OPENSTACK_SECURITY_GROUP_REMOVED_LOCALLY = "openstack_security_group_removed_locally"
|
|
116
|
+
OPENSTACK_SECURITY_GROUP_REMOVED_REMOTELY = "openstack_security_group_removed_remotely"
|
|
113
117
|
OPENSTACK_SECURITY_GROUP_RULE_CLEANED = "openstack_security_group_rule_cleaned"
|
|
114
118
|
OPENSTACK_SECURITY_GROUP_RULE_CREATED = "openstack_security_group_rule_created"
|
|
115
119
|
OPENSTACK_SECURITY_GROUP_RULE_DELETED = "openstack_security_group_rule_deleted"
|
|
@@ -0,0 +1,225 @@
|
|
|
1
|
+
import datetime
|
|
2
|
+
from collections.abc import Mapping
|
|
3
|
+
from typing import TYPE_CHECKING, 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.maintenance_announcement_state_enum import MaintenanceAnnouncementStateEnum
|
|
11
|
+
from ..models.maintenance_type_enum import MaintenanceTypeEnum
|
|
12
|
+
from ..types import UNSET, Unset
|
|
13
|
+
|
|
14
|
+
if TYPE_CHECKING:
|
|
15
|
+
from ..models.maintenance_announcement_offering import MaintenanceAnnouncementOffering
|
|
16
|
+
|
|
17
|
+
|
|
18
|
+
T = TypeVar("T", bound="MaintenanceAnnouncement")
|
|
19
|
+
|
|
20
|
+
|
|
21
|
+
@_attrs_define
|
|
22
|
+
class MaintenanceAnnouncement:
|
|
23
|
+
"""
|
|
24
|
+
Attributes:
|
|
25
|
+
url (str):
|
|
26
|
+
uuid (UUID):
|
|
27
|
+
name (str):
|
|
28
|
+
state (MaintenanceAnnouncementStateEnum):
|
|
29
|
+
scheduled_start (datetime.datetime): When the maintenance is scheduled to begin
|
|
30
|
+
scheduled_end (datetime.datetime): When the maintenance is scheduled to complete
|
|
31
|
+
actual_start (Union[None, datetime.datetime]): When the maintenance actually began
|
|
32
|
+
actual_end (Union[None, datetime.datetime]): When the maintenance actually completed
|
|
33
|
+
service_provider (str): Service provider announcing the maintenance
|
|
34
|
+
created_by (Union[None, str]):
|
|
35
|
+
affected_offerings (list['MaintenanceAnnouncementOffering']):
|
|
36
|
+
message (Union[Unset, str]):
|
|
37
|
+
maintenance_type (Union[Unset, MaintenanceTypeEnum]):
|
|
38
|
+
"""
|
|
39
|
+
|
|
40
|
+
url: str
|
|
41
|
+
uuid: UUID
|
|
42
|
+
name: str
|
|
43
|
+
state: MaintenanceAnnouncementStateEnum
|
|
44
|
+
scheduled_start: datetime.datetime
|
|
45
|
+
scheduled_end: datetime.datetime
|
|
46
|
+
actual_start: Union[None, datetime.datetime]
|
|
47
|
+
actual_end: Union[None, datetime.datetime]
|
|
48
|
+
service_provider: str
|
|
49
|
+
created_by: Union[None, str]
|
|
50
|
+
affected_offerings: list["MaintenanceAnnouncementOffering"]
|
|
51
|
+
message: Union[Unset, str] = UNSET
|
|
52
|
+
maintenance_type: Union[Unset, MaintenanceTypeEnum] = UNSET
|
|
53
|
+
additional_properties: dict[str, Any] = _attrs_field(init=False, factory=dict)
|
|
54
|
+
|
|
55
|
+
def to_dict(self) -> dict[str, Any]:
|
|
56
|
+
url = self.url
|
|
57
|
+
|
|
58
|
+
uuid = str(self.uuid)
|
|
59
|
+
|
|
60
|
+
name = self.name
|
|
61
|
+
|
|
62
|
+
state = self.state.value
|
|
63
|
+
|
|
64
|
+
scheduled_start = self.scheduled_start.isoformat()
|
|
65
|
+
|
|
66
|
+
scheduled_end = self.scheduled_end.isoformat()
|
|
67
|
+
|
|
68
|
+
actual_start: Union[None, str]
|
|
69
|
+
if isinstance(self.actual_start, datetime.datetime):
|
|
70
|
+
actual_start = self.actual_start.isoformat()
|
|
71
|
+
else:
|
|
72
|
+
actual_start = self.actual_start
|
|
73
|
+
|
|
74
|
+
actual_end: Union[None, str]
|
|
75
|
+
if isinstance(self.actual_end, datetime.datetime):
|
|
76
|
+
actual_end = self.actual_end.isoformat()
|
|
77
|
+
else:
|
|
78
|
+
actual_end = self.actual_end
|
|
79
|
+
|
|
80
|
+
service_provider = self.service_provider
|
|
81
|
+
|
|
82
|
+
created_by: Union[None, str]
|
|
83
|
+
created_by = self.created_by
|
|
84
|
+
|
|
85
|
+
affected_offerings = []
|
|
86
|
+
for affected_offerings_item_data in self.affected_offerings:
|
|
87
|
+
affected_offerings_item = affected_offerings_item_data.to_dict()
|
|
88
|
+
affected_offerings.append(affected_offerings_item)
|
|
89
|
+
|
|
90
|
+
message = self.message
|
|
91
|
+
|
|
92
|
+
maintenance_type: Union[Unset, int] = UNSET
|
|
93
|
+
if not isinstance(self.maintenance_type, Unset):
|
|
94
|
+
maintenance_type = self.maintenance_type.value
|
|
95
|
+
|
|
96
|
+
field_dict: dict[str, Any] = {}
|
|
97
|
+
field_dict.update(self.additional_properties)
|
|
98
|
+
field_dict.update(
|
|
99
|
+
{
|
|
100
|
+
"url": url,
|
|
101
|
+
"uuid": uuid,
|
|
102
|
+
"name": name,
|
|
103
|
+
"state": state,
|
|
104
|
+
"scheduled_start": scheduled_start,
|
|
105
|
+
"scheduled_end": scheduled_end,
|
|
106
|
+
"actual_start": actual_start,
|
|
107
|
+
"actual_end": actual_end,
|
|
108
|
+
"service_provider": service_provider,
|
|
109
|
+
"created_by": created_by,
|
|
110
|
+
"affected_offerings": affected_offerings,
|
|
111
|
+
}
|
|
112
|
+
)
|
|
113
|
+
if message is not UNSET:
|
|
114
|
+
field_dict["message"] = message
|
|
115
|
+
if maintenance_type is not UNSET:
|
|
116
|
+
field_dict["maintenance_type"] = maintenance_type
|
|
117
|
+
|
|
118
|
+
return field_dict
|
|
119
|
+
|
|
120
|
+
@classmethod
|
|
121
|
+
def from_dict(cls: type[T], src_dict: Mapping[str, Any]) -> T:
|
|
122
|
+
from ..models.maintenance_announcement_offering import MaintenanceAnnouncementOffering
|
|
123
|
+
|
|
124
|
+
d = dict(src_dict)
|
|
125
|
+
url = d.pop("url")
|
|
126
|
+
|
|
127
|
+
uuid = UUID(d.pop("uuid"))
|
|
128
|
+
|
|
129
|
+
name = d.pop("name")
|
|
130
|
+
|
|
131
|
+
state = MaintenanceAnnouncementStateEnum(d.pop("state"))
|
|
132
|
+
|
|
133
|
+
scheduled_start = isoparse(d.pop("scheduled_start"))
|
|
134
|
+
|
|
135
|
+
scheduled_end = isoparse(d.pop("scheduled_end"))
|
|
136
|
+
|
|
137
|
+
def _parse_actual_start(data: object) -> Union[None, datetime.datetime]:
|
|
138
|
+
if data is None:
|
|
139
|
+
return data
|
|
140
|
+
try:
|
|
141
|
+
if not isinstance(data, str):
|
|
142
|
+
raise TypeError()
|
|
143
|
+
actual_start_type_0 = isoparse(data)
|
|
144
|
+
|
|
145
|
+
return actual_start_type_0
|
|
146
|
+
except: # noqa: E722
|
|
147
|
+
pass
|
|
148
|
+
return cast(Union[None, datetime.datetime], data)
|
|
149
|
+
|
|
150
|
+
actual_start = _parse_actual_start(d.pop("actual_start"))
|
|
151
|
+
|
|
152
|
+
def _parse_actual_end(data: object) -> Union[None, datetime.datetime]:
|
|
153
|
+
if data is None:
|
|
154
|
+
return data
|
|
155
|
+
try:
|
|
156
|
+
if not isinstance(data, str):
|
|
157
|
+
raise TypeError()
|
|
158
|
+
actual_end_type_0 = isoparse(data)
|
|
159
|
+
|
|
160
|
+
return actual_end_type_0
|
|
161
|
+
except: # noqa: E722
|
|
162
|
+
pass
|
|
163
|
+
return cast(Union[None, datetime.datetime], data)
|
|
164
|
+
|
|
165
|
+
actual_end = _parse_actual_end(d.pop("actual_end"))
|
|
166
|
+
|
|
167
|
+
service_provider = d.pop("service_provider")
|
|
168
|
+
|
|
169
|
+
def _parse_created_by(data: object) -> Union[None, str]:
|
|
170
|
+
if data is None:
|
|
171
|
+
return data
|
|
172
|
+
return cast(Union[None, str], data)
|
|
173
|
+
|
|
174
|
+
created_by = _parse_created_by(d.pop("created_by"))
|
|
175
|
+
|
|
176
|
+
affected_offerings = []
|
|
177
|
+
_affected_offerings = d.pop("affected_offerings")
|
|
178
|
+
for affected_offerings_item_data in _affected_offerings:
|
|
179
|
+
affected_offerings_item = MaintenanceAnnouncementOffering.from_dict(affected_offerings_item_data)
|
|
180
|
+
|
|
181
|
+
affected_offerings.append(affected_offerings_item)
|
|
182
|
+
|
|
183
|
+
message = d.pop("message", UNSET)
|
|
184
|
+
|
|
185
|
+
_maintenance_type = d.pop("maintenance_type", UNSET)
|
|
186
|
+
maintenance_type: Union[Unset, MaintenanceTypeEnum]
|
|
187
|
+
if isinstance(_maintenance_type, Unset):
|
|
188
|
+
maintenance_type = UNSET
|
|
189
|
+
else:
|
|
190
|
+
maintenance_type = MaintenanceTypeEnum(_maintenance_type)
|
|
191
|
+
|
|
192
|
+
maintenance_announcement = cls(
|
|
193
|
+
url=url,
|
|
194
|
+
uuid=uuid,
|
|
195
|
+
name=name,
|
|
196
|
+
state=state,
|
|
197
|
+
scheduled_start=scheduled_start,
|
|
198
|
+
scheduled_end=scheduled_end,
|
|
199
|
+
actual_start=actual_start,
|
|
200
|
+
actual_end=actual_end,
|
|
201
|
+
service_provider=service_provider,
|
|
202
|
+
created_by=created_by,
|
|
203
|
+
affected_offerings=affected_offerings,
|
|
204
|
+
message=message,
|
|
205
|
+
maintenance_type=maintenance_type,
|
|
206
|
+
)
|
|
207
|
+
|
|
208
|
+
maintenance_announcement.additional_properties = d
|
|
209
|
+
return maintenance_announcement
|
|
210
|
+
|
|
211
|
+
@property
|
|
212
|
+
def additional_keys(self) -> list[str]:
|
|
213
|
+
return list(self.additional_properties.keys())
|
|
214
|
+
|
|
215
|
+
def __getitem__(self, key: str) -> Any:
|
|
216
|
+
return self.additional_properties[key]
|
|
217
|
+
|
|
218
|
+
def __setitem__(self, key: str, value: Any) -> None:
|
|
219
|
+
self.additional_properties[key] = value
|
|
220
|
+
|
|
221
|
+
def __delitem__(self, key: str) -> None:
|
|
222
|
+
del self.additional_properties[key]
|
|
223
|
+
|
|
224
|
+
def __contains__(self, key: str) -> bool:
|
|
225
|
+
return key in self.additional_properties
|
|
@@ -0,0 +1,112 @@
|
|
|
1
|
+
from collections.abc import Mapping
|
|
2
|
+
from typing import Any, TypeVar, Union
|
|
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.impact_level_enum import ImpactLevelEnum
|
|
9
|
+
from ..types import UNSET, Unset
|
|
10
|
+
|
|
11
|
+
T = TypeVar("T", bound="MaintenanceAnnouncementOffering")
|
|
12
|
+
|
|
13
|
+
|
|
14
|
+
@_attrs_define
|
|
15
|
+
class MaintenanceAnnouncementOffering:
|
|
16
|
+
"""
|
|
17
|
+
Attributes:
|
|
18
|
+
url (str):
|
|
19
|
+
uuid (UUID):
|
|
20
|
+
maintenance (str):
|
|
21
|
+
offering (str):
|
|
22
|
+
impact_level (Union[Unset, ImpactLevelEnum]):
|
|
23
|
+
impact_description (Union[Unset, str]): Specific description of how this offering will be affected
|
|
24
|
+
"""
|
|
25
|
+
|
|
26
|
+
url: str
|
|
27
|
+
uuid: UUID
|
|
28
|
+
maintenance: str
|
|
29
|
+
offering: str
|
|
30
|
+
impact_level: Union[Unset, ImpactLevelEnum] = UNSET
|
|
31
|
+
impact_description: Union[Unset, str] = UNSET
|
|
32
|
+
additional_properties: dict[str, Any] = _attrs_field(init=False, factory=dict)
|
|
33
|
+
|
|
34
|
+
def to_dict(self) -> dict[str, Any]:
|
|
35
|
+
url = self.url
|
|
36
|
+
|
|
37
|
+
uuid = str(self.uuid)
|
|
38
|
+
|
|
39
|
+
maintenance = self.maintenance
|
|
40
|
+
|
|
41
|
+
offering = self.offering
|
|
42
|
+
|
|
43
|
+
impact_level: Union[Unset, int] = UNSET
|
|
44
|
+
if not isinstance(self.impact_level, Unset):
|
|
45
|
+
impact_level = self.impact_level.value
|
|
46
|
+
|
|
47
|
+
impact_description = self.impact_description
|
|
48
|
+
|
|
49
|
+
field_dict: dict[str, Any] = {}
|
|
50
|
+
field_dict.update(self.additional_properties)
|
|
51
|
+
field_dict.update(
|
|
52
|
+
{
|
|
53
|
+
"url": url,
|
|
54
|
+
"uuid": uuid,
|
|
55
|
+
"maintenance": maintenance,
|
|
56
|
+
"offering": offering,
|
|
57
|
+
}
|
|
58
|
+
)
|
|
59
|
+
if impact_level is not UNSET:
|
|
60
|
+
field_dict["impact_level"] = impact_level
|
|
61
|
+
if impact_description is not UNSET:
|
|
62
|
+
field_dict["impact_description"] = impact_description
|
|
63
|
+
|
|
64
|
+
return field_dict
|
|
65
|
+
|
|
66
|
+
@classmethod
|
|
67
|
+
def from_dict(cls: type[T], src_dict: Mapping[str, Any]) -> T:
|
|
68
|
+
d = dict(src_dict)
|
|
69
|
+
url = d.pop("url")
|
|
70
|
+
|
|
71
|
+
uuid = UUID(d.pop("uuid"))
|
|
72
|
+
|
|
73
|
+
maintenance = d.pop("maintenance")
|
|
74
|
+
|
|
75
|
+
offering = d.pop("offering")
|
|
76
|
+
|
|
77
|
+
_impact_level = d.pop("impact_level", UNSET)
|
|
78
|
+
impact_level: Union[Unset, ImpactLevelEnum]
|
|
79
|
+
if isinstance(_impact_level, Unset):
|
|
80
|
+
impact_level = UNSET
|
|
81
|
+
else:
|
|
82
|
+
impact_level = ImpactLevelEnum(_impact_level)
|
|
83
|
+
|
|
84
|
+
impact_description = d.pop("impact_description", UNSET)
|
|
85
|
+
|
|
86
|
+
maintenance_announcement_offering = cls(
|
|
87
|
+
url=url,
|
|
88
|
+
uuid=uuid,
|
|
89
|
+
maintenance=maintenance,
|
|
90
|
+
offering=offering,
|
|
91
|
+
impact_level=impact_level,
|
|
92
|
+
impact_description=impact_description,
|
|
93
|
+
)
|
|
94
|
+
|
|
95
|
+
maintenance_announcement_offering.additional_properties = d
|
|
96
|
+
return maintenance_announcement_offering
|
|
97
|
+
|
|
98
|
+
@property
|
|
99
|
+
def additional_keys(self) -> list[str]:
|
|
100
|
+
return list(self.additional_properties.keys())
|
|
101
|
+
|
|
102
|
+
def __getitem__(self, key: str) -> Any:
|
|
103
|
+
return self.additional_properties[key]
|
|
104
|
+
|
|
105
|
+
def __setitem__(self, key: str, value: Any) -> None:
|
|
106
|
+
self.additional_properties[key] = value
|
|
107
|
+
|
|
108
|
+
def __delitem__(self, key: str) -> None:
|
|
109
|
+
del self.additional_properties[key]
|
|
110
|
+
|
|
111
|
+
def __contains__(self, key: str) -> bool:
|
|
112
|
+
return key in self.additional_properties
|
|
@@ -0,0 +1,95 @@
|
|
|
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.impact_level_enum import ImpactLevelEnum
|
|
8
|
+
from ..types import UNSET, Unset
|
|
9
|
+
|
|
10
|
+
T = TypeVar("T", bound="MaintenanceAnnouncementOfferingRequest")
|
|
11
|
+
|
|
12
|
+
|
|
13
|
+
@_attrs_define
|
|
14
|
+
class MaintenanceAnnouncementOfferingRequest:
|
|
15
|
+
"""
|
|
16
|
+
Attributes:
|
|
17
|
+
maintenance (str):
|
|
18
|
+
offering (str):
|
|
19
|
+
impact_level (Union[Unset, ImpactLevelEnum]):
|
|
20
|
+
impact_description (Union[Unset, str]): Specific description of how this offering will be affected
|
|
21
|
+
"""
|
|
22
|
+
|
|
23
|
+
maintenance: str
|
|
24
|
+
offering: str
|
|
25
|
+
impact_level: Union[Unset, ImpactLevelEnum] = UNSET
|
|
26
|
+
impact_description: Union[Unset, str] = UNSET
|
|
27
|
+
additional_properties: dict[str, Any] = _attrs_field(init=False, factory=dict)
|
|
28
|
+
|
|
29
|
+
def to_dict(self) -> dict[str, Any]:
|
|
30
|
+
maintenance = self.maintenance
|
|
31
|
+
|
|
32
|
+
offering = self.offering
|
|
33
|
+
|
|
34
|
+
impact_level: Union[Unset, int] = UNSET
|
|
35
|
+
if not isinstance(self.impact_level, Unset):
|
|
36
|
+
impact_level = self.impact_level.value
|
|
37
|
+
|
|
38
|
+
impact_description = self.impact_description
|
|
39
|
+
|
|
40
|
+
field_dict: dict[str, Any] = {}
|
|
41
|
+
field_dict.update(self.additional_properties)
|
|
42
|
+
field_dict.update(
|
|
43
|
+
{
|
|
44
|
+
"maintenance": maintenance,
|
|
45
|
+
"offering": offering,
|
|
46
|
+
}
|
|
47
|
+
)
|
|
48
|
+
if impact_level is not UNSET:
|
|
49
|
+
field_dict["impact_level"] = impact_level
|
|
50
|
+
if impact_description is not UNSET:
|
|
51
|
+
field_dict["impact_description"] = impact_description
|
|
52
|
+
|
|
53
|
+
return field_dict
|
|
54
|
+
|
|
55
|
+
@classmethod
|
|
56
|
+
def from_dict(cls: type[T], src_dict: Mapping[str, Any]) -> T:
|
|
57
|
+
d = dict(src_dict)
|
|
58
|
+
maintenance = d.pop("maintenance")
|
|
59
|
+
|
|
60
|
+
offering = d.pop("offering")
|
|
61
|
+
|
|
62
|
+
_impact_level = d.pop("impact_level", UNSET)
|
|
63
|
+
impact_level: Union[Unset, ImpactLevelEnum]
|
|
64
|
+
if isinstance(_impact_level, Unset):
|
|
65
|
+
impact_level = UNSET
|
|
66
|
+
else:
|
|
67
|
+
impact_level = ImpactLevelEnum(_impact_level)
|
|
68
|
+
|
|
69
|
+
impact_description = d.pop("impact_description", UNSET)
|
|
70
|
+
|
|
71
|
+
maintenance_announcement_offering_request = cls(
|
|
72
|
+
maintenance=maintenance,
|
|
73
|
+
offering=offering,
|
|
74
|
+
impact_level=impact_level,
|
|
75
|
+
impact_description=impact_description,
|
|
76
|
+
)
|
|
77
|
+
|
|
78
|
+
maintenance_announcement_offering_request.additional_properties = d
|
|
79
|
+
return maintenance_announcement_offering_request
|
|
80
|
+
|
|
81
|
+
@property
|
|
82
|
+
def additional_keys(self) -> list[str]:
|
|
83
|
+
return list(self.additional_properties.keys())
|
|
84
|
+
|
|
85
|
+
def __getitem__(self, key: str) -> Any:
|
|
86
|
+
return self.additional_properties[key]
|
|
87
|
+
|
|
88
|
+
def __setitem__(self, key: str, value: Any) -> None:
|
|
89
|
+
self.additional_properties[key] = value
|
|
90
|
+
|
|
91
|
+
def __delitem__(self, key: str) -> None:
|
|
92
|
+
del self.additional_properties[key]
|
|
93
|
+
|
|
94
|
+
def __contains__(self, key: str) -> bool:
|
|
95
|
+
return key in self.additional_properties
|
|
@@ -0,0 +1,112 @@
|
|
|
1
|
+
from collections.abc import Mapping
|
|
2
|
+
from typing import Any, TypeVar, Union
|
|
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.impact_level_enum import ImpactLevelEnum
|
|
9
|
+
from ..types import UNSET, Unset
|
|
10
|
+
|
|
11
|
+
T = TypeVar("T", bound="MaintenanceAnnouncementOfferingTemplate")
|
|
12
|
+
|
|
13
|
+
|
|
14
|
+
@_attrs_define
|
|
15
|
+
class MaintenanceAnnouncementOfferingTemplate:
|
|
16
|
+
"""
|
|
17
|
+
Attributes:
|
|
18
|
+
url (str):
|
|
19
|
+
uuid (UUID):
|
|
20
|
+
maintenance_template (str):
|
|
21
|
+
offering (str):
|
|
22
|
+
impact_level (Union[Unset, ImpactLevelEnum]):
|
|
23
|
+
impact_description (Union[Unset, str]): Specific description of how this offering will be affected
|
|
24
|
+
"""
|
|
25
|
+
|
|
26
|
+
url: str
|
|
27
|
+
uuid: UUID
|
|
28
|
+
maintenance_template: str
|
|
29
|
+
offering: str
|
|
30
|
+
impact_level: Union[Unset, ImpactLevelEnum] = UNSET
|
|
31
|
+
impact_description: Union[Unset, str] = UNSET
|
|
32
|
+
additional_properties: dict[str, Any] = _attrs_field(init=False, factory=dict)
|
|
33
|
+
|
|
34
|
+
def to_dict(self) -> dict[str, Any]:
|
|
35
|
+
url = self.url
|
|
36
|
+
|
|
37
|
+
uuid = str(self.uuid)
|
|
38
|
+
|
|
39
|
+
maintenance_template = self.maintenance_template
|
|
40
|
+
|
|
41
|
+
offering = self.offering
|
|
42
|
+
|
|
43
|
+
impact_level: Union[Unset, int] = UNSET
|
|
44
|
+
if not isinstance(self.impact_level, Unset):
|
|
45
|
+
impact_level = self.impact_level.value
|
|
46
|
+
|
|
47
|
+
impact_description = self.impact_description
|
|
48
|
+
|
|
49
|
+
field_dict: dict[str, Any] = {}
|
|
50
|
+
field_dict.update(self.additional_properties)
|
|
51
|
+
field_dict.update(
|
|
52
|
+
{
|
|
53
|
+
"url": url,
|
|
54
|
+
"uuid": uuid,
|
|
55
|
+
"maintenance_template": maintenance_template,
|
|
56
|
+
"offering": offering,
|
|
57
|
+
}
|
|
58
|
+
)
|
|
59
|
+
if impact_level is not UNSET:
|
|
60
|
+
field_dict["impact_level"] = impact_level
|
|
61
|
+
if impact_description is not UNSET:
|
|
62
|
+
field_dict["impact_description"] = impact_description
|
|
63
|
+
|
|
64
|
+
return field_dict
|
|
65
|
+
|
|
66
|
+
@classmethod
|
|
67
|
+
def from_dict(cls: type[T], src_dict: Mapping[str, Any]) -> T:
|
|
68
|
+
d = dict(src_dict)
|
|
69
|
+
url = d.pop("url")
|
|
70
|
+
|
|
71
|
+
uuid = UUID(d.pop("uuid"))
|
|
72
|
+
|
|
73
|
+
maintenance_template = d.pop("maintenance_template")
|
|
74
|
+
|
|
75
|
+
offering = d.pop("offering")
|
|
76
|
+
|
|
77
|
+
_impact_level = d.pop("impact_level", UNSET)
|
|
78
|
+
impact_level: Union[Unset, ImpactLevelEnum]
|
|
79
|
+
if isinstance(_impact_level, Unset):
|
|
80
|
+
impact_level = UNSET
|
|
81
|
+
else:
|
|
82
|
+
impact_level = ImpactLevelEnum(_impact_level)
|
|
83
|
+
|
|
84
|
+
impact_description = d.pop("impact_description", UNSET)
|
|
85
|
+
|
|
86
|
+
maintenance_announcement_offering_template = cls(
|
|
87
|
+
url=url,
|
|
88
|
+
uuid=uuid,
|
|
89
|
+
maintenance_template=maintenance_template,
|
|
90
|
+
offering=offering,
|
|
91
|
+
impact_level=impact_level,
|
|
92
|
+
impact_description=impact_description,
|
|
93
|
+
)
|
|
94
|
+
|
|
95
|
+
maintenance_announcement_offering_template.additional_properties = d
|
|
96
|
+
return maintenance_announcement_offering_template
|
|
97
|
+
|
|
98
|
+
@property
|
|
99
|
+
def additional_keys(self) -> list[str]:
|
|
100
|
+
return list(self.additional_properties.keys())
|
|
101
|
+
|
|
102
|
+
def __getitem__(self, key: str) -> Any:
|
|
103
|
+
return self.additional_properties[key]
|
|
104
|
+
|
|
105
|
+
def __setitem__(self, key: str, value: Any) -> None:
|
|
106
|
+
self.additional_properties[key] = value
|
|
107
|
+
|
|
108
|
+
def __delitem__(self, key: str) -> None:
|
|
109
|
+
del self.additional_properties[key]
|
|
110
|
+
|
|
111
|
+
def __contains__(self, key: str) -> bool:
|
|
112
|
+
return key in self.additional_properties
|
|
@@ -0,0 +1,95 @@
|
|
|
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.impact_level_enum import ImpactLevelEnum
|
|
8
|
+
from ..types import UNSET, Unset
|
|
9
|
+
|
|
10
|
+
T = TypeVar("T", bound="MaintenanceAnnouncementOfferingTemplateRequest")
|
|
11
|
+
|
|
12
|
+
|
|
13
|
+
@_attrs_define
|
|
14
|
+
class MaintenanceAnnouncementOfferingTemplateRequest:
|
|
15
|
+
"""
|
|
16
|
+
Attributes:
|
|
17
|
+
maintenance_template (str):
|
|
18
|
+
offering (str):
|
|
19
|
+
impact_level (Union[Unset, ImpactLevelEnum]):
|
|
20
|
+
impact_description (Union[Unset, str]): Specific description of how this offering will be affected
|
|
21
|
+
"""
|
|
22
|
+
|
|
23
|
+
maintenance_template: str
|
|
24
|
+
offering: str
|
|
25
|
+
impact_level: Union[Unset, ImpactLevelEnum] = UNSET
|
|
26
|
+
impact_description: Union[Unset, str] = UNSET
|
|
27
|
+
additional_properties: dict[str, Any] = _attrs_field(init=False, factory=dict)
|
|
28
|
+
|
|
29
|
+
def to_dict(self) -> dict[str, Any]:
|
|
30
|
+
maintenance_template = self.maintenance_template
|
|
31
|
+
|
|
32
|
+
offering = self.offering
|
|
33
|
+
|
|
34
|
+
impact_level: Union[Unset, int] = UNSET
|
|
35
|
+
if not isinstance(self.impact_level, Unset):
|
|
36
|
+
impact_level = self.impact_level.value
|
|
37
|
+
|
|
38
|
+
impact_description = self.impact_description
|
|
39
|
+
|
|
40
|
+
field_dict: dict[str, Any] = {}
|
|
41
|
+
field_dict.update(self.additional_properties)
|
|
42
|
+
field_dict.update(
|
|
43
|
+
{
|
|
44
|
+
"maintenance_template": maintenance_template,
|
|
45
|
+
"offering": offering,
|
|
46
|
+
}
|
|
47
|
+
)
|
|
48
|
+
if impact_level is not UNSET:
|
|
49
|
+
field_dict["impact_level"] = impact_level
|
|
50
|
+
if impact_description is not UNSET:
|
|
51
|
+
field_dict["impact_description"] = impact_description
|
|
52
|
+
|
|
53
|
+
return field_dict
|
|
54
|
+
|
|
55
|
+
@classmethod
|
|
56
|
+
def from_dict(cls: type[T], src_dict: Mapping[str, Any]) -> T:
|
|
57
|
+
d = dict(src_dict)
|
|
58
|
+
maintenance_template = d.pop("maintenance_template")
|
|
59
|
+
|
|
60
|
+
offering = d.pop("offering")
|
|
61
|
+
|
|
62
|
+
_impact_level = d.pop("impact_level", UNSET)
|
|
63
|
+
impact_level: Union[Unset, ImpactLevelEnum]
|
|
64
|
+
if isinstance(_impact_level, Unset):
|
|
65
|
+
impact_level = UNSET
|
|
66
|
+
else:
|
|
67
|
+
impact_level = ImpactLevelEnum(_impact_level)
|
|
68
|
+
|
|
69
|
+
impact_description = d.pop("impact_description", UNSET)
|
|
70
|
+
|
|
71
|
+
maintenance_announcement_offering_template_request = cls(
|
|
72
|
+
maintenance_template=maintenance_template,
|
|
73
|
+
offering=offering,
|
|
74
|
+
impact_level=impact_level,
|
|
75
|
+
impact_description=impact_description,
|
|
76
|
+
)
|
|
77
|
+
|
|
78
|
+
maintenance_announcement_offering_template_request.additional_properties = d
|
|
79
|
+
return maintenance_announcement_offering_template_request
|
|
80
|
+
|
|
81
|
+
@property
|
|
82
|
+
def additional_keys(self) -> list[str]:
|
|
83
|
+
return list(self.additional_properties.keys())
|
|
84
|
+
|
|
85
|
+
def __getitem__(self, key: str) -> Any:
|
|
86
|
+
return self.additional_properties[key]
|
|
87
|
+
|
|
88
|
+
def __setitem__(self, key: str, value: Any) -> None:
|
|
89
|
+
self.additional_properties[key] = value
|
|
90
|
+
|
|
91
|
+
def __delitem__(self, key: str) -> None:
|
|
92
|
+
del self.additional_properties[key]
|
|
93
|
+
|
|
94
|
+
def __contains__(self, key: str) -> bool:
|
|
95
|
+
return key in self.additional_properties
|