waldur-api-client 7.7.5__py3-none-any.whl → 7.7.6__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_offering_users/marketplace_offering_users_checklist_retrieve.py +154 -0
- waldur_api_client/api/marketplace_offering_users/marketplace_offering_users_checklist_review_retrieve.py +154 -0
- waldur_api_client/api/marketplace_offering_users/marketplace_offering_users_completion_review_status_retrieve.py +154 -0
- waldur_api_client/api/marketplace_offering_users/marketplace_offering_users_completion_status_retrieve.py +154 -0
- waldur_api_client/api/marketplace_offering_users/marketplace_offering_users_submit_answers.py +179 -0
- waldur_api_client/api/marketplace_robot_accounts/marketplace_robot_accounts_list.py +23 -0
- waldur_api_client/api/marketplace_robot_accounts/marketplace_robot_accounts_retrieve.py +30 -1
- waldur_api_client/api/marketplace_service_providers/marketplace_service_providers_project_service_accounts_list.py +276 -0
- waldur_api_client/api/marketplace_service_providers/service_provider_compliance_overview.py +189 -0
- waldur_api_client/api/marketplace_service_providers/service_provider_offering_users_compliance.py +222 -0
- waldur_api_client/api/public_maintenance_announcements/__init__.py +1 -0
- waldur_api_client/api/public_maintenance_announcements/public_maintenance_announcements_count.py +325 -0
- waldur_api_client/api/public_maintenance_announcements/public_maintenance_announcements_list.py +328 -0
- waldur_api_client/api/public_maintenance_announcements/public_maintenance_announcements_retrieve.py +144 -0
- waldur_api_client/models/__init__.py +56 -4
- waldur_api_client/models/admin_announcement.py +109 -1
- waldur_api_client/models/admin_announcement_maintenance_affected_offerings_item.py +103 -0
- waldur_api_client/models/admin_announcements_list_field_item.py +8 -0
- waldur_api_client/models/admin_announcements_retrieve_field_item.py +8 -0
- waldur_api_client/models/azure_sql_server_create_order_attributes.py +80 -0
- waldur_api_client/models/azure_virtual_machine_create_order_attributes.py +96 -0
- waldur_api_client/models/basic_user.py +30 -21
- 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/create_router.py +1 -1
- waldur_api_client/models/create_router_request.py +1 -1
- waldur_api_client/models/customer.py +0 -30
- waldur_api_client/models/customers_list_field_item.py +0 -2
- waldur_api_client/models/customers_retrieve_field_item.py +0 -2
- waldur_api_client/models/fingerprint.py +19 -17
- waldur_api_client/models/instance_flavor_change_request.py +1 -1
- waldur_api_client/models/marketplace_managed_rancher_create_order_attributes.py +144 -0
- waldur_api_client/models/marketplace_provider_offerings_list_customer_service_accounts_retrieve_field_item.py +1 -0
- waldur_api_client/models/marketplace_provider_offerings_list_field_item.py +1 -0
- waldur_api_client/models/marketplace_provider_offerings_list_project_service_accounts_retrieve_field_item.py +1 -0
- waldur_api_client/models/marketplace_provider_offerings_retrieve_field_item.py +1 -0
- waldur_api_client/models/marketplace_provider_offerings_stats_retrieve_field_item.py +1 -0
- waldur_api_client/models/marketplace_provider_offerings_user_has_resource_access_retrieve_field_item.py +1 -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_rancher_create_order_attributes.py +142 -0
- waldur_api_client/models/marketplace_robot_accounts_list_field_item.py +32 -0
- waldur_api_client/models/marketplace_robot_accounts_retrieve_field_item.py +32 -0
- waldur_api_client/models/offering.py +9 -0
- waldur_api_client/models/offering_create.py +8 -0
- waldur_api_client/models/open_stack_backend_instance.py +2 -2
- waldur_api_client/models/open_stack_backend_volumes.py +3 -3
- waldur_api_client/models/open_stack_backup.py +1 -1
- waldur_api_client/models/open_stack_backup_restoration.py +8 -5
- waldur_api_client/models/open_stack_backup_restoration_request.py +28 -3
- waldur_api_client/models/open_stack_fixed_ip.py +2 -2
- waldur_api_client/models/open_stack_fixed_ip_request.py +2 -2
- waldur_api_client/models/open_stack_floating_ip.py +5 -4
- waldur_api_client/models/open_stack_instance.py +17 -15
- waldur_api_client/models/open_stack_instance_allowed_address_pairs_update_request.py +3 -2
- waldur_api_client/models/open_stack_instance_availability_zone.py +1 -1
- waldur_api_client/models/open_stack_instance_create_order_attributes.py +280 -0
- waldur_api_client/models/open_stack_instance_request.py +4 -3
- waldur_api_client/models/open_stack_instance_security_groups_update_request.py +1 -1
- waldur_api_client/models/open_stack_nested_floating_ip.py +3 -3
- waldur_api_client/models/open_stack_nested_instance.py +1 -1
- waldur_api_client/models/open_stack_nested_port.py +5 -5
- waldur_api_client/models/open_stack_nested_port_request.py +1 -1
- waldur_api_client/models/open_stack_nested_security_group.py +1 -53
- waldur_api_client/models/open_stack_nested_security_group_request.py +59 -0
- waldur_api_client/models/open_stack_nested_sub_net.py +4 -4
- waldur_api_client/models/open_stack_nested_sub_net_request.py +4 -4
- waldur_api_client/models/open_stack_nested_volume.py +3 -3
- waldur_api_client/models/open_stack_nested_volume_request.py +3 -3
- waldur_api_client/models/open_stack_network.py +3 -3
- waldur_api_client/models/open_stack_port.py +10 -9
- waldur_api_client/models/open_stack_port_ip_update_request.py +2 -2
- waldur_api_client/models/open_stack_port_request.py +3 -3
- waldur_api_client/models/open_stack_router.py +2 -2
- waldur_api_client/models/open_stack_router_interface_request.py +4 -2
- waldur_api_client/models/open_stack_security_group_rule_create.py +6 -5
- waldur_api_client/models/open_stack_security_group_rule_create_request.py +6 -5
- waldur_api_client/models/open_stack_security_group_rule_update_request.py +6 -5
- waldur_api_client/models/open_stack_server_group.py +2 -1
- waldur_api_client/models/open_stack_server_group_request.py +2 -1
- waldur_api_client/models/open_stack_snapshot.py +2 -2
- waldur_api_client/models/open_stack_snapshot_restoration.py +1 -1
- waldur_api_client/models/open_stack_sub_net.py +5 -5
- waldur_api_client/models/open_stack_sub_net_request.py +2 -2
- waldur_api_client/models/open_stack_tenant.py +3 -3
- waldur_api_client/models/open_stack_tenant_create_order_attributes.py +109 -0
- waldur_api_client/models/open_stack_volume.py +9 -9
- waldur_api_client/models/open_stack_volume_create_order_attributes.py +152 -0
- waldur_api_client/models/open_stack_volume_request.py +1 -1
- waldur_api_client/models/order_create_request.py +165 -4
- waldur_api_client/models/patched_open_stack_instance_request.py +4 -3
- waldur_api_client/models/patched_open_stack_server_group_request.py +2 -1
- waldur_api_client/models/patched_open_stack_sub_net_request.py +2 -2
- waldur_api_client/models/patched_open_stack_volume_request.py +1 -1
- waldur_api_client/models/permission_request.py +2 -2
- waldur_api_client/models/provider_offering_details.py +9 -0
- waldur_api_client/models/public_maintenance_announcement.py +217 -0
- waldur_api_client/models/public_maintenance_announcement_state_enum.py +10 -0
- waldur_api_client/models/public_maintenance_announcements_count_o_item.py +15 -0
- waldur_api_client/models/public_maintenance_announcements_count_state_item.py +12 -0
- waldur_api_client/models/public_maintenance_announcements_list_o_item.py +15 -0
- waldur_api_client/models/public_maintenance_announcements_list_state_item.py +12 -0
- waldur_api_client/models/public_offering_details.py +9 -0
- waldur_api_client/models/rancher_cluster_security_group_rule.py +5 -4
- waldur_api_client/models/rancher_cluster_security_group_rule_request.py +5 -4
- waldur_api_client/models/remote_project_update_request.py +2 -2
- waldur_api_client/models/robot_account_details.py +226 -144
- waldur_api_client/models/service_provider_compliance_overview.py +122 -0
- waldur_api_client/models/service_provider_offering_user_compliance.py +179 -0
- waldur_api_client/models/service_provider_offering_user_compliance_state_enum.py +17 -0
- waldur_api_client/models/slurm_invoices_slurm_package_create_order_attributes.py +72 -0
- waldur_api_client/models/v_mware_virtual_machine_create_order_attributes.py +225 -0
- waldur_api_client/models/v_mware_virtual_machine_create_order_attributes_guest_os_type_1.py +155 -0
- waldur_api_client/models/v_mware_virtual_machine_create_order_attributes_guest_os_type_2_type_1.py +155 -0
- waldur_api_client/models/v_mware_virtual_machine_create_order_attributes_guest_os_type_3_type_1.py +155 -0
- waldur_api_client/models/volume_attach_request.py +1 -1
- {waldur_api_client-7.7.5.dist-info → waldur_api_client-7.7.6.dist-info}/METADATA +1 -1
- {waldur_api_client-7.7.5.dist-info → waldur_api_client-7.7.6.dist-info}/RECORD +120 -85
- waldur_api_client/models/nested_security_group_rule.py +0 -222
- waldur_api_client/models/nested_security_group_rule_request.py +0 -187
- {waldur_api_client-7.7.5.dist-info → waldur_api_client-7.7.6.dist-info}/LICENSE +0 -0
- {waldur_api_client-7.7.5.dist-info → waldur_api_client-7.7.6.dist-info}/WHEEL +0 -0
|
@@ -0,0 +1,144 @@
|
|
|
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 ..types import UNSET, Unset
|
|
9
|
+
|
|
10
|
+
T = TypeVar("T", bound="MarketplaceManagedRancherCreateOrderAttributes")
|
|
11
|
+
|
|
12
|
+
|
|
13
|
+
@_attrs_define
|
|
14
|
+
class MarketplaceManagedRancherCreateOrderAttributes:
|
|
15
|
+
"""
|
|
16
|
+
Attributes:
|
|
17
|
+
name (str): Unique identifier for the cluster
|
|
18
|
+
worker_nodes_count (int):
|
|
19
|
+
worker_nodes_flavor_name (str):
|
|
20
|
+
worker_nodes_data_volume_size (int): Data volume size for worker nodes in MB (consistent with OpenStack)
|
|
21
|
+
worker_nodes_data_volume_type_name (Union[Unset, str]):
|
|
22
|
+
openstack_offering_uuid_list (Union[Unset, list[UUID]]): List of UUID of OpenStack offerings where tenant can be
|
|
23
|
+
created
|
|
24
|
+
install_longhorn (Union[Unset, bool]): Longhorn is a distributed block storage deployed on top of Kubernetes
|
|
25
|
+
cluster Default: False.
|
|
26
|
+
worker_nodes_longhorn_volume_size (Union[Unset, int]): Longhorn storage volume size for worker nodes in MB
|
|
27
|
+
(consistent with OpenStack)
|
|
28
|
+
worker_nodes_longhorn_volume_type_name (Union[Unset, str]):
|
|
29
|
+
"""
|
|
30
|
+
|
|
31
|
+
name: str
|
|
32
|
+
worker_nodes_count: int
|
|
33
|
+
worker_nodes_flavor_name: str
|
|
34
|
+
worker_nodes_data_volume_size: int
|
|
35
|
+
worker_nodes_data_volume_type_name: Union[Unset, str] = UNSET
|
|
36
|
+
openstack_offering_uuid_list: Union[Unset, list[UUID]] = UNSET
|
|
37
|
+
install_longhorn: Union[Unset, bool] = False
|
|
38
|
+
worker_nodes_longhorn_volume_size: Union[Unset, int] = UNSET
|
|
39
|
+
worker_nodes_longhorn_volume_type_name: Union[Unset, str] = UNSET
|
|
40
|
+
additional_properties: dict[str, Any] = _attrs_field(init=False, factory=dict)
|
|
41
|
+
|
|
42
|
+
def to_dict(self) -> dict[str, Any]:
|
|
43
|
+
name = self.name
|
|
44
|
+
|
|
45
|
+
worker_nodes_count = self.worker_nodes_count
|
|
46
|
+
|
|
47
|
+
worker_nodes_flavor_name = self.worker_nodes_flavor_name
|
|
48
|
+
|
|
49
|
+
worker_nodes_data_volume_size = self.worker_nodes_data_volume_size
|
|
50
|
+
|
|
51
|
+
worker_nodes_data_volume_type_name = self.worker_nodes_data_volume_type_name
|
|
52
|
+
|
|
53
|
+
openstack_offering_uuid_list: Union[Unset, list[str]] = UNSET
|
|
54
|
+
if not isinstance(self.openstack_offering_uuid_list, Unset):
|
|
55
|
+
openstack_offering_uuid_list = []
|
|
56
|
+
for openstack_offering_uuid_list_item_data in self.openstack_offering_uuid_list:
|
|
57
|
+
openstack_offering_uuid_list_item = str(openstack_offering_uuid_list_item_data)
|
|
58
|
+
openstack_offering_uuid_list.append(openstack_offering_uuid_list_item)
|
|
59
|
+
|
|
60
|
+
install_longhorn = self.install_longhorn
|
|
61
|
+
|
|
62
|
+
worker_nodes_longhorn_volume_size = self.worker_nodes_longhorn_volume_size
|
|
63
|
+
|
|
64
|
+
worker_nodes_longhorn_volume_type_name = self.worker_nodes_longhorn_volume_type_name
|
|
65
|
+
|
|
66
|
+
field_dict: dict[str, Any] = {}
|
|
67
|
+
field_dict.update(self.additional_properties)
|
|
68
|
+
field_dict.update(
|
|
69
|
+
{
|
|
70
|
+
"name": name,
|
|
71
|
+
"worker_nodes_count": worker_nodes_count,
|
|
72
|
+
"worker_nodes_flavor_name": worker_nodes_flavor_name,
|
|
73
|
+
"worker_nodes_data_volume_size": worker_nodes_data_volume_size,
|
|
74
|
+
}
|
|
75
|
+
)
|
|
76
|
+
if worker_nodes_data_volume_type_name is not UNSET:
|
|
77
|
+
field_dict["worker_nodes_data_volume_type_name"] = worker_nodes_data_volume_type_name
|
|
78
|
+
if openstack_offering_uuid_list is not UNSET:
|
|
79
|
+
field_dict["openstack_offering_uuid_list"] = openstack_offering_uuid_list
|
|
80
|
+
if install_longhorn is not UNSET:
|
|
81
|
+
field_dict["install_longhorn"] = install_longhorn
|
|
82
|
+
if worker_nodes_longhorn_volume_size is not UNSET:
|
|
83
|
+
field_dict["worker_nodes_longhorn_volume_size"] = worker_nodes_longhorn_volume_size
|
|
84
|
+
if worker_nodes_longhorn_volume_type_name is not UNSET:
|
|
85
|
+
field_dict["worker_nodes_longhorn_volume_type_name"] = worker_nodes_longhorn_volume_type_name
|
|
86
|
+
|
|
87
|
+
return field_dict
|
|
88
|
+
|
|
89
|
+
@classmethod
|
|
90
|
+
def from_dict(cls: type[T], src_dict: Mapping[str, Any]) -> T:
|
|
91
|
+
d = dict(src_dict)
|
|
92
|
+
name = d.pop("name")
|
|
93
|
+
|
|
94
|
+
worker_nodes_count = d.pop("worker_nodes_count")
|
|
95
|
+
|
|
96
|
+
worker_nodes_flavor_name = d.pop("worker_nodes_flavor_name")
|
|
97
|
+
|
|
98
|
+
worker_nodes_data_volume_size = d.pop("worker_nodes_data_volume_size")
|
|
99
|
+
|
|
100
|
+
worker_nodes_data_volume_type_name = d.pop("worker_nodes_data_volume_type_name", UNSET)
|
|
101
|
+
|
|
102
|
+
openstack_offering_uuid_list = []
|
|
103
|
+
_openstack_offering_uuid_list = d.pop("openstack_offering_uuid_list", UNSET)
|
|
104
|
+
for openstack_offering_uuid_list_item_data in _openstack_offering_uuid_list or []:
|
|
105
|
+
openstack_offering_uuid_list_item = UUID(openstack_offering_uuid_list_item_data)
|
|
106
|
+
|
|
107
|
+
openstack_offering_uuid_list.append(openstack_offering_uuid_list_item)
|
|
108
|
+
|
|
109
|
+
install_longhorn = d.pop("install_longhorn", UNSET)
|
|
110
|
+
|
|
111
|
+
worker_nodes_longhorn_volume_size = d.pop("worker_nodes_longhorn_volume_size", UNSET)
|
|
112
|
+
|
|
113
|
+
worker_nodes_longhorn_volume_type_name = d.pop("worker_nodes_longhorn_volume_type_name", UNSET)
|
|
114
|
+
|
|
115
|
+
marketplace_managed_rancher_create_order_attributes = cls(
|
|
116
|
+
name=name,
|
|
117
|
+
worker_nodes_count=worker_nodes_count,
|
|
118
|
+
worker_nodes_flavor_name=worker_nodes_flavor_name,
|
|
119
|
+
worker_nodes_data_volume_size=worker_nodes_data_volume_size,
|
|
120
|
+
worker_nodes_data_volume_type_name=worker_nodes_data_volume_type_name,
|
|
121
|
+
openstack_offering_uuid_list=openstack_offering_uuid_list,
|
|
122
|
+
install_longhorn=install_longhorn,
|
|
123
|
+
worker_nodes_longhorn_volume_size=worker_nodes_longhorn_volume_size,
|
|
124
|
+
worker_nodes_longhorn_volume_type_name=worker_nodes_longhorn_volume_type_name,
|
|
125
|
+
)
|
|
126
|
+
|
|
127
|
+
marketplace_managed_rancher_create_order_attributes.additional_properties = d
|
|
128
|
+
return marketplace_managed_rancher_create_order_attributes
|
|
129
|
+
|
|
130
|
+
@property
|
|
131
|
+
def additional_keys(self) -> list[str]:
|
|
132
|
+
return list(self.additional_properties.keys())
|
|
133
|
+
|
|
134
|
+
def __getitem__(self, key: str) -> Any:
|
|
135
|
+
return self.additional_properties[key]
|
|
136
|
+
|
|
137
|
+
def __setitem__(self, key: str, value: Any) -> None:
|
|
138
|
+
self.additional_properties[key] = value
|
|
139
|
+
|
|
140
|
+
def __delitem__(self, key: str) -> None:
|
|
141
|
+
del self.additional_properties[key]
|
|
142
|
+
|
|
143
|
+
def __contains__(self, key: str) -> bool:
|
|
144
|
+
return key in self.additional_properties
|
|
@@ -25,6 +25,7 @@ class MarketplaceProviderOfferingsListCustomerServiceAccountsRetrieveFieldItem(s
|
|
|
25
25
|
GETTING_STARTED = "getting_started"
|
|
26
26
|
GOOGLE_CALENDAR_IS_PUBLIC = "google_calendar_is_public"
|
|
27
27
|
GOOGLE_CALENDAR_LINK = "google_calendar_link"
|
|
28
|
+
HAS_COMPLIANCE_REQUIREMENTS = "has_compliance_requirements"
|
|
28
29
|
IMAGE = "image"
|
|
29
30
|
INTEGRATION_GUIDE = "integration_guide"
|
|
30
31
|
INTEGRATION_STATUS = "integration_status"
|
|
@@ -25,6 +25,7 @@ class MarketplaceProviderOfferingsListFieldItem(str, Enum):
|
|
|
25
25
|
GETTING_STARTED = "getting_started"
|
|
26
26
|
GOOGLE_CALENDAR_IS_PUBLIC = "google_calendar_is_public"
|
|
27
27
|
GOOGLE_CALENDAR_LINK = "google_calendar_link"
|
|
28
|
+
HAS_COMPLIANCE_REQUIREMENTS = "has_compliance_requirements"
|
|
28
29
|
IMAGE = "image"
|
|
29
30
|
INTEGRATION_GUIDE = "integration_guide"
|
|
30
31
|
INTEGRATION_STATUS = "integration_status"
|
|
@@ -25,6 +25,7 @@ class MarketplaceProviderOfferingsListProjectServiceAccountsRetrieveFieldItem(st
|
|
|
25
25
|
GETTING_STARTED = "getting_started"
|
|
26
26
|
GOOGLE_CALENDAR_IS_PUBLIC = "google_calendar_is_public"
|
|
27
27
|
GOOGLE_CALENDAR_LINK = "google_calendar_link"
|
|
28
|
+
HAS_COMPLIANCE_REQUIREMENTS = "has_compliance_requirements"
|
|
28
29
|
IMAGE = "image"
|
|
29
30
|
INTEGRATION_GUIDE = "integration_guide"
|
|
30
31
|
INTEGRATION_STATUS = "integration_status"
|
|
@@ -25,6 +25,7 @@ class MarketplaceProviderOfferingsRetrieveFieldItem(str, Enum):
|
|
|
25
25
|
GETTING_STARTED = "getting_started"
|
|
26
26
|
GOOGLE_CALENDAR_IS_PUBLIC = "google_calendar_is_public"
|
|
27
27
|
GOOGLE_CALENDAR_LINK = "google_calendar_link"
|
|
28
|
+
HAS_COMPLIANCE_REQUIREMENTS = "has_compliance_requirements"
|
|
28
29
|
IMAGE = "image"
|
|
29
30
|
INTEGRATION_GUIDE = "integration_guide"
|
|
30
31
|
INTEGRATION_STATUS = "integration_status"
|
|
@@ -25,6 +25,7 @@ class MarketplaceProviderOfferingsStatsRetrieveFieldItem(str, Enum):
|
|
|
25
25
|
GETTING_STARTED = "getting_started"
|
|
26
26
|
GOOGLE_CALENDAR_IS_PUBLIC = "google_calendar_is_public"
|
|
27
27
|
GOOGLE_CALENDAR_LINK = "google_calendar_link"
|
|
28
|
+
HAS_COMPLIANCE_REQUIREMENTS = "has_compliance_requirements"
|
|
28
29
|
IMAGE = "image"
|
|
29
30
|
INTEGRATION_GUIDE = "integration_guide"
|
|
30
31
|
INTEGRATION_STATUS = "integration_status"
|
|
@@ -25,6 +25,7 @@ class MarketplaceProviderOfferingsUserHasResourceAccessRetrieveFieldItem(str, En
|
|
|
25
25
|
GETTING_STARTED = "getting_started"
|
|
26
26
|
GOOGLE_CALENDAR_IS_PUBLIC = "google_calendar_is_public"
|
|
27
27
|
GOOGLE_CALENDAR_LINK = "google_calendar_link"
|
|
28
|
+
HAS_COMPLIANCE_REQUIREMENTS = "has_compliance_requirements"
|
|
28
29
|
IMAGE = "image"
|
|
29
30
|
INTEGRATION_GUIDE = "integration_guide"
|
|
30
31
|
INTEGRATION_STATUS = "integration_status"
|
|
@@ -25,6 +25,7 @@ class MarketplacePublicOfferingsListFieldItem(str, Enum):
|
|
|
25
25
|
GETTING_STARTED = "getting_started"
|
|
26
26
|
GOOGLE_CALENDAR_IS_PUBLIC = "google_calendar_is_public"
|
|
27
27
|
GOOGLE_CALENDAR_LINK = "google_calendar_link"
|
|
28
|
+
HAS_COMPLIANCE_REQUIREMENTS = "has_compliance_requirements"
|
|
28
29
|
IMAGE = "image"
|
|
29
30
|
INTEGRATION_GUIDE = "integration_guide"
|
|
30
31
|
LATITUDE = "latitude"
|
|
@@ -25,6 +25,7 @@ class MarketplacePublicOfferingsRetrieveFieldItem(str, Enum):
|
|
|
25
25
|
GETTING_STARTED = "getting_started"
|
|
26
26
|
GOOGLE_CALENDAR_IS_PUBLIC = "google_calendar_is_public"
|
|
27
27
|
GOOGLE_CALENDAR_LINK = "google_calendar_link"
|
|
28
|
+
HAS_COMPLIANCE_REQUIREMENTS = "has_compliance_requirements"
|
|
28
29
|
IMAGE = "image"
|
|
29
30
|
INTEGRATION_GUIDE = "integration_guide"
|
|
30
31
|
LATITUDE = "latitude"
|
|
@@ -0,0 +1,142 @@
|
|
|
1
|
+
from collections.abc import Mapping
|
|
2
|
+
from typing import TYPE_CHECKING, 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
|
+
if TYPE_CHECKING:
|
|
10
|
+
from ..models.rancher_nested_node_request import RancherNestedNodeRequest
|
|
11
|
+
|
|
12
|
+
|
|
13
|
+
T = TypeVar("T", bound="MarketplaceRancherCreateOrderAttributes")
|
|
14
|
+
|
|
15
|
+
|
|
16
|
+
@_attrs_define
|
|
17
|
+
class MarketplaceRancherCreateOrderAttributes:
|
|
18
|
+
"""This mixin allows to specify list of fields to be rendered by serializer.
|
|
19
|
+
It expects that request is available in serializer's context.
|
|
20
|
+
|
|
21
|
+
Attributes:
|
|
22
|
+
name (str):
|
|
23
|
+
nodes (list['RancherNestedNodeRequest']):
|
|
24
|
+
description (Union[Unset, str]):
|
|
25
|
+
tenant (Union[Unset, str]):
|
|
26
|
+
ssh_public_key (Union[Unset, str]):
|
|
27
|
+
install_longhorn (Union[Unset, bool]): Longhorn is a distributed block storage deployed on top of Kubernetes
|
|
28
|
+
cluster Default: False.
|
|
29
|
+
vm_project (Union[None, Unset, str]):
|
|
30
|
+
"""
|
|
31
|
+
|
|
32
|
+
name: str
|
|
33
|
+
nodes: list["RancherNestedNodeRequest"]
|
|
34
|
+
description: Union[Unset, str] = UNSET
|
|
35
|
+
tenant: Union[Unset, str] = UNSET
|
|
36
|
+
ssh_public_key: Union[Unset, str] = UNSET
|
|
37
|
+
install_longhorn: Union[Unset, bool] = False
|
|
38
|
+
vm_project: Union[None, Unset, str] = UNSET
|
|
39
|
+
additional_properties: dict[str, Any] = _attrs_field(init=False, factory=dict)
|
|
40
|
+
|
|
41
|
+
def to_dict(self) -> dict[str, Any]:
|
|
42
|
+
name = self.name
|
|
43
|
+
|
|
44
|
+
nodes = []
|
|
45
|
+
for nodes_item_data in self.nodes:
|
|
46
|
+
nodes_item = nodes_item_data.to_dict()
|
|
47
|
+
nodes.append(nodes_item)
|
|
48
|
+
|
|
49
|
+
description = self.description
|
|
50
|
+
|
|
51
|
+
tenant = self.tenant
|
|
52
|
+
|
|
53
|
+
ssh_public_key = self.ssh_public_key
|
|
54
|
+
|
|
55
|
+
install_longhorn = self.install_longhorn
|
|
56
|
+
|
|
57
|
+
vm_project: Union[None, Unset, str]
|
|
58
|
+
if isinstance(self.vm_project, Unset):
|
|
59
|
+
vm_project = UNSET
|
|
60
|
+
else:
|
|
61
|
+
vm_project = self.vm_project
|
|
62
|
+
|
|
63
|
+
field_dict: dict[str, Any] = {}
|
|
64
|
+
field_dict.update(self.additional_properties)
|
|
65
|
+
field_dict.update(
|
|
66
|
+
{
|
|
67
|
+
"name": name,
|
|
68
|
+
"nodes": nodes,
|
|
69
|
+
}
|
|
70
|
+
)
|
|
71
|
+
if description is not UNSET:
|
|
72
|
+
field_dict["description"] = description
|
|
73
|
+
if tenant is not UNSET:
|
|
74
|
+
field_dict["tenant"] = tenant
|
|
75
|
+
if ssh_public_key is not UNSET:
|
|
76
|
+
field_dict["ssh_public_key"] = ssh_public_key
|
|
77
|
+
if install_longhorn is not UNSET:
|
|
78
|
+
field_dict["install_longhorn"] = install_longhorn
|
|
79
|
+
if vm_project is not UNSET:
|
|
80
|
+
field_dict["vm_project"] = vm_project
|
|
81
|
+
|
|
82
|
+
return field_dict
|
|
83
|
+
|
|
84
|
+
@classmethod
|
|
85
|
+
def from_dict(cls: type[T], src_dict: Mapping[str, Any]) -> T:
|
|
86
|
+
from ..models.rancher_nested_node_request import RancherNestedNodeRequest
|
|
87
|
+
|
|
88
|
+
d = dict(src_dict)
|
|
89
|
+
name = d.pop("name")
|
|
90
|
+
|
|
91
|
+
nodes = []
|
|
92
|
+
_nodes = d.pop("nodes")
|
|
93
|
+
for nodes_item_data in _nodes:
|
|
94
|
+
nodes_item = RancherNestedNodeRequest.from_dict(nodes_item_data)
|
|
95
|
+
|
|
96
|
+
nodes.append(nodes_item)
|
|
97
|
+
|
|
98
|
+
description = d.pop("description", UNSET)
|
|
99
|
+
|
|
100
|
+
tenant = d.pop("tenant", UNSET)
|
|
101
|
+
|
|
102
|
+
ssh_public_key = d.pop("ssh_public_key", UNSET)
|
|
103
|
+
|
|
104
|
+
install_longhorn = d.pop("install_longhorn", UNSET)
|
|
105
|
+
|
|
106
|
+
def _parse_vm_project(data: object) -> Union[None, Unset, str]:
|
|
107
|
+
if data is None:
|
|
108
|
+
return data
|
|
109
|
+
if isinstance(data, Unset):
|
|
110
|
+
return data
|
|
111
|
+
return cast(Union[None, Unset, str], data)
|
|
112
|
+
|
|
113
|
+
vm_project = _parse_vm_project(d.pop("vm_project", UNSET))
|
|
114
|
+
|
|
115
|
+
marketplace_rancher_create_order_attributes = cls(
|
|
116
|
+
name=name,
|
|
117
|
+
nodes=nodes,
|
|
118
|
+
description=description,
|
|
119
|
+
tenant=tenant,
|
|
120
|
+
ssh_public_key=ssh_public_key,
|
|
121
|
+
install_longhorn=install_longhorn,
|
|
122
|
+
vm_project=vm_project,
|
|
123
|
+
)
|
|
124
|
+
|
|
125
|
+
marketplace_rancher_create_order_attributes.additional_properties = d
|
|
126
|
+
return marketplace_rancher_create_order_attributes
|
|
127
|
+
|
|
128
|
+
@property
|
|
129
|
+
def additional_keys(self) -> list[str]:
|
|
130
|
+
return list(self.additional_properties.keys())
|
|
131
|
+
|
|
132
|
+
def __getitem__(self, key: str) -> Any:
|
|
133
|
+
return self.additional_properties[key]
|
|
134
|
+
|
|
135
|
+
def __setitem__(self, key: str, value: Any) -> None:
|
|
136
|
+
self.additional_properties[key] = value
|
|
137
|
+
|
|
138
|
+
def __delitem__(self, key: str) -> None:
|
|
139
|
+
del self.additional_properties[key]
|
|
140
|
+
|
|
141
|
+
def __contains__(self, key: str) -> bool:
|
|
142
|
+
return key in self.additional_properties
|
|
@@ -0,0 +1,32 @@
|
|
|
1
|
+
from enum import Enum
|
|
2
|
+
|
|
3
|
+
|
|
4
|
+
class MarketplaceRobotAccountsListFieldItem(str, Enum):
|
|
5
|
+
BACKEND_ID = "backend_id"
|
|
6
|
+
CREATED = "created"
|
|
7
|
+
CUSTOMER_NAME = "customer_name"
|
|
8
|
+
CUSTOMER_UUID = "customer_uuid"
|
|
9
|
+
DESCRIPTION = "description"
|
|
10
|
+
ERROR_MESSAGE = "error_message"
|
|
11
|
+
ERROR_TRACEBACK = "error_traceback"
|
|
12
|
+
FINGERPRINTS = "fingerprints"
|
|
13
|
+
KEYS = "keys"
|
|
14
|
+
MODIFIED = "modified"
|
|
15
|
+
OFFERING_CUSTOMER_UUID = "offering_customer_uuid"
|
|
16
|
+
OFFERING_PLUGIN_OPTIONS = "offering_plugin_options"
|
|
17
|
+
PROJECT_NAME = "project_name"
|
|
18
|
+
PROJECT_UUID = "project_uuid"
|
|
19
|
+
RESOURCE = "resource"
|
|
20
|
+
RESOURCE_NAME = "resource_name"
|
|
21
|
+
RESOURCE_UUID = "resource_uuid"
|
|
22
|
+
RESPONSIBLE_USER = "responsible_user"
|
|
23
|
+
STATE = "state"
|
|
24
|
+
TYPE = "type"
|
|
25
|
+
URL = "url"
|
|
26
|
+
USERNAME = "username"
|
|
27
|
+
USERS = "users"
|
|
28
|
+
USER_KEYS = "user_keys"
|
|
29
|
+
UUID = "uuid"
|
|
30
|
+
|
|
31
|
+
def __str__(self) -> str:
|
|
32
|
+
return str(self.value)
|
|
@@ -0,0 +1,32 @@
|
|
|
1
|
+
from enum import Enum
|
|
2
|
+
|
|
3
|
+
|
|
4
|
+
class MarketplaceRobotAccountsRetrieveFieldItem(str, Enum):
|
|
5
|
+
BACKEND_ID = "backend_id"
|
|
6
|
+
CREATED = "created"
|
|
7
|
+
CUSTOMER_NAME = "customer_name"
|
|
8
|
+
CUSTOMER_UUID = "customer_uuid"
|
|
9
|
+
DESCRIPTION = "description"
|
|
10
|
+
ERROR_MESSAGE = "error_message"
|
|
11
|
+
ERROR_TRACEBACK = "error_traceback"
|
|
12
|
+
FINGERPRINTS = "fingerprints"
|
|
13
|
+
KEYS = "keys"
|
|
14
|
+
MODIFIED = "modified"
|
|
15
|
+
OFFERING_CUSTOMER_UUID = "offering_customer_uuid"
|
|
16
|
+
OFFERING_PLUGIN_OPTIONS = "offering_plugin_options"
|
|
17
|
+
PROJECT_NAME = "project_name"
|
|
18
|
+
PROJECT_UUID = "project_uuid"
|
|
19
|
+
RESOURCE = "resource"
|
|
20
|
+
RESOURCE_NAME = "resource_name"
|
|
21
|
+
RESOURCE_UUID = "resource_uuid"
|
|
22
|
+
RESPONSIBLE_USER = "responsible_user"
|
|
23
|
+
STATE = "state"
|
|
24
|
+
TYPE = "type"
|
|
25
|
+
URL = "url"
|
|
26
|
+
USERNAME = "username"
|
|
27
|
+
USERS = "users"
|
|
28
|
+
USER_KEYS = "user_keys"
|
|
29
|
+
UUID = "uuid"
|
|
30
|
+
|
|
31
|
+
def __str__(self) -> str:
|
|
32
|
+
return str(self.value)
|
|
@@ -96,6 +96,7 @@ class Offering:
|
|
|
96
96
|
parent_uuid (Union[None, UUID, Unset]):
|
|
97
97
|
parent_name (Union[None, Unset, str]):
|
|
98
98
|
backend_metadata (Union[Unset, Any]):
|
|
99
|
+
has_compliance_requirements (Union[Unset, bool]):
|
|
99
100
|
googlecalendar (Union[Unset, GoogleCalendar]):
|
|
100
101
|
"""
|
|
101
102
|
|
|
@@ -160,6 +161,7 @@ class Offering:
|
|
|
160
161
|
parent_uuid: Union[None, UUID, Unset] = UNSET
|
|
161
162
|
parent_name: Union[None, Unset, str] = UNSET
|
|
162
163
|
backend_metadata: Union[Unset, Any] = UNSET
|
|
164
|
+
has_compliance_requirements: Union[Unset, bool] = UNSET
|
|
163
165
|
googlecalendar: Union[Unset, "GoogleCalendar"] = UNSET
|
|
164
166
|
additional_properties: dict[str, Any] = _attrs_field(init=False, factory=dict)
|
|
165
167
|
|
|
@@ -440,6 +442,8 @@ class Offering:
|
|
|
440
442
|
|
|
441
443
|
backend_metadata = self.backend_metadata
|
|
442
444
|
|
|
445
|
+
has_compliance_requirements = self.has_compliance_requirements
|
|
446
|
+
|
|
443
447
|
googlecalendar: Union[Unset, dict[str, Any]] = UNSET
|
|
444
448
|
if not isinstance(self.googlecalendar, Unset):
|
|
445
449
|
googlecalendar = self.googlecalendar.to_dict()
|
|
@@ -569,6 +573,8 @@ class Offering:
|
|
|
569
573
|
field_dict["parent_name"] = parent_name
|
|
570
574
|
if backend_metadata is not UNSET:
|
|
571
575
|
field_dict["backend_metadata"] = backend_metadata
|
|
576
|
+
if has_compliance_requirements is not UNSET:
|
|
577
|
+
field_dict["has_compliance_requirements"] = has_compliance_requirements
|
|
572
578
|
if googlecalendar is not UNSET:
|
|
573
579
|
field_dict["googlecalendar"] = googlecalendar
|
|
574
580
|
|
|
@@ -997,6 +1003,8 @@ class Offering:
|
|
|
997
1003
|
|
|
998
1004
|
backend_metadata = d.pop("backend_metadata", UNSET)
|
|
999
1005
|
|
|
1006
|
+
has_compliance_requirements = d.pop("has_compliance_requirements", UNSET)
|
|
1007
|
+
|
|
1000
1008
|
_googlecalendar = d.pop("googlecalendar", UNSET)
|
|
1001
1009
|
googlecalendar: Union[Unset, GoogleCalendar]
|
|
1002
1010
|
if isinstance(_googlecalendar, Unset):
|
|
@@ -1066,6 +1074,7 @@ class Offering:
|
|
|
1066
1074
|
parent_uuid=parent_uuid,
|
|
1067
1075
|
parent_name=parent_name,
|
|
1068
1076
|
backend_metadata=backend_metadata,
|
|
1077
|
+
has_compliance_requirements=has_compliance_requirements,
|
|
1069
1078
|
googlecalendar=googlecalendar,
|
|
1070
1079
|
)
|
|
1071
1080
|
|
|
@@ -73,6 +73,7 @@ class OfferingCreate:
|
|
|
73
73
|
parent_description (Union[None, str]):
|
|
74
74
|
parent_uuid (Union[None, UUID]):
|
|
75
75
|
parent_name (Union[None, str]):
|
|
76
|
+
has_compliance_requirements (bool):
|
|
76
77
|
description (Union[Unset, str]):
|
|
77
78
|
full_description (Union[Unset, str]):
|
|
78
79
|
terms_of_service (Union[Unset, str]):
|
|
@@ -138,6 +139,7 @@ class OfferingCreate:
|
|
|
138
139
|
parent_description: Union[None, str]
|
|
139
140
|
parent_uuid: Union[None, UUID]
|
|
140
141
|
parent_name: Union[None, str]
|
|
142
|
+
has_compliance_requirements: bool
|
|
141
143
|
description: Union[Unset, str] = UNSET
|
|
142
144
|
full_description: Union[Unset, str] = UNSET
|
|
143
145
|
terms_of_service: Union[Unset, str] = UNSET
|
|
@@ -293,6 +295,8 @@ class OfferingCreate:
|
|
|
293
295
|
parent_name: Union[None, str]
|
|
294
296
|
parent_name = self.parent_name
|
|
295
297
|
|
|
298
|
+
has_compliance_requirements = self.has_compliance_requirements
|
|
299
|
+
|
|
296
300
|
description = self.description
|
|
297
301
|
|
|
298
302
|
full_description = self.full_description
|
|
@@ -425,6 +429,7 @@ class OfferingCreate:
|
|
|
425
429
|
"parent_description": parent_description,
|
|
426
430
|
"parent_uuid": parent_uuid,
|
|
427
431
|
"parent_name": parent_name,
|
|
432
|
+
"has_compliance_requirements": has_compliance_requirements,
|
|
428
433
|
}
|
|
429
434
|
)
|
|
430
435
|
if description is not UNSET:
|
|
@@ -725,6 +730,8 @@ class OfferingCreate:
|
|
|
725
730
|
|
|
726
731
|
parent_name = _parse_parent_name(d.pop("parent_name"))
|
|
727
732
|
|
|
733
|
+
has_compliance_requirements = d.pop("has_compliance_requirements")
|
|
734
|
+
|
|
728
735
|
description = d.pop("description", UNSET)
|
|
729
736
|
|
|
730
737
|
full_description = d.pop("full_description", UNSET)
|
|
@@ -886,6 +893,7 @@ class OfferingCreate:
|
|
|
886
893
|
parent_description=parent_description,
|
|
887
894
|
parent_uuid=parent_uuid,
|
|
888
895
|
parent_name=parent_name,
|
|
896
|
+
has_compliance_requirements=has_compliance_requirements,
|
|
889
897
|
description=description,
|
|
890
898
|
full_description=full_description,
|
|
891
899
|
terms_of_service=terms_of_service,
|
|
@@ -22,8 +22,8 @@ class OpenStackBackendInstance:
|
|
|
22
22
|
key_name (Union[Unset, str]):
|
|
23
23
|
start_time (Union[None, Unset, datetime.datetime]):
|
|
24
24
|
runtime_state (Union[Unset, str]):
|
|
25
|
-
backend_id (Union[None, Unset, str]):
|
|
26
|
-
hypervisor_hostname (Union[Unset, str]):
|
|
25
|
+
backend_id (Union[None, Unset, str]): Instance ID in the OpenStack backend
|
|
26
|
+
hypervisor_hostname (Union[Unset, str]): Name of the hypervisor hosting this instance
|
|
27
27
|
"""
|
|
28
28
|
|
|
29
29
|
name: str
|
|
@@ -19,9 +19,9 @@ class OpenStackBackendVolumes:
|
|
|
19
19
|
state (str):
|
|
20
20
|
availability_zone (str):
|
|
21
21
|
description (Union[Unset, str]):
|
|
22
|
-
metadata (Union[Unset, str]):
|
|
23
|
-
backend_id (Union[None, Unset, str]):
|
|
24
|
-
bootable (Union[Unset, bool]):
|
|
22
|
+
metadata (Union[Unset, str]): Arbitrary key-value pairs associated with the volume
|
|
23
|
+
backend_id (Union[None, Unset, str]): Volume ID in the OpenStack backend
|
|
24
|
+
bootable (Union[Unset, bool]): Indicates if this volume can be used to boot an instance
|
|
25
25
|
runtime_state (Union[Unset, str]):
|
|
26
26
|
"""
|
|
27
27
|
|
|
@@ -53,7 +53,7 @@ class OpenStackBackup:
|
|
|
53
53
|
access_url (Union[None, Unset, str]):
|
|
54
54
|
kept_until (Union[None, Unset, datetime.datetime]): Guaranteed time of backup retention. If null - keep forever.
|
|
55
55
|
metadata (Union[Unset, Any]):
|
|
56
|
-
instance (Union[Unset, str]):
|
|
56
|
+
instance (Union[Unset, str]): Instance that this backup is created from
|
|
57
57
|
instance_name (Union[Unset, str]):
|
|
58
58
|
instance_marketplace_uuid (Union[Unset, UUID]):
|
|
59
59
|
restorations (Union[Unset, list['OpenStackBackupRestoration']]):
|
|
@@ -23,13 +23,16 @@ class OpenStackBackupRestoration:
|
|
|
23
23
|
"""
|
|
24
24
|
Attributes:
|
|
25
25
|
uuid (Union[Unset, UUID]):
|
|
26
|
-
instance (Union[Unset, str]):
|
|
26
|
+
instance (Union[Unset, str]): Instance that is being restored from the backup
|
|
27
27
|
created (Union[Unset, datetime.datetime]):
|
|
28
|
-
flavor (Union[Unset, str]):
|
|
28
|
+
flavor (Union[Unset, str]): Flavor to be used for the restored instance. If not specified, original instance
|
|
29
|
+
flavor will be used
|
|
29
30
|
name (Union[Unset, str]): New instance name. Leave blank to use source instance name.
|
|
30
|
-
floating_ips (Union[Unset, list['OpenStackNestedFloatingIP']]):
|
|
31
|
-
|
|
32
|
-
|
|
31
|
+
floating_ips (Union[Unset, list['OpenStackNestedFloatingIP']]): Floating IPs that will be assigned to the
|
|
32
|
+
restored instance
|
|
33
|
+
security_groups (Union[Unset, list['OpenStackNestedSecurityGroup']]): Security groups that will be assigned to
|
|
34
|
+
the restored instance
|
|
35
|
+
ports (Union[Unset, list['OpenStackNestedPort']]): Network ports that will be attached to the restored instance
|
|
33
36
|
"""
|
|
34
37
|
|
|
35
38
|
uuid: Union[Unset, UUID] = UNSET
|
|
@@ -9,6 +9,7 @@ from ..types import UNSET, Unset
|
|
|
9
9
|
if TYPE_CHECKING:
|
|
10
10
|
from ..models.open_stack_nested_floating_ip_request import OpenStackNestedFloatingIPRequest
|
|
11
11
|
from ..models.open_stack_nested_port_request import OpenStackNestedPortRequest
|
|
12
|
+
from ..models.open_stack_nested_security_group_request import OpenStackNestedSecurityGroupRequest
|
|
12
13
|
|
|
13
14
|
|
|
14
15
|
T = TypeVar("T", bound="OpenStackBackupRestorationRequest")
|
|
@@ -18,15 +19,21 @@ T = TypeVar("T", bound="OpenStackBackupRestorationRequest")
|
|
|
18
19
|
class OpenStackBackupRestorationRequest:
|
|
19
20
|
"""
|
|
20
21
|
Attributes:
|
|
21
|
-
flavor (str):
|
|
22
|
+
flavor (str): Flavor to be used for the restored instance. If not specified, original instance flavor will be
|
|
23
|
+
used
|
|
22
24
|
name (Union[Unset, str]): New instance name. Leave blank to use source instance name.
|
|
23
|
-
floating_ips (Union[Unset, list['OpenStackNestedFloatingIPRequest']]):
|
|
24
|
-
|
|
25
|
+
floating_ips (Union[Unset, list['OpenStackNestedFloatingIPRequest']]): Floating IPs that will be assigned to the
|
|
26
|
+
restored instance
|
|
27
|
+
security_groups (Union[Unset, list['OpenStackNestedSecurityGroupRequest']]): Security groups that will be
|
|
28
|
+
assigned to the restored instance
|
|
29
|
+
ports (Union[Unset, list['OpenStackNestedPortRequest']]): Network ports that will be attached to the restored
|
|
30
|
+
instance
|
|
25
31
|
"""
|
|
26
32
|
|
|
27
33
|
flavor: str
|
|
28
34
|
name: Union[Unset, str] = UNSET
|
|
29
35
|
floating_ips: Union[Unset, list["OpenStackNestedFloatingIPRequest"]] = UNSET
|
|
36
|
+
security_groups: Union[Unset, list["OpenStackNestedSecurityGroupRequest"]] = UNSET
|
|
30
37
|
ports: Union[Unset, list["OpenStackNestedPortRequest"]] = UNSET
|
|
31
38
|
additional_properties: dict[str, Any] = _attrs_field(init=False, factory=dict)
|
|
32
39
|
|
|
@@ -42,6 +49,13 @@ class OpenStackBackupRestorationRequest:
|
|
|
42
49
|
floating_ips_item = floating_ips_item_data.to_dict()
|
|
43
50
|
floating_ips.append(floating_ips_item)
|
|
44
51
|
|
|
52
|
+
security_groups: Union[Unset, list[dict[str, Any]]] = UNSET
|
|
53
|
+
if not isinstance(self.security_groups, Unset):
|
|
54
|
+
security_groups = []
|
|
55
|
+
for security_groups_item_data in self.security_groups:
|
|
56
|
+
security_groups_item = security_groups_item_data.to_dict()
|
|
57
|
+
security_groups.append(security_groups_item)
|
|
58
|
+
|
|
45
59
|
ports: Union[Unset, list[dict[str, Any]]] = UNSET
|
|
46
60
|
if not isinstance(self.ports, Unset):
|
|
47
61
|
ports = []
|
|
@@ -60,6 +74,8 @@ class OpenStackBackupRestorationRequest:
|
|
|
60
74
|
field_dict["name"] = name
|
|
61
75
|
if floating_ips is not UNSET:
|
|
62
76
|
field_dict["floating_ips"] = floating_ips
|
|
77
|
+
if security_groups is not UNSET:
|
|
78
|
+
field_dict["security_groups"] = security_groups
|
|
63
79
|
if ports is not UNSET:
|
|
64
80
|
field_dict["ports"] = ports
|
|
65
81
|
|
|
@@ -69,6 +85,7 @@ class OpenStackBackupRestorationRequest:
|
|
|
69
85
|
def from_dict(cls: type[T], src_dict: Mapping[str, Any]) -> T:
|
|
70
86
|
from ..models.open_stack_nested_floating_ip_request import OpenStackNestedFloatingIPRequest
|
|
71
87
|
from ..models.open_stack_nested_port_request import OpenStackNestedPortRequest
|
|
88
|
+
from ..models.open_stack_nested_security_group_request import OpenStackNestedSecurityGroupRequest
|
|
72
89
|
|
|
73
90
|
d = dict(src_dict)
|
|
74
91
|
flavor = d.pop("flavor")
|
|
@@ -82,6 +99,13 @@ class OpenStackBackupRestorationRequest:
|
|
|
82
99
|
|
|
83
100
|
floating_ips.append(floating_ips_item)
|
|
84
101
|
|
|
102
|
+
security_groups = []
|
|
103
|
+
_security_groups = d.pop("security_groups", UNSET)
|
|
104
|
+
for security_groups_item_data in _security_groups or []:
|
|
105
|
+
security_groups_item = OpenStackNestedSecurityGroupRequest.from_dict(security_groups_item_data)
|
|
106
|
+
|
|
107
|
+
security_groups.append(security_groups_item)
|
|
108
|
+
|
|
85
109
|
ports = []
|
|
86
110
|
_ports = d.pop("ports", UNSET)
|
|
87
111
|
for ports_item_data in _ports or []:
|
|
@@ -93,6 +117,7 @@ class OpenStackBackupRestorationRequest:
|
|
|
93
117
|
flavor=flavor,
|
|
94
118
|
name=name,
|
|
95
119
|
floating_ips=floating_ips,
|
|
120
|
+
security_groups=security_groups,
|
|
96
121
|
ports=ports,
|
|
97
122
|
)
|
|
98
123
|
|