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.
- waldur_api_client/api/marketplace_course_accounts/marketplace_course_accounts_count.py +96 -0
- waldur_api_client/api/marketplace_course_accounts/marketplace_course_accounts_list.py +96 -0
- waldur_api_client/api/marketplace_offering_user_checklist_completions/__init__.py +1 -0
- waldur_api_client/api/marketplace_offering_user_checklist_completions/marketplace_offering_user_checklist_completions_count.py +286 -0
- waldur_api_client/api/marketplace_offering_user_checklist_completions/marketplace_offering_user_checklist_completions_list.py +289 -0
- waldur_api_client/api/marketplace_offering_user_checklist_completions/marketplace_offering_user_checklist_completions_retrieve.py +141 -0
- waldur_api_client/api/marketplace_provider_offerings/marketplace_provider_offerings_list_course_accounts_retrieve.py +177 -0
- waldur_api_client/api/marketplace_provider_offerings/marketplace_provider_offerings_refresh_offering_usernames.py +0 -22
- waldur_api_client/api/marketplace_provider_offerings/marketplace_provider_offerings_update_compliance_checklist.py +105 -0
- waldur_api_client/api/marketplace_service_providers/marketplace_service_providers_course_accounts_list.py +98 -0
- waldur_api_client/api/user_invitations/user_invitations_count.py +15 -0
- waldur_api_client/api/user_invitations/user_invitations_list.py +15 -0
- waldur_api_client/models/__init__.py +26 -2
- waldur_api_client/models/booking_resource.py +18 -0
- waldur_api_client/models/booking_resources_list_field_item.py +2 -0
- waldur_api_client/models/booking_resources_retrieve_field_item.py +2 -0
- waldur_api_client/models/course_account.py +24 -0
- waldur_api_client/models/group_invitation.py +8 -0
- waldur_api_client/models/invitation.py +8 -0
- waldur_api_client/models/managed_rancher_cluster_resources_list_field_item.py +2 -0
- waldur_api_client/models/managed_rancher_cluster_resources_retrieve_field_item.py +2 -0
- waldur_api_client/models/marketplace_course_accounts_count_o_item.py +23 -0
- waldur_api_client/models/marketplace_course_accounts_list_o_item.py +23 -0
- waldur_api_client/models/marketplace_offering_user_checklist_completions_count_o_item.py +11 -0
- waldur_api_client/models/marketplace_offering_user_checklist_completions_list_o_item.py +11 -0
- waldur_api_client/models/marketplace_orders_list_field_item.py +3 -0
- waldur_api_client/models/marketplace_orders_retrieve_field_item.py +3 -0
- waldur_api_client/models/marketplace_provider_offerings_list_course_accounts_retrieve_field_item.py +72 -0
- waldur_api_client/models/marketplace_provider_resources_details_retrieve_field_item.py +2 -0
- waldur_api_client/models/marketplace_provider_resources_list_field_item.py +2 -0
- waldur_api_client/models/marketplace_provider_resources_retrieve_field_item.py +2 -0
- waldur_api_client/models/marketplace_resources_details_retrieve_field_item.py +2 -0
- waldur_api_client/models/marketplace_resources_list_field_item.py +2 -0
- waldur_api_client/models/marketplace_resources_retrieve_field_item.py +2 -0
- waldur_api_client/models/marketplace_service_providers_course_accounts_list_o_item.py +23 -0
- waldur_api_client/models/merged_plugin_options.py +9 -0
- waldur_api_client/models/merged_plugin_options_request.py +9 -0
- waldur_api_client/models/notification.py +11 -0
- waldur_api_client/models/notification_context_fields.py +47 -0
- waldur_api_client/models/offering_compliance_checklist_update_request.py +82 -0
- waldur_api_client/models/order_details.py +34 -0
- waldur_api_client/models/resource.py +18 -0
- waldur_api_client/models/resource_update_limits_request.py +1 -34
- waldur_api_client/models/user_checklist_completion.py +265 -0
- waldur_api_client/models/visible_invitation_details.py +8 -0
- {waldur_api_client-7.8.0.dist-info → waldur_api_client-7.8.1.dist-info}/METADATA +1 -1
- {waldur_api_client-7.8.0.dist-info → waldur_api_client-7.8.1.dist-info}/RECORD +49 -35
- {waldur_api_client-7.8.0.dist-info → waldur_api_client-7.8.1.dist-info}/WHEEL +1 -1
- waldur_api_client/models/provider_offering_details_request.py +0 -407
- {waldur_api_client-7.8.0.dist-info → waldur_api_client-7.8.1.dist-info}/licenses/LICENSE +0 -0
|
@@ -1,12 +1,10 @@
|
|
|
1
1
|
from collections.abc import Mapping
|
|
2
|
-
from io import BytesIO
|
|
3
2
|
from typing import TYPE_CHECKING, Any, TypeVar, Union, cast
|
|
4
3
|
|
|
5
4
|
from attrs import define as _attrs_define
|
|
6
5
|
from attrs import field as _attrs_field
|
|
7
6
|
|
|
8
|
-
from .. import
|
|
9
|
-
from ..types import UNSET, File, Unset
|
|
7
|
+
from ..types import UNSET, Unset
|
|
10
8
|
|
|
11
9
|
if TYPE_CHECKING:
|
|
12
10
|
from ..models.resource_update_limits_request_limits import ResourceUpdateLimitsRequestLimits
|
|
@@ -21,12 +19,10 @@ class ResourceUpdateLimitsRequest:
|
|
|
21
19
|
Attributes:
|
|
22
20
|
limits (ResourceUpdateLimitsRequestLimits):
|
|
23
21
|
request_comment (Union[None, Unset, str]):
|
|
24
|
-
attachment (Union[File, None, Unset]):
|
|
25
22
|
"""
|
|
26
23
|
|
|
27
24
|
limits: "ResourceUpdateLimitsRequestLimits"
|
|
28
25
|
request_comment: Union[None, Unset, str] = UNSET
|
|
29
|
-
attachment: Union[File, None, Unset] = UNSET
|
|
30
26
|
additional_properties: dict[str, Any] = _attrs_field(init=False, factory=dict)
|
|
31
27
|
|
|
32
28
|
def to_dict(self) -> dict[str, Any]:
|
|
@@ -38,15 +34,6 @@ class ResourceUpdateLimitsRequest:
|
|
|
38
34
|
else:
|
|
39
35
|
request_comment = self.request_comment
|
|
40
36
|
|
|
41
|
-
attachment: Union[None, Unset, types.FileTypes]
|
|
42
|
-
if isinstance(self.attachment, Unset):
|
|
43
|
-
attachment = UNSET
|
|
44
|
-
elif isinstance(self.attachment, File):
|
|
45
|
-
attachment = self.attachment.to_tuple()
|
|
46
|
-
|
|
47
|
-
else:
|
|
48
|
-
attachment = self.attachment
|
|
49
|
-
|
|
50
37
|
field_dict: dict[str, Any] = {}
|
|
51
38
|
field_dict.update(self.additional_properties)
|
|
52
39
|
field_dict.update(
|
|
@@ -56,8 +43,6 @@ class ResourceUpdateLimitsRequest:
|
|
|
56
43
|
)
|
|
57
44
|
if request_comment is not UNSET:
|
|
58
45
|
field_dict["request_comment"] = request_comment
|
|
59
|
-
if attachment is not UNSET:
|
|
60
|
-
field_dict["attachment"] = attachment
|
|
61
46
|
|
|
62
47
|
return field_dict
|
|
63
48
|
|
|
@@ -77,27 +62,9 @@ class ResourceUpdateLimitsRequest:
|
|
|
77
62
|
|
|
78
63
|
request_comment = _parse_request_comment(d.pop("request_comment", UNSET))
|
|
79
64
|
|
|
80
|
-
def _parse_attachment(data: object) -> Union[File, None, Unset]:
|
|
81
|
-
if data is None:
|
|
82
|
-
return data
|
|
83
|
-
if isinstance(data, Unset):
|
|
84
|
-
return data
|
|
85
|
-
try:
|
|
86
|
-
if not isinstance(data, bytes):
|
|
87
|
-
raise TypeError()
|
|
88
|
-
attachment_type_0 = File(payload=BytesIO(data))
|
|
89
|
-
|
|
90
|
-
return attachment_type_0
|
|
91
|
-
except: # noqa: E722
|
|
92
|
-
pass
|
|
93
|
-
return cast(Union[File, None, Unset], data)
|
|
94
|
-
|
|
95
|
-
attachment = _parse_attachment(d.pop("attachment", UNSET))
|
|
96
|
-
|
|
97
65
|
resource_update_limits_request = cls(
|
|
98
66
|
limits=limits,
|
|
99
67
|
request_comment=request_comment,
|
|
100
|
-
attachment=attachment,
|
|
101
68
|
)
|
|
102
69
|
|
|
103
70
|
resource_update_limits_request.additional_properties = d
|
|
@@ -0,0 +1,265 @@
|
|
|
1
|
+
import datetime
|
|
2
|
+
from collections.abc import Mapping
|
|
3
|
+
from typing import TYPE_CHECKING, Any, TypeVar, Union, cast
|
|
4
|
+
from uuid import UUID
|
|
5
|
+
|
|
6
|
+
from attrs import define as _attrs_define
|
|
7
|
+
from attrs import field as _attrs_field
|
|
8
|
+
from dateutil.parser import isoparse
|
|
9
|
+
|
|
10
|
+
if TYPE_CHECKING:
|
|
11
|
+
from ..models.offering_user import OfferingUser
|
|
12
|
+
|
|
13
|
+
|
|
14
|
+
T = TypeVar("T", bound="UserChecklistCompletion")
|
|
15
|
+
|
|
16
|
+
|
|
17
|
+
@_attrs_define
|
|
18
|
+
class UserChecklistCompletion:
|
|
19
|
+
"""
|
|
20
|
+
Attributes:
|
|
21
|
+
uuid (UUID):
|
|
22
|
+
offering_user (OfferingUser):
|
|
23
|
+
offering_user_uuid (Union[None, str]):
|
|
24
|
+
offering_name (Union[None, str]):
|
|
25
|
+
offering_uuid (Union[None, str]):
|
|
26
|
+
customer_provider_uuid (Union[None, str]):
|
|
27
|
+
customer_provider_name (Union[None, str]):
|
|
28
|
+
checklist_uuid (str):
|
|
29
|
+
checklist_name (str):
|
|
30
|
+
checklist_description (str):
|
|
31
|
+
is_completed (bool): Whether all required questions have been answered
|
|
32
|
+
completion_percentage (float):
|
|
33
|
+
unanswered_required_questions (int):
|
|
34
|
+
requires_review (bool): Whether any answers triggered review requirements
|
|
35
|
+
reviewed_by (Union[None, int]): User who reviewed the checklist completion
|
|
36
|
+
reviewed_at (Union[None, datetime.datetime]):
|
|
37
|
+
review_notes (str): Notes from the reviewer
|
|
38
|
+
created (datetime.datetime):
|
|
39
|
+
modified (datetime.datetime):
|
|
40
|
+
"""
|
|
41
|
+
|
|
42
|
+
uuid: UUID
|
|
43
|
+
offering_user: "OfferingUser"
|
|
44
|
+
offering_user_uuid: Union[None, str]
|
|
45
|
+
offering_name: Union[None, str]
|
|
46
|
+
offering_uuid: Union[None, str]
|
|
47
|
+
customer_provider_uuid: Union[None, str]
|
|
48
|
+
customer_provider_name: Union[None, str]
|
|
49
|
+
checklist_uuid: str
|
|
50
|
+
checklist_name: str
|
|
51
|
+
checklist_description: str
|
|
52
|
+
is_completed: bool
|
|
53
|
+
completion_percentage: float
|
|
54
|
+
unanswered_required_questions: int
|
|
55
|
+
requires_review: bool
|
|
56
|
+
reviewed_by: Union[None, int]
|
|
57
|
+
reviewed_at: Union[None, datetime.datetime]
|
|
58
|
+
review_notes: str
|
|
59
|
+
created: datetime.datetime
|
|
60
|
+
modified: datetime.datetime
|
|
61
|
+
additional_properties: dict[str, Any] = _attrs_field(init=False, factory=dict)
|
|
62
|
+
|
|
63
|
+
def to_dict(self) -> dict[str, Any]:
|
|
64
|
+
uuid = str(self.uuid)
|
|
65
|
+
|
|
66
|
+
offering_user = self.offering_user.to_dict()
|
|
67
|
+
|
|
68
|
+
offering_user_uuid: Union[None, str]
|
|
69
|
+
offering_user_uuid = self.offering_user_uuid
|
|
70
|
+
|
|
71
|
+
offering_name: Union[None, str]
|
|
72
|
+
offering_name = self.offering_name
|
|
73
|
+
|
|
74
|
+
offering_uuid: Union[None, str]
|
|
75
|
+
offering_uuid = self.offering_uuid
|
|
76
|
+
|
|
77
|
+
customer_provider_uuid: Union[None, str]
|
|
78
|
+
customer_provider_uuid = self.customer_provider_uuid
|
|
79
|
+
|
|
80
|
+
customer_provider_name: Union[None, str]
|
|
81
|
+
customer_provider_name = self.customer_provider_name
|
|
82
|
+
|
|
83
|
+
checklist_uuid = self.checklist_uuid
|
|
84
|
+
|
|
85
|
+
checklist_name = self.checklist_name
|
|
86
|
+
|
|
87
|
+
checklist_description = self.checklist_description
|
|
88
|
+
|
|
89
|
+
is_completed = self.is_completed
|
|
90
|
+
|
|
91
|
+
completion_percentage = self.completion_percentage
|
|
92
|
+
|
|
93
|
+
unanswered_required_questions = self.unanswered_required_questions
|
|
94
|
+
|
|
95
|
+
requires_review = self.requires_review
|
|
96
|
+
|
|
97
|
+
reviewed_by: Union[None, int]
|
|
98
|
+
reviewed_by = self.reviewed_by
|
|
99
|
+
|
|
100
|
+
reviewed_at: Union[None, str]
|
|
101
|
+
if isinstance(self.reviewed_at, datetime.datetime):
|
|
102
|
+
reviewed_at = self.reviewed_at.isoformat()
|
|
103
|
+
else:
|
|
104
|
+
reviewed_at = self.reviewed_at
|
|
105
|
+
|
|
106
|
+
review_notes = self.review_notes
|
|
107
|
+
|
|
108
|
+
created = self.created.isoformat()
|
|
109
|
+
|
|
110
|
+
modified = self.modified.isoformat()
|
|
111
|
+
|
|
112
|
+
field_dict: dict[str, Any] = {}
|
|
113
|
+
field_dict.update(self.additional_properties)
|
|
114
|
+
field_dict.update(
|
|
115
|
+
{
|
|
116
|
+
"uuid": uuid,
|
|
117
|
+
"offering_user": offering_user,
|
|
118
|
+
"offering_user_uuid": offering_user_uuid,
|
|
119
|
+
"offering_name": offering_name,
|
|
120
|
+
"offering_uuid": offering_uuid,
|
|
121
|
+
"customer_provider_uuid": customer_provider_uuid,
|
|
122
|
+
"customer_provider_name": customer_provider_name,
|
|
123
|
+
"checklist_uuid": checklist_uuid,
|
|
124
|
+
"checklist_name": checklist_name,
|
|
125
|
+
"checklist_description": checklist_description,
|
|
126
|
+
"is_completed": is_completed,
|
|
127
|
+
"completion_percentage": completion_percentage,
|
|
128
|
+
"unanswered_required_questions": unanswered_required_questions,
|
|
129
|
+
"requires_review": requires_review,
|
|
130
|
+
"reviewed_by": reviewed_by,
|
|
131
|
+
"reviewed_at": reviewed_at,
|
|
132
|
+
"review_notes": review_notes,
|
|
133
|
+
"created": created,
|
|
134
|
+
"modified": modified,
|
|
135
|
+
}
|
|
136
|
+
)
|
|
137
|
+
|
|
138
|
+
return field_dict
|
|
139
|
+
|
|
140
|
+
@classmethod
|
|
141
|
+
def from_dict(cls: type[T], src_dict: Mapping[str, Any]) -> T:
|
|
142
|
+
from ..models.offering_user import OfferingUser
|
|
143
|
+
|
|
144
|
+
d = dict(src_dict)
|
|
145
|
+
uuid = UUID(d.pop("uuid"))
|
|
146
|
+
|
|
147
|
+
offering_user = OfferingUser.from_dict(d.pop("offering_user"))
|
|
148
|
+
|
|
149
|
+
def _parse_offering_user_uuid(data: object) -> Union[None, str]:
|
|
150
|
+
if data is None:
|
|
151
|
+
return data
|
|
152
|
+
return cast(Union[None, str], data)
|
|
153
|
+
|
|
154
|
+
offering_user_uuid = _parse_offering_user_uuid(d.pop("offering_user_uuid"))
|
|
155
|
+
|
|
156
|
+
def _parse_offering_name(data: object) -> Union[None, str]:
|
|
157
|
+
if data is None:
|
|
158
|
+
return data
|
|
159
|
+
return cast(Union[None, str], data)
|
|
160
|
+
|
|
161
|
+
offering_name = _parse_offering_name(d.pop("offering_name"))
|
|
162
|
+
|
|
163
|
+
def _parse_offering_uuid(data: object) -> Union[None, str]:
|
|
164
|
+
if data is None:
|
|
165
|
+
return data
|
|
166
|
+
return cast(Union[None, str], data)
|
|
167
|
+
|
|
168
|
+
offering_uuid = _parse_offering_uuid(d.pop("offering_uuid"))
|
|
169
|
+
|
|
170
|
+
def _parse_customer_provider_uuid(data: object) -> Union[None, str]:
|
|
171
|
+
if data is None:
|
|
172
|
+
return data
|
|
173
|
+
return cast(Union[None, str], data)
|
|
174
|
+
|
|
175
|
+
customer_provider_uuid = _parse_customer_provider_uuid(d.pop("customer_provider_uuid"))
|
|
176
|
+
|
|
177
|
+
def _parse_customer_provider_name(data: object) -> Union[None, str]:
|
|
178
|
+
if data is None:
|
|
179
|
+
return data
|
|
180
|
+
return cast(Union[None, str], data)
|
|
181
|
+
|
|
182
|
+
customer_provider_name = _parse_customer_provider_name(d.pop("customer_provider_name"))
|
|
183
|
+
|
|
184
|
+
checklist_uuid = d.pop("checklist_uuid")
|
|
185
|
+
|
|
186
|
+
checklist_name = d.pop("checklist_name")
|
|
187
|
+
|
|
188
|
+
checklist_description = d.pop("checklist_description")
|
|
189
|
+
|
|
190
|
+
is_completed = d.pop("is_completed")
|
|
191
|
+
|
|
192
|
+
completion_percentage = d.pop("completion_percentage")
|
|
193
|
+
|
|
194
|
+
unanswered_required_questions = d.pop("unanswered_required_questions")
|
|
195
|
+
|
|
196
|
+
requires_review = d.pop("requires_review")
|
|
197
|
+
|
|
198
|
+
def _parse_reviewed_by(data: object) -> Union[None, int]:
|
|
199
|
+
if data is None:
|
|
200
|
+
return data
|
|
201
|
+
return cast(Union[None, int], data)
|
|
202
|
+
|
|
203
|
+
reviewed_by = _parse_reviewed_by(d.pop("reviewed_by"))
|
|
204
|
+
|
|
205
|
+
def _parse_reviewed_at(data: object) -> Union[None, datetime.datetime]:
|
|
206
|
+
if data is None:
|
|
207
|
+
return data
|
|
208
|
+
try:
|
|
209
|
+
if not isinstance(data, str):
|
|
210
|
+
raise TypeError()
|
|
211
|
+
reviewed_at_type_0 = isoparse(data)
|
|
212
|
+
|
|
213
|
+
return reviewed_at_type_0
|
|
214
|
+
except: # noqa: E722
|
|
215
|
+
pass
|
|
216
|
+
return cast(Union[None, datetime.datetime], data)
|
|
217
|
+
|
|
218
|
+
reviewed_at = _parse_reviewed_at(d.pop("reviewed_at"))
|
|
219
|
+
|
|
220
|
+
review_notes = d.pop("review_notes")
|
|
221
|
+
|
|
222
|
+
created = isoparse(d.pop("created"))
|
|
223
|
+
|
|
224
|
+
modified = isoparse(d.pop("modified"))
|
|
225
|
+
|
|
226
|
+
user_checklist_completion = cls(
|
|
227
|
+
uuid=uuid,
|
|
228
|
+
offering_user=offering_user,
|
|
229
|
+
offering_user_uuid=offering_user_uuid,
|
|
230
|
+
offering_name=offering_name,
|
|
231
|
+
offering_uuid=offering_uuid,
|
|
232
|
+
customer_provider_uuid=customer_provider_uuid,
|
|
233
|
+
customer_provider_name=customer_provider_name,
|
|
234
|
+
checklist_uuid=checklist_uuid,
|
|
235
|
+
checklist_name=checklist_name,
|
|
236
|
+
checklist_description=checklist_description,
|
|
237
|
+
is_completed=is_completed,
|
|
238
|
+
completion_percentage=completion_percentage,
|
|
239
|
+
unanswered_required_questions=unanswered_required_questions,
|
|
240
|
+
requires_review=requires_review,
|
|
241
|
+
reviewed_by=reviewed_by,
|
|
242
|
+
reviewed_at=reviewed_at,
|
|
243
|
+
review_notes=review_notes,
|
|
244
|
+
created=created,
|
|
245
|
+
modified=modified,
|
|
246
|
+
)
|
|
247
|
+
|
|
248
|
+
user_checklist_completion.additional_properties = d
|
|
249
|
+
return user_checklist_completion
|
|
250
|
+
|
|
251
|
+
@property
|
|
252
|
+
def additional_keys(self) -> list[str]:
|
|
253
|
+
return list(self.additional_properties.keys())
|
|
254
|
+
|
|
255
|
+
def __getitem__(self, key: str) -> Any:
|
|
256
|
+
return self.additional_properties[key]
|
|
257
|
+
|
|
258
|
+
def __setitem__(self, key: str, value: Any) -> None:
|
|
259
|
+
self.additional_properties[key] = value
|
|
260
|
+
|
|
261
|
+
def __delitem__(self, key: str) -> None:
|
|
262
|
+
del self.additional_properties[key]
|
|
263
|
+
|
|
264
|
+
def __contains__(self, key: str) -> bool:
|
|
265
|
+
return key in self.additional_properties
|
|
@@ -26,6 +26,7 @@ class VisibleInvitationDetails:
|
|
|
26
26
|
role_description (str):
|
|
27
27
|
created_by_full_name (str):
|
|
28
28
|
created_by_username (str):
|
|
29
|
+
created_by_image (str):
|
|
29
30
|
email (str): Invitation link will be sent to this email. Note that user can accept invitation with different
|
|
30
31
|
email.
|
|
31
32
|
error_message (str):
|
|
@@ -43,6 +44,7 @@ class VisibleInvitationDetails:
|
|
|
43
44
|
role_description: str
|
|
44
45
|
created_by_full_name: str
|
|
45
46
|
created_by_username: str
|
|
47
|
+
created_by_image: str
|
|
46
48
|
email: str
|
|
47
49
|
error_message: str
|
|
48
50
|
execution_state: ExecutionStateEnum
|
|
@@ -71,6 +73,8 @@ class VisibleInvitationDetails:
|
|
|
71
73
|
|
|
72
74
|
created_by_username = self.created_by_username
|
|
73
75
|
|
|
76
|
+
created_by_image = self.created_by_image
|
|
77
|
+
|
|
74
78
|
email = self.email
|
|
75
79
|
|
|
76
80
|
error_message = self.error_message
|
|
@@ -93,6 +97,7 @@ class VisibleInvitationDetails:
|
|
|
93
97
|
"role_description": role_description,
|
|
94
98
|
"created_by_full_name": created_by_full_name,
|
|
95
99
|
"created_by_username": created_by_username,
|
|
100
|
+
"created_by_image": created_by_image,
|
|
96
101
|
"email": email,
|
|
97
102
|
"error_message": error_message,
|
|
98
103
|
"execution_state": execution_state,
|
|
@@ -130,6 +135,8 @@ class VisibleInvitationDetails:
|
|
|
130
135
|
|
|
131
136
|
created_by_username = d.pop("created_by_username")
|
|
132
137
|
|
|
138
|
+
created_by_image = d.pop("created_by_image")
|
|
139
|
+
|
|
133
140
|
email = d.pop("email")
|
|
134
141
|
|
|
135
142
|
error_message = d.pop("error_message")
|
|
@@ -149,6 +156,7 @@ class VisibleInvitationDetails:
|
|
|
149
156
|
role_description=role_description,
|
|
150
157
|
created_by_full_name=created_by_full_name,
|
|
151
158
|
created_by_username=created_by_username,
|
|
159
|
+
created_by_image=created_by_image,
|
|
152
160
|
email=email,
|
|
153
161
|
error_message=error_message,
|
|
154
162
|
execution_state=execution_state,
|