latitudesh-python-sdk 0.0.6__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 latitudesh-python-sdk might be problematic. Click here for more details.

Files changed (206) 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 +106 -0
  6. latitudesh_python_sdk/_version.py +15 -0
  7. latitudesh_python_sdk/apikeys.py +802 -0
  8. latitudesh_python_sdk/basesdk.py +366 -0
  9. latitudesh_python_sdk/billing.py +210 -0
  10. latitudesh_python_sdk/events_sdk.py +240 -0
  11. latitudesh_python_sdk/firewalls_sdk.py +1640 -0
  12. latitudesh_python_sdk/httpclient.py +136 -0
  13. latitudesh_python_sdk/ipaddresses_sdk.py +448 -0
  14. latitudesh_python_sdk/models/__init__.py +1927 -0
  15. latitudesh_python_sdk/models/api_key.py +81 -0
  16. latitudesh_python_sdk/models/apierror.py +22 -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.py +72 -0
  20. latitudesh_python_sdk/models/bandwidth_plans.py +15 -0
  21. latitudesh_python_sdk/models/billing_usage.py +158 -0
  22. latitudesh_python_sdk/models/create_api_key.py +40 -0
  23. latitudesh_python_sdk/models/create_firewall_assignmentop.py +61 -0
  24. latitudesh_python_sdk/models/create_firewallop.py +69 -0
  25. latitudesh_python_sdk/models/create_ipmi_sessionop.py +16 -0
  26. latitudesh_python_sdk/models/create_projectop.py +79 -0
  27. latitudesh_python_sdk/models/create_server_actionop.py +69 -0
  28. latitudesh_python_sdk/models/create_server_out_of_bandop.py +61 -0
  29. latitudesh_python_sdk/models/create_server_reinstallop.py +140 -0
  30. latitudesh_python_sdk/models/create_serverop.py +173 -0
  31. latitudesh_python_sdk/models/create_tagop.py +50 -0
  32. latitudesh_python_sdk/models/create_virtual_networkop.py +72 -0
  33. latitudesh_python_sdk/models/custom_tag.py +54 -0
  34. latitudesh_python_sdk/models/delete_api_keyop.py +16 -0
  35. latitudesh_python_sdk/models/delete_firewall_assignmentop.py +25 -0
  36. latitudesh_python_sdk/models/delete_firewallop.py +18 -0
  37. latitudesh_python_sdk/models/delete_project_ssh_keyop.py +23 -0
  38. latitudesh_python_sdk/models/delete_project_user_dataop.py +23 -0
  39. latitudesh_python_sdk/models/delete_projectop.py +18 -0
  40. latitudesh_python_sdk/models/delete_storage_filesystemsop.py +16 -0
  41. latitudesh_python_sdk/models/delete_virtual_networks_assignmentsop.py +16 -0
  42. latitudesh_python_sdk/models/delete_vpn_sessionop.py +16 -0
  43. latitudesh_python_sdk/models/deploy_config.py +74 -0
  44. latitudesh_python_sdk/models/destroy_serverop.py +31 -0
  45. latitudesh_python_sdk/models/destroy_tagop.py +16 -0
  46. latitudesh_python_sdk/models/destroy_team_memberop.py +18 -0
  47. latitudesh_python_sdk/models/destroy_virtual_machineop.py +16 -0
  48. latitudesh_python_sdk/models/destroy_virtual_networkop.py +18 -0
  49. latitudesh_python_sdk/models/error_object.py +49 -0
  50. latitudesh_python_sdk/models/events.py +90 -0
  51. latitudesh_python_sdk/models/filesystem_data.py +53 -0
  52. latitudesh_python_sdk/models/firewall.py +71 -0
  53. latitudesh_python_sdk/models/firewall_server.py +50 -0
  54. latitudesh_python_sdk/models/firewalls.py +26 -0
  55. latitudesh_python_sdk/models/get_bandwidth_plansop.py +33 -0
  56. latitudesh_python_sdk/models/get_billing_usageop.py +46 -0
  57. latitudesh_python_sdk/models/get_eventsop.py +98 -0
  58. latitudesh_python_sdk/models/get_firewall_assignmentsop.py +18 -0
  59. latitudesh_python_sdk/models/get_firewallop.py +18 -0
  60. latitudesh_python_sdk/models/get_ipop.py +33 -0
  61. latitudesh_python_sdk/models/get_ipsop.py +91 -0
  62. latitudesh_python_sdk/models/get_planop.py +16 -0
  63. latitudesh_python_sdk/models/get_plans_operating_systemop.py +19 -0
  64. latitudesh_python_sdk/models/get_plansop.py +125 -0
  65. latitudesh_python_sdk/models/get_project_ssh_keyop.py +37 -0
  66. latitudesh_python_sdk/models/get_project_ssh_keysop.py +33 -0
  67. latitudesh_python_sdk/models/get_project_user_dataop.py +38 -0
  68. latitudesh_python_sdk/models/get_project_users_dataop.py +46 -0
  69. latitudesh_python_sdk/models/get_projectsop.py +76 -0
  70. latitudesh_python_sdk/models/get_regionop.py +18 -0
  71. latitudesh_python_sdk/models/get_role_idop.py +16 -0
  72. latitudesh_python_sdk/models/get_rolesop.py +19 -0
  73. latitudesh_python_sdk/models/get_server_deploy_configop.py +18 -0
  74. latitudesh_python_sdk/models/get_server_out_of_bandop.py +18 -0
  75. latitudesh_python_sdk/models/get_serverop.py +33 -0
  76. latitudesh_python_sdk/models/get_serversop.py +156 -0
  77. latitudesh_python_sdk/models/get_storage_filesystemsop.py +22 -0
  78. latitudesh_python_sdk/models/get_traffic_consumptionop.py +45 -0
  79. latitudesh_python_sdk/models/get_traffic_quotaop.py +20 -0
  80. latitudesh_python_sdk/models/get_user_profileop.py +19 -0
  81. latitudesh_python_sdk/models/get_virtual_networkop.py +32 -0
  82. latitudesh_python_sdk/models/get_virtual_networks_assignmentsop.py +40 -0
  83. latitudesh_python_sdk/models/get_virtual_networksop.py +40 -0
  84. latitudesh_python_sdk/models/get_vpn_sessionsop.py +70 -0
  85. latitudesh_python_sdk/models/index_virtual_machineop.py +22 -0
  86. latitudesh_python_sdk/models/ip_address.py +122 -0
  87. latitudesh_python_sdk/models/ip_addresses.py +15 -0
  88. latitudesh_python_sdk/models/ipmi_session.py +53 -0
  89. latitudesh_python_sdk/models/list_firewallsop.py +20 -0
  90. latitudesh_python_sdk/models/membership.py +63 -0
  91. latitudesh_python_sdk/models/operating_systems.py +57 -0
  92. latitudesh_python_sdk/models/out_of_band_connection.py +88 -0
  93. latitudesh_python_sdk/models/patch_current_teamop.py +91 -0
  94. latitudesh_python_sdk/models/patch_storage_filesystemsop.py +79 -0
  95. latitudesh_python_sdk/models/patch_user_profileop.py +88 -0
  96. latitudesh_python_sdk/models/plan.py +15 -0
  97. latitudesh_python_sdk/models/plan_data.py +206 -0
  98. latitudesh_python_sdk/models/post_api_keyop.py +19 -0
  99. latitudesh_python_sdk/models/post_project_ssh_keyop.py +81 -0
  100. latitudesh_python_sdk/models/post_project_user_dataop.py +68 -0
  101. latitudesh_python_sdk/models/post_storage_filesystemsop.py +63 -0
  102. latitudesh_python_sdk/models/post_team_membersop.py +54 -0
  103. latitudesh_python_sdk/models/post_teamop.py +67 -0
  104. latitudesh_python_sdk/models/post_vpn_sessionop.py +63 -0
  105. latitudesh_python_sdk/models/project.py +130 -0
  106. latitudesh_python_sdk/models/project_include.py +72 -0
  107. latitudesh_python_sdk/models/projects.py +15 -0
  108. latitudesh_python_sdk/models/put_project_ssh_keyop.py +87 -0
  109. latitudesh_python_sdk/models/put_project_user_dataop.py +76 -0
  110. latitudesh_python_sdk/models/put_vpn_sessionop.py +16 -0
  111. latitudesh_python_sdk/models/region.py +50 -0
  112. latitudesh_python_sdk/models/region_resource_data.py +37 -0
  113. latitudesh_python_sdk/models/regions.py +50 -0
  114. latitudesh_python_sdk/models/role.py +15 -0
  115. latitudesh_python_sdk/models/role_data.py +35 -0
  116. latitudesh_python_sdk/models/security.py +25 -0
  117. latitudesh_python_sdk/models/server.py +54 -0
  118. latitudesh_python_sdk/models/server_action.py +52 -0
  119. latitudesh_python_sdk/models/server_data.py +219 -0
  120. latitudesh_python_sdk/models/server_exit_rescue_modeop.py +16 -0
  121. latitudesh_python_sdk/models/server_lockop.py +16 -0
  122. latitudesh_python_sdk/models/server_rescue.py +22 -0
  123. latitudesh_python_sdk/models/server_schedule_deletion.py +44 -0
  124. latitudesh_python_sdk/models/server_schedule_deletionop.py +16 -0
  125. latitudesh_python_sdk/models/server_start_rescue_modeop.py +16 -0
  126. latitudesh_python_sdk/models/server_unlockop.py +16 -0
  127. latitudesh_python_sdk/models/server_unschedule_deletionop.py +16 -0
  128. latitudesh_python_sdk/models/servers.py +26 -0
  129. latitudesh_python_sdk/models/show_virtual_machineop.py +16 -0
  130. latitudesh_python_sdk/models/ssh_key.py +15 -0
  131. latitudesh_python_sdk/models/ssh_key_data.py +55 -0
  132. latitudesh_python_sdk/models/storage_plan.py +36 -0
  133. latitudesh_python_sdk/models/storage_plans.py +15 -0
  134. latitudesh_python_sdk/models/team.py +74 -0
  135. latitudesh_python_sdk/models/team_include.py +43 -0
  136. latitudesh_python_sdk/models/team_members.py +51 -0
  137. latitudesh_python_sdk/models/teams.py +26 -0
  138. latitudesh_python_sdk/models/traffic.py +133 -0
  139. latitudesh_python_sdk/models/traffic_quota.py +106 -0
  140. latitudesh_python_sdk/models/update_api_key.py +48 -0
  141. latitudesh_python_sdk/models/update_api_keyop.py +41 -0
  142. latitudesh_python_sdk/models/update_firewallop.py +89 -0
  143. latitudesh_python_sdk/models/update_plans_bandwidthop.py +50 -0
  144. latitudesh_python_sdk/models/update_projectop.py +95 -0
  145. latitudesh_python_sdk/models/update_server_deploy_configop.py +122 -0
  146. latitudesh_python_sdk/models/update_serverop.py +69 -0
  147. latitudesh_python_sdk/models/update_tagop.py +74 -0
  148. latitudesh_python_sdk/models/update_virtual_networkop.py +67 -0
  149. latitudesh_python_sdk/models/user.py +59 -0
  150. latitudesh_python_sdk/models/user_data.py +15 -0
  151. latitudesh_python_sdk/models/user_data_properties.py +46 -0
  152. latitudesh_python_sdk/models/user_include.py +52 -0
  153. latitudesh_python_sdk/models/user_team.py +61 -0
  154. latitudesh_python_sdk/models/user_teams.py +26 -0
  155. latitudesh_python_sdk/models/user_update.py +37 -0
  156. latitudesh_python_sdk/models/virtual_machine.py +25 -0
  157. latitudesh_python_sdk/models/virtual_machine_payload.py +41 -0
  158. latitudesh_python_sdk/models/virtual_machine_plans.py +180 -0
  159. latitudesh_python_sdk/models/virtual_network.py +103 -0
  160. latitudesh_python_sdk/models/virtual_network1.py +84 -0
  161. latitudesh_python_sdk/models/virtual_network_assignment.py +37 -0
  162. latitudesh_python_sdk/models/virtual_network_assignments.py +29 -0
  163. latitudesh_python_sdk/models/virtual_networks.py +26 -0
  164. latitudesh_python_sdk/models/vpn_session_data_with_password.py +77 -0
  165. latitudesh_python_sdk/models/vpn_session_with_password.py +18 -0
  166. latitudesh_python_sdk/operatingsystems_sdk.py +188 -0
  167. latitudesh_python_sdk/plans.py +1178 -0
  168. latitudesh_python_sdk/privatenetworks.py +1672 -0
  169. latitudesh_python_sdk/projects_sdk.py +864 -0
  170. latitudesh_python_sdk/py.typed +1 -0
  171. latitudesh_python_sdk/regions_sdk.py +376 -0
  172. latitudesh_python_sdk/roles.py +374 -0
  173. latitudesh_python_sdk/sdk.py +214 -0
  174. latitudesh_python_sdk/sdkconfiguration.py +57 -0
  175. latitudesh_python_sdk/servers_sdk.py +3810 -0
  176. latitudesh_python_sdk/sshkeys.py +1050 -0
  177. latitudesh_python_sdk/storage.py +820 -0
  178. latitudesh_python_sdk/tags.py +786 -0
  179. latitudesh_python_sdk/teams_sdk.py +596 -0
  180. latitudesh_python_sdk/teamsmembers.py +578 -0
  181. latitudesh_python_sdk/traffic_sdk.py +400 -0
  182. latitudesh_python_sdk/types/__init__.py +21 -0
  183. latitudesh_python_sdk/types/basemodel.py +39 -0
  184. latitudesh_python_sdk/userdata_sdk.py +1052 -0
  185. latitudesh_python_sdk/userprofile.py +596 -0
  186. latitudesh_python_sdk/utils/__init__.py +101 -0
  187. latitudesh_python_sdk/utils/annotations.py +55 -0
  188. latitudesh_python_sdk/utils/enums.py +34 -0
  189. latitudesh_python_sdk/utils/eventstreaming.py +238 -0
  190. latitudesh_python_sdk/utils/forms.py +202 -0
  191. latitudesh_python_sdk/utils/headers.py +136 -0
  192. latitudesh_python_sdk/utils/logger.py +27 -0
  193. latitudesh_python_sdk/utils/metadata.py +118 -0
  194. latitudesh_python_sdk/utils/queryparams.py +205 -0
  195. latitudesh_python_sdk/utils/requestbodies.py +66 -0
  196. latitudesh_python_sdk/utils/retries.py +217 -0
  197. latitudesh_python_sdk/utils/security.py +192 -0
  198. latitudesh_python_sdk/utils/serializers.py +219 -0
  199. latitudesh_python_sdk/utils/url.py +155 -0
  200. latitudesh_python_sdk/utils/values.py +137 -0
  201. latitudesh_python_sdk/virtualmachines.py +772 -0
  202. latitudesh_python_sdk/vpnsessions.py +818 -0
  203. latitudesh_python_sdk-0.0.6.dist-info/LICENSE +21 -0
  204. latitudesh_python_sdk-0.0.6.dist-info/METADATA +730 -0
  205. latitudesh_python_sdk-0.0.6.dist-info/RECORD +206 -0
  206. latitudesh_python_sdk-0.0.6.dist-info/WHEEL +4 -0
@@ -0,0 +1,374 @@
1
+ """Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT."""
2
+
3
+ from .basesdk import BaseSDK
4
+ from latitudesh_python_sdk import models, utils
5
+ from latitudesh_python_sdk._hooks import HookContext
6
+ from latitudesh_python_sdk.types import OptionalNullable, UNSET
7
+ from latitudesh_python_sdk.utils import get_security_from_env
8
+ from typing import Any, Mapping, Optional
9
+
10
+
11
+ class Roles(BaseSDK):
12
+ def list(
13
+ self,
14
+ *,
15
+ retries: OptionalNullable[utils.RetryConfig] = UNSET,
16
+ server_url: Optional[str] = None,
17
+ timeout_ms: Optional[int] = None,
18
+ http_headers: Optional[Mapping[str, str]] = None,
19
+ ) -> models.GetRolesResponseBody:
20
+ r"""List all Roles
21
+
22
+ Returns a list of all roles that can be assigned to users
23
+
24
+
25
+ :param retries: Override the default retry configuration for this method
26
+ :param server_url: Override the default server URL for this method
27
+ :param timeout_ms: Override the default request timeout configuration for this method in milliseconds
28
+ :param http_headers: Additional headers to set or replace on requests.
29
+ """
30
+ base_url = None
31
+ url_variables = None
32
+ if timeout_ms is None:
33
+ timeout_ms = self.sdk_configuration.timeout_ms
34
+
35
+ if server_url is not None:
36
+ base_url = server_url
37
+ else:
38
+ base_url = self._get_url(base_url, url_variables)
39
+ req = self._build_request(
40
+ method="GET",
41
+ path="/roles",
42
+ base_url=base_url,
43
+ url_variables=url_variables,
44
+ request=None,
45
+ request_body_required=False,
46
+ request_has_path_params=False,
47
+ request_has_query_params=True,
48
+ user_agent_header="user-agent",
49
+ accept_header_value="application/vnd.api+json",
50
+ http_headers=http_headers,
51
+ security=self.sdk_configuration.security,
52
+ timeout_ms=timeout_ms,
53
+ )
54
+
55
+ if retries == UNSET:
56
+ if self.sdk_configuration.retry_config is not UNSET:
57
+ retries = self.sdk_configuration.retry_config
58
+
59
+ retry_config = None
60
+ if isinstance(retries, utils.RetryConfig):
61
+ retry_config = (retries, ["429", "500", "502", "503", "504"])
62
+
63
+ http_res = self.do_request(
64
+ hook_ctx=HookContext(
65
+ base_url=base_url or "",
66
+ operation_id="get-roles",
67
+ oauth2_scopes=[],
68
+ security_source=get_security_from_env(
69
+ self.sdk_configuration.security, models.Security
70
+ ),
71
+ ),
72
+ request=req,
73
+ error_status_codes=["4XX", "5XX"],
74
+ retry_config=retry_config,
75
+ )
76
+
77
+ if utils.match_response(http_res, "200", "application/vnd.api+json"):
78
+ return utils.unmarshal_json(http_res.text, models.GetRolesResponseBody)
79
+ if utils.match_response(http_res, "4XX", "*"):
80
+ http_res_text = utils.stream_to_text(http_res)
81
+ raise models.APIError(
82
+ "API error occurred", http_res.status_code, http_res_text, http_res
83
+ )
84
+ if utils.match_response(http_res, "5XX", "*"):
85
+ http_res_text = utils.stream_to_text(http_res)
86
+ raise models.APIError(
87
+ "API error occurred", http_res.status_code, http_res_text, http_res
88
+ )
89
+
90
+ content_type = http_res.headers.get("Content-Type")
91
+ http_res_text = utils.stream_to_text(http_res)
92
+ raise models.APIError(
93
+ f"Unexpected response received (code: {http_res.status_code}, type: {content_type})",
94
+ http_res.status_code,
95
+ http_res_text,
96
+ http_res,
97
+ )
98
+
99
+ async def list_async(
100
+ self,
101
+ *,
102
+ retries: OptionalNullable[utils.RetryConfig] = UNSET,
103
+ server_url: Optional[str] = None,
104
+ timeout_ms: Optional[int] = None,
105
+ http_headers: Optional[Mapping[str, str]] = None,
106
+ ) -> models.GetRolesResponseBody:
107
+ r"""List all Roles
108
+
109
+ Returns a list of all roles that can be assigned to users
110
+
111
+
112
+ :param retries: Override the default retry configuration for this method
113
+ :param server_url: Override the default server URL for this method
114
+ :param timeout_ms: Override the default request timeout configuration for this method in milliseconds
115
+ :param http_headers: Additional headers to set or replace on requests.
116
+ """
117
+ base_url = None
118
+ url_variables = None
119
+ if timeout_ms is None:
120
+ timeout_ms = self.sdk_configuration.timeout_ms
121
+
122
+ if server_url is not None:
123
+ base_url = server_url
124
+ else:
125
+ base_url = self._get_url(base_url, url_variables)
126
+ req = self._build_request_async(
127
+ method="GET",
128
+ path="/roles",
129
+ base_url=base_url,
130
+ url_variables=url_variables,
131
+ request=None,
132
+ request_body_required=False,
133
+ request_has_path_params=False,
134
+ request_has_query_params=True,
135
+ user_agent_header="user-agent",
136
+ accept_header_value="application/vnd.api+json",
137
+ http_headers=http_headers,
138
+ security=self.sdk_configuration.security,
139
+ timeout_ms=timeout_ms,
140
+ )
141
+
142
+ if retries == UNSET:
143
+ if self.sdk_configuration.retry_config is not UNSET:
144
+ retries = self.sdk_configuration.retry_config
145
+
146
+ retry_config = None
147
+ if isinstance(retries, utils.RetryConfig):
148
+ retry_config = (retries, ["429", "500", "502", "503", "504"])
149
+
150
+ http_res = await self.do_request_async(
151
+ hook_ctx=HookContext(
152
+ base_url=base_url or "",
153
+ operation_id="get-roles",
154
+ oauth2_scopes=[],
155
+ security_source=get_security_from_env(
156
+ self.sdk_configuration.security, models.Security
157
+ ),
158
+ ),
159
+ request=req,
160
+ error_status_codes=["4XX", "5XX"],
161
+ retry_config=retry_config,
162
+ )
163
+
164
+ if utils.match_response(http_res, "200", "application/vnd.api+json"):
165
+ return utils.unmarshal_json(http_res.text, models.GetRolesResponseBody)
166
+ if utils.match_response(http_res, "4XX", "*"):
167
+ http_res_text = await utils.stream_to_text_async(http_res)
168
+ raise models.APIError(
169
+ "API error occurred", http_res.status_code, http_res_text, http_res
170
+ )
171
+ if utils.match_response(http_res, "5XX", "*"):
172
+ http_res_text = await utils.stream_to_text_async(http_res)
173
+ raise models.APIError(
174
+ "API error occurred", http_res.status_code, http_res_text, http_res
175
+ )
176
+
177
+ content_type = http_res.headers.get("Content-Type")
178
+ http_res_text = await utils.stream_to_text_async(http_res)
179
+ raise models.APIError(
180
+ f"Unexpected response received (code: {http_res.status_code}, type: {content_type})",
181
+ http_res.status_code,
182
+ http_res_text,
183
+ http_res,
184
+ )
185
+
186
+ def get(
187
+ self,
188
+ *,
189
+ role_id: str,
190
+ retries: OptionalNullable[utils.RetryConfig] = UNSET,
191
+ server_url: Optional[str] = None,
192
+ timeout_ms: Optional[int] = None,
193
+ http_headers: Optional[Mapping[str, str]] = None,
194
+ ) -> models.Role:
195
+ r"""Retrieve Role
196
+
197
+ :param role_id:
198
+ :param retries: Override the default retry configuration for this method
199
+ :param server_url: Override the default server URL for this method
200
+ :param timeout_ms: Override the default request timeout configuration for this method in milliseconds
201
+ :param http_headers: Additional headers to set or replace on requests.
202
+ """
203
+ base_url = None
204
+ url_variables = None
205
+ if timeout_ms is None:
206
+ timeout_ms = self.sdk_configuration.timeout_ms
207
+
208
+ if server_url is not None:
209
+ base_url = server_url
210
+ else:
211
+ base_url = self._get_url(base_url, url_variables)
212
+
213
+ request = models.GetRoleIDRequest(
214
+ role_id=role_id,
215
+ )
216
+
217
+ req = self._build_request(
218
+ method="GET",
219
+ path="/roles/{role_id}",
220
+ base_url=base_url,
221
+ url_variables=url_variables,
222
+ request=request,
223
+ request_body_required=False,
224
+ request_has_path_params=True,
225
+ request_has_query_params=True,
226
+ user_agent_header="user-agent",
227
+ accept_header_value="application/vnd.api+json",
228
+ http_headers=http_headers,
229
+ security=self.sdk_configuration.security,
230
+ timeout_ms=timeout_ms,
231
+ )
232
+
233
+ if retries == UNSET:
234
+ if self.sdk_configuration.retry_config is not UNSET:
235
+ retries = self.sdk_configuration.retry_config
236
+
237
+ retry_config = None
238
+ if isinstance(retries, utils.RetryConfig):
239
+ retry_config = (retries, ["429", "500", "502", "503", "504"])
240
+
241
+ http_res = self.do_request(
242
+ hook_ctx=HookContext(
243
+ base_url=base_url or "",
244
+ operation_id="get-role-id",
245
+ oauth2_scopes=[],
246
+ security_source=get_security_from_env(
247
+ self.sdk_configuration.security, models.Security
248
+ ),
249
+ ),
250
+ request=req,
251
+ error_status_codes=["404", "4XX", "5XX"],
252
+ retry_config=retry_config,
253
+ )
254
+
255
+ response_data: Any = None
256
+ if utils.match_response(http_res, "200", "application/vnd.api+json"):
257
+ return utils.unmarshal_json(http_res.text, models.Role)
258
+ if utils.match_response(http_res, "404", "application/vnd.api+json"):
259
+ response_data = utils.unmarshal_json(http_res.text, models.ErrorObjectData)
260
+ raise models.ErrorObject(data=response_data)
261
+ if utils.match_response(http_res, "4XX", "*"):
262
+ http_res_text = utils.stream_to_text(http_res)
263
+ raise models.APIError(
264
+ "API error occurred", http_res.status_code, http_res_text, http_res
265
+ )
266
+ if utils.match_response(http_res, "5XX", "*"):
267
+ http_res_text = utils.stream_to_text(http_res)
268
+ raise models.APIError(
269
+ "API error occurred", http_res.status_code, http_res_text, http_res
270
+ )
271
+
272
+ content_type = http_res.headers.get("Content-Type")
273
+ http_res_text = utils.stream_to_text(http_res)
274
+ raise models.APIError(
275
+ f"Unexpected response received (code: {http_res.status_code}, type: {content_type})",
276
+ http_res.status_code,
277
+ http_res_text,
278
+ http_res,
279
+ )
280
+
281
+ async def get_async(
282
+ self,
283
+ *,
284
+ role_id: str,
285
+ retries: OptionalNullable[utils.RetryConfig] = UNSET,
286
+ server_url: Optional[str] = None,
287
+ timeout_ms: Optional[int] = None,
288
+ http_headers: Optional[Mapping[str, str]] = None,
289
+ ) -> models.Role:
290
+ r"""Retrieve Role
291
+
292
+ :param role_id:
293
+ :param retries: Override the default retry configuration for this method
294
+ :param server_url: Override the default server URL for this method
295
+ :param timeout_ms: Override the default request timeout configuration for this method in milliseconds
296
+ :param http_headers: Additional headers to set or replace on requests.
297
+ """
298
+ base_url = None
299
+ url_variables = None
300
+ if timeout_ms is None:
301
+ timeout_ms = self.sdk_configuration.timeout_ms
302
+
303
+ if server_url is not None:
304
+ base_url = server_url
305
+ else:
306
+ base_url = self._get_url(base_url, url_variables)
307
+
308
+ request = models.GetRoleIDRequest(
309
+ role_id=role_id,
310
+ )
311
+
312
+ req = self._build_request_async(
313
+ method="GET",
314
+ path="/roles/{role_id}",
315
+ base_url=base_url,
316
+ url_variables=url_variables,
317
+ request=request,
318
+ request_body_required=False,
319
+ request_has_path_params=True,
320
+ request_has_query_params=True,
321
+ user_agent_header="user-agent",
322
+ accept_header_value="application/vnd.api+json",
323
+ http_headers=http_headers,
324
+ security=self.sdk_configuration.security,
325
+ timeout_ms=timeout_ms,
326
+ )
327
+
328
+ if retries == UNSET:
329
+ if self.sdk_configuration.retry_config is not UNSET:
330
+ retries = self.sdk_configuration.retry_config
331
+
332
+ retry_config = None
333
+ if isinstance(retries, utils.RetryConfig):
334
+ retry_config = (retries, ["429", "500", "502", "503", "504"])
335
+
336
+ http_res = await self.do_request_async(
337
+ hook_ctx=HookContext(
338
+ base_url=base_url or "",
339
+ operation_id="get-role-id",
340
+ oauth2_scopes=[],
341
+ security_source=get_security_from_env(
342
+ self.sdk_configuration.security, models.Security
343
+ ),
344
+ ),
345
+ request=req,
346
+ error_status_codes=["404", "4XX", "5XX"],
347
+ retry_config=retry_config,
348
+ )
349
+
350
+ response_data: Any = None
351
+ if utils.match_response(http_res, "200", "application/vnd.api+json"):
352
+ return utils.unmarshal_json(http_res.text, models.Role)
353
+ if utils.match_response(http_res, "404", "application/vnd.api+json"):
354
+ response_data = utils.unmarshal_json(http_res.text, models.ErrorObjectData)
355
+ raise models.ErrorObject(data=response_data)
356
+ if utils.match_response(http_res, "4XX", "*"):
357
+ http_res_text = await utils.stream_to_text_async(http_res)
358
+ raise models.APIError(
359
+ "API error occurred", http_res.status_code, http_res_text, http_res
360
+ )
361
+ if utils.match_response(http_res, "5XX", "*"):
362
+ http_res_text = await utils.stream_to_text_async(http_res)
363
+ raise models.APIError(
364
+ "API error occurred", http_res.status_code, http_res_text, http_res
365
+ )
366
+
367
+ content_type = http_res.headers.get("Content-Type")
368
+ http_res_text = await utils.stream_to_text_async(http_res)
369
+ raise models.APIError(
370
+ f"Unexpected response received (code: {http_res.status_code}, type: {content_type})",
371
+ http_res.status_code,
372
+ http_res_text,
373
+ http_res,
374
+ )
@@ -0,0 +1,214 @@
1
+ """Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT."""
2
+
3
+ from .basesdk import BaseSDK
4
+ from .httpclient import AsyncHttpClient, ClientOwner, HttpClient, close_clients
5
+ from .sdkconfiguration import SDKConfiguration
6
+ from .utils.logger import Logger, get_default_logger
7
+ from .utils.retries import RetryConfig
8
+ import httpx
9
+ from latitudesh_python_sdk import models, utils
10
+ from latitudesh_python_sdk._hooks import SDKHooks
11
+ from latitudesh_python_sdk.apikeys import APIKeys
12
+ from latitudesh_python_sdk.billing import Billing
13
+ from latitudesh_python_sdk.events_sdk import EventsSDK
14
+ from latitudesh_python_sdk.firewalls_sdk import FirewallsSDK
15
+ from latitudesh_python_sdk.ipaddresses_sdk import IPAddressesSDK
16
+ from latitudesh_python_sdk.operatingsystems_sdk import OperatingSystemsSDK
17
+ from latitudesh_python_sdk.plans import Plans
18
+ from latitudesh_python_sdk.privatenetworks import PrivateNetworks
19
+ from latitudesh_python_sdk.projects_sdk import ProjectsSDK
20
+ from latitudesh_python_sdk.regions_sdk import RegionsSDK
21
+ from latitudesh_python_sdk.roles import Roles
22
+ from latitudesh_python_sdk.servers_sdk import ServersSDK
23
+ from latitudesh_python_sdk.sshkeys import SSHKeys
24
+ from latitudesh_python_sdk.storage import Storage
25
+ from latitudesh_python_sdk.tags import Tags
26
+ from latitudesh_python_sdk.teams_sdk import TeamsSDK
27
+ from latitudesh_python_sdk.teamsmembers import TeamsMembers
28
+ from latitudesh_python_sdk.traffic_sdk import TrafficSDK
29
+ from latitudesh_python_sdk.types import OptionalNullable, UNSET
30
+ from latitudesh_python_sdk.userdata_sdk import UserDataSDK
31
+ from latitudesh_python_sdk.userprofile import UserProfile
32
+ from latitudesh_python_sdk.virtualmachines import VirtualMachines
33
+ from latitudesh_python_sdk.vpnsessions import VpnSessions
34
+ from typing import Any, Callable, Dict, List, Optional, Union, cast
35
+ import weakref
36
+
37
+
38
+ class Latitudesh(BaseSDK):
39
+ r"""Latitude.sh API: The Latitude.sh API is a RESTful API to manage your Latitude.sh account. It allows you to perform the same actions as the Latitude.sh dashboard."""
40
+
41
+ api_keys: APIKeys
42
+ billing: Billing
43
+ events: EventsSDK
44
+ firewalls: FirewallsSDK
45
+ ip_addresses: IPAddressesSDK
46
+ teams_members: TeamsMembers
47
+ operating_systems: OperatingSystemsSDK
48
+ plans: Plans
49
+ projects: ProjectsSDK
50
+ regions: RegionsSDK
51
+ roles: Roles
52
+ servers: ServersSDK
53
+ ssh_keys: SSHKeys
54
+ storage: Storage
55
+ tags: Tags
56
+ teams: TeamsSDK
57
+ traffic: TrafficSDK
58
+ user_data: UserDataSDK
59
+ user_profile: UserProfile
60
+ virtual_machines: VirtualMachines
61
+ private_networks: PrivateNetworks
62
+ vpn_sessions: VpnSessions
63
+
64
+ def __init__(
65
+ self,
66
+ bearer: Optional[Union[Optional[str], Callable[[], Optional[str]]]] = None,
67
+ latitude_api_key: Optional[str] = None,
68
+ server_idx: Optional[int] = None,
69
+ server_url: Optional[str] = None,
70
+ url_params: Optional[Dict[str, str]] = None,
71
+ client: Optional[HttpClient] = None,
72
+ async_client: Optional[AsyncHttpClient] = None,
73
+ retry_config: OptionalNullable[RetryConfig] = UNSET,
74
+ timeout_ms: Optional[int] = None,
75
+ debug_logger: Optional[Logger] = None,
76
+ ) -> None:
77
+ r"""Instantiates the SDK configuring it with the provided parameters.
78
+
79
+ :param bearer: The bearer required for authentication
80
+ :param latitude_api_key: Allows setting the latitude_api_key variable for url substitution
81
+ :param server_idx: The index of the server to use for all methods
82
+ :param server_url: The server URL to use for all methods
83
+ :param url_params: Parameters to optionally template the server URL with
84
+ :param client: The HTTP client to use for all synchronous methods
85
+ :param async_client: The Async HTTP client to use for all asynchronous methods
86
+ :param retry_config: The retry configuration to use for all supported methods
87
+ :param timeout_ms: Optional request timeout applied to each operation in milliseconds
88
+ """
89
+ client_supplied = True
90
+ if client is None:
91
+ client = httpx.Client()
92
+ client_supplied = False
93
+
94
+ assert issubclass(
95
+ type(client), HttpClient
96
+ ), "The provided client must implement the HttpClient protocol."
97
+
98
+ async_client_supplied = True
99
+ if async_client is None:
100
+ async_client = httpx.AsyncClient()
101
+ async_client_supplied = False
102
+
103
+ if debug_logger is None:
104
+ debug_logger = get_default_logger()
105
+
106
+ assert issubclass(
107
+ type(async_client), AsyncHttpClient
108
+ ), "The provided async_client must implement the AsyncHttpClient protocol."
109
+
110
+ security: Any = None
111
+ if callable(bearer):
112
+ # pylint: disable=unnecessary-lambda-assignment
113
+ security = lambda: models.Security(bearer=bearer())
114
+ else:
115
+ security = models.Security(bearer=bearer)
116
+
117
+ if server_url is not None:
118
+ if url_params is not None:
119
+ server_url = utils.template_url(server_url, url_params)
120
+ server_defaults: List[Dict[str, str]] = [
121
+ {
122
+ "latitude_api_key": latitude_api_key or "<insert your api key here>",
123
+ },
124
+ {
125
+ "latitude_api_key": latitude_api_key or "<insert your api key here>",
126
+ },
127
+ ]
128
+
129
+ BaseSDK.__init__(
130
+ self,
131
+ SDKConfiguration(
132
+ client=client,
133
+ client_supplied=client_supplied,
134
+ async_client=async_client,
135
+ async_client_supplied=async_client_supplied,
136
+ security=security,
137
+ server_url=server_url,
138
+ server_idx=server_idx,
139
+ server_defaults=server_defaults,
140
+ retry_config=retry_config,
141
+ timeout_ms=timeout_ms,
142
+ debug_logger=debug_logger,
143
+ ),
144
+ )
145
+
146
+ hooks = SDKHooks()
147
+
148
+ current_server_url, *_ = self.sdk_configuration.get_server_details()
149
+ server_url, self.sdk_configuration.client = hooks.sdk_init(
150
+ current_server_url, client
151
+ )
152
+ if current_server_url != server_url:
153
+ self.sdk_configuration.server_url = server_url
154
+
155
+ # pylint: disable=protected-access
156
+ self.sdk_configuration.__dict__["_hooks"] = hooks
157
+
158
+ weakref.finalize(
159
+ self,
160
+ close_clients,
161
+ cast(ClientOwner, self.sdk_configuration),
162
+ self.sdk_configuration.client,
163
+ self.sdk_configuration.client_supplied,
164
+ self.sdk_configuration.async_client,
165
+ self.sdk_configuration.async_client_supplied,
166
+ )
167
+
168
+ self._init_sdks()
169
+
170
+ def _init_sdks(self):
171
+ self.api_keys = APIKeys(self.sdk_configuration)
172
+ self.billing = Billing(self.sdk_configuration)
173
+ self.events = EventsSDK(self.sdk_configuration)
174
+ self.firewalls = FirewallsSDK(self.sdk_configuration)
175
+ self.ip_addresses = IPAddressesSDK(self.sdk_configuration)
176
+ self.teams_members = TeamsMembers(self.sdk_configuration)
177
+ self.operating_systems = OperatingSystemsSDK(self.sdk_configuration)
178
+ self.plans = Plans(self.sdk_configuration)
179
+ self.projects = ProjectsSDK(self.sdk_configuration)
180
+ self.regions = RegionsSDK(self.sdk_configuration)
181
+ self.roles = Roles(self.sdk_configuration)
182
+ self.servers = ServersSDK(self.sdk_configuration)
183
+ self.ssh_keys = SSHKeys(self.sdk_configuration)
184
+ self.storage = Storage(self.sdk_configuration)
185
+ self.tags = Tags(self.sdk_configuration)
186
+ self.teams = TeamsSDK(self.sdk_configuration)
187
+ self.traffic = TrafficSDK(self.sdk_configuration)
188
+ self.user_data = UserDataSDK(self.sdk_configuration)
189
+ self.user_profile = UserProfile(self.sdk_configuration)
190
+ self.virtual_machines = VirtualMachines(self.sdk_configuration)
191
+ self.private_networks = PrivateNetworks(self.sdk_configuration)
192
+ self.vpn_sessions = VpnSessions(self.sdk_configuration)
193
+
194
+ def __enter__(self):
195
+ return self
196
+
197
+ async def __aenter__(self):
198
+ return self
199
+
200
+ def __exit__(self, exc_type, exc_val, exc_tb):
201
+ if (
202
+ self.sdk_configuration.client is not None
203
+ and not self.sdk_configuration.client_supplied
204
+ ):
205
+ self.sdk_configuration.client.close()
206
+ self.sdk_configuration.client = None
207
+
208
+ async def __aexit__(self, exc_type, exc_val, exc_tb):
209
+ if (
210
+ self.sdk_configuration.async_client is not None
211
+ and not self.sdk_configuration.async_client_supplied
212
+ ):
213
+ await self.sdk_configuration.async_client.aclose()
214
+ self.sdk_configuration.async_client = None
@@ -0,0 +1,57 @@
1
+ """Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT."""
2
+
3
+ from ._hooks import SDKHooks
4
+ from ._version import (
5
+ __gen_version__,
6
+ __openapi_doc_version__,
7
+ __user_agent__,
8
+ __version__,
9
+ )
10
+ from .httpclient import AsyncHttpClient, HttpClient
11
+ from .utils import Logger, RetryConfig, remove_suffix
12
+ from dataclasses import dataclass, field
13
+ from latitudesh_python_sdk import models
14
+ from latitudesh_python_sdk.types import OptionalNullable, UNSET
15
+ from pydantic import Field
16
+ from typing import Callable, Dict, List, Optional, Tuple, Union
17
+
18
+
19
+ SERVERS = [
20
+ "https://api.latitude.sh",
21
+ "http://api.latitude.sh",
22
+ ]
23
+ """Contains the list of servers available to the SDK"""
24
+
25
+
26
+ @dataclass
27
+ class SDKConfiguration:
28
+ client: Union[HttpClient, None]
29
+ client_supplied: bool
30
+ async_client: Union[AsyncHttpClient, None]
31
+ async_client_supplied: bool
32
+ debug_logger: Logger
33
+ security: Optional[Union[models.Security, Callable[[], models.Security]]] = None
34
+ server_url: Optional[str] = ""
35
+ server_idx: Optional[int] = 0
36
+ server_defaults: List[Dict[str, str]] = field(default_factory=List)
37
+ language: str = "python"
38
+ openapi_doc_version: str = __openapi_doc_version__
39
+ sdk_version: str = __version__
40
+ gen_version: str = __gen_version__
41
+ user_agent: str = __user_agent__
42
+ retry_config: OptionalNullable[RetryConfig] = Field(default_factory=lambda: UNSET)
43
+ timeout_ms: Optional[int] = None
44
+
45
+ def __post_init__(self):
46
+ self._hooks = SDKHooks()
47
+
48
+ def get_server_details(self) -> Tuple[str, Dict[str, str]]:
49
+ if self.server_url is not None and self.server_url:
50
+ return remove_suffix(self.server_url, "/"), {}
51
+ if self.server_idx is None:
52
+ self.server_idx = 0
53
+
54
+ return SERVERS[self.server_idx], self.server_defaults[self.server_idx]
55
+
56
+ def get_hooks(self) -> SDKHooks:
57
+ return self._hooks