waldur-api-client 7.8.0__py3-none-any.whl → 7.8.1__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 (50) hide show
  1. waldur_api_client/api/marketplace_course_accounts/marketplace_course_accounts_count.py +96 -0
  2. waldur_api_client/api/marketplace_course_accounts/marketplace_course_accounts_list.py +96 -0
  3. waldur_api_client/api/marketplace_offering_user_checklist_completions/__init__.py +1 -0
  4. waldur_api_client/api/marketplace_offering_user_checklist_completions/marketplace_offering_user_checklist_completions_count.py +286 -0
  5. waldur_api_client/api/marketplace_offering_user_checklist_completions/marketplace_offering_user_checklist_completions_list.py +289 -0
  6. waldur_api_client/api/marketplace_offering_user_checklist_completions/marketplace_offering_user_checklist_completions_retrieve.py +141 -0
  7. waldur_api_client/api/marketplace_provider_offerings/marketplace_provider_offerings_list_course_accounts_retrieve.py +177 -0
  8. waldur_api_client/api/marketplace_provider_offerings/marketplace_provider_offerings_refresh_offering_usernames.py +0 -22
  9. waldur_api_client/api/marketplace_provider_offerings/marketplace_provider_offerings_update_compliance_checklist.py +105 -0
  10. waldur_api_client/api/marketplace_service_providers/marketplace_service_providers_course_accounts_list.py +98 -0
  11. waldur_api_client/api/user_invitations/user_invitations_count.py +15 -0
  12. waldur_api_client/api/user_invitations/user_invitations_list.py +15 -0
  13. waldur_api_client/models/__init__.py +26 -2
  14. waldur_api_client/models/booking_resource.py +18 -0
  15. waldur_api_client/models/booking_resources_list_field_item.py +2 -0
  16. waldur_api_client/models/booking_resources_retrieve_field_item.py +2 -0
  17. waldur_api_client/models/course_account.py +24 -0
  18. waldur_api_client/models/group_invitation.py +8 -0
  19. waldur_api_client/models/invitation.py +8 -0
  20. waldur_api_client/models/managed_rancher_cluster_resources_list_field_item.py +2 -0
  21. waldur_api_client/models/managed_rancher_cluster_resources_retrieve_field_item.py +2 -0
  22. waldur_api_client/models/marketplace_course_accounts_count_o_item.py +23 -0
  23. waldur_api_client/models/marketplace_course_accounts_list_o_item.py +23 -0
  24. waldur_api_client/models/marketplace_offering_user_checklist_completions_count_o_item.py +11 -0
  25. waldur_api_client/models/marketplace_offering_user_checklist_completions_list_o_item.py +11 -0
  26. waldur_api_client/models/marketplace_orders_list_field_item.py +3 -0
  27. waldur_api_client/models/marketplace_orders_retrieve_field_item.py +3 -0
  28. waldur_api_client/models/marketplace_provider_offerings_list_course_accounts_retrieve_field_item.py +72 -0
  29. waldur_api_client/models/marketplace_provider_resources_details_retrieve_field_item.py +2 -0
  30. waldur_api_client/models/marketplace_provider_resources_list_field_item.py +2 -0
  31. waldur_api_client/models/marketplace_provider_resources_retrieve_field_item.py +2 -0
  32. waldur_api_client/models/marketplace_resources_details_retrieve_field_item.py +2 -0
  33. waldur_api_client/models/marketplace_resources_list_field_item.py +2 -0
  34. waldur_api_client/models/marketplace_resources_retrieve_field_item.py +2 -0
  35. waldur_api_client/models/marketplace_service_providers_course_accounts_list_o_item.py +23 -0
  36. waldur_api_client/models/merged_plugin_options.py +9 -0
  37. waldur_api_client/models/merged_plugin_options_request.py +9 -0
  38. waldur_api_client/models/notification.py +11 -0
  39. waldur_api_client/models/notification_context_fields.py +47 -0
  40. waldur_api_client/models/offering_compliance_checklist_update_request.py +82 -0
  41. waldur_api_client/models/order_details.py +34 -0
  42. waldur_api_client/models/resource.py +18 -0
  43. waldur_api_client/models/resource_update_limits_request.py +1 -34
  44. waldur_api_client/models/user_checklist_completion.py +265 -0
  45. waldur_api_client/models/visible_invitation_details.py +8 -0
  46. {waldur_api_client-7.8.0.dist-info → waldur_api_client-7.8.1.dist-info}/METADATA +1 -1
  47. {waldur_api_client-7.8.0.dist-info → waldur_api_client-7.8.1.dist-info}/RECORD +49 -35
  48. {waldur_api_client-7.8.0.dist-info → waldur_api_client-7.8.1.dist-info}/WHEEL +1 -1
  49. waldur_api_client/models/provider_offering_details_request.py +0 -407
  50. {waldur_api_client-7.8.0.dist-info → waldur_api_client-7.8.1.dist-info}/licenses/LICENSE +0 -0
@@ -0,0 +1,11 @@
1
+ from enum import Enum
2
+
3
+
4
+ class MarketplaceOfferingUserChecklistCompletionsListOItem(str, Enum):
5
+ IS_COMPLETED = "is_completed"
6
+ MODIFIED = "modified"
7
+ VALUE_0 = "-is_completed"
8
+ VALUE_1 = "-modified"
9
+
10
+ def __str__(self) -> str:
11
+ return str(self.value)
@@ -37,6 +37,9 @@ class MarketplaceOrdersListFieldItem(str, Enum):
37
37
  NEW_PLAN_UUID = "new_plan_uuid"
38
38
  OFFERING = "offering"
39
39
  OFFERING_BILLABLE = "offering_billable"
40
+ OFFERING_CUSTOMER_NAME = "offering_customer_name"
41
+ OFFERING_CUSTOMER_SLUG = "offering_customer_slug"
42
+ OFFERING_CUSTOMER_UUID = "offering_customer_uuid"
40
43
  OFFERING_DESCRIPTION = "offering_description"
41
44
  OFFERING_IMAGE = "offering_image"
42
45
  OFFERING_NAME = "offering_name"
@@ -37,6 +37,9 @@ class MarketplaceOrdersRetrieveFieldItem(str, Enum):
37
37
  NEW_PLAN_UUID = "new_plan_uuid"
38
38
  OFFERING = "offering"
39
39
  OFFERING_BILLABLE = "offering_billable"
40
+ OFFERING_CUSTOMER_NAME = "offering_customer_name"
41
+ OFFERING_CUSTOMER_SLUG = "offering_customer_slug"
42
+ OFFERING_CUSTOMER_UUID = "offering_customer_uuid"
40
43
  OFFERING_DESCRIPTION = "offering_description"
41
44
  OFFERING_IMAGE = "offering_image"
42
45
  OFFERING_NAME = "offering_name"
@@ -0,0 +1,72 @@
1
+ from enum import Enum
2
+
3
+
4
+ class MarketplaceProviderOfferingsListCourseAccountsRetrieveFieldItem(str, Enum):
5
+ ACCESS_URL = "access_url"
6
+ ATTRIBUTES = "attributes"
7
+ BACKEND_ID = "backend_id"
8
+ BACKEND_METADATA = "backend_metadata"
9
+ BILLABLE = "billable"
10
+ CATEGORY = "category"
11
+ CATEGORY_TITLE = "category_title"
12
+ CATEGORY_UUID = "category_uuid"
13
+ CITATION_COUNT = "citation_count"
14
+ COMPONENTS = "components"
15
+ COUNTRY = "country"
16
+ CREATED = "created"
17
+ CUSTOMER = "customer"
18
+ CUSTOMER_NAME = "customer_name"
19
+ CUSTOMER_UUID = "customer_uuid"
20
+ DATACITE_DOI = "datacite_doi"
21
+ DESCRIPTION = "description"
22
+ ENDPOINTS = "endpoints"
23
+ FILES = "files"
24
+ FULL_DESCRIPTION = "full_description"
25
+ GETTING_STARTED = "getting_started"
26
+ GOOGLE_CALENDAR_IS_PUBLIC = "google_calendar_is_public"
27
+ GOOGLE_CALENDAR_LINK = "google_calendar_link"
28
+ HAS_COMPLIANCE_REQUIREMENTS = "has_compliance_requirements"
29
+ IMAGE = "image"
30
+ INTEGRATION_GUIDE = "integration_guide"
31
+ INTEGRATION_STATUS = "integration_status"
32
+ LATITUDE = "latitude"
33
+ LONGITUDE = "longitude"
34
+ NAME = "name"
35
+ OPTIONS = "options"
36
+ ORDER_COUNT = "order_count"
37
+ ORGANIZATION_GROUPS = "organization_groups"
38
+ PARENT_DESCRIPTION = "parent_description"
39
+ PARENT_NAME = "parent_name"
40
+ PARENT_UUID = "parent_uuid"
41
+ PAUSED_REASON = "paused_reason"
42
+ PLANS = "plans"
43
+ PLUGIN_OPTIONS = "plugin_options"
44
+ PRIVACY_POLICY_LINK = "privacy_policy_link"
45
+ PROJECT = "project"
46
+ PROJECT_NAME = "project_name"
47
+ PROJECT_UUID = "project_uuid"
48
+ QUOTAS = "quotas"
49
+ RESOURCE_OPTIONS = "resource_options"
50
+ ROLES = "roles"
51
+ SCOPE = "scope"
52
+ SCOPE_ERROR_MESSAGE = "scope_error_message"
53
+ SCOPE_NAME = "scope_name"
54
+ SCOPE_STATE = "scope_state"
55
+ SCOPE_UUID = "scope_uuid"
56
+ SCREENSHOTS = "screenshots"
57
+ SECRET_OPTIONS = "secret_options"
58
+ SERVICE_ATTRIBUTES = "service_attributes"
59
+ SHARED = "shared"
60
+ SLUG = "slug"
61
+ STATE = "state"
62
+ THUMBNAIL = "thumbnail"
63
+ TOTAL_COST = "total_cost"
64
+ TOTAL_COST_ESTIMATED = "total_cost_estimated"
65
+ TOTAL_CUSTOMERS = "total_customers"
66
+ TYPE = "type"
67
+ URL = "url"
68
+ UUID = "uuid"
69
+ VENDOR_DETAILS = "vendor_details"
70
+
71
+ def __str__(self) -> str:
72
+ return str(self.value)
@@ -33,6 +33,8 @@ class MarketplaceProviderResourcesDetailsRetrieveFieldItem(str, Enum):
33
33
  NAME = "name"
34
34
  OFFERING = "offering"
35
35
  OFFERING_BILLABLE = "offering_billable"
36
+ OFFERING_CUSTOMER_NAME = "offering_customer_name"
37
+ OFFERING_CUSTOMER_SLUG = "offering_customer_slug"
36
38
  OFFERING_CUSTOMER_UUID = "offering_customer_uuid"
37
39
  OFFERING_DESCRIPTION = "offering_description"
38
40
  OFFERING_IMAGE = "offering_image"
@@ -33,6 +33,8 @@ class MarketplaceProviderResourcesListFieldItem(str, Enum):
33
33
  NAME = "name"
34
34
  OFFERING = "offering"
35
35
  OFFERING_BILLABLE = "offering_billable"
36
+ OFFERING_CUSTOMER_NAME = "offering_customer_name"
37
+ OFFERING_CUSTOMER_SLUG = "offering_customer_slug"
36
38
  OFFERING_CUSTOMER_UUID = "offering_customer_uuid"
37
39
  OFFERING_DESCRIPTION = "offering_description"
38
40
  OFFERING_IMAGE = "offering_image"
@@ -33,6 +33,8 @@ class MarketplaceProviderResourcesRetrieveFieldItem(str, Enum):
33
33
  NAME = "name"
34
34
  OFFERING = "offering"
35
35
  OFFERING_BILLABLE = "offering_billable"
36
+ OFFERING_CUSTOMER_NAME = "offering_customer_name"
37
+ OFFERING_CUSTOMER_SLUG = "offering_customer_slug"
36
38
  OFFERING_CUSTOMER_UUID = "offering_customer_uuid"
37
39
  OFFERING_DESCRIPTION = "offering_description"
38
40
  OFFERING_IMAGE = "offering_image"
@@ -33,6 +33,8 @@ class MarketplaceResourcesDetailsRetrieveFieldItem(str, Enum):
33
33
  NAME = "name"
34
34
  OFFERING = "offering"
35
35
  OFFERING_BILLABLE = "offering_billable"
36
+ OFFERING_CUSTOMER_NAME = "offering_customer_name"
37
+ OFFERING_CUSTOMER_SLUG = "offering_customer_slug"
36
38
  OFFERING_CUSTOMER_UUID = "offering_customer_uuid"
37
39
  OFFERING_DESCRIPTION = "offering_description"
38
40
  OFFERING_IMAGE = "offering_image"
@@ -33,6 +33,8 @@ class MarketplaceResourcesListFieldItem(str, Enum):
33
33
  NAME = "name"
34
34
  OFFERING = "offering"
35
35
  OFFERING_BILLABLE = "offering_billable"
36
+ OFFERING_CUSTOMER_NAME = "offering_customer_name"
37
+ OFFERING_CUSTOMER_SLUG = "offering_customer_slug"
36
38
  OFFERING_CUSTOMER_UUID = "offering_customer_uuid"
37
39
  OFFERING_DESCRIPTION = "offering_description"
38
40
  OFFERING_IMAGE = "offering_image"
@@ -33,6 +33,8 @@ class MarketplaceResourcesRetrieveFieldItem(str, Enum):
33
33
  NAME = "name"
34
34
  OFFERING = "offering"
35
35
  OFFERING_BILLABLE = "offering_billable"
36
+ OFFERING_CUSTOMER_NAME = "offering_customer_name"
37
+ OFFERING_CUSTOMER_SLUG = "offering_customer_slug"
36
38
  OFFERING_CUSTOMER_UUID = "offering_customer_uuid"
37
39
  OFFERING_DESCRIPTION = "offering_description"
38
40
  OFFERING_IMAGE = "offering_image"
@@ -0,0 +1,23 @@
1
+ from enum import Enum
2
+
3
+
4
+ class MarketplaceServiceProvidersCourseAccountsListOItem(str, Enum):
5
+ CREATED = "created"
6
+ EMAIL = "email"
7
+ MODIFIED = "modified"
8
+ PROJECT_END_DATE = "project_end_date"
9
+ PROJECT_NAME = "project_name"
10
+ PROJECT_START_DATE = "project_start_date"
11
+ STATE = "state"
12
+ USERNAME = "username"
13
+ VALUE_0 = "-created"
14
+ VALUE_1 = "-email"
15
+ VALUE_2 = "-modified"
16
+ VALUE_3 = "-project_end_date"
17
+ VALUE_4 = "-project_name"
18
+ VALUE_5 = "-project_start_date"
19
+ VALUE_6 = "-state"
20
+ VALUE_7 = "-username"
21
+
22
+ def __str__(self) -> str:
23
+ return str(self.value)
@@ -34,6 +34,7 @@ class MergedPluginOptions:
34
34
  supports_pausing (Union[Unset, bool]): If set to True, it will be possible to pause resources
35
35
  minimal_team_count_for_provisioning (Union[Unset, int]): Minimal team count required for provisioning of
36
36
  resources
37
+ maximal_resource_count_per_project (Union[Unset, int]): Maximal number of offering resources allowed per project
37
38
  required_team_role_for_provisioning (Union[Unset, str]): Required user role in a project for provisioning of
38
39
  resources
39
40
  order_supports_comments_and_metadata (Union[Unset, bool]): If set to True, orders will support comments and
@@ -89,6 +90,7 @@ class MergedPluginOptions:
89
90
  supports_downscaling: Union[Unset, bool] = UNSET
90
91
  supports_pausing: Union[Unset, bool] = UNSET
91
92
  minimal_team_count_for_provisioning: Union[Unset, int] = UNSET
93
+ maximal_resource_count_per_project: Union[Unset, int] = UNSET
92
94
  required_team_role_for_provisioning: Union[Unset, str] = UNSET
93
95
  order_supports_comments_and_metadata: Union[Unset, bool] = UNSET
94
96
  default_internal_network_mtu: Union[Unset, int] = UNSET
@@ -153,6 +155,8 @@ class MergedPluginOptions:
153
155
 
154
156
  minimal_team_count_for_provisioning = self.minimal_team_count_for_provisioning
155
157
 
158
+ maximal_resource_count_per_project = self.maximal_resource_count_per_project
159
+
156
160
  required_team_role_for_provisioning = self.required_team_role_for_provisioning
157
161
 
158
162
  order_supports_comments_and_metadata = self.order_supports_comments_and_metadata
@@ -266,6 +270,8 @@ class MergedPluginOptions:
266
270
  field_dict["supports_pausing"] = supports_pausing
267
271
  if minimal_team_count_for_provisioning is not UNSET:
268
272
  field_dict["minimal_team_count_for_provisioning"] = minimal_team_count_for_provisioning
273
+ if maximal_resource_count_per_project is not UNSET:
274
+ field_dict["maximal_resource_count_per_project"] = maximal_resource_count_per_project
269
275
  if required_team_role_for_provisioning is not UNSET:
270
276
  field_dict["required_team_role_for_provisioning"] = required_team_role_for_provisioning
271
277
  if order_supports_comments_and_metadata is not UNSET:
@@ -383,6 +389,8 @@ class MergedPluginOptions:
383
389
 
384
390
  minimal_team_count_for_provisioning = d.pop("minimal_team_count_for_provisioning", UNSET)
385
391
 
392
+ maximal_resource_count_per_project = d.pop("maximal_resource_count_per_project", UNSET)
393
+
386
394
  required_team_role_for_provisioning = d.pop("required_team_role_for_provisioning", UNSET)
387
395
 
388
396
  order_supports_comments_and_metadata = d.pop("order_supports_comments_and_metadata", UNSET)
@@ -508,6 +516,7 @@ class MergedPluginOptions:
508
516
  supports_downscaling=supports_downscaling,
509
517
  supports_pausing=supports_pausing,
510
518
  minimal_team_count_for_provisioning=minimal_team_count_for_provisioning,
519
+ maximal_resource_count_per_project=maximal_resource_count_per_project,
511
520
  required_team_role_for_provisioning=required_team_role_for_provisioning,
512
521
  order_supports_comments_and_metadata=order_supports_comments_and_metadata,
513
522
  default_internal_network_mtu=default_internal_network_mtu,
@@ -34,6 +34,7 @@ class MergedPluginOptionsRequest:
34
34
  supports_pausing (Union[Unset, bool]): If set to True, it will be possible to pause resources
35
35
  minimal_team_count_for_provisioning (Union[Unset, int]): Minimal team count required for provisioning of
36
36
  resources
37
+ maximal_resource_count_per_project (Union[Unset, int]): Maximal number of offering resources allowed per project
37
38
  required_team_role_for_provisioning (Union[Unset, str]): Required user role in a project for provisioning of
38
39
  resources
39
40
  order_supports_comments_and_metadata (Union[Unset, bool]): If set to True, orders will support comments and
@@ -89,6 +90,7 @@ class MergedPluginOptionsRequest:
89
90
  supports_downscaling: Union[Unset, bool] = UNSET
90
91
  supports_pausing: Union[Unset, bool] = UNSET
91
92
  minimal_team_count_for_provisioning: Union[Unset, int] = UNSET
93
+ maximal_resource_count_per_project: Union[Unset, int] = UNSET
92
94
  required_team_role_for_provisioning: Union[Unset, str] = UNSET
93
95
  order_supports_comments_and_metadata: Union[Unset, bool] = UNSET
94
96
  default_internal_network_mtu: Union[Unset, int] = UNSET
@@ -153,6 +155,8 @@ class MergedPluginOptionsRequest:
153
155
 
154
156
  minimal_team_count_for_provisioning = self.minimal_team_count_for_provisioning
155
157
 
158
+ maximal_resource_count_per_project = self.maximal_resource_count_per_project
159
+
156
160
  required_team_role_for_provisioning = self.required_team_role_for_provisioning
157
161
 
158
162
  order_supports_comments_and_metadata = self.order_supports_comments_and_metadata
@@ -266,6 +270,8 @@ class MergedPluginOptionsRequest:
266
270
  field_dict["supports_pausing"] = supports_pausing
267
271
  if minimal_team_count_for_provisioning is not UNSET:
268
272
  field_dict["minimal_team_count_for_provisioning"] = minimal_team_count_for_provisioning
273
+ if maximal_resource_count_per_project is not UNSET:
274
+ field_dict["maximal_resource_count_per_project"] = maximal_resource_count_per_project
269
275
  if required_team_role_for_provisioning is not UNSET:
270
276
  field_dict["required_team_role_for_provisioning"] = required_team_role_for_provisioning
271
277
  if order_supports_comments_and_metadata is not UNSET:
@@ -383,6 +389,8 @@ class MergedPluginOptionsRequest:
383
389
 
384
390
  minimal_team_count_for_provisioning = d.pop("minimal_team_count_for_provisioning", UNSET)
385
391
 
392
+ maximal_resource_count_per_project = d.pop("maximal_resource_count_per_project", UNSET)
393
+
386
394
  required_team_role_for_provisioning = d.pop("required_team_role_for_provisioning", UNSET)
387
395
 
388
396
  order_supports_comments_and_metadata = d.pop("order_supports_comments_and_metadata", UNSET)
@@ -508,6 +516,7 @@ class MergedPluginOptionsRequest:
508
516
  supports_downscaling=supports_downscaling,
509
517
  supports_pausing=supports_pausing,
510
518
  minimal_team_count_for_provisioning=minimal_team_count_for_provisioning,
519
+ maximal_resource_count_per_project=maximal_resource_count_per_project,
511
520
  required_team_role_for_provisioning=required_team_role_for_provisioning,
512
521
  order_supports_comments_and_metadata=order_supports_comments_and_metadata,
513
522
  default_internal_network_mtu=default_internal_network_mtu,
@@ -10,6 +10,7 @@ from dateutil.parser import isoparse
10
10
  from ..types import UNSET, Unset
11
11
 
12
12
  if TYPE_CHECKING:
13
+ from ..models.notification_context_fields import NotificationContextFields
13
14
  from ..models.notification_template_detail_serializers import NotificationTemplateDetailSerializers
14
15
 
15
16
 
@@ -26,6 +27,8 @@ class Notification:
26
27
  enabled (bool): Indicates if notification is enabled or disabled
27
28
  created (datetime.datetime):
28
29
  templates (list['NotificationTemplateDetailSerializers']):
30
+ context_fields (NotificationContextFields): Finds the notification definition in the global NOTIFICATIONS
31
+ dictionary and returns its 'context' fields.
29
32
  description (Union[Unset, str]):
30
33
  """
31
34
 
@@ -35,6 +38,7 @@ class Notification:
35
38
  enabled: bool
36
39
  created: datetime.datetime
37
40
  templates: list["NotificationTemplateDetailSerializers"]
41
+ context_fields: "NotificationContextFields"
38
42
  description: Union[Unset, str] = UNSET
39
43
  additional_properties: dict[str, Any] = _attrs_field(init=False, factory=dict)
40
44
 
@@ -54,6 +58,8 @@ class Notification:
54
58
  templates_item = templates_item_data.to_dict()
55
59
  templates.append(templates_item)
56
60
 
61
+ context_fields = self.context_fields.to_dict()
62
+
57
63
  description = self.description
58
64
 
59
65
  field_dict: dict[str, Any] = {}
@@ -66,6 +72,7 @@ class Notification:
66
72
  "enabled": enabled,
67
73
  "created": created,
68
74
  "templates": templates,
75
+ "context_fields": context_fields,
69
76
  }
70
77
  )
71
78
  if description is not UNSET:
@@ -75,6 +82,7 @@ class Notification:
75
82
 
76
83
  @classmethod
77
84
  def from_dict(cls: type[T], src_dict: Mapping[str, Any]) -> T:
85
+ from ..models.notification_context_fields import NotificationContextFields
78
86
  from ..models.notification_template_detail_serializers import NotificationTemplateDetailSerializers
79
87
 
80
88
  d = dict(src_dict)
@@ -95,6 +103,8 @@ class Notification:
95
103
 
96
104
  templates.append(templates_item)
97
105
 
106
+ context_fields = NotificationContextFields.from_dict(d.pop("context_fields"))
107
+
98
108
  description = d.pop("description", UNSET)
99
109
 
100
110
  notification = cls(
@@ -104,6 +114,7 @@ class Notification:
104
114
  enabled=enabled,
105
115
  created=created,
106
116
  templates=templates,
117
+ context_fields=context_fields,
107
118
  description=description,
108
119
  )
109
120
 
@@ -0,0 +1,47 @@
1
+ from collections.abc import Mapping
2
+ from typing import Any, TypeVar
3
+
4
+ from attrs import define as _attrs_define
5
+ from attrs import field as _attrs_field
6
+
7
+ T = TypeVar("T", bound="NotificationContextFields")
8
+
9
+
10
+ @_attrs_define
11
+ class NotificationContextFields:
12
+ """Finds the notification definition in the global NOTIFICATIONS
13
+ dictionary and returns its 'context' fields.
14
+
15
+ """
16
+
17
+ additional_properties: dict[str, Any] = _attrs_field(init=False, factory=dict)
18
+
19
+ def to_dict(self) -> dict[str, Any]:
20
+ field_dict: dict[str, Any] = {}
21
+ field_dict.update(self.additional_properties)
22
+
23
+ return field_dict
24
+
25
+ @classmethod
26
+ def from_dict(cls: type[T], src_dict: Mapping[str, Any]) -> T:
27
+ d = dict(src_dict)
28
+ notification_context_fields = cls()
29
+
30
+ notification_context_fields.additional_properties = d
31
+ return notification_context_fields
32
+
33
+ @property
34
+ def additional_keys(self) -> list[str]:
35
+ return list(self.additional_properties.keys())
36
+
37
+ def __getitem__(self, key: str) -> Any:
38
+ return self.additional_properties[key]
39
+
40
+ def __setitem__(self, key: str, value: Any) -> None:
41
+ self.additional_properties[key] = value
42
+
43
+ def __delitem__(self, key: str) -> None:
44
+ del self.additional_properties[key]
45
+
46
+ def __contains__(self, key: str) -> bool:
47
+ return key in self.additional_properties
@@ -0,0 +1,82 @@
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 ..types import UNSET, Unset
9
+
10
+ T = TypeVar("T", bound="OfferingComplianceChecklistUpdateRequest")
11
+
12
+
13
+ @_attrs_define
14
+ class OfferingComplianceChecklistUpdateRequest:
15
+ """
16
+ Attributes:
17
+ compliance_checklist (Union[None, UUID, Unset]):
18
+ """
19
+
20
+ compliance_checklist: Union[None, UUID, Unset] = UNSET
21
+ additional_properties: dict[str, Any] = _attrs_field(init=False, factory=dict)
22
+
23
+ def to_dict(self) -> dict[str, Any]:
24
+ compliance_checklist: Union[None, Unset, str]
25
+ if isinstance(self.compliance_checklist, Unset):
26
+ compliance_checklist = UNSET
27
+ elif isinstance(self.compliance_checklist, UUID):
28
+ compliance_checklist = str(self.compliance_checklist)
29
+ else:
30
+ compliance_checklist = self.compliance_checklist
31
+
32
+ field_dict: dict[str, Any] = {}
33
+ field_dict.update(self.additional_properties)
34
+ field_dict.update({})
35
+ if compliance_checklist is not UNSET:
36
+ field_dict["compliance_checklist"] = compliance_checklist
37
+
38
+ return field_dict
39
+
40
+ @classmethod
41
+ def from_dict(cls: type[T], src_dict: Mapping[str, Any]) -> T:
42
+ d = dict(src_dict)
43
+
44
+ def _parse_compliance_checklist(data: object) -> Union[None, UUID, Unset]:
45
+ if data is None:
46
+ return data
47
+ if isinstance(data, Unset):
48
+ return data
49
+ try:
50
+ if not isinstance(data, str):
51
+ raise TypeError()
52
+ compliance_checklist_type_0 = UUID(data)
53
+
54
+ return compliance_checklist_type_0
55
+ except: # noqa: E722
56
+ pass
57
+ return cast(Union[None, UUID, Unset], data)
58
+
59
+ compliance_checklist = _parse_compliance_checklist(d.pop("compliance_checklist", UNSET))
60
+
61
+ offering_compliance_checklist_update_request = cls(
62
+ compliance_checklist=compliance_checklist,
63
+ )
64
+
65
+ offering_compliance_checklist_update_request.additional_properties = d
66
+ return offering_compliance_checklist_update_request
67
+
68
+ @property
69
+ def additional_keys(self) -> list[str]:
70
+ return list(self.additional_properties.keys())
71
+
72
+ def __getitem__(self, key: str) -> Any:
73
+ return self.additional_properties[key]
74
+
75
+ def __setitem__(self, key: str, value: Any) -> None:
76
+ self.additional_properties[key] = value
77
+
78
+ def __delitem__(self, key: str) -> None:
79
+ del self.additional_properties[key]
80
+
81
+ def __contains__(self, key: str) -> bool:
82
+ return key in self.additional_properties
@@ -98,6 +98,9 @@ class OrderDetails:
98
98
  activation_price (Union[Unset, float]):
99
99
  termination_comment (Union[None, Unset, str]):
100
100
  backend_id (Union[Unset, str]):
101
+ offering_customer_uuid (Union[Unset, UUID]):
102
+ offering_customer_name (Union[Unset, str]):
103
+ offering_customer_slug (Union[Unset, str]):
101
104
  issue (Union['IssueReference', None, Unset]):
102
105
  """
103
106
 
@@ -169,6 +172,9 @@ class OrderDetails:
169
172
  activation_price: Union[Unset, float] = UNSET
170
173
  termination_comment: Union[None, Unset, str] = UNSET
171
174
  backend_id: Union[Unset, str] = UNSET
175
+ offering_customer_uuid: Union[Unset, UUID] = UNSET
176
+ offering_customer_name: Union[Unset, str] = UNSET
177
+ offering_customer_slug: Union[Unset, str] = UNSET
172
178
  issue: Union["IssueReference", None, Unset] = UNSET
173
179
  additional_properties: dict[str, Any] = _attrs_field(init=False, factory=dict)
174
180
 
@@ -459,6 +465,14 @@ class OrderDetails:
459
465
 
460
466
  backend_id = self.backend_id
461
467
 
468
+ offering_customer_uuid: Union[Unset, str] = UNSET
469
+ if not isinstance(self.offering_customer_uuid, Unset):
470
+ offering_customer_uuid = str(self.offering_customer_uuid)
471
+
472
+ offering_customer_name = self.offering_customer_name
473
+
474
+ offering_customer_slug = self.offering_customer_slug
475
+
462
476
  issue: Union[None, Unset, dict[str, Any]]
463
477
  if isinstance(self.issue, Unset):
464
478
  issue = UNSET
@@ -606,6 +620,12 @@ class OrderDetails:
606
620
  field_dict["termination_comment"] = termination_comment
607
621
  if backend_id is not UNSET:
608
622
  field_dict["backend_id"] = backend_id
623
+ if offering_customer_uuid is not UNSET:
624
+ field_dict["offering_customer_uuid"] = offering_customer_uuid
625
+ if offering_customer_name is not UNSET:
626
+ field_dict["offering_customer_name"] = offering_customer_name
627
+ if offering_customer_slug is not UNSET:
628
+ field_dict["offering_customer_slug"] = offering_customer_slug
609
629
  if issue is not UNSET:
610
630
  field_dict["issue"] = issue
611
631
 
@@ -1074,6 +1094,17 @@ class OrderDetails:
1074
1094
 
1075
1095
  backend_id = d.pop("backend_id", UNSET)
1076
1096
 
1097
+ _offering_customer_uuid = d.pop("offering_customer_uuid", UNSET)
1098
+ offering_customer_uuid: Union[Unset, UUID]
1099
+ if isinstance(_offering_customer_uuid, Unset):
1100
+ offering_customer_uuid = UNSET
1101
+ else:
1102
+ offering_customer_uuid = UUID(_offering_customer_uuid)
1103
+
1104
+ offering_customer_name = d.pop("offering_customer_name", UNSET)
1105
+
1106
+ offering_customer_slug = d.pop("offering_customer_slug", UNSET)
1107
+
1077
1108
  def _parse_issue(data: object) -> Union["IssueReference", None, Unset]:
1078
1109
  if data is None:
1079
1110
  return data
@@ -1160,6 +1191,9 @@ class OrderDetails:
1160
1191
  activation_price=activation_price,
1161
1192
  termination_comment=termination_comment,
1162
1193
  backend_id=backend_id,
1194
+ offering_customer_uuid=offering_customer_uuid,
1195
+ offering_customer_name=offering_customer_name,
1196
+ offering_customer_slug=offering_customer_slug,
1163
1197
  issue=issue,
1164
1198
  )
1165
1199
 
@@ -98,6 +98,8 @@ class Resource:
98
98
  error_message (Union[Unset, str]):
99
99
  error_traceback (Union[Unset, str]):
100
100
  offering_customer_uuid (Union[Unset, UUID]):
101
+ offering_customer_name (Union[Unset, str]):
102
+ offering_customer_slug (Union[Unset, str]):
101
103
  options (Union[Unset, Any]):
102
104
  available_actions (Union[Unset, list[str]]):
103
105
  last_sync (Union[Unset, datetime.datetime]):
@@ -176,6 +178,8 @@ class Resource:
176
178
  error_message: Union[Unset, str] = UNSET
177
179
  error_traceback: Union[Unset, str] = UNSET
178
180
  offering_customer_uuid: Union[Unset, UUID] = UNSET
181
+ offering_customer_name: Union[Unset, str] = UNSET
182
+ offering_customer_slug: Union[Unset, str] = UNSET
179
183
  options: Union[Unset, Any] = UNSET
180
184
  available_actions: Union[Unset, list[str]] = UNSET
181
185
  last_sync: Union[Unset, datetime.datetime] = UNSET
@@ -416,6 +420,10 @@ class Resource:
416
420
  if not isinstance(self.offering_customer_uuid, Unset):
417
421
  offering_customer_uuid = str(self.offering_customer_uuid)
418
422
 
423
+ offering_customer_name = self.offering_customer_name
424
+
425
+ offering_customer_slug = self.offering_customer_slug
426
+
419
427
  options = self.options
420
428
 
421
429
  available_actions: Union[Unset, list[str]] = UNSET
@@ -587,6 +595,10 @@ class Resource:
587
595
  field_dict["error_traceback"] = error_traceback
588
596
  if offering_customer_uuid is not UNSET:
589
597
  field_dict["offering_customer_uuid"] = offering_customer_uuid
598
+ if offering_customer_name is not UNSET:
599
+ field_dict["offering_customer_name"] = offering_customer_name
600
+ if offering_customer_slug is not UNSET:
601
+ field_dict["offering_customer_slug"] = offering_customer_slug
590
602
  if options is not UNSET:
591
603
  field_dict["options"] = options
592
604
  if available_actions is not UNSET:
@@ -957,6 +969,10 @@ class Resource:
957
969
  else:
958
970
  offering_customer_uuid = UUID(_offering_customer_uuid)
959
971
 
972
+ offering_customer_name = d.pop("offering_customer_name", UNSET)
973
+
974
+ offering_customer_slug = d.pop("offering_customer_slug", UNSET)
975
+
960
976
  options = d.pop("options", UNSET)
961
977
 
962
978
  available_actions = cast(list[str], d.pop("available_actions", UNSET))
@@ -1082,6 +1098,8 @@ class Resource:
1082
1098
  error_message=error_message,
1083
1099
  error_traceback=error_traceback,
1084
1100
  offering_customer_uuid=offering_customer_uuid,
1101
+ offering_customer_name=offering_customer_name,
1102
+ offering_customer_slug=offering_customer_slug,
1085
1103
  options=options,
1086
1104
  available_actions=available_actions,
1087
1105
  last_sync=last_sync,