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.

Files changed (122) hide show
  1. waldur_api_client/api/marketplace_offering_users/marketplace_offering_users_checklist_retrieve.py +154 -0
  2. waldur_api_client/api/marketplace_offering_users/marketplace_offering_users_checklist_review_retrieve.py +154 -0
  3. waldur_api_client/api/marketplace_offering_users/marketplace_offering_users_completion_review_status_retrieve.py +154 -0
  4. waldur_api_client/api/marketplace_offering_users/marketplace_offering_users_completion_status_retrieve.py +154 -0
  5. waldur_api_client/api/marketplace_offering_users/marketplace_offering_users_submit_answers.py +179 -0
  6. waldur_api_client/api/marketplace_robot_accounts/marketplace_robot_accounts_list.py +23 -0
  7. waldur_api_client/api/marketplace_robot_accounts/marketplace_robot_accounts_retrieve.py +30 -1
  8. waldur_api_client/api/marketplace_service_providers/marketplace_service_providers_project_service_accounts_list.py +276 -0
  9. waldur_api_client/api/marketplace_service_providers/service_provider_compliance_overview.py +189 -0
  10. waldur_api_client/api/marketplace_service_providers/service_provider_offering_users_compliance.py +222 -0
  11. waldur_api_client/api/public_maintenance_announcements/__init__.py +1 -0
  12. waldur_api_client/api/public_maintenance_announcements/public_maintenance_announcements_count.py +325 -0
  13. waldur_api_client/api/public_maintenance_announcements/public_maintenance_announcements_list.py +328 -0
  14. waldur_api_client/api/public_maintenance_announcements/public_maintenance_announcements_retrieve.py +144 -0
  15. waldur_api_client/models/__init__.py +56 -4
  16. waldur_api_client/models/admin_announcement.py +109 -1
  17. waldur_api_client/models/admin_announcement_maintenance_affected_offerings_item.py +103 -0
  18. waldur_api_client/models/admin_announcements_list_field_item.py +8 -0
  19. waldur_api_client/models/admin_announcements_retrieve_field_item.py +8 -0
  20. waldur_api_client/models/azure_sql_server_create_order_attributes.py +80 -0
  21. waldur_api_client/models/azure_virtual_machine_create_order_attributes.py +96 -0
  22. waldur_api_client/models/basic_user.py +30 -21
  23. waldur_api_client/models/booking_offerings_list_field_item.py +1 -0
  24. waldur_api_client/models/booking_offerings_retrieve_field_item.py +1 -0
  25. waldur_api_client/models/create_router.py +1 -1
  26. waldur_api_client/models/create_router_request.py +1 -1
  27. waldur_api_client/models/customer.py +0 -30
  28. waldur_api_client/models/customers_list_field_item.py +0 -2
  29. waldur_api_client/models/customers_retrieve_field_item.py +0 -2
  30. waldur_api_client/models/fingerprint.py +19 -17
  31. waldur_api_client/models/instance_flavor_change_request.py +1 -1
  32. waldur_api_client/models/marketplace_managed_rancher_create_order_attributes.py +144 -0
  33. waldur_api_client/models/marketplace_provider_offerings_list_customer_service_accounts_retrieve_field_item.py +1 -0
  34. waldur_api_client/models/marketplace_provider_offerings_list_field_item.py +1 -0
  35. waldur_api_client/models/marketplace_provider_offerings_list_project_service_accounts_retrieve_field_item.py +1 -0
  36. waldur_api_client/models/marketplace_provider_offerings_retrieve_field_item.py +1 -0
  37. waldur_api_client/models/marketplace_provider_offerings_stats_retrieve_field_item.py +1 -0
  38. waldur_api_client/models/marketplace_provider_offerings_user_has_resource_access_retrieve_field_item.py +1 -0
  39. waldur_api_client/models/marketplace_public_offerings_list_field_item.py +1 -0
  40. waldur_api_client/models/marketplace_public_offerings_retrieve_field_item.py +1 -0
  41. waldur_api_client/models/marketplace_rancher_create_order_attributes.py +142 -0
  42. waldur_api_client/models/marketplace_robot_accounts_list_field_item.py +32 -0
  43. waldur_api_client/models/marketplace_robot_accounts_retrieve_field_item.py +32 -0
  44. waldur_api_client/models/offering.py +9 -0
  45. waldur_api_client/models/offering_create.py +8 -0
  46. waldur_api_client/models/open_stack_backend_instance.py +2 -2
  47. waldur_api_client/models/open_stack_backend_volumes.py +3 -3
  48. waldur_api_client/models/open_stack_backup.py +1 -1
  49. waldur_api_client/models/open_stack_backup_restoration.py +8 -5
  50. waldur_api_client/models/open_stack_backup_restoration_request.py +28 -3
  51. waldur_api_client/models/open_stack_fixed_ip.py +2 -2
  52. waldur_api_client/models/open_stack_fixed_ip_request.py +2 -2
  53. waldur_api_client/models/open_stack_floating_ip.py +5 -4
  54. waldur_api_client/models/open_stack_instance.py +17 -15
  55. waldur_api_client/models/open_stack_instance_allowed_address_pairs_update_request.py +3 -2
  56. waldur_api_client/models/open_stack_instance_availability_zone.py +1 -1
  57. waldur_api_client/models/open_stack_instance_create_order_attributes.py +280 -0
  58. waldur_api_client/models/open_stack_instance_request.py +4 -3
  59. waldur_api_client/models/open_stack_instance_security_groups_update_request.py +1 -1
  60. waldur_api_client/models/open_stack_nested_floating_ip.py +3 -3
  61. waldur_api_client/models/open_stack_nested_instance.py +1 -1
  62. waldur_api_client/models/open_stack_nested_port.py +5 -5
  63. waldur_api_client/models/open_stack_nested_port_request.py +1 -1
  64. waldur_api_client/models/open_stack_nested_security_group.py +1 -53
  65. waldur_api_client/models/open_stack_nested_security_group_request.py +59 -0
  66. waldur_api_client/models/open_stack_nested_sub_net.py +4 -4
  67. waldur_api_client/models/open_stack_nested_sub_net_request.py +4 -4
  68. waldur_api_client/models/open_stack_nested_volume.py +3 -3
  69. waldur_api_client/models/open_stack_nested_volume_request.py +3 -3
  70. waldur_api_client/models/open_stack_network.py +3 -3
  71. waldur_api_client/models/open_stack_port.py +10 -9
  72. waldur_api_client/models/open_stack_port_ip_update_request.py +2 -2
  73. waldur_api_client/models/open_stack_port_request.py +3 -3
  74. waldur_api_client/models/open_stack_router.py +2 -2
  75. waldur_api_client/models/open_stack_router_interface_request.py +4 -2
  76. waldur_api_client/models/open_stack_security_group_rule_create.py +6 -5
  77. waldur_api_client/models/open_stack_security_group_rule_create_request.py +6 -5
  78. waldur_api_client/models/open_stack_security_group_rule_update_request.py +6 -5
  79. waldur_api_client/models/open_stack_server_group.py +2 -1
  80. waldur_api_client/models/open_stack_server_group_request.py +2 -1
  81. waldur_api_client/models/open_stack_snapshot.py +2 -2
  82. waldur_api_client/models/open_stack_snapshot_restoration.py +1 -1
  83. waldur_api_client/models/open_stack_sub_net.py +5 -5
  84. waldur_api_client/models/open_stack_sub_net_request.py +2 -2
  85. waldur_api_client/models/open_stack_tenant.py +3 -3
  86. waldur_api_client/models/open_stack_tenant_create_order_attributes.py +109 -0
  87. waldur_api_client/models/open_stack_volume.py +9 -9
  88. waldur_api_client/models/open_stack_volume_create_order_attributes.py +152 -0
  89. waldur_api_client/models/open_stack_volume_request.py +1 -1
  90. waldur_api_client/models/order_create_request.py +165 -4
  91. waldur_api_client/models/patched_open_stack_instance_request.py +4 -3
  92. waldur_api_client/models/patched_open_stack_server_group_request.py +2 -1
  93. waldur_api_client/models/patched_open_stack_sub_net_request.py +2 -2
  94. waldur_api_client/models/patched_open_stack_volume_request.py +1 -1
  95. waldur_api_client/models/permission_request.py +2 -2
  96. waldur_api_client/models/provider_offering_details.py +9 -0
  97. waldur_api_client/models/public_maintenance_announcement.py +217 -0
  98. waldur_api_client/models/public_maintenance_announcement_state_enum.py +10 -0
  99. waldur_api_client/models/public_maintenance_announcements_count_o_item.py +15 -0
  100. waldur_api_client/models/public_maintenance_announcements_count_state_item.py +12 -0
  101. waldur_api_client/models/public_maintenance_announcements_list_o_item.py +15 -0
  102. waldur_api_client/models/public_maintenance_announcements_list_state_item.py +12 -0
  103. waldur_api_client/models/public_offering_details.py +9 -0
  104. waldur_api_client/models/rancher_cluster_security_group_rule.py +5 -4
  105. waldur_api_client/models/rancher_cluster_security_group_rule_request.py +5 -4
  106. waldur_api_client/models/remote_project_update_request.py +2 -2
  107. waldur_api_client/models/robot_account_details.py +226 -144
  108. waldur_api_client/models/service_provider_compliance_overview.py +122 -0
  109. waldur_api_client/models/service_provider_offering_user_compliance.py +179 -0
  110. waldur_api_client/models/service_provider_offering_user_compliance_state_enum.py +17 -0
  111. waldur_api_client/models/slurm_invoices_slurm_package_create_order_attributes.py +72 -0
  112. waldur_api_client/models/v_mware_virtual_machine_create_order_attributes.py +225 -0
  113. waldur_api_client/models/v_mware_virtual_machine_create_order_attributes_guest_os_type_1.py +155 -0
  114. waldur_api_client/models/v_mware_virtual_machine_create_order_attributes_guest_os_type_2_type_1.py +155 -0
  115. waldur_api_client/models/v_mware_virtual_machine_create_order_attributes_guest_os_type_3_type_1.py +155 -0
  116. waldur_api_client/models/volume_attach_request.py +1 -1
  117. {waldur_api_client-7.7.5.dist-info → waldur_api_client-7.7.6.dist-info}/METADATA +1 -1
  118. {waldur_api_client-7.7.5.dist-info → waldur_api_client-7.7.6.dist-info}/RECORD +120 -85
  119. waldur_api_client/models/nested_security_group_rule.py +0 -222
  120. waldur_api_client/models/nested_security_group_rule_request.py +0 -187
  121. {waldur_api_client-7.7.5.dist-info → waldur_api_client-7.7.6.dist-info}/LICENSE +0 -0
  122. {waldur_api_client-7.7.5.dist-info → waldur_api_client-7.7.6.dist-info}/WHEEL +0 -0
@@ -13,8 +13,8 @@ T = TypeVar("T", bound="OpenStackFixedIp")
13
13
  class OpenStackFixedIp:
14
14
  """
15
15
  Attributes:
16
- ip_address (Union[Unset, str]):
17
- subnet_id (Union[Unset, str]):
16
+ ip_address (Union[Unset, str]): IP address to assign to the port
17
+ subnet_id (Union[Unset, str]): ID of the subnet in which to assign the IP address
18
18
  """
19
19
 
20
20
  ip_address: Union[Unset, str] = UNSET
@@ -11,8 +11,8 @@ T = TypeVar("T", bound="OpenStackFixedIpRequest")
11
11
  class OpenStackFixedIpRequest:
12
12
  """
13
13
  Attributes:
14
- ip_address (str):
15
- subnet_id (str):
14
+ ip_address (str): IP address to assign to the port
15
+ subnet_id (str): ID of the subnet in which to assign the IP address
16
16
  """
17
17
 
18
18
  ip_address: str
@@ -49,13 +49,14 @@ class OpenStackFloatingIP:
49
49
  backend_id (Union[Unset, str]):
50
50
  access_url (Union[None, Unset, str]):
51
51
  runtime_state (Union[Unset, str]):
52
- address (Union[None, Unset, str]):
53
- backend_network_id (Union[Unset, str]):
54
- tenant (Union[Unset, str]):
52
+ address (Union[None, Unset, str]): The public IPv4 address of the floating IP
53
+ backend_network_id (Union[Unset, str]): ID of network in OpenStack where this floating IP is allocated
54
+ tenant (Union[Unset, str]): OpenStack tenant this floating IP belongs to
55
55
  tenant_name (Union[Unset, str]):
56
56
  tenant_uuid (Union[Unset, UUID]):
57
57
  port (Union[Unset, str]):
58
- external_address (Union[None, Unset, str]): An optional address that maps to floating IP's address
58
+ external_address (Union[None, Unset, str]): Optional address that maps to floating IP's address in external
59
+ networks
59
60
  port_fixed_ips (Union[Unset, list['OpenStackFixedIp']]):
60
61
  instance_uuid (Union[None, Unset, str]):
61
62
  instance_name (Union[None, Unset, str]):
@@ -34,7 +34,7 @@ class OpenStackInstance:
34
34
  name (Union[Unset, str]):
35
35
  description (Union[Unset, str]):
36
36
  service_name (Union[Unset, str]):
37
- service_settings (Union[Unset, str]):
37
+ service_settings (Union[Unset, str]): OpenStack provider settings
38
38
  service_settings_uuid (Union[Unset, UUID]):
39
39
  service_settings_state (Union[Unset, str]):
40
40
  service_settings_error_message (Union[Unset, str]):
@@ -51,7 +51,7 @@ class OpenStackInstance:
51
51
  state (Union[Unset, CoreStates]):
52
52
  created (Union[Unset, datetime.datetime]):
53
53
  modified (Union[Unset, datetime.datetime]):
54
- backend_id (Union[None, Unset, str]):
54
+ backend_id (Union[None, Unset, str]): Instance ID in the OpenStack backend
55
55
  access_url (Union[None, Unset, str]):
56
56
  start_time (Union[None, Unset, datetime.datetime]):
57
57
  cores (Union[Unset, int]): Number of cores in a VM
@@ -68,21 +68,23 @@ class OpenStackInstance:
68
68
  key_fingerprint (Union[Unset, str]):
69
69
  image_name (Union[Unset, str]):
70
70
  flavor_disk (Union[Unset, int]): Flavor disk size in MiB
71
- flavor_name (Union[Unset, str]):
72
- volumes (Union[Unset, list['OpenStackNestedVolume']]):
73
- security_groups (Union[Unset, list['OpenStackNestedSecurityGroup']]):
74
- server_group (Union['OpenStackNestedServerGroup', None, Unset]):
75
- floating_ips (Union[Unset, list['OpenStackNestedFloatingIP']]):
76
- ports (Union[Unset, list['OpenStackNestedPort']]):
77
- availability_zone (Union[None, Unset, str]):
78
- availability_zone_name (Union[Unset, str]):
79
- connect_directly_to_external_network (Union[Unset, bool]):
71
+ flavor_name (Union[Unset, str]): Name of the flavor used by this instance
72
+ volumes (Union[Unset, list['OpenStackNestedVolume']]): List of volumes attached to the instance
73
+ security_groups (Union[Unset, list['OpenStackNestedSecurityGroup']]): List of security groups to apply to the
74
+ instance
75
+ server_group (Union['OpenStackNestedServerGroup', None, Unset]): Server group for instance scheduling policy
76
+ floating_ips (Union[Unset, list['OpenStackNestedFloatingIP']]): Floating IPs to assign to the instance
77
+ ports (Union[Unset, list['OpenStackNestedPort']]): Network ports to attach to the instance
78
+ availability_zone (Union[None, Unset, str]): Availability zone where this instance is located
79
+ availability_zone_name (Union[Unset, str]): Name of the availability zone where instance is located
80
+ connect_directly_to_external_network (Union[Unset, bool]): If True, instance will be connected directly to
81
+ external network
80
82
  runtime_state (Union[Unset, str]):
81
83
  action (Union[Unset, str]):
82
- action_details (Union[Unset, Any]):
83
- tenant_uuid (Union[Unset, UUID]):
84
- hypervisor_hostname (Union[Unset, str]):
85
- tenant (Union[Unset, str]):
84
+ action_details (Union[Unset, Any]): Details about ongoing or completed actions
85
+ tenant_uuid (Union[Unset, UUID]): UUID of the OpenStack tenant
86
+ hypervisor_hostname (Union[Unset, str]): Name of the hypervisor hosting this instance
87
+ tenant (Union[Unset, str]): The OpenStack tenant to create the instance in
86
88
  external_address (Union[Unset, list[str]]):
87
89
  rancher_cluster (Union['RancherClusterReference', None, Unset]):
88
90
  marketplace_offering_uuid (Union[None, Unset, str]):
@@ -15,8 +15,9 @@ T = TypeVar("T", bound="OpenStackInstanceAllowedAddressPairsUpdateRequest")
15
15
  class OpenStackInstanceAllowedAddressPairsUpdateRequest:
16
16
  """
17
17
  Attributes:
18
- subnet (str):
19
- allowed_address_pairs (list['OpenStackAllowedAddressPairRequest']):
18
+ subnet (str): The subnet to update allowed address pairs for.
19
+ allowed_address_pairs (list['OpenStackAllowedAddressPairRequest']): List of allowed address pairs to set on the
20
+ port. Each pair should contain 'ip_address' and optional 'mac_address'.
20
21
  """
21
22
 
22
23
  subnet: str
@@ -18,7 +18,7 @@ class OpenStackInstanceAvailabilityZone:
18
18
  uuid (UUID):
19
19
  name (str):
20
20
  settings (Union[None, Unset, str]):
21
- available (Union[Unset, bool]):
21
+ available (Union[Unset, bool]): Indicates whether this availability zone is available for instance provisioning
22
22
  """
23
23
 
24
24
  url: str
@@ -0,0 +1,280 @@
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.open_stack_data_volume_request import OpenStackDataVolumeRequest
11
+ from ..models.open_stack_nested_floating_ip_request import OpenStackNestedFloatingIPRequest
12
+ from ..models.open_stack_nested_port_request import OpenStackNestedPortRequest
13
+ from ..models.open_stack_nested_security_group_request import OpenStackNestedSecurityGroupRequest
14
+
15
+
16
+ T = TypeVar("T", bound="OpenStackInstanceCreateOrderAttributes")
17
+
18
+
19
+ @_attrs_define
20
+ class OpenStackInstanceCreateOrderAttributes:
21
+ """This mixin allows to specify list of fields to be rendered by serializer.
22
+ It expects that request is available in serializer's context.
23
+
24
+ Attributes:
25
+ name (str):
26
+ flavor (str): The flavor to use for the instance
27
+ image (str): The OS image to use for the instance
28
+ ports (list['OpenStackNestedPortRequest']): Network ports to attach to the instance
29
+ system_volume_size (int): Size of the system volume in MiB. Minimum size is 1024 MiB (1 GiB)
30
+ description (Union[Unset, str]):
31
+ security_groups (Union[Unset, list['OpenStackNestedSecurityGroupRequest']]): List of security groups to apply to
32
+ the instance
33
+ floating_ips (Union[Unset, list['OpenStackNestedFloatingIPRequest']]): Floating IPs to assign to the instance
34
+ system_volume_type (Union[None, Unset, str]): Volume type for the system volume
35
+ data_volume_size (Union[Unset, int]): Size of the data volume in MiB. Minimum size is 1024 MiB (1 GiB)
36
+ data_volume_type (Union[None, Unset, str]): Volume type for the data volume
37
+ ssh_public_key (Union[Unset, str]):
38
+ user_data (Union[Unset, str]): Additional data that will be added to instance on provisioning
39
+ availability_zone (Union[None, Unset, str]): Availability zone where this instance is located
40
+ connect_directly_to_external_network (Union[Unset, bool]): If True, instance will be connected directly to
41
+ external network
42
+ data_volumes (Union[Unset, list['OpenStackDataVolumeRequest']]): Additional data volumes to attach to the
43
+ instance
44
+ """
45
+
46
+ name: str
47
+ flavor: str
48
+ image: str
49
+ ports: list["OpenStackNestedPortRequest"]
50
+ system_volume_size: int
51
+ description: Union[Unset, str] = UNSET
52
+ security_groups: Union[Unset, list["OpenStackNestedSecurityGroupRequest"]] = UNSET
53
+ floating_ips: Union[Unset, list["OpenStackNestedFloatingIPRequest"]] = UNSET
54
+ system_volume_type: Union[None, Unset, str] = UNSET
55
+ data_volume_size: Union[Unset, int] = UNSET
56
+ data_volume_type: Union[None, Unset, str] = UNSET
57
+ ssh_public_key: Union[Unset, str] = UNSET
58
+ user_data: Union[Unset, str] = UNSET
59
+ availability_zone: Union[None, Unset, str] = UNSET
60
+ connect_directly_to_external_network: Union[Unset, bool] = UNSET
61
+ data_volumes: Union[Unset, list["OpenStackDataVolumeRequest"]] = UNSET
62
+ additional_properties: dict[str, Any] = _attrs_field(init=False, factory=dict)
63
+
64
+ def to_dict(self) -> dict[str, Any]:
65
+ name = self.name
66
+
67
+ flavor = self.flavor
68
+
69
+ image = self.image
70
+
71
+ ports = []
72
+ for ports_item_data in self.ports:
73
+ ports_item = ports_item_data.to_dict()
74
+ ports.append(ports_item)
75
+
76
+ system_volume_size = self.system_volume_size
77
+
78
+ description = self.description
79
+
80
+ security_groups: Union[Unset, list[dict[str, Any]]] = UNSET
81
+ if not isinstance(self.security_groups, Unset):
82
+ security_groups = []
83
+ for security_groups_item_data in self.security_groups:
84
+ security_groups_item = security_groups_item_data.to_dict()
85
+ security_groups.append(security_groups_item)
86
+
87
+ floating_ips: Union[Unset, list[dict[str, Any]]] = UNSET
88
+ if not isinstance(self.floating_ips, Unset):
89
+ floating_ips = []
90
+ for floating_ips_item_data in self.floating_ips:
91
+ floating_ips_item = floating_ips_item_data.to_dict()
92
+ floating_ips.append(floating_ips_item)
93
+
94
+ system_volume_type: Union[None, Unset, str]
95
+ if isinstance(self.system_volume_type, Unset):
96
+ system_volume_type = UNSET
97
+ else:
98
+ system_volume_type = self.system_volume_type
99
+
100
+ data_volume_size = self.data_volume_size
101
+
102
+ data_volume_type: Union[None, Unset, str]
103
+ if isinstance(self.data_volume_type, Unset):
104
+ data_volume_type = UNSET
105
+ else:
106
+ data_volume_type = self.data_volume_type
107
+
108
+ ssh_public_key = self.ssh_public_key
109
+
110
+ user_data = self.user_data
111
+
112
+ availability_zone: Union[None, Unset, str]
113
+ if isinstance(self.availability_zone, Unset):
114
+ availability_zone = UNSET
115
+ else:
116
+ availability_zone = self.availability_zone
117
+
118
+ connect_directly_to_external_network = self.connect_directly_to_external_network
119
+
120
+ data_volumes: Union[Unset, list[dict[str, Any]]] = UNSET
121
+ if not isinstance(self.data_volumes, Unset):
122
+ data_volumes = []
123
+ for data_volumes_item_data in self.data_volumes:
124
+ data_volumes_item = data_volumes_item_data.to_dict()
125
+ data_volumes.append(data_volumes_item)
126
+
127
+ field_dict: dict[str, Any] = {}
128
+ field_dict.update(self.additional_properties)
129
+ field_dict.update(
130
+ {
131
+ "name": name,
132
+ "flavor": flavor,
133
+ "image": image,
134
+ "ports": ports,
135
+ "system_volume_size": system_volume_size,
136
+ }
137
+ )
138
+ if description is not UNSET:
139
+ field_dict["description"] = description
140
+ if security_groups is not UNSET:
141
+ field_dict["security_groups"] = security_groups
142
+ if floating_ips is not UNSET:
143
+ field_dict["floating_ips"] = floating_ips
144
+ if system_volume_type is not UNSET:
145
+ field_dict["system_volume_type"] = system_volume_type
146
+ if data_volume_size is not UNSET:
147
+ field_dict["data_volume_size"] = data_volume_size
148
+ if data_volume_type is not UNSET:
149
+ field_dict["data_volume_type"] = data_volume_type
150
+ if ssh_public_key is not UNSET:
151
+ field_dict["ssh_public_key"] = ssh_public_key
152
+ if user_data is not UNSET:
153
+ field_dict["user_data"] = user_data
154
+ if availability_zone is not UNSET:
155
+ field_dict["availability_zone"] = availability_zone
156
+ if connect_directly_to_external_network is not UNSET:
157
+ field_dict["connect_directly_to_external_network"] = connect_directly_to_external_network
158
+ if data_volumes is not UNSET:
159
+ field_dict["data_volumes"] = data_volumes
160
+
161
+ return field_dict
162
+
163
+ @classmethod
164
+ def from_dict(cls: type[T], src_dict: Mapping[str, Any]) -> T:
165
+ from ..models.open_stack_data_volume_request import OpenStackDataVolumeRequest
166
+ from ..models.open_stack_nested_floating_ip_request import OpenStackNestedFloatingIPRequest
167
+ from ..models.open_stack_nested_port_request import OpenStackNestedPortRequest
168
+ from ..models.open_stack_nested_security_group_request import OpenStackNestedSecurityGroupRequest
169
+
170
+ d = dict(src_dict)
171
+ name = d.pop("name")
172
+
173
+ flavor = d.pop("flavor")
174
+
175
+ image = d.pop("image")
176
+
177
+ ports = []
178
+ _ports = d.pop("ports")
179
+ for ports_item_data in _ports:
180
+ ports_item = OpenStackNestedPortRequest.from_dict(ports_item_data)
181
+
182
+ ports.append(ports_item)
183
+
184
+ system_volume_size = d.pop("system_volume_size")
185
+
186
+ description = d.pop("description", UNSET)
187
+
188
+ security_groups = []
189
+ _security_groups = d.pop("security_groups", UNSET)
190
+ for security_groups_item_data in _security_groups or []:
191
+ security_groups_item = OpenStackNestedSecurityGroupRequest.from_dict(security_groups_item_data)
192
+
193
+ security_groups.append(security_groups_item)
194
+
195
+ floating_ips = []
196
+ _floating_ips = d.pop("floating_ips", UNSET)
197
+ for floating_ips_item_data in _floating_ips or []:
198
+ floating_ips_item = OpenStackNestedFloatingIPRequest.from_dict(floating_ips_item_data)
199
+
200
+ floating_ips.append(floating_ips_item)
201
+
202
+ def _parse_system_volume_type(data: object) -> Union[None, Unset, str]:
203
+ if data is None:
204
+ return data
205
+ if isinstance(data, Unset):
206
+ return data
207
+ return cast(Union[None, Unset, str], data)
208
+
209
+ system_volume_type = _parse_system_volume_type(d.pop("system_volume_type", UNSET))
210
+
211
+ data_volume_size = d.pop("data_volume_size", UNSET)
212
+
213
+ def _parse_data_volume_type(data: object) -> Union[None, Unset, str]:
214
+ if data is None:
215
+ return data
216
+ if isinstance(data, Unset):
217
+ return data
218
+ return cast(Union[None, Unset, str], data)
219
+
220
+ data_volume_type = _parse_data_volume_type(d.pop("data_volume_type", UNSET))
221
+
222
+ ssh_public_key = d.pop("ssh_public_key", UNSET)
223
+
224
+ user_data = d.pop("user_data", UNSET)
225
+
226
+ def _parse_availability_zone(data: object) -> Union[None, Unset, str]:
227
+ if data is None:
228
+ return data
229
+ if isinstance(data, Unset):
230
+ return data
231
+ return cast(Union[None, Unset, str], data)
232
+
233
+ availability_zone = _parse_availability_zone(d.pop("availability_zone", UNSET))
234
+
235
+ connect_directly_to_external_network = d.pop("connect_directly_to_external_network", UNSET)
236
+
237
+ data_volumes = []
238
+ _data_volumes = d.pop("data_volumes", UNSET)
239
+ for data_volumes_item_data in _data_volumes or []:
240
+ data_volumes_item = OpenStackDataVolumeRequest.from_dict(data_volumes_item_data)
241
+
242
+ data_volumes.append(data_volumes_item)
243
+
244
+ open_stack_instance_create_order_attributes = cls(
245
+ name=name,
246
+ flavor=flavor,
247
+ image=image,
248
+ ports=ports,
249
+ system_volume_size=system_volume_size,
250
+ description=description,
251
+ security_groups=security_groups,
252
+ floating_ips=floating_ips,
253
+ system_volume_type=system_volume_type,
254
+ data_volume_size=data_volume_size,
255
+ data_volume_type=data_volume_type,
256
+ ssh_public_key=ssh_public_key,
257
+ user_data=user_data,
258
+ availability_zone=availability_zone,
259
+ connect_directly_to_external_network=connect_directly_to_external_network,
260
+ data_volumes=data_volumes,
261
+ )
262
+
263
+ open_stack_instance_create_order_attributes.additional_properties = d
264
+ return open_stack_instance_create_order_attributes
265
+
266
+ @property
267
+ def additional_keys(self) -> list[str]:
268
+ return list(self.additional_properties.keys())
269
+
270
+ def __getitem__(self, key: str) -> Any:
271
+ return self.additional_properties[key]
272
+
273
+ def __setitem__(self, key: str, value: Any) -> None:
274
+ self.additional_properties[key] = value
275
+
276
+ def __delitem__(self, key: str) -> None:
277
+ del self.additional_properties[key]
278
+
279
+ def __contains__(self, key: str) -> bool:
280
+ return key in self.additional_properties
@@ -19,9 +19,10 @@ class OpenStackInstanceRequest:
19
19
  Attributes:
20
20
  name (str):
21
21
  description (Union[Unset, str]):
22
- system_volume_type (Union[None, Unset, str]):
23
- data_volume_type (Union[None, Unset, str]):
24
- data_volumes (Union[Unset, list['OpenStackDataVolumeRequest']]):
22
+ system_volume_type (Union[None, Unset, str]): Volume type for the system volume
23
+ data_volume_type (Union[None, Unset, str]): Volume type for the data volume
24
+ data_volumes (Union[Unset, list['OpenStackDataVolumeRequest']]): Additional data volumes to attach to the
25
+ instance
25
26
  """
26
27
 
27
28
  name: str
@@ -11,7 +11,7 @@ T = TypeVar("T", bound="OpenStackInstanceSecurityGroupsUpdateRequest")
11
11
  class OpenStackInstanceSecurityGroupsUpdateRequest:
12
12
  """
13
13
  Attributes:
14
- security_groups (list[str]):
14
+ security_groups (list[str]): List of security groups to be assigned to the instance.
15
15
  """
16
16
 
17
17
  security_groups: list[str]
@@ -20,14 +20,14 @@ class OpenStackNestedFloatingIP:
20
20
  Attributes:
21
21
  url (Union[Unset, str]):
22
22
  uuid (Union[Unset, UUID]):
23
- address (Union[None, Unset, str]):
23
+ address (Union[None, Unset, str]): The public IPv4 address of the floating IP
24
24
  port_fixed_ips (Union[Unset, list['OpenStackFixedIp']]):
25
- port_mac_address (Union[None, Unset, str]):
25
+ port_mac_address (Union[None, Unset, str]): MAC address of the port
26
26
  subnet (Union[Unset, str]):
27
27
  subnet_uuid (Union[Unset, UUID]):
28
28
  subnet_name (Union[Unset, str]):
29
29
  subnet_description (Union[Unset, str]):
30
- subnet_cidr (Union[Unset, str]):
30
+ subnet_cidr (Union[Unset, str]): IPv4 network address in CIDR format (e.g. 192.168.0.0/24)
31
31
  """
32
32
 
33
33
  url: Union[Unset, str] = UNSET
@@ -14,7 +14,7 @@ T = TypeVar("T", bound="OpenStackNestedInstance")
14
14
  class OpenStackNestedInstance:
15
15
  """
16
16
  Attributes:
17
- backend_id (Union[None, Unset, str]):
17
+ backend_id (Union[None, Unset, str]): Instance ID in the OpenStack backend
18
18
  name (Union[Unset, str]):
19
19
  uuid (Union[Unset, UUID]):
20
20
  """
@@ -22,15 +22,15 @@ class OpenStackNestedPort:
22
22
  Attributes:
23
23
  url (Union[Unset, str]):
24
24
  fixed_ips (Union[Unset, list['OpenStackFixedIp']]):
25
- mac_address (Union[Unset, str]):
26
- subnet (Union[None, Unset, str]):
25
+ mac_address (Union[Unset, str]): MAC address of the port
26
+ subnet (Union[None, Unset, str]): Subnet to which this port belongs
27
27
  subnet_uuid (Union[None, UUID, Unset]):
28
28
  subnet_name (Union[None, Unset, str]):
29
29
  subnet_description (Union[None, Unset, str]):
30
- subnet_cidr (Union[None, Unset, str]):
30
+ subnet_cidr (Union[None, Unset, str]): IPv4 network address in CIDR format (e.g. 192.168.0.0/24)
31
31
  allowed_address_pairs (Union[Unset, list['OpenStackAllowedAddressPair']]):
32
- device_id (Union[None, Unset, str]):
33
- device_owner (Union[None, Unset, str]):
32
+ device_id (Union[None, Unset, str]): ID of device (instance, router etc) to which this port is connected
33
+ device_owner (Union[None, Unset, str]): Entity that uses this port (e.g. network:router_interface)
34
34
  security_groups (Union[Unset, list['OpenStackSecurityGroup']]):
35
35
  """
36
36
 
@@ -18,7 +18,7 @@ class OpenStackNestedPortRequest:
18
18
  """
19
19
  Attributes:
20
20
  fixed_ips (Union[Unset, list['OpenStackFixedIpRequest']]):
21
- subnet (Union[None, Unset, str]):
21
+ subnet (Union[None, Unset, str]): Subnet to which this port belongs
22
22
  port (Union[Unset, str]):
23
23
  """
24
24
 
@@ -1,15 +1,11 @@
1
1
  from collections.abc import Mapping
2
- from typing import TYPE_CHECKING, Any, TypeVar, Union
2
+ from typing import Any, TypeVar, Union
3
3
 
4
4
  from attrs import define as _attrs_define
5
5
  from attrs import field as _attrs_field
6
6
 
7
7
  from ..types import UNSET, Unset
8
8
 
9
- if TYPE_CHECKING:
10
- from ..models.nested_security_group_rule import NestedSecurityGroupRule
11
-
12
-
13
9
  T = TypeVar("T", bound="OpenStackNestedSecurityGroup")
14
10
 
15
11
 
@@ -18,77 +14,29 @@ class OpenStackNestedSecurityGroup:
18
14
  """
19
15
  Attributes:
20
16
  url (Union[Unset, str]):
21
- name (Union[Unset, str]):
22
- rules (Union[Unset, list['NestedSecurityGroupRule']]):
23
- description (Union[Unset, str]):
24
- state (Union[Unset, str]):
25
17
  """
26
18
 
27
19
  url: Union[Unset, str] = UNSET
28
- name: Union[Unset, str] = UNSET
29
- rules: Union[Unset, list["NestedSecurityGroupRule"]] = UNSET
30
- description: Union[Unset, str] = UNSET
31
- state: Union[Unset, str] = UNSET
32
20
  additional_properties: dict[str, Any] = _attrs_field(init=False, factory=dict)
33
21
 
34
22
  def to_dict(self) -> dict[str, Any]:
35
23
  url = self.url
36
24
 
37
- name = self.name
38
-
39
- rules: Union[Unset, list[dict[str, Any]]] = UNSET
40
- if not isinstance(self.rules, Unset):
41
- rules = []
42
- for rules_item_data in self.rules:
43
- rules_item = rules_item_data.to_dict()
44
- rules.append(rules_item)
45
-
46
- description = self.description
47
-
48
- state = self.state
49
-
50
25
  field_dict: dict[str, Any] = {}
51
26
  field_dict.update(self.additional_properties)
52
27
  field_dict.update({})
53
28
  if url is not UNSET:
54
29
  field_dict["url"] = url
55
- if name is not UNSET:
56
- field_dict["name"] = name
57
- if rules is not UNSET:
58
- field_dict["rules"] = rules
59
- if description is not UNSET:
60
- field_dict["description"] = description
61
- if state is not UNSET:
62
- field_dict["state"] = state
63
30
 
64
31
  return field_dict
65
32
 
66
33
  @classmethod
67
34
  def from_dict(cls: type[T], src_dict: Mapping[str, Any]) -> T:
68
- from ..models.nested_security_group_rule import NestedSecurityGroupRule
69
-
70
35
  d = dict(src_dict)
71
36
  url = d.pop("url", UNSET)
72
37
 
73
- name = d.pop("name", UNSET)
74
-
75
- rules = []
76
- _rules = d.pop("rules", UNSET)
77
- for rules_item_data in _rules or []:
78
- rules_item = NestedSecurityGroupRule.from_dict(rules_item_data)
79
-
80
- rules.append(rules_item)
81
-
82
- description = d.pop("description", UNSET)
83
-
84
- state = d.pop("state", UNSET)
85
-
86
38
  open_stack_nested_security_group = cls(
87
39
  url=url,
88
- name=name,
89
- rules=rules,
90
- description=description,
91
- state=state,
92
40
  )
93
41
 
94
42
  open_stack_nested_security_group.additional_properties = d
@@ -0,0 +1,59 @@
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="OpenStackNestedSecurityGroupRequest")
10
+
11
+
12
+ @_attrs_define
13
+ class OpenStackNestedSecurityGroupRequest:
14
+ """
15
+ Attributes:
16
+ url (Union[Unset, str]):
17
+ """
18
+
19
+ url: Union[Unset, str] = UNSET
20
+ additional_properties: dict[str, Any] = _attrs_field(init=False, factory=dict)
21
+
22
+ def to_dict(self) -> dict[str, Any]:
23
+ url = self.url
24
+
25
+ field_dict: dict[str, Any] = {}
26
+ field_dict.update(self.additional_properties)
27
+ field_dict.update({})
28
+ if url is not UNSET:
29
+ field_dict["url"] = url
30
+
31
+ return field_dict
32
+
33
+ @classmethod
34
+ def from_dict(cls: type[T], src_dict: Mapping[str, Any]) -> T:
35
+ d = dict(src_dict)
36
+ url = d.pop("url", UNSET)
37
+
38
+ open_stack_nested_security_group_request = cls(
39
+ url=url,
40
+ )
41
+
42
+ open_stack_nested_security_group_request.additional_properties = d
43
+ return open_stack_nested_security_group_request
44
+
45
+ @property
46
+ def additional_keys(self) -> list[str]:
47
+ return list(self.additional_properties.keys())
48
+
49
+ def __getitem__(self, key: str) -> Any:
50
+ return self.additional_properties[key]
51
+
52
+ def __setitem__(self, key: str, value: Any) -> None:
53
+ self.additional_properties[key] = value
54
+
55
+ def __delitem__(self, key: str) -> None:
56
+ del self.additional_properties[key]
57
+
58
+ def __contains__(self, key: str) -> bool:
59
+ return key in self.additional_properties
@@ -21,11 +21,11 @@ class OpenStackNestedSubNet:
21
21
  uuid (Union[Unset, UUID]):
22
22
  name (Union[Unset, str]):
23
23
  description (Union[Unset, str]):
24
- cidr (Union[Unset, str]):
25
- gateway_ip (Union[None, Unset, str]):
24
+ cidr (Union[Unset, str]): IPv4 network address in CIDR format (e.g. 192.168.0.0/24)
25
+ gateway_ip (Union[None, Unset, str]): IP address of the gateway for this subnet
26
26
  allocation_pools (Union[Unset, list['OpenStackSubNetAllocationPool']]):
27
- ip_version (Union[Unset, int]):
28
- enable_dhcp (Union[Unset, bool]):
27
+ ip_version (Union[Unset, int]): IP protocol version (4 or 6)
28
+ enable_dhcp (Union[Unset, bool]): If True, DHCP service will be enabled on this subnet
29
29
  """
30
30
 
31
31
  uuid: Union[Unset, UUID] = UNSET