waldur-api-client 7.7.6__py3-none-any.whl → 7.7.8__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 (261) hide show
  1. waldur_api_client/api/booking_resources/booking_resources_count.py +34 -11
  2. waldur_api_client/api/booking_resources/booking_resources_list.py +34 -11
  3. waldur_api_client/api/customer_permissions_reviews/customer_permissions_reviews_count.py +19 -0
  4. waldur_api_client/api/customer_permissions_reviews/customer_permissions_reviews_list.py +19 -0
  5. waldur_api_client/api/customers/customers_project_metadata_compliance_details_list.py +189 -0
  6. waldur_api_client/api/customers/customers_project_metadata_compliance_overview_list.py +189 -0
  7. waldur_api_client/api/customers/customers_project_metadata_compliance_projects_list.py +187 -0
  8. waldur_api_client/api/customers/customers_project_metadata_question_answers_list.py +187 -0
  9. waldur_api_client/api/customers/customers_users_list.py +141 -53
  10. waldur_api_client/api/invoices/invoices_items_retrieve.py +20 -0
  11. waldur_api_client/api/managed_rancher_cluster_resources/__init__.py +1 -0
  12. waldur_api_client/api/managed_rancher_cluster_resources/managed_rancher_cluster_resources_add_node.py +162 -0
  13. waldur_api_client/api/managed_rancher_cluster_resources/managed_rancher_cluster_resources_count.py +172 -0
  14. waldur_api_client/api/managed_rancher_cluster_resources/managed_rancher_cluster_resources_list.py +196 -0
  15. waldur_api_client/api/managed_rancher_cluster_resources/managed_rancher_cluster_resources_retrieve.py +171 -0
  16. waldur_api_client/api/marketplace_course_accounts/__init__.py +1 -0
  17. waldur_api_client/api/marketplace_course_accounts/marketplace_course_accounts_count.py +244 -0
  18. waldur_api_client/api/marketplace_course_accounts/marketplace_course_accounts_create.py +148 -0
  19. waldur_api_client/api/marketplace_course_accounts/marketplace_course_accounts_create_bulk.py +152 -0
  20. waldur_api_client/api/marketplace_course_accounts/marketplace_course_accounts_destroy.py +89 -0
  21. waldur_api_client/api/marketplace_course_accounts/marketplace_course_accounts_list.py +245 -0
  22. waldur_api_client/api/marketplace_course_accounts/marketplace_course_accounts_retrieve.py +140 -0
  23. waldur_api_client/api/marketplace_customer_service_accounts/marketplace_customer_service_accounts_count.py +25 -0
  24. waldur_api_client/api/marketplace_customer_service_accounts/marketplace_customer_service_accounts_list.py +25 -0
  25. waldur_api_client/api/marketplace_integration_statuses/marketplace_integration_statuses_count.py +34 -11
  26. waldur_api_client/api/marketplace_integration_statuses/marketplace_integration_statuses_list.py +34 -11
  27. waldur_api_client/api/marketplace_offering_files/marketplace_offering_files_count.py +34 -11
  28. waldur_api_client/api/marketplace_offering_files/marketplace_offering_files_list.py +34 -11
  29. waldur_api_client/api/marketplace_offering_terms_of_service/__init__.py +1 -0
  30. waldur_api_client/api/marketplace_offering_terms_of_service/marketplace_offering_terms_of_service_count.py +274 -0
  31. waldur_api_client/api/marketplace_offering_terms_of_service/marketplace_offering_terms_of_service_create.py +152 -0
  32. waldur_api_client/api/marketplace_offering_terms_of_service/marketplace_offering_terms_of_service_destroy.py +89 -0
  33. waldur_api_client/api/marketplace_offering_terms_of_service/marketplace_offering_terms_of_service_list.py +277 -0
  34. waldur_api_client/api/marketplace_offering_terms_of_service/marketplace_offering_terms_of_service_partial_update.py +164 -0
  35. waldur_api_client/api/marketplace_offering_terms_of_service/marketplace_offering_terms_of_service_retrieve.py +142 -0
  36. waldur_api_client/api/marketplace_offering_terms_of_service/marketplace_offering_terms_of_service_update.py +164 -0
  37. waldur_api_client/api/marketplace_offering_user_roles/marketplace_offering_user_roles_count.py +34 -11
  38. waldur_api_client/api/marketplace_offering_user_roles/marketplace_offering_user_roles_list.py +34 -11
  39. waldur_api_client/api/marketplace_offering_users/marketplace_offering_users_count.py +34 -11
  40. waldur_api_client/api/marketplace_offering_users/marketplace_offering_users_list.py +34 -11
  41. waldur_api_client/api/marketplace_orders/marketplace_orders_count.py +19 -0
  42. waldur_api_client/api/marketplace_orders/marketplace_orders_list.py +19 -0
  43. waldur_api_client/api/marketplace_plans/marketplace_plans_count.py +19 -0
  44. waldur_api_client/api/marketplace_plans/marketplace_plans_list.py +19 -0
  45. waldur_api_client/api/marketplace_plans/marketplace_plans_usage_stats_count.py +19 -0
  46. waldur_api_client/api/marketplace_plans/marketplace_plans_usage_stats_list.py +19 -0
  47. waldur_api_client/api/marketplace_project_service_accounts/marketplace_project_service_accounts_count.py +25 -0
  48. waldur_api_client/api/marketplace_project_service_accounts/marketplace_project_service_accounts_list.py +25 -0
  49. waldur_api_client/api/marketplace_provider_resources/marketplace_provider_resources_count.py +34 -11
  50. waldur_api_client/api/marketplace_provider_resources/marketplace_provider_resources_list.py +34 -11
  51. waldur_api_client/api/marketplace_resources/marketplace_resources_count.py +34 -11
  52. waldur_api_client/api/marketplace_resources/marketplace_resources_list.py +34 -11
  53. waldur_api_client/api/marketplace_screenshots/marketplace_screenshots_count.py +34 -11
  54. waldur_api_client/api/marketplace_screenshots/marketplace_screenshots_list.py +34 -11
  55. waldur_api_client/api/marketplace_service_providers/marketplace_service_providers_course_accounts_list.py +284 -0
  56. waldur_api_client/api/marketplace_service_providers/marketplace_service_providers_project_service_accounts_list.py +29 -0
  57. waldur_api_client/api/marketplace_user_offering_consents/__init__.py +1 -0
  58. waldur_api_client/api/marketplace_user_offering_consents/marketplace_user_offering_consents_count.py +307 -0
  59. waldur_api_client/api/marketplace_user_offering_consents/marketplace_user_offering_consents_create.py +152 -0
  60. waldur_api_client/api/marketplace_user_offering_consents/marketplace_user_offering_consents_destroy.py +89 -0
  61. waldur_api_client/api/marketplace_user_offering_consents/marketplace_user_offering_consents_list.py +310 -0
  62. waldur_api_client/api/marketplace_user_offering_consents/marketplace_user_offering_consents_partial_update.py +164 -0
  63. waldur_api_client/api/marketplace_user_offering_consents/marketplace_user_offering_consents_retrieve.py +142 -0
  64. waldur_api_client/api/marketplace_user_offering_consents/marketplace_user_offering_consents_revoke.py +146 -0
  65. waldur_api_client/api/marketplace_user_offering_consents/marketplace_user_offering_consents_update.py +164 -0
  66. waldur_api_client/api/project_permissions_reviews/__init__.py +1 -0
  67. waldur_api_client/api/project_permissions_reviews/project_permissions_reviews_close.py +91 -0
  68. waldur_api_client/api/project_permissions_reviews/project_permissions_reviews_count.py +266 -0
  69. waldur_api_client/api/project_permissions_reviews/project_permissions_reviews_list.py +269 -0
  70. waldur_api_client/api/project_permissions_reviews/project_permissions_reviews_retrieve.py +142 -0
  71. waldur_api_client/api/projects/projects_other_users_list.py +98 -23
  72. waldur_api_client/api/projects/projects_sync_user_roles.py +10 -9
  73. waldur_api_client/api/remote_waldur_api/remote_waldur_api_remote_resource_order_status_retrieve.py +145 -0
  74. waldur_api_client/api/remote_waldur_api/remote_waldur_api_remote_resource_status_retrieve.py +147 -0
  75. waldur_api_client/api/remote_waldur_api/remote_waldur_api_remote_resource_team_status_list.py +188 -0
  76. waldur_api_client/api/support_issue_statuses/__init__.py +1 -0
  77. waldur_api_client/api/support_issue_statuses/support_issue_statuses_count.py +172 -0
  78. waldur_api_client/api/support_issue_statuses/support_issue_statuses_create.py +148 -0
  79. waldur_api_client/api/support_issue_statuses/support_issue_statuses_destroy.py +89 -0
  80. waldur_api_client/api/support_issue_statuses/support_issue_statuses_list.py +173 -0
  81. waldur_api_client/api/support_issue_statuses/support_issue_statuses_partial_update.py +162 -0
  82. waldur_api_client/api/support_issue_statuses/support_issue_statuses_retrieve.py +140 -0
  83. waldur_api_client/api/support_issue_statuses/support_issue_statuses_update.py +162 -0
  84. waldur_api_client/api/user_group_invitations/user_group_invitations_submit_request.py +12 -12
  85. waldur_api_client/api/user_invitations/user_invitations_count.py +30 -0
  86. waldur_api_client/api/user_invitations/user_invitations_list.py +30 -0
  87. waldur_api_client/api/user_permission_requests/user_permission_requests_cancel_request.py +146 -0
  88. waldur_api_client/models/__init__.py +136 -2
  89. waldur_api_client/models/azure_sql_server_create_order_attributes.py +3 -0
  90. waldur_api_client/models/azure_virtual_machine_create_order_attributes.py +3 -0
  91. waldur_api_client/models/booking_offerings_list_field_item.py +0 -2
  92. waldur_api_client/models/booking_offerings_retrieve_field_item.py +0 -2
  93. waldur_api_client/models/booking_resource.py +10 -9
  94. waldur_api_client/models/booking_resources_list_field_item.py +1 -1
  95. waldur_api_client/models/booking_resources_retrieve_field_item.py +1 -1
  96. waldur_api_client/models/cancel_request_response.py +75 -0
  97. waldur_api_client/models/checklist_info.py +76 -0
  98. waldur_api_client/models/compliance_overview.py +91 -0
  99. waldur_api_client/models/constance_settings.py +9 -0
  100. waldur_api_client/models/constance_settings_request.py +9 -0
  101. waldur_api_client/models/course_account.py +188 -0
  102. waldur_api_client/models/course_account_create_nested.py +68 -0
  103. waldur_api_client/models/course_account_create_nested_request.py +68 -0
  104. waldur_api_client/models/course_account_request.py +89 -0
  105. waldur_api_client/models/course_accounts_bulk_create.py +82 -0
  106. waldur_api_client/models/course_accounts_bulk_create_request.py +82 -0
  107. waldur_api_client/models/customer.py +90 -0
  108. waldur_api_client/models/customer_permission_review.py +16 -16
  109. waldur_api_client/models/customer_request.py +9 -0
  110. waldur_api_client/models/customer_service_account.py +9 -0
  111. waldur_api_client/models/customers_list_field_item.py +5 -0
  112. waldur_api_client/models/customers_retrieve_field_item.py +5 -0
  113. waldur_api_client/models/customers_users_list_o.py +9 -0
  114. waldur_api_client/models/customers_users_list_organization_role_item_type_0.py +10 -0
  115. waldur_api_client/models/customers_users_list_project_role_item_type_0.py +10 -0
  116. waldur_api_client/models/dependency_logic_operator_enum.py +9 -0
  117. waldur_api_client/models/event_subscription.py +1 -1
  118. waldur_api_client/models/event_types_enum.py +4 -0
  119. waldur_api_client/models/generic_order_attributes.py +69 -0
  120. waldur_api_client/models/google_auth_authorize_retrieve_field_item.py +1 -0
  121. waldur_api_client/models/google_auth_list_field_item.py +1 -0
  122. waldur_api_client/models/google_auth_retrieve_field_item.py +1 -0
  123. waldur_api_client/models/google_credentials.py +9 -0
  124. waldur_api_client/models/group_invitation.py +33 -0
  125. waldur_api_client/models/group_invitation_request.py +10 -0
  126. waldur_api_client/models/invitation.py +9 -0
  127. waldur_api_client/models/invoices_items_retrieve_o.py +15 -0
  128. waldur_api_client/models/issue_status.py +103 -0
  129. waldur_api_client/models/issue_status_request.py +78 -0
  130. waldur_api_client/models/issue_status_type_enum.py +9 -0
  131. waldur_api_client/models/kind_enum.py +10 -0
  132. waldur_api_client/models/maintenance_announcement.py +8 -0
  133. waldur_api_client/models/managed_rancher_cluster_resources_list_field_item.py +82 -0
  134. waldur_api_client/models/managed_rancher_cluster_resources_retrieve_field_item.py +82 -0
  135. waldur_api_client/models/managed_rancher_create_node_request.py +186 -0
  136. waldur_api_client/models/marketplace_course_accounts_count_state_item.py +10 -0
  137. waldur_api_client/models/marketplace_course_accounts_list_state_item.py +10 -0
  138. waldur_api_client/models/marketplace_customer_service_accounts_count_state_item.py +10 -0
  139. waldur_api_client/models/marketplace_customer_service_accounts_list_state_item.py +10 -0
  140. waldur_api_client/models/marketplace_offering_terms_of_service_count_o_item.py +13 -0
  141. waldur_api_client/models/marketplace_offering_terms_of_service_list_o_item.py +13 -0
  142. waldur_api_client/models/marketplace_orders_list_field_item.py +1 -1
  143. waldur_api_client/models/marketplace_orders_retrieve_field_item.py +1 -1
  144. waldur_api_client/models/marketplace_project_service_accounts_count_state_item.py +10 -0
  145. waldur_api_client/models/marketplace_project_service_accounts_list_state_item.py +10 -0
  146. waldur_api_client/models/marketplace_provider_offerings_list_customer_service_accounts_retrieve_field_item.py +0 -2
  147. waldur_api_client/models/marketplace_provider_offerings_list_field_item.py +0 -2
  148. waldur_api_client/models/marketplace_provider_offerings_list_project_service_accounts_retrieve_field_item.py +0 -2
  149. waldur_api_client/models/marketplace_provider_offerings_retrieve_field_item.py +0 -2
  150. waldur_api_client/models/marketplace_provider_offerings_stats_retrieve_field_item.py +0 -2
  151. waldur_api_client/models/marketplace_provider_offerings_user_has_resource_access_retrieve_field_item.py +0 -2
  152. waldur_api_client/models/marketplace_provider_resources_details_retrieve_field_item.py +1 -1
  153. waldur_api_client/models/marketplace_provider_resources_list_field_item.py +1 -1
  154. waldur_api_client/models/marketplace_provider_resources_retrieve_field_item.py +1 -1
  155. waldur_api_client/models/marketplace_public_offerings_list_field_item.py +0 -2
  156. waldur_api_client/models/marketplace_public_offerings_retrieve_field_item.py +0 -2
  157. waldur_api_client/models/marketplace_rancher_create_order_attributes.py +3 -0
  158. waldur_api_client/models/marketplace_resources_details_retrieve_field_item.py +1 -1
  159. waldur_api_client/models/marketplace_resources_list_field_item.py +1 -1
  160. waldur_api_client/models/marketplace_resources_retrieve_field_item.py +1 -1
  161. waldur_api_client/models/marketplace_service_providers_course_accounts_list_state_item.py +10 -0
  162. waldur_api_client/models/marketplace_service_providers_list_field_item.py +1 -0
  163. waldur_api_client/models/marketplace_service_providers_project_service_accounts_list_state_item.py +10 -0
  164. waldur_api_client/models/marketplace_service_providers_projects_list_field_item.py +1 -0
  165. waldur_api_client/models/marketplace_service_providers_retrieve_field_item.py +1 -0
  166. waldur_api_client/models/marketplace_user_offering_consents_count_o_item.py +15 -0
  167. waldur_api_client/models/marketplace_user_offering_consents_list_o_item.py +15 -0
  168. waldur_api_client/models/nested_security_group_rule.py +223 -0
  169. waldur_api_client/models/nested_security_group_rule_request.py +188 -0
  170. waldur_api_client/models/offering.py +0 -18
  171. waldur_api_client/models/offering_create.py +0 -18
  172. waldur_api_client/models/offering_create_request.py +0 -18
  173. waldur_api_client/models/offering_overview_update_request.py +0 -18
  174. waldur_api_client/models/offering_terms_of_service.py +142 -0
  175. waldur_api_client/models/offering_terms_of_service_create.py +107 -0
  176. waldur_api_client/models/offering_terms_of_service_create_request.py +107 -0
  177. waldur_api_client/models/offering_terms_of_service_request.py +96 -0
  178. waldur_api_client/models/open_stack_backup_restoration_request.py +0 -22
  179. waldur_api_client/models/open_stack_fixed_ip.py +13 -3
  180. waldur_api_client/models/open_stack_fixed_ip_request.py +7 -2
  181. waldur_api_client/models/open_stack_instance_create_order_attributes.py +23 -20
  182. waldur_api_client/models/open_stack_nested_security_group.py +53 -1
  183. waldur_api_client/models/open_stack_network.py +20 -0
  184. waldur_api_client/models/open_stack_port_ip_update_request.py +6 -2
  185. waldur_api_client/models/open_stack_security_group_rule_update_request.py +4 -4
  186. waldur_api_client/models/open_stack_static_route.py +13 -4
  187. waldur_api_client/models/open_stack_static_route_request.py +7 -3
  188. waldur_api_client/models/open_stack_sub_net.py +15 -2
  189. waldur_api_client/models/open_stack_sub_net_allocation_pool.py +27 -8
  190. waldur_api_client/models/open_stack_sub_net_allocation_pool_request.py +14 -5
  191. waldur_api_client/models/open_stack_sub_net_request.py +15 -2
  192. waldur_api_client/models/open_stack_tenant.py +38 -0
  193. waldur_api_client/models/open_stack_tenant_create_order_attributes.py +21 -0
  194. waldur_api_client/models/open_stack_volume_create_order_attributes.py +3 -0
  195. waldur_api_client/models/openstack_networks_list_field_item.py +1 -0
  196. waldur_api_client/models/openstack_networks_retrieve_field_item.py +1 -0
  197. waldur_api_client/models/openstack_tenants_list_field_item.py +3 -0
  198. waldur_api_client/models/openstack_tenants_retrieve_field_item.py +3 -0
  199. waldur_api_client/models/order_create.py +0 -8
  200. waldur_api_client/models/order_create_request.py +23 -7
  201. waldur_api_client/models/order_details.py +0 -9
  202. waldur_api_client/models/patched_customer_request.py +9 -0
  203. waldur_api_client/models/patched_issue_status_request.py +76 -0
  204. waldur_api_client/models/patched_offering_terms_of_service_request.py +96 -0
  205. waldur_api_client/models/patched_open_stack_sub_net_request.py +15 -2
  206. waldur_api_client/models/patched_project_request.py +17 -0
  207. waldur_api_client/models/patched_question_admin_request.py +17 -0
  208. waldur_api_client/models/patched_rancher_service_request.py +1 -1
  209. waldur_api_client/models/patched_user_offering_consent_request.py +59 -0
  210. waldur_api_client/models/permission_project.py +147 -0
  211. waldur_api_client/models/permission_request.py +16 -0
  212. waldur_api_client/models/project.py +17 -0
  213. waldur_api_client/models/project_answer.py +122 -0
  214. waldur_api_client/models/project_detail.py +133 -0
  215. waldur_api_client/models/project_details_response.py +115 -0
  216. waldur_api_client/models/project_permission_review.py +166 -0
  217. waldur_api_client/models/project_permissions_reviews_count_o_item.py +11 -0
  218. waldur_api_client/models/project_permissions_reviews_list_o_item.py +11 -0
  219. waldur_api_client/models/project_request.py +17 -0
  220. waldur_api_client/models/project_service_account.py +9 -0
  221. waldur_api_client/models/projects_list_field_item.py +1 -0
  222. waldur_api_client/models/projects_other_users_list_o.py +9 -0
  223. waldur_api_client/models/projects_retrieve_field_item.py +1 -0
  224. waldur_api_client/models/proposal.py +8 -0
  225. waldur_api_client/models/proposal_review.py +8 -0
  226. waldur_api_client/models/provider_offering_details.py +0 -18
  227. waldur_api_client/models/provider_offering_details_request.py +0 -18
  228. waldur_api_client/models/public_offering_details.py +0 -18
  229. waldur_api_client/models/question_admin.py +17 -0
  230. waldur_api_client/models/question_admin_request.py +17 -0
  231. waldur_api_client/models/question_answer.py +176 -0
  232. waldur_api_client/models/question_answer_project_answers_item.py +44 -0
  233. waldur_api_client/models/question_answer_question_options_item.py +44 -0
  234. waldur_api_client/models/rancher_nested_public_ip.py +25 -7
  235. waldur_api_client/models/rancher_service.py +1 -1
  236. waldur_api_client/models/rancher_service_request.py +1 -1
  237. waldur_api_client/models/remote_resource_order.py +88 -0
  238. waldur_api_client/models/remote_resource_order_remote_state_enum.py +15 -0
  239. waldur_api_client/models/remote_resource_sync_status.py +123 -0
  240. waldur_api_client/models/{robot_account_states.py → remote_resource_sync_status_remote_state_enum.py} +1 -1
  241. waldur_api_client/models/remote_resource_team_member.py +85 -0
  242. waldur_api_client/models/resource.py +10 -9
  243. waldur_api_client/models/rmq_connection.py +8 -3
  244. waldur_api_client/models/rmq_subscription.py +7 -3
  245. waldur_api_client/models/robot_account.py +9 -17
  246. waldur_api_client/models/robot_account_details.py +9 -17
  247. waldur_api_client/models/service_account_state.py +10 -0
  248. waldur_api_client/models/service_provider.py +9 -0
  249. waldur_api_client/models/slurm_invoices_slurm_package_create_order_attributes.py +3 -0
  250. waldur_api_client/models/submit_request_response.py +75 -0
  251. waldur_api_client/models/sync_status_enum.py +10 -0
  252. waldur_api_client/models/user_offering_consent.py +202 -0
  253. waldur_api_client/models/user_offering_consent_create.py +60 -0
  254. waldur_api_client/models/user_offering_consent_create_request.py +60 -0
  255. waldur_api_client/models/user_offering_consent_request.py +59 -0
  256. waldur_api_client/models/v_mware_virtual_machine_create_order_attributes.py +3 -0
  257. waldur_api_client/models/visible_invitation_details.py +9 -0
  258. {waldur_api_client-7.7.6.dist-info → waldur_api_client-7.7.8.dist-info}/METADATA +1 -1
  259. {waldur_api_client-7.7.6.dist-info → waldur_api_client-7.7.8.dist-info}/RECORD +261 -145
  260. {waldur_api_client-7.7.6.dist-info → waldur_api_client-7.7.8.dist-info}/LICENSE +0 -0
  261. {waldur_api_client-7.7.6.dist-info → waldur_api_client-7.7.8.dist-info}/WHEEL +0 -0
@@ -0,0 +1,107 @@
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="OfferingTermsOfServiceCreateRequest")
10
+
11
+
12
+ @_attrs_define
13
+ class OfferingTermsOfServiceCreateRequest:
14
+ """
15
+ Attributes:
16
+ offering (str):
17
+ terms_of_service (Union[Unset, str]):
18
+ terms_of_service_link (Union[Unset, str]):
19
+ version (Union[Unset, str]):
20
+ is_active (Union[Unset, bool]):
21
+ requires_reconsent (Union[Unset, bool]): If True, user will be asked to re-consent to the terms of service when
22
+ the terms of service are updated.
23
+ """
24
+
25
+ offering: str
26
+ terms_of_service: Union[Unset, str] = UNSET
27
+ terms_of_service_link: Union[Unset, str] = UNSET
28
+ version: Union[Unset, str] = UNSET
29
+ is_active: Union[Unset, bool] = UNSET
30
+ requires_reconsent: Union[Unset, bool] = UNSET
31
+ additional_properties: dict[str, Any] = _attrs_field(init=False, factory=dict)
32
+
33
+ def to_dict(self) -> dict[str, Any]:
34
+ offering = self.offering
35
+
36
+ terms_of_service = self.terms_of_service
37
+
38
+ terms_of_service_link = self.terms_of_service_link
39
+
40
+ version = self.version
41
+
42
+ is_active = self.is_active
43
+
44
+ requires_reconsent = self.requires_reconsent
45
+
46
+ field_dict: dict[str, Any] = {}
47
+ field_dict.update(self.additional_properties)
48
+ field_dict.update(
49
+ {
50
+ "offering": offering,
51
+ }
52
+ )
53
+ if terms_of_service is not UNSET:
54
+ field_dict["terms_of_service"] = terms_of_service
55
+ if terms_of_service_link is not UNSET:
56
+ field_dict["terms_of_service_link"] = terms_of_service_link
57
+ if version is not UNSET:
58
+ field_dict["version"] = version
59
+ if is_active is not UNSET:
60
+ field_dict["is_active"] = is_active
61
+ if requires_reconsent is not UNSET:
62
+ field_dict["requires_reconsent"] = requires_reconsent
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
+ offering = d.pop("offering")
70
+
71
+ terms_of_service = d.pop("terms_of_service", UNSET)
72
+
73
+ terms_of_service_link = d.pop("terms_of_service_link", UNSET)
74
+
75
+ version = d.pop("version", UNSET)
76
+
77
+ is_active = d.pop("is_active", UNSET)
78
+
79
+ requires_reconsent = d.pop("requires_reconsent", UNSET)
80
+
81
+ offering_terms_of_service_create_request = cls(
82
+ offering=offering,
83
+ terms_of_service=terms_of_service,
84
+ terms_of_service_link=terms_of_service_link,
85
+ version=version,
86
+ is_active=is_active,
87
+ requires_reconsent=requires_reconsent,
88
+ )
89
+
90
+ offering_terms_of_service_create_request.additional_properties = d
91
+ return offering_terms_of_service_create_request
92
+
93
+ @property
94
+ def additional_keys(self) -> list[str]:
95
+ return list(self.additional_properties.keys())
96
+
97
+ def __getitem__(self, key: str) -> Any:
98
+ return self.additional_properties[key]
99
+
100
+ def __setitem__(self, key: str, value: Any) -> None:
101
+ self.additional_properties[key] = value
102
+
103
+ def __delitem__(self, key: str) -> None:
104
+ del self.additional_properties[key]
105
+
106
+ def __contains__(self, key: str) -> bool:
107
+ return key in self.additional_properties
@@ -0,0 +1,96 @@
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="OfferingTermsOfServiceRequest")
10
+
11
+
12
+ @_attrs_define
13
+ class OfferingTermsOfServiceRequest:
14
+ """
15
+ Attributes:
16
+ terms_of_service (Union[Unset, str]):
17
+ terms_of_service_link (Union[Unset, str]):
18
+ version (Union[Unset, str]):
19
+ is_active (Union[Unset, bool]):
20
+ requires_reconsent (Union[Unset, bool]): If True, user will be asked to re-consent to the terms of service when
21
+ the terms of service are updated.
22
+ """
23
+
24
+ terms_of_service: Union[Unset, str] = UNSET
25
+ terms_of_service_link: Union[Unset, str] = UNSET
26
+ version: Union[Unset, str] = UNSET
27
+ is_active: Union[Unset, bool] = UNSET
28
+ requires_reconsent: Union[Unset, bool] = UNSET
29
+ additional_properties: dict[str, Any] = _attrs_field(init=False, factory=dict)
30
+
31
+ def to_dict(self) -> dict[str, Any]:
32
+ terms_of_service = self.terms_of_service
33
+
34
+ terms_of_service_link = self.terms_of_service_link
35
+
36
+ version = self.version
37
+
38
+ is_active = self.is_active
39
+
40
+ requires_reconsent = self.requires_reconsent
41
+
42
+ field_dict: dict[str, Any] = {}
43
+ field_dict.update(self.additional_properties)
44
+ field_dict.update({})
45
+ if terms_of_service is not UNSET:
46
+ field_dict["terms_of_service"] = terms_of_service
47
+ if terms_of_service_link is not UNSET:
48
+ field_dict["terms_of_service_link"] = terms_of_service_link
49
+ if version is not UNSET:
50
+ field_dict["version"] = version
51
+ if is_active is not UNSET:
52
+ field_dict["is_active"] = is_active
53
+ if requires_reconsent is not UNSET:
54
+ field_dict["requires_reconsent"] = requires_reconsent
55
+
56
+ return field_dict
57
+
58
+ @classmethod
59
+ def from_dict(cls: type[T], src_dict: Mapping[str, Any]) -> T:
60
+ d = dict(src_dict)
61
+ terms_of_service = d.pop("terms_of_service", UNSET)
62
+
63
+ terms_of_service_link = d.pop("terms_of_service_link", UNSET)
64
+
65
+ version = d.pop("version", UNSET)
66
+
67
+ is_active = d.pop("is_active", UNSET)
68
+
69
+ requires_reconsent = d.pop("requires_reconsent", UNSET)
70
+
71
+ offering_terms_of_service_request = cls(
72
+ terms_of_service=terms_of_service,
73
+ terms_of_service_link=terms_of_service_link,
74
+ version=version,
75
+ is_active=is_active,
76
+ requires_reconsent=requires_reconsent,
77
+ )
78
+
79
+ offering_terms_of_service_request.additional_properties = d
80
+ return offering_terms_of_service_request
81
+
82
+ @property
83
+ def additional_keys(self) -> list[str]:
84
+ return list(self.additional_properties.keys())
85
+
86
+ def __getitem__(self, key: str) -> Any:
87
+ return self.additional_properties[key]
88
+
89
+ def __setitem__(self, key: str, value: Any) -> None:
90
+ self.additional_properties[key] = value
91
+
92
+ def __delitem__(self, key: str) -> None:
93
+ del self.additional_properties[key]
94
+
95
+ def __contains__(self, key: str) -> bool:
96
+ return key in self.additional_properties
@@ -9,7 +9,6 @@ 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
13
12
 
14
13
 
15
14
  T = TypeVar("T", bound="OpenStackBackupRestorationRequest")
@@ -24,8 +23,6 @@ class OpenStackBackupRestorationRequest:
24
23
  name (Union[Unset, str]): New instance name. Leave blank to use source instance name.
25
24
  floating_ips (Union[Unset, list['OpenStackNestedFloatingIPRequest']]): Floating IPs that will be assigned to the
26
25
  restored instance
27
- security_groups (Union[Unset, list['OpenStackNestedSecurityGroupRequest']]): Security groups that will be
28
- assigned to the restored instance
29
26
  ports (Union[Unset, list['OpenStackNestedPortRequest']]): Network ports that will be attached to the restored
30
27
  instance
31
28
  """
@@ -33,7 +30,6 @@ class OpenStackBackupRestorationRequest:
33
30
  flavor: str
34
31
  name: Union[Unset, str] = UNSET
35
32
  floating_ips: Union[Unset, list["OpenStackNestedFloatingIPRequest"]] = UNSET
36
- security_groups: Union[Unset, list["OpenStackNestedSecurityGroupRequest"]] = UNSET
37
33
  ports: Union[Unset, list["OpenStackNestedPortRequest"]] = UNSET
38
34
  additional_properties: dict[str, Any] = _attrs_field(init=False, factory=dict)
39
35
 
@@ -49,13 +45,6 @@ class OpenStackBackupRestorationRequest:
49
45
  floating_ips_item = floating_ips_item_data.to_dict()
50
46
  floating_ips.append(floating_ips_item)
51
47
 
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
-
59
48
  ports: Union[Unset, list[dict[str, Any]]] = UNSET
60
49
  if not isinstance(self.ports, Unset):
61
50
  ports = []
@@ -74,8 +63,6 @@ class OpenStackBackupRestorationRequest:
74
63
  field_dict["name"] = name
75
64
  if floating_ips is not UNSET:
76
65
  field_dict["floating_ips"] = floating_ips
77
- if security_groups is not UNSET:
78
- field_dict["security_groups"] = security_groups
79
66
  if ports is not UNSET:
80
67
  field_dict["ports"] = ports
81
68
 
@@ -85,7 +72,6 @@ class OpenStackBackupRestorationRequest:
85
72
  def from_dict(cls: type[T], src_dict: Mapping[str, Any]) -> T:
86
73
  from ..models.open_stack_nested_floating_ip_request import OpenStackNestedFloatingIPRequest
87
74
  from ..models.open_stack_nested_port_request import OpenStackNestedPortRequest
88
- from ..models.open_stack_nested_security_group_request import OpenStackNestedSecurityGroupRequest
89
75
 
90
76
  d = dict(src_dict)
91
77
  flavor = d.pop("flavor")
@@ -99,13 +85,6 @@ class OpenStackBackupRestorationRequest:
99
85
 
100
86
  floating_ips.append(floating_ips_item)
101
87
 
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
-
109
88
  ports = []
110
89
  _ports = d.pop("ports", UNSET)
111
90
  for ports_item_data in _ports or []:
@@ -117,7 +96,6 @@ class OpenStackBackupRestorationRequest:
117
96
  flavor=flavor,
118
97
  name=name,
119
98
  floating_ips=floating_ips,
120
- security_groups=security_groups,
121
99
  ports=ports,
122
100
  )
123
101
 
@@ -1,5 +1,5 @@
1
1
  from collections.abc import Mapping
2
- from typing import Any, TypeVar, Union
2
+ from typing import Any, TypeVar, Union, cast
3
3
 
4
4
  from attrs import define as _attrs_define
5
5
  from attrs import field as _attrs_field
@@ -22,7 +22,11 @@ class OpenStackFixedIp:
22
22
  additional_properties: dict[str, Any] = _attrs_field(init=False, factory=dict)
23
23
 
24
24
  def to_dict(self) -> dict[str, Any]:
25
- ip_address = self.ip_address
25
+ ip_address: Union[Unset, str]
26
+ if isinstance(self.ip_address, Unset):
27
+ ip_address = UNSET
28
+ else:
29
+ ip_address = self.ip_address
26
30
 
27
31
  subnet_id = self.subnet_id
28
32
 
@@ -39,7 +43,13 @@ class OpenStackFixedIp:
39
43
  @classmethod
40
44
  def from_dict(cls: type[T], src_dict: Mapping[str, Any]) -> T:
41
45
  d = dict(src_dict)
42
- ip_address = d.pop("ip_address", UNSET)
46
+
47
+ def _parse_ip_address(data: object) -> Union[Unset, str]:
48
+ if isinstance(data, Unset):
49
+ return data
50
+ return cast(Union[Unset, str], data)
51
+
52
+ ip_address = _parse_ip_address(d.pop("ip_address", UNSET))
43
53
 
44
54
  subnet_id = d.pop("subnet_id", UNSET)
45
55
 
@@ -1,5 +1,5 @@
1
1
  from collections.abc import Mapping
2
- from typing import Any, TypeVar
2
+ from typing import Any, TypeVar, cast
3
3
 
4
4
  from attrs import define as _attrs_define
5
5
  from attrs import field as _attrs_field
@@ -20,6 +20,7 @@ class OpenStackFixedIpRequest:
20
20
  additional_properties: dict[str, Any] = _attrs_field(init=False, factory=dict)
21
21
 
22
22
  def to_dict(self) -> dict[str, Any]:
23
+ ip_address: str
23
24
  ip_address = self.ip_address
24
25
 
25
26
  subnet_id = self.subnet_id
@@ -38,7 +39,11 @@ class OpenStackFixedIpRequest:
38
39
  @classmethod
39
40
  def from_dict(cls: type[T], src_dict: Mapping[str, Any]) -> T:
40
41
  d = dict(src_dict)
41
- ip_address = d.pop("ip_address")
42
+
43
+ def _parse_ip_address(data: object) -> str:
44
+ return cast(str, data)
45
+
46
+ ip_address = _parse_ip_address(d.pop("ip_address"))
42
47
 
43
48
  subnet_id = d.pop("subnet_id")
44
49
 
@@ -21,6 +21,9 @@ class OpenStackInstanceCreateOrderAttributes:
21
21
  """This mixin allows to specify list of fields to be rendered by serializer.
22
22
  It expects that request is available in serializer's context.
23
23
 
24
+ It is disabled for nested serializers (where parent is another serializer)
25
+ but remains active for list views (where parent is a ListSerializer).
26
+
24
27
  Attributes:
25
28
  name (str):
26
29
  flavor (str): The flavor to use for the instance
@@ -28,8 +31,6 @@ class OpenStackInstanceCreateOrderAttributes:
28
31
  ports (list['OpenStackNestedPortRequest']): Network ports to attach to the instance
29
32
  system_volume_size (int): Size of the system volume in MiB. Minimum size is 1024 MiB (1 GiB)
30
33
  description (Union[Unset, str]):
31
- security_groups (Union[Unset, list['OpenStackNestedSecurityGroupRequest']]): List of security groups to apply to
32
- the instance
33
34
  floating_ips (Union[Unset, list['OpenStackNestedFloatingIPRequest']]): Floating IPs to assign to the instance
34
35
  system_volume_type (Union[None, Unset, str]): Volume type for the system volume
35
36
  data_volume_size (Union[Unset, int]): Size of the data volume in MiB. Minimum size is 1024 MiB (1 GiB)
@@ -41,6 +42,8 @@ class OpenStackInstanceCreateOrderAttributes:
41
42
  external network
42
43
  data_volumes (Union[Unset, list['OpenStackDataVolumeRequest']]): Additional data volumes to attach to the
43
44
  instance
45
+ security_groups (Union[Unset, list['OpenStackNestedSecurityGroupRequest']]): Security groups to attach to the
46
+ instance
44
47
  """
45
48
 
46
49
  name: str
@@ -49,7 +52,6 @@ class OpenStackInstanceCreateOrderAttributes:
49
52
  ports: list["OpenStackNestedPortRequest"]
50
53
  system_volume_size: int
51
54
  description: Union[Unset, str] = UNSET
52
- security_groups: Union[Unset, list["OpenStackNestedSecurityGroupRequest"]] = UNSET
53
55
  floating_ips: Union[Unset, list["OpenStackNestedFloatingIPRequest"]] = UNSET
54
56
  system_volume_type: Union[None, Unset, str] = UNSET
55
57
  data_volume_size: Union[Unset, int] = UNSET
@@ -59,6 +61,7 @@ class OpenStackInstanceCreateOrderAttributes:
59
61
  availability_zone: Union[None, Unset, str] = UNSET
60
62
  connect_directly_to_external_network: Union[Unset, bool] = UNSET
61
63
  data_volumes: Union[Unset, list["OpenStackDataVolumeRequest"]] = UNSET
64
+ security_groups: Union[Unset, list["OpenStackNestedSecurityGroupRequest"]] = UNSET
62
65
  additional_properties: dict[str, Any] = _attrs_field(init=False, factory=dict)
63
66
 
64
67
  def to_dict(self) -> dict[str, Any]:
@@ -77,13 +80,6 @@ class OpenStackInstanceCreateOrderAttributes:
77
80
 
78
81
  description = self.description
79
82
 
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
83
  floating_ips: Union[Unset, list[dict[str, Any]]] = UNSET
88
84
  if not isinstance(self.floating_ips, Unset):
89
85
  floating_ips = []
@@ -124,6 +120,13 @@ class OpenStackInstanceCreateOrderAttributes:
124
120
  data_volumes_item = data_volumes_item_data.to_dict()
125
121
  data_volumes.append(data_volumes_item)
126
122
 
123
+ security_groups: Union[Unset, list[dict[str, Any]]] = UNSET
124
+ if not isinstance(self.security_groups, Unset):
125
+ security_groups = []
126
+ for security_groups_item_data in self.security_groups:
127
+ security_groups_item = security_groups_item_data.to_dict()
128
+ security_groups.append(security_groups_item)
129
+
127
130
  field_dict: dict[str, Any] = {}
128
131
  field_dict.update(self.additional_properties)
129
132
  field_dict.update(
@@ -137,8 +140,6 @@ class OpenStackInstanceCreateOrderAttributes:
137
140
  )
138
141
  if description is not UNSET:
139
142
  field_dict["description"] = description
140
- if security_groups is not UNSET:
141
- field_dict["security_groups"] = security_groups
142
143
  if floating_ips is not UNSET:
143
144
  field_dict["floating_ips"] = floating_ips
144
145
  if system_volume_type is not UNSET:
@@ -157,6 +158,8 @@ class OpenStackInstanceCreateOrderAttributes:
157
158
  field_dict["connect_directly_to_external_network"] = connect_directly_to_external_network
158
159
  if data_volumes is not UNSET:
159
160
  field_dict["data_volumes"] = data_volumes
161
+ if security_groups is not UNSET:
162
+ field_dict["security_groups"] = security_groups
160
163
 
161
164
  return field_dict
162
165
 
@@ -185,13 +188,6 @@ class OpenStackInstanceCreateOrderAttributes:
185
188
 
186
189
  description = d.pop("description", UNSET)
187
190
 
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
191
  floating_ips = []
196
192
  _floating_ips = d.pop("floating_ips", UNSET)
197
193
  for floating_ips_item_data in _floating_ips or []:
@@ -241,6 +237,13 @@ class OpenStackInstanceCreateOrderAttributes:
241
237
 
242
238
  data_volumes.append(data_volumes_item)
243
239
 
240
+ security_groups = []
241
+ _security_groups = d.pop("security_groups", UNSET)
242
+ for security_groups_item_data in _security_groups or []:
243
+ security_groups_item = OpenStackNestedSecurityGroupRequest.from_dict(security_groups_item_data)
244
+
245
+ security_groups.append(security_groups_item)
246
+
244
247
  open_stack_instance_create_order_attributes = cls(
245
248
  name=name,
246
249
  flavor=flavor,
@@ -248,7 +251,6 @@ class OpenStackInstanceCreateOrderAttributes:
248
251
  ports=ports,
249
252
  system_volume_size=system_volume_size,
250
253
  description=description,
251
- security_groups=security_groups,
252
254
  floating_ips=floating_ips,
253
255
  system_volume_type=system_volume_type,
254
256
  data_volume_size=data_volume_size,
@@ -258,6 +260,7 @@ class OpenStackInstanceCreateOrderAttributes:
258
260
  availability_zone=availability_zone,
259
261
  connect_directly_to_external_network=connect_directly_to_external_network,
260
262
  data_volumes=data_volumes,
263
+ security_groups=security_groups,
261
264
  )
262
265
 
263
266
  open_stack_instance_create_order_attributes.additional_properties = d
@@ -1,11 +1,15 @@
1
1
  from collections.abc import Mapping
2
- from typing import Any, TypeVar, Union
2
+ from typing import TYPE_CHECKING, 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
+
9
13
  T = TypeVar("T", bound="OpenStackNestedSecurityGroup")
10
14
 
11
15
 
@@ -14,29 +18,77 @@ class OpenStackNestedSecurityGroup:
14
18
  """
15
19
  Attributes:
16
20
  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]):
17
25
  """
18
26
 
19
27
  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
20
32
  additional_properties: dict[str, Any] = _attrs_field(init=False, factory=dict)
21
33
 
22
34
  def to_dict(self) -> dict[str, Any]:
23
35
  url = self.url
24
36
 
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
+
25
50
  field_dict: dict[str, Any] = {}
26
51
  field_dict.update(self.additional_properties)
27
52
  field_dict.update({})
28
53
  if url is not UNSET:
29
54
  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
30
63
 
31
64
  return field_dict
32
65
 
33
66
  @classmethod
34
67
  def from_dict(cls: type[T], src_dict: Mapping[str, Any]) -> T:
68
+ from ..models.nested_security_group_rule import NestedSecurityGroupRule
69
+
35
70
  d = dict(src_dict)
36
71
  url = d.pop("url", UNSET)
37
72
 
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
+
38
86
  open_stack_nested_security_group = cls(
39
87
  url=url,
88
+ name=name,
89
+ rules=rules,
90
+ description=description,
91
+ state=state,
40
92
  )
41
93
 
42
94
  open_stack_nested_security_group.additional_properties = d
@@ -54,6 +54,7 @@ class OpenStackNetwork:
54
54
  tenant_uuid (Union[Unset, UUID]):
55
55
  is_external (Union[Unset, bool]): Defines whether this network is external (public) or internal (private)
56
56
  type_ (Union[Unset, str]): Network type, such as local, flat, vlan, vxlan, or gre
57
+ segmentation_id (Union[None, Unset, int]): VLAN ID for VLAN networks or tunnel ID for VXLAN/GRE networks
57
58
  subnets (Union[Unset, list['OpenStackNestedSubNet']]):
58
59
  mtu (Union[None, Unset, int]): The maximum transmission unit (MTU) value to address fragmentation.
59
60
  rbac_policies (Union[Unset, list['NetworkRBACPolicy']]):
@@ -99,6 +100,7 @@ class OpenStackNetwork:
99
100
  tenant_uuid: Union[Unset, UUID] = UNSET
100
101
  is_external: Union[Unset, bool] = UNSET
101
102
  type_: Union[Unset, str] = UNSET
103
+ segmentation_id: Union[None, Unset, int] = UNSET
102
104
  subnets: Union[Unset, list["OpenStackNestedSubNet"]] = UNSET
103
105
  mtu: Union[None, Unset, int] = UNSET
104
106
  rbac_policies: Union[Unset, list["NetworkRBACPolicy"]] = UNSET
@@ -197,6 +199,12 @@ class OpenStackNetwork:
197
199
 
198
200
  type_ = self.type_
199
201
 
202
+ segmentation_id: Union[None, Unset, int]
203
+ if isinstance(self.segmentation_id, Unset):
204
+ segmentation_id = UNSET
205
+ else:
206
+ segmentation_id = self.segmentation_id
207
+
200
208
  subnets: Union[Unset, list[dict[str, Any]]] = UNSET
201
209
  if not isinstance(self.subnets, Unset):
202
210
  subnets = []
@@ -342,6 +350,8 @@ class OpenStackNetwork:
342
350
  field_dict["is_external"] = is_external
343
351
  if type_ is not UNSET:
344
352
  field_dict["type"] = type_
353
+ if segmentation_id is not UNSET:
354
+ field_dict["segmentation_id"] = segmentation_id
345
355
  if subnets is not UNSET:
346
356
  field_dict["subnets"] = subnets
347
357
  if mtu is not UNSET:
@@ -480,6 +490,15 @@ class OpenStackNetwork:
480
490
 
481
491
  type_ = d.pop("type", UNSET)
482
492
 
493
+ def _parse_segmentation_id(data: object) -> Union[None, Unset, int]:
494
+ if data is None:
495
+ return data
496
+ if isinstance(data, Unset):
497
+ return data
498
+ return cast(Union[None, Unset, int], data)
499
+
500
+ segmentation_id = _parse_segmentation_id(d.pop("segmentation_id", UNSET))
501
+
483
502
  subnets = []
484
503
  _subnets = d.pop("subnets", UNSET)
485
504
  for subnets_item_data in _subnets or []:
@@ -637,6 +656,7 @@ class OpenStackNetwork:
637
656
  tenant_uuid=tenant_uuid,
638
657
  is_external=is_external,
639
658
  type_=type_,
659
+ segmentation_id=segmentation_id,
640
660
  subnets=subnets,
641
661
  mtu=mtu,
642
662
  rbac_policies=rbac_policies,
@@ -1,5 +1,5 @@
1
1
  from collections.abc import Mapping
2
- from typing import Any, TypeVar
2
+ from typing import Any, TypeVar, cast
3
3
 
4
4
  from attrs import define as _attrs_define
5
5
  from attrs import field as _attrs_field
@@ -22,6 +22,7 @@ class OpenStackPortIPUpdateRequest:
22
22
  def to_dict(self) -> dict[str, Any]:
23
23
  subnet = self.subnet
24
24
 
25
+ ip_address: str
25
26
  ip_address = self.ip_address
26
27
 
27
28
  field_dict: dict[str, Any] = {}
@@ -40,7 +41,10 @@ class OpenStackPortIPUpdateRequest:
40
41
  d = dict(src_dict)
41
42
  subnet = d.pop("subnet")
42
43
 
43
- ip_address = d.pop("ip_address")
44
+ def _parse_ip_address(data: object) -> str:
45
+ return cast(str, data)
46
+
47
+ ip_address = _parse_ip_address(d.pop("ip_address"))
44
48
 
45
49
  open_stack_port_ip_update_request = cls(
46
50
  subnet=subnet,
@@ -17,8 +17,8 @@ T = TypeVar("T", bound="OpenStackSecurityGroupRuleUpdateRequest")
17
17
  class OpenStackSecurityGroupRuleUpdateRequest:
18
18
  """
19
19
  Attributes:
20
- ethertype (Union[Unset, EthertypeEnum]):
21
- direction (Union[Unset, DirectionEnum]):
20
+ ethertype (Union[Unset, EthertypeEnum]): Default: EthertypeEnum.IPV4.
21
+ direction (Union[Unset, DirectionEnum]): Default: DirectionEnum.INGRESS.
22
22
  protocol (Union[BlankEnum, ProtocolEnum, Unset]): The network protocol (TCP, UDP, ICMP, or empty for any
23
23
  protocol)
24
24
  from_port (Union[None, Unset, int]): Starting port number in the range (1-65535)
@@ -28,8 +28,8 @@ class OpenStackSecurityGroupRuleUpdateRequest:
28
28
  remote_group (Union[None, Unset, str]): Remote security group that this rule references, if any
29
29
  """
30
30
 
31
- ethertype: Union[Unset, EthertypeEnum] = UNSET
32
- direction: Union[Unset, DirectionEnum] = UNSET
31
+ ethertype: Union[Unset, EthertypeEnum] = EthertypeEnum.IPV4
32
+ direction: Union[Unset, DirectionEnum] = DirectionEnum.INGRESS
33
33
  protocol: Union[BlankEnum, ProtocolEnum, Unset] = UNSET
34
34
  from_port: Union[None, Unset, int] = UNSET
35
35
  to_port: Union[None, Unset, int] = UNSET