waldur-api-client 7.7.9__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 (108) 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/{rancher_clusters/rancher_clusters_create.py → marketplace_offering_user_checklist_completions/marketplace_offering_user_checklist_completions_retrieve.py} +29 -38
  7. waldur_api_client/api/marketplace_offering_users/marketplace_offering_users_count.py +15 -0
  8. waldur_api_client/api/marketplace_offering_users/marketplace_offering_users_list.py +15 -0
  9. waldur_api_client/api/{rancher_clusters/rancher_clusters_destroy.py → marketplace_orders/marketplace_orders_delete_attachment.py} +6 -4
  10. waldur_api_client/api/marketplace_orders/marketplace_orders_update_attachment.py +168 -0
  11. waldur_api_client/api/marketplace_provider_offerings/marketplace_provider_offerings_component_stats_list.py +15 -0
  12. waldur_api_client/api/marketplace_provider_offerings/marketplace_provider_offerings_costs_list.py +15 -0
  13. waldur_api_client/api/marketplace_provider_offerings/marketplace_provider_offerings_count.py +15 -0
  14. waldur_api_client/api/marketplace_provider_offerings/marketplace_provider_offerings_customers_list.py +15 -0
  15. waldur_api_client/api/marketplace_provider_offerings/marketplace_provider_offerings_groups_count.py +15 -0
  16. waldur_api_client/api/marketplace_provider_offerings/marketplace_provider_offerings_groups_list.py +15 -0
  17. waldur_api_client/api/marketplace_provider_offerings/marketplace_provider_offerings_list.py +15 -0
  18. waldur_api_client/api/marketplace_provider_offerings/marketplace_provider_offerings_list_course_accounts_retrieve.py +177 -0
  19. waldur_api_client/api/marketplace_provider_offerings/marketplace_provider_offerings_refresh_offering_usernames.py +0 -22
  20. waldur_api_client/api/marketplace_provider_offerings/marketplace_provider_offerings_update_compliance_checklist.py +105 -0
  21. waldur_api_client/api/marketplace_public_offerings/marketplace_public_offerings_count.py +15 -0
  22. waldur_api_client/api/marketplace_public_offerings/marketplace_public_offerings_list.py +15 -0
  23. waldur_api_client/api/marketplace_service_providers/marketplace_service_providers_course_accounts_list.py +98 -0
  24. waldur_api_client/api/marketplace_service_providers/marketplace_service_providers_offerings_list.py +15 -0
  25. waldur_api_client/api/user_invitations/user_invitations_count.py +15 -0
  26. waldur_api_client/api/user_invitations/user_invitations_list.py +15 -0
  27. waldur_api_client/models/__init__.py +34 -6
  28. waldur_api_client/models/booking_offerings_list_field_item.py +1 -0
  29. waldur_api_client/models/booking_offerings_retrieve_field_item.py +1 -0
  30. waldur_api_client/models/booking_resource.py +18 -0
  31. waldur_api_client/models/booking_resources_list_field_item.py +2 -0
  32. waldur_api_client/models/booking_resources_retrieve_field_item.py +2 -0
  33. waldur_api_client/models/country_enum.py +211 -0
  34. waldur_api_client/models/course_account.py +24 -0
  35. waldur_api_client/models/customer_request.py +9 -0
  36. waldur_api_client/models/deployment_mode_enum.py +9 -0
  37. waldur_api_client/models/group_invitation.py +8 -0
  38. waldur_api_client/models/identity_provider.py +57 -0
  39. waldur_api_client/models/identity_provider_request.py +57 -0
  40. waldur_api_client/models/invitation.py +8 -0
  41. waldur_api_client/models/issue.py +8 -17
  42. waldur_api_client/models/issue_request.py +8 -17
  43. waldur_api_client/models/issue_type_enum.py +4 -4
  44. waldur_api_client/models/managed_rancher_cluster_resources_list_field_item.py +2 -0
  45. waldur_api_client/models/managed_rancher_cluster_resources_retrieve_field_item.py +2 -0
  46. waldur_api_client/models/marketplace_course_accounts_count_o_item.py +23 -0
  47. waldur_api_client/models/marketplace_course_accounts_list_o_item.py +23 -0
  48. waldur_api_client/models/marketplace_offering_user_checklist_completions_count_o_item.py +11 -0
  49. waldur_api_client/models/marketplace_offering_user_checklist_completions_list_o_item.py +11 -0
  50. waldur_api_client/models/marketplace_offering_users_list_field_item.py +2 -0
  51. waldur_api_client/models/marketplace_offering_users_retrieve_field_item.py +2 -0
  52. waldur_api_client/models/marketplace_orders_list_field_item.py +5 -0
  53. waldur_api_client/models/marketplace_orders_retrieve_field_item.py +5 -0
  54. waldur_api_client/models/marketplace_provider_offerings_list_course_accounts_retrieve_field_item.py +72 -0
  55. waldur_api_client/models/marketplace_provider_resources_details_retrieve_field_item.py +2 -0
  56. waldur_api_client/models/marketplace_provider_resources_list_field_item.py +2 -0
  57. waldur_api_client/models/marketplace_provider_resources_retrieve_field_item.py +2 -0
  58. waldur_api_client/models/marketplace_public_offerings_list_field_item.py +1 -0
  59. waldur_api_client/models/marketplace_public_offerings_retrieve_field_item.py +1 -0
  60. waldur_api_client/models/marketplace_resources_details_retrieve_field_item.py +2 -0
  61. waldur_api_client/models/marketplace_resources_list_field_item.py +2 -0
  62. waldur_api_client/models/marketplace_resources_retrieve_field_item.py +2 -0
  63. waldur_api_client/models/marketplace_service_providers_course_accounts_list_o_item.py +23 -0
  64. waldur_api_client/models/merged_plugin_options.py +36 -0
  65. waldur_api_client/models/merged_plugin_options_request.py +36 -0
  66. waldur_api_client/models/notification.py +11 -0
  67. waldur_api_client/models/notification_context_fields.py +47 -0
  68. waldur_api_client/models/offering.py +9 -0
  69. waldur_api_client/models/offering_compliance_checklist_update_request.py +82 -0
  70. waldur_api_client/models/offering_create.py +9 -8
  71. waldur_api_client/models/offering_create_request.py +9 -0
  72. waldur_api_client/models/offering_overview_update_request.py +9 -0
  73. waldur_api_client/models/offering_terms_of_service.py +42 -1
  74. waldur_api_client/models/offering_user.py +18 -0
  75. waldur_api_client/models/open_stack_tenant_create_order_attributes.py +0 -18
  76. waldur_api_client/models/open_stack_tenant_request.py +18 -0
  77. waldur_api_client/models/order_attachment.py +71 -0
  78. waldur_api_client/models/order_attachment_request.py +84 -0
  79. waldur_api_client/models/order_create.py +58 -16
  80. waldur_api_client/models/order_create_request.py +44 -62
  81. waldur_api_client/models/order_details.py +99 -16
  82. waldur_api_client/models/patched_customer_request.py +9 -0
  83. waldur_api_client/models/patched_identity_provider_request.py +58 -0
  84. waldur_api_client/models/patched_project_request.py +9 -0
  85. waldur_api_client/models/patched_protected_call_request.py +9 -0
  86. waldur_api_client/models/patched_protected_round_request.py +2 -2
  87. waldur_api_client/models/patched_service_provider_request.py +9 -0
  88. waldur_api_client/models/patched_user_request.py +9 -0
  89. waldur_api_client/models/project_request.py +9 -0
  90. waldur_api_client/models/protected_call_request.py +9 -0
  91. waldur_api_client/models/protected_round.py +2 -2
  92. waldur_api_client/models/protected_round_request.py +2 -2
  93. waldur_api_client/models/public_offering_details.py +9 -0
  94. waldur_api_client/models/rancher_cluster_request.py +1 -48
  95. waldur_api_client/models/resource.py +18 -0
  96. waldur_api_client/models/resource_update_limits_request.py +23 -1
  97. waldur_api_client/models/service_provider_request.py +9 -0
  98. waldur_api_client/models/user_checklist_completion.py +265 -0
  99. waldur_api_client/models/user_consent_info.py +86 -0
  100. waldur_api_client/models/user_request.py +9 -0
  101. waldur_api_client/models/visible_invitation_details.py +8 -0
  102. {waldur_api_client-7.7.9.dist-info → waldur_api_client-7.8.1.dist-info}/METADATA +4 -2
  103. {waldur_api_client-7.7.9.dist-info → waldur_api_client-7.8.1.dist-info}/RECORD +105 -89
  104. {waldur_api_client-7.7.9.dist-info → waldur_api_client-7.8.1.dist-info}/WHEEL +1 -1
  105. waldur_api_client/models/marketplace_managed_rancher_create_order_attributes.py +0 -144
  106. waldur_api_client/models/marketplace_rancher_create_order_attributes.py +0 -145
  107. waldur_api_client/models/provider_offering_details_request.py +0 -398
  108. {waldur_api_client-7.7.9.dist-info → waldur_api_client-7.8.1.dist-info/licenses}/LICENSE +0 -0
@@ -4,6 +4,7 @@ from enum import Enum
4
4
  class MarketplaceOrdersListFieldItem(str, Enum):
5
5
  ACCEPTING_TERMS_OF_SERVICE = "accepting_terms_of_service"
6
6
  ACTIVATION_PRICE = "activation_price"
7
+ ATTACHMENT = "attachment"
7
8
  ATTRIBUTES = "attributes"
8
9
  BACKEND_ID = "backend_id"
9
10
  CALLBACK_URL = "callback_url"
@@ -36,6 +37,9 @@ class MarketplaceOrdersListFieldItem(str, Enum):
36
37
  NEW_PLAN_UUID = "new_plan_uuid"
37
38
  OFFERING = "offering"
38
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"
39
43
  OFFERING_DESCRIPTION = "offering_description"
40
44
  OFFERING_IMAGE = "offering_image"
41
45
  OFFERING_NAME = "offering_name"
@@ -63,6 +67,7 @@ class MarketplaceOrdersListFieldItem(str, Enum):
63
67
  PROVIDER_REVIEWED_BY_FULL_NAME = "provider_reviewed_by_full_name"
64
68
  PROVIDER_REVIEWED_BY_USERNAME = "provider_reviewed_by_username"
65
69
  PROVIDER_UUID = "provider_uuid"
70
+ REQUEST_COMMENT = "request_comment"
66
71
  RESOURCE_NAME = "resource_name"
67
72
  RESOURCE_TYPE = "resource_type"
68
73
  RESOURCE_UUID = "resource_uuid"
@@ -4,6 +4,7 @@ from enum import Enum
4
4
  class MarketplaceOrdersRetrieveFieldItem(str, Enum):
5
5
  ACCEPTING_TERMS_OF_SERVICE = "accepting_terms_of_service"
6
6
  ACTIVATION_PRICE = "activation_price"
7
+ ATTACHMENT = "attachment"
7
8
  ATTRIBUTES = "attributes"
8
9
  BACKEND_ID = "backend_id"
9
10
  CALLBACK_URL = "callback_url"
@@ -36,6 +37,9 @@ class MarketplaceOrdersRetrieveFieldItem(str, Enum):
36
37
  NEW_PLAN_UUID = "new_plan_uuid"
37
38
  OFFERING = "offering"
38
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"
39
43
  OFFERING_DESCRIPTION = "offering_description"
40
44
  OFFERING_IMAGE = "offering_image"
41
45
  OFFERING_NAME = "offering_name"
@@ -63,6 +67,7 @@ class MarketplaceOrdersRetrieveFieldItem(str, Enum):
63
67
  PROVIDER_REVIEWED_BY_FULL_NAME = "provider_reviewed_by_full_name"
64
68
  PROVIDER_REVIEWED_BY_USERNAME = "provider_reviewed_by_username"
65
69
  PROVIDER_UUID = "provider_uuid"
70
+ REQUEST_COMMENT = "request_comment"
66
71
  RESOURCE_NAME = "resource_name"
67
72
  RESOURCE_TYPE = "resource_type"
68
73
  RESOURCE_UUID = "resource_uuid"
@@ -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"
@@ -63,6 +63,7 @@ class MarketplacePublicOfferingsListFieldItem(str, Enum):
63
63
  TOTAL_CUSTOMERS = "total_customers"
64
64
  TYPE = "type"
65
65
  URL = "url"
66
+ USER_HAS_CONSENT = "user_has_consent"
66
67
  UUID = "uuid"
67
68
  VENDOR_DETAILS = "vendor_details"
68
69
 
@@ -63,6 +63,7 @@ class MarketplacePublicOfferingsRetrieveFieldItem(str, Enum):
63
63
  TOTAL_CUSTOMERS = "total_customers"
64
64
  TYPE = "type"
65
65
  URL = "url"
66
+ USER_HAS_CONSENT = "user_has_consent"
66
67
  UUID = "uuid"
67
68
  VENDOR_DETAILS = "vendor_details"
68
69
 
@@ -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)
@@ -7,6 +7,7 @@ from attrs import field as _attrs_field
7
7
  from dateutil.parser import isoparse
8
8
 
9
9
  from ..models.account_name_generation_policy_enum import AccountNameGenerationPolicyEnum
10
+ from ..models.deployment_mode_enum import DeploymentModeEnum
10
11
  from ..models.storage_mode_enum import StorageModeEnum
11
12
  from ..models.username_generation_policy_enum import UsernameGenerationPolicyEnum
12
13
  from ..types import UNSET, Unset
@@ -33,8 +34,11 @@ class MergedPluginOptions:
33
34
  supports_pausing (Union[Unset, bool]): If set to True, it will be possible to pause resources
34
35
  minimal_team_count_for_provisioning (Union[Unset, int]): Minimal team count required for provisioning of
35
36
  resources
37
+ maximal_resource_count_per_project (Union[Unset, int]): Maximal number of offering resources allowed per project
36
38
  required_team_role_for_provisioning (Union[Unset, str]): Required user role in a project for provisioning of
37
39
  resources
40
+ order_supports_comments_and_metadata (Union[Unset, bool]): If set to True, orders will support comments and
41
+ metadata
38
42
  default_internal_network_mtu (Union[Unset, int]): If set, it will be used as a default MTU for the first network
39
43
  in a tenant
40
44
  max_instances (Union[Unset, int]): Default limit for number of instances in OpenStack tenant
@@ -53,6 +57,7 @@ class MergedPluginOptions:
53
57
  username_generation_policy (Union[Unset, UsernameGenerationPolicyEnum]): Default:
54
58
  UsernameGenerationPolicyEnum.SERVICE_PROVIDER.
55
59
  enable_issues_for_membership_changes (Union[Unset, bool]): Enable issues for membership changes
60
+ deployment_mode (Union[Unset, DeploymentModeEnum]):
56
61
  flavors_regex (Union[Unset, str]): Regular expression to limit flavors list
57
62
  openstack_offering_uuid_list (Union[Unset, list[str]]): List of UUID of OpenStack offerings where tenant can be
58
63
  created
@@ -85,7 +90,9 @@ class MergedPluginOptions:
85
90
  supports_downscaling: Union[Unset, bool] = UNSET
86
91
  supports_pausing: Union[Unset, bool] = UNSET
87
92
  minimal_team_count_for_provisioning: Union[Unset, int] = UNSET
93
+ maximal_resource_count_per_project: Union[Unset, int] = UNSET
88
94
  required_team_role_for_provisioning: Union[Unset, str] = UNSET
95
+ order_supports_comments_and_metadata: Union[Unset, bool] = UNSET
89
96
  default_internal_network_mtu: Union[Unset, int] = UNSET
90
97
  max_instances: Union[Unset, int] = UNSET
91
98
  max_volumes: Union[Unset, int] = UNSET
@@ -104,6 +111,7 @@ class MergedPluginOptions:
104
111
  UsernameGenerationPolicyEnum.SERVICE_PROVIDER
105
112
  )
106
113
  enable_issues_for_membership_changes: Union[Unset, bool] = UNSET
114
+ deployment_mode: Union[Unset, DeploymentModeEnum] = UNSET
107
115
  flavors_regex: Union[Unset, str] = UNSET
108
116
  openstack_offering_uuid_list: Union[Unset, list[str]] = UNSET
109
117
  managed_rancher_server_flavor_name: Union[Unset, str] = UNSET
@@ -147,8 +155,12 @@ class MergedPluginOptions:
147
155
 
148
156
  minimal_team_count_for_provisioning = self.minimal_team_count_for_provisioning
149
157
 
158
+ maximal_resource_count_per_project = self.maximal_resource_count_per_project
159
+
150
160
  required_team_role_for_provisioning = self.required_team_role_for_provisioning
151
161
 
162
+ order_supports_comments_and_metadata = self.order_supports_comments_and_metadata
163
+
152
164
  default_internal_network_mtu = self.default_internal_network_mtu
153
165
 
154
166
  max_instances = self.max_instances
@@ -185,6 +197,10 @@ class MergedPluginOptions:
185
197
 
186
198
  enable_issues_for_membership_changes = self.enable_issues_for_membership_changes
187
199
 
200
+ deployment_mode: Union[Unset, str] = UNSET
201
+ if not isinstance(self.deployment_mode, Unset):
202
+ deployment_mode = self.deployment_mode.value
203
+
188
204
  flavors_regex = self.flavors_regex
189
205
 
190
206
  openstack_offering_uuid_list: Union[Unset, list[str]] = UNSET
@@ -254,8 +270,12 @@ class MergedPluginOptions:
254
270
  field_dict["supports_pausing"] = supports_pausing
255
271
  if minimal_team_count_for_provisioning is not UNSET:
256
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
257
275
  if required_team_role_for_provisioning is not UNSET:
258
276
  field_dict["required_team_role_for_provisioning"] = required_team_role_for_provisioning
277
+ if order_supports_comments_and_metadata is not UNSET:
278
+ field_dict["order_supports_comments_and_metadata"] = order_supports_comments_and_metadata
259
279
  if default_internal_network_mtu is not UNSET:
260
280
  field_dict["default_internal_network_mtu"] = default_internal_network_mtu
261
281
  if max_instances is not UNSET:
@@ -288,6 +308,8 @@ class MergedPluginOptions:
288
308
  field_dict["username_generation_policy"] = username_generation_policy
289
309
  if enable_issues_for_membership_changes is not UNSET:
290
310
  field_dict["enable_issues_for_membership_changes"] = enable_issues_for_membership_changes
311
+ if deployment_mode is not UNSET:
312
+ field_dict["deployment_mode"] = deployment_mode
291
313
  if flavors_regex is not UNSET:
292
314
  field_dict["flavors_regex"] = flavors_regex
293
315
  if openstack_offering_uuid_list is not UNSET:
@@ -367,8 +389,12 @@ class MergedPluginOptions:
367
389
 
368
390
  minimal_team_count_for_provisioning = d.pop("minimal_team_count_for_provisioning", UNSET)
369
391
 
392
+ maximal_resource_count_per_project = d.pop("maximal_resource_count_per_project", UNSET)
393
+
370
394
  required_team_role_for_provisioning = d.pop("required_team_role_for_provisioning", UNSET)
371
395
 
396
+ order_supports_comments_and_metadata = d.pop("order_supports_comments_and_metadata", UNSET)
397
+
372
398
  default_internal_network_mtu = d.pop("default_internal_network_mtu", UNSET)
373
399
 
374
400
  max_instances = d.pop("max_instances", UNSET)
@@ -411,6 +437,13 @@ class MergedPluginOptions:
411
437
 
412
438
  enable_issues_for_membership_changes = d.pop("enable_issues_for_membership_changes", UNSET)
413
439
 
440
+ _deployment_mode = d.pop("deployment_mode", UNSET)
441
+ deployment_mode: Union[Unset, DeploymentModeEnum]
442
+ if isinstance(_deployment_mode, Unset):
443
+ deployment_mode = UNSET
444
+ else:
445
+ deployment_mode = DeploymentModeEnum(_deployment_mode)
446
+
414
447
  flavors_regex = d.pop("flavors_regex", UNSET)
415
448
 
416
449
  openstack_offering_uuid_list = cast(list[str], d.pop("openstack_offering_uuid_list", UNSET))
@@ -483,7 +516,9 @@ class MergedPluginOptions:
483
516
  supports_downscaling=supports_downscaling,
484
517
  supports_pausing=supports_pausing,
485
518
  minimal_team_count_for_provisioning=minimal_team_count_for_provisioning,
519
+ maximal_resource_count_per_project=maximal_resource_count_per_project,
486
520
  required_team_role_for_provisioning=required_team_role_for_provisioning,
521
+ order_supports_comments_and_metadata=order_supports_comments_and_metadata,
487
522
  default_internal_network_mtu=default_internal_network_mtu,
488
523
  max_instances=max_instances,
489
524
  max_volumes=max_volumes,
@@ -500,6 +535,7 @@ class MergedPluginOptions:
500
535
  username_anonymized_prefix=username_anonymized_prefix,
501
536
  username_generation_policy=username_generation_policy,
502
537
  enable_issues_for_membership_changes=enable_issues_for_membership_changes,
538
+ deployment_mode=deployment_mode,
503
539
  flavors_regex=flavors_regex,
504
540
  openstack_offering_uuid_list=openstack_offering_uuid_list,
505
541
  managed_rancher_server_flavor_name=managed_rancher_server_flavor_name,
@@ -7,6 +7,7 @@ from attrs import field as _attrs_field
7
7
  from dateutil.parser import isoparse
8
8
 
9
9
  from ..models.account_name_generation_policy_enum import AccountNameGenerationPolicyEnum
10
+ from ..models.deployment_mode_enum import DeploymentModeEnum
10
11
  from ..models.storage_mode_enum import StorageModeEnum
11
12
  from ..models.username_generation_policy_enum import UsernameGenerationPolicyEnum
12
13
  from ..types import UNSET, Unset
@@ -33,8 +34,11 @@ class MergedPluginOptionsRequest:
33
34
  supports_pausing (Union[Unset, bool]): If set to True, it will be possible to pause resources
34
35
  minimal_team_count_for_provisioning (Union[Unset, int]): Minimal team count required for provisioning of
35
36
  resources
37
+ maximal_resource_count_per_project (Union[Unset, int]): Maximal number of offering resources allowed per project
36
38
  required_team_role_for_provisioning (Union[Unset, str]): Required user role in a project for provisioning of
37
39
  resources
40
+ order_supports_comments_and_metadata (Union[Unset, bool]): If set to True, orders will support comments and
41
+ metadata
38
42
  default_internal_network_mtu (Union[Unset, int]): If set, it will be used as a default MTU for the first network
39
43
  in a tenant
40
44
  max_instances (Union[Unset, int]): Default limit for number of instances in OpenStack tenant
@@ -53,6 +57,7 @@ class MergedPluginOptionsRequest:
53
57
  username_generation_policy (Union[Unset, UsernameGenerationPolicyEnum]): Default:
54
58
  UsernameGenerationPolicyEnum.SERVICE_PROVIDER.
55
59
  enable_issues_for_membership_changes (Union[Unset, bool]): Enable issues for membership changes
60
+ deployment_mode (Union[Unset, DeploymentModeEnum]):
56
61
  flavors_regex (Union[Unset, str]): Regular expression to limit flavors list
57
62
  openstack_offering_uuid_list (Union[Unset, list[str]]): List of UUID of OpenStack offerings where tenant can be
58
63
  created
@@ -85,7 +90,9 @@ class MergedPluginOptionsRequest:
85
90
  supports_downscaling: Union[Unset, bool] = UNSET
86
91
  supports_pausing: Union[Unset, bool] = UNSET
87
92
  minimal_team_count_for_provisioning: Union[Unset, int] = UNSET
93
+ maximal_resource_count_per_project: Union[Unset, int] = UNSET
88
94
  required_team_role_for_provisioning: Union[Unset, str] = UNSET
95
+ order_supports_comments_and_metadata: Union[Unset, bool] = UNSET
89
96
  default_internal_network_mtu: Union[Unset, int] = UNSET
90
97
  max_instances: Union[Unset, int] = UNSET
91
98
  max_volumes: Union[Unset, int] = UNSET
@@ -104,6 +111,7 @@ class MergedPluginOptionsRequest:
104
111
  UsernameGenerationPolicyEnum.SERVICE_PROVIDER
105
112
  )
106
113
  enable_issues_for_membership_changes: Union[Unset, bool] = UNSET
114
+ deployment_mode: Union[Unset, DeploymentModeEnum] = UNSET
107
115
  flavors_regex: Union[Unset, str] = UNSET
108
116
  openstack_offering_uuid_list: Union[Unset, list[str]] = UNSET
109
117
  managed_rancher_server_flavor_name: Union[Unset, str] = UNSET
@@ -147,8 +155,12 @@ class MergedPluginOptionsRequest:
147
155
 
148
156
  minimal_team_count_for_provisioning = self.minimal_team_count_for_provisioning
149
157
 
158
+ maximal_resource_count_per_project = self.maximal_resource_count_per_project
159
+
150
160
  required_team_role_for_provisioning = self.required_team_role_for_provisioning
151
161
 
162
+ order_supports_comments_and_metadata = self.order_supports_comments_and_metadata
163
+
152
164
  default_internal_network_mtu = self.default_internal_network_mtu
153
165
 
154
166
  max_instances = self.max_instances
@@ -185,6 +197,10 @@ class MergedPluginOptionsRequest:
185
197
 
186
198
  enable_issues_for_membership_changes = self.enable_issues_for_membership_changes
187
199
 
200
+ deployment_mode: Union[Unset, str] = UNSET
201
+ if not isinstance(self.deployment_mode, Unset):
202
+ deployment_mode = self.deployment_mode.value
203
+
188
204
  flavors_regex = self.flavors_regex
189
205
 
190
206
  openstack_offering_uuid_list: Union[Unset, list[str]] = UNSET
@@ -254,8 +270,12 @@ class MergedPluginOptionsRequest:
254
270
  field_dict["supports_pausing"] = supports_pausing
255
271
  if minimal_team_count_for_provisioning is not UNSET:
256
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
257
275
  if required_team_role_for_provisioning is not UNSET:
258
276
  field_dict["required_team_role_for_provisioning"] = required_team_role_for_provisioning
277
+ if order_supports_comments_and_metadata is not UNSET:
278
+ field_dict["order_supports_comments_and_metadata"] = order_supports_comments_and_metadata
259
279
  if default_internal_network_mtu is not UNSET:
260
280
  field_dict["default_internal_network_mtu"] = default_internal_network_mtu
261
281
  if max_instances is not UNSET:
@@ -288,6 +308,8 @@ class MergedPluginOptionsRequest:
288
308
  field_dict["username_generation_policy"] = username_generation_policy
289
309
  if enable_issues_for_membership_changes is not UNSET:
290
310
  field_dict["enable_issues_for_membership_changes"] = enable_issues_for_membership_changes
311
+ if deployment_mode is not UNSET:
312
+ field_dict["deployment_mode"] = deployment_mode
291
313
  if flavors_regex is not UNSET:
292
314
  field_dict["flavors_regex"] = flavors_regex
293
315
  if openstack_offering_uuid_list is not UNSET:
@@ -367,8 +389,12 @@ class MergedPluginOptionsRequest:
367
389
 
368
390
  minimal_team_count_for_provisioning = d.pop("minimal_team_count_for_provisioning", UNSET)
369
391
 
392
+ maximal_resource_count_per_project = d.pop("maximal_resource_count_per_project", UNSET)
393
+
370
394
  required_team_role_for_provisioning = d.pop("required_team_role_for_provisioning", UNSET)
371
395
 
396
+ order_supports_comments_and_metadata = d.pop("order_supports_comments_and_metadata", UNSET)
397
+
372
398
  default_internal_network_mtu = d.pop("default_internal_network_mtu", UNSET)
373
399
 
374
400
  max_instances = d.pop("max_instances", UNSET)
@@ -411,6 +437,13 @@ class MergedPluginOptionsRequest:
411
437
 
412
438
  enable_issues_for_membership_changes = d.pop("enable_issues_for_membership_changes", UNSET)
413
439
 
440
+ _deployment_mode = d.pop("deployment_mode", UNSET)
441
+ deployment_mode: Union[Unset, DeploymentModeEnum]
442
+ if isinstance(_deployment_mode, Unset):
443
+ deployment_mode = UNSET
444
+ else:
445
+ deployment_mode = DeploymentModeEnum(_deployment_mode)
446
+
414
447
  flavors_regex = d.pop("flavors_regex", UNSET)
415
448
 
416
449
  openstack_offering_uuid_list = cast(list[str], d.pop("openstack_offering_uuid_list", UNSET))
@@ -483,7 +516,9 @@ class MergedPluginOptionsRequest:
483
516
  supports_downscaling=supports_downscaling,
484
517
  supports_pausing=supports_pausing,
485
518
  minimal_team_count_for_provisioning=minimal_team_count_for_provisioning,
519
+ maximal_resource_count_per_project=maximal_resource_count_per_project,
486
520
  required_team_role_for_provisioning=required_team_role_for_provisioning,
521
+ order_supports_comments_and_metadata=order_supports_comments_and_metadata,
487
522
  default_internal_network_mtu=default_internal_network_mtu,
488
523
  max_instances=max_instances,
489
524
  max_volumes=max_volumes,
@@ -500,6 +535,7 @@ class MergedPluginOptionsRequest:
500
535
  username_anonymized_prefix=username_anonymized_prefix,
501
536
  username_generation_policy=username_generation_policy,
502
537
  enable_issues_for_membership_changes=enable_issues_for_membership_changes,
538
+ deployment_mode=deployment_mode,
503
539
  flavors_regex=flavors_regex,
504
540
  openstack_offering_uuid_list=openstack_offering_uuid_list,
505
541
  managed_rancher_server_flavor_name=managed_rancher_server_flavor_name,
@@ -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
@@ -95,6 +95,7 @@ class Offering:
95
95
  parent_name (Union[None, Unset, str]):
96
96
  backend_metadata (Union[Unset, Any]):
97
97
  has_compliance_requirements (Union[Unset, bool]):
98
+ user_has_consent (Union[Unset, bool]):
98
99
  googlecalendar (Union[Unset, GoogleCalendar]):
99
100
  """
100
101
 
@@ -158,6 +159,7 @@ class Offering:
158
159
  parent_name: Union[None, Unset, str] = UNSET
159
160
  backend_metadata: Union[Unset, Any] = UNSET
160
161
  has_compliance_requirements: Union[Unset, bool] = UNSET
162
+ user_has_consent: Union[Unset, bool] = UNSET
161
163
  googlecalendar: Union[Unset, "GoogleCalendar"] = UNSET
162
164
  additional_properties: dict[str, Any] = _attrs_field(init=False, factory=dict)
163
165
 
@@ -436,6 +438,8 @@ class Offering:
436
438
 
437
439
  has_compliance_requirements = self.has_compliance_requirements
438
440
 
441
+ user_has_consent = self.user_has_consent
442
+
439
443
  googlecalendar: Union[Unset, dict[str, Any]] = UNSET
440
444
  if not isinstance(self.googlecalendar, Unset):
441
445
  googlecalendar = self.googlecalendar.to_dict()
@@ -563,6 +567,8 @@ class Offering:
563
567
  field_dict["backend_metadata"] = backend_metadata
564
568
  if has_compliance_requirements is not UNSET:
565
569
  field_dict["has_compliance_requirements"] = has_compliance_requirements
570
+ if user_has_consent is not UNSET:
571
+ field_dict["user_has_consent"] = user_has_consent
566
572
  if googlecalendar is not UNSET:
567
573
  field_dict["googlecalendar"] = googlecalendar
568
574
 
@@ -989,6 +995,8 @@ class Offering:
989
995
 
990
996
  has_compliance_requirements = d.pop("has_compliance_requirements", UNSET)
991
997
 
998
+ user_has_consent = d.pop("user_has_consent", UNSET)
999
+
992
1000
  _googlecalendar = d.pop("googlecalendar", UNSET)
993
1001
  googlecalendar: Union[Unset, GoogleCalendar]
994
1002
  if isinstance(_googlecalendar, Unset):
@@ -1057,6 +1065,7 @@ class Offering:
1057
1065
  parent_name=parent_name,
1058
1066
  backend_metadata=backend_metadata,
1059
1067
  has_compliance_requirements=has_compliance_requirements,
1068
+ user_has_consent=user_has_consent,
1060
1069
  googlecalendar=googlecalendar,
1061
1070
  )
1062
1071