latitudesh-python-sdk 2.3.0__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.
Files changed (242) hide show
  1. latitudesh_python_sdk/__init__.py +18 -0
  2. latitudesh_python_sdk/_hooks/__init__.py +5 -0
  3. latitudesh_python_sdk/_hooks/registration.py +13 -0
  4. latitudesh_python_sdk/_hooks/sdkhooks.py +76 -0
  5. latitudesh_python_sdk/_hooks/types.py +113 -0
  6. latitudesh_python_sdk/_version.py +17 -0
  7. latitudesh_python_sdk/apikeys.py +703 -0
  8. latitudesh_python_sdk/basesdk.py +374 -0
  9. latitudesh_python_sdk/billing.py +197 -0
  10. latitudesh_python_sdk/events_sdk.py +298 -0
  11. latitudesh_python_sdk/firewalls_sdk.py +1786 -0
  12. latitudesh_python_sdk/httpclient.py +125 -0
  13. latitudesh_python_sdk/ipaddresses_sdk.py +470 -0
  14. latitudesh_python_sdk/models/__init__.py +3581 -0
  15. latitudesh_python_sdk/models/api_key.py +81 -0
  16. latitudesh_python_sdk/models/apierror.py +40 -0
  17. latitudesh_python_sdk/models/assign_server_virtual_networkop.py +43 -0
  18. latitudesh_python_sdk/models/bandwidth_packages.py +67 -0
  19. latitudesh_python_sdk/models/bandwidth_plan_data.py +72 -0
  20. latitudesh_python_sdk/models/bandwidth_plans.py +26 -0
  21. latitudesh_python_sdk/models/billing_usage.py +249 -0
  22. latitudesh_python_sdk/models/container_plan_data.py +163 -0
  23. latitudesh_python_sdk/models/create_api_key.py +40 -0
  24. latitudesh_python_sdk/models/create_firewall_assignmentop.py +61 -0
  25. latitudesh_python_sdk/models/create_firewallop.py +73 -0
  26. latitudesh_python_sdk/models/create_ipmi_sessionop.py +16 -0
  27. latitudesh_python_sdk/models/create_projectop.py +79 -0
  28. latitudesh_python_sdk/models/create_server_actionop.py +69 -0
  29. latitudesh_python_sdk/models/create_server_out_of_bandop.py +61 -0
  30. latitudesh_python_sdk/models/create_server_reinstallop.py +140 -0
  31. latitudesh_python_sdk/models/create_serverop.py +173 -0
  32. latitudesh_python_sdk/models/create_tagop.py +50 -0
  33. latitudesh_python_sdk/models/create_virtual_machine_actionop.py +63 -0
  34. latitudesh_python_sdk/models/create_virtual_networkop.py +72 -0
  35. latitudesh_python_sdk/models/custom_tag.py +26 -0
  36. latitudesh_python_sdk/models/custom_tag_data.py +54 -0
  37. latitudesh_python_sdk/models/custom_tags.py +26 -0
  38. latitudesh_python_sdk/models/delete_api_keyop.py +16 -0
  39. latitudesh_python_sdk/models/delete_firewall_assignmentop.py +25 -0
  40. latitudesh_python_sdk/models/delete_firewallop.py +18 -0
  41. latitudesh_python_sdk/models/delete_project_ssh_keyop.py +23 -0
  42. latitudesh_python_sdk/models/delete_project_user_dataop.py +23 -0
  43. latitudesh_python_sdk/models/delete_projectop.py +18 -0
  44. latitudesh_python_sdk/models/delete_ssh_keyop.py +16 -0
  45. latitudesh_python_sdk/models/delete_storage_filesystemsop.py +16 -0
  46. latitudesh_python_sdk/models/delete_storage_volumesop.py +16 -0
  47. latitudesh_python_sdk/models/delete_user_dataop.py +16 -0
  48. latitudesh_python_sdk/models/delete_virtual_networks_assignmentsop.py +16 -0
  49. latitudesh_python_sdk/models/delete_vpn_sessionop.py +16 -0
  50. latitudesh_python_sdk/models/deploy_config.py +62 -0
  51. latitudesh_python_sdk/models/destroy_serverop.py +31 -0
  52. latitudesh_python_sdk/models/destroy_tagop.py +16 -0
  53. latitudesh_python_sdk/models/destroy_team_memberop.py +18 -0
  54. latitudesh_python_sdk/models/destroy_virtual_machineop.py +16 -0
  55. latitudesh_python_sdk/models/destroy_virtual_networkop.py +18 -0
  56. latitudesh_python_sdk/models/event_data.py +98 -0
  57. latitudesh_python_sdk/models/events.py +26 -0
  58. latitudesh_python_sdk/models/filesystem_data.py +57 -0
  59. latitudesh_python_sdk/models/firewall.py +26 -0
  60. latitudesh_python_sdk/models/firewall_assignment_data.py +50 -0
  61. latitudesh_python_sdk/models/firewall_assignments.py +29 -0
  62. latitudesh_python_sdk/models/firewall_data.py +75 -0
  63. latitudesh_python_sdk/models/firewall_server.py +36 -0
  64. latitudesh_python_sdk/models/firewalls.py +26 -0
  65. latitudesh_python_sdk/models/get_all_firewall_assignmentsop.py +51 -0
  66. latitudesh_python_sdk/models/get_bandwidth_plansop.py +62 -0
  67. latitudesh_python_sdk/models/get_billing_usageop.py +46 -0
  68. latitudesh_python_sdk/models/get_containers_planop.py +18 -0
  69. latitudesh_python_sdk/models/get_eventsop.py +126 -0
  70. latitudesh_python_sdk/models/get_firewall_assignmentsop.py +53 -0
  71. latitudesh_python_sdk/models/get_firewallop.py +18 -0
  72. latitudesh_python_sdk/models/get_ipop.py +33 -0
  73. latitudesh_python_sdk/models/get_ipsop.py +120 -0
  74. latitudesh_python_sdk/models/get_planop.py +16 -0
  75. latitudesh_python_sdk/models/get_plans_operating_systemop.py +54 -0
  76. latitudesh_python_sdk/models/get_plansop.py +125 -0
  77. latitudesh_python_sdk/models/get_project_ssh_keyop.py +37 -0
  78. latitudesh_python_sdk/models/get_project_ssh_keysop.py +33 -0
  79. latitudesh_python_sdk/models/get_project_user_dataop.py +38 -0
  80. latitudesh_python_sdk/models/get_project_users_dataop.py +46 -0
  81. latitudesh_python_sdk/models/get_projectsop.py +105 -0
  82. latitudesh_python_sdk/models/get_regionop.py +18 -0
  83. latitudesh_python_sdk/models/get_regionsop.py +42 -0
  84. latitudesh_python_sdk/models/get_role_idop.py +16 -0
  85. latitudesh_python_sdk/models/get_rolesop.py +54 -0
  86. latitudesh_python_sdk/models/get_server_deploy_configop.py +18 -0
  87. latitudesh_python_sdk/models/get_server_out_of_bandop.py +18 -0
  88. latitudesh_python_sdk/models/get_serverop.py +33 -0
  89. latitudesh_python_sdk/models/get_serversop.py +185 -0
  90. latitudesh_python_sdk/models/get_ssh_keyop.py +30 -0
  91. latitudesh_python_sdk/models/get_ssh_keysop.py +31 -0
  92. latitudesh_python_sdk/models/get_storage_filesystemsop.py +22 -0
  93. latitudesh_python_sdk/models/get_storage_volumeop.py +32 -0
  94. latitudesh_python_sdk/models/get_storage_volumesop.py +35 -0
  95. latitudesh_python_sdk/models/get_team_membersop.py +42 -0
  96. latitudesh_python_sdk/models/get_traffic_consumptionop.py +49 -0
  97. latitudesh_python_sdk/models/get_traffic_quotaop.py +20 -0
  98. latitudesh_python_sdk/models/get_user_dataop.py +31 -0
  99. latitudesh_python_sdk/models/get_user_profileop.py +19 -0
  100. latitudesh_python_sdk/models/get_users_dataop.py +44 -0
  101. latitudesh_python_sdk/models/get_virtual_networkop.py +32 -0
  102. latitudesh_python_sdk/models/get_virtual_networks_assignmentsop.py +72 -0
  103. latitudesh_python_sdk/models/get_virtual_networksop.py +69 -0
  104. latitudesh_python_sdk/models/get_vpn_sessionsop.py +70 -0
  105. latitudesh_python_sdk/models/index_virtual_machineop.py +31 -0
  106. latitudesh_python_sdk/models/ip_address.py +122 -0
  107. latitudesh_python_sdk/models/ip_addresses.py +15 -0
  108. latitudesh_python_sdk/models/ipmi_session.py +53 -0
  109. latitudesh_python_sdk/models/latitudesherror.py +30 -0
  110. latitudesh_python_sdk/models/list_firewallsop.py +49 -0
  111. latitudesh_python_sdk/models/membership.py +63 -0
  112. latitudesh_python_sdk/models/no_response_error.py +17 -0
  113. latitudesh_python_sdk/models/operating_system_data.py +65 -0
  114. latitudesh_python_sdk/models/operating_systems.py +26 -0
  115. latitudesh_python_sdk/models/out_of_band_connection.py +88 -0
  116. latitudesh_python_sdk/models/patch_current_teamop.py +91 -0
  117. latitudesh_python_sdk/models/patch_storage_filesystemsop.py +79 -0
  118. latitudesh_python_sdk/models/patch_user_dataop.py +69 -0
  119. latitudesh_python_sdk/models/patch_user_profileop.py +88 -0
  120. latitudesh_python_sdk/models/plan.py +15 -0
  121. latitudesh_python_sdk/models/plan_data.py +210 -0
  122. latitudesh_python_sdk/models/post_api_keyop.py +19 -0
  123. latitudesh_python_sdk/models/post_project_ssh_keyop.py +81 -0
  124. latitudesh_python_sdk/models/post_project_user_dataop.py +68 -0
  125. latitudesh_python_sdk/models/post_ssh_keyop.py +63 -0
  126. latitudesh_python_sdk/models/post_storage_filesystemsop.py +63 -0
  127. latitudesh_python_sdk/models/post_storage_volumes_mountop.py +62 -0
  128. latitudesh_python_sdk/models/post_storage_volumesop.py +63 -0
  129. latitudesh_python_sdk/models/post_team_membersop.py +54 -0
  130. latitudesh_python_sdk/models/post_teamop.py +67 -0
  131. latitudesh_python_sdk/models/post_user_dataop.py +50 -0
  132. latitudesh_python_sdk/models/post_vpn_sessionop.py +63 -0
  133. latitudesh_python_sdk/models/project.py +131 -0
  134. latitudesh_python_sdk/models/project_include.py +75 -0
  135. latitudesh_python_sdk/models/projects.py +15 -0
  136. latitudesh_python_sdk/models/put_project_ssh_keyop.py +87 -0
  137. latitudesh_python_sdk/models/put_project_user_dataop.py +76 -0
  138. latitudesh_python_sdk/models/put_ssh_keyop.py +80 -0
  139. latitudesh_python_sdk/models/put_vpn_sessionop.py +16 -0
  140. latitudesh_python_sdk/models/region.py +50 -0
  141. latitudesh_python_sdk/models/region_resource_data.py +37 -0
  142. latitudesh_python_sdk/models/regions.py +50 -0
  143. latitudesh_python_sdk/models/responsevalidationerror.py +27 -0
  144. latitudesh_python_sdk/models/role.py +26 -0
  145. latitudesh_python_sdk/models/role_data.py +35 -0
  146. latitudesh_python_sdk/models/security.py +25 -0
  147. latitudesh_python_sdk/models/server.py +26 -0
  148. latitudesh_python_sdk/models/server_action.py +52 -0
  149. latitudesh_python_sdk/models/server_data.py +280 -0
  150. latitudesh_python_sdk/models/server_exit_rescue_modeop.py +16 -0
  151. latitudesh_python_sdk/models/server_lockop.py +16 -0
  152. latitudesh_python_sdk/models/server_region_resource_data.py +40 -0
  153. latitudesh_python_sdk/models/server_rescue.py +22 -0
  154. latitudesh_python_sdk/models/server_schedule_deletion.py +44 -0
  155. latitudesh_python_sdk/models/server_schedule_deletionop.py +16 -0
  156. latitudesh_python_sdk/models/server_start_rescue_modeop.py +16 -0
  157. latitudesh_python_sdk/models/server_unlockop.py +16 -0
  158. latitudesh_python_sdk/models/server_unschedule_deletionop.py +16 -0
  159. latitudesh_python_sdk/models/servers.py +26 -0
  160. latitudesh_python_sdk/models/show_virtual_machineop.py +16 -0
  161. latitudesh_python_sdk/models/ssh_key_data.py +55 -0
  162. latitudesh_python_sdk/models/ssh_keys.py +26 -0
  163. latitudesh_python_sdk/models/storage_plan_data.py +47 -0
  164. latitudesh_python_sdk/models/storage_plans.py +26 -0
  165. latitudesh_python_sdk/models/team.py +74 -0
  166. latitudesh_python_sdk/models/team_include.py +43 -0
  167. latitudesh_python_sdk/models/team_members.py +51 -0
  168. latitudesh_python_sdk/models/teams.py +26 -0
  169. latitudesh_python_sdk/models/traffic.py +133 -0
  170. latitudesh_python_sdk/models/traffic_quota.py +106 -0
  171. latitudesh_python_sdk/models/update_api_key.py +48 -0
  172. latitudesh_python_sdk/models/update_api_keyop.py +41 -0
  173. latitudesh_python_sdk/models/update_firewallop.py +89 -0
  174. latitudesh_python_sdk/models/update_plans_bandwidthop.py +50 -0
  175. latitudesh_python_sdk/models/update_projectop.py +95 -0
  176. latitudesh_python_sdk/models/update_server_deploy_configop.py +122 -0
  177. latitudesh_python_sdk/models/update_serverop.py +85 -0
  178. latitudesh_python_sdk/models/update_tagop.py +74 -0
  179. latitudesh_python_sdk/models/update_virtual_networkop.py +67 -0
  180. latitudesh_python_sdk/models/user.py +59 -0
  181. latitudesh_python_sdk/models/user_data.py +26 -0
  182. latitudesh_python_sdk/models/user_data_properties.py +46 -0
  183. latitudesh_python_sdk/models/user_include.py +52 -0
  184. latitudesh_python_sdk/models/user_team.py +61 -0
  185. latitudesh_python_sdk/models/user_teams.py +26 -0
  186. latitudesh_python_sdk/models/user_update.py +37 -0
  187. latitudesh_python_sdk/models/virtual_machine.py +29 -0
  188. latitudesh_python_sdk/models/virtual_machine_attributes.py +115 -0
  189. latitudesh_python_sdk/models/virtual_machine_payload.py +47 -0
  190. latitudesh_python_sdk/models/virtual_machine_plans.py +181 -0
  191. latitudesh_python_sdk/models/virtual_network.py +26 -0
  192. latitudesh_python_sdk/models/virtual_network_assignment.py +29 -0
  193. latitudesh_python_sdk/models/virtual_network_assignment_data.py +65 -0
  194. latitudesh_python_sdk/models/virtual_network_assignments.py +29 -0
  195. latitudesh_python_sdk/models/virtual_network_data.py +114 -0
  196. latitudesh_python_sdk/models/virtual_networks.py +26 -0
  197. latitudesh_python_sdk/models/volume_data.py +111 -0
  198. latitudesh_python_sdk/models/vpn_session_data_with_password.py +77 -0
  199. latitudesh_python_sdk/models/vpn_session_with_password.py +18 -0
  200. latitudesh_python_sdk/operatingsystems_sdk.py +238 -0
  201. latitudesh_python_sdk/plans.py +1304 -0
  202. latitudesh_python_sdk/privatenetworks.py +1612 -0
  203. latitudesh_python_sdk/projects_sdk.py +830 -0
  204. latitudesh_python_sdk/py.typed +1 -0
  205. latitudesh_python_sdk/regions_sdk.py +398 -0
  206. latitudesh_python_sdk/roles.py +398 -0
  207. latitudesh_python_sdk/sdk.py +264 -0
  208. latitudesh_python_sdk/sdkconfiguration.py +50 -0
  209. latitudesh_python_sdk/servers_sdk.py +3414 -0
  210. latitudesh_python_sdk/sshkeys_sdk.py +1882 -0
  211. latitudesh_python_sdk/storage.py +1651 -0
  212. latitudesh_python_sdk/tags.py +715 -0
  213. latitudesh_python_sdk/teams_sdk.py +527 -0
  214. latitudesh_python_sdk/teamsmembers.py +576 -0
  215. latitudesh_python_sdk/traffic_sdk.py +357 -0
  216. latitudesh_python_sdk/types/__init__.py +21 -0
  217. latitudesh_python_sdk/types/basemodel.py +39 -0
  218. latitudesh_python_sdk/userdata_sdk.py +1888 -0
  219. latitudesh_python_sdk/userprofile.py +531 -0
  220. latitudesh_python_sdk/utils/__init__.py +200 -0
  221. latitudesh_python_sdk/utils/annotations.py +79 -0
  222. latitudesh_python_sdk/utils/datetimes.py +23 -0
  223. latitudesh_python_sdk/utils/enums.py +74 -0
  224. latitudesh_python_sdk/utils/eventstreaming.py +248 -0
  225. latitudesh_python_sdk/utils/forms.py +234 -0
  226. latitudesh_python_sdk/utils/headers.py +136 -0
  227. latitudesh_python_sdk/utils/logger.py +27 -0
  228. latitudesh_python_sdk/utils/metadata.py +118 -0
  229. latitudesh_python_sdk/utils/queryparams.py +217 -0
  230. latitudesh_python_sdk/utils/requestbodies.py +66 -0
  231. latitudesh_python_sdk/utils/retries.py +281 -0
  232. latitudesh_python_sdk/utils/security.py +192 -0
  233. latitudesh_python_sdk/utils/serializers.py +249 -0
  234. latitudesh_python_sdk/utils/unmarshal_json_response.py +38 -0
  235. latitudesh_python_sdk/utils/url.py +155 -0
  236. latitudesh_python_sdk/utils/values.py +137 -0
  237. latitudesh_python_sdk/virtualmachines.py +941 -0
  238. latitudesh_python_sdk/vpnsessions.py +715 -0
  239. latitudesh_python_sdk-2.3.0.dist-info/METADATA +787 -0
  240. latitudesh_python_sdk-2.3.0.dist-info/RECORD +242 -0
  241. latitudesh_python_sdk-2.3.0.dist-info/WHEEL +4 -0
  242. latitudesh_python_sdk-2.3.0.dist-info/licenses/LICENSE +21 -0
@@ -0,0 +1,576 @@
1
+ """Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT."""
2
+
3
+ from .basesdk import BaseSDK
4
+ from jsonpath import JSONPath
5
+ from latitudesh_python_sdk import models, utils
6
+ from latitudesh_python_sdk._hooks import HookContext
7
+ from latitudesh_python_sdk.types import OptionalNullable, UNSET
8
+ from latitudesh_python_sdk.utils import get_security_from_env
9
+ from latitudesh_python_sdk.utils.unmarshal_json_response import unmarshal_json_response
10
+ from typing import Any, Dict, List, Mapping, Optional, Union
11
+
12
+
13
+ class TeamsMembers(BaseSDK):
14
+ def list(
15
+ self,
16
+ *,
17
+ page_size: Optional[int] = 20,
18
+ page_number: Optional[int] = 1,
19
+ retries: OptionalNullable[utils.RetryConfig] = UNSET,
20
+ server_url: Optional[str] = None,
21
+ timeout_ms: Optional[int] = None,
22
+ http_headers: Optional[Mapping[str, str]] = None,
23
+ ) -> Optional[models.GetTeamMembersResponse]:
24
+ r"""List all Team Members
25
+
26
+ :param page_size: Number of items to return per page
27
+ :param page_number: Page number to return (starts at 1)
28
+ :param retries: Override the default retry configuration for this method
29
+ :param server_url: Override the default server URL for this method
30
+ :param timeout_ms: Override the default request timeout configuration for this method in milliseconds
31
+ :param http_headers: Additional headers to set or replace on requests.
32
+ """
33
+ base_url = None
34
+ url_variables = None
35
+ if timeout_ms is None:
36
+ timeout_ms = self.sdk_configuration.timeout_ms
37
+
38
+ if server_url is not None:
39
+ base_url = server_url
40
+ else:
41
+ base_url = self._get_url(base_url, url_variables)
42
+
43
+ request = models.GetTeamMembersRequest(
44
+ page_size=page_size,
45
+ page_number=page_number,
46
+ )
47
+
48
+ req = self._build_request(
49
+ method="GET",
50
+ path="/team/members",
51
+ base_url=base_url,
52
+ url_variables=url_variables,
53
+ request=request,
54
+ request_body_required=False,
55
+ request_has_path_params=False,
56
+ request_has_query_params=True,
57
+ user_agent_header="user-agent",
58
+ accept_header_value="application/vnd.api+json",
59
+ http_headers=http_headers,
60
+ security=self.sdk_configuration.security,
61
+ allow_empty_value=None,
62
+ timeout_ms=timeout_ms,
63
+ )
64
+
65
+ if retries == UNSET:
66
+ if self.sdk_configuration.retry_config is not UNSET:
67
+ retries = self.sdk_configuration.retry_config
68
+
69
+ retry_config = None
70
+ if isinstance(retries, utils.RetryConfig):
71
+ retry_config = (retries, ["429", "500", "502", "503", "504"])
72
+
73
+ http_res = self.do_request(
74
+ hook_ctx=HookContext(
75
+ config=self.sdk_configuration,
76
+ base_url=base_url or "",
77
+ operation_id="get-team-members",
78
+ oauth2_scopes=None,
79
+ security_source=get_security_from_env(
80
+ self.sdk_configuration.security, models.Security
81
+ ),
82
+ ),
83
+ request=req,
84
+ error_status_codes=["4XX", "5XX"],
85
+ retry_config=retry_config,
86
+ )
87
+
88
+ def next_func() -> Optional[models.GetTeamMembersResponse]:
89
+ body = utils.unmarshal_json(http_res.text, Union[Dict[Any, Any], List[Any]])
90
+ page = request.page_number if not request.page_number is None else 1
91
+ next_page = page + 1
92
+
93
+ if not http_res.text:
94
+ return None
95
+ results = JSONPath("$.data").parse(body)
96
+ if len(results) == 0 or len(results[0]) == 0:
97
+ return None
98
+ limit = request.page_size if not request.page_size is None else 20
99
+ if len(results[0]) < limit:
100
+ return None
101
+
102
+ return self.list(
103
+ page_size=page_size,
104
+ page_number=next_page,
105
+ retries=retries,
106
+ )
107
+
108
+ if utils.match_response(http_res, "200", "application/vnd.api+json"):
109
+ return models.GetTeamMembersResponse(
110
+ result=unmarshal_json_response(models.TeamMembers, http_res),
111
+ next=next_func,
112
+ )
113
+ if utils.match_response(http_res, "4XX", "*"):
114
+ http_res_text = utils.stream_to_text(http_res)
115
+ raise models.APIError("API error occurred", http_res, http_res_text)
116
+ if utils.match_response(http_res, "5XX", "*"):
117
+ http_res_text = utils.stream_to_text(http_res)
118
+ raise models.APIError("API error occurred", http_res, http_res_text)
119
+
120
+ raise models.APIError("Unexpected response received", http_res)
121
+
122
+ async def list_async(
123
+ self,
124
+ *,
125
+ page_size: Optional[int] = 20,
126
+ page_number: Optional[int] = 1,
127
+ retries: OptionalNullable[utils.RetryConfig] = UNSET,
128
+ server_url: Optional[str] = None,
129
+ timeout_ms: Optional[int] = None,
130
+ http_headers: Optional[Mapping[str, str]] = None,
131
+ ) -> Optional[models.GetTeamMembersResponse]:
132
+ r"""List all Team Members
133
+
134
+ :param page_size: Number of items to return per page
135
+ :param page_number: Page number to return (starts at 1)
136
+ :param retries: Override the default retry configuration for this method
137
+ :param server_url: Override the default server URL for this method
138
+ :param timeout_ms: Override the default request timeout configuration for this method in milliseconds
139
+ :param http_headers: Additional headers to set or replace on requests.
140
+ """
141
+ base_url = None
142
+ url_variables = None
143
+ if timeout_ms is None:
144
+ timeout_ms = self.sdk_configuration.timeout_ms
145
+
146
+ if server_url is not None:
147
+ base_url = server_url
148
+ else:
149
+ base_url = self._get_url(base_url, url_variables)
150
+
151
+ request = models.GetTeamMembersRequest(
152
+ page_size=page_size,
153
+ page_number=page_number,
154
+ )
155
+
156
+ req = self._build_request_async(
157
+ method="GET",
158
+ path="/team/members",
159
+ base_url=base_url,
160
+ url_variables=url_variables,
161
+ request=request,
162
+ request_body_required=False,
163
+ request_has_path_params=False,
164
+ request_has_query_params=True,
165
+ user_agent_header="user-agent",
166
+ accept_header_value="application/vnd.api+json",
167
+ http_headers=http_headers,
168
+ security=self.sdk_configuration.security,
169
+ allow_empty_value=None,
170
+ timeout_ms=timeout_ms,
171
+ )
172
+
173
+ if retries == UNSET:
174
+ if self.sdk_configuration.retry_config is not UNSET:
175
+ retries = self.sdk_configuration.retry_config
176
+
177
+ retry_config = None
178
+ if isinstance(retries, utils.RetryConfig):
179
+ retry_config = (retries, ["429", "500", "502", "503", "504"])
180
+
181
+ http_res = await self.do_request_async(
182
+ hook_ctx=HookContext(
183
+ config=self.sdk_configuration,
184
+ base_url=base_url or "",
185
+ operation_id="get-team-members",
186
+ oauth2_scopes=None,
187
+ security_source=get_security_from_env(
188
+ self.sdk_configuration.security, models.Security
189
+ ),
190
+ ),
191
+ request=req,
192
+ error_status_codes=["4XX", "5XX"],
193
+ retry_config=retry_config,
194
+ )
195
+
196
+ def next_func() -> Optional[models.GetTeamMembersResponse]:
197
+ body = utils.unmarshal_json(http_res.text, Union[Dict[Any, Any], List[Any]])
198
+ page = request.page_number if not request.page_number is None else 1
199
+ next_page = page + 1
200
+
201
+ if not http_res.text:
202
+ return None
203
+ results = JSONPath("$.data").parse(body)
204
+ if len(results) == 0 or len(results[0]) == 0:
205
+ return None
206
+ limit = request.page_size if not request.page_size is None else 20
207
+ if len(results[0]) < limit:
208
+ return None
209
+
210
+ return self.list(
211
+ page_size=page_size,
212
+ page_number=next_page,
213
+ retries=retries,
214
+ )
215
+
216
+ if utils.match_response(http_res, "200", "application/vnd.api+json"):
217
+ return models.GetTeamMembersResponse(
218
+ result=unmarshal_json_response(models.TeamMembers, http_res),
219
+ next=next_func,
220
+ )
221
+ if utils.match_response(http_res, "4XX", "*"):
222
+ http_res_text = await utils.stream_to_text_async(http_res)
223
+ raise models.APIError("API error occurred", http_res, http_res_text)
224
+ if utils.match_response(http_res, "5XX", "*"):
225
+ http_res_text = await utils.stream_to_text_async(http_res)
226
+ raise models.APIError("API error occurred", http_res, http_res_text)
227
+
228
+ raise models.APIError("Unexpected response received", http_res)
229
+
230
+ def add(
231
+ self,
232
+ *,
233
+ data: Union[
234
+ models.PostTeamMembersTeamsMembersData,
235
+ models.PostTeamMembersTeamsMembersDataTypedDict,
236
+ ],
237
+ retries: OptionalNullable[utils.RetryConfig] = UNSET,
238
+ server_url: Optional[str] = None,
239
+ timeout_ms: Optional[int] = None,
240
+ http_headers: Optional[Mapping[str, str]] = None,
241
+ ) -> models.Membership:
242
+ r"""Add a Team Member
243
+
244
+ :param data:
245
+ :param retries: Override the default retry configuration for this method
246
+ :param server_url: Override the default server URL for this method
247
+ :param timeout_ms: Override the default request timeout configuration for this method in milliseconds
248
+ :param http_headers: Additional headers to set or replace on requests.
249
+ """
250
+ base_url = None
251
+ url_variables = None
252
+ if timeout_ms is None:
253
+ timeout_ms = self.sdk_configuration.timeout_ms
254
+
255
+ if server_url is not None:
256
+ base_url = server_url
257
+ else:
258
+ base_url = self._get_url(base_url, url_variables)
259
+
260
+ request = models.PostTeamMembersTeamsMembersRequestBody(
261
+ data=utils.get_pydantic_model(data, models.PostTeamMembersTeamsMembersData),
262
+ )
263
+
264
+ req = self._build_request(
265
+ method="POST",
266
+ path="/team/members",
267
+ base_url=base_url,
268
+ url_variables=url_variables,
269
+ request=request,
270
+ request_body_required=True,
271
+ request_has_path_params=False,
272
+ request_has_query_params=True,
273
+ user_agent_header="user-agent",
274
+ accept_header_value="application/vnd.api+json",
275
+ http_headers=http_headers,
276
+ security=self.sdk_configuration.security,
277
+ get_serialized_body=lambda: utils.serialize_request_body(
278
+ request,
279
+ False,
280
+ False,
281
+ "json",
282
+ models.PostTeamMembersTeamsMembersRequestBody,
283
+ ),
284
+ allow_empty_value=None,
285
+ timeout_ms=timeout_ms,
286
+ )
287
+
288
+ if retries == UNSET:
289
+ if self.sdk_configuration.retry_config is not UNSET:
290
+ retries = self.sdk_configuration.retry_config
291
+
292
+ retry_config = None
293
+ if isinstance(retries, utils.RetryConfig):
294
+ retry_config = (retries, ["429", "500", "502", "503", "504"])
295
+
296
+ http_res = self.do_request(
297
+ hook_ctx=HookContext(
298
+ config=self.sdk_configuration,
299
+ base_url=base_url or "",
300
+ operation_id="post-team-members",
301
+ oauth2_scopes=None,
302
+ security_source=get_security_from_env(
303
+ self.sdk_configuration.security, models.Security
304
+ ),
305
+ ),
306
+ request=req,
307
+ error_status_codes=["4XX", "5XX"],
308
+ retry_config=retry_config,
309
+ )
310
+
311
+ if utils.match_response(http_res, "201", "application/vnd.api+json"):
312
+ return unmarshal_json_response(models.Membership, http_res)
313
+ if utils.match_response(http_res, "4XX", "*"):
314
+ http_res_text = utils.stream_to_text(http_res)
315
+ raise models.APIError("API error occurred", http_res, http_res_text)
316
+ if utils.match_response(http_res, "5XX", "*"):
317
+ http_res_text = utils.stream_to_text(http_res)
318
+ raise models.APIError("API error occurred", http_res, http_res_text)
319
+
320
+ raise models.APIError("Unexpected response received", http_res)
321
+
322
+ async def add_async(
323
+ self,
324
+ *,
325
+ data: Union[
326
+ models.PostTeamMembersTeamsMembersData,
327
+ models.PostTeamMembersTeamsMembersDataTypedDict,
328
+ ],
329
+ retries: OptionalNullable[utils.RetryConfig] = UNSET,
330
+ server_url: Optional[str] = None,
331
+ timeout_ms: Optional[int] = None,
332
+ http_headers: Optional[Mapping[str, str]] = None,
333
+ ) -> models.Membership:
334
+ r"""Add a Team Member
335
+
336
+ :param data:
337
+ :param retries: Override the default retry configuration for this method
338
+ :param server_url: Override the default server URL for this method
339
+ :param timeout_ms: Override the default request timeout configuration for this method in milliseconds
340
+ :param http_headers: Additional headers to set or replace on requests.
341
+ """
342
+ base_url = None
343
+ url_variables = None
344
+ if timeout_ms is None:
345
+ timeout_ms = self.sdk_configuration.timeout_ms
346
+
347
+ if server_url is not None:
348
+ base_url = server_url
349
+ else:
350
+ base_url = self._get_url(base_url, url_variables)
351
+
352
+ request = models.PostTeamMembersTeamsMembersRequestBody(
353
+ data=utils.get_pydantic_model(data, models.PostTeamMembersTeamsMembersData),
354
+ )
355
+
356
+ req = self._build_request_async(
357
+ method="POST",
358
+ path="/team/members",
359
+ base_url=base_url,
360
+ url_variables=url_variables,
361
+ request=request,
362
+ request_body_required=True,
363
+ request_has_path_params=False,
364
+ request_has_query_params=True,
365
+ user_agent_header="user-agent",
366
+ accept_header_value="application/vnd.api+json",
367
+ http_headers=http_headers,
368
+ security=self.sdk_configuration.security,
369
+ get_serialized_body=lambda: utils.serialize_request_body(
370
+ request,
371
+ False,
372
+ False,
373
+ "json",
374
+ models.PostTeamMembersTeamsMembersRequestBody,
375
+ ),
376
+ allow_empty_value=None,
377
+ timeout_ms=timeout_ms,
378
+ )
379
+
380
+ if retries == UNSET:
381
+ if self.sdk_configuration.retry_config is not UNSET:
382
+ retries = self.sdk_configuration.retry_config
383
+
384
+ retry_config = None
385
+ if isinstance(retries, utils.RetryConfig):
386
+ retry_config = (retries, ["429", "500", "502", "503", "504"])
387
+
388
+ http_res = await self.do_request_async(
389
+ hook_ctx=HookContext(
390
+ config=self.sdk_configuration,
391
+ base_url=base_url or "",
392
+ operation_id="post-team-members",
393
+ oauth2_scopes=None,
394
+ security_source=get_security_from_env(
395
+ self.sdk_configuration.security, models.Security
396
+ ),
397
+ ),
398
+ request=req,
399
+ error_status_codes=["4XX", "5XX"],
400
+ retry_config=retry_config,
401
+ )
402
+
403
+ if utils.match_response(http_res, "201", "application/vnd.api+json"):
404
+ return unmarshal_json_response(models.Membership, http_res)
405
+ if utils.match_response(http_res, "4XX", "*"):
406
+ http_res_text = await utils.stream_to_text_async(http_res)
407
+ raise models.APIError("API error occurred", http_res, http_res_text)
408
+ if utils.match_response(http_res, "5XX", "*"):
409
+ http_res_text = await utils.stream_to_text_async(http_res)
410
+ raise models.APIError("API error occurred", http_res, http_res_text)
411
+
412
+ raise models.APIError("Unexpected response received", http_res)
413
+
414
+ def remove_member(
415
+ self,
416
+ *,
417
+ user_id: str,
418
+ retries: OptionalNullable[utils.RetryConfig] = UNSET,
419
+ server_url: Optional[str] = None,
420
+ timeout_ms: Optional[int] = None,
421
+ http_headers: Optional[Mapping[str, str]] = None,
422
+ ):
423
+ r"""Remove a Team Member
424
+
425
+ :param user_id: The user ID
426
+ :param retries: Override the default retry configuration for this method
427
+ :param server_url: Override the default server URL for this method
428
+ :param timeout_ms: Override the default request timeout configuration for this method in milliseconds
429
+ :param http_headers: Additional headers to set or replace on requests.
430
+ """
431
+ base_url = None
432
+ url_variables = None
433
+ if timeout_ms is None:
434
+ timeout_ms = self.sdk_configuration.timeout_ms
435
+
436
+ if server_url is not None:
437
+ base_url = server_url
438
+ else:
439
+ base_url = self._get_url(base_url, url_variables)
440
+
441
+ request = models.DestroyTeamMemberRequest(
442
+ user_id=user_id,
443
+ )
444
+
445
+ req = self._build_request(
446
+ method="DELETE",
447
+ path="/team/members/{user_id}",
448
+ base_url=base_url,
449
+ url_variables=url_variables,
450
+ request=request,
451
+ request_body_required=False,
452
+ request_has_path_params=True,
453
+ request_has_query_params=True,
454
+ user_agent_header="user-agent",
455
+ accept_header_value="*/*",
456
+ http_headers=http_headers,
457
+ security=self.sdk_configuration.security,
458
+ allow_empty_value=None,
459
+ timeout_ms=timeout_ms,
460
+ )
461
+
462
+ if retries == UNSET:
463
+ if self.sdk_configuration.retry_config is not UNSET:
464
+ retries = self.sdk_configuration.retry_config
465
+
466
+ retry_config = None
467
+ if isinstance(retries, utils.RetryConfig):
468
+ retry_config = (retries, ["429", "500", "502", "503", "504"])
469
+
470
+ http_res = self.do_request(
471
+ hook_ctx=HookContext(
472
+ config=self.sdk_configuration,
473
+ base_url=base_url or "",
474
+ operation_id="destroy-team-member",
475
+ oauth2_scopes=None,
476
+ security_source=get_security_from_env(
477
+ self.sdk_configuration.security, models.Security
478
+ ),
479
+ ),
480
+ request=req,
481
+ error_status_codes=["4XX", "5XX"],
482
+ retry_config=retry_config,
483
+ )
484
+
485
+ if utils.match_response(http_res, "200", "*"):
486
+ return
487
+ if utils.match_response(http_res, "4XX", "*"):
488
+ http_res_text = utils.stream_to_text(http_res)
489
+ raise models.APIError("API error occurred", http_res, http_res_text)
490
+ if utils.match_response(http_res, "5XX", "*"):
491
+ http_res_text = utils.stream_to_text(http_res)
492
+ raise models.APIError("API error occurred", http_res, http_res_text)
493
+
494
+ raise models.APIError("Unexpected response received", http_res)
495
+
496
+ async def remove_member_async(
497
+ self,
498
+ *,
499
+ user_id: str,
500
+ retries: OptionalNullable[utils.RetryConfig] = UNSET,
501
+ server_url: Optional[str] = None,
502
+ timeout_ms: Optional[int] = None,
503
+ http_headers: Optional[Mapping[str, str]] = None,
504
+ ):
505
+ r"""Remove a Team Member
506
+
507
+ :param user_id: The user ID
508
+ :param retries: Override the default retry configuration for this method
509
+ :param server_url: Override the default server URL for this method
510
+ :param timeout_ms: Override the default request timeout configuration for this method in milliseconds
511
+ :param http_headers: Additional headers to set or replace on requests.
512
+ """
513
+ base_url = None
514
+ url_variables = None
515
+ if timeout_ms is None:
516
+ timeout_ms = self.sdk_configuration.timeout_ms
517
+
518
+ if server_url is not None:
519
+ base_url = server_url
520
+ else:
521
+ base_url = self._get_url(base_url, url_variables)
522
+
523
+ request = models.DestroyTeamMemberRequest(
524
+ user_id=user_id,
525
+ )
526
+
527
+ req = self._build_request_async(
528
+ method="DELETE",
529
+ path="/team/members/{user_id}",
530
+ base_url=base_url,
531
+ url_variables=url_variables,
532
+ request=request,
533
+ request_body_required=False,
534
+ request_has_path_params=True,
535
+ request_has_query_params=True,
536
+ user_agent_header="user-agent",
537
+ accept_header_value="*/*",
538
+ http_headers=http_headers,
539
+ security=self.sdk_configuration.security,
540
+ allow_empty_value=None,
541
+ timeout_ms=timeout_ms,
542
+ )
543
+
544
+ if retries == UNSET:
545
+ if self.sdk_configuration.retry_config is not UNSET:
546
+ retries = self.sdk_configuration.retry_config
547
+
548
+ retry_config = None
549
+ if isinstance(retries, utils.RetryConfig):
550
+ retry_config = (retries, ["429", "500", "502", "503", "504"])
551
+
552
+ http_res = await self.do_request_async(
553
+ hook_ctx=HookContext(
554
+ config=self.sdk_configuration,
555
+ base_url=base_url or "",
556
+ operation_id="destroy-team-member",
557
+ oauth2_scopes=None,
558
+ security_source=get_security_from_env(
559
+ self.sdk_configuration.security, models.Security
560
+ ),
561
+ ),
562
+ request=req,
563
+ error_status_codes=["4XX", "5XX"],
564
+ retry_config=retry_config,
565
+ )
566
+
567
+ if utils.match_response(http_res, "200", "*"):
568
+ return
569
+ if utils.match_response(http_res, "4XX", "*"):
570
+ http_res_text = await utils.stream_to_text_async(http_res)
571
+ raise models.APIError("API error occurred", http_res, http_res_text)
572
+ if utils.match_response(http_res, "5XX", "*"):
573
+ http_res_text = await utils.stream_to_text_async(http_res)
574
+ raise models.APIError("API error occurred", http_res, http_res_text)
575
+
576
+ raise models.APIError("Unexpected response received", http_res)