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
@@ -50,7 +50,6 @@ class OrderDetails:
50
50
  uuid (Union[Unset, UUID]):
51
51
  created (Union[Unset, datetime.datetime]):
52
52
  modified (Union[Unset, datetime.datetime]):
53
- type_ (Union[Unset, RequestTypes]): Default: RequestTypes.CREATE.
54
53
  resource_uuid (Union[None, UUID, Unset]):
55
54
  resource_type (Union[None, Unset, str]):
56
55
  resource_name (Union[Unset, str]):
@@ -59,8 +58,12 @@ class OrderDetails:
59
58
  output (Union[Unset, str]):
60
59
  marketplace_resource_uuid (Union[Unset, UUID]):
61
60
  error_message (Union[Unset, str]):
61
+ error_traceback (Union[Unset, str]):
62
62
  callback_url (Union[None, Unset, str]):
63
63
  completed_at (Union[None, Unset, datetime.datetime]):
64
+ request_comment (Union[None, Unset, str]):
65
+ attachment (Union[None, Unset, str]):
66
+ type_ (Union[Unset, RequestTypes]): Default: RequestTypes.CREATE.
64
67
  consumer_reviewed_by (Union[None, Unset, str]): Required. 128 characters or fewer. Lowercase letters, numbers
65
68
  and @/./+/-/_ characters
66
69
  consumer_reviewed_by_full_name (Union[None, Unset, str]):
@@ -95,6 +98,9 @@ class OrderDetails:
95
98
  activation_price (Union[Unset, float]):
96
99
  termination_comment (Union[None, Unset, str]):
97
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]):
98
104
  issue (Union['IssueReference', None, Unset]):
99
105
  """
100
106
 
@@ -123,7 +129,6 @@ class OrderDetails:
123
129
  uuid: Union[Unset, UUID] = UNSET
124
130
  created: Union[Unset, datetime.datetime] = UNSET
125
131
  modified: Union[Unset, datetime.datetime] = UNSET
126
- type_: Union[Unset, RequestTypes] = RequestTypes.CREATE
127
132
  resource_uuid: Union[None, UUID, Unset] = UNSET
128
133
  resource_type: Union[None, Unset, str] = UNSET
129
134
  resource_name: Union[Unset, str] = UNSET
@@ -132,8 +137,12 @@ class OrderDetails:
132
137
  output: Union[Unset, str] = UNSET
133
138
  marketplace_resource_uuid: Union[Unset, UUID] = UNSET
134
139
  error_message: Union[Unset, str] = UNSET
140
+ error_traceback: Union[Unset, str] = UNSET
135
141
  callback_url: Union[None, Unset, str] = UNSET
136
142
  completed_at: Union[None, Unset, datetime.datetime] = UNSET
143
+ request_comment: Union[None, Unset, str] = UNSET
144
+ attachment: Union[None, Unset, str] = UNSET
145
+ type_: Union[Unset, RequestTypes] = RequestTypes.CREATE
137
146
  consumer_reviewed_by: Union[None, Unset, str] = UNSET
138
147
  consumer_reviewed_by_full_name: Union[None, Unset, str] = UNSET
139
148
  consumer_reviewed_by_username: Union[None, Unset, str] = UNSET
@@ -163,6 +172,9 @@ class OrderDetails:
163
172
  activation_price: Union[Unset, float] = UNSET
164
173
  termination_comment: Union[None, Unset, str] = UNSET
165
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
166
178
  issue: Union["IssueReference", None, Unset] = UNSET
167
179
  additional_properties: dict[str, Any] = _attrs_field(init=False, factory=dict)
168
180
 
@@ -253,10 +265,6 @@ class OrderDetails:
253
265
  if not isinstance(self.modified, Unset):
254
266
  modified = self.modified.isoformat()
255
267
 
256
- type_: Union[Unset, str] = UNSET
257
- if not isinstance(self.type_, Unset):
258
- type_ = self.type_.value
259
-
260
268
  resource_uuid: Union[None, Unset, str]
261
269
  if isinstance(self.resource_uuid, Unset):
262
270
  resource_uuid = UNSET
@@ -291,6 +299,8 @@ class OrderDetails:
291
299
 
292
300
  error_message = self.error_message
293
301
 
302
+ error_traceback = self.error_traceback
303
+
294
304
  callback_url: Union[None, Unset, str]
295
305
  if isinstance(self.callback_url, Unset):
296
306
  callback_url = UNSET
@@ -305,6 +315,22 @@ class OrderDetails:
305
315
  else:
306
316
  completed_at = self.completed_at
307
317
 
318
+ request_comment: Union[None, Unset, str]
319
+ if isinstance(self.request_comment, Unset):
320
+ request_comment = UNSET
321
+ else:
322
+ request_comment = self.request_comment
323
+
324
+ attachment: Union[None, Unset, str]
325
+ if isinstance(self.attachment, Unset):
326
+ attachment = UNSET
327
+ else:
328
+ attachment = self.attachment
329
+
330
+ type_: Union[Unset, str] = UNSET
331
+ if not isinstance(self.type_, Unset):
332
+ type_ = self.type_.value
333
+
308
334
  consumer_reviewed_by: Union[None, Unset, str]
309
335
  if isinstance(self.consumer_reviewed_by, Unset):
310
336
  consumer_reviewed_by = UNSET
@@ -439,6 +465,14 @@ class OrderDetails:
439
465
 
440
466
  backend_id = self.backend_id
441
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
+
442
476
  issue: Union[None, Unset, dict[str, Any]]
443
477
  if isinstance(self.issue, Unset):
444
478
  issue = UNSET
@@ -500,8 +534,6 @@ class OrderDetails:
500
534
  field_dict["created"] = created
501
535
  if modified is not UNSET:
502
536
  field_dict["modified"] = modified
503
- if type_ is not UNSET:
504
- field_dict["type"] = type_
505
537
  if resource_uuid is not UNSET:
506
538
  field_dict["resource_uuid"] = resource_uuid
507
539
  if resource_type is not UNSET:
@@ -518,10 +550,18 @@ class OrderDetails:
518
550
  field_dict["marketplace_resource_uuid"] = marketplace_resource_uuid
519
551
  if error_message is not UNSET:
520
552
  field_dict["error_message"] = error_message
553
+ if error_traceback is not UNSET:
554
+ field_dict["error_traceback"] = error_traceback
521
555
  if callback_url is not UNSET:
522
556
  field_dict["callback_url"] = callback_url
523
557
  if completed_at is not UNSET:
524
558
  field_dict["completed_at"] = completed_at
559
+ if request_comment is not UNSET:
560
+ field_dict["request_comment"] = request_comment
561
+ if attachment is not UNSET:
562
+ field_dict["attachment"] = attachment
563
+ if type_ is not UNSET:
564
+ field_dict["type"] = type_
525
565
  if consumer_reviewed_by is not UNSET:
526
566
  field_dict["consumer_reviewed_by"] = consumer_reviewed_by
527
567
  if consumer_reviewed_by_full_name is not UNSET:
@@ -580,6 +620,12 @@ class OrderDetails:
580
620
  field_dict["termination_comment"] = termination_comment
581
621
  if backend_id is not UNSET:
582
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
583
629
  if issue is not UNSET:
584
630
  field_dict["issue"] = issue
585
631
 
@@ -720,13 +766,6 @@ class OrderDetails:
720
766
  else:
721
767
  modified = isoparse(_modified)
722
768
 
723
- _type_ = d.pop("type", UNSET)
724
- type_: Union[Unset, RequestTypes]
725
- if isinstance(_type_, Unset):
726
- type_ = UNSET
727
- else:
728
- type_ = RequestTypes(_type_)
729
-
730
769
  def _parse_resource_uuid(data: object) -> Union[None, UUID, Unset]:
731
770
  if data is None:
732
771
  return data
@@ -782,6 +821,8 @@ class OrderDetails:
782
821
 
783
822
  error_message = d.pop("error_message", UNSET)
784
823
 
824
+ error_traceback = d.pop("error_traceback", UNSET)
825
+
785
826
  def _parse_callback_url(data: object) -> Union[None, Unset, str]:
786
827
  if data is None:
787
828
  return data
@@ -808,6 +849,31 @@ class OrderDetails:
808
849
 
809
850
  completed_at = _parse_completed_at(d.pop("completed_at", UNSET))
810
851
 
852
+ def _parse_request_comment(data: object) -> Union[None, Unset, str]:
853
+ if data is None:
854
+ return data
855
+ if isinstance(data, Unset):
856
+ return data
857
+ return cast(Union[None, Unset, str], data)
858
+
859
+ request_comment = _parse_request_comment(d.pop("request_comment", UNSET))
860
+
861
+ def _parse_attachment(data: object) -> Union[None, Unset, str]:
862
+ if data is None:
863
+ return data
864
+ if isinstance(data, Unset):
865
+ return data
866
+ return cast(Union[None, Unset, str], data)
867
+
868
+ attachment = _parse_attachment(d.pop("attachment", UNSET))
869
+
870
+ _type_ = d.pop("type", UNSET)
871
+ type_: Union[Unset, RequestTypes]
872
+ if isinstance(_type_, Unset):
873
+ type_ = UNSET
874
+ else:
875
+ type_ = RequestTypes(_type_)
876
+
811
877
  def _parse_consumer_reviewed_by(data: object) -> Union[None, Unset, str]:
812
878
  if data is None:
813
879
  return data
@@ -1028,6 +1094,17 @@ class OrderDetails:
1028
1094
 
1029
1095
  backend_id = d.pop("backend_id", UNSET)
1030
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
+
1031
1108
  def _parse_issue(data: object) -> Union["IssueReference", None, Unset]:
1032
1109
  if data is None:
1033
1110
  return data
@@ -1071,7 +1148,6 @@ class OrderDetails:
1071
1148
  uuid=uuid,
1072
1149
  created=created,
1073
1150
  modified=modified,
1074
- type_=type_,
1075
1151
  resource_uuid=resource_uuid,
1076
1152
  resource_type=resource_type,
1077
1153
  resource_name=resource_name,
@@ -1080,8 +1156,12 @@ class OrderDetails:
1080
1156
  output=output,
1081
1157
  marketplace_resource_uuid=marketplace_resource_uuid,
1082
1158
  error_message=error_message,
1159
+ error_traceback=error_traceback,
1083
1160
  callback_url=callback_url,
1084
1161
  completed_at=completed_at,
1162
+ request_comment=request_comment,
1163
+ attachment=attachment,
1164
+ type_=type_,
1085
1165
  consumer_reviewed_by=consumer_reviewed_by,
1086
1166
  consumer_reviewed_by_full_name=consumer_reviewed_by_full_name,
1087
1167
  consumer_reviewed_by_username=consumer_reviewed_by_username,
@@ -1111,6 +1191,9 @@ class OrderDetails:
1111
1191
  activation_price=activation_price,
1112
1192
  termination_comment=termination_comment,
1113
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,
1114
1197
  issue=issue,
1115
1198
  )
1116
1199
 
@@ -20,6 +20,7 @@ class PatchedCustomerRequest:
20
20
  backend_id (Union[Unset, str]): Organization identifier in another application.
21
21
  image (Union[File, None, Unset]):
22
22
  name (Union[Unset, str]):
23
+ slug (Union[Unset, str]):
23
24
  native_name (Union[Unset, str]):
24
25
  abbreviation (Union[Unset, str]):
25
26
  description (Union[Unset, str]):
@@ -41,6 +42,7 @@ class PatchedCustomerRequest:
41
42
  backend_id: Union[Unset, str] = UNSET
42
43
  image: Union[File, None, Unset] = UNSET
43
44
  name: Union[Unset, str] = UNSET
45
+ slug: Union[Unset, str] = UNSET
44
46
  native_name: Union[Unset, str] = UNSET
45
47
  abbreviation: Union[Unset, str] = UNSET
46
48
  description: Union[Unset, str] = UNSET
@@ -73,6 +75,8 @@ class PatchedCustomerRequest:
73
75
 
74
76
  name = self.name
75
77
 
78
+ slug = self.slug
79
+
76
80
  native_name = self.native_name
77
81
 
78
82
  abbreviation = self.abbreviation
@@ -128,6 +132,8 @@ class PatchedCustomerRequest:
128
132
  field_dict["image"] = image
129
133
  if name is not UNSET:
130
134
  field_dict["name"] = name
135
+ if slug is not UNSET:
136
+ field_dict["slug"] = slug
131
137
  if native_name is not UNSET:
132
138
  field_dict["native_name"] = native_name
133
139
  if abbreviation is not UNSET:
@@ -187,6 +193,8 @@ class PatchedCustomerRequest:
187
193
 
188
194
  name = d.pop("name", UNSET)
189
195
 
196
+ slug = d.pop("slug", UNSET)
197
+
190
198
  native_name = d.pop("native_name", UNSET)
191
199
 
192
200
  abbreviation = d.pop("abbreviation", UNSET)
@@ -254,6 +262,7 @@ class PatchedCustomerRequest:
254
262
  backend_id=backend_id,
255
263
  image=image,
256
264
  name=name,
265
+ slug=slug,
257
266
  native_name=native_name,
258
267
  abbreviation=abbreviation,
259
268
  description=description,
@@ -16,6 +16,7 @@ class PatchedIdentityProviderRequest:
16
16
  provider (Union[Unset, str]):
17
17
  is_active (Union[Unset, bool]):
18
18
  client_id (Union[Unset, str]): ID of application used for OAuth authentication.
19
+ client_secret (Union[Unset, str]): Application secret key.
19
20
  verify_ssl (Union[Unset, bool]):
20
21
  enable_post_logout_redirect (Union[Unset, bool]):
21
22
  enable_pkce (Union[Unset, bool]):
@@ -24,11 +25,18 @@ class PatchedIdentityProviderRequest:
24
25
  management_url (Union[Unset, str]): The endpoint for user details management.
25
26
  protected_fields (Union[Unset, Any]):
26
27
  extra_scope (Union[None, Unset, str]): Space-separated list of scopes to request during authentication.
28
+ user_field (Union[Unset, str]): The field in Waldur User model to be used for looking up the user
29
+ user_claim (Union[Unset, str]): The OIDC claim from the userinfo endpoint to be used as the value for the lookup
30
+ field.
31
+ attribute_mapping (Union[Unset, Any]): A JSON object mapping Waldur User model fields to OIDC claims. Example:
32
+ {"first_name": "given_name", "last_name": "family_name", "email": "email"}
33
+ extra_fields (Union[None, Unset, str]): Space-separated list of extra fields to persist.
27
34
  """
28
35
 
29
36
  provider: Union[Unset, str] = UNSET
30
37
  is_active: Union[Unset, bool] = UNSET
31
38
  client_id: Union[Unset, str] = UNSET
39
+ client_secret: Union[Unset, str] = UNSET
32
40
  verify_ssl: Union[Unset, bool] = UNSET
33
41
  enable_post_logout_redirect: Union[Unset, bool] = UNSET
34
42
  enable_pkce: Union[Unset, bool] = UNSET
@@ -37,6 +45,10 @@ class PatchedIdentityProviderRequest:
37
45
  management_url: Union[Unset, str] = UNSET
38
46
  protected_fields: Union[Unset, Any] = UNSET
39
47
  extra_scope: Union[None, Unset, str] = UNSET
48
+ user_field: Union[Unset, str] = UNSET
49
+ user_claim: Union[Unset, str] = UNSET
50
+ attribute_mapping: Union[Unset, Any] = UNSET
51
+ extra_fields: Union[None, Unset, str] = UNSET
40
52
  additional_properties: dict[str, Any] = _attrs_field(init=False, factory=dict)
41
53
 
42
54
  def to_dict(self) -> dict[str, Any]:
@@ -46,6 +58,8 @@ class PatchedIdentityProviderRequest:
46
58
 
47
59
  client_id = self.client_id
48
60
 
61
+ client_secret = self.client_secret
62
+
49
63
  verify_ssl = self.verify_ssl
50
64
 
51
65
  enable_post_logout_redirect = self.enable_post_logout_redirect
@@ -66,6 +80,18 @@ class PatchedIdentityProviderRequest:
66
80
  else:
67
81
  extra_scope = self.extra_scope
68
82
 
83
+ user_field = self.user_field
84
+
85
+ user_claim = self.user_claim
86
+
87
+ attribute_mapping = self.attribute_mapping
88
+
89
+ extra_fields: Union[None, Unset, str]
90
+ if isinstance(self.extra_fields, Unset):
91
+ extra_fields = UNSET
92
+ else:
93
+ extra_fields = self.extra_fields
94
+
69
95
  field_dict: dict[str, Any] = {}
70
96
  field_dict.update(self.additional_properties)
71
97
  field_dict.update({})
@@ -75,6 +101,8 @@ class PatchedIdentityProviderRequest:
75
101
  field_dict["is_active"] = is_active
76
102
  if client_id is not UNSET:
77
103
  field_dict["client_id"] = client_id
104
+ if client_secret is not UNSET:
105
+ field_dict["client_secret"] = client_secret
78
106
  if verify_ssl is not UNSET:
79
107
  field_dict["verify_ssl"] = verify_ssl
80
108
  if enable_post_logout_redirect is not UNSET:
@@ -91,6 +119,14 @@ class PatchedIdentityProviderRequest:
91
119
  field_dict["protected_fields"] = protected_fields
92
120
  if extra_scope is not UNSET:
93
121
  field_dict["extra_scope"] = extra_scope
122
+ if user_field is not UNSET:
123
+ field_dict["user_field"] = user_field
124
+ if user_claim is not UNSET:
125
+ field_dict["user_claim"] = user_claim
126
+ if attribute_mapping is not UNSET:
127
+ field_dict["attribute_mapping"] = attribute_mapping
128
+ if extra_fields is not UNSET:
129
+ field_dict["extra_fields"] = extra_fields
94
130
 
95
131
  return field_dict
96
132
 
@@ -103,6 +139,8 @@ class PatchedIdentityProviderRequest:
103
139
 
104
140
  client_id = d.pop("client_id", UNSET)
105
141
 
142
+ client_secret = d.pop("client_secret", UNSET)
143
+
106
144
  verify_ssl = d.pop("verify_ssl", UNSET)
107
145
 
108
146
  enable_post_logout_redirect = d.pop("enable_post_logout_redirect", UNSET)
@@ -126,10 +164,26 @@ class PatchedIdentityProviderRequest:
126
164
 
127
165
  extra_scope = _parse_extra_scope(d.pop("extra_scope", UNSET))
128
166
 
167
+ user_field = d.pop("user_field", UNSET)
168
+
169
+ user_claim = d.pop("user_claim", UNSET)
170
+
171
+ attribute_mapping = d.pop("attribute_mapping", UNSET)
172
+
173
+ def _parse_extra_fields(data: object) -> Union[None, Unset, str]:
174
+ if data is None:
175
+ return data
176
+ if isinstance(data, Unset):
177
+ return data
178
+ return cast(Union[None, Unset, str], data)
179
+
180
+ extra_fields = _parse_extra_fields(d.pop("extra_fields", UNSET))
181
+
129
182
  patched_identity_provider_request = cls(
130
183
  provider=provider,
131
184
  is_active=is_active,
132
185
  client_id=client_id,
186
+ client_secret=client_secret,
133
187
  verify_ssl=verify_ssl,
134
188
  enable_post_logout_redirect=enable_post_logout_redirect,
135
189
  enable_pkce=enable_pkce,
@@ -138,6 +192,10 @@ class PatchedIdentityProviderRequest:
138
192
  management_url=management_url,
139
193
  protected_fields=protected_fields,
140
194
  extra_scope=extra_scope,
195
+ user_field=user_field,
196
+ user_claim=user_claim,
197
+ attribute_mapping=attribute_mapping,
198
+ extra_fields=extra_fields,
141
199
  )
142
200
 
143
201
  patched_identity_provider_request.additional_properties = d
@@ -21,6 +21,7 @@ class PatchedProjectRequest:
21
21
  """
22
22
  Attributes:
23
23
  name (Union[Unset, str]):
24
+ slug (Union[Unset, str]):
24
25
  customer (Union[Unset, str]):
25
26
  description (Union[Unset, str]):
26
27
  type_ (Union[None, Unset, str]):
@@ -35,6 +36,7 @@ class PatchedProjectRequest:
35
36
  """
36
37
 
37
38
  name: Union[Unset, str] = UNSET
39
+ slug: Union[Unset, str] = UNSET
38
40
  customer: Union[Unset, str] = UNSET
39
41
  description: Union[Unset, str] = UNSET
40
42
  type_: Union[None, Unset, str] = UNSET
@@ -50,6 +52,8 @@ class PatchedProjectRequest:
50
52
  def to_dict(self) -> dict[str, Any]:
51
53
  name = self.name
52
54
 
55
+ slug = self.slug
56
+
53
57
  customer = self.customer
54
58
 
55
59
  description = self.description
@@ -108,6 +112,8 @@ class PatchedProjectRequest:
108
112
  field_dict.update({})
109
113
  if name is not UNSET:
110
114
  field_dict["name"] = name
115
+ if slug is not UNSET:
116
+ field_dict["slug"] = slug
111
117
  if customer is not UNSET:
112
118
  field_dict["customer"] = customer
113
119
  if description is not UNSET:
@@ -136,6 +142,8 @@ class PatchedProjectRequest:
136
142
  d = dict(src_dict)
137
143
  name = d.pop("name", UNSET)
138
144
 
145
+ slug = d.pop("slug", UNSET)
146
+
139
147
  customer = d.pop("customer", UNSET)
140
148
 
141
149
  description = d.pop("description", UNSET)
@@ -238,6 +246,7 @@ class PatchedProjectRequest:
238
246
 
239
247
  patched_project_request = cls(
240
248
  name=name,
249
+ slug=slug,
241
250
  customer=customer,
242
251
  description=description,
243
252
  type_=type_,
@@ -14,6 +14,7 @@ T = TypeVar("T", bound="PatchedProtectedCallRequest")
14
14
  class PatchedProtectedCallRequest:
15
15
  """
16
16
  Attributes:
17
+ slug (Union[Unset, str]):
17
18
  name (Union[Unset, str]):
18
19
  description (Union[Unset, str]):
19
20
  fixed_duration_in_days (Union[None, Unset, int]):
@@ -29,6 +30,7 @@ class PatchedProtectedCallRequest:
29
30
  submission
30
31
  """
31
32
 
33
+ slug: Union[Unset, str] = UNSET
32
34
  name: Union[Unset, str] = UNSET
33
35
  description: Union[Unset, str] = UNSET
34
36
  fixed_duration_in_days: Union[None, Unset, int] = UNSET
@@ -42,6 +44,8 @@ class PatchedProtectedCallRequest:
42
44
  additional_properties: dict[str, Any] = _attrs_field(init=False, factory=dict)
43
45
 
44
46
  def to_dict(self) -> dict[str, Any]:
47
+ slug = self.slug
48
+
45
49
  name = self.name
46
50
 
47
51
  description = self.description
@@ -83,6 +87,8 @@ class PatchedProtectedCallRequest:
83
87
  field_dict: dict[str, Any] = {}
84
88
  field_dict.update(self.additional_properties)
85
89
  field_dict.update({})
90
+ if slug is not UNSET:
91
+ field_dict["slug"] = slug
86
92
  if name is not UNSET:
87
93
  field_dict["name"] = name
88
94
  if description is not UNSET:
@@ -109,6 +115,8 @@ class PatchedProtectedCallRequest:
109
115
  @classmethod
110
116
  def from_dict(cls: type[T], src_dict: Mapping[str, Any]) -> T:
111
117
  d = dict(src_dict)
118
+ slug = d.pop("slug", UNSET)
119
+
112
120
  name = d.pop("name", UNSET)
113
121
 
114
122
  description = d.pop("description", UNSET)
@@ -166,6 +174,7 @@ class PatchedProtectedCallRequest:
166
174
  compliance_checklist = _parse_compliance_checklist(d.pop("compliance_checklist", UNSET))
167
175
 
168
176
  patched_protected_call_request = cls(
177
+ slug=slug,
169
178
  name=name,
170
179
  description=description,
171
180
  fixed_duration_in_days=fixed_duration_in_days,
@@ -25,7 +25,7 @@ class PatchedProtectedRoundRequest:
25
25
  allocation_time (Union[Unset, AllocationTimeEnum]):
26
26
  allocation_date (Union[None, Unset, datetime.datetime]):
27
27
  minimal_average_scoring (Union[None, Unset, str]):
28
- review_duration_in_days (Union[Unset, int]): Default: 7.
28
+ review_duration_in_days (Union[Unset, int]):
29
29
  minimum_number_of_reviewers (Union[None, Unset, int]):
30
30
  """
31
31
 
@@ -36,7 +36,7 @@ class PatchedProtectedRoundRequest:
36
36
  allocation_time: Union[Unset, AllocationTimeEnum] = UNSET
37
37
  allocation_date: Union[None, Unset, datetime.datetime] = UNSET
38
38
  minimal_average_scoring: Union[None, Unset, str] = UNSET
39
- review_duration_in_days: Union[Unset, int] = 7
39
+ review_duration_in_days: Union[Unset, int] = UNSET
40
40
  minimum_number_of_reviewers: Union[None, Unset, int] = UNSET
41
41
  additional_properties: dict[str, Any] = _attrs_field(init=False, factory=dict)
42
42
 
@@ -16,16 +16,20 @@ class PatchedServiceProviderRequest:
16
16
  """
17
17
  Attributes:
18
18
  description (Union[Unset, str]):
19
+ enable_notifications (Union[Unset, bool]):
19
20
  image (Union[File, None, Unset]):
20
21
  """
21
22
 
22
23
  description: Union[Unset, str] = UNSET
24
+ enable_notifications: Union[Unset, bool] = UNSET
23
25
  image: Union[File, None, Unset] = UNSET
24
26
  additional_properties: dict[str, Any] = _attrs_field(init=False, factory=dict)
25
27
 
26
28
  def to_dict(self) -> dict[str, Any]:
27
29
  description = self.description
28
30
 
31
+ enable_notifications = self.enable_notifications
32
+
29
33
  image: Union[None, Unset, types.FileTypes]
30
34
  if isinstance(self.image, Unset):
31
35
  image = UNSET
@@ -40,6 +44,8 @@ class PatchedServiceProviderRequest:
40
44
  field_dict.update({})
41
45
  if description is not UNSET:
42
46
  field_dict["description"] = description
47
+ if enable_notifications is not UNSET:
48
+ field_dict["enable_notifications"] = enable_notifications
43
49
  if image is not UNSET:
44
50
  field_dict["image"] = image
45
51
 
@@ -50,6 +56,8 @@ class PatchedServiceProviderRequest:
50
56
  d = dict(src_dict)
51
57
  description = d.pop("description", UNSET)
52
58
 
59
+ enable_notifications = d.pop("enable_notifications", UNSET)
60
+
53
61
  def _parse_image(data: object) -> Union[File, None, Unset]:
54
62
  if data is None:
55
63
  return data
@@ -69,6 +77,7 @@ class PatchedServiceProviderRequest:
69
77
 
70
78
  patched_service_provider_request = cls(
71
79
  description=description,
80
+ enable_notifications=enable_notifications,
72
81
  image=image,
73
82
  )
74
83
 
@@ -17,6 +17,7 @@ class PatchedUserRequest:
17
17
  Attributes:
18
18
  username (Union[Unset, str]): Required. 128 characters or fewer. Lowercase letters, numbers and @/./+/-/_
19
19
  characters
20
+ slug (Union[Unset, str]):
20
21
  native_name (Union[Unset, str]):
21
22
  job_title (Union[Unset, str]):
22
23
  phone_number (Union[Unset, str]):
@@ -37,6 +38,7 @@ class PatchedUserRequest:
37
38
  """
38
39
 
39
40
  username: Union[Unset, str] = UNSET
41
+ slug: Union[Unset, str] = UNSET
40
42
  native_name: Union[Unset, str] = UNSET
41
43
  job_title: Union[Unset, str] = UNSET
42
44
  phone_number: Union[Unset, str] = UNSET
@@ -57,6 +59,8 @@ class PatchedUserRequest:
57
59
  def to_dict(self) -> dict[str, Any]:
58
60
  username = self.username
59
61
 
62
+ slug = self.slug
63
+
60
64
  native_name = self.native_name
61
65
 
62
66
  job_title = self.job_title
@@ -103,6 +107,8 @@ class PatchedUserRequest:
103
107
  field_dict.update({})
104
108
  if username is not UNSET:
105
109
  field_dict["username"] = username
110
+ if slug is not UNSET:
111
+ field_dict["slug"] = slug
106
112
  if native_name is not UNSET:
107
113
  field_dict["native_name"] = native_name
108
114
  if job_title is not UNSET:
@@ -141,6 +147,8 @@ class PatchedUserRequest:
141
147
  d = dict(src_dict)
142
148
  username = d.pop("username", UNSET)
143
149
 
150
+ slug = d.pop("slug", UNSET)
151
+
144
152
  native_name = d.pop("native_name", UNSET)
145
153
 
146
154
  job_title = d.pop("job_title", UNSET)
@@ -195,6 +203,7 @@ class PatchedUserRequest:
195
203
 
196
204
  patched_user_request = cls(
197
205
  username=username,
206
+ slug=slug,
198
207
  native_name=native_name,
199
208
  job_title=job_title,
200
209
  phone_number=phone_number,