waldur-api-client 7.7.0__py3-none-any.whl → 7.7.2__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 (83) hide show
  1. waldur_api_client/api/autoprovisioning_rules/autoprovisioning_rules_create.py +8 -4
  2. waldur_api_client/api/autoprovisioning_rules/autoprovisioning_rules_destroy.py +4 -2
  3. waldur_api_client/api/autoprovisioning_rules/autoprovisioning_rules_list.py +4 -4
  4. waldur_api_client/api/autoprovisioning_rules/autoprovisioning_rules_partial_update.py +8 -4
  5. waldur_api_client/api/autoprovisioning_rules/autoprovisioning_rules_retrieve.py +8 -4
  6. waldur_api_client/api/autoprovisioning_rules/autoprovisioning_rules_update.py +8 -4
  7. waldur_api_client/api/marketplace_checklists/marketplace_checklists_questions_list.py +31 -32
  8. waldur_api_client/api/marketplace_checklists/marketplace_checklists_retrieve.py +15 -14
  9. waldur_api_client/api/marketplace_checklists_admin/__init__.py +1 -0
  10. waldur_api_client/api/marketplace_checklists_admin/marketplace_checklists_admin_checklist_questions.py +187 -0
  11. waldur_api_client/api/marketplace_checklists_admin/marketplace_checklists_admin_create.py +150 -0
  12. waldur_api_client/api/marketplace_checklists_admin/marketplace_checklists_admin_destroy.py +89 -0
  13. waldur_api_client/api/marketplace_checklists_admin/marketplace_checklists_admin_list.py +173 -0
  14. waldur_api_client/api/marketplace_checklists_admin/marketplace_checklists_admin_partial_update.py +164 -0
  15. waldur_api_client/api/marketplace_checklists_admin/marketplace_checklists_admin_retrieve.py +142 -0
  16. waldur_api_client/api/marketplace_checklists_admin/marketplace_checklists_admin_update.py +164 -0
  17. waldur_api_client/api/marketplace_checklists_admin_question_dependencies/__init__.py +1 -0
  18. waldur_api_client/api/marketplace_checklists_admin_question_dependencies/marketplace_checklists_admin_question_dependencies_create.py +150 -0
  19. waldur_api_client/api/marketplace_checklists_admin_question_dependencies/marketplace_checklists_admin_question_dependencies_destroy.py +89 -0
  20. waldur_api_client/api/marketplace_checklists_admin_question_dependencies/marketplace_checklists_admin_question_dependencies_list.py +212 -0
  21. waldur_api_client/api/marketplace_checklists_admin_question_dependencies/marketplace_checklists_admin_question_dependencies_partial_update.py +164 -0
  22. waldur_api_client/api/marketplace_checklists_admin_question_dependencies/marketplace_checklists_admin_question_dependencies_retrieve.py +142 -0
  23. waldur_api_client/api/marketplace_checklists_admin_question_dependencies/marketplace_checklists_admin_question_dependencies_update.py +164 -0
  24. waldur_api_client/api/marketplace_checklists_admin_question_options/__init__.py +1 -0
  25. waldur_api_client/api/marketplace_checklists_admin_question_options/marketplace_checklists_admin_question_options_create.py +150 -0
  26. waldur_api_client/api/marketplace_checklists_admin_question_options/marketplace_checklists_admin_question_options_destroy.py +89 -0
  27. waldur_api_client/api/marketplace_checklists_admin_question_options/marketplace_checklists_admin_question_options_list.py +194 -0
  28. waldur_api_client/api/marketplace_checklists_admin_question_options/marketplace_checklists_admin_question_options_partial_update.py +164 -0
  29. waldur_api_client/api/marketplace_checklists_admin_question_options/marketplace_checklists_admin_question_options_retrieve.py +142 -0
  30. waldur_api_client/api/marketplace_checklists_admin_question_options/marketplace_checklists_admin_question_options_update.py +164 -0
  31. waldur_api_client/api/marketplace_checklists_admin_questions/__init__.py +1 -0
  32. waldur_api_client/api/marketplace_checklists_admin_questions/marketplace_checklists_admin_questions_create.py +148 -0
  33. waldur_api_client/api/marketplace_checklists_admin_questions/marketplace_checklists_admin_questions_destroy.py +89 -0
  34. waldur_api_client/api/marketplace_checklists_admin_questions/marketplace_checklists_admin_questions_list.py +192 -0
  35. waldur_api_client/api/marketplace_checklists_admin_questions/marketplace_checklists_admin_questions_partial_update.py +162 -0
  36. waldur_api_client/api/marketplace_checklists_admin_questions/marketplace_checklists_admin_questions_retrieve.py +140 -0
  37. waldur_api_client/api/marketplace_checklists_admin_questions/marketplace_checklists_admin_questions_update.py +162 -0
  38. waldur_api_client/models/__init__.py +36 -2
  39. waldur_api_client/models/answer_list.py +8 -19
  40. waldur_api_client/models/answer_submit.py +7 -13
  41. waldur_api_client/models/answer_submit_request.py +7 -13
  42. waldur_api_client/models/booking_resource.py +18 -0
  43. waldur_api_client/models/booking_resources_list_field_item.py +2 -0
  44. waldur_api_client/models/booking_resources_retrieve_field_item.py +2 -0
  45. waldur_api_client/models/call_resource_template.py +23 -1
  46. waldur_api_client/models/checklist.py +8 -0
  47. waldur_api_client/models/checklist_admin.py +127 -0
  48. waldur_api_client/models/checklist_type_enum.py +10 -0
  49. waldur_api_client/models/create_checklist.py +131 -0
  50. waldur_api_client/models/create_checklist_request.py +90 -0
  51. waldur_api_client/models/group_invitation.py +16 -5
  52. waldur_api_client/models/group_invitation_request.py +16 -5
  53. waldur_api_client/models/marketplace_provider_resources_details_retrieve_field_item.py +2 -0
  54. waldur_api_client/models/marketplace_provider_resources_list_field_item.py +2 -0
  55. waldur_api_client/models/marketplace_provider_resources_retrieve_field_item.py +2 -0
  56. waldur_api_client/models/marketplace_resources_details_retrieve_field_item.py +2 -0
  57. waldur_api_client/models/marketplace_resources_list_field_item.py +2 -0
  58. waldur_api_client/models/marketplace_resources_retrieve_field_item.py +2 -0
  59. waldur_api_client/models/open_stack_floating_ip.py +21 -0
  60. waldur_api_client/models/open_stack_port.py +15 -4
  61. waldur_api_client/models/open_stack_router.py +15 -4
  62. waldur_api_client/models/openstack_floating_ips_list_field_item.py +1 -0
  63. waldur_api_client/models/openstack_floating_ips_retrieve_field_item.py +1 -0
  64. waldur_api_client/models/operator_enum.py +12 -0
  65. waldur_api_client/models/patched_create_checklist_request.py +96 -0
  66. waldur_api_client/models/patched_question_admin_request.py +208 -0
  67. waldur_api_client/models/patched_question_dependency_request.py +94 -0
  68. waldur_api_client/models/patched_question_options_admin_request.py +68 -0
  69. waldur_api_client/models/{checklist_question.py → question.py} +29 -16
  70. waldur_api_client/models/question_admin.py +260 -0
  71. waldur_api_client/models/question_admin_request.py +210 -0
  72. waldur_api_client/models/question_dependency.py +127 -0
  73. waldur_api_client/models/question_dependency_request.py +94 -0
  74. waldur_api_client/models/question_options.py +79 -0
  75. waldur_api_client/models/question_options_admin.py +103 -0
  76. waldur_api_client/models/question_options_admin_request.py +78 -0
  77. waldur_api_client/models/question_type_enum.py +15 -0
  78. waldur_api_client/models/resource.py +18 -0
  79. waldur_api_client/models/rule.py +46 -6
  80. {waldur_api_client-7.7.0.dist-info → waldur_api_client-7.7.2.dist-info}/METADATA +1 -1
  81. {waldur_api_client-7.7.0.dist-info → waldur_api_client-7.7.2.dist-info}/RECORD +83 -37
  82. {waldur_api_client-7.7.0.dist-info → waldur_api_client-7.7.2.dist-info}/LICENSE +0 -0
  83. {waldur_api_client-7.7.0.dist-info → waldur_api_client-7.7.2.dist-info}/WHEEL +0 -0
@@ -0,0 +1,131 @@
1
+ from collections.abc import Mapping
2
+ from typing import Any, TypeVar, Union, cast
3
+ from uuid import UUID
4
+
5
+ from attrs import define as _attrs_define
6
+ from attrs import field as _attrs_field
7
+
8
+ from ..models.checklist_type_enum import ChecklistTypeEnum
9
+ from ..types import UNSET, Unset
10
+
11
+ T = TypeVar("T", bound="CreateChecklist")
12
+
13
+
14
+ @_attrs_define
15
+ class CreateChecklist:
16
+ """
17
+ Attributes:
18
+ uuid (UUID):
19
+ url (str):
20
+ name (str):
21
+ questions_count (int):
22
+ category_name (str):
23
+ category_uuid (UUID):
24
+ checklist_type (ChecklistTypeEnum):
25
+ description (Union[Unset, str]):
26
+ roles (Union[Unset, list[str]]):
27
+ """
28
+
29
+ uuid: UUID
30
+ url: str
31
+ name: str
32
+ questions_count: int
33
+ category_name: str
34
+ category_uuid: UUID
35
+ checklist_type: ChecklistTypeEnum
36
+ description: Union[Unset, str] = UNSET
37
+ roles: Union[Unset, list[str]] = UNSET
38
+ additional_properties: dict[str, Any] = _attrs_field(init=False, factory=dict)
39
+
40
+ def to_dict(self) -> dict[str, Any]:
41
+ uuid = str(self.uuid)
42
+
43
+ url = self.url
44
+
45
+ name = self.name
46
+
47
+ questions_count = self.questions_count
48
+
49
+ category_name = self.category_name
50
+
51
+ category_uuid = str(self.category_uuid)
52
+
53
+ checklist_type = self.checklist_type.value
54
+
55
+ description = self.description
56
+
57
+ roles: Union[Unset, list[str]] = UNSET
58
+ if not isinstance(self.roles, Unset):
59
+ roles = self.roles
60
+
61
+ field_dict: dict[str, Any] = {}
62
+ field_dict.update(self.additional_properties)
63
+ field_dict.update(
64
+ {
65
+ "uuid": uuid,
66
+ "url": url,
67
+ "name": name,
68
+ "questions_count": questions_count,
69
+ "category_name": category_name,
70
+ "category_uuid": category_uuid,
71
+ "checklist_type": checklist_type,
72
+ }
73
+ )
74
+ if description is not UNSET:
75
+ field_dict["description"] = description
76
+ if roles is not UNSET:
77
+ field_dict["roles"] = roles
78
+
79
+ return field_dict
80
+
81
+ @classmethod
82
+ def from_dict(cls: type[T], src_dict: Mapping[str, Any]) -> T:
83
+ d = dict(src_dict)
84
+ uuid = UUID(d.pop("uuid"))
85
+
86
+ url = d.pop("url")
87
+
88
+ name = d.pop("name")
89
+
90
+ questions_count = d.pop("questions_count")
91
+
92
+ category_name = d.pop("category_name")
93
+
94
+ category_uuid = UUID(d.pop("category_uuid"))
95
+
96
+ checklist_type = ChecklistTypeEnum(d.pop("checklist_type"))
97
+
98
+ description = d.pop("description", UNSET)
99
+
100
+ roles = cast(list[str], d.pop("roles", UNSET))
101
+
102
+ create_checklist = cls(
103
+ uuid=uuid,
104
+ url=url,
105
+ name=name,
106
+ questions_count=questions_count,
107
+ category_name=category_name,
108
+ category_uuid=category_uuid,
109
+ checklist_type=checklist_type,
110
+ description=description,
111
+ roles=roles,
112
+ )
113
+
114
+ create_checklist.additional_properties = d
115
+ return create_checklist
116
+
117
+ @property
118
+ def additional_keys(self) -> list[str]:
119
+ return list(self.additional_properties.keys())
120
+
121
+ def __getitem__(self, key: str) -> Any:
122
+ return self.additional_properties[key]
123
+
124
+ def __setitem__(self, key: str, value: Any) -> None:
125
+ self.additional_properties[key] = value
126
+
127
+ def __delitem__(self, key: str) -> None:
128
+ del self.additional_properties[key]
129
+
130
+ def __contains__(self, key: str) -> bool:
131
+ return key in self.additional_properties
@@ -0,0 +1,90 @@
1
+ from collections.abc import Mapping
2
+ from typing import Any, TypeVar, Union, cast
3
+
4
+ from attrs import define as _attrs_define
5
+ from attrs import field as _attrs_field
6
+
7
+ from ..models.checklist_type_enum import ChecklistTypeEnum
8
+ from ..types import UNSET, Unset
9
+
10
+ T = TypeVar("T", bound="CreateChecklistRequest")
11
+
12
+
13
+ @_attrs_define
14
+ class CreateChecklistRequest:
15
+ """
16
+ Attributes:
17
+ name (str):
18
+ checklist_type (ChecklistTypeEnum):
19
+ description (Union[Unset, str]):
20
+ roles (Union[Unset, list[str]]):
21
+ """
22
+
23
+ name: str
24
+ checklist_type: ChecklistTypeEnum
25
+ description: Union[Unset, str] = UNSET
26
+ roles: Union[Unset, list[str]] = UNSET
27
+ additional_properties: dict[str, Any] = _attrs_field(init=False, factory=dict)
28
+
29
+ def to_dict(self) -> dict[str, Any]:
30
+ name = self.name
31
+
32
+ checklist_type = self.checklist_type.value
33
+
34
+ description = self.description
35
+
36
+ roles: Union[Unset, list[str]] = UNSET
37
+ if not isinstance(self.roles, Unset):
38
+ roles = self.roles
39
+
40
+ field_dict: dict[str, Any] = {}
41
+ field_dict.update(self.additional_properties)
42
+ field_dict.update(
43
+ {
44
+ "name": name,
45
+ "checklist_type": checklist_type,
46
+ }
47
+ )
48
+ if description is not UNSET:
49
+ field_dict["description"] = description
50
+ if roles is not UNSET:
51
+ field_dict["roles"] = roles
52
+
53
+ return field_dict
54
+
55
+ @classmethod
56
+ def from_dict(cls: type[T], src_dict: Mapping[str, Any]) -> T:
57
+ d = dict(src_dict)
58
+ name = d.pop("name")
59
+
60
+ checklist_type = ChecklistTypeEnum(d.pop("checklist_type"))
61
+
62
+ description = d.pop("description", UNSET)
63
+
64
+ roles = cast(list[str], d.pop("roles", UNSET))
65
+
66
+ create_checklist_request = cls(
67
+ name=name,
68
+ checklist_type=checklist_type,
69
+ description=description,
70
+ roles=roles,
71
+ )
72
+
73
+ create_checklist_request.additional_properties = d
74
+ return create_checklist_request
75
+
76
+ @property
77
+ def additional_keys(self) -> list[str]:
78
+ return list(self.additional_properties.keys())
79
+
80
+ def __getitem__(self, key: str) -> Any:
81
+ return self.additional_properties[key]
82
+
83
+ def __setitem__(self, key: str, value: Any) -> None:
84
+ self.additional_properties[key] = value
85
+
86
+ def __delitem__(self, key: str) -> None:
87
+ del self.additional_properties[key]
88
+
89
+ def __contains__(self, key: str) -> bool:
90
+ return key in self.additional_properties
@@ -33,8 +33,8 @@ class GroupInvitation:
33
33
  is_active (bool):
34
34
  auto_create_project (Union[Unset, bool]): Create project and grant project permissions instead of customer
35
35
  permissions
36
- project_name_template (Union[Unset, str]): Template for project name. Supports {username}, {email}, {full_name}
37
- variables
36
+ project_name_template (Union[None, Unset, str]): Template for project name. Supports {username}, {email},
37
+ {full_name} variables
38
38
  project_role (Union[None, UUID, Unset]):
39
39
  """
40
40
 
@@ -54,7 +54,7 @@ class GroupInvitation:
54
54
  expires: datetime.datetime
55
55
  is_active: bool
56
56
  auto_create_project: Union[Unset, bool] = UNSET
57
- project_name_template: Union[Unset, str] = UNSET
57
+ project_name_template: Union[None, Unset, str] = UNSET
58
58
  project_role: Union[None, UUID, Unset] = UNSET
59
59
  additional_properties: dict[str, Any] = _attrs_field(init=False, factory=dict)
60
60
 
@@ -91,7 +91,11 @@ class GroupInvitation:
91
91
 
92
92
  auto_create_project = self.auto_create_project
93
93
 
94
- project_name_template = self.project_name_template
94
+ project_name_template: Union[None, Unset, str]
95
+ if isinstance(self.project_name_template, Unset):
96
+ project_name_template = UNSET
97
+ else:
98
+ project_name_template = self.project_name_template
95
99
 
96
100
  project_role: Union[None, Unset, str]
97
101
  if isinstance(self.project_role, Unset):
@@ -166,7 +170,14 @@ class GroupInvitation:
166
170
 
167
171
  auto_create_project = d.pop("auto_create_project", UNSET)
168
172
 
169
- project_name_template = d.pop("project_name_template", UNSET)
173
+ def _parse_project_name_template(data: object) -> Union[None, Unset, str]:
174
+ if data is None:
175
+ return data
176
+ if isinstance(data, Unset):
177
+ return data
178
+ return cast(Union[None, Unset, str], data)
179
+
180
+ project_name_template = _parse_project_name_template(d.pop("project_name_template", UNSET))
170
181
 
171
182
  def _parse_project_role(data: object) -> Union[None, UUID, Unset]:
172
183
  if data is None:
@@ -18,15 +18,15 @@ class GroupInvitationRequest:
18
18
  scope (str):
19
19
  auto_create_project (Union[Unset, bool]): Create project and grant project permissions instead of customer
20
20
  permissions
21
- project_name_template (Union[Unset, str]): Template for project name. Supports {username}, {email}, {full_name}
22
- variables
21
+ project_name_template (Union[None, Unset, str]): Template for project name. Supports {username}, {email},
22
+ {full_name} variables
23
23
  project_role (Union[None, UUID, Unset]):
24
24
  """
25
25
 
26
26
  role: UUID
27
27
  scope: str
28
28
  auto_create_project: Union[Unset, bool] = UNSET
29
- project_name_template: Union[Unset, str] = UNSET
29
+ project_name_template: Union[None, Unset, str] = UNSET
30
30
  project_role: Union[None, UUID, Unset] = UNSET
31
31
  additional_properties: dict[str, Any] = _attrs_field(init=False, factory=dict)
32
32
 
@@ -37,7 +37,11 @@ class GroupInvitationRequest:
37
37
 
38
38
  auto_create_project = self.auto_create_project
39
39
 
40
- project_name_template = self.project_name_template
40
+ project_name_template: Union[None, Unset, str]
41
+ if isinstance(self.project_name_template, Unset):
42
+ project_name_template = UNSET
43
+ else:
44
+ project_name_template = self.project_name_template
41
45
 
42
46
  project_role: Union[None, Unset, str]
43
47
  if isinstance(self.project_role, Unset):
@@ -73,7 +77,14 @@ class GroupInvitationRequest:
73
77
 
74
78
  auto_create_project = d.pop("auto_create_project", UNSET)
75
79
 
76
- project_name_template = d.pop("project_name_template", UNSET)
80
+ def _parse_project_name_template(data: object) -> Union[None, Unset, str]:
81
+ if data is None:
82
+ return data
83
+ if isinstance(data, Unset):
84
+ return data
85
+ return cast(Union[None, Unset, str], data)
86
+
87
+ project_name_template = _parse_project_name_template(d.pop("project_name_template", UNSET))
77
88
 
78
89
  def _parse_project_role(data: object) -> Union[None, UUID, Unset]:
79
90
  if data is None:
@@ -39,6 +39,7 @@ class MarketplaceProviderResourcesDetailsRetrieveFieldItem(str, Enum):
39
39
  OFFERING_NAME = "offering_name"
40
40
  OFFERING_PLUGIN_OPTIONS = "offering_plugin_options"
41
41
  OFFERING_SHARED = "offering_shared"
42
+ OFFERING_SLUG = "offering_slug"
42
43
  OFFERING_TERMS_OF_SERVICE = "offering_terms_of_service"
43
44
  OFFERING_THUMBNAIL = "offering_thumbnail"
44
45
  OFFERING_TYPE = "offering_type"
@@ -47,6 +48,7 @@ class MarketplaceProviderResourcesDetailsRetrieveFieldItem(str, Enum):
47
48
  ORDER_IN_PROGRESS = "order_in_progress"
48
49
  PARENT_NAME = "parent_name"
49
50
  PARENT_OFFERING_NAME = "parent_offering_name"
51
+ PARENT_OFFERING_SLUG = "parent_offering_slug"
50
52
  PARENT_OFFERING_UUID = "parent_offering_uuid"
51
53
  PARENT_UUID = "parent_uuid"
52
54
  PAUSED = "paused"
@@ -39,6 +39,7 @@ class MarketplaceProviderResourcesListFieldItem(str, Enum):
39
39
  OFFERING_NAME = "offering_name"
40
40
  OFFERING_PLUGIN_OPTIONS = "offering_plugin_options"
41
41
  OFFERING_SHARED = "offering_shared"
42
+ OFFERING_SLUG = "offering_slug"
42
43
  OFFERING_TERMS_OF_SERVICE = "offering_terms_of_service"
43
44
  OFFERING_THUMBNAIL = "offering_thumbnail"
44
45
  OFFERING_TYPE = "offering_type"
@@ -47,6 +48,7 @@ class MarketplaceProviderResourcesListFieldItem(str, Enum):
47
48
  ORDER_IN_PROGRESS = "order_in_progress"
48
49
  PARENT_NAME = "parent_name"
49
50
  PARENT_OFFERING_NAME = "parent_offering_name"
51
+ PARENT_OFFERING_SLUG = "parent_offering_slug"
50
52
  PARENT_OFFERING_UUID = "parent_offering_uuid"
51
53
  PARENT_UUID = "parent_uuid"
52
54
  PAUSED = "paused"
@@ -39,6 +39,7 @@ class MarketplaceProviderResourcesRetrieveFieldItem(str, Enum):
39
39
  OFFERING_NAME = "offering_name"
40
40
  OFFERING_PLUGIN_OPTIONS = "offering_plugin_options"
41
41
  OFFERING_SHARED = "offering_shared"
42
+ OFFERING_SLUG = "offering_slug"
42
43
  OFFERING_TERMS_OF_SERVICE = "offering_terms_of_service"
43
44
  OFFERING_THUMBNAIL = "offering_thumbnail"
44
45
  OFFERING_TYPE = "offering_type"
@@ -47,6 +48,7 @@ class MarketplaceProviderResourcesRetrieveFieldItem(str, Enum):
47
48
  ORDER_IN_PROGRESS = "order_in_progress"
48
49
  PARENT_NAME = "parent_name"
49
50
  PARENT_OFFERING_NAME = "parent_offering_name"
51
+ PARENT_OFFERING_SLUG = "parent_offering_slug"
50
52
  PARENT_OFFERING_UUID = "parent_offering_uuid"
51
53
  PARENT_UUID = "parent_uuid"
52
54
  PAUSED = "paused"
@@ -39,6 +39,7 @@ class MarketplaceResourcesDetailsRetrieveFieldItem(str, Enum):
39
39
  OFFERING_NAME = "offering_name"
40
40
  OFFERING_PLUGIN_OPTIONS = "offering_plugin_options"
41
41
  OFFERING_SHARED = "offering_shared"
42
+ OFFERING_SLUG = "offering_slug"
42
43
  OFFERING_TERMS_OF_SERVICE = "offering_terms_of_service"
43
44
  OFFERING_THUMBNAIL = "offering_thumbnail"
44
45
  OFFERING_TYPE = "offering_type"
@@ -47,6 +48,7 @@ class MarketplaceResourcesDetailsRetrieveFieldItem(str, Enum):
47
48
  ORDER_IN_PROGRESS = "order_in_progress"
48
49
  PARENT_NAME = "parent_name"
49
50
  PARENT_OFFERING_NAME = "parent_offering_name"
51
+ PARENT_OFFERING_SLUG = "parent_offering_slug"
50
52
  PARENT_OFFERING_UUID = "parent_offering_uuid"
51
53
  PARENT_UUID = "parent_uuid"
52
54
  PAUSED = "paused"
@@ -39,6 +39,7 @@ class MarketplaceResourcesListFieldItem(str, Enum):
39
39
  OFFERING_NAME = "offering_name"
40
40
  OFFERING_PLUGIN_OPTIONS = "offering_plugin_options"
41
41
  OFFERING_SHARED = "offering_shared"
42
+ OFFERING_SLUG = "offering_slug"
42
43
  OFFERING_TERMS_OF_SERVICE = "offering_terms_of_service"
43
44
  OFFERING_THUMBNAIL = "offering_thumbnail"
44
45
  OFFERING_TYPE = "offering_type"
@@ -47,6 +48,7 @@ class MarketplaceResourcesListFieldItem(str, Enum):
47
48
  ORDER_IN_PROGRESS = "order_in_progress"
48
49
  PARENT_NAME = "parent_name"
49
50
  PARENT_OFFERING_NAME = "parent_offering_name"
51
+ PARENT_OFFERING_SLUG = "parent_offering_slug"
50
52
  PARENT_OFFERING_UUID = "parent_offering_uuid"
51
53
  PARENT_UUID = "parent_uuid"
52
54
  PAUSED = "paused"
@@ -39,6 +39,7 @@ class MarketplaceResourcesRetrieveFieldItem(str, Enum):
39
39
  OFFERING_NAME = "offering_name"
40
40
  OFFERING_PLUGIN_OPTIONS = "offering_plugin_options"
41
41
  OFFERING_SHARED = "offering_shared"
42
+ OFFERING_SLUG = "offering_slug"
42
43
  OFFERING_TERMS_OF_SERVICE = "offering_terms_of_service"
43
44
  OFFERING_THUMBNAIL = "offering_thumbnail"
44
45
  OFFERING_TYPE = "offering_type"
@@ -47,6 +48,7 @@ class MarketplaceResourcesRetrieveFieldItem(str, Enum):
47
48
  ORDER_IN_PROGRESS = "order_in_progress"
48
49
  PARENT_NAME = "parent_name"
49
50
  PARENT_OFFERING_NAME = "parent_offering_name"
51
+ PARENT_OFFERING_SLUG = "parent_offering_slug"
50
52
  PARENT_OFFERING_UUID = "parent_offering_uuid"
51
53
  PARENT_UUID = "parent_uuid"
52
54
  PAUSED = "paused"
@@ -11,6 +11,7 @@ from ..models.core_states import CoreStates
11
11
  from ..types import UNSET, Unset
12
12
 
13
13
  if TYPE_CHECKING:
14
+ from ..models.open_stack_fixed_ip import OpenStackFixedIp
14
15
  from ..models.open_stack_floating_ip_marketplace_offering_plugin_options_type_0 import (
15
16
  OpenStackFloatingIPMarketplaceOfferingPluginOptionsType0,
16
17
  )
@@ -55,6 +56,7 @@ class OpenStackFloatingIP:
55
56
  tenant_uuid (Union[Unset, UUID]):
56
57
  port (Union[Unset, str]):
57
58
  external_address (Union[None, Unset, str]): An optional address that maps to floating IP's address
59
+ port_fixed_ips (Union[Unset, list['OpenStackFixedIp']]):
58
60
  instance_uuid (Union[None, Unset, str]):
59
61
  instance_name (Union[None, Unset, str]):
60
62
  instance_url (Union[None, Unset, str]):
@@ -103,6 +105,7 @@ class OpenStackFloatingIP:
103
105
  tenant_uuid: Union[Unset, UUID] = UNSET
104
106
  port: Union[Unset, str] = UNSET
105
107
  external_address: Union[None, Unset, str] = UNSET
108
+ port_fixed_ips: Union[Unset, list["OpenStackFixedIp"]] = UNSET
106
109
  instance_uuid: Union[None, Unset, str] = UNSET
107
110
  instance_name: Union[None, Unset, str] = UNSET
108
111
  instance_url: Union[None, Unset, str] = UNSET
@@ -215,6 +218,13 @@ class OpenStackFloatingIP:
215
218
  else:
216
219
  external_address = self.external_address
217
220
 
221
+ port_fixed_ips: Union[Unset, list[dict[str, Any]]] = UNSET
222
+ if not isinstance(self.port_fixed_ips, Unset):
223
+ port_fixed_ips = []
224
+ for port_fixed_ips_item_data in self.port_fixed_ips:
225
+ port_fixed_ips_item = port_fixed_ips_item_data.to_dict()
226
+ port_fixed_ips.append(port_fixed_ips_item)
227
+
218
228
  instance_uuid: Union[None, Unset, str]
219
229
  if isinstance(self.instance_uuid, Unset):
220
230
  instance_uuid = UNSET
@@ -364,6 +374,8 @@ class OpenStackFloatingIP:
364
374
  field_dict["port"] = port
365
375
  if external_address is not UNSET:
366
376
  field_dict["external_address"] = external_address
377
+ if port_fixed_ips is not UNSET:
378
+ field_dict["port_fixed_ips"] = port_fixed_ips
367
379
  if instance_uuid is not UNSET:
368
380
  field_dict["instance_uuid"] = instance_uuid
369
381
  if instance_name is not UNSET:
@@ -395,6 +407,7 @@ class OpenStackFloatingIP:
395
407
 
396
408
  @classmethod
397
409
  def from_dict(cls: type[T], src_dict: Mapping[str, Any]) -> T:
410
+ from ..models.open_stack_fixed_ip import OpenStackFixedIp
398
411
  from ..models.open_stack_floating_ip_marketplace_offering_plugin_options_type_0 import (
399
412
  OpenStackFloatingIPMarketplaceOfferingPluginOptionsType0,
400
413
  )
@@ -520,6 +533,13 @@ class OpenStackFloatingIP:
520
533
 
521
534
  external_address = _parse_external_address(d.pop("external_address", UNSET))
522
535
 
536
+ port_fixed_ips = []
537
+ _port_fixed_ips = d.pop("port_fixed_ips", UNSET)
538
+ for port_fixed_ips_item_data in _port_fixed_ips or []:
539
+ port_fixed_ips_item = OpenStackFixedIp.from_dict(port_fixed_ips_item_data)
540
+
541
+ port_fixed_ips.append(port_fixed_ips_item)
542
+
523
543
  def _parse_instance_uuid(data: object) -> Union[None, Unset, str]:
524
544
  if data is None:
525
545
  return data
@@ -684,6 +704,7 @@ class OpenStackFloatingIP:
684
704
  tenant_uuid=tenant_uuid,
685
705
  port=port,
686
706
  external_address=external_address,
707
+ port_fixed_ips=port_fixed_ips,
687
708
  instance_uuid=instance_uuid,
688
709
  instance_name=instance_name,
689
710
  instance_url=instance_url,
@@ -48,7 +48,7 @@ class OpenStackPort:
48
48
  state (Union[Unset, CoreStates]):
49
49
  created (Union[Unset, datetime.datetime]):
50
50
  modified (Union[Unset, datetime.datetime]):
51
- backend_id (Union[Unset, str]):
51
+ backend_id (Union[None, Unset, str]):
52
52
  access_url (Union[None, Unset, str]):
53
53
  fixed_ips (Union[Unset, list['OpenStackFixedIp']]):
54
54
  mac_address (Union[Unset, str]):
@@ -100,7 +100,7 @@ class OpenStackPort:
100
100
  state: Union[Unset, CoreStates] = UNSET
101
101
  created: Union[Unset, datetime.datetime] = UNSET
102
102
  modified: Union[Unset, datetime.datetime] = UNSET
103
- backend_id: Union[Unset, str] = UNSET
103
+ backend_id: Union[None, Unset, str] = UNSET
104
104
  access_url: Union[None, Unset, str] = UNSET
105
105
  fixed_ips: Union[Unset, list["OpenStackFixedIp"]] = UNSET
106
106
  mac_address: Union[Unset, str] = UNSET
@@ -193,7 +193,11 @@ class OpenStackPort:
193
193
  if not isinstance(self.modified, Unset):
194
194
  modified = self.modified.isoformat()
195
195
 
196
- backend_id = self.backend_id
196
+ backend_id: Union[None, Unset, str]
197
+ if isinstance(self.backend_id, Unset):
198
+ backend_id = UNSET
199
+ else:
200
+ backend_id = self.backend_id
197
201
 
198
202
  access_url: Union[None, Unset, str]
199
203
  if isinstance(self.access_url, Unset):
@@ -526,7 +530,14 @@ class OpenStackPort:
526
530
  else:
527
531
  modified = isoparse(_modified)
528
532
 
529
- backend_id = d.pop("backend_id", UNSET)
533
+ def _parse_backend_id(data: object) -> Union[None, Unset, str]:
534
+ if data is None:
535
+ return data
536
+ if isinstance(data, Unset):
537
+ return data
538
+ return cast(Union[None, Unset, str], data)
539
+
540
+ backend_id = _parse_backend_id(d.pop("backend_id", UNSET))
530
541
 
531
542
  def _parse_access_url(data: object) -> Union[None, Unset, str]:
532
543
  if data is None:
@@ -48,7 +48,7 @@ class OpenStackRouter:
48
48
  state (Union[Unset, CoreStates]):
49
49
  created (Union[Unset, datetime.datetime]):
50
50
  modified (Union[Unset, datetime.datetime]):
51
- backend_id (Union[Unset, str]):
51
+ backend_id (Union[None, Unset, str]):
52
52
  access_url (Union[None, Unset, str]):
53
53
  tenant (Union[Unset, str]):
54
54
  tenant_name (Union[Unset, str]):
@@ -92,7 +92,7 @@ class OpenStackRouter:
92
92
  state: Union[Unset, CoreStates] = UNSET
93
93
  created: Union[Unset, datetime.datetime] = UNSET
94
94
  modified: Union[Unset, datetime.datetime] = UNSET
95
- backend_id: Union[Unset, str] = UNSET
95
+ backend_id: Union[None, Unset, str] = UNSET
96
96
  access_url: Union[None, Unset, str] = UNSET
97
97
  tenant: Union[Unset, str] = UNSET
98
98
  tenant_name: Union[Unset, str] = UNSET
@@ -176,7 +176,11 @@ class OpenStackRouter:
176
176
  if not isinstance(self.modified, Unset):
177
177
  modified = self.modified.isoformat()
178
178
 
179
- backend_id = self.backend_id
179
+ backend_id: Union[None, Unset, str]
180
+ if isinstance(self.backend_id, Unset):
181
+ backend_id = UNSET
182
+ else:
183
+ backend_id = self.backend_id
180
184
 
181
185
  access_url: Union[None, Unset, str]
182
186
  if isinstance(self.access_url, Unset):
@@ -456,7 +460,14 @@ class OpenStackRouter:
456
460
  else:
457
461
  modified = isoparse(_modified)
458
462
 
459
- backend_id = d.pop("backend_id", UNSET)
463
+ def _parse_backend_id(data: object) -> Union[None, Unset, str]:
464
+ if data is None:
465
+ return data
466
+ if isinstance(data, Unset):
467
+ return data
468
+ return cast(Union[None, Unset, str], data)
469
+
470
+ backend_id = _parse_backend_id(d.pop("backend_id", UNSET))
460
471
 
461
472
  def _parse_access_url(data: object) -> Union[None, Unset, str]:
462
473
  if data is None:
@@ -31,6 +31,7 @@ class OpenstackFloatingIpsListFieldItem(str, Enum):
31
31
  MODIFIED = "modified"
32
32
  NAME = "name"
33
33
  PORT = "port"
34
+ PORT_FIXED_IPS = "port_fixed_ips"
34
35
  PROJECT = "project"
35
36
  PROJECT_NAME = "project_name"
36
37
  PROJECT_UUID = "project_uuid"
@@ -31,6 +31,7 @@ class OpenstackFloatingIpsRetrieveFieldItem(str, Enum):
31
31
  MODIFIED = "modified"
32
32
  NAME = "name"
33
33
  PORT = "port"
34
+ PORT_FIXED_IPS = "port_fixed_ips"
34
35
  PROJECT = "project"
35
36
  PROJECT_NAME = "project_name"
36
37
  PROJECT_UUID = "project_uuid"
@@ -0,0 +1,12 @@
1
+ from enum import Enum
2
+
3
+
4
+ class OperatorEnum(str, Enum):
5
+ CONTAINS = "contains"
6
+ EQUALS = "equals"
7
+ IN = "in"
8
+ NOT_EQUALS = "not_equals"
9
+ NOT_IN = "not_in"
10
+
11
+ def __str__(self) -> str:
12
+ return str(self.value)