waldur-api-client 7.6.8__py3-none-any.whl → 7.7.0__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 (91) hide show
  1. waldur_api_client/api/broadcast_messages/broadcast_messages_schedule.py +89 -0
  2. waldur_api_client/api/call_proposal_project_role_mappings/call_proposal_project_role_mappings_create.py +152 -0
  3. waldur_api_client/api/call_proposal_project_role_mappings/call_proposal_project_role_mappings_destroy.py +89 -0
  4. waldur_api_client/api/call_proposal_project_role_mappings/call_proposal_project_role_mappings_list.py +194 -0
  5. waldur_api_client/api/call_proposal_project_role_mappings/call_proposal_project_role_mappings_partial_update.py +166 -0
  6. waldur_api_client/api/call_proposal_project_role_mappings/call_proposal_project_role_mappings_retrieve.py +144 -0
  7. waldur_api_client/api/call_proposal_project_role_mappings/call_proposal_project_role_mappings_update.py +166 -0
  8. waldur_api_client/api/invoices/invoices_list.py +0 -30
  9. waldur_api_client/api/invoices/invoices_stats_list.py +0 -30
  10. waldur_api_client/api/marketplace_maintenance_announcement_offerings/__init__.py +1 -0
  11. waldur_api_client/api/marketplace_maintenance_announcement_offerings/marketplace_maintenance_announcement_offerings_create.py +152 -0
  12. waldur_api_client/api/marketplace_maintenance_announcement_offerings/marketplace_maintenance_announcement_offerings_destroy.py +89 -0
  13. waldur_api_client/api/marketplace_maintenance_announcement_offerings/marketplace_maintenance_announcement_offerings_list.py +175 -0
  14. waldur_api_client/api/marketplace_maintenance_announcement_offerings/marketplace_maintenance_announcement_offerings_partial_update.py +166 -0
  15. waldur_api_client/api/marketplace_maintenance_announcement_offerings/marketplace_maintenance_announcement_offerings_retrieve.py +144 -0
  16. waldur_api_client/api/marketplace_maintenance_announcement_offerings/marketplace_maintenance_announcement_offerings_update.py +166 -0
  17. waldur_api_client/api/marketplace_maintenance_announcement_template_offerings/__init__.py +1 -0
  18. waldur_api_client/api/marketplace_maintenance_announcement_template_offerings/marketplace_maintenance_announcement_template_offerings_create.py +152 -0
  19. waldur_api_client/api/marketplace_maintenance_announcement_template_offerings/marketplace_maintenance_announcement_template_offerings_destroy.py +89 -0
  20. waldur_api_client/api/marketplace_maintenance_announcement_template_offerings/marketplace_maintenance_announcement_template_offerings_list.py +175 -0
  21. waldur_api_client/api/marketplace_maintenance_announcement_template_offerings/marketplace_maintenance_announcement_template_offerings_partial_update.py +168 -0
  22. waldur_api_client/api/marketplace_maintenance_announcement_template_offerings/marketplace_maintenance_announcement_template_offerings_retrieve.py +144 -0
  23. waldur_api_client/api/marketplace_maintenance_announcement_template_offerings/marketplace_maintenance_announcement_template_offerings_update.py +166 -0
  24. waldur_api_client/api/marketplace_maintenance_announcements/__init__.py +1 -0
  25. waldur_api_client/api/{autoprovisioning_rule_plans/autoprovisioning_rule_plans_create.py → marketplace_maintenance_announcements/marketplace_maintenance_announcements_create.py} +25 -23
  26. waldur_api_client/api/marketplace_maintenance_announcements/marketplace_maintenance_announcements_destroy.py +89 -0
  27. waldur_api_client/api/{autoprovisioning_rule_plans/autoprovisioning_rule_plans_list.py → marketplace_maintenance_announcements/marketplace_maintenance_announcements_list.py} +15 -13
  28. waldur_api_client/api/{autoprovisioning_rule_plans/autoprovisioning_rule_plans_partial_update.py → marketplace_maintenance_announcements/marketplace_maintenance_announcements_partial_update.py} +25 -23
  29. waldur_api_client/api/{autoprovisioning_rule_plans/autoprovisioning_rule_plans_retrieve.py → marketplace_maintenance_announcements/marketplace_maintenance_announcements_retrieve.py} +15 -13
  30. waldur_api_client/api/{autoprovisioning_rule_plans/autoprovisioning_rule_plans_update.py → marketplace_maintenance_announcements/marketplace_maintenance_announcements_update.py} +25 -23
  31. waldur_api_client/api/marketplace_maintenance_announcements_template/__init__.py +1 -0
  32. waldur_api_client/api/marketplace_maintenance_announcements_template/marketplace_maintenance_announcements_template_create.py +152 -0
  33. waldur_api_client/api/marketplace_maintenance_announcements_template/marketplace_maintenance_announcements_template_destroy.py +89 -0
  34. waldur_api_client/api/marketplace_maintenance_announcements_template/marketplace_maintenance_announcements_template_list.py +175 -0
  35. waldur_api_client/api/marketplace_maintenance_announcements_template/marketplace_maintenance_announcements_template_partial_update.py +166 -0
  36. waldur_api_client/api/marketplace_maintenance_announcements_template/marketplace_maintenance_announcements_template_retrieve.py +144 -0
  37. waldur_api_client/api/marketplace_maintenance_announcements_template/marketplace_maintenance_announcements_template_update.py +166 -0
  38. waldur_api_client/api/{autoprovisioning_rule_plans/autoprovisioning_rule_plans_destroy.py → marketplace_plans/marketplace_plans_destroy.py} +1 -1
  39. waldur_api_client/api/marketplace_provider_offerings/marketplace_provider_offerings_update_offering_component.py +6 -6
  40. waldur_api_client/api/openstack_volume_types/openstack_volume_types_names_retrieve.py +118 -0
  41. waldur_api_client/models/__init__.py +52 -18
  42. waldur_api_client/models/constance_settings.py +22 -0
  43. waldur_api_client/models/constance_settings_request.py +22 -0
  44. waldur_api_client/models/event_types_enum.py +1 -0
  45. waldur_api_client/models/impact_level_enum.py +11 -0
  46. waldur_api_client/models/maintenance_announcement.py +225 -0
  47. waldur_api_client/models/maintenance_announcement_offering.py +112 -0
  48. waldur_api_client/models/maintenance_announcement_offering_request.py +95 -0
  49. waldur_api_client/models/maintenance_announcement_offering_template.py +112 -0
  50. waldur_api_client/models/maintenance_announcement_offering_template_request.py +95 -0
  51. waldur_api_client/models/maintenance_announcement_request.py +113 -0
  52. waldur_api_client/models/maintenance_announcement_state_enum.py +12 -0
  53. waldur_api_client/models/maintenance_announcement_template.py +134 -0
  54. waldur_api_client/models/maintenance_announcement_template_request.py +95 -0
  55. waldur_api_client/models/maintenance_type_enum.py +12 -0
  56. waldur_api_client/models/merged_plugin_options.py +1 -1
  57. waldur_api_client/models/merged_plugin_options_request.py +1 -1
  58. waldur_api_client/models/offering_component.py +15 -4
  59. waldur_api_client/models/patched_maintenance_announcement_offering_request.py +94 -0
  60. waldur_api_client/models/patched_maintenance_announcement_offering_template_request.py +94 -0
  61. waldur_api_client/models/patched_maintenance_announcement_request.py +128 -0
  62. waldur_api_client/models/patched_maintenance_announcement_template_request.py +94 -0
  63. waldur_api_client/models/patched_proposal_project_role_mapping_request.py +88 -0
  64. waldur_api_client/models/patched_protected_call_request.py +0 -17
  65. waldur_api_client/models/patched_rule_request.py +90 -1
  66. waldur_api_client/models/{patched_rule_plans_request_limits.py → patched_rule_request_plan_attributes.py} +5 -5
  67. waldur_api_client/models/patched_rule_request_plan_limits.py +44 -0
  68. waldur_api_client/models/proposal_project_role_mapping.py +122 -0
  69. waldur_api_client/models/proposal_project_role_mapping_request.py +89 -0
  70. waldur_api_client/models/proposal_protected_calls_list_field_item.py +0 -3
  71. waldur_api_client/models/proposal_protected_calls_retrieve_field_item.py +0 -3
  72. waldur_api_client/models/protected_call.py +0 -34
  73. waldur_api_client/models/protected_call_request.py +0 -17
  74. waldur_api_client/models/provider_offering_details.py +1 -1
  75. waldur_api_client/models/public_offering_details.py +1 -1
  76. waldur_api_client/models/rule.py +99 -7
  77. waldur_api_client/models/{rule_plans_attributes.py → rule_plan_attributes.py} +5 -5
  78. waldur_api_client/models/{rule_plans_limits.py → rule_plan_limits.py} +5 -5
  79. waldur_api_client/models/rule_request.py +89 -1
  80. waldur_api_client/models/{rule_plans_request_attributes.py → rule_request_plan_attributes.py} +5 -5
  81. waldur_api_client/models/{rule_plans_request_limits.py → rule_request_plan_limits.py} +5 -5
  82. waldur_api_client/models/update_offering_component_request.py +274 -0
  83. {waldur_api_client-7.6.8.dist-info → waldur_api_client-7.7.0.dist-info}/METADATA +1 -1
  84. {waldur_api_client-7.6.8.dist-info → waldur_api_client-7.7.0.dist-info}/RECORD +87 -40
  85. waldur_api_client/models/patched_rule_plans_request.py +0 -108
  86. waldur_api_client/models/patched_rule_plans_request_attributes.py +0 -44
  87. waldur_api_client/models/rule_plans.py +0 -126
  88. waldur_api_client/models/rule_plans_request.py +0 -109
  89. /waldur_api_client/api/{autoprovisioning_rule_plans → call_proposal_project_role_mappings}/__init__.py +0 -0
  90. {waldur_api_client-7.6.8.dist-info → waldur_api_client-7.7.0.dist-info}/LICENSE +0 -0
  91. {waldur_api_client-7.6.8.dist-info → waldur_api_client-7.7.0.dist-info}/WHEEL +0 -0
@@ -1,11 +1,16 @@
1
1
  from collections.abc import Mapping
2
- from typing import Any, TypeVar, Union, cast
2
+ from typing import TYPE_CHECKING, Any, TypeVar, Union, cast
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.rule_request_plan_attributes import RuleRequestPlanAttributes
11
+ from ..models.rule_request_plan_limits import RuleRequestPlanLimits
12
+
13
+
9
14
  T = TypeVar("T", bound="RuleRequest")
10
15
 
11
16
 
@@ -13,19 +18,31 @@ T = TypeVar("T", bound="RuleRequest")
13
18
  class RuleRequest:
14
19
  """
15
20
  Attributes:
21
+ name (str):
16
22
  customer (str):
17
23
  user_affiliations (Union[Unset, list[str]]):
18
24
  user_email_patterns (Union[Unset, list[str]]):
19
25
  project_role (Union[None, Unset, str]):
26
+ project_role_name (Union[None, Unset, str]):
27
+ plan (Union[None, Unset, str]):
28
+ plan_attributes (Union[Unset, RuleRequestPlanAttributes]):
29
+ plan_limits (Union[Unset, RuleRequestPlanLimits]):
20
30
  """
21
31
 
32
+ name: str
22
33
  customer: str
23
34
  user_affiliations: Union[Unset, list[str]] = UNSET
24
35
  user_email_patterns: Union[Unset, list[str]] = UNSET
25
36
  project_role: Union[None, Unset, str] = UNSET
37
+ project_role_name: Union[None, Unset, str] = UNSET
38
+ plan: Union[None, Unset, str] = UNSET
39
+ plan_attributes: Union[Unset, "RuleRequestPlanAttributes"] = UNSET
40
+ plan_limits: Union[Unset, "RuleRequestPlanLimits"] = UNSET
26
41
  additional_properties: dict[str, Any] = _attrs_field(init=False, factory=dict)
27
42
 
28
43
  def to_dict(self) -> dict[str, Any]:
44
+ name = self.name
45
+
29
46
  customer = self.customer
30
47
 
31
48
  user_affiliations: Union[Unset, list[str]] = UNSET
@@ -42,10 +59,31 @@ class RuleRequest:
42
59
  else:
43
60
  project_role = self.project_role
44
61
 
62
+ project_role_name: Union[None, Unset, str]
63
+ if isinstance(self.project_role_name, Unset):
64
+ project_role_name = UNSET
65
+ else:
66
+ project_role_name = self.project_role_name
67
+
68
+ plan: Union[None, Unset, str]
69
+ if isinstance(self.plan, Unset):
70
+ plan = UNSET
71
+ else:
72
+ plan = self.plan
73
+
74
+ plan_attributes: Union[Unset, dict[str, Any]] = UNSET
75
+ if not isinstance(self.plan_attributes, Unset):
76
+ plan_attributes = self.plan_attributes.to_dict()
77
+
78
+ plan_limits: Union[Unset, dict[str, Any]] = UNSET
79
+ if not isinstance(self.plan_limits, Unset):
80
+ plan_limits = self.plan_limits.to_dict()
81
+
45
82
  field_dict: dict[str, Any] = {}
46
83
  field_dict.update(self.additional_properties)
47
84
  field_dict.update(
48
85
  {
86
+ "name": name,
49
87
  "customer": customer,
50
88
  }
51
89
  )
@@ -55,12 +93,25 @@ class RuleRequest:
55
93
  field_dict["user_email_patterns"] = user_email_patterns
56
94
  if project_role is not UNSET:
57
95
  field_dict["project_role"] = project_role
96
+ if project_role_name is not UNSET:
97
+ field_dict["project_role_name"] = project_role_name
98
+ if plan is not UNSET:
99
+ field_dict["plan"] = plan
100
+ if plan_attributes is not UNSET:
101
+ field_dict["plan_attributes"] = plan_attributes
102
+ if plan_limits is not UNSET:
103
+ field_dict["plan_limits"] = plan_limits
58
104
 
59
105
  return field_dict
60
106
 
61
107
  @classmethod
62
108
  def from_dict(cls: type[T], src_dict: Mapping[str, Any]) -> T:
109
+ from ..models.rule_request_plan_attributes import RuleRequestPlanAttributes
110
+ from ..models.rule_request_plan_limits import RuleRequestPlanLimits
111
+
63
112
  d = dict(src_dict)
113
+ name = d.pop("name")
114
+
64
115
  customer = d.pop("customer")
65
116
 
66
117
  user_affiliations = cast(list[str], d.pop("user_affiliations", UNSET))
@@ -76,11 +127,48 @@ class RuleRequest:
76
127
 
77
128
  project_role = _parse_project_role(d.pop("project_role", UNSET))
78
129
 
130
+ def _parse_project_role_name(data: object) -> Union[None, Unset, str]:
131
+ if data is None:
132
+ return data
133
+ if isinstance(data, Unset):
134
+ return data
135
+ return cast(Union[None, Unset, str], data)
136
+
137
+ project_role_name = _parse_project_role_name(d.pop("project_role_name", UNSET))
138
+
139
+ def _parse_plan(data: object) -> Union[None, Unset, str]:
140
+ if data is None:
141
+ return data
142
+ if isinstance(data, Unset):
143
+ return data
144
+ return cast(Union[None, Unset, str], data)
145
+
146
+ plan = _parse_plan(d.pop("plan", UNSET))
147
+
148
+ _plan_attributes = d.pop("plan_attributes", UNSET)
149
+ plan_attributes: Union[Unset, RuleRequestPlanAttributes]
150
+ if isinstance(_plan_attributes, Unset):
151
+ plan_attributes = UNSET
152
+ else:
153
+ plan_attributes = RuleRequestPlanAttributes.from_dict(_plan_attributes)
154
+
155
+ _plan_limits = d.pop("plan_limits", UNSET)
156
+ plan_limits: Union[Unset, RuleRequestPlanLimits]
157
+ if isinstance(_plan_limits, Unset):
158
+ plan_limits = UNSET
159
+ else:
160
+ plan_limits = RuleRequestPlanLimits.from_dict(_plan_limits)
161
+
79
162
  rule_request = cls(
163
+ name=name,
80
164
  customer=customer,
81
165
  user_affiliations=user_affiliations,
82
166
  user_email_patterns=user_email_patterns,
83
167
  project_role=project_role,
168
+ project_role_name=project_role_name,
169
+ plan=plan,
170
+ plan_attributes=plan_attributes,
171
+ plan_limits=plan_limits,
84
172
  )
85
173
 
86
174
  rule_request.additional_properties = d
@@ -4,11 +4,11 @@ from typing import Any, TypeVar
4
4
  from attrs import define as _attrs_define
5
5
  from attrs import field as _attrs_field
6
6
 
7
- T = TypeVar("T", bound="RulePlansRequestAttributes")
7
+ T = TypeVar("T", bound="RuleRequestPlanAttributes")
8
8
 
9
9
 
10
10
  @_attrs_define
11
- class RulePlansRequestAttributes:
11
+ class RuleRequestPlanAttributes:
12
12
  """ """
13
13
 
14
14
  additional_properties: dict[str, Any] = _attrs_field(init=False, factory=dict)
@@ -22,10 +22,10 @@ class RulePlansRequestAttributes:
22
22
  @classmethod
23
23
  def from_dict(cls: type[T], src_dict: Mapping[str, Any]) -> T:
24
24
  d = dict(src_dict)
25
- rule_plans_request_attributes = cls()
25
+ rule_request_plan_attributes = cls()
26
26
 
27
- rule_plans_request_attributes.additional_properties = d
28
- return rule_plans_request_attributes
27
+ rule_request_plan_attributes.additional_properties = d
28
+ return rule_request_plan_attributes
29
29
 
30
30
  @property
31
31
  def additional_keys(self) -> list[str]:
@@ -4,11 +4,11 @@ from typing import Any, TypeVar
4
4
  from attrs import define as _attrs_define
5
5
  from attrs import field as _attrs_field
6
6
 
7
- T = TypeVar("T", bound="RulePlansRequestLimits")
7
+ T = TypeVar("T", bound="RuleRequestPlanLimits")
8
8
 
9
9
 
10
10
  @_attrs_define
11
- class RulePlansRequestLimits:
11
+ class RuleRequestPlanLimits:
12
12
  """ """
13
13
 
14
14
  additional_properties: dict[str, Any] = _attrs_field(init=False, factory=dict)
@@ -22,10 +22,10 @@ class RulePlansRequestLimits:
22
22
  @classmethod
23
23
  def from_dict(cls: type[T], src_dict: Mapping[str, Any]) -> T:
24
24
  d = dict(src_dict)
25
- rule_plans_request_limits = cls()
25
+ rule_request_plan_limits = cls()
26
26
 
27
- rule_plans_request_limits.additional_properties = d
28
- return rule_plans_request_limits
27
+ rule_request_plan_limits.additional_properties = d
28
+ return rule_request_plan_limits
29
29
 
30
30
  @property
31
31
  def additional_keys(self) -> list[str]:
@@ -0,0 +1,274 @@
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.billing_type_enum import BillingTypeEnum
9
+ from ..models.blank_enum import BlankEnum
10
+ from ..models.limit_period_enum import LimitPeriodEnum
11
+ from ..types import UNSET, Unset
12
+
13
+ T = TypeVar("T", bound="UpdateOfferingComponentRequest")
14
+
15
+
16
+ @_attrs_define
17
+ class UpdateOfferingComponentRequest:
18
+ """
19
+ Attributes:
20
+ uuid (UUID):
21
+ billing_type (BillingTypeEnum):
22
+ type_ (str): Unique internal name of the measured unit, for example floating_ip.
23
+ name (str): Display name for the measured unit, for example, Floating IP.
24
+ description (Union[Unset, str]):
25
+ measured_unit (Union[Unset, str]): Unit of measurement, for example, GB.
26
+ unit_factor (Union[Unset, int]): The conversion factor from backend units to measured_unit
27
+ limit_period (Union[BlankEnum, LimitPeriodEnum, None, Unset]):
28
+ limit_amount (Union[None, Unset, int]):
29
+ article_code (Union[Unset, str]):
30
+ max_value (Union[None, Unset, int]):
31
+ min_value (Union[None, Unset, int]):
32
+ max_available_limit (Union[None, Unset, int]):
33
+ is_boolean (Union[Unset, bool]):
34
+ default_limit (Union[None, Unset, int]):
35
+ """
36
+
37
+ uuid: UUID
38
+ billing_type: BillingTypeEnum
39
+ type_: str
40
+ name: str
41
+ description: Union[Unset, str] = UNSET
42
+ measured_unit: Union[Unset, str] = UNSET
43
+ unit_factor: Union[Unset, int] = UNSET
44
+ limit_period: Union[BlankEnum, LimitPeriodEnum, None, Unset] = UNSET
45
+ limit_amount: Union[None, Unset, int] = UNSET
46
+ article_code: Union[Unset, str] = UNSET
47
+ max_value: Union[None, Unset, int] = UNSET
48
+ min_value: Union[None, Unset, int] = UNSET
49
+ max_available_limit: Union[None, Unset, int] = UNSET
50
+ is_boolean: Union[Unset, bool] = UNSET
51
+ default_limit: Union[None, Unset, int] = UNSET
52
+ additional_properties: dict[str, Any] = _attrs_field(init=False, factory=dict)
53
+
54
+ def to_dict(self) -> dict[str, Any]:
55
+ uuid = str(self.uuid)
56
+
57
+ billing_type = self.billing_type.value
58
+
59
+ type_ = self.type_
60
+
61
+ name = self.name
62
+
63
+ description = self.description
64
+
65
+ measured_unit = self.measured_unit
66
+
67
+ unit_factor = self.unit_factor
68
+
69
+ limit_period: Union[None, Unset, str]
70
+ if isinstance(self.limit_period, Unset):
71
+ limit_period = UNSET
72
+ elif isinstance(self.limit_period, LimitPeriodEnum):
73
+ limit_period = self.limit_period.value
74
+ elif isinstance(self.limit_period, BlankEnum):
75
+ limit_period = self.limit_period.value
76
+ else:
77
+ limit_period = self.limit_period
78
+
79
+ limit_amount: Union[None, Unset, int]
80
+ if isinstance(self.limit_amount, Unset):
81
+ limit_amount = UNSET
82
+ else:
83
+ limit_amount = self.limit_amount
84
+
85
+ article_code = self.article_code
86
+
87
+ max_value: Union[None, Unset, int]
88
+ if isinstance(self.max_value, Unset):
89
+ max_value = UNSET
90
+ else:
91
+ max_value = self.max_value
92
+
93
+ min_value: Union[None, Unset, int]
94
+ if isinstance(self.min_value, Unset):
95
+ min_value = UNSET
96
+ else:
97
+ min_value = self.min_value
98
+
99
+ max_available_limit: Union[None, Unset, int]
100
+ if isinstance(self.max_available_limit, Unset):
101
+ max_available_limit = UNSET
102
+ else:
103
+ max_available_limit = self.max_available_limit
104
+
105
+ is_boolean = self.is_boolean
106
+
107
+ default_limit: Union[None, Unset, int]
108
+ if isinstance(self.default_limit, Unset):
109
+ default_limit = UNSET
110
+ else:
111
+ default_limit = self.default_limit
112
+
113
+ field_dict: dict[str, Any] = {}
114
+ field_dict.update(self.additional_properties)
115
+ field_dict.update(
116
+ {
117
+ "uuid": uuid,
118
+ "billing_type": billing_type,
119
+ "type": type_,
120
+ "name": name,
121
+ }
122
+ )
123
+ if description is not UNSET:
124
+ field_dict["description"] = description
125
+ if measured_unit is not UNSET:
126
+ field_dict["measured_unit"] = measured_unit
127
+ if unit_factor is not UNSET:
128
+ field_dict["unit_factor"] = unit_factor
129
+ if limit_period is not UNSET:
130
+ field_dict["limit_period"] = limit_period
131
+ if limit_amount is not UNSET:
132
+ field_dict["limit_amount"] = limit_amount
133
+ if article_code is not UNSET:
134
+ field_dict["article_code"] = article_code
135
+ if max_value is not UNSET:
136
+ field_dict["max_value"] = max_value
137
+ if min_value is not UNSET:
138
+ field_dict["min_value"] = min_value
139
+ if max_available_limit is not UNSET:
140
+ field_dict["max_available_limit"] = max_available_limit
141
+ if is_boolean is not UNSET:
142
+ field_dict["is_boolean"] = is_boolean
143
+ if default_limit is not UNSET:
144
+ field_dict["default_limit"] = default_limit
145
+
146
+ return field_dict
147
+
148
+ @classmethod
149
+ def from_dict(cls: type[T], src_dict: Mapping[str, Any]) -> T:
150
+ d = dict(src_dict)
151
+ uuid = UUID(d.pop("uuid"))
152
+
153
+ billing_type = BillingTypeEnum(d.pop("billing_type"))
154
+
155
+ type_ = d.pop("type")
156
+
157
+ name = d.pop("name")
158
+
159
+ description = d.pop("description", UNSET)
160
+
161
+ measured_unit = d.pop("measured_unit", UNSET)
162
+
163
+ unit_factor = d.pop("unit_factor", UNSET)
164
+
165
+ def _parse_limit_period(data: object) -> Union[BlankEnum, LimitPeriodEnum, None, Unset]:
166
+ if data is None:
167
+ return data
168
+ if isinstance(data, Unset):
169
+ return data
170
+ try:
171
+ if not isinstance(data, str):
172
+ raise TypeError()
173
+ limit_period_type_0 = LimitPeriodEnum(data)
174
+
175
+ return limit_period_type_0
176
+ except: # noqa: E722
177
+ pass
178
+ try:
179
+ if not isinstance(data, str):
180
+ raise TypeError()
181
+ limit_period_type_1 = BlankEnum(data)
182
+
183
+ return limit_period_type_1
184
+ except: # noqa: E722
185
+ pass
186
+ return cast(Union[BlankEnum, LimitPeriodEnum, None, Unset], data)
187
+
188
+ limit_period = _parse_limit_period(d.pop("limit_period", UNSET))
189
+
190
+ def _parse_limit_amount(data: object) -> Union[None, Unset, int]:
191
+ if data is None:
192
+ return data
193
+ if isinstance(data, Unset):
194
+ return data
195
+ return cast(Union[None, Unset, int], data)
196
+
197
+ limit_amount = _parse_limit_amount(d.pop("limit_amount", UNSET))
198
+
199
+ article_code = d.pop("article_code", UNSET)
200
+
201
+ def _parse_max_value(data: object) -> Union[None, Unset, int]:
202
+ if data is None:
203
+ return data
204
+ if isinstance(data, Unset):
205
+ return data
206
+ return cast(Union[None, Unset, int], data)
207
+
208
+ max_value = _parse_max_value(d.pop("max_value", UNSET))
209
+
210
+ def _parse_min_value(data: object) -> Union[None, Unset, int]:
211
+ if data is None:
212
+ return data
213
+ if isinstance(data, Unset):
214
+ return data
215
+ return cast(Union[None, Unset, int], data)
216
+
217
+ min_value = _parse_min_value(d.pop("min_value", UNSET))
218
+
219
+ def _parse_max_available_limit(data: object) -> Union[None, Unset, int]:
220
+ if data is None:
221
+ return data
222
+ if isinstance(data, Unset):
223
+ return data
224
+ return cast(Union[None, Unset, int], data)
225
+
226
+ max_available_limit = _parse_max_available_limit(d.pop("max_available_limit", UNSET))
227
+
228
+ is_boolean = d.pop("is_boolean", UNSET)
229
+
230
+ def _parse_default_limit(data: object) -> Union[None, Unset, int]:
231
+ if data is None:
232
+ return data
233
+ if isinstance(data, Unset):
234
+ return data
235
+ return cast(Union[None, Unset, int], data)
236
+
237
+ default_limit = _parse_default_limit(d.pop("default_limit", UNSET))
238
+
239
+ update_offering_component_request = cls(
240
+ uuid=uuid,
241
+ billing_type=billing_type,
242
+ type_=type_,
243
+ name=name,
244
+ description=description,
245
+ measured_unit=measured_unit,
246
+ unit_factor=unit_factor,
247
+ limit_period=limit_period,
248
+ limit_amount=limit_amount,
249
+ article_code=article_code,
250
+ max_value=max_value,
251
+ min_value=min_value,
252
+ max_available_limit=max_available_limit,
253
+ is_boolean=is_boolean,
254
+ default_limit=default_limit,
255
+ )
256
+
257
+ update_offering_component_request.additional_properties = d
258
+ return update_offering_component_request
259
+
260
+ @property
261
+ def additional_keys(self) -> list[str]:
262
+ return list(self.additional_properties.keys())
263
+
264
+ def __getitem__(self, key: str) -> Any:
265
+ return self.additional_properties[key]
266
+
267
+ def __setitem__(self, key: str, value: Any) -> None:
268
+ self.additional_properties[key] = value
269
+
270
+ def __delitem__(self, key: str) -> None:
271
+ del self.additional_properties[key]
272
+
273
+ def __contains__(self, key: str) -> bool:
274
+ return key in self.additional_properties
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.3
2
2
  Name: waldur-api-client
3
- Version: 7.6.8
3
+ Version: 7.7.0
4
4
  Summary: A client library for accessing Waldur API
5
5
  License: MIT
6
6
  Author: OpenNode Team