robosystems-client 0.2.11__py3-none-any.whl → 0.2.12__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 robosystems-client might be problematic. Click here for more details.

Files changed (61) hide show
  1. robosystems_client/api/auth/register_user.py +36 -8
  2. robosystems_client/api/billing/{cancel_subscription.py → cancel_org_subscription.py} +34 -9
  3. robosystems_client/api/billing/create_checkout_session.py +28 -20
  4. robosystems_client/api/billing/get_org_billing_customer.py +189 -0
  5. robosystems_client/api/billing/{get_subscription.py → get_org_subscription.py} +30 -5
  6. robosystems_client/api/billing/{get_upcoming_invoice.py → get_org_upcoming_invoice.py} +68 -22
  7. robosystems_client/api/billing/{list_invoices.py → list_org_invoices.py} +38 -9
  8. robosystems_client/api/billing/{list_subscriptions.py → list_org_subscriptions.py} +64 -22
  9. robosystems_client/api/billing/{update_payment_method.py → update_org_payment_method.py} +34 -9
  10. robosystems_client/api/org/__init__.py +1 -0
  11. robosystems_client/api/org/create_org.py +174 -0
  12. robosystems_client/api/{billing/get_billing_customer.py → org/get_org.py} +50 -28
  13. robosystems_client/api/org/list_org_graphs.py +170 -0
  14. robosystems_client/api/{user/get_user_limits.py → org/list_user_orgs.py} +21 -25
  15. robosystems_client/api/org/update_org.py +187 -0
  16. robosystems_client/api/org_members/__init__.py +1 -0
  17. robosystems_client/api/org_members/invite_org_member.py +207 -0
  18. robosystems_client/api/org_members/list_org_members.py +165 -0
  19. robosystems_client/api/org_members/remove_org_member.py +176 -0
  20. robosystems_client/api/org_members/update_org_member_role.py +200 -0
  21. robosystems_client/api/org_usage/__init__.py +1 -0
  22. robosystems_client/api/org_usage/get_org_limits.py +165 -0
  23. robosystems_client/api/org_usage/get_org_usage.py +186 -0
  24. robosystems_client/api/service_offerings/get_service_offerings.py +32 -8
  25. robosystems_client/api/usage/get_graph_usage_analytics.py +4 -4
  26. robosystems_client/models/__init__.py +44 -6
  27. robosystems_client/models/auth_response.py +35 -0
  28. robosystems_client/models/{user_usage_response_graphs.py → auth_response_org_type_0.py} +6 -6
  29. robosystems_client/models/billing_customer.py +8 -8
  30. robosystems_client/models/checkout_response.py +65 -22
  31. robosystems_client/models/create_org_request.py +79 -0
  32. robosystems_client/models/graph_subscription_tier.py +40 -48
  33. robosystems_client/models/graph_subscriptions.py +17 -5
  34. robosystems_client/models/invite_member_request.py +93 -0
  35. robosystems_client/models/list_org_graphs_response_200_item.py +44 -0
  36. robosystems_client/models/org_detail_response.py +174 -0
  37. robosystems_client/models/org_detail_response_graphs_item.py +44 -0
  38. robosystems_client/models/org_detail_response_limits_type_0.py +44 -0
  39. robosystems_client/models/org_detail_response_members_item.py +44 -0
  40. robosystems_client/models/org_limits_response.py +98 -0
  41. robosystems_client/models/org_limits_response_current_usage.py +44 -0
  42. robosystems_client/models/org_list_response.py +82 -0
  43. robosystems_client/models/org_member_list_response.py +90 -0
  44. robosystems_client/models/org_member_response.py +104 -0
  45. robosystems_client/models/org_response.py +121 -0
  46. robosystems_client/models/org_role.py +10 -0
  47. robosystems_client/models/org_type.py +10 -0
  48. robosystems_client/models/org_usage_response.py +146 -0
  49. robosystems_client/models/org_usage_response_daily_trend_item.py +44 -0
  50. robosystems_client/models/org_usage_response_graph_details_item.py +44 -0
  51. robosystems_client/models/org_usage_summary.py +158 -0
  52. robosystems_client/models/repository_subscriptions.py +15 -4
  53. robosystems_client/models/service_offerings_response.py +15 -0
  54. robosystems_client/models/update_member_role_request.py +62 -0
  55. robosystems_client/models/update_org_request.py +103 -0
  56. {robosystems_client-0.2.11.dist-info → robosystems_client-0.2.12.dist-info}/METADATA +1 -1
  57. {robosystems_client-0.2.11.dist-info → robosystems_client-0.2.12.dist-info}/RECORD +59 -27
  58. robosystems_client/models/user_limits_response.py +0 -95
  59. robosystems_client/models/user_usage_response.py +0 -90
  60. {robosystems_client-0.2.11.dist-info → robosystems_client-0.2.12.dist-info}/WHEEL +0 -0
  61. {robosystems_client-0.2.11.dist-info → robosystems_client-0.2.12.dist-info}/licenses/LICENSE +0 -0
@@ -0,0 +1,174 @@
1
+ import datetime
2
+ from collections.abc import Mapping
3
+ from typing import TYPE_CHECKING, Any, TypeVar, Union, cast
4
+
5
+ from attrs import define as _attrs_define
6
+ from attrs import field as _attrs_field
7
+ from dateutil.parser import isoparse
8
+
9
+ from ..models.org_role import OrgRole
10
+ from ..models.org_type import OrgType
11
+
12
+ if TYPE_CHECKING:
13
+ from ..models.org_detail_response_graphs_item import OrgDetailResponseGraphsItem
14
+ from ..models.org_detail_response_limits_type_0 import OrgDetailResponseLimitsType0
15
+ from ..models.org_detail_response_members_item import OrgDetailResponseMembersItem
16
+
17
+
18
+ T = TypeVar("T", bound="OrgDetailResponse")
19
+
20
+
21
+ @_attrs_define
22
+ class OrgDetailResponse:
23
+ """Detailed organization response.
24
+
25
+ Attributes:
26
+ id (str):
27
+ name (str):
28
+ org_type (OrgType):
29
+ user_role (OrgRole):
30
+ members (list['OrgDetailResponseMembersItem']):
31
+ graphs (list['OrgDetailResponseGraphsItem']):
32
+ limits (Union['OrgDetailResponseLimitsType0', None]):
33
+ created_at (datetime.datetime):
34
+ updated_at (datetime.datetime):
35
+ """
36
+
37
+ id: str
38
+ name: str
39
+ org_type: OrgType
40
+ user_role: OrgRole
41
+ members: list["OrgDetailResponseMembersItem"]
42
+ graphs: list["OrgDetailResponseGraphsItem"]
43
+ limits: Union["OrgDetailResponseLimitsType0", None]
44
+ created_at: datetime.datetime
45
+ updated_at: datetime.datetime
46
+ additional_properties: dict[str, Any] = _attrs_field(init=False, factory=dict)
47
+
48
+ def to_dict(self) -> dict[str, Any]:
49
+ from ..models.org_detail_response_limits_type_0 import OrgDetailResponseLimitsType0
50
+
51
+ id = self.id
52
+
53
+ name = self.name
54
+
55
+ org_type = self.org_type.value
56
+
57
+ user_role = self.user_role.value
58
+
59
+ members = []
60
+ for members_item_data in self.members:
61
+ members_item = members_item_data.to_dict()
62
+ members.append(members_item)
63
+
64
+ graphs = []
65
+ for graphs_item_data in self.graphs:
66
+ graphs_item = graphs_item_data.to_dict()
67
+ graphs.append(graphs_item)
68
+
69
+ limits: Union[None, dict[str, Any]]
70
+ if isinstance(self.limits, OrgDetailResponseLimitsType0):
71
+ limits = self.limits.to_dict()
72
+ else:
73
+ limits = self.limits
74
+
75
+ created_at = self.created_at.isoformat()
76
+
77
+ updated_at = self.updated_at.isoformat()
78
+
79
+ field_dict: dict[str, Any] = {}
80
+ field_dict.update(self.additional_properties)
81
+ field_dict.update(
82
+ {
83
+ "id": id,
84
+ "name": name,
85
+ "org_type": org_type,
86
+ "user_role": user_role,
87
+ "members": members,
88
+ "graphs": graphs,
89
+ "limits": limits,
90
+ "created_at": created_at,
91
+ "updated_at": updated_at,
92
+ }
93
+ )
94
+
95
+ return field_dict
96
+
97
+ @classmethod
98
+ def from_dict(cls: type[T], src_dict: Mapping[str, Any]) -> T:
99
+ from ..models.org_detail_response_graphs_item import OrgDetailResponseGraphsItem
100
+ from ..models.org_detail_response_limits_type_0 import OrgDetailResponseLimitsType0
101
+ from ..models.org_detail_response_members_item import OrgDetailResponseMembersItem
102
+
103
+ d = dict(src_dict)
104
+ id = d.pop("id")
105
+
106
+ name = d.pop("name")
107
+
108
+ org_type = OrgType(d.pop("org_type"))
109
+
110
+ user_role = OrgRole(d.pop("user_role"))
111
+
112
+ members = []
113
+ _members = d.pop("members")
114
+ for members_item_data in _members:
115
+ members_item = OrgDetailResponseMembersItem.from_dict(members_item_data)
116
+
117
+ members.append(members_item)
118
+
119
+ graphs = []
120
+ _graphs = d.pop("graphs")
121
+ for graphs_item_data in _graphs:
122
+ graphs_item = OrgDetailResponseGraphsItem.from_dict(graphs_item_data)
123
+
124
+ graphs.append(graphs_item)
125
+
126
+ def _parse_limits(data: object) -> Union["OrgDetailResponseLimitsType0", None]:
127
+ if data is None:
128
+ return data
129
+ try:
130
+ if not isinstance(data, dict):
131
+ raise TypeError()
132
+ limits_type_0 = OrgDetailResponseLimitsType0.from_dict(data)
133
+
134
+ return limits_type_0
135
+ except: # noqa: E722
136
+ pass
137
+ return cast(Union["OrgDetailResponseLimitsType0", None], data)
138
+
139
+ limits = _parse_limits(d.pop("limits"))
140
+
141
+ created_at = isoparse(d.pop("created_at"))
142
+
143
+ updated_at = isoparse(d.pop("updated_at"))
144
+
145
+ org_detail_response = cls(
146
+ id=id,
147
+ name=name,
148
+ org_type=org_type,
149
+ user_role=user_role,
150
+ members=members,
151
+ graphs=graphs,
152
+ limits=limits,
153
+ created_at=created_at,
154
+ updated_at=updated_at,
155
+ )
156
+
157
+ org_detail_response.additional_properties = d
158
+ return org_detail_response
159
+
160
+ @property
161
+ def additional_keys(self) -> list[str]:
162
+ return list(self.additional_properties.keys())
163
+
164
+ def __getitem__(self, key: str) -> Any:
165
+ return self.additional_properties[key]
166
+
167
+ def __setitem__(self, key: str, value: Any) -> None:
168
+ self.additional_properties[key] = value
169
+
170
+ def __delitem__(self, key: str) -> None:
171
+ del self.additional_properties[key]
172
+
173
+ def __contains__(self, key: str) -> bool:
174
+ return key in self.additional_properties
@@ -0,0 +1,44 @@
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="OrgDetailResponseGraphsItem")
8
+
9
+
10
+ @_attrs_define
11
+ class OrgDetailResponseGraphsItem:
12
+ """ """
13
+
14
+ additional_properties: dict[str, Any] = _attrs_field(init=False, factory=dict)
15
+
16
+ def to_dict(self) -> dict[str, Any]:
17
+ field_dict: dict[str, Any] = {}
18
+ field_dict.update(self.additional_properties)
19
+
20
+ return field_dict
21
+
22
+ @classmethod
23
+ def from_dict(cls: type[T], src_dict: Mapping[str, Any]) -> T:
24
+ d = dict(src_dict)
25
+ org_detail_response_graphs_item = cls()
26
+
27
+ org_detail_response_graphs_item.additional_properties = d
28
+ return org_detail_response_graphs_item
29
+
30
+ @property
31
+ def additional_keys(self) -> list[str]:
32
+ return list(self.additional_properties.keys())
33
+
34
+ def __getitem__(self, key: str) -> Any:
35
+ return self.additional_properties[key]
36
+
37
+ def __setitem__(self, key: str, value: Any) -> None:
38
+ self.additional_properties[key] = value
39
+
40
+ def __delitem__(self, key: str) -> None:
41
+ del self.additional_properties[key]
42
+
43
+ def __contains__(self, key: str) -> bool:
44
+ return key in self.additional_properties
@@ -0,0 +1,44 @@
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="OrgDetailResponseLimitsType0")
8
+
9
+
10
+ @_attrs_define
11
+ class OrgDetailResponseLimitsType0:
12
+ """ """
13
+
14
+ additional_properties: dict[str, Any] = _attrs_field(init=False, factory=dict)
15
+
16
+ def to_dict(self) -> dict[str, Any]:
17
+ field_dict: dict[str, Any] = {}
18
+ field_dict.update(self.additional_properties)
19
+
20
+ return field_dict
21
+
22
+ @classmethod
23
+ def from_dict(cls: type[T], src_dict: Mapping[str, Any]) -> T:
24
+ d = dict(src_dict)
25
+ org_detail_response_limits_type_0 = cls()
26
+
27
+ org_detail_response_limits_type_0.additional_properties = d
28
+ return org_detail_response_limits_type_0
29
+
30
+ @property
31
+ def additional_keys(self) -> list[str]:
32
+ return list(self.additional_properties.keys())
33
+
34
+ def __getitem__(self, key: str) -> Any:
35
+ return self.additional_properties[key]
36
+
37
+ def __setitem__(self, key: str, value: Any) -> None:
38
+ self.additional_properties[key] = value
39
+
40
+ def __delitem__(self, key: str) -> None:
41
+ del self.additional_properties[key]
42
+
43
+ def __contains__(self, key: str) -> bool:
44
+ return key in self.additional_properties
@@ -0,0 +1,44 @@
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="OrgDetailResponseMembersItem")
8
+
9
+
10
+ @_attrs_define
11
+ class OrgDetailResponseMembersItem:
12
+ """ """
13
+
14
+ additional_properties: dict[str, Any] = _attrs_field(init=False, factory=dict)
15
+
16
+ def to_dict(self) -> dict[str, Any]:
17
+ field_dict: dict[str, Any] = {}
18
+ field_dict.update(self.additional_properties)
19
+
20
+ return field_dict
21
+
22
+ @classmethod
23
+ def from_dict(cls: type[T], src_dict: Mapping[str, Any]) -> T:
24
+ d = dict(src_dict)
25
+ org_detail_response_members_item = cls()
26
+
27
+ org_detail_response_members_item.additional_properties = d
28
+ return org_detail_response_members_item
29
+
30
+ @property
31
+ def additional_keys(self) -> list[str]:
32
+ return list(self.additional_properties.keys())
33
+
34
+ def __getitem__(self, key: str) -> Any:
35
+ return self.additional_properties[key]
36
+
37
+ def __setitem__(self, key: str, value: Any) -> None:
38
+ self.additional_properties[key] = value
39
+
40
+ def __delitem__(self, key: str) -> None:
41
+ del self.additional_properties[key]
42
+
43
+ def __contains__(self, key: str) -> bool:
44
+ return key in self.additional_properties
@@ -0,0 +1,98 @@
1
+ from collections.abc import Mapping
2
+ from typing import TYPE_CHECKING, Any, TypeVar, cast
3
+
4
+ from attrs import define as _attrs_define
5
+ from attrs import field as _attrs_field
6
+
7
+ if TYPE_CHECKING:
8
+ from ..models.org_limits_response_current_usage import OrgLimitsResponseCurrentUsage
9
+
10
+
11
+ T = TypeVar("T", bound="OrgLimitsResponse")
12
+
13
+
14
+ @_attrs_define
15
+ class OrgLimitsResponse:
16
+ """Organization limits response.
17
+
18
+ Attributes:
19
+ org_id (str):
20
+ max_graphs (int):
21
+ current_usage (OrgLimitsResponseCurrentUsage):
22
+ warnings (list[str]):
23
+ can_create_graph (bool):
24
+ """
25
+
26
+ org_id: str
27
+ max_graphs: int
28
+ current_usage: "OrgLimitsResponseCurrentUsage"
29
+ warnings: list[str]
30
+ can_create_graph: bool
31
+ additional_properties: dict[str, Any] = _attrs_field(init=False, factory=dict)
32
+
33
+ def to_dict(self) -> dict[str, Any]:
34
+ org_id = self.org_id
35
+
36
+ max_graphs = self.max_graphs
37
+
38
+ current_usage = self.current_usage.to_dict()
39
+
40
+ warnings = self.warnings
41
+
42
+ can_create_graph = self.can_create_graph
43
+
44
+ field_dict: dict[str, Any] = {}
45
+ field_dict.update(self.additional_properties)
46
+ field_dict.update(
47
+ {
48
+ "org_id": org_id,
49
+ "max_graphs": max_graphs,
50
+ "current_usage": current_usage,
51
+ "warnings": warnings,
52
+ "can_create_graph": can_create_graph,
53
+ }
54
+ )
55
+
56
+ return field_dict
57
+
58
+ @classmethod
59
+ def from_dict(cls: type[T], src_dict: Mapping[str, Any]) -> T:
60
+ from ..models.org_limits_response_current_usage import OrgLimitsResponseCurrentUsage
61
+
62
+ d = dict(src_dict)
63
+ org_id = d.pop("org_id")
64
+
65
+ max_graphs = d.pop("max_graphs")
66
+
67
+ current_usage = OrgLimitsResponseCurrentUsage.from_dict(d.pop("current_usage"))
68
+
69
+ warnings = cast(list[str], d.pop("warnings"))
70
+
71
+ can_create_graph = d.pop("can_create_graph")
72
+
73
+ org_limits_response = cls(
74
+ org_id=org_id,
75
+ max_graphs=max_graphs,
76
+ current_usage=current_usage,
77
+ warnings=warnings,
78
+ can_create_graph=can_create_graph,
79
+ )
80
+
81
+ org_limits_response.additional_properties = d
82
+ return org_limits_response
83
+
84
+ @property
85
+ def additional_keys(self) -> list[str]:
86
+ return list(self.additional_properties.keys())
87
+
88
+ def __getitem__(self, key: str) -> Any:
89
+ return self.additional_properties[key]
90
+
91
+ def __setitem__(self, key: str, value: Any) -> None:
92
+ self.additional_properties[key] = value
93
+
94
+ def __delitem__(self, key: str) -> None:
95
+ del self.additional_properties[key]
96
+
97
+ def __contains__(self, key: str) -> bool:
98
+ return key in self.additional_properties
@@ -0,0 +1,44 @@
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="OrgLimitsResponseCurrentUsage")
8
+
9
+
10
+ @_attrs_define
11
+ class OrgLimitsResponseCurrentUsage:
12
+ """ """
13
+
14
+ additional_properties: dict[str, Any] = _attrs_field(init=False, factory=dict)
15
+
16
+ def to_dict(self) -> dict[str, Any]:
17
+ field_dict: dict[str, Any] = {}
18
+ field_dict.update(self.additional_properties)
19
+
20
+ return field_dict
21
+
22
+ @classmethod
23
+ def from_dict(cls: type[T], src_dict: Mapping[str, Any]) -> T:
24
+ d = dict(src_dict)
25
+ org_limits_response_current_usage = cls()
26
+
27
+ org_limits_response_current_usage.additional_properties = d
28
+ return org_limits_response_current_usage
29
+
30
+ @property
31
+ def additional_keys(self) -> list[str]:
32
+ return list(self.additional_properties.keys())
33
+
34
+ def __getitem__(self, key: str) -> Any:
35
+ return self.additional_properties[key]
36
+
37
+ def __setitem__(self, key: str, value: Any) -> None:
38
+ self.additional_properties[key] = value
39
+
40
+ def __delitem__(self, key: str) -> None:
41
+ del self.additional_properties[key]
42
+
43
+ def __contains__(self, key: str) -> bool:
44
+ return key in self.additional_properties
@@ -0,0 +1,82 @@
1
+ from collections.abc import Mapping
2
+ from typing import TYPE_CHECKING, Any, TypeVar
3
+
4
+ from attrs import define as _attrs_define
5
+ from attrs import field as _attrs_field
6
+
7
+ if TYPE_CHECKING:
8
+ from ..models.org_response import OrgResponse
9
+
10
+
11
+ T = TypeVar("T", bound="OrgListResponse")
12
+
13
+
14
+ @_attrs_define
15
+ class OrgListResponse:
16
+ """List of organizations response.
17
+
18
+ Attributes:
19
+ orgs (list['OrgResponse']):
20
+ total (int):
21
+ """
22
+
23
+ orgs: list["OrgResponse"]
24
+ total: int
25
+ additional_properties: dict[str, Any] = _attrs_field(init=False, factory=dict)
26
+
27
+ def to_dict(self) -> dict[str, Any]:
28
+ orgs = []
29
+ for orgs_item_data in self.orgs:
30
+ orgs_item = orgs_item_data.to_dict()
31
+ orgs.append(orgs_item)
32
+
33
+ total = self.total
34
+
35
+ field_dict: dict[str, Any] = {}
36
+ field_dict.update(self.additional_properties)
37
+ field_dict.update(
38
+ {
39
+ "orgs": orgs,
40
+ "total": total,
41
+ }
42
+ )
43
+
44
+ return field_dict
45
+
46
+ @classmethod
47
+ def from_dict(cls: type[T], src_dict: Mapping[str, Any]) -> T:
48
+ from ..models.org_response import OrgResponse
49
+
50
+ d = dict(src_dict)
51
+ orgs = []
52
+ _orgs = d.pop("orgs")
53
+ for orgs_item_data in _orgs:
54
+ orgs_item = OrgResponse.from_dict(orgs_item_data)
55
+
56
+ orgs.append(orgs_item)
57
+
58
+ total = d.pop("total")
59
+
60
+ org_list_response = cls(
61
+ orgs=orgs,
62
+ total=total,
63
+ )
64
+
65
+ org_list_response.additional_properties = d
66
+ return org_list_response
67
+
68
+ @property
69
+ def additional_keys(self) -> list[str]:
70
+ return list(self.additional_properties.keys())
71
+
72
+ def __getitem__(self, key: str) -> Any:
73
+ return self.additional_properties[key]
74
+
75
+ def __setitem__(self, key: str, value: Any) -> None:
76
+ self.additional_properties[key] = value
77
+
78
+ def __delitem__(self, key: str) -> None:
79
+ del self.additional_properties[key]
80
+
81
+ def __contains__(self, key: str) -> bool:
82
+ return key in self.additional_properties
@@ -0,0 +1,90 @@
1
+ from collections.abc import Mapping
2
+ from typing import TYPE_CHECKING, Any, TypeVar
3
+
4
+ from attrs import define as _attrs_define
5
+ from attrs import field as _attrs_field
6
+
7
+ if TYPE_CHECKING:
8
+ from ..models.org_member_response import OrgMemberResponse
9
+
10
+
11
+ T = TypeVar("T", bound="OrgMemberListResponse")
12
+
13
+
14
+ @_attrs_define
15
+ class OrgMemberListResponse:
16
+ """List of organization members response.
17
+
18
+ Attributes:
19
+ members (list['OrgMemberResponse']):
20
+ total (int):
21
+ org_id (str):
22
+ """
23
+
24
+ members: list["OrgMemberResponse"]
25
+ total: int
26
+ org_id: str
27
+ additional_properties: dict[str, Any] = _attrs_field(init=False, factory=dict)
28
+
29
+ def to_dict(self) -> dict[str, Any]:
30
+ members = []
31
+ for members_item_data in self.members:
32
+ members_item = members_item_data.to_dict()
33
+ members.append(members_item)
34
+
35
+ total = self.total
36
+
37
+ org_id = self.org_id
38
+
39
+ field_dict: dict[str, Any] = {}
40
+ field_dict.update(self.additional_properties)
41
+ field_dict.update(
42
+ {
43
+ "members": members,
44
+ "total": total,
45
+ "org_id": org_id,
46
+ }
47
+ )
48
+
49
+ return field_dict
50
+
51
+ @classmethod
52
+ def from_dict(cls: type[T], src_dict: Mapping[str, Any]) -> T:
53
+ from ..models.org_member_response import OrgMemberResponse
54
+
55
+ d = dict(src_dict)
56
+ members = []
57
+ _members = d.pop("members")
58
+ for members_item_data in _members:
59
+ members_item = OrgMemberResponse.from_dict(members_item_data)
60
+
61
+ members.append(members_item)
62
+
63
+ total = d.pop("total")
64
+
65
+ org_id = d.pop("org_id")
66
+
67
+ org_member_list_response = cls(
68
+ members=members,
69
+ total=total,
70
+ org_id=org_id,
71
+ )
72
+
73
+ org_member_list_response.additional_properties = d
74
+ return org_member_list_response
75
+
76
+ @property
77
+ def additional_keys(self) -> list[str]:
78
+ return list(self.additional_properties.keys())
79
+
80
+ def __getitem__(self, key: str) -> Any:
81
+ return self.additional_properties[key]
82
+
83
+ def __setitem__(self, key: str, value: Any) -> None:
84
+ self.additional_properties[key] = value
85
+
86
+ def __delitem__(self, key: str) -> None:
87
+ del self.additional_properties[key]
88
+
89
+ def __contains__(self, key: str) -> bool:
90
+ return key in self.additional_properties